[Fsf-Debian] direct non-free contamination in main
Osamu Aoki
osamu at debian.org
Fri Nov 30 15:27:16 UTC 2012
Hi, (somehow this mail has been blocked by spam filter. 4th try)
This is to show how small is the dependency contamination issue even if we
consider secondary alternative in depends or recommends as the dependency
contamination. (we have over 60,000 packages).
I understand small number does not mean it does not need to be addressed. If
FSF really think it is important not to have such in our main, this small size
of affected packages opens more chances to solve issues without much negative
impacts, I think.
(I myself do not wish to change status quo of Debian on this if FSF do not care
about this. But I also think if we can accomodate FSF wish without much
negatives, why not do it.)
===========================================================================
Here is my summary of direct non-free/contrib contamination to the
dependency information of Debian main packages.
Short story: there are 12 packages causing this non-free/contrib contamination.
0 packages: non-free/contrib package in automatic install position
6 packages: migration to virtual package is possible but may face resistance.
2 packages: migration to virtual package should face least resistance.
2 packages: non-existing non-free packages listed many times
2 packages: packaging change may eliminate contamination
So removing direct contamination is not a big changes if it is essential
to get FSF relationship better with Debian.
I hope this helps for discussion of http://bugs.debian.org/681419
Long story:
This data is based on the following assessment listed in BTS plus additional
manual review by me:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686481#120
The above automatic assessment in BTS did not check:
* the package dependency induced by "provides" in the non-free/contrib package,
* the existence of the first listed package, nor
* the existence of the previously existed non-free/contrib package.
In a sense, this is essentially to assess if Debian system with only
"main" activated in apt shows current non-free/contrib packages in
"depends" or "recommends" field. So non-direct contamination by
"provides" generated by non-free/contrib packages under non-free/contrib
enabled apt environment is not considered.
Results are:
* There will be no packages listed in "depends" nor "recommends" in the
automatic install position.
(flexbackup NMUed and capi4hylafax about to be fixed. Thanks Mike.)
* 16 main packages list non-free/contrib package as an alternative choice even
if "non-free"/"contrib" are not activated in apt.
- 10 non-free/contrib packages are the cause of this contamination.
* This stat misses contamination instances by sun-java5-jre and sun-java6-jre
which are very widespread.
(These 2 packages contaminates 34 packages as I quickly checked.)
Note: sun-java5-jre and sun-java6-jre are not available in current
non-free/contrib.
Thus, 10+2=12 packages contaminate dependency info in main.
These 10 packages causing contamination instances can be typed as follows:
* TYPE1: NON-FREE DATA/PROGRAM EXISTED FIRST:
- non-free package has history behind it.
- reverse engineering involved with the free package involved
- non-free data/program existed first and some free alternative
data/program were created later. (at least as perception)
- user may be temped to use non-free for inertia.
* TYPE2: NON-FREE DATA/PROGRAM IS ONE OF THEM:
- non-free package is just one of them.
- no reverse engineering involved with the free package involved
- non-free data/program seems to offer the same functionality as other free
alternative data/program.
* TYPE3: PACKAGE SPLIT:
- NON-FREE source exclusion/inclusion caused package split with virtual
package to make free program and non-free program.
(The classification between TYPE1 and TYPE 2 is somewhat a subjective matter.)
Followings are much detailed review of each of the contamination types.
===== TYPE1: NON-FREE DATA/PROGRAM EXISTED FIRST =====
6 packages: migration to virtual package is possible but may face resistance
1 packages: local packaging change may eliminate contamination
==> fonts-liberation|ttf-mscorefonts-installer
DC: Package libphp-jpgraph depends on ttf-mscorefonts-installer in contrib
RC: Package libreoffice recommends ttf-mscorefonts-installer in contrib
"metrics of font" of free fonts-liberation matches non-free externally fetched
MS fonts.
See http://bugs.debian.org/691937 and http://bugs.debian.org/691945 .
==> libgl1-mesa-glx | libgl1 | fglrx-glx
DN: Package clam-networkeditor depends on fglrx-glx in non-free
DN: Package globs depends on fglrx-glx in non-free
DN: Package libclam-qtmonitors1.4 depends on fglrx-glx in non-free
GL driver for ATI GPU.
fglrx-glx is a transition package to load libgl1-fglrx-glx
libgl1 is a virtual package provided by libgl1-mesa-glx
libgl1-fglrx-glx-virtual is a virtual package provided by libgl1-fglrx-glx
Change of the listed package name may be desirable at least:
libgl1-mesa-glx | libgl1 | libgl1-fglrx-glx
But sorting out seemingly random virtual package names may be a good idea.
==> lesstif2-dev | libmotif-dev
DN: Package libglw1-mesa-dev depends on libmotif-dev in non-free
DN: Package xmhtml1-dev depends on libmotif-dev in non-free
MOTIF is open source but not free enough, Lestif for rescue.
==> libapache2-mod-perl2 (>= 2.0.0) | libapache2-mod-fcgid | libapache2-mod-fastcgi
DN: Package rt4-apache2 depends on libapache2-mod-fastcgi in non-free
Not all other similar packages list these as alternatives.
==> freedoom | doom-wad | heretic-wad | game-data-packager | boom-wad
RC: Package vavoom recommends game-data-packager in contrib
common free DOOM engine and its game data
==> opense-basic | spectrum-roms
DN: Package fuse-emulator-common depends on spectrum-roms in non-free
free Sinclair ZX Spectrum emulator and its ROM firmware packages
==> ptex-bin | ptex-jtex
RN: Package yatex recommends ptex-jtex in non-free
yatex package needs to update dependency.
Depends: emacs23 | emacs22 | emacs21 | xemacs21-mule | xemacs21-mule-canna-wnn, install-info
Recommends: ptex-bin | ptex-jtex, texlive-bin
Suggests: jbibtex, mendexk, jweblint | weblint, iceweasel | www-browser, gimageview
yatex is Emacs macro.
ptex-jtex does not look like such important part of functioning of yatex as
long as texlive-lang-cjk is installed.
ptex-bin is a transitional package to load texlive-lang-cjk
ptex-jtex depends on texlive-lang-cjk which should substitute ptex-bin.
texlive-bin (non-existing as binary package) may have meant "texlive-binaries |
texlive-base-bin". But this is redundant since both texlive-lang-cjk and
ptex-jtex depends on it.
Listing emacs* is not robust. Use emacsen.
In conclusion, I will file a bug report asking to change to:
Depends: emacs23 | emacsen, install-info
Recommends: texlive-lang-cjk
Suggests: jbibtex, mendexk, ptex-jtex, jweblint | weblint, iceweasel | www-browser, gimageview
===== TYPE2: NON-FREE DATA/PROGRAM IS ONE OF THEM =====
2 packages: migration to virtual package should face least resistance.
==> tesseract-ocr | ocrad | gocr | cuneiform
DN: Package ocrfeeder depends on cuneiform in non-free
DN: Package yagf depends on cuneiform in non-free
RN: Package gscan2pdf recommends cuneiform in non-free
==> gnuchess | sjeng | crafty | phalanx | glaurung | stockfish | hoichess | bbchess | fruit | toga2 | fairymax
DN: Package glchess depends on crafty in non-free
free GUI frontend common to many chess engines
===== TYPE3: PACKAGE SPLIT =====
1 packages: local packaging change may eliminate contamination
DC: Package conky depends on conky-all in contrib
==> conky-std | conky-cli | conky-all
Transitional package to load one of the three, probably conky became contrib from main
- http://bugs.debian.org/634003 upload background
- http://bugs.debian.org/579102 serious bug: one conky feature (build-)depends on nvidia stuff
- libxnvctrl-dev [i386 amd64] | nvidia-settings [i386 amd64],
^ contrib ^ contrib
As I looked casually into nvidia-settings source, pertinent header file used
for building this package supporting NVIDIA feature seems to be under free BSD
license. So including it as Debian modification to conky packakage seems to
make conky-all equivalent in main as conky or conky-std. Then no more need to
make conky-all. (But this resolution should be in jessie)
For now, uploading conky-all by adding "Provides: conky-std" may be an idea.
Osamu
More information about the Fsf-collab-discuss
mailing list