Package: busybox Version: 1:1.30.1-4 Severity: important Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu focal ubuntu-patch
Dear maintainers, In Ubuntu, the busybox package has begun to FTBFS because Ubuntu has moved to glibc 2.31, which has obsoleted the stime() function and busybox still calls this function. The attached patch has been uploaded to Ubuntu, replacing the calls to stime() with clock_settime(), per the glibc upstream documentation. This is not a serious bug today in Debian because glibc 2.31 is only in experimental, but at some point it will become a serious FTBFS. Thanks, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org
diff -Nru busybox-1.30.1/debian/patches/series busybox-1.30.1/debian/patches/series --- busybox-1.30.1/debian/patches/series 2019-05-23 06:37:05.000000000 -0700 +++ busybox-1.30.1/debian/patches/series 2020-03-30 07:43:36.000000000 -0700 @@ -14,3 +14,4 @@ temp-deb-installer-hack.patch install-readlink-in-bin.patch ignore-ip-valid_lft.patch +stime-is-clock_settime.patch diff -Nru busybox-1.30.1/debian/patches/stime-is-clock_settime.patch busybox-1.30.1/debian/patches/stime-is-clock_settime.patch --- busybox-1.30.1/debian/patches/stime-is-clock_settime.patch 1969-12-31 16:00:00.000000000 -0800 +++ busybox-1.30.1/debian/patches/stime-is-clock_settime.patch 2020-03-30 08:37:00.000000000 -0700 @@ -0,0 +1,46 @@ +Description: stime is obsolete, use clock_settime instead +Author: Steve Langasek <steve.langa...@ubuntu.com> +Last-Update: 2020-03-30 + +Index: busybox-1.30.1/util-linux/rdate.c +=================================================================== +--- busybox-1.30.1.orig/util-linux/rdate.c ++++ busybox-1.30.1/util-linux/rdate.c +@@ -79,11 +79,13 @@ + int rdate_main(int argc UNUSED_PARAM, char **argv) + { + time_t remote_time; ++ struct timespec remote_timespec = { 0, 0 }; + unsigned flags; + + flags = getopt32(argv, "^" "sp" "\0" "-1"); + + remote_time = askremotedate(argv[optind]); ++ remote_timespec.tv_sec = remote_time; + + /* Manpages of various Unixes are confusing. What happens is: + * (no opts) set and print time +@@ -96,7 +98,7 @@ + if (time(NULL) == remote_time) + bb_error_msg("current time matches remote time"); + else +- if (stime(&remote_time) < 0) ++ if (clock_settime(CLOCK_REALTIME, &remote_timespec) < 0) + bb_perror_msg_and_die("can't set time of day"); + } + +Index: busybox-1.30.1/coreutils/date.c +=================================================================== +--- busybox-1.30.1.orig/coreutils/date.c ++++ busybox-1.30.1/coreutils/date.c +@@ -303,7 +303,9 @@ + ts.tv_sec = validate_tm_time(date_str, &tm_time); + + /* if setting time, set it */ +- if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) { ++ if ((opt & OPT_SET) ++ && clock_settime(CLOCK_REALTIME, &ts.tv_sec) < 0) ++ { + bb_perror_msg("can't set date"); + } + }