[PATCH 0/4] Fix busybox.

DoneSubmitted by Danny Milosavljevic.
Details
3 participants
  • Danny Milosavljevic
  • Efraim Flashner
  • Mathieu Othacehe
Owner
unassigned
Severity
normal
D
D
Danny Milosavljevic wrote on 11 Jun 23:05 +0200
(address . guix-patches@gnu.org)(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20200611210540.28722-1-dannym@scratchpost.org
Danny Milosavljevic (4): gnu: busybox: Make build reproducible. gnu: busybox: Update to 1.31.1. gnu: busybox: Fix build with new glibc. gnu: busybox: Fix test.
gnu/local.mk | 1 + gnu/packages/busybox.scm | 14 +++- ...box-1.31.1-fix-build-with-glibc-2.31.patch | 68 +++++++++++++++++++ 3 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch
D
D
Danny Milosavljevic wrote on 11 Jun 23:08 +0200
[PATCH 1/4] gnu: busybox: Make build reproducible.
(address . 41816@debbugs.gnu.org)(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20200611210848.28784-1-dannym@scratchpost.org
* gnu/packages/busybox.scm (busybox)[arguments]<#:phases>[disable-timestamps]:New phase.--- gnu/packages/busybox.scm | 4 ++++ 1 file changed, 4 insertions(+)
Toggle diff (15 lines)diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scmindex e3431aa31b..0d692c6586 100644--- a/gnu/packages/busybox.scm+++ b/gnu/packages/busybox.scm@@ -45,6 +45,10 @@ (arguments '(#:phases (modify-phases %standard-phases+ (add-before 'configure 'disable-timestamps+ (lambda _+ (setenv "KCONFIG_NOTIMESTAMP" "1")+ #t)) (add-before 'configure 'disable-taskset ;; This feature fails its tests in the build environment, ;; was default 'n' until after 1.26.2.
D
D
Danny Milosavljevic wrote on 11 Jun 23:08 +0200
[PATCH 2/4] gnu: busybox: Update to 1.31.1.
(address . 41816@debbugs.gnu.org)(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20200611210848.28784-2-dannym@scratchpost.org
* gnu/packages/busybox.scm (busybox): Update to 1.31.1.--- gnu/packages/busybox.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Toggle diff (22 lines)diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scmindex 0d692c6586..61a382e854 100644--- a/gnu/packages/busybox.scm+++ b/gnu/packages/busybox.scm@@ -32,7 +32,7 @@ (define-public busybox (package (name "busybox")- (version "1.29.3")+ (version "1.31.1") (source (origin (method url-fetch) (uri (string-append@@ -40,7 +40,7 @@ version ".tar.bz2")) (sha256 (base32- "1dzg45vgy2w1xcd3p6h8d76ykhabbvk1h0lf8yb24ikrwlv8cr4p"))))+ "1659aabzp8w4hayr4z8kcpbk2z1q2wqhw7i1yb0l72b45ykl1yfh")))) (build-system gnu-build-system) (arguments '(#:phases
D
D
Danny Milosavljevic wrote on 11 Jun 23:08 +0200
[PATCH 4/4] gnu: busybox: Fix test.
(address . 41816@debbugs.gnu.org)(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20200611210848.28784-4-dannym@scratchpost.org
* gnu/packages/busybox.scm (busybox)[arguments]<#:phases>[check]: Fix test.--- gnu/packages/busybox.scm | 3 +++ 1 file changed, 3 insertions(+)
Toggle diff (14 lines)diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scmindex dce5ccf766..305a61f40b 100644--- a/gnu/packages/busybox.scm+++ b/gnu/packages/busybox.scm@@ -82,6 +82,9 @@ (substitute* "testsuite/date/date-works-1" (("/bin/date") (which "date"))) + (substitute* "testsuite/start-stop-daemon.tests"+ (("/bin/false") (which "false")))+ ;; The pidof tests assume that pid 1 is called "init" but that is not ;; true in guix build environment (substitute* "testsuite/pidof.tests"
D
D
Danny Milosavljevic wrote on 11 Jun 23:08 +0200
[PATCH 3/4] gnu: busybox: Fix build with new glibc.
(address . 41816@debbugs.gnu.org)(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20200611210848.28784-3-dannym@scratchpost.org
* gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch: Newfile.* gnu/local.mk (dist_patch_DATA): Add it.* gnu/packages/busybox.scm (busybox)[source]: Use it.--- gnu/local.mk | 1 + gnu/packages/busybox.scm | 5 +- ...box-1.31.1-fix-build-with-glibc-2.31.patch | 68 +++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch
Toggle diff (102 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 76d6b5deba..221e3b12e4 100644--- a/gnu/local.mk+++ b/gnu/local.mk@@ -805,6 +805,7 @@ dist_patch_DATA = \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ %D%/packages/patches/blender-2.79-python-3.7-fix.patch \ %D%/packages/patches/bluez-CVE-2020-0556.patch \+ %D%/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/calibre-msgpack-compat.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scmindex 61a382e854..dce5ccf766 100644--- a/gnu/packages/busybox.scm+++ b/gnu/packages/busybox.scm@@ -40,7 +40,10 @@ version ".tar.bz2")) (sha256 (base32- "1659aabzp8w4hayr4z8kcpbk2z1q2wqhw7i1yb0l72b45ykl1yfh"))))+ "1659aabzp8w4hayr4z8kcpbk2z1q2wqhw7i1yb0l72b45ykl1yfh"))+ (patches+ (search-patches+ "busybox-1.31.1-fix-build-with-glibc-2.31.patch")))) (build-system gnu-build-system) (arguments '(#:phasesdiff --git a/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch b/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patchnew file mode 100644index 0000000000..1518df067f--- /dev/null+++ b/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch@@ -0,0 +1,68 @@+See: https://bugs.gentoo.org/708350+Author: Patrick McLean <patrick.mclean@sony.com>+Date: 2020-02-06 23:06:22 +0000+diff --git a/coreutils/date.c b/coreutils/date.c+index 3414d38ae..4ade6abb4 100644+--- a/coreutils/date.c++++ b/coreutils/date.c+@@ -279,6 +279,9 @@ int date_main(int argc UNUSED_PARAM, char **argv)+ time(&ts.tv_sec);+ #endif+ }++#if !ENABLE_FEATURE_DATE_NANO++ ts.tv_nsec = 0;++#endif+ localtime_r(&ts.tv_sec, &tm_time);+ + /* If date string is given, update tm_time, and maybe set date */+@@ -301,9 +304,10 @@ int date_main(int argc UNUSED_PARAM, char **argv)+ if (date_str[0] != '@')+ tm_time.tm_isdst = -1;+ ts.tv_sec = validate_tm_time(date_str, &tm_time);++ ts.tv_nsec = 0;+ + /* if setting time, set it */+- if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {++ if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {+ bb_perror_msg("can't set date");+ }+ }+diff --git a/libbb/missing_syscalls.c b/libbb/missing_syscalls.c+index 87cf59b3d..dc40d9155 100644+--- a/libbb/missing_syscalls.c++++ b/libbb/missing_syscalls.c+@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid)+ return syscall(__NR_getsid, pid);+ }+ +-int stime(const time_t *t)+-{+- struct timeval tv;+- tv.tv_sec = *t;+- tv.tv_usec = 0;+- return settimeofday(&tv, NULL);+-}+-+ int sethostname(const char *name, size_t len)+ {+ return syscall(__NR_sethostname, name, len);+diff --git a/util-linux/rdate.c b/util-linux/rdate.c+index 70f829e7f..878375d78 100644+--- a/util-linux/rdate.c++++ b/util-linux/rdate.c+@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, char **argv)+ if (!(flags & 2)) { /* no -p (-s may be present) */+ if (time(NULL) == remote_time)+ bb_error_msg("current time matches remote time");+- else+- if (stime(&remote_time) < 0)++ else {++ struct timespec ts;++ ts.tv_sec = remote_time;++ ts.tv_nsec = 0;++ if (clock_settime(CLOCK_REALTIME, &ts) < 0)+ bb_perror_msg_and_die("can't set time of day");++ }+ }+ + if (flags != 1) /* not lone -s */
E
E
Efraim Flashner wrote on 14 Jun 12:31 +0200
Re: [bug#41816] [PATCH 0/4] Fix busybox.
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)(address . 41816@debbugs.gnu.org)
20200614103128.GA1990@E5400
On Thu, Jun 11, 2020 at 11:05:40PM +0200, Danny Milosavljevic wrote:
Toggle quote (12 lines)> Danny Milosavljevic (4):> gnu: busybox: Make build reproducible.> gnu: busybox: Update to 1.31.1.> gnu: busybox: Fix build with new glibc.> gnu: busybox: Fix test.> > gnu/local.mk | 1 +> gnu/packages/busybox.scm | 14 +++-> ...box-1.31.1-fix-build-with-glibc-2.31.patch | 68 +++++++++++++++++++> 3 files changed, 81 insertions(+), 2 deletions(-)> create mode 100644 gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch
It looks like patches 2-4 should all be combined, since without patch 3or 4 the update to 1.31.1 doesn't produce a working package at the end.
-- Efraim Flashner <efraim@flashner.co.il> אפרים פלשנרGPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl7l/H0ACgkQQarn3Mo9g1Gx0BAAt/3/a1VFu1WGA3oerbyS3ndNSQjsoFbR5lzzhZP4sSOXzCsk89EVsYilz3LkrhUexErne7i0n/7FWHvIjiskw0gYTQ1XiVtDeO2mauG3A7jgH7HA3PwMZpx4VYjSSlE6eZPExOj0Fx52rj0lvgMxUHh7AZaeJD6TCMvUXeU674IcyIpbRroGeXhoKhfDSZbtJfMxyeV+AUd3EhiGi8ag4kvX6ob5sKvfAOidKgFWT87XI+YO/6ewSd5OXgCEFEPG+X1C97ZC5JghCfMLhOwX4trktpqygYmGdTsgzF+pNiNZwfV6MoKCo3YkQufDJlmaCLDMqy0jXHTIcd9N/WRC+ZIbCQOmXGoSIeWHPsgiBxfLcvd3iibLMid6gBn+4sGfDOQUuBvcZ65wWi3Q0boxtNa4LORPCEX6ELEt44vLTsrZT/1SkFyPBErGceA0Y+ZCcy0dQKZApvX7G7+iyGQKBpwrpfsE45AJB9ZaHY27UcZm5L64r7g7vXxUTgUxgqZOm8F8wyA+C+FYEGap49/b1JxyrlhMMKNxU5PdZTGD35uJCzfb0YEwoyZgd9dxd828fAy6d6j69cLRTIDBB1UL9qNaB2sUTlJ23i4I07/88g+W17N2SbjY3DmLxCN8/aaH5nhCcY7h3Z3odFggTBLItFRQjap5huJzcTZbTkBTszw==o5ZY-----END PGP SIGNATURE-----

M
M
Mathieu Othacehe wrote on 14 Jun 12:37 +0200
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)(address . 41816@debbugs.gnu.org)
87v9juj5li.fsf@gnu.org
Hello Danny,
Toggle quote (6 lines)> gnu/local.mk | 1 +> gnu/packages/busybox.scm | 14 +++-> ...box-1.31.1-fix-build-with-glibc-2.31.patch | 68 +++++++++++++++++++> 3 files changed, 81 insertions(+), 2 deletions(-)> create mode 100644 gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch
You may want to merge patches 2-4 as Efraim noted, otherwise this looksfine to me :)
Thanks,
Mathieu
D
D
Danny Milosavljevic wrote on 14 Jun 13:06 +0200
[PATCH 0/4] Fix busybox.
(address . 41816-done@debbugs.gnu.org)
20200614130620.54483614@scratchpost.org
Patchset squashed and merged as commits c37dc30e61c56de1815750e52186c6de5be38ee9and 4fdf3a2e6ef0d635e79aaf912c6997d2cd978835.
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCgAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl7mBKwACgkQ5xo1VCwwuqWbowgAp4k5aN8I0QQA5ERYXKO2a7HfBHbjZx34o7SPS4khM4tPA7KOn+TBPZ0ylVcFdsxUrE2sCeYUAdG4X2zk9RP+IbQ1zkmfjPw+EEe9WNnJ+8DeIlP2ttlscmc9A9CNRtBNDFcF4izsXKODLkZOgMNkbKDgrmajRVd4ykGQ6bu4n9T7zYF2AMEj5JQEgojRjEXSzjRbucx0iXQKD4lO/wHVkPVsbTlY19lFHlr6pzKhbIuvKjd30iHAaz49dsZWes/oPJ5DxV66f8VFGIDIOJnAr+zi23wAnRCwogfW8JOgsYUDGA2WlMkkaONSGmBT+LFiLTiBHDDmS6tRFCQm8numhg===QoVq-----END PGP SIGNATURE-----

Closed
?