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

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: