Skip to content
GitLab
Explore
Sign in
Register
Commits on Source (3)
reproducible alpine: build inside aports checkout
· 44d048d1
kpcyrd
authored
Dec 03, 2019
44d048d1
reproducible alpine: add missing git pull
· 6d3ee8af
kpcyrd
authored
Dec 03, 2019
6d3ee8af
reproducible alpine: patch and install abuild to be reproducible
· 3b55b4d3
kpcyrd
authored
Dec 03, 2019
3b55b4d3
Show whitespace changes
Inline
Side-by-side
bin/reproducible_build_alpine_pkg.sh
View file @
3b55b4d3
...
...
@@ -121,6 +121,7 @@ first_build() {
echo
"Date:
$(
date
-u
)
"
echo
"============================================================================="
local
SESSION
=
"alpine-
$SRCPACKAGE
-
$(
basename
$TMPDIR
)
"
local
SRCDIR
=
"/var/lib/jenkins/aports/
$REPOSITORY
/
$SRCPACKAGE
"
local
BUILDDIR
=
"/tmp/alpine-
$SRCPACKAGE
-
$(
basename
$TMPDIR
)
"
local
LOG
=
$TMPDIR
/b1/
$SRCPACKAGE
/build1.log
local
FUTURE_STATE
=
"disabled"
...
...
@@ -134,7 +135,6 @@ first_build() {
#schroot --run-session -c $SESSION --directory /tmp -u root -- ln -sfT dash /usr/bin/sh
echo
"MAKEFLAGS=-j
$NUM_CPU
"
| schroot
--run-session
-c
$SESSION
--directory
/tmp
-u
root
--
tee
-a
/etc/abuild.conf
schroot
--run-session
-c
$SESSION
--directory
"/var/lib/jenkins/aports"
--
git pull
schroot
--run-session
-c
$SESSION
--directory
/tmp
--
cp
-vr
"/var/lib/jenkins/aports/
$REPOSITORY
/
$SRCPACKAGE
"
"
$BUILDDIR
"
# modify timezone, LANG, LC_ALL in the 1st build.
schroot
--run-session
-c
$SESSION
--directory
/tmp
--
tee
-a
/var/lib/jenkins/.bashrc
<<-
__END__
export TZ="/usr/share/zoneinfo/Etc/GMT+12"
...
...
@@ -154,7 +154,7 @@ first_build() {
echo
$VERSION
>
$TMPDIR
/b1/
$SRCPACKAGE
/build1.version
# nicely run abuild with a timeout of $TIMEOUT hours
timeout
-k
$TIMEOUT
.1h
${
TIMEOUT
}
h /usr/bin/ionice
-c
3 /usr/bin/nice
\
schroot
--run-session
-c
$SESSION
--directory
"
$
BUILD
DIR
"
--
bash
-l
-c
"abuild -rP
$BUILDDIR
2>&1"
|
tee
-a
$LOG
schroot
--run-session
-c
$SESSION
--directory
"
$
SRC
DIR
"
--
bash
-l
-c
"abuild -rP
$BUILDDIR
2>&1"
|
tee
-a
$LOG
PRESULT
=
${
PIPESTATUS
[0]
}
if
[
$PRESULT
-eq
124
]
;
then
echo
"
$(
date
-u
)
- abuild was killed by timeout after
${
TIMEOUT
}
h."
|
tee
-a
$LOG
...
...
@@ -193,6 +193,7 @@ second_build() {
echo
"Date:
$(
date
-u
)
"
echo
"============================================================================="
local
SESSION
=
"alpine-
$SRCPACKAGE
-
$(
basename
$TMPDIR
)
"
local
SRCDIR
=
"/var/lib/jenkins/aports/
$REPOSITORY
/
$SRCPACKAGE
"
local
BUILDDIR
=
"/tmp/alpine-
$SRCPACKAGE
-
$(
basename
$TMPDIR
)
"
local
LOG
=
$TMPDIR
/b2/
$SRCPACKAGE
/build2.log
NEW_NUM_CPU
=
$(
echo
$NUM_CPU
-1
|bc
)
...
...
@@ -205,7 +206,7 @@ second_build() {
echo
"============================================================================="
schroot
--begin-session
--session-name
=
$SESSION
-c
jenkins-reproducible-alpine
echo
"MAKEFLAGS=-j
$NEW_NUM_CPU
"
| schroot
--run-session
-c
$SESSION
--directory
/tmp
-u
root
--
tee
-a
/etc/abuild.conf
schroot
--run-session
-c
$SESSION
--directory
/tmp
--
cp
-vr
"/var/lib/jenkins/aports
/
$REPOSITORY
/
$SRCPACKAGE
"
"
$BUILDDIR
"
schroot
--run-session
-c
$SESSION
--directory
"/var/lib/jenkins/aports
"
--
git pull
# add more variations in the 2nd build: TZ (differently), LANG, LC_ALL, umask
schroot
--run-session
-c
$SESSION
--directory
/tmp
--
tee
-a
/var/lib/jenkins/.bashrc
<<-
__END__
export TZ="/usr/share/zoneinfo/Etc/GMT-14"
...
...
@@ -226,7 +227,7 @@ second_build() {
echo
$VERSION
>
$TMPDIR
/b2/
$SRCPACKAGE
/build2.version
# nicely run abuild with a timeout of $TIMEOUT hours
timeout
-k
$TIMEOUT
.1h
${
TIMEOUT
}
h /usr/bin/ionice
-c
3 /usr/bin/nice
\
schroot
--run-session
-c
$SESSION
--directory
"
$
BUILD
DIR
"
--
bash
-l
-c
"abuild -rP
$BUILDDIR
2>&1"
|
tee
-a
$LOG
schroot
--run-session
-c
$SESSION
--directory
"
$
SRC
DIR
"
--
bash
-l
-c
"abuild -rP
$BUILDDIR
2>&1"
|
tee
-a
$LOG
PRESULT
=
${
PIPESTATUS
[0]
}
if
[
$PRESULT
-eq
124
]
;
then
echo
"
$(
date
-u
)
- abuild was killed by timeout after
${
TIMEOUT
}
h."
|
tee
-a
$LOG
...
...
bin/reproducible_setup_alpine_schroot.sh
View file @
3b55b4d3
...
...
@@ -167,6 +167,61 @@ fi
echo
"
$(
date
-u
)
- cloning aports repo"
$USERCMD
sh
-c
"
$GIT_OPTIONS
git clone https://git.alpinelinux.org/aports.git /var/lib/jenkins/aports"
# build and install a patched abuild
$USERCMD
sh
-c
"cd /var/lib/jenkins/aports/main/abuild && git apply - && abuild -r && apk add ~/packages/main/x86_64/abuild-3.5.0_rc2-r1.apk && git checkout ."
<<-
__END__
ZGlmZiAtLWdpdCBhL21haW4vYWJ1aWxkLzAwMDItcmVwcm8ucGF0Y2ggYi9tYWluL2FidWlsZC8w
MDAyLXJlcHJvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi41ZmYy
MjAxMwotLS0gL2Rldi9udWxsCisrKyBiL21haW4vYWJ1aWxkLzAwMDItcmVwcm8ucGF0Y2gKQEAg
LTAsMCArMSw1MyBAQAorRnJvbSBiNTE0YTRlNTZkNGQxN2RhNTNiYmU1YTJkMjAzZjYxNmY5YTlm
MzcxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbToga3BjeXJkIDxnaXRAcnh2LmNjPgor
RGF0ZTogTW9uLCAyIERlYyAyMDE5IDE4OjA5OjU2ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIGFi
dWlsZDogc2V0IGZpeGVkIGF0aW1lIGFuZCBjdGltZSBpbiB0YXIKKworLS0tCisgYWJ1aWxkLmlu
IHwgMTYgKysrKysrKysrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCsp
LCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYWJ1aWxkLmluIGIvYWJ1aWxkLmluCitp
bmRleCA1NjU0ZDhmLi42NDRkZWE4IDEwMDY0NAorLS0tIGEvYWJ1aWxkLmluCisrKysgYi9hYnVp
bGQuaW4KK0BAIC0xNTc5LDcgKzE1NzksMTEgQEAgY3JlYXRlX2Fwa3MoKSB7CisgCQkjIG5vcm1h
bGl6ZSB0aW1lc3RhbXBzCisgCQlmaW5kIC4gLWV4ZWMgdG91Y2ggLWggLWQgIkAkU09VUkNFX0RB
VEVfRVBPQ0giIHt9ICsKKyAKKy0JCXRhciAtLXhhdHRycyAtZiAtIC1jICIkQCIgfCBhYnVpbGQt
dGFyIC0taGFzaCB8ICRnemlwIC05ID4iJGRpciIvZGF0YS50YXIuZ3oKKysJCXRhciAtLXhhdHRy
cyBcCisrCQkJLS1mb3JtYXQ9cG9zaXggXAorKwkJCS0tcGF4LW9wdGlvbj1leHRoZHIubmFtZT0l
ZC9QYXhIZWFkZXJzLyVmLGF0aW1lOj0wLGN0aW1lOj0wIFwKKysJCQktLW10aW1lPSJAJHtTT1VS
Q0VfREFURV9FUE9DSH0iIFwKKysJCQktZiAtIC1jICIkQCIgfCBhYnVpbGQtdGFyIC0taGFzaCB8
ICRnemlwIC1uIC05ID4iJGRpciIvZGF0YS50YXIuZ3oKKyAKKyAJCW1zZyAiQ3JlYXRlIGNoZWNr
c3VtLi4uIgorIAkJIyBhcHBlbmQgdGhlIGhhc2ggZm9yIGRhdGEudGFyLmd6CitAQCAtMTU4OSw4
ICsxNTkzLDEyIEBAIGNyZWF0ZV9hcGtzKCkgeworIAorIAkJIyBjb250cm9sLnRhci5negorIAkJ
Y2QgIiRkaXIiCistCQl0YXIgLWYgLSAtYyAkKGNhdCAiJGRpciIvLm1ldGFmaWxlcykgfCBhYnVp
bGQtdGFyIC0tY3V0IFwKKy0JCQl8ICRnemlwIC05ID4gY29udHJvbC50YXIuZ3oKKysJCXRhciBc
CisrCQkJLS1mb3JtYXQ9cG9zaXggXAorKwkJCS0tcGF4LW9wdGlvbj1leHRoZHIubmFtZT0lZC9Q
YXhIZWFkZXJzLyVmLGF0aW1lOj0wLGN0aW1lOj0wIFwKKysJCQktLW10aW1lPSJAJHtTT1VSQ0Vf
REFURV9FUE9DSH0iIFwKKysJCQktZiAtIC1jICQoY2F0ICIkZGlyIi8ubWV0YWZpbGVzKSB8IGFi
dWlsZC10YXIgLS1jdXQgXAorKwkJCXwgJGd6aXAgLW4gLTkgPiBjb250cm9sLnRhci5negorIAkJ
YWJ1aWxkLXNpZ24gLXEgY29udHJvbC50YXIuZ3ogfHwgZXhpdCAxCisgCisgCQltc2cgIkNyZWF0
ZSAkYXBrIgorQEAgLTE3MjQsNyArMTczMiw3IEBAIGRlZmF1bHRfZG9jKCkgeworIAkJCWZpCisg
CQlkb25lCisgCistCQlbICRpc2xpbmsgLWVxIDAgXSAmJiAkZ3ppcCAtOSAiJG5hbWUiCisrCQlb
ICRpc2xpbmsgLWVxIDAgXSAmJiAkZ3ppcCAtbiAtOSAiJG5hbWUiCisgCWRvbmUKKyAKKyAJcm0g
LWYgIiRzdWJwa2dkaXIvdXNyL3NoYXJlL2luZm8vZGlyIgorLS0gCisyLjIyLjAKKwpkaWZmIC0t
Z2l0IGEvbWFpbi9hYnVpbGQvQVBLQlVJTEQgYi9tYWluL2FidWlsZC9BUEtCVUlMRAppbmRleCBj
OGI5YTMwYS4uOGU5MWM0MDEgMTAwNjQ0Ci0tLSBhL21haW4vYWJ1aWxkL0FQS0JVSUxECisrKyBi
L21haW4vYWJ1aWxkL0FQS0JVSUxECkBAIC0yMiw2ICsyMiw3IEBAIG9wdGlvbnM9InN1aWQgIWNo
ZWNrIgogcGtnZ3JvdXBzPSJhYnVpbGQiCiBzb3VyY2U9Imh0dHBzOi8vZGV2LmFscGluZWxpbnV4
Lm9yZy9hcmNoaXZlL2FidWlsZC9hYnVpbGQtJF92ZXIudGFyLnh6CiAJMDAwMS1hYnVpbGQtZml4
LWFwcGx5aW5nLXBhdGNoZXMtZnJvbS1odHRwcy5wYXRjaAorCTAwMDItcmVwcm8ucGF0Y2gKIAki
CiAKIGJ1aWxkZGlyPSIkc3JjZGlyLyRwa2duYW1lLSRfdmVyIgpAQCAtNzAsNCArNzEsNSBAQCBf
cm9vdGJsZCgpIHsKIH0KIAogc2hhNTEyc3Vtcz0iN2MzMTdkNzVmOGZhNjRhYzJhMDY3NDg3M2Vk
YzkzN2JjZDhmYjNkMzIyZTVjZGYxMDg3NGZlNWVjODdmZWMwZWJlM2ExZDI5ZDUwZTkxOTM3NmIx
MDEzNWQyNTI2NTkzNzJmZmI2MmUwODQxODE1ODE0NjczNGZkMTNmNDY2MDIgIGFidWlsZC0zLjUu
MF9yYzIudGFyLnh6Ci03YjU2NTQ4MWE4NWE3MDk0YTlmNjFmMzllZTQ0YmEzYzFmM2Q1YmZlZWQ3
YTUyNzljNTdjMTQ0NDdlOTRmNjViNjEzZDU2ZDI2ZDE5NzYzOWFiMjgwNzQ1ZTQ4YzUxZmY3OTE1
ZmQwNTcwYTU3MGQyOWRkN2UyNDkwYjI5OGRjNyAgMDAwMS1hYnVpbGQtZml4LWFwcGx5aW5nLXBh
dGNoZXMtZnJvbS1odHRwcy5wYXRjaCIKKzdiNTY1NDgxYTg1YTcwOTRhOWY2MWYzOWVlNDRiYTNj
MWYzZDViZmVlZDdhNTI3OWM1N2MxNDQ0N2U5NGY2NWI2MTNkNTZkMjZkMTk3NjM5YWIyODA3NDVl
NDhjNTFmZjc5MTVmZDA1NzBhNTcwZDI5ZGQ3ZTI0OTBiMjk4ZGM3ICAwMDAxLWFidWlsZC1maXgt
YXBwbHlpbmctcGF0Y2hlcy1mcm9tLWh0dHBzLnBhdGNoCisxMThhYzUxMjU4OGRkZWUzMTJkNmZm
YTZhMjU3ZTFjMjUyNDcxNDMzY2I5N2VjMzJmN2Q3YmY4MzljNDU2MGQ4ZWM5ZTM2Zjc1NzMxMDli
YTU2ZWI3YTAyZmMyMjYyYWNkZDNjNzg1ZTEwMDg5MzVmYWM1OTlkNzNlMmZlOTkzMCAgMDAwMi1y
ZXByby5wYXRjaCIK
__END__
echo
"============================================================================="
echo
"schroot
$TARGET
set up successfully in
$SCHROOT_BASE
/
$TARGET
- exiting now."
echo
"============================================================================="
...
...