[Live-devel] Patches in the Debian package

Benjamin Drung bdrung at debian.org
Sun Dec 23 17:37:23 PST 2012


Am Montag, den 24.12.2012, 10:36 +1000 schrieb Ross Finlayson:
> 
> On Dec 23, 2012, at 12:03 AM, Benjamin Drung <bdrung at debian.org>
> wrote:
> 
> > Am Samstag, den 22.12.2012, 13:22 +1000 schrieb Ross Finlayson:
> > > 2/ The second 'patch' seems wrong to me.  I don't understand why
> > > any
> > > system would define "struct ip_mreq_source", but not also define
> > > "IP_ADD_SOURCE_MEMBERSHIP" (a constant that makes that structure
> > > useful).  I recommend removing the patch.  If anyone feels that it
> > > is,
> > > in fact, necessary, then they can post a message to this mailing
> > > list
> > > (as they should have done in the first place!) explaining why they
> > > think it's needed.
> > 
> > This patch is needed for Debian GNU/Hurd. Otherwise it will fail
> > with
> > 
> > c++ -c -Iinclude -I../UsageEnvironment/include -I. -O2
> > -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
> > -Wall
> > -DBSD=1 -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector
> > --param=ssp-buffer-size=4 -Wformat -Werror=format-security
> > GroupsockHelper.cpp
> > GroupsockHelper.cpp:447:8: error: redefinition of ‘struct
> > ip_mreq_source’
> 
> 
> The issue is not the fact that Debian GNU/Hurd defines "struct
> ip_mreq_source".  That's perfectly understandable; lots of systems do
> that.  The problem is that this piece of code (where we give our own
> definition of "struct ip_mreq_source") is being reached only because
> the constant "IP_ADD_SOURCE_MEMBERSHIP" is *not* defined.  This is a
> mistake.  "IP_ADD_SOURCE_MEMBERSHIP" *has to be* defined somewhere,
> otherwise "struct ip_mreq_source" has no purpose.

On my system (Ubuntu 12.10, amd64), IP_ADD_SOURCE_MEMBERSHIP is defined
in /usr/include/x86_64-linux-gnu/bits/in.h (<bits/in.h>)
and /usr/include/linux/in.h (<linux/in.h>). struct ip_mreq_source is
defined in /usr/include/netinet/in.h (<netinet/in.h>).

On Debian GNU/Hurd, IP_ADD_SOURCE_MEMBERSHIP is defined nowhere
in /usr/include and struct ip_mreq_source is defined
in /usr/include/netinet/in.h (<netinet/in.h>) as on Linux.

> So the real solution here - rather than this bogus patch - is to find
> out where (in this system) IP_ADD_SOURCE_MEMBERSHIP is defined, and to
> add a patch, if necessary, that makes sure that the appropriate header
> file is #include'd.

-- 
Benjamin Drung
Debian & Ubuntu Developer



More information about the live-devel mailing list