Bug#884309: starpu-examples: depends indirectly on nonfree package libsocl-contrib-1.2-0

2017-12-13 Thread Jonas Smedegaard
Package: starpu-examples
Version: 1.2.3+dfsg-3
Severity: serious
Justification: Policy 2.2.1

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

starpu-examples depends on libsocl-1.2-0.

libsocl-1.2-0 is a regular package in Debian main, but is also provided
by nonfree package libsocl-contrib-1.2-0.

Debian Policy § 2.1.1 requires packages outside main be "only listed as
non-default choice":

> must not require or recommend a package outside of main for
> compilation or execution (thus, the package must not declare a
> Pre-Depends, Depends, Recommends, Build-Depends, Build-Depends-Indep,
> or Build-Depends-Arch relationship on a non-main package unless that
> package is only listed as a non-default alternative for a package in
> main)

A user enabling contrib and nonfree should only get such packages when
explicitly choosing to install them.  When multiple packages satisfy a
default dependency or recommendation, it is non-deterministic which of
them APT picks.

Please tighten to use a versioned dependency, which should make the
dependency deterministic - or (since I notice you maintain both) make
libsocl-contrib-1.2-0 stop provide 1.2.3+dfsg-3 (it seems used nowhere
else than here).

 - Jonas

-BEGIN PGP SIGNATURE-

iQIzBAEBCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAloxT0kACgkQLHwxRsGg
ASEI1A/+MQFyJXA0nluS55kmChtqR/FFHz/6Edz7LgdlCUKKRZh5emqr9L+5CEB+
ZaOyNpx2nHPf3zDKPR2Pd0cwWJhW3+7kRchbzqe5n2j/ADIlZ+6xx6DHZP43/QWB
QE1bJf0POTCK7fxi3fz3Hm7+BdnYt06WmWmhCCI+vBLFvwDWkxgMKv73+cTkJXzw
/uXVEKdDLeN4Fx5IxWNHOleLoiKlYzTkZxJXUlEaHHR1Sy8TK/A6D7dkj1KNMsAl
DbbvHPguOZyVxz6+OoKhJ/vHuY6LSzftA9qiE6kpn2gOrtE9txPw/3P0bAktoV2o
hoaCWELgpjMqh//ErJ3kijQHffb0GGWNo5rTebx25XTB2rsn6c5XaQCS078U5IOh
YuhP9MyVXnaNUwSjxOLkuqWABe7/w7UCITnrT8bfPM3aKpv2hEhBr+zXjQwoL42V
0o6XxZajVwssNOVYLxO8xN1sG2bBT9CwQZsGHFS2vg4LsAzdtbHIzy/yPpteApZn
cz6XX22Vu/CkIrkQzpIjfPyDV7S8KPceWo0nlr/bgspb0lnrNg9lOXHnGCAFmAvp
5F8XPb6oSvpC7l0F3dbCMH0Qu77XWoIWlZFZknvcH8f13UJRTtUPKcS9f0QXXcZP
x0Z9bDNfmdcuBnlLWFKPhVXFXHwNMBmxFrRNptFDGZp+Fv/YfS4=
=L225
-END PGP SIGNATURE-


Bug#884309: starpu-examples: depends indirectly on nonfree package libsocl-contrib-1.2-0

2017-12-13 Thread Samuel Thibault
Hello,

Jonas Smedegaard, on mer. 13 déc. 2017 17:03:24 +0100, wrote:
> Please tighten to use a versioned dependency, which should make the
> dependency deterministic - or (since I notice you maintain both) make
> libsocl-contrib-1.2-0 stop provide 1.2.3+dfsg-3 (it seems used nowhere
> else than here).

Err, the whole point of the libsocl-contrib package *is* to provide the
libsocl package, so that a user can choose between running the free
version or the contrib version (the fact that no other package in the
archive uses starpu yet isn't an argument).

I'd be happy to do whatever apt wants to avoid pulling
libsocl-contrib-1.2-0 by misluck while keeping the Provides, but TBH
I'd rather argue that apt should just always warn the user on any new
installation of a contrib or non-free package. For instance, if I look
for a TTS engine, I can use

  apt-cache search tts

and find

  libttspico-dev - Small Footprint TTS (development files)

which looks cool, so let's run

  apt-get install libttspico-dev

The following additional packages will be installed:
  libttspico-data libttspico0
The following NEW packages will be installed:
  libttspico-data libttspico-dev libttspico0
0 upgraded, 3 newly installed, 0 to remove and 139 not upgraded.
Need to get 4464 kB of archives.
After this operation, 7510 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

Nothing tells me it's non-free software, until seeing

Get:1 http://ftp.fr.debian.org/debian stretch/non-free amd64 libttspico-data 
all 1.0+git20130326-5 [4151 kB]

which happens to be too late.

Samuel



Bug#884309: starpu-examples: depends indirectly on nonfree package libsocl-contrib-1.2-0

2017-12-13 Thread Jonas Smedegaard
[re-posting, to bug this time - thanks for noticing, Samuel!]

Quoting Samuel Thibault (2017-12-13 17:15:55)
> Jonas Smedegaard, on mer. 13 déc. 2017 17:03:24 +0100, wrote:
>> Please tighten to use a versioned dependency, which should make the 
>> dependency deterministic - or (since I notice you maintain both) make 
>> libsocl-contrib-1.2-0 stop provide 1.2.3+dfsg-3 (it seems used 
>> nowhere else than here).
>
> Err, the whole point of the libsocl-contrib package *is* to provide 
> the libsocl package, so that a user can choose between running the 
> free version or the contrib version (the fact that no other package in 
> the archive uses starpu yet isn't an argument).

Sorry - I didn't mean to ruin flexibility, and I agree flexibility is 
good even when not (yet?) embraced by other packages.


> I'd be happy to do whatever apt wants to avoid pulling 
> libsocl-contrib-1.2-0 by misluck while keeping the Provides, but TBH 
> I'd rather argue that apt should just always warn the user on any new 
> installation of a contrib or non-free package.

I agree that APT could be improved to help avoid surprises when used 
interactively.

...but that is future (and possibly addresses only interactive use 
cases, depending on how it might be implemented).

The issue I raise here is more generally that the package dependencies 
declared are not deterministic regarding main versus non-main packages.


 - Jonas

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/

 [x] quote me freely  [ ] ask before reusing  [ ] keep private


signature.asc
Description: signature


Bug#884309: starpu-examples: depends indirectly on nonfree package libsocl-contrib-1.2-0

2017-12-13 Thread Samuel Thibault
Re-answering :)

Jonas Smedegaard, on mer. 13 déc. 2017 19:36:47 +0100, wrote:
> The issue I raise here is more generally that the package dependencies 
> declared are not deterministic regarding main versus non-main packages.

I understand, but I don't know how to express what we want: both
choice for the user, and main by default.

Samuel



Bug#884309: starpu-examples: depends indirectly on nonfree package libsocl-contrib-1.2-0

2017-12-13 Thread Jonas Smedegaard
Quoting Samuel Thibault (2017-12-13 17:15:55)
> Jonas Smedegaard, on mer. 13 déc. 2017 17:03:24 +0100, wrote:
>> Please tighten to use a versioned dependency, which should make the 
>> dependency deterministic - or (since I notice you maintain both) make 
>> libsocl-contrib-1.2-0 stop provide 1.2.3+dfsg-3 (it seems used 
>> nowhere else than here).
>
> Err, the whole point of the libsocl-contrib package *is* to provide 
> the libsocl package, so that a user can choose between running the 
> free version or the contrib version (the fact that no other package in 
> the archive uses starpu yet isn't an argument).
> 
> I'd be happy to do whatever apt wants to avoid pulling 
> libsocl-contrib-1.2-0 by misluck while keeping the Provides,

I believe this addresses the issue concretely:

Depends: libsocl-1.2-0 (= 1.2.3+dfsg-3) | libsocl-1.2-0


 - Jonas

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/

 [x] quote me freely  [ ] ask before reusing  [ ] keep private


signature.asc
Description: signature


Bug#884309: starpu-examples: depends indirectly on nonfree package libsocl-contrib-1.2-0

2017-12-13 Thread Jonas Smedegaard
Quoting Samuel Thibault (2017-12-13 19:54:59)
> Re-answering :)
> 
> Jonas Smedegaard, on mer. 13 déc. 2017 19:36:47 +0100, wrote:
>> The issue I raise here is more generally that the package 
>> dependencies declared are not deterministic regarding main versus 
>> non-main packages.
> 
> I understand, but I don't know how to express what we want: both 
> choice for the user, and main by default.

I believe (as I just now posted in a separate mail) it is doable by 
first declaring with version and then without version.

But possibly that is not strict enough, because recently APT gained 
support for versioned virtual packages.  Better would be that you change 
to use a different name for the virtual package, and then declare that 
virtual package last - like this:

Depends: libsocl-1.2-0 (= 1.2.3+dfsg-3) | libsocl-any-1.2-0


 - Jonas

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/

 [x] quote me freely  [ ] ask before reusing  [ ] keep private


signature.asc
Description: signature


Bug#884309: starpu-examples: depends indirectly on nonfree package libsocl-contrib-1.2-0

2017-12-13 Thread Samuel Thibault
Jonas Smedegaard, on mer. 13 déc. 2017 20:16:50 +0100, wrote:
> Better would be that you change to use a different name for the
> virtual package, and then declare that virtual package last - like
> this:
> 
> Depends: libsocl-1.2-0 (= 1.2.3+dfsg-3) | libsocl-any-1.2-0

Ok, will do that, thanks.

Samuel



Bug#884309: starpu-examples: depends indirectly on nonfree package libsocl-contrib-1.2-0

2017-12-14 Thread Adrian Bunk
On Wed, Dec 13, 2017 at 07:54:59PM +0100, Samuel Thibault wrote:
> Re-answering :)
> 
> Jonas Smedegaard, on mer. 13 déc. 2017 19:36:47 +0100, wrote:
> > The issue I raise here is more generally that the package dependencies 
> > declared are not deterministic regarding main versus non-main packages.
> 
> I understand, but I don't know how to express what we want: both
> choice for the user, and main by default.

The problem is that the package is both real and virtual, the proper 
solution would be to rename libsocl-1.2-0 to libsocl-free-1.2-0 and
have it provide libsocl-1.2-0.

After that the usual way of  |  dependency would work
with libsocl-free-1.2-0 | libsocl-1.2-0.

This is non-trivial to sort out right now, but please consider changing 
the package naming scheme the next time the soname changes.

Related to that, what is actually the difference between the packages in 
main and the packages in contrib?
The package descriptions are currently identical.

> Samuel

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#884309: starpu-examples: depends indirectly on nonfree package libsocl-contrib-1.2-0

2017-12-14 Thread Samuel Thibault
Adrian Bunk, on jeu. 14 déc. 2017 19:46:19 +0200, wrote:
> Related to that, what is actually the difference between the packages in 
> main and the packages in contrib?

It happens that for libsocl there is no difference. For other starpu
packages, it's the availability of the CUDA support.

Samuel



Bug#884309: starpu-examples: depends indirectly on nonfree package libsocl-contrib-1.2-0

2017-12-14 Thread Adrian Bunk
On Thu, Dec 14, 2017 at 06:48:33PM +0100, Samuel Thibault wrote:
> Adrian Bunk, on jeu. 14 déc. 2017 19:46:19 +0200, wrote:
> > Related to that, what is actually the difference between the packages in 
> > main and the packages in contrib?
> 
> It happens that for libsocl there is no difference. For other starpu
> packages, it's the availability of the CUDA support.

Sorry for being unclear on that.

I do (at least right now) not personally care about that.

But please make that somehow visible in the package descriptions.

> Samuel

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed