[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 2020 23:05
(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 2020 23:08
[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.scm
index 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 2020 23:08
[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.scm
index 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 2020 23:08
[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.scm
index 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 2020 23:08
[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: New
file.
* 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.mk
index 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.scm
index 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
      '(#:phases
diff --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.patch
new file mode 100644
index 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 2020 12:31
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 3
or 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 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl7l/H0ACgkQQarn3Mo9
g1Gx0BAAt/3/a1VFu1WGA3oerbyS3ndNSQjsoFbR5lzzhZP4sSOXzCsk89EVsYil
z3LkrhUexErne7i0n/7FWHvIjiskw0gYTQ1XiVtDeO2mauG3A7jgH7HA3PwMZpx4
VYjSSlE6eZPExOj0Fx52rj0lvgMxUHh7AZaeJD6TCMvUXeU674IcyIpbRroGeXho
KhfDSZbtJfMxyeV+AUd3EhiGi8ag4kvX6ob5sKvfAOidKgFWT87XI+YO/6ewSd5O
XgCEFEPG+X1C97ZC5JghCfMLhOwX4trktpqygYmGdTsgzF+pNiNZwfV6MoKCo3Yk
QufDJlmaCLDMqy0jXHTIcd9N/WRC+ZIbCQOmXGoSIeWHPsgiBxfLcvd3iibLMid6
gBn+4sGfDOQUuBvcZ65wWi3Q0boxtNa4LORPCEX6ELEt44vLTsrZT/1SkFyPBErG
ceA0Y+ZCcy0dQKZApvX7G7+iyGQKBpwrpfsE45AJB9ZaHY27UcZm5L64r7g7vXxU
TgUxgqZOm8F8wyA+C+FYEGap49/b1JxyrlhMMKNxU5PdZTGD35uJCzfb0YEwoyZg
d9dxd828fAy6d6j69cLRTIDBB1UL9qNaB2sUTlJ23i4I07/88g+W17N2SbjY3DmL
xCN8/aaH5nhCcY7h3Z3odFggTBLItFRQjap5huJzcTZbTkBTszw=
=o5ZY
-----END PGP SIGNATURE-----


M
M
Mathieu Othacehe wrote on 14 Jun 2020 12:37
(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 looks
fine to me :)

Thanks,

Mathieu
D
D
Danny Milosavljevic wrote on 14 Jun 2020 13:06
[PATCH 0/4] Fix busybox.
(address . 41816-done@debbugs.gnu.org)
20200614130620.54483614@scratchpost.org
Patchset squashed and merged as commits c37dc30e61c56de1815750e52186c6de5be38ee9
and 4fdf3a2e6ef0d635e79aaf912c6997d2cd978835.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl7mBKwACgkQ5xo1VCww
uqWbowgAp4k5aN8I0QQA5ERYXKO2a7HfBHbjZx34o7SPS4khM4tPA7KOn+TBPZ0y
lVcFdsxUrE2sCeYUAdG4X2zk9RP+IbQ1zkmfjPw+EEe9WNnJ+8DeIlP2ttlscmc9
A9CNRtBNDFcF4izsXKODLkZOgMNkbKDgrmajRVd4ykGQ6bu4n9T7zYF2AMEj5JQE
gojRjEXSzjRbucx0iXQKD4lO/wHVkPVsbTlY19lFHlr6pzKhbIuvKjd30iHAaz49
dsZWes/oPJ5DxV66f8VFGIDIOJnAr+zi23wAnRCwogfW8JOgsYUDGA2WlMkkaONS
GmBT+LFiLTiBHDDmS6tRFCQm8numhg==
=QoVq
-----END PGP SIGNATURE-----


Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 41816@debbugs.gnu.org