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

Re: Policy 3.9.1 planning



Charles Plessy <plessy@debian.org> writes:

> I am actually wondering if such changes desserve an entry in the
> upgrading checklist, since no package need to be changed. If the
> checklist is exhaustive, it makes it redundant with the changelog. As a
> maintainer who often reads the checklist, I would appreciate if it would
> contain only things to actually verify: it would reduce the cognitive
> load on my old brain.

It's a good point.  But if the policy wasn't ever written down somewhere
and checked, it's possible that people didn't know about it and weren't
following it.  While it's existing practice, that doesn't necessarily mean
that no packages should be changed.

Here's what we currently have, with embedded annotation:

     3.2.1
          Date-based version components should be given as the four-digit
          year, two-digit month, and then two-digit day, but may have
          embedded punctuation.

This is probably marginal, since it was a relaxation of existing
information that was too strict.

     3.9
          Maintainer scripts must pass `--package' to `dpkg-divert' when
          creating or removing diversions and must not use `--local'.

This is current practice and checked by Lintian, so arguably we could omit
this.

     4.10
          Only `dpkg-gencontrol' supports variable substitution.
          `dpkg-genchanges' (for `*.changes') and `dpkg-source' (for
          `*.dsc') do not.

People have gotten caught by this before since Policy said the wrong
thing, so it seems like a good idea to get this in front of everyone.

     7.1
          Architecture restrictions and wildcards are also allowed in
          binary package relationships provided that the binary package is
          not architecture-independent.

This has been supported for some time, but wasn't advertised and most
people don't know about it.  We should get this in front of people so they
know it's possible.

     7.4
          `Conflicts' and `Breaks' should only be used when there are file
          conflicts or one package breaks the other, not just because two
          packages provide similar functionality but don't interfere.

I suspect that some packages are doing this wrong, and we should get this
in front of people as well.

     8.1
          The SONAME of a library should change whenever the ABI of the
          library changes in a way that isn't backward-compatible.  It
          should not change if the library ABI changes are
          backward-compatible.  Discourage bundling shared libraries
          together in one package.

We could arguably leave this off, as it's documentation of standard
practice.  On the other hand, this was a big change in wording with a lot
of new information, and I think it would be good to have people read it.

     8.6.1, 8.6.2, 8.6.5
          Packages should normally not include a `shlibs.local' file since
          we now have complete `shlibs' coverage.

This could probably be omitted, since I don't think anyone was paying
attention to that part of Policy.

     8.6.3
          The SONAME of a library may instead be of the form
          `<name>-<major-version>.so'.

I want to make sure this is in the checklist because we occasionally ran
into a tool that didn't realize this.

     10.2
          Libtool `.la' files should not be installed for public libraries.
          If they're required (for `libltdl', for instance), the
          `dependency_libs' setting should be emptied.  Library packages
          historically including `.la' files must continue to include them
          (with `dependency_libs' emptied) until all libraries that depend
          on that library have removed or emptied their `.la' files.

Release goal and should be in the checklist since it's a significant
change.

     10.2
          Libraries no longer need to be built with `-D_REENTRANT', which
          was an obsolete LinuxThreads requirement.  Instead, say
          explicitly that libraries should be built with threading support
          and to be thread-safe if the library supports this.

This will let people drop some now-pointless code to add that flag.

     11.4, 11.8.3, 11.8.4
          Packages providing alternatives for `editor', `pager',
          `x-terminal-emulator', or `x-window-manager' should also provide
          a slave alternative for the corresponding manual page.

There may be implementations that didn't do this and it's a new
requirement.

     11.5
          Cgi-bin executable files may be installed in subdirectories of
          `/usr/lib/cgi-bin' and web servers should serve out executables
          in those subdirectories.

I think this already just worked everywhere, but just in case there was a
web server that didn't know about this, I'd like to put it in the
checklist to be sure people are aware.

     12.5
          The GPL version 1 is now included in common-licenses and should
          be referenced from there instead of included in the `copyright'
          file.

Will enable lots of changes in Perl packages, so needs to be in the
checklist.

So there are three or four things above that we could leave off.  Would
people like me to try to trim the checklist down by removing things like
shlibs.local that probably no one is using?

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>


Reply to: