[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

Debbugs page

Danny Milosavljevic wrote 5 years ago
(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
Danny Milosavljevic wrote 5 years ago
[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.
Danny Milosavljevic wrote 5 years ago
[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
Danny Milosavljevic wrote 5 years ago
[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"
Danny Milosavljevic wrote 5 years ago
[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 */
Efraim Flashner wrote 5 years ago
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-----


Mathieu Othacehe wrote 5 years ago
(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
Danny Milosavljevic wrote 5 years ago
[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 an email to 41816@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 41816
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help