[Pkg-opt-media-team] Bug#916251: dvd+rw-tools: FTBFS with glibc 2.28

Logan Rosen logan at ubuntu.com
Wed Dec 12 04:52:01 GMT 2018


Source: dvd+rw-tools
Version: 7.1-13
Severity: serious
Tags: patch ftbfs
Justification: fails to build from source (but built successfully in the past)
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu disco ubuntu-patch

Dear Maintainer,

dvd+rw-tools currently fails to build from source with glibc 2.28
because they changed the way the 'major' and 'minor' macros can be
accessed. [1] Specifically:

* The macros 'major', 'minor', and 'makedev' are now only available from
  the header <sys/sysmacros.h>; not from <sys/types.h> or various other
  headers that happen to include <sys/types.h>.  These macros are rarely
  used, not part of POSIX nor XSI, and their names frequently collide with
  user code; see https://sourceware.org/bugzilla/show_bug.cgi?id=19239 for
  further explanation.

  <sys/sysmacros.h> is a GNU extension.  Portable programs that require
  these macros should first include <sys/types.h>, and then include
  <sys/sysmacros.h> if __GNU_LIBRARY__ is defined.

We saw the following errors while building in Ubuntu accordingly:
growisofs.o growisofs_mmc.o  -lpthread -o growisofs
/usr/bin/ld: growisofs.o: in function `find_raw_device':
./growisofs.c:658: undefined reference to `major'
/usr/bin/ld: ./growisofs.c:659: undefined reference to `minor'
/usr/bin/ld: growisofs.o: in function `grab_sg':
./growisofs.c:704: undefined reference to `minor'
collect2: error: ld returned 1 exit status

This is reproducible in sid as well.

In Ubuntu, the attached patch was applied to achieve the following:

  * debian/patches/glibc-2.28.patch: Fix FTBFS with glibc >= 2.28.

Thanks for considering the patch.

Logan Rosen

[1] https://www.sourceware.org/ml/libc-alpha/2018-08/msg00003.html

-- System Information:
Debian Release: buster/sid
  APT prefers cosmic-updates
  APT policy: (500, 'cosmic-updates'), (500, 'cosmic-security'), (500, 'cosmic'), (400, 'cosmic-proposed'), (100, 'cosmic-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.18.0-12-generic (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
-------------- next part --------------
diff -Nru dvd+rw-tools-7.1/debian/patches/glibc-2.28.patch dvd+rw-tools-7.1/debian/patches/glibc-2.28.patch
--- dvd+rw-tools-7.1/debian/patches/glibc-2.28.patch	1969-12-31 19:00:00.000000000 -0500
+++ dvd+rw-tools-7.1/debian/patches/glibc-2.28.patch	2018-12-11 23:42:00.000000000 -0500
@@ -0,0 +1,26 @@
+--- a/growisofs.c
++++ b/growisofs.c
+@@ -444,6 +444,10 @@
+ #include <assert.h>
+ #include "mp.h"
+ 
++#if defined(__GNU_LIBRARY__)
++# include <sys/sysmacros.h>
++#endif
++
+ #if defined(__unix) || defined(__unix__)
+ # include <unistd.h>
+ # include <sys/time.h>
+--- a/transport.hxx
++++ b/transport.hxx
+@@ -53,6 +53,10 @@
+ #define ENV_LOCALE	".OCP"
+ #endif
+ 
++#if defined(__GNU_LIBRARY__)
++# include <sys/sysmacros.h>
++#endif
++
+ #include "asctable.h"
+ 
+ #define CREAM_ON_ERRNO_NAKED(s)				\
diff -Nru dvd+rw-tools-7.1/debian/patches/series dvd+rw-tools-7.1/debian/patches/series
--- dvd+rw-tools-7.1/debian/patches/series	2018-10-09 10:05:01.000000000 -0400
+++ dvd+rw-tools-7.1/debian/patches/series	2018-12-11 23:38:51.000000000 -0500
@@ -10,3 +10,4 @@
 ignore_pseudo_overwrite.patch
 10-blue-ray-bug713016.patch
 fix_burning_bd-r_discs.patch
+glibc-2.28.patch


More information about the Pkg-opt-media-team mailing list