[PATCH 0/4] Fix busybox.

  • Done
  • quality assurance status badge
Details
3 participants
  • Danny Milosavljevic
  • Efraim Flashner
  • Mathieu Othacehe
Owner
unassigned
Submitted by
Danny Milosavljevic
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
?