[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#904302: Whether vendor-specific patch series should be permitted in the archive



On Mon, 23 Jul 2018 at 09:22:17 +0800, Sean Whitton wrote:
> There are currently at least 18 source packages which use
> vendor-specific series files.  I have not been able to determine an
> upper bound.

Here is a survey of packages that do this, based on this search from
Stuart Prescott

$ apt-file search --index-names dsc -x ^/debian/patches/.*\\.series

and my parallel attempt:
https://codesearch.debian.net/search?q=%28diff%7Cpatch%29+path%3Adebian%2Fpatches%2F%28.*%29%5C.series

qjackctl and zlib (in the codesearch) are false positives caused by
older versions existing in the search index.

deluge switches on AppIndicator support by default but only in Ubuntu,
presumably for Unity's benefit. This is in imperative Python code, so it
could easily be runtime-conditional. I suspect this might be better
implemented by detecting a Unity (or AppIndicator-supporting) session
somehow, because people can run non-Unity desktops on Ubuntu, and can
run AppIndicator-supporting desktops on Debian.

fail2ban and libfreenect patch the contents of debian/ (!) to carry
out a semi-automated backport for neurodebian. I think this might be
more appropriately done by merging into a backports git branch, like I
did for flatpak in jessie. Both of these packages also omit the rest
of the patches from neurodebian-backport.series, so either they are
actually using some other mechanism that is not the 3.0 (quilt) vendor
patch series feature, or their backports are (incorrectly?) omitting
the Debian patch series.

filezilla, a file manager, changes how file sizes are displayed to follow
<https://wiki.ubuntu.com/UnitsPolicy> when unpacked on Ubuntu. This
could easily be done with cpp and a compile-time conditional in the
patch if desired.

hexchat, smuxi and xchat, IRC clients, use Ubuntu IRC servers and
channels by default when unpacked on Ubuntu. Again, this could be done
with cpp (for (he)?xchat) or a runtime conditional in C# code (for smuxi)
if desired. smuxi seems to omit one Debian patch when unpacked on
Ubuntu, which is probably a bug (the patch doesn't seem Debian-specific).

libxfce4util uses X-Ubuntu-Gettext-Domain for l10n when unpacked on
Ubuntu. An analogous patch in glib2.0 is applied unconditionally, even
in Debian. I'm not sure which way is better. This is in C code and so
could easily be done with cpp if desired.

liferea, a RSS feed reader, uses Ubuntu RSS feeds by default when unpacked
on Ubuntu. This is a patch to XML configuration files, so would not be
trivial to do any other way while using the same source package for
Ubuntu and Debian (the best idea I have would be to use xsltproc or
xmlstarlet or something, at which point you have two problems).

lilo adjusts user-visible vendor/version strings. This is C code and
could easily be done with cpp, with the bonus that it would work for
any other vendor; I sent a patch to #896081, although it fails to build
(I don't understand why it fails, but I think it might be orthogonal to
my changes).

mate-power-manager hides a preference that, on Ubuntu, is handled by
indicator-power. Like deluge, this seems to be based on an assumption
that Ubuntu is strongly correlated with a desktop environment that uses
particular indicator widgets. This is a patch to XML, so not trivially
replaceable, although you could use xmlstarlet or something.

mate-terminal and tilix, both terminals, have been adapted to Ubuntu
having patched vte to stay with pcre instead of moving to pcre2.
mate-terminal could easily use cpp; tilix is written in D, and I don't
know whether that has a preprocessor. I think both of these would be
better off looking for indications that the vte has been patched in
this way, instead of checking for Ubuntu; otherwise, when Ubuntu
eventually adds pcre2 to main and stops patching vte, they will get
the opposite bug.

mixxx, a DJ-mixing GUI, has a .desktop file that attempts to run under
pasuspender so that it can play audio with direct ALSA, presumably for
smaller/more predictable latency or some other benefit of a simpler audio
path. There is a Debian patch to undo this and just run normally, and an
Ubuntu patch series to undo the Debian patch and use pasupender, with the
comment "Debian-specific as Ubuntu uses PulseAudio by default" in 2010.
The observant will note that the majority of Debian desktops now use
PulseAudio by default, too, so this reasoning might not be valid any more.

numix-gtk-theme uses an Ubuntu-preferred icon theme by patching a
declarative data file, with the comment that Ubuntu developers don't want
this GTK theme to depend on a corresponding icon theme. This looks like
it might indicate a missing (Debian) dependency, tbh... This change is
not in imperative code, but would be easy to make with sed if desired.

packagekit changes various repository and help URLs to be appropriate
for Debian or Ubuntu. This is in declarative data files, so cannot be
done with cpp, although it would probably be straightforward to do with
sed.

xfce4-smartbookmark-plugin changes the bug tracker URL to be appropriate
for Ubuntu. This is in C code and could be done with cpp if desired.

    smcv


Reply to: