Bug#885709: nvidia-settings: libgtk{2,3} dependencies need updating

2018-02-26 Thread Andreas Beckmann
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

2018-01-12 Thread Graham Inggs

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

2018-01-12 Thread Andreas Beckmann
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

2018-01-12 Thread Graham Inggs

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

2018-01-11 Thread Andreas Beckmann
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

2017-12-29 Thread Graham Inggs
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