analysis of Nexenta's patches to apt
Hi folks,
Jeff Licquia and I have been looking into Nexenta[1]'s changes to apt.
Our findings are that they are not substantial. Their apt is based on a
version (0.6.41.1) older than that currently in sid and etch (0.6.42.3).
There are only two patches that appear to be important:
1) apt apparently won't build on OpenSolaris as-is because OpenSolaris
lacks a "sighandler_t" type. This is not a surprise, as sighandler_t
is documented as a GNU extension (see signal(2)).
Nexenta's solution, however, is a bit brute-force, and is only
portable back to Linux because the underlying primitive data type for
the return values of signal handlers is void on both systems.
Jeff has implemented an autoconf-based solution to do the right thing
in a system-dependent manner. I've attached a straw-man diff as
"apt_solaris_sighandler_t.diff".
2) Nexenta patches two files to recognize "solaris" as a supported
platform in architecture triples. This is an obvious patch you'd
expect for a "gnu-solaris" system rather than "sun-solaris".
I've attached this patch as "apt_recognize_solaris.diff".
We'd be happy to tidy up these patches and submit them as wishlist items
to the BTS, but we wanted to solicit review from the actual APT
developers first.
Here's a detailed breakdown of the changes we found between Debian's
0.6.40.1 package and Nexenta's. You'll recognize the format as the
output of "diffstat" with comments interleaved.
* Backport timeout handling change from ~0.6.41 timeframe.
apt-pkg/acquire-item.cc | 6
methods/connect.cc | 4
* Backport architecture override support from ~0.6.41 timeframe.
ftparchive/apt-ftparchive.cc | 7
ftparchive/override.cc | 38
ftparchive/override.h | 9
ftparchive/writer.cc | 53
ftparchive/writer.h | 5
* Tolerate failure where Debian doesn't.
buildlib/debiandoc.mak | 6
* branding changes (Nexenta public signing key)
cmdline/apt-key | 6
debian/apt.postinst | 2
debian/rules | 4
* package versioning changes
configure | 2
configure.in | 2
debian/changelog | 62
* add build-dep on xmlto
debian/control | 2
* change default unstable pin priority
doc/apt_preferences.5 | 2
doc/apt_preferences.5.xml | 2
* Senseless updating of manpage date with no other changes.
(Could be spurious changes caused by documentation generation tools.)
doc/es/apt-cache.es.8 | 2
doc/es/apt-cdrom.es.8 | 2
doc/es/apt-config.es.8 | 2
doc/es/apt-get.es.8 | 2
doc/es/apt.conf.es.5 | 2
doc/es/sources.list.es.5 | 2
doc/ja/apt-cache.ja.8 | 2
doc/ja/apt-cdrom.ja.8 | 2
doc/ja/apt-get.ja.8 | 2
doc/ja/apt.conf.ja.5 | 2
doc/pt_BR/apt_preferences.pt_BR.5 | 2
* Convert HTML character entities into UTF-8 characters.
(Shouldn't groff character escapes be used instead?)
doc/fr/apt-cache.8 | 98
doc/fr/apt-cache.fr.8 | 98
doc/fr/apt-cdrom.8 | 38
doc/fr/apt-cdrom.fr.8 | 38
doc/fr/apt-config.8 | 20
doc/fr/apt-config.fr.8 | 20
doc/fr/apt-extracttemplates.1 | 16
doc/fr/apt-extracttemplates.fr.1 | 16
doc/fr/apt-ftparchive.1 | 158 -
doc/fr/apt-ftparchive.fr.1 | 158 -
doc/fr/apt-get.8 | 114 -
doc/fr/apt-get.fr.8 | 114 -
doc/fr/apt-key.8 | 12
doc/fr/apt-key.fr.8 | 12
doc/fr/apt-sortpkgs.1 | 12
doc/fr/apt-sortpkgs.fr.1 | 12
doc/fr/apt.conf.5 | 114 -
doc/fr/apt.conf.fr.5 | 114 -
doc/fr/apt_preferences.5 | 132 -
doc/fr/apt_preferences.fr.5 | 132 -
doc/fr/sources.list.5 | 48
doc/fr/sources.list.fr.5 | 48
* Add comma for undetermined reason.
doc/pt_BR/manpage.refs | 1
* Update to generated files.
aclocal.m4 | 3773 +++++++++++++++++++-------------------
po/apt-all.pot | 427 ++--
* Add Nexenta's repo signing key; remove Debian's and Ubuntu's.
share/debian-archive.gpg |binary
share/nexenta-archive.gpg |binary
share/ubuntu-archive.gpg |binary
59 files changed, 3108 insertions(+), 2861 deletions(-)
Many of these changes are evidently from Ubuntu, and I trust they've
since been synced with Debian apt. I know that's the case for the
actual logic changes, which appeared in 0.6.39ubuntu1.
The entire diff is attached as "nexenta.diff".
[1] http://www.gnusolaris.org/gswiki
--
Branden Robinson | GPG signed/encrypted mail welcome
branden@progeny.com | 1024D/9C0BCBFB
Progeny Linux Systems | D5F6 D4C9 E25B 3D37 068C
| 72E8 0F42 191A 9C0B CBFB
Reply to: