Bug#885709: nvidia-settings: libgtk{2,3} dependencies need updating
Control: tag -1 pending On 2018-01-12 16:58, Graham Inggs wrote: > This worked for me in Ubuntu: > > sed -ri -e 's/(^[^:]*:Depends=)/\1 GTK3 | GTK2,/' \ > -e 's/(GTK2)(.*)(libgtk2.0-0 \([^\)]*\))/\3\2/' \ > -e 's/(GTK3)(.*)(libgtk-3-0 \([^\)]*\))/\3\2/' \ > debian/nvidia-settings.substvars ; \ We need this fix for gtk2 in Debian now, too. Queued up for the next upload after the stretch-pu series is done. Andreas
Bug#885709: nvidia-settings: libgtk{2,3} dependencies need updating
On 12/01/2018 16:11, Andreas Beckmann wrote: Disk is cheaper than brain :-) Metadata goes on many disks! doing all the dependency manipulation in sed (*UNTESTED*), (drop the manual libgtk deps in d/control): s/(^[^:]*:)/\1 GTK3 | GTK2,/ s/(GTK2)(.*)(libgtk2.0-0 \([^\)]*\))/\3\2/ s/(GTK3)(.*)(libgtk-3-0 \([^\)]*\))/\3\2/ This worked for me in Ubuntu: sed -ri -e 's/(^[^:]*:Depends=)/\1 GTK3 | GTK2,/' \ -e 's/(GTK2)(.*)(libgtk2.0-0 \([^\)]*\))/\3\2/' \ -e 's/(GTK3)(.*)(libgtk-3-0 \([^\)]*\))/\3\2/' \ debian/nvidia-settings.substvars ; \ but not doing fancy things is much less fragile ... It's your call.
Bug#885709: nvidia-settings: libgtk{2,3} dependencies need updating
On 2018-01-12 11:25, Graham Inggs wrote: > On 12/01/2018 02:45, Andreas Beckmann wrote: >> The most generic solution would probably be to split nvidia-settings >> into three packages: nvidia-settings, libnvidia-gtk2, libnvidia-gtk3 >> and drop any gtk dependency magic we currently have. > > That would work, but I still don't like the idea as these "shared > libraries" or "plugins" are only used by nvidia-settings and aren't > shared with anything else and would just waste in the archive metadata. > Besides, I expect the gtk2 version to fall away at some point. Disk is cheaper than brain :-) > So, although no change is needed in Debian right now, I do think the > regexes on (>= 2.8.0) and (>= 3.0.0) are a little fragile and either > should be relaxed, or should fail if no match is found so at least an > unexpected change can be caught. doing all the dependency manipulation in sed (*UNTESTED*), (drop the manual libgtk deps in d/control): s/(^[^:]*:)/\1 GTK3 | GTK2,/ s/(GTK2)(.*)(libgtk2.0-0 \([^\)]*\))/\3\2/ s/(GTK3)(.*)(libgtk-3-0 \([^\)]*\))/\3\2/ but not doing fancy things is much less fragile ... branch WIP/split-gtk contains a commit doing the package split and removing the fragile magic. (There are no breaks+replaces, this is intended to be introduced with a new upstream release which renames the moved files.) Andreas
Bug#885709: nvidia-settings: libgtk{2,3} dependencies need updating
On 12/01/2018 02:45, Andreas Beckmann wrote: I don't see such behavior in sid on amd64/i386/armhf - is this specific to Ubuntu? Sorry for not checking that. Indeed, this is specific to Ubuntu where libgtk2.0-0.symbols gained a bunch of symbols like: g_cclosure_marshal_VOID__*@Base 2.24.31 ...and libnvidia-gtk2.so built in Ubuntu imports g_cclosure_marshal_VOID__POINTER and g_cclosure_marshal_VOID__VOID The most generic solution would probably be to split nvidia-settings into three packages: nvidia-settings, libnvidia-gtk2, libnvidia-gtk3 and drop any gtk dependency magic we currently have. That would work, but I still don't like the idea as these "shared libraries" or "plugins" are only used by nvidia-settings and aren't shared with anything else and would just waste in the archive metadata. Besides, I expect the gtk2 version to fall away at some point. So, although no change is needed in Debian right now, I do think the regexes on (>= 2.8.0) and (>= 3.0.0) are a little fragile and either should be relaxed, or should fail if no match is found so at least an unexpected change can be caught.
Bug#885709: nvidia-settings: libgtk{2,3} dependencies need updating
On 2017-12-29 13:23, Graham Inggs wrote: > While finally trying to backport this change [1] into Ubuntu's > packaging, I noticed, at least since the upload of gtk+2.0 2.24.31-1, > that nvidia-settings now depends on libgtk2.0-0 (>= 2.24.31) and the > regex in the override_dh_gencontrol target of debian/rules no longer > works. I don't see such behavior in sid on amd64/i386/armhf - is this specific to Ubuntu? The most generic solution would probably be to split nvidia-settings into three packages: nvidia-settings, libnvidia-gtk2, libnvidia-gtk3 and drop any gtk dependency magic we currently have. Andreas
Bug#885709: nvidia-settings: libgtk{2,3} dependencies need updating
Source: nvidia-settings Version: 384.98-1 Hi While finally trying to backport this change [1] into Ubuntu's packaging, I noticed, at least since the upload of gtk+2.0 2.24.31-1, that nvidia-settings now depends on libgtk2.0-0 (>= 2.24.31) and the regex in the override_dh_gencontrol target of debian/rules no longer works. Changing the regex in line 80 [2] of debian/rules to: sed -ri -e 's/libgtk2.0-0 \(>= 2.*\)//' \ worked for me, but now I wonder whether we need to bump the dependency in debian/control from libgtk2.0-0 (>= 2.8.0) to (>= 2.24.31), and then whether the build-depends on libgtk2.0-dev would need to be versioned as well. Not very backport friendly :( Regards Graham [1] https://anonscm.debian.org/cgit/pkg-nvidia/nvidia-settings.git/commit/?id=ea169261264f7d8b80e3e091a131cb98343e7d3f [2] https://sources.debian.org/src/nvidia-settings/384.98-1/debian/rules/#L80