Bug#924401: #924401 base-files fails postinst when base-passwd is unpacked

2021-02-22 Thread Colin Watson
On Mon, Feb 22, 2021 at 07:33:10AM +, Tim Woodall wrote:
> As far as I can see, making base-passwd not essential, only required,
> and then making passwd and base-files pre-depend on base-passwd the
> system seems to bootstrap /etc/passed and /etc/group OK.
> 
> That also seems to conform to the debian policy. The oddity is that
> base-files and passwd only actually need to depend on base-passwd, not
> pre-depend on it as they only use /etc/passwd and /etc/group in the
> postinst scripts but the debian policy doesn't seem to consider this
> case.

base-passwd is independently essential to the functioning of the system
as it currently stands, not just because base-files and passwd need it.
As such I do not consider it correct to remove the Essential flag from
base-passwd and won't be doing so.

My view on this is that policy's definition of Essential should, for the
time being, be refined to indicate that it only applies after the
package has been configured at least once.  Independently, I agree with
other comments on this bug to the effect that it would be useful to
extend dpkg such that initial copies of the essential files provided by
base-passwd could be written without having to run base-passwd's
maintainer scripts (something like the ability to provide an initial
version of a configuration file without making it a full conffile),
which would then allow simplifying the process, but I see no reason to
block policy refinements on that; the policy manual is a living document
and we can always update it again later once it's possible to simplify
the bootstrapping process further.

-- 
Colin Watson (he/him)  [cjwat...@debian.org]



Re: Guidance on solving the username namespacing problem

2020-01-05 Thread Colin Watson
[I haven't been following the rest of this discussion.  Thanks for the
CC - let me know if I'm egregiously missing anything.]

On Sun, Jan 05, 2020 at 10:25:37AM -0800, Russ Allbery wrote:
> Philipp Kern  writes:
> > It looks like the range must be contiguous, as it is compiled in[1].
> > What are the preexisting ones apart from netplan that you have in mind?
> > It feels like systemd's boundaries are pretty arbitrary (0xEF00 to
> > 0xFFEF) but at the same time we might want to reserve a range for it in
> > policy - given that right now it is effectively squatting in that range?
> 
> Yes.  We should also coordinate this with Colin as the base-passwd
> maintainer.  Let me cc him explicitly.
> 
> It's possible that we can just use the existing systemd range, provided
> that we can find some workable approach for netplan.

As Simon said, EF00-FFEF = 61184-65519 covers more than just netplan
(https://salsa.debian.org/debian/base-passwd/blob/master/README), and
several of the IDs allocated there in the vaguely recent past are hard
to change (their rationales included "needs to be the same across
multiple machines"), so I don't think we can use the existing systemd
range - it needs to be adjusted for Debian at least to some extent.  I'm
not prepared to cede all of 64000-64999 to systemd; perhaps it would
have been better if base-passwd had started at 6 instead, but we're
here now.

The rate of static allocations in 6-64999 is low enough that I'm not
concerned in principle about carving off a slice of it for dynamic
allocations by systemd-sysusers, and in any case I wasn't expecting to
ever need to allocate more static IDs under 64000 (netplan was before my
time).  Perhaps we could start by reserving 61184-63433, given the
netplan allocation?  Yes, it's a bit arbitrary, but also not really all
that stingy, and base-passwd's allocations are meant to be permanent
even if the package has been removed (since we can never guarantee that
it's been removed from users' systems).

An alternative would be to reserve 61184-63999, with a Debian patch to
exclude netplan's 63434.  That doesn't seem likely to be difficult; it
could go in the same place where systemd is already doing NSS checks.


I'm generally in favour of the underscore prefix recommendation in some
form, and would be happy to enforce that for new static allocations in
base-passwd.

-- 
Colin Watson   [cjwat...@debian.org]



Bug#912059: debian-policy: please increase ToC depth (for Lintian's benefit)

2018-10-27 Thread Colin Watson
Package: debian-policy
Version: 4.2.1.3
Severity: normal
Tags: patch

I recently noticed some outdated links generated by Lintian, which led
me to look into how they're generated.  Lintian has a script
(private/refresh-manual-refs) to grab references from the tables of
contents of various Debian documents, which it then uses in some of its
tags.  That currently has a hack for the main Policy document, dating
from last year:

'policy' => [
'/usr/share/doc/debian-policy/policy.html/index.html',
'https://www.debian.org/doc/debian-policy/',
# $index_re would match the Policy's TOC and work otherwise, but
# the TOC is generated only up to 3 levels deep as of 4.1.1.1, and
# we want refs to all levels.
qr{
  <(h[2-5])>\s*
  ([A-Z]|[A-Z]?[\d\.]+?)
  \.?\s+
  ([\w\s[:punct:]]+?)
  ]*?)\bhref="([^"]+)".+?
  
}x,
[['_ignored'], ['section'], ['title'], ['url']]
],

But this doesn't actually work at the moment: when I run this script it
loses all the policy entries from the output file.  There is some
support for extracting additional subsection references from other
files, but it would take some effort to get this to work for policy,
because the order of fields in the regex would need to be a bit
different when parsing the primary index versus when parsing individual
ch-* files.

I think it would be much simpler to just increase the Policy ToC's
section depth.  That would seem generally slightly more useful (there
isn't so much noise at the fourth level that it would make the ToC
substantially harder to read), and would relieve Lintian from having to
do this hack.

(See also #912055, a similar problem in doc-base.)

diff --git a/policy/index.rst b/policy/index.rst
index aa3fecd..b38e8c3 100644
--- a/policy/index.rst
+++ b/policy/index.rst
@@ -12,7 +12,7 @@ that each package must satisfy to be included in the 
distribution.
 This is Debian Policy version |policy_version|, released on |policy_date|.
 
 .. toctree::
-   :maxdepth: 3
+   :maxdepth: 4
:numbered:

ch-scope
@@ -31,7 +31,7 @@ This is Debian Policy version |policy_version|, released on 
|policy_date|.
 .. toctree::
:caption: Appendices
:name: appendix
-   :maxdepth: 3
+   :maxdepth: 4
:numbered:
 
ap-pkg-scope

Thanks,

-- 
Colin Watson   [cjwat...@debian.org]



Bug#850156: Please firmly deprecate vendor-specific series files [and 1 more messages]

2018-07-23 Thread Colin Watson
On Wed, Apr 18, 2018 at 09:11:11PM -0700, Steve Langasek wrote:
> There isn't even a guarantee that what gets synced to Ubuntu has ever
> been unpacked - or *can* be unpacked - with dpkg-source.

Indeed.  Not only is there no guarantee, but it goes wrong in practice
too.

As an operator of merges.ubuntu.com, I run into this from time to time,
because that service's daily operation involves unpacking all new
versions of source packages and generating diffs from previous versions
(yes, this predates attempts to get everything into consistent version
control).  When that service encounters a source package that simply
can't be unpacked, it bombs out and an operator (i.e. me) has to deal
with it.  Fortunately this is not very common overall, but I've
definitely seen a few cases where a source package could be unpacked on
Debian but not on Ubuntu due to the use of an outdated vendor series
file that was allegedly there specifically for Ubuntu's benefit.  And
that's leaving aside the related cases where a patch accidentally got
omitted from Ubuntu because a maintainer forgot that they needed to
update both series files (there's no #include mechanism - see
#632305/#632313).

It's not surprising to me that this happens, because the tooling for
dealing with these files is IME not particularly good.  You basically
have to point quilt at a different series file and manually refresh a
separate stack, and you have to remember to do that whenever you make
any substantial change to the rest of the patch stack.  Of course
developers sometimes forget to do that, especially if they weren't the
ones who introduced the ubuntu.series file in the first place.  And
given that these generally represent poorly-factored patches in any case
in the ways that Steve and others have pointed out, I don't think it's a
good use of time to try to improve the tooling.

I second Steve's opinion that, in the aggregate, this feature is
actively harmful to downstreams (notwithstanding some individual cases
where it may be locally helpful) and should be removed.

-- 
Colin Watson   [cjwat...@debian.org]



Bug#846970: debian-policy: Proposal for a Build-Indep-Architecture: control file field

2017-08-01 Thread Colin Watson
On Tue, Aug 01, 2017 at 07:47:47PM +0300, Adrian Bunk wrote:
> 1. Debian does not currently have non-amd64 binary-all autobuilders
> 
> Stating that binary-all packages in the archive are always being 
> built on amd64 would actually document the current status quo,
> assuming source-only uploads.
> 
> AFAIR pixfrogger and pixbros that I converted from binary-all to
> an explicit list of all 32bit architectures were the last two
> binary-all packages in main that could not be built on amd64.
> 
> These were pretty rare cases of requiring a 32bit-only package,
> and such a rare hack is better than mandating that Debian must
> add binary-all autobuilders for every architecture.

This is an essentially artificial argument that depends on the current
(IMO unnecessarily complicated) way in which Debian happens to implement
autobuilding of Architecture: all binaries.  If they were just builds
that happened on the normal autobuilders with a slightly different
configuration, which would be perfectly possible, then nobody would need
to worry about the effort of adding them for every architecture; any
autobuilder would be able to build Architecture: all packages if it
needed to do so.

To me, as one of the maintainers of Ubuntu's autobuilding
infrastructure, this is a sufficiently obviously simpler approach that
I'm quite puzzled as to why the Debian buildd maintainers chose to
implement it the way they did; I did talk to Andreas Barth about it at
the time that he was doing the work, but I had the feeling neither of us
was quite understanding the other.

I can see the argument for not documenting this field in policy until
the autobuilding infrastructure is actually able to cope with it
(depending on how heavily one weights the downstream arguments), but I
do think that the capability would fall quite naturally out of a
better-designed infrastructure.  I don't agree that your "explicitly
list all 32-bit architectures" hack is better than having the improved
infrastructure, even though it was probably necessary at the time.

> 2. We were not able to build all binaries in a release
> 
> For aboot and palo we are shipping binaries in jessie that cannot be 
> rebuilt in jessie since the build architecture is not part of jessie.
> 
> Cross-compilers are available on amd64, and this is how palo and 
> openhackware were fixed for stretch.

This has certainly been possible in some cases, but I still think it's
more simply done at the builder level.  And for the "build architecture
not part of release" case, is it really worth shipping boot loaders for
architectures where we don't ship the rest of the architecture?  The
rare case of systems building images for older releases could be handled
by just installing binaries from older releases.

-- 
Colin Watson   [cjwat...@debian.org]



Re: [policy] 02/02: Clean up upgrading-checklist, bump version number

2017-05-05 Thread Colin Watson
On Fri, May 05, 2017 at 02:19:32PM +0200, Guillem Jover wrote:
> diff --git a/upgrading-checklist.xml b/upgrading-checklist.xml
> index ec17af8..83e7c75 100644
> --- a/upgrading-checklist.xml
> +++ b/upgrading-checklist.xml
> […]
> @@ -1438,11 +1449,11 @@
>  
>
>  
> -  
> -Version 3.8.4.0
> +  
> +Version 3.8.4
>  
>  
> -  Release Jan 2010.
> +  Released Janunary, 2010.
  ^
> 
> Typo.   ^ :)

Your typo fix introduces a different typo. :-)

-- 
Colin Watson   [cjwat...@debian.org]



Re: Bug#845369: debian-policy: [5.6.8] Not fully updated for "any all"

2016-11-22 Thread Colin Watson
On Wed, Nov 23, 2016 at 09:00:56AM +1300, Olly Betts wrote:
> In policy 3.9.3.0 (at least according to upgrading-checklist.txt):
> 
>  5.6.8
>   The `Architecture' field in `*.dsc' files may now contain the
>   value `any all' for source packages building both
>   architecture-independent and architecture-dependent packages.
> 
> The current 5.6.8 does describe `any all`, but unfortunately it also still
> contains this paragraph which is no longer correct since this change:
> 
>  In the main `debian/control' file in the source package, this field
>  may contain the special value `all', the special architecture wildcard
>  `any', or a list of specific and wildcard architectures separated by
>  spaces.  If `all' or `any' appears, that value must be the entire
>  contents of the field.  Most packages will use either `all' or `any'.
> 
> I'd suggest updating this to:
> 
>  In the main `debian/control' file in the source package, this field
>  may contain the special value `all', the special architecture wildcard
>  `any', the special combination `any all`, or a list of specific and
>  wildcard architectures separated by spaces.  If `all', `any', or
>  `any all` appears, that value must be the entire contents of the
>  field.  Most packages will use either `all', `any', or `any all`.

I think this proposed change would be a mistake.

Any individual binary package listed in debian/control must either be
architecture-dependent or architecture-independent; it is meaningless
for it to be both.  Section 5.2 makes it clear that Architecture may
only occur in the binary package paragraphs in debian/control, not in
the general paragraph at the top, and so the values of Architecture in
debian/control may only be those that are meaningful for a single binary
package.

Contrariwise, the value of Architecture in the .dsc is an aggregation
constructed by dpkg-source of the Architecture fields for all binary
packages built by that source package.  It is therefore meaningful for
it to express a combination of architecture-dependent and
architecture-independent binary packages.

I would recommend closing this bug with no further action.  The current
text appears correct to me.

-- 
Colin Watson   [cjwat...@debian.org]



Bug#841877: Don't recommend contacting base-passwd maintainer for dynamic UIDs

2016-10-24 Thread Colin Watson
Control: tag -1 patch

On Sun, Oct 23, 2016 at 08:00:23PM -0700, Sean Whitton wrote:
> Policy section "Permissions and owners" probably shouldn't recommend
> contacting the base-passwd maintainer when selecting a username for a
> dynamically-allocated UID created by a postinst maintscript.  It should
> continue to recommend contacting the base-passwd maintainer when the
> postinst script needs to create a static UID.

I (obviously) agree.  How about this patch?  I'm seeking seconds for
this proposal.

diff --git a/policy.sgml b/policy.sgml
index 9cd182b..ab4f736 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -9610,9 +9610,7 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
  that a dynamically allocated id can be used.  In this case
  you should choose an appropriate user or group name,
  discussing this on debian-devel and checking
- with the adduser in the preinst or
  postinst script (again, the latter is to be

-- 
Colin Watson   [cjwat...@debian.org]



Fw: don't miss up that new stuff

2016-07-26 Thread Colin Watson
Dear, 

I found something absolutely new  and so interesting! Don't  miss it up, you  
may find more  info here  <http://relief.rogerdigmon.com/lnmhugkd>

Sent from my iPhone, Colin Watson

74648153


Re: Re: Bug#748936: apt doesnt understand architecture wildcards

2016-01-21 Thread Colin Watson
On Wed, Jan 20, 2016 at 03:17:18PM +0100, Bill Allombert wrote:
> On Wed, Jan 20, 2016 at 01:39:45PM +0000, Colin Watson wrote:
> > I think this is somewhat unfortunate, but it is the reality right now.
> > Perhaps a good thing for somebody to work on would be reimplementing
> > dpkg-architecture in C so that it could be moved to the dpkg binary
> > package?
> 
> As I understand, dpkg-architecture query the C compiler which is not
> always avalaible.

While that's true, it's partly just because it's
architecture-independent code.  A compiled version could build that
information into the object code without much trouble.

-- 
Colin Watson   [cjwat...@debian.org]



Re: Re: Bug#748936: apt doesnt understand architecture wildcards

2016-01-20 Thread Colin Watson
On Wed, Jan 20, 2016 at 12:31:52PM +0100, Balint Reczey wrote:
> On 06/04/2014 03:41 AM, Guillem Jover wrote:
> >  * Other programs could “easily” use dpkg-architecture to check for
> >identity or a match. (This poses problems for programs that do not
> 
> I think making apt call dpkg-architecture for matching would be a good
> way of ensuring consistency with dpkg. Caching the results in a hash
> table would make matching even faster than it is currently.

dpkg-architecture is in dpkg-dev, so not reliably usable at run-time.
dpkg doesn't currently provide a way to make this kind of query without
development tools installed.  It's also probably not trivial to move it
because its current implementation relies on dpkg's Perl modules, which
also aren't part of the core dpkg binary package.

I think this is somewhat unfortunate, but it is the reality right now.
Perhaps a good thing for somebody to work on would be reimplementing
dpkg-architecture in C so that it could be moved to the dpkg binary
package?

-- 
Colin Watson   [cjwat...@debian.org]



Re: Bug#798714: debian-policy: Please explicitly recommend punctuation between the year, month and day components of date based version numbers

2015-09-12 Thread Colin Watson
On Sat, Sep 12, 2015 at 10:17:44AM +0200, Axel Beckert wrote:
> Henrique de Moraes Holschuh wrote:
> > 2. -policy documents best current *ADOPTED* practice.
> 
> That's new to me. For me, Policy is how it _should_ or _must_ be, by
> steering things in the right directions.

Policy generally does this about things which are important for
interoperability between packages.  I don't think it's the place for
this kind of cosmetic recommendation, in either direction.

The text we have today steers a good course: it warns against a couple
of practices that might inadvertently be adopted without realising the
implications (date formats that don't sort properly as versions, and the
interaction between hyphens as separators and the semantics of hyphens
in versions defined elsewhere in policy), but it simply says "possibly
with punctuation between the components" etc. without taking a
particular aesthetic stance.  I think that's right.

-- 
Colin Watson   [cjwat...@debian.org]



Bug#679751: Lintian now detect package pointing to /home

2015-08-06 Thread Colin Watson
On Fri, Jul 31, 2015 at 11:34:20AM +0200, Bastien ROUCARIES wrote:
 After a chat under #debian-qa it appear that canonical path for non
 existant home dir is /nonexistant could be documented ?

If we do (and I'm not expressing any opinion on that here), we should
spell it correctly: /nonexistent.

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150806172515.ga4...@riva.ucam.org



Bug#747320: Mandate type in /bin/sh

2014-05-07 Thread Colin Watson
On Wed, May 07, 2014 at 02:32:39PM +0100, Ian Jackson wrote:
 I therefore propose that the following should be added to the list of
 additional features listed in policy 10.4:
 
   * The XSI extension `type' must be supported .  It must exit
 zero iff the command is found.  The output format is not
 specified and scripts must not rely on it; scripts should
 rely only on the exit code using a construct such as
if type foo /dev/null 21; then ...

As the author of the original shell incarnation of what's now
/usr/bin/which, and having worked around the lack of a policy-authorised
in-process idiom for this in a number of places, I would also like to
see such an extension in policy.  It's been a long-standing irritation
to have to duplicate this code everywhere for the sake of strict
conformance.

We should, though, survey the set of shells in Debian (excluding posh,
which should follow policy in this regard) to find out if any of them
lack type and if not make sure that they're extended appropriately.
mksh seems to have it.  I haven't checked any others.

We need to say something about options.  POSIX simply says none.  dash
treats all of its arguments as names regardless of whether they begin
with an option.  bash has a number of options and the GNU-style --
end-of-options indicator.  Policy therefore probably ought to say that
the behaviour of type with any arguments beginning with - is not
specified (so you can't use bashisms like type -P to force a PATH
search).

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20140507140925.ga2...@riva.ucam.org



Bug#642914: debian-policy: 10.8 Log files : logrotate compression should result from good judgment

2011-09-27 Thread Colin Watson
On Mon, Sep 26, 2011 at 07:26:12PM +0200, Jérôme Bouat wrote:
 Hello Raphael,
 you have been filing such bugs in Ubuntu and I closed at least one you
 filed against dpkg.
 
 Ubuntu isn't exactly the same than Debian. Otherwise it would be called 
 Debian ;)

In many areas there is no reason for Ubuntu to diverge from Debian.
This is one of them.

-- 
Colin Watson   [cjwat...@ubuntu.com]



--
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20110927082458.ga19...@riva.dynamic.greenend.org.uk



Bug#640263: debian-policy: Clarify policy section 9.9 - Environment variables

2011-09-03 Thread Colin Watson
 an explicit real-world situation in mind, the case of an unset PATH
seems contrived enough that I don't think policy needs to spell out its
exact behaviour in detail.


In the particular case of #639997, I would also note that dpkg is acting
to ensure that this statement in policy 6.1 holds, which serves to avoid
maintainer scripts needing to be peppered with fragile absolute paths
all over the place:

  Before installation is started, the package management system checks
  to see if the programs ldconfig, start-stop-daemon, install-info, and
  update-rc.d can be found via the PATH environment variable.

Thus, independent of this discussion, dpkg has specific authorisation
from policy to perform the check in question.  6.1 goes on to say:

  Maintainer scripts should also not reset the PATH, though they might
  choose to modify it by prepending or appending package-specific
  directories.  These considerations really apply to all shell scripts.

This clearly supports the position that programs do not need to take
special measures to set their own PATH.

-- 
Colin Watson   [cjwat...@debian.org]



--
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20110903232012.ga12...@riva.dynamic.greenend.org.uk



Bug#487201: MPL in common-licenses and convenience of packaging mozilla extensions

2011-08-29 Thread Colin Watson
On Mon, Aug 29, 2011 at 11:36:45AM -0500, Jonathan Nieder wrote:
 Allowing debian/copyright to rely on files _other_ than the common
 licenses in base-files would be a larger and different change, so
 off-topic for this bug.  Unless done carefully, I don't think it's a
 good idea.

And FWIW, since I haven't seen it stated in this bug thread as yet, the
reason I've always seen for that restriction is that allowing such
external references makes it more difficult for ftpmaster to review
licences of new packages, and it's in the project's interest to allow
them to do that efficiently.

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20110829165151.ga11...@riva.dynamic.greenend.org.uk



Re: [Piuparts-devel] Unclear failure for asclock (left over files in /var)

2009-11-29 Thread Colin Watson
On Sat, Nov 28, 2009 at 10:04:30PM +0100, Guillem Jover wrote:
 On Sat, 2009-11-28 at 10:22:40 +0100, Holger Levsen wrote:
  On Mittwoch, 25. November 2009, Helge Kreutzmann wrote:
   Package purging left files on system:
 /var/cache/man/pt  not owned
 /var/cache/man/pt/cat1 not owned
  [...]
   Judging from this analyis, this looks like a false positive...
  
  I think it is too, but I'm not entirely sure, so I would appreciate a 
  comment 
  from someone more familar with man then I am, that's why I've added d-qa@ 
  to cc:
  
  So far, piuparts has been ignoring left over files with the following 
  patterns:
  
  /var/cache/man/(.*)/index.db,
  /var/cache/man/index.db,
  
  (obviously, there are more :)
  
  Looking at the failed piuparts logs, I see there are more with left over 
  files 
  in /var/cache/man/.*/cat? - should piuparts just ignore /var/cache/man? 
  Comments welcome.
 
 Ignoring /var/cache/man/ seems the most reasonable course of action to
 me. The man-db package is the one handling those databases, it just
 seems logical to me that it should be the one in charge of removing it
 when purged.

It makes sense for mandb to observe that a hierarchy of manual pages has
gone away entirely (e.g. no more /usr/share/man/pt) and remove the
corresponding database. Could somebody file a bug on man-db for this, or
reassign/clone an existing bug? I wasn't sure if there was already a bug
report for this so I haven't filed one myself.

Ignoring /var/cache/man seems fairly harmless in the meantime.

(man-db of course does remove /var/cache/man when it itself is purged,
but we could perhaps do better.)

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#537707: groff limitations on manual page characters removed

2009-07-20 Thread Colin Watson
Package: debian-policy
Version: 3.8.2.0
Severity: wishlist

groff 1.20.1 is now in unstable, and removes the limitations on
characters in manual page source that formerly needed to be documented
in policy. Of course we ought to wait until this new version is in
testing before changing the policy manual, but I thought I might as well
get the process started early.

diff --git a/policy.sgml b/policy.sgml
index d02f6c1..59352a5 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -8847,15 +8847,6 @@ name [varsyshostname/var]:
filezh_CN/file, and filezh_TW/file are all allowed.
  /footnote
/p
-
-   p
- Due to limitations in current implementations, all characters
- in the manual page source should be representable in the usual
- legacy encoding for that language, even if the file is
- actually encoded in UTF-8. Safe alternative ways to write many
- characters outside that range may be found in
- manref name=groff_char section=7.
-   /p
   /sect
 
   sect

Thanks,

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#533287: debian-policy: please clarify 10.7.4

2009-06-18 Thread Colin Watson
On Wed, Jun 17, 2009 at 03:54:10PM +0200, Felix Zielcke wrote:
 For example we grub/grub2 maintainers have the problem that some people
 still have /sbin/update-grub in their /etc/kernel-img.conf.
 grub-legacy has a wrapper to warn about this since etch, but we recently
 got a bug report in grub2 who had it still in place (#500631).
 After I asked in #debian-devel my solution to this problem was to just
 abort in the preinst with an error message.
 Then I noticed #470894 where Colin Watson wanted to
 edit /etc/default/grub inside of grub-installer.
 And there I told him that I'm unsure if policy allows this and told him
 my solution to our problem.

Let's discount the question of /etc/default/grub; it's not at issue
here, and the solution you're using now for it is not questionable
AFAICS.

 In message #36 [0] and #46 [1], he told me that we should either keep it
 as an symlink or just edit automatically /etc/kernel-img.conf
 /etc/kernel-img.conf is edited by grub-installer automatically to add
 update-grub to it.

My concern is essentially, without intending offence to anyone involved,
that we look stupid doing it the way we were doing it. :-) I'll quote my
mail to debian-boot:

# I'm sorry to have to say this, but the kernel-img.conf /sbin/update-grub
# migration has been a hopelessly confusing mess. Please don't use it as
# an example of anything except how *not* to do things.
#
# Either /sbin/update-grub should have continued to be supported forever
# as a symlink without warnings, or (preferably) something should have
# taken care of detecting the situation and rewriting the configuration
# file automatically. Robert even suggested a way to do this in #361929,
# but it was never done for some reason that is mysterious to me.
# Complaining about the situation and aborting is the worst of both
# worlds; it often merely throws users into confusion, or at best leaves
# them cursing about how Debian didn't just sort out its own mistakes
# rather than making users take care of it by hand.
#
# I understand, of course, that there are all sorts of reasons why these
# sorts of things happen at the time; but if you look at the change as a
# whole then it was very clearly far from optimal.

/etc/kernel-img.conf is a weird case. To start with, it's initially
created by the installer (base-installer) and the update-grub line is
added by another part of the installer (grub-installer). Obviously the
installer can't own a configuration file permanently, so we say that the
kernel owns it because it's the primary consumer (and indeed
historically it was using it before the installer did anything with it).
Its format is clearly documented in kernel-img.conf(5).

Of course, though, the kernel is not a single package, but a succession
of packages with different names and very similar maintainer scripts
generated by kernel-package, so its upgrade path is not simple.
Furthermore, the requirement that update-grub be called without an
explicit path (or at least not as /sbin/update-grub) comes from the grub
package and is due to changes there; if the grub package insists on a
change to a configuration file, as it did, then I do feel that it should
be its responsibility to put its own house in order.

(Normally I would say that a package should fix up its own mistakes, but
in this case the mistaken entry in the configuration file comes from
grub-installer, which is part of the installer and so can't do anything
to fix up its mistakes on upgrade.)

I would not object to the kernel packaging making this change instead,
but of course we are then reliant on people actually upgrading to newer
kernels, which is in practice not something that happens quite so
reliably as normal package upgrades. People hang back on the kernel for
all kinds of reasons. But, nevertheless, perhaps a kernel packaging
person (Manoj?) could speak up and say whether they'd be willing to have
the kernel fix up old /etc/kernel-img.conf files that mention
/sbin/update-grub.

The worst possible solution, in my book, is for grub to abort in its
preinst and force the user to make the change by hand. If we end up
doing that then we have put policy, or perhaps a failure to agree on
implementation, ahead of the user. From the user's point of view, Debian
(collectively) made this mistake and Debian should fix it up rather than
bothering them about it. The warning was faintly ridiculous in the same
way, and I certainly heard friends of mine who were upgrading from older
versions of Debian object that we should just have fixed the file rather
than complaining at them about its contents.

I'm not too surprised that the recommendation I made to have grub edit
/etc/kernel-img.conf rather than abort if it's wrong is contentious, I
suppose. I don't think the situation is so clear that it is manifestly
wrong - I certainly felt it to be justifiable, and I think the situation
is distinctly muddy - though I concede it may not be the best possible
answer.

 But then I don't know

Bug#532120: Require support for temporary /var/run/ and /var/lock in all packages

2009-06-18 Thread Colin Watson
On Sat, Jun 06, 2009 at 05:01:46PM +0200, Julian Andres Klode wrote:
 The wording of Policy 9.3.2's
 
  /var/run and /var/lock may be mounted as temporary filesystems[60], so the
  init.d scripts must handle this correctly.
 
 only applies to init.d scripts. But init.d scripts are not the only scripts
 using /var/run. Bug#452198 is not RC if you apply this rule only to init.d
 scripts, because it provides no init.d script.
 
 Therefore, I propose to change the requirement so that all packages must
 support /var/run/ and /var/lock/ on temporary filesystems, and not only
 those which provide an init script.

This seems reasonable to me; I don't think we'd foreseen this being a
problem for things other than init scripts. Do you have a proposed patch
for this, or a suggestion on how it might be better written?

I thought a bit about moving the text somewhere else - maybe a new
subsection under 9.1 - but I think the requirement applies *principally*
to init scripts. Perhaps it would be best to simply add a parenthesis
saying that this also applies to the rest of the system?

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: debian-policy 3.8.2.0 released

2009-06-18 Thread Colin Watson
On Tue, Jun 16, 2009 at 10:31:22PM +0200, Bill Allombert wrote:
 I just released 3.8.2.0.

Thanks for this. Sorry, I think I'd taken an action to do this but then
had a flurry of activity elsewhere and it slipped off my plate ...

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



debian-policy FTBFS due to missing texlive-latex-extra build-dep

2009-04-29 Thread Colin Watson
I happened to notice recently that debian-policy 3.8.1.0 fails to build
due to a missing build-dependency on texlive-latex-extra. Since it's
Architecture: all, of course, it's easy to miss this in Debian, but I
noticed it in Ubuntu and then verified it in a relatively clean Debian
chroot:

  
http://launchpadlibrarian.net/26062790/buildlog_ubuntu-karmic-i386.debian-policy_3.8.1.0_FAILEDTOBUILD.txt.gz

I've committed a fix to our git repository, of course, but I sort of
feel that we shouldn't leave this kind of thing lying around for too
long in debian-policy of all places. :-) Russ and others, would anyone
mind if I rolled 3.8.2.0 with what we have now? Or does somebody else
want to, or is there a reason not to do so (e.g. too much
Standards-Version churn)?

Thanks,

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: debian-policy FTBFS due to missing texlive-latex-extra build-dep

2009-04-29 Thread Colin Watson
On Wed, Apr 29, 2009 at 05:25:28PM -0500, Manoj Srivastava wrote:
 On Wed, Apr 29 2009, Russ Allbery wrote:
  I don't mind a release with what we have now.  The churn is unfortunate
  since there's nothing particularly exciting in the changes committed so
  far, but I hate to leave FTBFS bugs lingering for that reason.
 
 Why not 3.8.1.1? Or do we have normative changes in there
  already?

There are some normative changes. Nothing earth-shattering, but shifting
to mandating debconf for user prompting (#206684) does seem to merit a
normative version bump, at least. There are other normative changes but
they're fairly trivial.

That said, debconf was already recommended, so if people feel it would
be better as 3.8.1.1, we could do that. Or alternatively we could branch
off 3.8.1.0 in git and release 3.8.1.1 with just the non-normative
changes? I'd be happy to put the legwork into sorting that out.

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#525151: Clarify format of source package name

2009-04-27 Thread Colin Watson
On Wed, Apr 22, 2009 at 03:45:23PM +0100, Enrico Zini wrote:
 Package: debian-policy
 Version: 3.8.1.0
 Severity: wishlist
 Tags: patch
 
 Hello,
 
 Policy 5.6.7. `Package' defines The name of the binary package., but
 it does not seem that the format of source package names is restricted
 anythere.  Sanity as well as, I'd say, common use, would say source has
 the same format as binary.
 
 Clarifying it would be as trivial as this:
 
  5.6.7. `Package'
  
 
 - The name of the binary package.
 + The name of the source and binary package.

I think that would be incorrect; that section is very specifically
talking about the Package field in a debian/control or .dsc file, and
the Package field in such a file does *not* name the source package;
that's the job of the Source field.

It seems to me that it would be simplest just to copy the text from
5.6.7 (Package) to 5.6.1 (Source). Technically this imposes a new
requirement on source packages that's slightly stricter than that
imposed by dpkg-source, which from my brief reading of the code would
theoretically permit colons, commas, equals signs, and tildes too, but I
see no reason why those would be desirable and have never heard of
anyone trying to use them in source package names. I agree with you that
sanity and common use say that the two classes of package names have the
same format.

diff --git a/policy.sgml b/policy.sgml
index 0140043..144cbfb 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -2588,6 +2588,14 @@ Package: libc6
package control file when the source package has the same
name and version as the binary package.
  /p
+
+ p
+   Package names must consist only of lower case letters
+   (tta-z/tt), digits (tt0-9/tt), plus (tt+/tt)
+   and minus (tt-/tt) signs, and periods (tt./tt).
+   They must be at least two characters long and must start
+   with an alphanumeric character.
+ /p
/sect1
 
sect1 id=f-Maintainer

I'm seeking seconds for this.

-- 
Colin Watson   [cjwat...@debian.org]


signature.asc
Description: Digital signature


Bug#206684: mandatory use of debconf for user prompting a release goal for squeeze

2009-03-21 Thread Colin Watson
On Wed, Mar 18, 2009 at 10:29:35PM +0100, Bill Allombert wrote:
 Is there actually packages that does not use debconf ? 

The one I'm involved with is base-passwd; but it only doesn't use
debconf because I've been putting off dealing with figuring out how to
convert it over (since it ideally ought to go along with asking slightly
more fine-grained questions about changes, and since most of the logic
is in a C program). Seeing as I'm a debconf co-maintainer, this is
really just me being slack rather than anything that should hold up
policy, though!

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#514326: debian-policy: fhs-2.3 doesn't specify that /var/run and /var/lock may be volatile ref rcS(5)

2009-02-25 Thread Colin Watson
tags 514326 pending
thanks

On Mon, Feb 16, 2009 at 08:06:00PM +, Tim Small wrote:
 Colin Watson wrote:
 Tim was referring to the text of the FHS, though
 (see the subject line), which I don't think we ought to modify in
 debian-policy for this.

 Yes, sorry about that, I hadn't appreciated that the FHS is independent  
 of Debian..  Your proposed change to policy looks good.

Thanks. I've committed this for the next release of policy.

 I wonder if it's worth adding a note/example that the install, and  
 mkdir -p options in this context e.g.

 install -o owner -g group -m mode -Z SELinux_context -d /var/run/subdir

 ... just because I've seen some roundabout / verbose ways of creating  
 such directories in various init scripts.  If this is overly directive  
 (or patronising) it could be left out, of course

To be honest I think this is a bit too much detail for this section, and
not really necessary for policy to specify; we don't generally mandate
that people must write concise code!

Regards,

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#473439: pick consistent terminology for category/component/area

2009-02-16 Thread Colin Watson
On Fri, Feb 13, 2009 at 07:41:40PM -0800, Russ Allbery wrote:
 Colin Watson cjwat...@debian.org writes:
  I'd say:
 
The Debian Social Contract simply refers to areas.
 
  ... to emphasise the fact (as it seems to me) that the SC is
  non-specific.
 
  I don't think we should feel tied to the SC's vague choice of words. I
  strongly suspect that (a) the authors were more interested in getting
  across the principle than in clear nomenclature, and (b) the specific
  term components in our archive maintenance software postdates the SC.
  Since this is technical policy, it seems reasonable to me that we would
  generally prefer more specific terms.
 
 Here's an updated patch that includes this change and some other
 rewordings and which changes distribution area to archive area, which
 I think is more accurate and less ambiguous (no confusion with the Debian
 GNU/Linux distribution, for example).  How does this look?

I think this is fine except that you missed a couple of bits:

 list compact=compact
   item
 emsection/em if the package is in the
 -   emmain/em category,
 +   emmain/em distribution area,

- emmain/em category,
+ emmain/em archive area,

   /item
   item
 -   emsegment/section/em if the package is in
 +   emarea/section/em if the package is in
 the emcontrib/em or emnon-free/em
 distribution areas.

- distribution areas.
+ archive areas.

Seconded with those modifications.

-- 
Colin Watson   [cjwat...@debian.org]


signature.asc
Description: Digital signature


Bug#514326: debian-policy: fhs-2.3 doesn't specify that /var/run and /var/lock may be volatile ref rcS(5)

2009-02-16 Thread Colin Watson
On Sun, Feb 15, 2009 at 05:49:58PM +, Ian Jackson wrote:
 Tim Small writes (Bug#514326: debian-policy: fhs-2.3 doesn't specify that 
 /var/run and /var/lock may be volatile ref rcS(5)):
  
  It should not be assumed that the contents of this directory will
  persist after a system reboot.
  
 
 I second this suggestion.  Does Tim's proposed phrasing make it clear
 enough that all subdirectory structure may vanish ?

I also second this. Tim was referring to the text of the FHS, though
(see the subject line), which I don't think we ought to modify in
debian-policy for this.

The code that tends to suffer from this problem is init scripts, and so
I think it would be sensible to add a requirement in that section of the
policy manual proper. Here's a suggested patch (note that this adds a
new must; other policy editors, is that a problem? I'd be happy to
downgrade to a should if people are uncomfortable with it):

diff --git a/policy.sgml b/policy.sgml
index 36f51aa..75b236b 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -6065,6 +6065,18 @@ test -f varprogram-executed-later-in-script/var || 
exit 0
script must behave sensibly and not fail if the
file/etc/default/file file is deleted.
  /p
+
+ p
+   file/var/run/file and file/var/lock/file may be mounted
+   as temporary filesystemsfootnote
+   For example, using the ttRAMRUN/tt and ttRAMLOCK/tt
+   options in file/etc/default/rcS/file.
+   /footnote, so the fileinit.d/file scripts must handle this
+   correctly. This will typically amount to creating any required
+   subdirectories dynamically when the fileinit.d/file script
+   is run, rather than including them in the package and relying on
+   prgndpkg/prgn to create them.
+ /p
/sect1
 
sect1

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#514326: debian-policy: fhs-2.3 doesn't specify that /var/run and /var/lock may be volatile ref rcS(5)

2009-02-16 Thread Colin Watson
On Mon, Feb 16, 2009 at 02:32:20PM +, Colin Watson wrote:
 The code that tends to suffer from this problem is init scripts, and so
 I think it would be sensible to add a requirement in that section of the
 policy manual proper. Here's a suggested patch (note that this adds a
 new must; other policy editors, is that a problem? I'd be happy to
 downgrade to a should if people are uncomfortable with it):

Oh, for the record, this patch is derived from text I wrote for the
Ubuntu Policy Manual.

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#514919: Removing support for uploads to multiple distributions

2009-02-12 Thread Colin Watson
On Wed, Feb 11, 2009 at 09:27:17PM +, Adam D. Barratt wrote:
 The Policy section detailing the Distribution field in .changes files
 specifies that the field may contain a space-separated list of
 distributions. Whilst this is technically accurate, the feature has been
 deprecated since the testing distribution became an official part of
 the archive and is, imho, obsolete; the use case of uploading the same
 package to unstable and the frozen-stable-to-be as a single upload no
 longer applies.
 
 I discussed this with a couple of members of the ftpteam on IRC earlier
 today, and they were both in favour of removing support for the feature
 from dak. One of them had a dig through the archives and discovered that
 there have been no multiple-distribution uploads since 2004; even then
 there was only the one upload in that year, with the grand total of
 three in 2003.

For Debian's archive, I think this change is entirely reasonable.

However, I'm not convinced that it is correct to remove this feature
from the *syntax*. While Ubuntu's archive maintenance software doesn't
support it right now, several people have requested it
(https://bugs.launchpad.net/soyuz/+bug/235064). If you're maintaining
packages for a system that releases every six months, it turns out to be
rather more likely in practice to be able to say that the same packages
will work for several different releases, and less painful to maintain
this state. .changes is a good format for interacting with Debian-format
archives other than just Debian's, and this seems worth preserving.

How about this patch instead (incorporating your fold of frozen into
testing):

diff --git a/policy.sgml b/policy.sgml
index 36f51aa..78f2346 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -3096,10 +3096,6 @@ Package: libc6
  than unstable, but still risky.  It is not
  possible to upload packages directly to
  emtesting/em.
- /item
-
- tagemfrozen/em/tag
- item
  From time to time, the emtesting/em
  distribution enters a state of code-freeze in
  anticipation of release as a emstable/em
@@ -3124,7 +3120,9 @@ Package: libc6
 
p
  You should list emall/em distributions that the
- package should be installed into.
+ package should be installed into. Note, however, that
+ the Debian archive only supports listing a single
+ distribution.
/p
 
p

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#473439: pick consistent terminology for category/component/area

2009-02-12 Thread Colin Watson
On Sun, Feb 01, 2009 at 10:23:38AM -0800, Russ Allbery wrote:
 Kurt Roeckx k...@roeckx.be writes:
  On Sun, Jan 25, 2009 at 03:37:37PM -0800, Russ Allbery wrote:
   diff --git a/policy.sgml b/policy.sgml
   index 24c9072..16919b2 100644
   --- a/policy.sgml
   +++ b/policy.sgml
   @@ -293,7 +293,13 @@
emfree/em in our sense (see the Debian Free Software
Guidelines, below), or may be imported/exported without
restrictions. Thus, the archive is split into the distribution
   -areas or categories based on their licenses and other 
   restrictions.
   +areas or componentsfootnote
   +  The Debian archive software uses the term component 
   internally
   +  and in the Release file format to refer to the division of an
   +  archive.  The Debian Social Contract refers to distribution
   +  areas.  This document uses the same terminology as the Social
   +  Contract.
   +/footnote based on their licenses and other restrictions.
 
  The SC has this in it:
We have created contrib and non-free areas in our archive [...]
The packages in these areas are [...]
packages in these areas [...]
 
  There is no combination with distribution.
 
 True.  I added that because I thought it made the construct clearer, but
 perhaps it doesn't.  I suppose we could use archive area instead, which is
 closer to the wording of the SC.  Does that sound like a better idea?
 
 Or I could keep distribution area and just change the wording of the
 footnote to be more accurate, say:
 
 The Debian Social Contract refers to areas.
 
 (just removing the distribution word there).  I'm happy with either
 choice.  I mostly just want to close this old bug.  :)

I'd say:

  The Debian Social Contract simply refers to areas.

... to emphasise the fact (as it seems to me) that the SC is
non-specific.

I don't think we should feel tied to the SC's vague choice of words. I
strongly suspect that (a) the authors were more interested in getting
across the principle than in clear nomenclature, and (b) the specific
term components in our archive maintenance software postdates the SC.
Since this is technical policy, it seems reasonable to me that we would
generally prefer more specific terms.

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#514919: Removing support for uploads to multiple distributions

2009-02-12 Thread Colin Watson
On Thu, Feb 12, 2009 at 03:21:28PM +0100, Raphael Hertzog wrote:
 On Thu, 12 Feb 2009, Colin Watson wrote:
  However, I'm not convinced that it is correct to remove this feature
  from the *syntax*. While Ubuntu's archive maintenance software doesn't
  support it right now, several people have requested it
  (https://bugs.launchpad.net/soyuz/+bug/235064). If you're maintaining
  packages for a system that releases every six months, it turns out to be
  rather more likely in practice to be able to say that the same packages
  will work for several different releases, and less painful to maintain
  this state. .changes is a good format for interacting with Debian-format
  archives other than just Debian's, and this seems worth preserving.
 
 Agreed.
 
 In the long term, I would like to move all the documentation about the
 syntax into dpkg itself and have the policy document how Debian uses
 dpkg rather than documenting dpkg itself.

The mythical dpkg programmer's manual? :-)

I was never all that convinced. I do think there's value in the policy
manual being coherent in itself, rather than depending on another manual
for all the syntax. (I realise you already need to learn make and
what-have-you, but it's currently fairly complete in terms of the things
you need to build Debian packages on top of standard Unix tools.)

-- 
Colin Watson   [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#504880: Disambiguate installed for packages

2008-11-07 Thread Colin Watson
Package: debian-policy
Version: 3.8.0.1
Severity: wishlist

The policy manual currently uses the word installed in a couple of
different ways when referring to packages. Sometimes it's speaking quite
loosely, and in this sense is talking about something roughly equivalent
to 'dpkg --install'. However, in some other cases it's using a sense of
the word which I believe derives from dpkg's internal state machine, and
which corresponds to 'dpkg --unpack'. On quite a number of occasions
I've helped to explain this to people who were confused as a result: for
instance, unless you realise the second sense, the definition of
Conflicts is quite difficult to read.

I suggest that the second sense should be written as unpacked rather
than installed. Although this breaks the correspondence with dpkg's
internal state machine, it brings the policy manual into line with the
verbs used on dpkg's command line, which I think correspond much more
reliably to how people think of the operation or state in question.

I've attached a patch, and am seeking seconds for this proposal. Please
double-check it for correctness, particularly the change in the
definition of Breaks; I have only verified that against an old mail from
Ian proposing the design of this field
(http://lists.debian.org/debian-devel/1997/10/msg00643.html), not
against the current implementation.

Thanks,

-- 
Colin Watson   [EMAIL PROTECTED]
diff --git a/policy.sgml b/policy.sgml
index 7de382d..44ff374 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -1034,8 +1034,8 @@
 	/p
 
 	p
-	  Sometimes, a package requires another package to be installed
-	  emand/em configured before it can be installed. In this
+	  Sometimes, a package requires another package to be unpacked
+	  emand/em configured before it can be unpacked. In this
 	  case, you must specify a ttPre-Depends/tt entry for
 	  the package.
 	/p
@@ -3456,7 +3456,7 @@ Package: libc6
 
 	p
 	  Broadly speaking the prgnpreinst/prgn is called before
-	  (a particular version of) a package is installed, and the
+	  (a particular version of) a package is unpacked, and the
 	  prgnpostinst/prgn afterwards; the prgnprerm/prgn
 	  before (a version of) a package is removed and the
 	  prgnpostrm/prgn afterwards.
@@ -3835,7 +3835,7 @@ Package: libc6
 		behavior which, though deterministic, is hard for the
 		system administrator to understand.  It can easily
 		lead to missing programs if, for example, a package
-		is installed which overwrites a file from another
+		is unpacked which overwrites a file from another
 		package, and is then removed again.footnote
 		Part of the problem is due to what is arguably a
 		bug in prgndpkg/prgn.
@@ -3971,7 +3971,7 @@ Package: libc6
 		If there was a conflicting package we go and do the
 		removal actions (described below), starting with the
 		removal of the conflicting package's files (any that
-		are also in the package being installed have already
+		are also in the package being unpacked have already
 		been removed from the conflicting package's file list,
 		and so do not get removed now).
 	/item
@@ -4413,7 +4413,7 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386],
 	p
 	  When one binary package declares that it breaks another,
 	  prgndpkg/prgn will refuse to allow the package which
-	  declares ttBreaks/tt be installed unless the broken
+	  declares ttBreaks/tt be unpacked unless the broken
 	  package is deconfigured first, and it will refuse to
 	  allow the broken package to be reconfigured.
 	/p
@@ -4454,13 +4454,13 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386],
 	p
   When one binary package declares a conflict with another
 	  using a ttConflicts/tt field, prgndpkg/prgn will
-	  refuse to allow them to be installed on the system at the
+	  refuse to allow them to be unpacked on the system at the
 	  same time.
 	/p
 
 	p
-	  If one package is to be installed, the other must be removed
-	  first - if the package being installed is marked as
+	  If one package is to be unpacked, the other must be removed
+	  first - if the package being unpacked is marked as
 	  replacing (see ref id=replaces) the one on the system,
 	  or the one on the system is marked as deselected, or both
 	  packages are marked ttEssential/tt, then
@@ -4655,7 +4655,7 @@ Provides: mail-transport-agent
 Conflicts: mail-transport-agent
 Replaces: mail-transport-agent
 	/example
-	ensuring that only one MTA can be installed at any one
+	ensuring that only one MTA can be unpacked at any one
 	time.
 	/sect1
   /sect
@@ -4887,7 +4887,7 @@ Replaces: mail-transport-agent
  footnote
 	p
 	  During install or upgrade, the preinst is called before
-	  the new files are installed, so calling ldconfig is
+	  the new files are unpacked, so calling ldconfig is
 	  pointless.  The preinst of an existing package can also be
 	  called if an upgrade fails.  However, this happens during

Bug#504880: Disambiguate installed for packages

2008-11-07 Thread Colin Watson
On Fri, Nov 07, 2008 at 09:26:05PM +0100, Kurt Roeckx wrote:
 On Fri, Nov 07, 2008 at 07:13:18PM +, Colin Watson wrote:
  The policy manual currently uses the word installed in a couple of
  different ways when referring to packages.
 
 Sometimes it's also using present while it probably also means unpacked.  
 For
 instance:
  some packages may
  not be able to rely on their dependencies being present when being
  installed or removed
 
 You also didn't change that installed it seems?

I left some of the vague uses intact when I didn't think they mattered
very much. The uses of installed that I left intact by and large refer
to operations that correspond roughly to 'dpkg --install'.

In the case above, I think it could reasonably be replaced with
installed, but present seems OK to me too.

 There is also:
   The `Depends' field should also be used if the `postinst',
   `prerm' or `postrm' scripts require the package to be present in
   order to run.  Note, however, that the `postrm' cannot rely on
   any non-essential packages to be present during the `purge'
   phase.

Same as above. I don't think this is too confusing in practice, but feel
free to suggest a supplementary diff if you do.

Thanks,

-- 
Colin Watson   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#498300: specify that architecture-specific dependencies must have a non-empty list of architectures

2008-09-23 Thread Colin Watson
On Mon, Sep 22, 2008 at 11:46:41PM -0500, Gunnar Wolf wrote:
 Stefano Zacchiroli dijo [Fri, Sep 19, 2008 at 01:46:05PM +0200]:
  As per policy the empty architecture list has no defined semantics, I
  guess that the only possible behaviours out there are the following:
  
  1) require at least one entry (as did by python-debian)
  
  2) assume a default polarity, this in turn would lead to one of the
 possible two semantics:
  
 a) (polarity positive) hence empty arch list means no architecture,
i.e. useless dependency
  
 b) (polarity negative) hence empty arch list means no excluded
architecture, i.e. always present dependency
  
  We can start betting on this possibilities :-)
 
 Umh... And I think I'd rather go with the negative polarity. This
 means that [] is a no-op. Positive polarity just kills all the
 dependency information for that dependency... And I doubt it is ever
 desirable! 

I don't know. It seems to me that the most likely reason for this is a
substitution gone wrong, for example a debian/control.in file that looks
like either:

  Build-Depends: foo [EMAIL PROTECTED]@]

or:

  Build-Depends: foo [EMAIL PROTECTED]@]

While I agree the latter is quite plausible, I can also easily imagine
the former: for example, you remove the last of the lines that looks
like FOO_ARCHES += i386 from debian/rules and forget that it's now
empty.

I don't think tools can reasonably guess this, and I'd prefer it if they
simply rejected it up-front rather than trying to guess at a useful
meaning for something that's clearly a mistake.

-- 
Colin Watson   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#498300: specify that architecture-specific dependencies must have a non-empty list of architectures

2008-09-19 Thread Colin Watson
On Mon, Sep 08, 2008 at 10:27:51PM +0200, Stefano Zacchiroli wrote:
 Section 7.1 of the policy includes a description of
 architecture-specific dependencies, correctly adding the following
 constraint:
 
  It is not permitted for some names to be prepended with exclamation
  marks while others aren't.
 
 the reason being that the semantics of the architecture list is either
 exclusive (if all archs are negated with '!') or inclusive (if all archs
 are not negated).
 
 A direct consequence is that an empty list of architecture
 (e.g. 'foo []') is meaningless as it cannot be determined whether it was
 meant to be inclusive or exclusive.
 
 Still, the policy does not say explicitly that the list should be
 non-empty, and in fact there are cases of (buggy) packages specifying
 empty architecture lists in arch-specific dependencies.
 
 Can you please add non empty just before mentioning the architecture
 list? Patch implementing that is attached.

Seconded in principle (modulo the tab damage in your patch), although
I'm interested in the following points:

  * What packages violate this constraint right now?
  * What happens to packages that violate this constraint right now?

-- 
Colin Watson   [EMAIL PROTECTED]


signature.asc
Description: Digital signature


Re: Bug#490605: debian-policy: please discourage the usage of echo -n, and echo in general

2008-09-08 Thread Colin Watson
On Sun, Jul 13, 2008 at 11:38:56AM -0700, Russ Allbery wrote:
 It's unfortunate that SUS requires free registration; it makes it harder
 to link directly to specific sections of interest.

I've had http://www.opengroup.org/onlinepubs/009695399/nfindex.html
bookmarked for a long time, which doesn't seem to require registration
of any kind.

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Bug#478850: posh: $ENV variable processed by non-interactive shells

2008-05-04 Thread Colin Watson
On Sat, May 03, 2008 at 09:52:16PM -0500, Manoj Srivastava wrote:
 On Thu, 1 May 2008 14:47:54 +0100, Clint Adams [EMAIL PROTECTED] said: 
  On Thu, May 01, 2008 at 02:33:04PM +0100, Stephane Chazelas wrote:
  I don't really care about the interactive side of things ($ENV,
  $PSx, job control), but I tend to consider that for the scripting
  side of things, the optional features should be implemented. For
  instance, if you don't have command -v, there's no other reliable way
  to find out whether a command exists or not. So you have to have
  something (either command -v or type).
 
  If policy wants to mandate either command -v or type, we could
  conceivably move toward dropping which from debianutils.
 
 Well, type does not have a uniform implementation right now. And
  very few as as scripting friendly as which (most require you to remove
  junk from the output). Command -v also has mi9xed success.

That said, which(1) has similarly non-standard output on other
platforms. But indeed the reason I originally wrote the which(1) that
ended up in debianutils is exactly that I was fed up of unparseable
output and wanted something coherent. It'd be a great shame to drop it
and thereby no longer have something we can rely on at least in Debian.

(Not to mention that reshuffling tools just for the sake of it is a
pain.)

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#475731: debian-policy: substvar reference moved from dpkg-source(1) to deb-substvars(5)

2008-04-14 Thread Colin Watson
On Sat, Apr 12, 2008 at 04:35:59PM +0100, Ian Beckwith wrote:
 Policy 4.10 refers to dpkg-source(1) for details of variable substitutions.
 With the version of dpkg-dev in unstable, that information has moved to
 its own man page, deb-substvars(5).
 
 Patch attached.

 diff -Naur debian-policy-3.7.3.0.old/policy.sgml 
 debian-policy-3.7.3.0/policy.sgml
 --- debian-policy-3.7.3.0.old/policy.sgml 2007-12-03 06:53:35.0 
 +
 +++ debian-policy-3.7.3.0/policy.sgml 2008-04-12 16:28:36.0 +0100
 @@ -2012,7 +2012,7 @@
   /p
  
   p
 -   See manref name=dpkg-source section=1 for full
 +   See manref name=deb-substvars section=5 for full
 details about source variable substitutions, including the
 format of filedebian/substvars/file./p
/sect

Seconded.

-- 
Colin Watson   [EMAIL PROTECTED]


signature.asc
Description: Digital signature


Bug#473761: [PROPOSAL] debconf specification should allow underscores in template names

2008-04-01 Thread Colin Watson
Package: debian-policy
Version: 3.7.3.0
Severity: wishlist

The debconf specification says that (/-separated) template name
components are limited to alphanumerics, '+', '-', and '.'. However, d-i
and I suspect many other packages also use '_' extensively. As a debconf
and cdebconf co-maintainer I can say that there's no harm in doing so,
and that this should be allowed.

Patch against current policy.git attached.

I'm seeking seconds for this proposal.

Thanks,

-- 
Colin Watson   [EMAIL PROTECTED]
diff --git a/debconf_spec/debconf_specification.xml b/debconf_spec/debconf_specification.xml
index 1690f76..ef8da7d 100644
--- a/debconf_spec/debconf_specification.xml
+++ b/debconf_spec/debconf_specification.xml
@@ -139,8 +139,8 @@
 	So, what do we need to store in a variable template? Of course we
 	need a name to identify the template. Template names are made up of
 	components separated by the character `/' (slash).
-	Each component is limited to alphanumerics and `+' `-' `.'
-	(plus, minus, full stop).
+	Each component is limited to alphanumerics and `+' `-' `.' `_'
+	(plus, minus, full stop, underscore).
   /para
   para
 A type is also needed so data can be verified. Here is a table


signature.asc
Description: Digital signature


Bug#71621: Policy on update-alternatives still needed

2008-03-12 Thread Colin Watson
reopen 71621
thanks

I recently ran into this yet again, with a set of packages (scim et al)
calling update-alternatives --remove in 'prerm upgrade', and thereby
breaking user configuration on every upgrade. I do not think that the
issue has got significantly better in the 7.5 years since I originally
reported this bug.

Manoj closed this bug in 2002 with the comment Clarifying manual pages
is not a policy issue. As I said in response to that at the time:

  I think #71621 is an interoperability and consistency issue, and thus
  suitable for policy. For instance, packages that remove and reinstall
  alternatives on upgrade (at least used to) break local configuration
  in the form of manually set alternatives, and I believe using
  update-alternatives in this way could cause alternatives to be
  sensitive to upgrade ordering when multiple packages providing the
  same alternative are upgraded in the same run. This feels like exactly
  the kind of thing that policy ought to mention.

Policy documents other matters that consist of instructions on how to
use system tools in ways that produce interoperable packages. For
example, 8.1.1 ldconfig, 8.6.2 How to use dpkg-shlibdeps and the
shlibs files, 9.2.2 UID and GID classes (adduser --system), and 9.3.3
Interfacing with the initscript system (update-rc.d). I do not see how
update-alternatives is materially different from these.

I'm not asking for policy to duplicate the manual pages. The manual
pages tell you how to use the tools to perform specific actions, as they
should. I'm asking for something at a higher level: policy should
recommend standards for the actions that should be performed using these
tools in order to produce packages that form a well-integrated, coherent
system. This should not be news: policy already does this in other
cases, so I simply want update-alternatives to be added to the family.

The reason I care is that this is clearly a matter of great confusion. I
don't think it's a matter of strong technical disagreement as such,
otherwise I realise that the policy list probably wouldn't be the right
place to bring it up; I think it's simply a matter where there is little
guidance for developers and so it's easy for people to create subtle
bugs, much as they probably would do if e.g. there were no guidance on
the proper use of update-rc.d.


Based on the analysis I did back in 2000, which I think is still largely
sound, I think that policy should recommend that 'update-alternatives
--remove' must not be called in any of prerm upgrade, prerm
failed-upgrade, postrm upgrade, postrm failed-upgrade, postrm
abort-install, or postrm abort-upgrade, because these cases cause an
alternative to be removed that may shortly afterwards be reinstalled,
which can make update-alternatives erroneously switch the alternative
from manual to auto mode. Typically, a package should call
'update-alternatives --remove' in either prerm remove or postrm remove.
However, in my original analysis I was unsure about the prerm
deconfigure and postrm disappear cases; I would appreciate other
contributions here.

To go along with this, the result would be more readable and useful if
the correct process for installing an alternative were also documented,
although this is not something that people get wrong nearly so often.

Please reconsider this bug.

Thanks,

-- 
Colin Watson   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Bug#397939: Lintian: outdated-autotools-helper-file

2008-02-17 Thread Colin Watson
 reread the previous paragraph while thinking of Makefile.in instead
 of normal build results.  It is common practice to do exactly that:
 ship and use pre-built versions, or even ship them in the diff.gz (which
 then gets huge).  Makefile.am is only present as source-file, but it
 isn't used at all during the build.  Any changes the user makes will not
 be noticed by the build system.

But this simply isn't true across the board! Makefile.am changes are
only ignored if you use AM_MAINTAINER_MODE. One reason people do that is
that it produces more predictable build-dependencies that aren't
affected by timestamp skew. This was more of an issue before bug #105750
was fixed. Nowadays, while I think the jury is still out in some places
regarding AM_MAINTAINER_MODE, the case for it is much less compelling
than it used to be, and the Automake manual explicitly recommends
against it. If you don't use AM_MAINTAINER_MODE, then Makefile.am
changes are automatically noticed and taken into account. A
demonstration:

  $ apt-get source man-db
  [...]
  dpkg-source: extracting man-db in man-db-2.5.1
  dpkg-source: unpacking man-db_2.5.1.orig.tar.gz
  dpkg-source: applying ./man-db_2.5.1-2.diff.gz
  $ cd man-db-2.5.1/
  $ touch configure.ac
  $ debian/rules build
  ./configure --prefix=/usr --libexecdir=\${libdir} \
  [...]
  touch configure-stamp
  dh_testdir
  /usr/bin/make CFLAGS=-O2 -g -Wall LDFLAGS=-g
  make[1]: Entering directory `/home/cjwatson/man-db-2.5.1'
  cd .  /bin/bash /home/cjwatson/man-db-2.5.1/tools/missing --run 
aclocal-1.10 -I m4 -I gnulib/m4
   cd .  /bin/bash /home/cjwatson/man-db-2.5.1/tools/missing --run 
automake-1.10 --foreign
  cd .  /bin/bash /home/cjwatson/man-db-2.5.1/tools/missing --run autoconf
  /bin/bash ./config.status --recheck
  [...]

(The same goes for changing Makefile.am.)

Rather than incurring the pain of gratuitous full regeneration every
time, we just regenerate it when the user has changed something. Yes,
the user now gets to resolve any problems that might have been
pre-existing, but realistically either the Debian maintainer or the
upstream maintainer is probably going to run into those at some point
anyway.

I think we should recommend (but not require) that AM_MAINTAINER_MODE
not be used, and perhaps work to specify an optional debian/rules target
that regenerates the build system in an appropriate way. That seems to
provide the necessary benefits for users who need to change these files
without imposing an unacceptable burden on developers. I don't think
there's a good cause to go much further than that at this point.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Bug#397939: Lintian: outdated-autotools-helper-file

2008-02-17 Thread Colin Watson
On Sun, Feb 17, 2008 at 08:24:43PM +0100, Loïc Minier wrote:
  Yes, I second Russ here and would like to add that it's very easy to
  trigger the timestamp skews if you simply create a patch for
  configure + configure.in/.ac as the files will be sorted as configure
  first and then configure.in/.ac so that applying the patch causes
  configure.in/.ac to be newer than configure...

This isn't true if you just let the patch be applied by dpkg-source -x,
since the timestamp-handling bug I mentioned earlier was fixed. It might
be true if you use a less capable patching system. ;-)

  Also, automake/autoconf/aclocal might be triggerred while e.g. some m4
  macros aren't installed on the buildd or the developer's system.  Of
  course these are usually shipped with the upstream tarballs, but are
  often missing/incomplete.

If that is the case then the end user is going to lose out anyway when
trying to modify the package. I'm not arguing that such bugs shouldn't
be fixed, merely that it's a mistake to turn them into showstoppers that
could potentially block more urgent upload requirements.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#440420: [PROPOSAL] Manual page encoding

2008-02-11 Thread Colin Watson
retitle 440420 [AMENDMENT 11/02/2008] Manual page encoding
severity 440420 normal
thanks

On Mon, Jan 28, 2008 at 12:29:35PM +, Colin Watson wrote:
 --- orig/policy.sgml
 +++ mod/policy.sgml
 @@ -8521,6 +8521,37 @@
 be present in the future.
 /footnote
   /p
 +
 + p
 +   Manual pages in locale-specific subdirectories of
 +   file/usr/share/man/file should use either UTF-8 or the usual
 +   legacy encoding for that language (normally the one corresponding
 +   to the shortest relevant locale name in
 +   file/usr/share/i18n/SUPPORTED/file). For example, pages under
 +   file/usr/share/man/fr/file should use either UTF-8 or
 +   ISO-8859-1.footnoteprgnman/prgn will automatically detect
 +   whether UTF-8 is in use. In future, all manual pages will be
 +   required to use UTF-8./footnote
 + /p
 +
 + p
 +   A country name (e.g. filede_DE/file) should not be included in
 +   the subdirectory name unless it indicates a significant difference
 +   in the language, as this excludes speakers of the language in
 +   other countries.footnoteAt the time of writing, Chinese and
 +   Portuguese are the main languages with such differences, so
 +   filept_BR/file, filezh_CN/file, and filezh_TW/file are
 +   all allowed./footnote
 + /p
 +
 + p
 +   Due to limitations in current implementations, all characters
 +   in the manual page source should be representable in the usual
 +   legacy encoding for that language, even if the file is
 +   actually encoded in UTF-8. Safe alternative ways to write many
 +   characters outside that range may be found in
 +   manref name=groff_char section=7.
 + /p
/sect
  
sect

This has now acquired seconds from Guillem Jover, Christian Perrier, and
Bill Allombert, so I'm raising it to the status of a formal amendment.

-- 
Colin Watson   [EMAIL PROTECTED]


signature.asc
Description: Digital signature


Bug#440420: [PROPOSAL] Manual page encoding

2008-01-28 Thread Colin Watson
On Mon, Dec 31, 2007 at 02:37:48PM +, Colin Watson wrote:
 On Sun, Dec 30, 2007 at 10:28:12PM -0800, Russ Allbery wrote:
  Colin Watson [EMAIL PROTECTED] writes:
   I propose that policy should standardise that we move to using UTF-8 as
   the source encoding for all manual pages since it clearly makes sense to
   do so.
[...]
 Right. Here's an update; I think I've captured most of the discussion in
 the thread so far. The following patch could in principle be applied
 now, given seconds. Wordsmithing welcome, as I'm aware that this is a
 rather dense recommendation; I'm also looking for seconds for this
 proposal.

Christian Perrier seconded this here:

  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440420#100

However, since later discussion indicated that we should drop the .UTF-8
business, I think we can also drop it from the policy proposal. (Manual
pages still shouldn't lie about their encoding if they install files
there, but since this will not be the recommended default there is no
reason to bloat policy with it.)

Here's another updated version. Christian, are you still OK with this?
I'm also looking for at least one more second for this proposal.

--- orig/policy.sgml
+++ mod/policy.sgml
@@ -8521,6 +8521,37 @@
  be present in the future.
  /footnote
/p
+
+   p
+ Manual pages in locale-specific subdirectories of
+ file/usr/share/man/file should use either UTF-8 or the usual
+ legacy encoding for that language (normally the one corresponding
+ to the shortest relevant locale name in
+ file/usr/share/i18n/SUPPORTED/file). For example, pages under
+ file/usr/share/man/fr/file should use either UTF-8 or
+ ISO-8859-1.footnoteprgnman/prgn will automatically detect
+ whether UTF-8 is in use. In future, all manual pages will be
+ required to use UTF-8./footnote
+   /p
+
+   p
+ A country name (e.g. filede_DE/file) should not be included in
+ the subdirectory name unless it indicates a significant difference
+ in the language, as this excludes speakers of the language in
+ other countries.footnoteAt the time of writing, Chinese and
+ Portuguese are the main languages with such differences, so
+ filept_BR/file, filezh_CN/file, and filezh_TW/file are
+ all allowed./footnote
+   /p
+
+   p
+ Due to limitations in current implementations, all characters
+ in the manual page source should be representable in the usual
+ legacy encoding for that language, even if the file is
+ actually encoded in UTF-8. Safe alternative ways to write many
+ characters outside that range may be found in
+ manref name=groff_char section=7.
+   /p
   /sect
 
   sect

 Thus, an updated transition plan:
 
   1. Initial status: packages should use only /usr/share/man/ll/
  (although some packages have anticipated an approximation of the
  transition plan; we ignore these for the moment as there is little
  point in changing them only to change them back later), and must
  use the legacy encoding for pages installed there.
 
   2. man-db 2.5.0-1 uploaded, including support for installing pages in
  /usr/share/man/ll.codeset/ (e.g. /usr/share/man/fr.UTF-8). The
  basename of this directory is not typically a well-formed locale,
  but it allows a clear specification of the hierarchy's encoding
  while applying to all countries using that language. [DONE]
 
   3. man-db 2.5.1-1 uploaded, including 'man --recode'.

We are now here; I uploaded man-db 2.5.1-1 this morning.

   4. dh_installman updated to recode manual pages to UTF-8 automatically
  (and install them under /usr/share/man/ll.UTF-8/?), using 'man
  --recode UTF-8' to guess the original encoding. debhelper Depends:
  man-db (= 2.5.1-1) for this. Pages for which the DWIM fails can
  include an explicit coding: directive, which will be documented.

Bug filed:

  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=462937

   8. Distant future: deprecate /usr/share/man/ll/. This will only be
  for consistency, so there's no need to rush.

This step is deleted.

Thanks,

-- 
Colin Watson   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Bug#459403: libuuid1: missing depends on non-essential package passwd

2008-01-12 Thread Colin Watson
On Mon, Jan 07, 2008 at 12:39:30PM +0100, Bill Allombert wrote:
 Since libuuid1 is essential, every system will end up with a libuuid
 user/group, so why not just add it to base-passwd instead of creating it
 dynamically ?

In general I want to avoid almost all further creation of global static
IDs. The last exception I made was when the installer needed a group
with a static ID to exist so that it could hardcode its GID in
/etc/fstab. Global static IDs are difficult to maintain, complicate
partial upgrades, require user interaction (this should be overhauled,
admittedly, but nevertheless), and have a very limited available space.

I don't think but we don't want to make adduser Priority: required is
a good enough reason to add global static IDs; and passwd doesn't need
to be made Essential just because an Essential package depends on it
(Essential isn't closed under dependency).

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#440420: [PROPOSAL] Manual page encoding

2008-01-07 Thread Colin Watson
On Tue, Jan 01, 2008 at 11:37:30AM -0800, Russ Allbery wrote:
 Colin Watson [EMAIL PROTECTED] writes:
  I'm still open to whether new-world-order pages should go in
  /usr/share/man/LL.UTF-8 or just /usr/share/man/LL. Pros for LL.UTF-8:
 
* Non-compliant implementations (I'm guessing xman, yelp, etc.) will
  display English manual pages rather than misencoded garbage. This
  might not be such a big deal for European languages, but for e.g.
  Japanese I suspect most people would prefer English to the spew you
  get by trying to interpret UTF-8 as EUC-JP.
 
 I'd rather fix the other implementations, frankly.  All of Debian is
 moving towards UTF-8, as is all of the rest of the Linux world, and I'd
 rather not leave transitional measures around forever.

Mm.

  I think I am increasingly leaning towards just using /usr/share/man/LL,
  seeing as man has to try decoding pages there as UTF-8 first anyway, but
  please comment if you care.
 
 I agree with this position.

OK. I've changed man-db upstream to install its own translated manual
pages in non-.UTF-8 directories again, and will incorporate this option
into the transition plan when it comes time to send it to
-devel-announce.

  Unfortunately 2.5.0 wasn't quite enough. Aside from a couple of stupid
  bugs (mostly fixed now), it turns out that we need an extra feature to
  allow debhelper to produce UTF-8 versions of manual pages without
  needing the source encoding to be explicitly specified, by guessing the
  encoding in the same way that man does:
 
http://lists.debian.org/debian-i18n/2007/10/msg00063.html
 
  I committed this feature to my development trunk earlier today, and will
  be working on a 2.5.1 release over the next couple of weeks. After that
  I'll send Joey a patch for debhelper.
 
 It sounds like the same feature could be used by other man implementations
 that currently can't deal with UTF-8.

Yes; doing so would also fix their misfeatures of attempting to locate
manual pages on disk themselves rather than letting man do it. :-)

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#455602: debian-policy: Examples of dpkg frontends should mention apt now

2008-01-01 Thread Colin Watson
On Sun, Dec 30, 2007 at 08:39:39PM -0800, Russ Allbery wrote:
 Josh Triplett [EMAIL PROTECTED] writes:
  Policy 7.2:
 (The other three dependency fields, `Recommends', `Suggests' and
  `Enhances', are only used by the various front-ends to `dpkg' such
  as `dselect'.)
 
  Since apt uses Recommends now, and can show Suggests, perhaps it would
  make a better example here.  In any case, dselect now by no means
  represents the most popular dpkg frontend.
 
 Thanks for the report.  I've applied a change to list apt and aptitude as
 well as dselect to my arch repository.

Since the term apt really refers to the apt library and would
therefore encompass aptitude, perhaps that should be apt-get and
aptitude instead.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#442070: Policy inconsistent with reality: base subsection no longer used

2008-01-01 Thread Colin Watson
On Sun, Dec 30, 2007 at 08:29:27PM -0800, Russ Allbery wrote:
 Magnus Holmgren [EMAIL PROTECTED] writes:
  AFAIU, the base subsection was obsoleted with Etch (apparently, its
  removal was discussed already in 1997), and (almost) all packages moved
  to ordinary subsections, like other packages. However, it is still
  listed in section 2.4 and referred to in section 3.7.
 
  I think policy should contain or point to the real definition of the
  base system.
 
 That would be great.  Could you, or someone else, get together with the
 debian-installer folks and whoever else would be an expert in what
 constitutes the base system and propose new wording for Policy?

I don't have time to do the wordsmithing, but I can be your expert
witness. debian-installer (specifically, debootstrap) now simply
installs everything with Priority: required or Priority: important as
the base system, and has done so for some time. See the changelog for
debootstrap 0.3.1.

 Also, do you have a reference for the obsolescence of the base section?
 Even without the real definition of base (which I suspect is actually done
 by priority), if that section isn't used any more, we should remove it.
 (And remove it from lintian, etc.)

I seem to remember that ftpmaster went through a while back and moved
everything from base to other sections. A couple of packages seem to
have sneaked back in, though; on my unstable system, I see lustre-source
with Section: base and zd1211-firmware with Section: non-free/base (!).

Unfortunately the list of sections in dak's configuration file appears
to be global rather than per-suite, so it might require some work to
make base an invalid section from here on without breaking old suites.
Removing it from lintian would be good, though.

-- 
Colin Watson   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#442070: Policy inconsistent with reality: base subsection no longer used

2008-01-01 Thread Colin Watson
On Tue, Jan 01, 2008 at 11:49:02AM -0800, Russ Allbery wrote:
 Colin Watson [EMAIL PROTECTED] writes:
  I don't have time to do the wordsmithing, but I can be your expert
  witness. debian-installer (specifically, debootstrap) now simply
  installs everything with Priority: required or Priority: important as
  the base system, and has done so for some time. See the changelog for
  debootstrap 0.3.1.
 
 Okay, that implies to me that we've dropped the whole concept of a
 separate base section in favor of just using priorities.

Right.

  Unfortunately the list of sections in dak's configuration file appears
  to be global rather than per-suite, so it might require some work to
  make base an invalid section from here on without breaking old suites.
  Removing it from lintian would be good, though.
 
 I'll queue that up for when the lintian Subversion repository comes back.
 (We really need to move to something distributed for lintian at some
 point.)
 
 Okay, I think this patch addresses the issues raised in this thread.
 Comments?  Seconds?
 
 --- orig/policy.sgml
 +++ mod/policy.sgml
 @@ -640,14 +640,14 @@
   p
 The Debian archive maintainers provide the authoritative
 list of sections.  At present, they are:
 -   emadmin/em, embase/em, emcomm/em,
 -   emcontrib/em, emdevel/em, emdoc/em,
 +   emadmin/em, emcomm/em,
 +   emdevel/em, emdoc/em,
 emeditors/em, emelectronics/em, emembedded/em,
 emgames/em, emgnome/em, emgraphics/em,
 emhamradio/em, eminterpreters/em, emkde/em,
 emlibs/em, emlibdevel/em, emmail/em,
 emmath/em, emmisc/em, emnet/em, emnews/em,
 -   emnon-free/em, emoldlibs/em,
 +   emoldlibs/em,
 emotherosfs/em, emperl/em, empython/em,
 emscience/em, emshells/em,
 emsound/em, emtex/em, emtext/em,

I second this part.

 @@ -1073,24 +1073,6 @@
/sect
  
sect
 - headingBase system/heading
 -
 - p
 -   The ttbase system/tt is a minimum subset of the Debian
 -   GNU/Linux system that is installed before everything else
 -   on a new system. Thus, only very few packages are allowed
 -   to go into the ttbase/tt section to keep the required
 -   disk usage very small.
 - /p
 -
 - p
 -   Most of these packages will have the priority value
 -   ttrequired/tt or at least ttimportant/tt, and many
 -   of them will be tagged ttessential/tt (see below).
 - /p
 -  /sect
 -
 -  sect
   headingEssential packages/heading
  
   p

Hmm. If this section is removed, then the definition of priorities
should indicate that priorities required plus important make up what's
installed as a base Debian system. I think this would be a bit unclear,
though (you have to know the definition in order to work out where to
find it), and so I think it would be better to keep this section but
update its text. How about this?

headingBase system/heading
 
p
  The ttbase system/tt is a minimum subset of the Debian
  GNU/Linux system that is installed before everything else
- on a new system. Thus, only very few packages are allowed
- to go into the ttbase/tt section to keep the required
- disk usage very small.
+ on a new system. Only very few packages are allowed to form
+ part of the base system, in order to keep the required disk
+ usage very small.
/p
 
p
- Most of these packages will have the priority value
- ttrequired/tt or at least ttimportant/tt, and many
- of them will be tagged ttessential/tt (see below).
+ The base system consists of all those packages with priority
+ ttrequired/tt or ttimportant/tt. Many of them will
+ be tagged ttessential/tt (see below).
/p
   /sect
 
   sect

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#440420: [PROPOSAL] Manual page encoding

2007-12-31 Thread Colin Watson
On Sun, Dec 30, 2007 at 10:28:12PM -0800, Russ Allbery wrote:
 Colin Watson [EMAIL PROTECTED] writes:
  I propose that policy should standardise that we move to using UTF-8 as
  the source encoding for all manual pages since it clearly makes sense to
  do so. This will still need to be specified by each manual page (by
  means of the directory in which it is installed), and it does *not*
  affect what user locales are supported in any way. The
  internationalisation changes in man-db 2.5.0 will arrange for users to
  see pages in their native language when they did not before; I do not
  expect it to cause any users to fail to see pages in their native
  language when they previously did.
 
  Once man-db 2.5.0 is in place, the change in policy to recommend
  installing pages with UTF-8 encoding in a properly marked directory will
  have *no* effect on users, no matter what their locale. It is purely for
  improved maintenance of the system.
 
 Hi Colin,
 
 I assume that now that man-db 2.5.0 is in the archive, the original patch
 in this bug report is no longer current and we should now be saying
 something different.  We're trying to increase the speed of Policy work,
 so hopefully this time we can get a change made in a timely fashion.  :)

Right. Here's an update; I think I've captured most of the discussion in
the thread so far. The following patch could in principle be applied
now, given seconds. Wordsmithing welcome, as I'm aware that this is a
rather dense recommendation; I'm also looking for seconds for this
proposal.

--- orig/policy.sgml
+++ mod/policy.sgml
@@ -8521,6 +8521,43 @@
  be present in the future.
  /footnote
/p
+
+   p
+ Manual pages installed under subdirectories of
+ file/usr/share/man/file with a codeset specification (e.g.
+ file/usr/share/man/fr.UTF-8/file or
+ file/usr/share/man/de_DE.ISO-8859-1/file) must be encoded
+ using the named character encoding. The subdirectory name does
+ not need to be a well-formed locale as in
+ file/usr/share/i18n/SUPPORTED/file; a language and
+ codeset, for example filede.UTF-8/file, is all that is
+ necessary for most languages.footnoteIn fact, specifying a
+ country is often harmful, as it excludes users of the language
+ in other countries; de_DE would apply only to speakers of
+ German in Germany, and not to those in Austria./footnote
+   /p
+
+   p
+ For compatibility with both previous versions of Debian and
+ other systems, manual pages in other locale-specific
+ subdirectories of file/usr/share/man/file should use
+ either UTF-8 or the usual legacy encoding for that language
+ (usually the one corresponding to the shortest relevant locale
+ name in file/usr/share/i18n/SUPPORTED/file). For example,
+ pages under file/usr/share/man/fr/file should use either
+ UTF-8 or ISO-8859-1.footnoteprgnman/prgn will
+ automatically detect whether UTF-8 is in use. In future, all
+ manual pages will be required to use UTF-8./footnote
+   /p
+
+   p
+ Due to limitations in current implementations, all characters
+ in the manual page source should be representable in the usual
+ legacy encoding for that language, even if the file is
+ actually encoded in UTF-8. Safe alternative ways to write many
+ characters outside that range may be found in
+ manref name=groff_char section=7.
+   /p
   /sect
 
   sect

Not lying about your encoding is a safe must, I think, because this is
pretty much indisputable and I know of no cases of this rule being
broken in today's archive (though I haven't done a full scan).

Once we're a little further into the transition, I would like to replace
the second paragraph above with one that says that all manual pages
should be encoded in UTF-8.

I'm still open to whether new-world-order pages should go in
/usr/share/man/LL.UTF-8 or just /usr/share/man/LL. Pros for LL.UTF-8:

  * Non-compliant implementations (I'm guessing xman, yelp, etc.) will
display English manual pages rather than misencoded garbage. This
might not be such a big deal for European languages, but for e.g.
Japanese I suspect most people would prefer English to the spew you
get by trying to interpret UTF-8 as EUC-JP.

  * Determining progress towards universal UTF-8 encoding can trivially
be done by scanning Contents files rather than having to unpack the
archive and run iconv over everything.

  * In the event that we later want to migrate to yet another
universal encoding that can't be automatically distinguished from
UTF-8, we already have the encoding name right there and migration
will be straightforward. (I think this is an unlikely scenario.)

And cons:

  * Many upstream developers using Debian systems will follow along
without realising

Bug#392362: [PROPOSAL] Add should not embed code from other packages

2007-12-05 Thread Colin Watson
On Wed, Dec 05, 2007 at 06:26:17PM +0100, Bill Allombert wrote:
 On Wed, Dec 05, 2007 at 05:08:49PM +, Colin Watson wrote:
  This has the unfortunate property of excluding Gnulib, which is a
  library of code explicitly designed by the GNU build system folks to
  live alongside the Autotools and be copied into packages to provide
  replacements for missing functions. Perhaps something like this would
  work?
 
 I expect that on a Sid system, there will be no missing functions to
 replace, so Gnulib will not actually embed code.

Gnulib in fact provides a number of other useful utility functions as
well as simply replacement functions (e.g. xmalloc, xasprintf,
compile_csharp_using_pnet, execute_java_class) so this assumption may
well not be correct.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#400112: [PROPOSAL] forbid source/binary package name conflicts

2007-10-11 Thread Colin Watson
On Wed, Oct 03, 2007 at 04:49:28PM +0100, Ian Jackson wrote:
 Manoj Srivastava writes (Bug#400112: [PROPOSAL] forbid source/binary package 
 name conflicts):
  On Thu, 23 Nov 2006 22:45:18 +0100, Lucas Nussbaum
  [EMAIL PROTECTED] said:  
   Some source packages generate binary packages using the same name as
   another source package. For example, see the 'qd' source package,
   and the 'qd' binary package generated by the kfolding source package
   (in contrib).
  
   Some tools don't like it at all (e.g sbuild), [...]
 
 Another example is the bug system.  When you submit a bug you (used
 to) write:
   Package: source or binary package name
   Version: version of that source or binary package
 
 The BTS now provides `Source:' instead of `Package:' but it has not
 been widely publicised AFAIR, no-one uses it (not even automated
 rebuild testers and the like),

... and dak when closing bugs. That was one of the main points of adding
it, actually; it was done during the upheaval for version tracking.

(Conceptually, ordinary users file bugs on binary packages, while buildd
maintainers, developers spotting a problem while reading source code,
etc. file bugs on source packages. Neither obsoletes the other.)

 To make the existing interface to bugs.debian.org unambiguous the
 following rule is needed:
 
   If there are a source package and a binary package with the same
   name then
(a) that binary package must be generated from the
identically-named source
   and
(b) the generated binary package version number must be the
same as the generating source package version number

I agree that the semantics of bugs.debian.org get tremendously difficult
when these rules are violated. This caused me huge headaches when
implementing version tracking, and I'm quite convinced that there are
still internal bugs in this area, not to mention practically intractable
UI bugs. As a (not very active these days) debbugs developer I support
Ian's proposal.

I am a little concerned that there may still be binary packages from
different source packages on particular architectures at the moment
(e.g. it used to be the case at least in Ubuntu that openoffice.org
wasn't 64-bit-safe, so there was a separate openoffice.org-amd64 source
package which generated the same binary packages built against 32-bit
libraries). In most cases this is a ghastly hack and there are probably
better ways to do it. However, it would be nice to know the extent of
the problem before forbidding it.

gcc-3.3 and gcc-3.4 still appear to have different source and binary
package versions. More recent versions of gcc don't do this. Again, it
would be nice to know the extent of the problem here.

  Why is this not considered a bug in the tools that needs to be
   fixed, rather than creating policy to work around bugs in the toolchain?
 
 I think that trying to fix everyone's brains not to get confused in
 this area is impractical.

I concur. As Ian says, the BTS has had a disambiguating mechanism here
(Source and Source-Version) for years, but nearly nobody uses it and
frankly I don't blame them. The situation is rife with ambiguity and it
would be much less confusing for everyone to forbid it.

-- 
Colin Watson   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#440420: [PROPOSAL] Manual page encoding

2007-09-04 Thread Colin Watson
On Tue, Sep 04, 2007 at 02:04:32PM +0200, Jens Seidel wrote:
 On Tue, Sep 04, 2007 at 11:52:57AM +0100, Colin Watson wrote:
  Thanks. I hope that my comments above clarify some further confusion. I
  would still appreciate concrete information and examples on why you
  don't like the idea of manual pages being installed in UTF-8 (noting
  that as a package maintainer or a translator you wouldn't have to
  actually edit it in that encoding if you didn't want to, it doesn't have
  to be done urgently or on any kind of flag day, I have addressed the
  non-Latin concern above, and it will not have a negative effect on users
  of non-UTF-8 locales).
 
 Is it save to use UTF-8 characters if a very similar character exists in
 ASCII or can be expressed using groff macros? Think about the many
 dashes which exist in typography. Is it OK to use a UTF-8 hyphen sign
 instead of \(hy (same for en-dash, em-dash, ...) especially as the
 ordinary minus - is very similar in the output?
 
 Will man-db support all kind of white spaces (such as nbsp;) ...?

You'll need to use the characters documented in groff_char(7) for this,
at least for the time being. See below.

 Of course there exist transliterations of all these characters I'm
 currently talking about but it would probably make the live easier to
 restrict to ASCII if possible, right?

I do appreciate that there are a few gotchas here. I think it is unduly
cumbersome to express all non-ASCII alphanumeric characters using groff
named characters, though. That option has been available for ages and
translators have generally not taken advantage of it; I can entirely
understand why not.

 Isn't there not also more than one way to express accented characters
 such as ä (as a single character and as 'a' followed by accent?

groff 1.19 supports full Unicode-style composite glyphs, but the version
we have doesn't (see the comment in my original bug report about groff
versioning). Both our version and newer versions support named
characters such as \[:a] or \(:a (variant spellings), again documented
in groff_char(7). There's also the \N escape which can give you
font-dependent numbered glyphs, which are Unicode codepoints if you
happen to know that the utf8 device is in use.

As above, though, these have been available and translators generally
haven't used them; I can imagine that they're insanely cumbersome to use
in practice for e.g. Japanese. So I'd really rather just support plain
UTF-8 input for alphanumerics, which I think will actually get used.

Do you think we will need explicit language in policy for this? For the
time being, until we have a version of groff supporting direct UTF-8
input, the implementation will require that the page be convertible to
the legacy encoding for that language using iconv (it'll use 'iconv -c'
so that unknown characters are dropped rather than breaking the whole
page, but all the same): so e.g. for German pages characters without a
direct equivalent in ISO-8859-1 should be avoided. This seems like a
reasonable thing to document after man-db 2.5.0, and would cover things
like UTF-8 hyphen characters.

I'm not sure how groff will handle such characters once it does have
UTF-8 input support. I suspect it would convert U+2010 to its internal
hy glyph and render that in whatever way is appropriate for the output
device; that would really be ideal. However, I don't have enough
information to make a decision based on that guess.

In general, I think it's worthwhile for policy to make comments on
encoding for purposes of interoperability and standardisation, but I'd
be inclined to draw the line at filling it up with instructions on how
to use groff correctly. Does this sound reasonable?

Thanks,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#440420: [PROPOSAL] Manual page encoding

2007-09-03 Thread Colin Watson
On Mon, Sep 03, 2007 at 08:30:39AM +0200, Jens Seidel wrote:
 On Sun, Sep 02, 2007 at 11:31:45PM +0100, Colin Watson wrote:
  On Sun, Sep 02, 2007 at 10:24:43PM +0200, Jens Seidel wrote:
   On Sat, Sep 01, 2007 at 01:02:33PM +0100, Colin Watson wrote:
+ is an ISO-639 language code, must be encoded with the usual
+ legacy (non-UTF-8) character set for that language, as shown
+ by:
+ example compact=compact
+egrep -v '\.|@|UTF-8' /usr/share/i18n/SUPPORTED
   
   You are aware of the fact that some languages such as Vietnamese have a
   8 bit encoding but do not match this regular expression
   (vi_VN.TCVN TCVN5712-1)?
  
  Hmm, yes. I'm not sure what to do about Vietnamese at the moment; I
  doubt it works properly right now. I'll check it out.
 
 I doubt it too...

Regardless, to make it work with current groff (which reserves a part of
the input character set for its own use and thereby conflicts with UTF-8
input), a legacy character set is needed; what I was trying to express
is that this should be the most usual legacy encoding for that
language.

Vietnamese is an odd case. In the long term, I think being explicit
(vi.UTF-8) is the right answer anyway.

+ the ttfr_BE.UTF-8/tt locale). It is therefore not yet
+ recommended to install pages encoded in UTF-8, but rather to
   
   Maybe it would be a good idea to explain what to do with non supported
   encodings these days. What to do with a Vietnamese page? Installing it
   now UTF-8 encoded into vi.UTF-8/ seems fine to me but you write not yet
   recommended!
  
  Well, that just plain won't work; man won't look there. There are some
 
 Yup, I'm aware of it. But once proper support to man-db is added it will
 work. There should be no need to upload a large amount of packages just
 to fix manual pages after the man-db transition if this can happen
 already now. (Or should currently not supported manual pages not
 be installed at all?)

This is sort of what my caveat about the not yet recommended language
was about. I agree with you that if it doesn't work with current man
anyway then there is no harm in installing it in the future location.
I'm not sure how to word this in policy though; do you have any
suggestions?

Maybe it would be better for me to just focus on getting man-db 2.5.0
done ASAP and not worry too much about policy in the meantime. :-)

 Isn't this the core idea of extenting the policy? To guide the
 developer what should/will be used once the transition happened?
 
 hex-a-hop installs already the Vietnamese and the Bulgarian manpages,
 both are currently not supported (at least in Etch and according to the
 changelog also in Sid -- and can be used as a test for you). (I will
 file a bug for Bulgarian on man-db soon.)

That Bulgarian page is a particularly unfortunate example because it
uses the ѝ character which is not in CP1251 (the encoding of the bg_BG
locale), so right now we have no reliable path to render this page. I've
added Bulgarian support anyway, it's just that this page will be a bit
broken. I think you would be best advised to move this page to
/usr/share/man/bg.UTF-8 given that it definitely won't work in
/usr/share/man/bg.

In the case of the Vietnamese page, please change the — character
(U+2014) to \- as is standard in NAME sections; otherwise this works
fine when recoded via TCVN5712-1 so I've added support for this too.
Again, I think you would be best advised to install this in
/usr/share/man/vi.UTF-8.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#440420: [PROPOSAL] Manual page encoding

2007-09-03 Thread Colin Watson
On Mon, Sep 03, 2007 at 04:15:31PM +0200, Jens Seidel wrote:
 On Mon, Sep 03, 2007 at 01:11:04PM +0100, Colin Watson wrote:
  I'm not sure how to word this in policy though; do you have any
  suggestions?
 
 How about:
 
 It is therefore not yet recommended to install UTF-8 encoded pages if a
 classical encoding can be used instead, but rather to continue using the
 legacy encoding.

That sounds reasonable, though I'd use the same term (either classical
encoding or legacy encoding) in both places to avoid creating
confusion about whether these might be two different things.

  /usr/share/man/bg.
  
  In the case of the Vietnamese page, please change the — character
  (U+2014) to \- as is standard in NAME sections; otherwise this works
 
 Oops, Clytie used a Unicode character and Lintian or po4a did not
 complained :-( I will file a bug against Lintian ...

There's already a to-do comment in Lintian noting that it doesn't check
non-English manual pages yet; this can be changed once man-db 2.5.0 is
uploaded, but not really before.

  fine when recoded via TCVN5712-1 so I've added support for this too.
 
 Great, but I think TCVN5712-1 is not supported by po4a as output
 encoding.

I meant having man do this automatically.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#440420: [PROPOSAL] Manual page encoding

2007-09-03 Thread Colin Watson
On Mon, Sep 03, 2007 at 05:38:10PM +0200, Giacomo A. Catenazzi wrote:
 Colin Watson wrote:
 --- orig/policy.sgml
 +++ mod/policy.sgml
 @@ -8450,6 +8450,39 @@
be present in the future.
/footnote
  /p
 +
 +p
 +  Manual pages that are installed under
 +  file/usr/share/man//filevarll/var, where varll/var
 +  is an ISO-639 language code, must be encoded with the usual
 +  legacy (non-UTF-8) character set for that language, as shown
 +  by:
 +  example compact=compact
 +egrep -v '\.|@|UTF-8' /usr/share/i18n/SUPPORTED
 +  /example
 +  footnote
 +This is necessary because many packages have historically
 +included manual pages encoded thus, and changing the
 +encoding of the whole hierarchy would involve a difficult
 +transitional period.
 +  /footnote
 +  Manual pages that are installed under
 +  file/usr/share/man//filevarlocale/var, where
 +  varlocale/var is a full locale name listed in
 +  file/usr/share/i18n/SUPPORTED/file, must be encoded with
 +  the character set implied by that locale.
 +/p
 
 I don't like the proposal ;-)
 It is not very POSIXly and to application specific.

Of course it is application-specific; /usr/share/man is
application-specific (i.e. specific to the man application). Methods of
processing /usr/share/man that don't use /usr/bin/man are already broken
in other ways. (man exports a number of specialised interfaces that can
be used by frontends, and I'm happy to add more on request.)

POSIX does not specify anything about the layout of /usr/share/man. The
FHS makes an attempt, but it's horribly broken (speaking as one who has
attempted to implement it), predates widespread deployment of UTF-8, and
does not really help with the problem to hand anyway.

 1-
 The POSIX way to specify locale is:
 language[_territory][.codeset] or
 [EMAIL PROTECTED] for some LC_ variables)

Note that e.g. fr.UTF-8 matches this pattern, so I don't see your
problem. The territory is intentionally omitted from the installation
directory in my transition plan because it causes real problems.

man will support full locale names under /usr/share/man, but in my
transition plan I do not recommend using them because you don't
typically want to make your French manual pages available only to users
in France; they should be available to Belgians, French Canadians, Swiss
French, and Luxembourgers as well. The standard exceptions well-known to
internationalisation implementors are Chinese (zh_CN and zh_TW are
different dialects and different scripts) and Portuguese (pt_PT and
pt_BR are more or less different languages).

 It is confusing the legacy (non-UTF-8) character.

Yes, it is, but it is current practice and I merely document it. If we
were starting from scratch with the benefit of hindsight then obviously
we wouldn't have done it this way.

I think it's unambiguous for all languages where we actually have
existing manual pages to worry about.

 Every locale has a charset. So the man page should be
 encoded according the right locale (in the manual PATH).

My proposal (the diff, as opposed to the transition plan later in my
original message) documents current practice, in which manual pages are
installed in directories such as /usr/share/man/fr. fr is not a full
locale name recognised by glibc, and does not have a defined character
set in our system. Thus, we must define its character set by means of
observing that historically pages installed there have been encoded in
ISO-8859-1, and standardising that to prevent unsolvable encoding
conflicts.

In future, it absolutely makes sense to install the pages in
/usr/share/man/fr.UTF-8 instead, which is where my transition plan takes
us. But, for now, the only available alternatives are
/usr/share/man/fr_FR.ISO-8859-1 and /usr/share/man/fr_FR.UTF-8, which
(as above) have fundamental problems, and in any case are not
well-supported at the moment (in man-db 2.4.*,
/usr/share/man/fr_FR.UTF-8 will only be used if you are using that exact
locale; in man-db 2.5.0, it will be used for users of the fr_FR
(ISO-8859-1) locale as well and recoded on the fly, so that you don't
have to install one manual page per possible encoding).

 2-
 I've some problem with
 /usr/share/i18n/SUPPORTED
 Who generate this file?
 IIRC our glibc has more locales.

glibc ships this file.

  $ dpkg -S /usr/share/i18n/SUPPORTED
  locales: /usr/share/i18n/SUPPORTED
  $ apt-cache show locales | grep Source:
  Source: glibc

 I don't find en, de.

That's because glibc does not recognise those as valid locales. If you
believe that a locale exists in our system but it is not in
/usr/share/i18n/SUPPORTED, you are by definition mistaken. :-)

 3-
 With the above point, I think that en (as example) has
 a charset (from glibc), so man page should be set with
 such charset.

Your assumption is mistaken, I'm afraid. /usr/share/i18n/SUPPORTED is
the canonical list of available locales in our

Re: New optional debian/rules targets for consistency of patch systems?

2007-09-02 Thread Colin Watson
On Sun, Sep 02, 2007 at 04:27:27AM -0400, Daniel Schepler wrote:
 I'd like to get an opinion on a proposal for several new debian/rules targets 
 I've been thinking of for a while now.  The motivation here is that the 
 different patch systems have differing targets required for applying or 
 unapplying patches, which is highly annoying when trying to debug packages 
 using them.  For example, I think dpatch uses patch/unpatch, cdbs uses 
 apply-patches/unapply-patches, and dbs needs 
 make -f /usr/share/dbs/something.mk debian/stampdir/patch or something 
 strange like that.  So for consistency, I'd like to propose the optional 
 targets:
 
 unpack
   Unpacks any embedded source tarballs into a build directory, without
   applying any patches.
 
 patch
   Applies all patches to the build directory, after unpacking sources if
   required.
 
 unpatch
   Reverts all patches which have been applied to the build directory.

This would be fantastic and make working with the array of subtly
different patch systems much less painful. Rather than simply saying
optional for 'patch' and 'unpatch', I'd go a step further and propose
something like source packages that apply patches after 'dpkg-source
-x' should provide the following targets.

Obviously finishing off the integration of patch systems into dpkg-dev
would be better, but this would make life a lot less painful in the
meantime.

I imagine you will be called upon to provide justification for this
particular choice of target names, at least from maintainers and users
of patch systems that currently use different ones. I would suggest the
rationale for these names that they are simple verbs in use by at least
one patch system already, and they are the shortest of the target names
currently in use.

Perhaps start by filing bugs on patch system packages to provide these
names as aliases and see if we can get some kind of vague consensus
rather than bikeshedding?

 And while I'm at it:
 
 configure
   Prepares the build directory for compilation, for example by running
   autoconf scripts.

How would this interact with source packages that perform multiple build
passes?

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#440420: [PROPOSAL] Manual page encoding

2007-09-02 Thread Colin Watson
On Sun, Sep 02, 2007 at 10:24:43PM +0200, Jens Seidel wrote:
 On Sat, Sep 01, 2007 at 01:02:33PM +0100, Colin Watson wrote:
  --- orig/policy.sgml
  +++ mod/policy.sgml
  @@ -8450,6 +8450,39 @@
be present in the future.
/footnote
  /p
  +
  +   p
  + Manual pages that are installed under
  + file/usr/share/man//filevarll/var, where varll/var
 
 Please use file/usr/share/man/varll/var/file as ll is part of
 the filename.

Thanks; consider it amended.

  + is an ISO-639 language code, must be encoded with the usual
  + legacy (non-UTF-8) character set for that language, as shown
  + by:
  + example compact=compact
  +egrep -v '\.|@|UTF-8' /usr/share/i18n/SUPPORTED
 
 You are aware of the fact that some languages such as Vietnamese have a
 8 bit encoding but do not match this regular expression
 (vi_VN.TCVN TCVN5712-1)?

Hmm, yes. I'm not sure what to do about Vietnamese at the moment; I
doubt it works properly right now. I'll check it out.

  + At present, it is not generally possible to install a manual
  + page encoded in UTF-8 such that it will be used in all locales
  + for that language (for example, a page installed under
  + file/usr/share/man/fr_FR.UTF-8/file will not be used in
  + the ttfr_BE.UTF-8/tt locale). It is therefore not yet
  + recommended to install pages encoded in UTF-8, but rather to
  + continue using the legacy encoding.footnoteThis is expected
  + to change as of man-db 2.5.0./footnote
 
 Maybe it would be a good idea to explain what to do with non supported
 encodings these days. What to do with a Vietnamese page? Installing it
 now UTF-8 encoded into vi.UTF-8/ seems fine to me but you write not yet
 recommended!

Well, that just plain won't work; man won't look there. There are some
locales that are unfortunately left out in the cold at the moment. I'm
working to improve the situation.

(While man will look in /usr/share/man/vi_VI.UTF-8, that won't work
properly either because groff doesn't accept UTF-8 input and man doesn't
know how to recode that to an 8-bit encoding that can be passed through
groff's ascii8 device and recoded back to UTF-8 on the other side.
Basically, if man doesn't know about the legacy encoding for your
language, you're currently screwed, and no amount of changes to policy
will help you. Yes, this is far from ideal.)

5. Update dh_installman to recode manual pages to UTF-8 automatically
   and install them under /usr/share/man/ll.UTF-8/. Getting the
 
 This requires an option to specify the encoding of the manual page. Or
 assume UTF-8 by default for all languages not having a matching regular
 expression.

I was thinking of having dh_installman recode to UTF-8, and yes, you
would need to know the encoding somehow (maybe a table of legacy
encodings as is currently in man-db would do the job). This is the least
well-thought-out part of my transition plan, though, so ideas are good.

   Conflicts:/Breaks: in here might be difficult, plus I'm not sure
 
 Why not just ignoring this? If updating man-db is sufficient let's
 ignore dependencies. (If a HTML documentation file uses the new
 (fictitious) HTML version 9 there is no need to list all browsers
 supporting this in the dependencies.)

Yeah, I'm open to just ignoring this. It's probably the pragmatic
approach.

Thanks,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#440420: [PROPOSAL] Manual page encoding

2007-09-01 Thread Colin Watson
On Sat, Sep 01, 2007 at 02:49:20PM +0200, Kurt Roeckx wrote:
 On Sat, Sep 01, 2007 at 01:02:33PM +0100, Colin Watson wrote:
  + Manual pages that are installed under
  + file/usr/share/man//filevarll/var, where varll/var
  + is an ISO-639 language code, must be encoded with the usual
  + legacy (non-UTF-8) character set for that language
 [...]
  + Manual pages that are installed under
  + file/usr/share/man//filevarlocale/var, where
  + varlocale/var is a full locale name listed in
  + file/usr/share/i18n/SUPPORTED/file, must be encoded with
  + the character set implied by that locale.
 [...]
 
2. man-db 2.5.0-1 uploaded, including support for installing pages in
   /usr/share/man/ll.codeset/ (e.g. /usr/share/man/fr.UTF-8). The
   basename of this directory is not typically a well-formed locale,
   but it is appropriate because it allows a clear specification of
   the hierarchy's encoding while applying to all countries using that
   language.
 
 This part doesn't seem to be documented, or should the locale from the
 second case also apply to the not well-formed locale ll.codeset?

Point 2. above is part of a transition plan that is not yet implemented,
and so isn't part of the policy amendment I'm proposing now. (I only
mentioned it in the same mail to anticipate questions about support for
UTF-8 manual pages.) When it is implemented, I'll propose a further
amendment that requires pages under /usr/share/man/ll.codeset to be
encoded with codeset.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: GNUstep and FHS

2005-08-01 Thread Colin Watson
On Sat, Jul 30, 2005 at 02:55:53PM -0700, Steve Langasek wrote:
 On Sat, Jul 30, 2005 at 12:26:04PM +0100, Colin Watson wrote:
  Brendan O'Dea has said things along these lines before, I know, but I'll
  repeat it: those wrappers are in most cases rather tightly bound to the
  precise interfaces exported by the architecture-dependent binary
  modules. The fact that they happen to be expressed in a form which is
  the same on all architectures doesn't make them truly
  architecture-independent, as architectures with different versions of
  the binary modules would generally need different versions of the
  wrappers too.
 
  Files are put in /usr/share because one might want to mount that
  directory on multiple machines. If putting something on a hypothetically
  NFS-mounted /usr/share means that you have to keep /usr/lib precisely in
  sync across all the machines that mount it for fear of breakage, you
  have to ask whether this is really a beneficial thing to do.
 
 But it's quite probable that there will be interdependencies between the
 contents of /usr/lib and /usr/share and yet other directories, requiring
 such strict synchronization.

(Those would presumably be expressed by tightly-versioned dependencies
among binary packages, where necessary. I could imagine an automatic
scheme that spots when architecture-dependent binary packages are
upgraded on one machine in a group and goes off to upgrade them on all
the others.)

 It's not uncommon that sharing /usr requires
 fiddling with /etc across machines, even, but in particular I think that
 trying to NFS share /usr/share is just not worth the pain anyway.

I tend to agree with you. In that case, I have to ask what the point is
of getting het up about whether something's in /usr/share, if we don't
think it's generally worth people's while actually sharing it. I can see
why we should be strict about not allowing architecture-dependent files
in /usr/share, since the few people who *do* actually share it would be
seriously inconvenienced by that; but what important problem are we
solving by being strict about architecture-dependent files in /usr/lib?

My opinion is that being strict about whether files are in /usr/lib when
they shouldn't be isn't solving any sufficiently important problem to
consider it release-critical, and that packages should be allowed to
deviate from this and use /usr/lib alone when it is extraordinarily
difficult to distribute them properly across the hierarchy (as is
apparently the case for GNUstep).

The situation seems to me to be very similar to the question of whether
architecture-independent data should go in a separate Architecture: all
package or be part of some related Architecture: any package; in the
past consensus has been that large chunks of data should generally be
split out, but we've certainly never considered it release-critical if
it isn't.

 At any rate, I'm not exactly bothered that there is arch-independent data in
 /usr/lib/perl; I'm just pointing out that it is a precedent.

Right.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: GNUstep and FHS

2005-07-30 Thread Colin Watson
On Sat, Jul 30, 2005 at 03:52:44AM -0700, Steve Langasek wrote:
 On Sat, Jul 30, 2005 at 12:00:32PM +0200, Marc 'HE' Brockschmidt wrote:
  Listing Perl, Python and Emacs here is totally wrong (and I don't know
  enough about Java packaging to speak about it). Perl is the best
  example: Architecture-dependend data is stored in /usr/lib/perl{/,5/},
  arch-indep data in /usr/share/perl.
 
 Not 100% true; /usr/lib/perl{/,5/} contain architecture-dependent binary
 modules, *along with any architecture-independent wrappers that accompany
 them*.

Brendan O'Dea has said things along these lines before, I know, but I'll
repeat it: those wrappers are in most cases rather tightly bound to the
precise interfaces exported by the architecture-dependent binary
modules. The fact that they happen to be expressed in a form which is
the same on all architectures doesn't make them truly
architecture-independent, as architectures with different versions of
the binary modules would generally need different versions of the
wrappers too.

Files are put in /usr/share because one might want to mount that
directory on multiple machines. If putting something on a hypothetically
NFS-mounted /usr/share means that you have to keep /usr/lib precisely in
sync across all the machines that mount it for fear of breakage, you
have to ask whether this is really a beneficial thing to do.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#314808: Suggestion

2005-06-22 Thread Colin Watson
On Wed, Jun 22, 2005 at 10:41:39AM +0200, Lukas Kolbe wrote:
 I don't really see a problem here.
 
 The FHS dictates: /src is site-specific.
  
 The Policy dictates: webapps-files in /usr/share/package/, which I
 strongly agree.
 
 Now, what prevents us writing helper-packages to maintain a subset of,
 say, /srv/webapps/?

The underlined portion above.

Consider: it's common practice to have /srv/$HOSTNAME for services
hosted by the system. Let's say somebody's internal web applications
hostname happens to be 'webapps' (and they decided not to bother with
the FQDN in the directory). Now you've just trampled over their local
configuration. If anything, /srv/www is even more likely to be already
in use.

Once something has been declared to be site-specific, you can't go back
on that.

Now, helper packages that maintained a *generic* location would be fine.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Bug#303596: Emacs installation fails on vfat fs

2005-04-11 Thread Colin Watson
On Sat, Apr 09, 2005 at 12:01:53AM -0700, Stephen Gildea wrote:
 I also point out that if a chown/chmod operation by root on an existent
 directory fails, there's nothing to be done about it, whether you notice
 it or not.

My response would be inclined to be run fsck. Programs should report
this kind of error and fail, because it may be the first sign of
filesystem corruption.

And regarding the example, it's just this, an example, and therefor
probably not really a policy recomendation in itself.
 
 I agree.  I notice that the example script fragment in 9.1.2 will not
 fail if the mkdir (the most important operation) fails.  Thus I suspect
 that the script's failing if the chown or chmod fails is a bug in the
 example script.

There's a good reason (specified above it) why the script doesn't fail
if the mkdir fails, but given that the mkdir has succeeded I think it
should be entitled to expect normal POSIX filesystem semantics after
that.

Cheers,

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: URI Enclosure in Angled Glyphs

2003-12-31 Thread Colin Watson
On Tue, Dec 30, 2003 at 11:44:28PM -0500, Alexander Winston wrote:
   After speaking with Robert Jordens and several of my colleagues
 about it, I feel more comfortable encouraging the behavior that is
 referenced in RFC 2396, Appendix E. The suggestion is the enclosure of
 URIs---URLs included, of course---in the angle brackets  and . The
 Unicode Consortium, or perhaps more specifically, The Unicode
 Standard, refers to these glyphs as LESS-THAN SIGN (U+003C) and
 GREATER-THAN SIGN (U+003E), respectively.
   This is a practice that makes good sense to me, but I am curious
 as to whether anyone else has any views on making this the suggested
 Debian method for referring to URIs.

(For context, see bug #225585.)

It definitely makes sense to me to recommend this for use in package
descriptions, at least when the URI would be ambiguous due to being
immediately followed by punctuation or similar.

I'd prefer to avoid the URL: prefix that RFC 2396 mentions but notes
is not common in practice; some people configure their terminal
emulator to consider : as part of a word so that they can simply
double-click to select a whole URI (at least if it's in a vaguely normal
format), and the URL: prefix breaks that.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Re: Init.d script, preventing start of one service

2003-11-11 Thread Colin Watson
On Tue, Nov 11, 2003 at 04:27:03PM +0100, Sylvain LE GALL wrote:
 ps : i know ssh use a file to launch or not sshd, is it a good solution
 ?

No, I don't think it is a good solution. I'm planning to split the ssh
package into openssh-client and openssh-server at some point, which will
get rid of that whole ugly edifice (and close several bugs as a result).
I think having services in their own packages which you can uninstall if
you don't want to run them is better than /etc/default cruft.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#218893: Proposal: debian/rules.version file [Fix for the build-arch problem]

2003-11-04 Thread Colin Watson
On Tue, Nov 04, 2003 at 12:32:47AM +0100, Bill Allombert wrote:
 On Tue, Nov 04, 2003 at 12:10:19AM +0100, Josip Rodin wrote:
  What mandatory conversion to the new format in the long run?
 
 As I see it: currently there is version 0 and 1. Suppose one
 day version 2 is added. Requirement for version 2 will include
 requirement for version 1. If you want to implement version 2,
 you will have to implement version 1 even if it is not useful,
 say for a Arch: all source package.
 
 However, if you don't need version 2, you can stay to version 0.
 
 As a parallel, some of my packages are still using DH_COMPAT=1
 debhelper interface, and no one is complaining.

Although I keep seeing inexperienced developers converting packages to
debhelper version 4 in NMUs. :-/ It's newer and shinier, so it must be
better, right? (And I wonder how many versioned build-deps on debhelper
go missing in the process, how many duplicate conffiles get created by
incautious moves to DH_COMPAT = 3, and so on ... there's a reason we
discourage cosmetic changes in NMUs.)

If we're adding optional features, doing so in a way that doesn't
confuse people into believing that all packages need to use them would
definitely be a good thing, I think.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Re: Bug#218861: apt: apt-get should warn about removing required packages

2003-11-03 Thread Colin Watson
On Sun, Nov 02, 2003 at 09:47:03PM -0500, Matt Zimmerman wrote:
 I'm not sure why libc6 is not essential, but since it is depended upon by
 essential packages, it is promoted to essential status anyway.  Nothing else
 on that list would prevent things like dpkg from working.
 
 I'm copying debian-policy to see if there is some rationale for that
 definition that I am not aware of.

Libraries can't be essential, because it would make it too hard to
remove them when their sonames change.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#218893: Proposal: debian/rules.version file [Fix for the build-arch problem]

2003-11-03 Thread Colin Watson
On Mon, Nov 03, 2003 at 11:57:51AM +0100, Bill Allombert wrote:
 On Mon, Nov 03, 2003 at 11:01:13AM +0100, Josip Rodin wrote:
  Well, regardless of whether we pick versions or listing available targets,
  why not do it with a new control file field in the source section?
  That seems logical, and avoids creating a new file.
  
  It's tangentially relevant that the .dsc and .changes files include a Format
  field that is a version number. Having a Rules-Format: 2 field in control
  seems okay to me.
 
 Some packages generate the control file at build time (e.g. from a
 control.in).  We need to access the file before debian/rules is used,
 and debian/control might not exist yet.

dpkg-source already requires debian/control to exist before it calls the
rules file, so packages already have to make sure debian/control exists
in their source package, even if they later change it.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Re: Processed: your mail

2003-10-06 Thread Colin Watson
On Mon, Oct 06, 2003 at 05:04:23PM +0200, Martin Godisch wrote:
 On Mon, Oct 06, 2003 at 16:17:12 +0200, Josip Rodin wrote:
  You're already the submitter of all of those, what's the point?
 
 To receive replies not CCing me.

I'm sure I already said that this isn't an appropriate use of 'owner'
(regardless of the fact that there isn't another good way just at the
moment).

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#212034: Debina Perl Policy manual uses dependency backards

2003-09-21 Thread Colin Watson
On Sun, Sep 21, 2003 at 04:33:05PM -0400, Daniel B. wrote:
 Package: debian-policy
 Version: 3.5.6.1
 
 The Debian Perl Policy manual
 (file:/usr/share/doc/debian-policy/perl-policy.html/ch-perl.html)
 uses the word dependency backwards.  This error makes the documentation 
 hard to understand.

Debian's been using dependency this way round since roughly the dawn
of time. I'm certain that trying to reverse it now would sow confusion
among the entire developer population.

Consider it a piece of jargon.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#212034: Debina Perl Policy manual uses dependency backards

2003-09-21 Thread Colin Watson
On Sun, Sep 21, 2003 at 06:31:31PM -0400, Daniel B. wrote:
 Colin Watson wrote:
  I'm certain that trying to reverse it now would sow confusion
  among the entire developer population.
 
 1.  The current state is already confusing.

I don't find it so in the least.

 2.  Fixing the problem doesn't require using dependency in the correct
 sense; it only requires _not_ using it backwards.  For example, 
 depended-on package (or library, etc., as the case may be) would 
 be unambiguous and not much longer.

That's a serious pain in the backside when you're discussing
dependencies.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Re: Bug#209008: debian-policy: [PROPOSAL] common interface for parallel building in DEB_BUILD_OPTIONS

2003-09-07 Thread Colin Watson
On Sun, Sep 07, 2003 at 01:33:36PM -0500, Manoj Srivastava wrote:
 On Sat, 6 Sep 2003 19:12:50 -0400, Joey Hess [EMAIL PROTECTED] said: 
  Robert Jordens wrote:
  +ifneq (,$(findstring parallel,$(DEB_BUILD_OPTIONS)))
  + PARALLEL_JOBS := $(shell echo $(DEB_BUILD_OPTIONS) | \
  + sed -e 's/.*parallel=\([0-9]\+\).*/\1/')
  + ifeq ($(DEB_BUILD_OPTIONS),$(PARALLEL_JOBS))
  + PARALLEL_JOBS := $(shell if [ -f /proc/cpuinfo ]; \
  + then echo `cat /proc/cpuinfo | grep 'processor' | wc -l`; \
  + else echo 1; fi)
  + endif
  +endif +MAKEFLAGS += $(NJOBS)
 
  That's a lot of boilerplate, almost enough to call for a program to
  parse DEB_BUILD_OPTIONS.
 
  I don't understand why we have an environment variable with a
  complex set of values in the first place. Surely something lile
  DEB_BUILD_OPTIONS_PARALLELL=n, DEB_BUILD_OPTIONS_NOPT, and
  DEB_BUILD_OPTIONS_NOSTRIP would not run us out of environment space,
  and it's far easier to work with.
 
   One of the reasons was to not have to have policy amended for
  every little variable that one came up with; the omnibus version
  allows the list of things to be added to at will. Admittedly, this
  makes for complex code; if the list gets too large

I don't see why policy would have to be amended for every little
variable any more than it currently does. We could easily just say that
variables named DEB_BUILD_OPTIONS_* may affect the build process, and
that the following are currently defined: etc. That'd be just the same
as the current situation as far as amending policy goes. We're claiming
a namespace, that's all.

We do have the problem that policy recommends, and virtually everyone
implements, the $(findstring) idiom, which means that we can never add a
DEB_BUILD_OPTIONS flag whose name has an existing flag as a substring.
While it may not actually be a problem with the current set of flags -
although I can easily imagine wanting to add something that contained
debug, an old flag - I've always felt that this situation is
uncharacteristically technically suboptimal. Using separate environment
variable names would fix that problem, not that I particularly relish
the idea of trying to get it changed everywhere.

If we didn't want to change the existing flags, we could still reserve
DEB_BUILD_OPTIONS_* for extensions.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#208010: [PROPOSAL] init script LSB 1.3 compliance (revised)

2003-09-01 Thread Colin Watson
On Mon, Sep 01, 2003 at 10:58:50AM +0200, Martin Godisch wrote:
 --- debian-policy-3.6.1.0.orig/policy.sgml2003-08-19 14:32:23.0 
 +0200
 +++ debian-policy-3.6.1.0/policy.sgml 2003-09-01 10:52:12.0 +0200
 @@ -5362,13 +5362,16 @@
 tagttforce-reload/tt/tag
 itemcause the configuration to be reloaded if the
 service supports this, otherwise restart the
 -   service./item
 +   service,/item
 +
 +   tagttstatus/tt/tag
 +   itemprint the current status of the service./item
   /taglist

I'd like to see a standard message format in section 9.4 (Console
messages from init.d scripts). It's probably appropriate to let init
scripts provide more detail if it's useful in particular cases, but
something like:

  Checking status of printer spooler: running.
  Checking status of OpenBSD Secure Shell server: stopped.

... as the first line of the output would be kind of nice.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#206684: debian-policy: Proposal for going ahead with mandatory debconf use for prompting

2003-08-22 Thread Colin Watson
On Fri, Aug 22, 2003 at 07:17:57PM +1000, Anthony Towns wrote:
 On Fri, Aug 22, 2003 at 07:46:56AM +0200, Christian Perrier wrote:
  This proposal is what I think to be the next step : make this a must
 
 This won't be happening for sarge. If you want it to happen, please focus
 your efforts on finding packages that don't do it, and supplying patches
 to add the features instead.

In fairness, he did say that:

  Of course, this *has* to wait after sarge release. It wouldn't be
  realistic to include this in the Debian Policy version which will be
  used for sarge.

I'd like to add one thing to the proposal: there needs to be an
exemption somehow for packages with high priority, e.g. Essential
packages and those in the dependency chain of debconf itself. Such
packages must be allowed to use debconf only if available, and otherwise
fall back to other means of prompting the user.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#80343: Some 2 year old proposals

2003-08-21 Thread Colin Watson
On Thu, Aug 21, 2003 at 11:35:28AM -0500, Manoj Srivastava wrote:
  * #80343: [PROPOSAL] policy should say no files should be owned by   
   
nobody   
   
Package: debian-policy; Severity: wishlist; Reported by: KORN Andras 
   
[EMAIL PROTECTED]; 2 years and 239 days old. 
 
   Hmm. Do people think this is required? Are there any
  files/directories owned by nobody? If so, why is that not already a
  bug? Should policy state, in effect, do not create bugs in your
  package? 

FWIW, /usr/share/doc/base-passwd/users-and-groups.html now exists and
says that nobody should never own any files, along with I think most of
the other advice suggested in this bug report. I'm not sure if you'd
want to give that document the weight of policy, but perhaps it would be
worth referring to it informationally for general documentation of the
globally allocated users and groups on Debian systems.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#203650: Poor recommendation in dpkg-statoverride section

2003-08-05 Thread Colin Watson
On Mon, Aug 04, 2003 at 10:37:53PM -0500, Adam Heath wrote:
 On Tue, 5 Aug 2003, Herbert Xu wrote:
  On Mon, Aug 04, 2003 at 11:05:54AM -0500, Adam Heath wrote:
   You're confusing pre-depends and essentialness.
 
  What about the case if adduser needs a new feature in useradd and
  thus uses a versioned dependency on passwd.  This means that the new
  adduser can be unpacked before the new passwd is unpacked or
  configured since it's only a plain old dependency.
 
  As an unversioned pre-dependency is fulfilled as long as a package
  was previously configured, this will allow packages declaring
  pre-dependencies on adduser to run their preinsts even though the
  new passwd is not yet available, rendering adduser useless.
 
 No.  If foo pre-depends on bar, dpkg guarantees that bar is in a
 configured state, before it even considers doing anything with foo.
 And foo can only be in a configured state, if all it's normal
 deps(conflicts/etc) are sane.
 
 Please, get your dependency resolution straight.  This is not rocket
 science.

Adam, the depisok() function in dpkg 1.10.10 says:

   * allowunconfigd should be non-zero during the `Pre-Depends' checking
   * before a package is unpacked, when it is sufficient for the package
   * to be unpacked provided that both the unpacked and previously-configured
   * versions are acceptable.

The code in this function and in predeppackage() appears to agree.
Furthermore, this behaviour is what is described in policy. Herbert
seems to be quite correct.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#203650: Poor recommendation in dpkg-statoverride section

2003-08-04 Thread Colin Watson
On Mon, Aug 04, 2003 at 11:05:54AM -0500, Adam Heath wrote:
 On Sat, 2 Aug 2003, Herbert Xu wrote:
  A single pre-dependency is not enough.  You will need to convert all
  of adduser's dependencies into pre-dependencies, and probably most
  of the things it depends on as well.
 
 No.  adduser can still use normal depends.  Pre-depends just means the
 dep'd on package has to be configured.  And depends are for this
 exactly.
 
 You're confusing pre-depends and essentialness.

I thought the same at first, but according to policy, pre-depends also
allows the depended-upon package to be merely unpacked or
half-configured provided that it has been fully configured at some point
in the past. Is this not correct?

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#203650: Poor recommendation in dpkg-statoverride section

2003-08-03 Thread Colin Watson
On Sun, Aug 03, 2003 at 10:23:10PM +0200, Jakob Bohm wrote:
 On Sat, Aug 02, 2003 at 09:59:13AM +1000, Herbert Xu wrote:
  A single pre-dependency is not enough.  You will need to convert all
  of adduser's dependencies into pre-dependencies, and probably most of
  the things it depends on as well.
  
  You also need to ensure that adduser and anything that it depends on to
  function are always available at all times just like libc6.
 
 Note that only a few packages will need these dependencies,
 unlike libc6.  Specifically, these packages will be needed by a
 subset of the packages that currently Depends: adduser .
 
 Of those packages, only two are non-optional: ssh and pidentd.
 To fix that, the sshd and ??? accounts would need to be added to
 base-passwd.

The ssh package does not contain any files owned by the sshd user, even
after configuration, although it does arrange for /usr/bin/ssh-agent to
be setgid ssh.

 Policy-wise, there would be a rule that packages with priority
 standard or above cannot use the option to add needed users during
 installation, but must coordinate their needs with base-passwd.

I disagree (as base-passwd maintainer, although only for some months)
with this principle; if it's necessary then I think we've made a design
error. The intention for base-passwd is to reduce the number of entries
in the globally allocated space, and thus the number of mandatory
entries in /etc/passwd and /etc/group, not to increase them. In the long
term I'm hoping that we can find a way to have even some of the current
mandatory entries merely allocated in a registry somewhere in
/usr/share/base-passwd which adduser can use to create those entries on
demand, although clearly that would need delicate transitional handling.

Furthermore, the priority standard line appears to be entirely
arbitrary. I assume it's designed to reduce the number of entries that
must be allocated in base-passwd. However, there is no reason why
problems encountered by Priority: standard packages and above (provided
they aren't Essential or in adduser's dependency chain) should not also
be encountered by Priority: optional and Priority: extra packages.
Therefore, in solving these problems for the latter class of packages we
can also solve it for the former.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#172436: Security concerns regarding browser proposal

2003-08-03 Thread Colin Watson
On Sun, Aug 03, 2003 at 07:48:43PM -0400, Matt Zimmerman wrote:
 It might be a good idea to specify how quoting should be handled, both for
 shell metacharacters and format specifiers.

Odd, I thought I'd mentioned
http://www.dwheeler.com/browse/secure_browser.html in this bug, but
evidently not. man implements the Compatible Secure BROWSER Definition
from that page. It's about 50 lines of C, not counting an escape_shell()
utility function.

We could also go for the Alternative definition on the same page, which
acknowledges that you probably need a helper script anyway to do the
complicated Netscape/Mozilla stuff and ditches the % characters
entirely. I don't have any strong feelings about which to use.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#203650: Poor recommendation in dpkg-statoverride section

2003-07-31 Thread Colin Watson
On Thu, Jul 31, 2003 at 06:24:18PM +0100, Andrew Suffield wrote:
 So, let's break down what happens a bit:
 
  - dpkg unpacks the files, with their original permissions
  - postinst creates a user
  - postinst adds a statoverride to change the permissions
 
 The problem is that the user doesn't exist until after you unpack
 the files. Adding a statoverride here is a somewhat strange approach
 in its own right, ignoring such matters as the period between unpack
 and configure when permissions/owners are wrong.
 
 I suggest that this sequence would make more sense:
 
  - preinst creates a user
  - dpkg unpacks the files
 
 It's easier to understand and doesn't tread on the admin's toes as
 much. Note that dpkg stores users by name, not by uid.

How should you ensure that the user in question exists on the system
building the package?

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#203650: Poor recommendation in dpkg-statoverride section

2003-07-31 Thread Colin Watson
On Thu, Jul 31, 2003 at 01:16:35PM -0500, Adam Heath wrote:
 However, perhaps having fakeroot divert adduser, and when adduser is then run
 under fakeroot, a fakeroot-specific version would be used, that would
 communicate with faked, would be better.

That's problematic too. You imply that build scripts should call
adduser; and I don't think that merely building a package with real root
privileges should modify the state of my system in major ways like
adding new users.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#196367: debian-policy: clarify what to do about priority mismatches

2003-07-21 Thread Colin Watson
On Mon, Jul 21, 2003 at 12:33:52PM +0200, Josip Rodin wrote:
 I propose this patch:
 
 --- policy.sgml~2003-07-21 12:17:53.0 +0200
 +++ policy.sgml 2003-07-21 12:31:13.0 +0200
 @@ -779,11 +779,24 @@
 /p
 
 p
 - Packages must not depend on packages with lower priority
 + Packages should not depend on packages with lower priority
   values (excluding build-time dependencies).  In order to
   ensure this, the priorities of one or more packages may need
   to be adjusted.
 /p
 +
 +   p
 + Note that actual priorities of packages in the Debian archive
 + are set with the so-called override files, which are maintained
 + by the archive maintenance team.
 + footnote
 +   In practice, this means that even if the package maintainer
 +   uploads a fixed version of the package, the priority will
 +   still be wrong in the Packages file until an ftpmaster goes
 +   and changes the override. Thus, mass-filing bug reports
 +   against individual packages for this is strongly discouraged.
 + /footnote
 +   /p
/sect
 
  /chapt

Thanks for writing this patch. I agree that it documents current
practice (and furthermore good practice, I believe) and second it.

-- 
Colin Watson  [EMAIL PROTECTED]


pgpULXkIVlrNS.pgp
Description: PGP signature


Re: Policy for 32-bit uids/gids?

2003-07-03 Thread Colin Watson
On Wed, Jul 02, 2003 at 01:15:09PM -0500, Steve Langasek wrote:
 [Re-sent due to inability to properly address email.]
 
 Section 10.2 of policy currently describes uid and gid classes covering
 the range of 0-65535.  This appears to no longer be comprehensive: on a
 current system running a 2.4.18 kernel and libc6 2.3.1-17, I'm able to
 assign 32-bit userids to accounts and reference these accounts in file
 ownerships, su to them, etc.  Should Debian Policy be expanded to
 address this greatly increased range of available ids?

This, together with your specific Samba proposal, sounds like a good
idea, provided that the failures experienced by people with older
kernels will be graceful and reasonably self-explanatory. Is anyone in a
position to test this?

 When I say reasonable here, I do mean able to accomodate the ACL
 needs of a moderate-sized corporate WAN:  the 6-64999 range
 /might/ be sufficient, if Debian were willing to allocate the whole
 thing to Samba. ;)

You can't have all of it anyway. :)

Reserved uids:
uid   | name  | description
--+---+---
63434 | netplan   | netplan
64000 | ftn   | fidogate
64001 | mysql | mysql-server
64005 | tac-plus  | tac-plus user
64010 | alias | qmail alias
64011 | qmaild| qmail daemon
64012 | qmails| qmail send
64013 | qmailr| qmail remove
64015 | qmailq| qmail queue
64016 | qmaill| qmail log
64017 | qmailp| qmail pw
64020 | asterisk  | asterisk

Reserved gids:
gid   | name  | description
--+---+---
63434 | netplan   | netplan
64000 | ftn   | fidogate
64001 | mysql | mysql-server
64005 | tac-plus  | tac-plus group
64010 | qmail | qmail
64020 | asterisk  | asterisk

(from /usr/share/doc/base-passwd/README)

 However, with the recent availability of 32-bit uids, this seems
 unnecessary.  I would suggest allocating a 16-bit range out of the
 remaining (2^32-2^16) uids for Samba's use, and the same for gids;

Provisionally, seems sensible. Should base-passwd be the registry for
any similar high allocations in the future, or policy?

I'm slightly concerned by how we're going to map onto other systems'
uses of 32-bit uids here, since there will already be some. 0-99 and
6-64999 were reasonably obvious back in the day, but I don't have a
feel for how big systems are allocating uids now. I would be inclined to
start allocating from near the top, although perhaps not right at the
top to avoid 2^32-1. Perhaps we should reserve something like 2^32-2^24
to 2^32-2^16 (255 chunks) so that we have space for anything else that
may turn out to need similar large block allocations.

I would like to see an initiative to agree this between multiple
distributions via the LSB or similar with input from people running
large systems, otherwise there'll probably be a horrible mess down the
line.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#197835: [PROPOSAL]: integrated environments are allowed

2003-06-18 Thread Colin Watson
[As Joey said recently in another discussion, please follow up to the
bug, not to debian-policy.]

On Wed, Jun 18, 2003 at 01:02:37AM -0400, Colin Walters wrote:
 On Tue, 2003-06-17 at 20:28, Colin Watson wrote:
  I think this is very bad. At the moment policy says that my EDITOR and
  PAGER variables have priority over what random programs think is a good
  idea, which I think is excellent. 
 
 Yes...but the idea is if programs have a preferred version for a
 reason.  Integrated environments like GNOME and KDE have very good
 reasons to prefer a particular editor, namely the one they ship with. 

*I* have very good reasons to prefer a particular editor, namely that I
can use it with great facility and by and large find other editors
uncomfortable and inflexible. Policy has this provision for a reason.

If the editor is actually part of the other program, such as editing a
text area in a web form directly in Mozilla, then I'd be willing to make
an exception, but not otherwise. Use integrated environment's editor
should be an option defaulting to off: note that newbies will not have
$EDITOR set at all so this won't affect them, and many other people may
choose to set $EDITOR in a context that doesn't apply to their whole X
session so that programs launched from a window manager menu don't see
it. This is fine.

 Again, this is simply codifying the status quo.  Nothing in Debian
 should change.

I honestly think that the status quo is broken, and therefore don't like
the idea of writing it into policy (particularly in the manner of your
proposal which effectively renders the paragraph in question completely
ineffective because the exception is so general, but even beyond that).
Is it really necessary to alienate lots of experienced users by
insisting that GNOME and KDE are exceptions to all the rules whose
consistent application has up until now made Debian a pleasure to use?
Remember in particular that not everyone uses them as a complete
environment.

 We have to face the fact that policy was written before there was
 anything like an integrated desktop environment.  At the time Debian was
 just a random hodgepodge of unrelated software, and Debian's main task
 was trying to get it to work together in some sane fashion.  But now we
 have software that's all *designed* to work together from the start.  By
 imposing Debian's own view of how things should be done on it, we're
 breaking that which gives it value.

But you're insisting that nobody might ever use it in a way different
from what its designers expected. This is just not true in the real
world: I've been known to fire up konqueror from a slightly GNOMEish
environment, and it had better not try to spawn KDE's editor and KDE's
pager for things. If I want it to do that, I'll unset $EDITOR and
$PAGER.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Re: cdbs and Build-Depends-Indep

2003-06-18 Thread Colin Watson
On Wed, Jun 18, 2003 at 02:11:06PM -0400, Colin Walters wrote:
 On Wed, 2003-06-18 at 13:36, Bill Allombert wrote:
  Not having the buildd installing tons of unneeded packages reduce
  build problems and make the logs more readable, 
 
 Reduce build problems?  How?

The fewer packages you need to install, the less chance there is that
one of them will be uninstallable and break your build. (I don't know
how big a problem this is in practice, but it certainly does happen from
time to time.)

-- 
Colin Watson  [EMAIL PROTECTED]



Re: cdbs and Build-Depends-Indep

2003-06-18 Thread Colin Watson
On Wed, Jun 18, 2003 at 03:33:50PM -0400, Colin Walters wrote:
 On Wed, 2003-06-18 at 14:44, Colin Watson wrote:
  On Wed, Jun 18, 2003 at 02:11:06PM -0400, Colin Walters wrote:
   On Wed, 2003-06-18 at 13:36, Bill Allombert wrote:
Not having the buildd installing tons of unneeded packages reduce
build problems and make the logs more readable, 
   
   Reduce build problems?  How?
  
  The fewer packages you need to install, the less chance there is that
  one of them will be uninstallable and break your build. (I don't know
  how big a problem this is in practice, but it certainly does happen from
  time to time.)
 
 Then those packages are buggy and need to be fixed, obviously.  Taking
 this argument farther, we could reduce build problems by including a
 known working copy of gcc in the source code of every package, too...

Well, obviously; but reductio ad absurda notwithstanding, there's no
need to invite more problems than we already have
(http://bugs.debian.org/release-critical/, to name but 907).

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#197835: [PROPOSAL]: integrated environments are allowed

2003-06-18 Thread Colin Watson
[Moved discussion to the bug again rather than the -policy list. Set
Mail-Followup-To: in an attempt to ensure that it stays there.]

On Wed, Jun 18, 2003 at 11:11:48PM +0300, Richard Braakman wrote:
 On Wed, Jun 18, 2003 at 02:34:59PM -0400, Colin Walters wrote:
  I always have EDITOR set, but that doesn't mean I want to use that
  editor inside GNOME.  I mostly have it set for all those terminal apps.
 
 Hmm.  Maybe what we really need is a separate XEDITOR variable for
 starting an editor in a graphical environment.  I think it's pretty
 common to want different editors in text and graphic modes.

I was going to say much the same when I next got around to looking at
this thread and apologizing for my earlier vehemence. :-) XEDITOR is a
similar idea to the old EDITOR/VISUAL distinction, except that to a
first approximation nobody cares about line-mode editors any more.
However, the terminal/X distinction has become correspondingly more
important.

Having this as an environment variable rather than a piece of gconf
configuration or what-have-you would make it possible for users to state
their preference once in a way that can be applied consistently across
not only GNOME and KDE but also other X applications that don't form
part of an integrated environment.

I haven't thought very much about Colin Walters' [1] points about
editors as embeddable components yet, but if we had a distinct XEDITOR
then we could probably support that quite sensibly by just using them
when XEDITOR isn't set, since people whose only X applications are
GNOMEish with an integrated editor component (for example) will have
little reason to set it, even if they set EDITOR for terminal programs.
I do take the point that nano in an xterm isn't the prettiest of
defaults, but conversely I want a way to be able to tell all X
applications that I want, say, gvim - or even 'pterm -e vi' - as my
graphical editor without having to jump through hoops to do this for
each desktop environment and each miscellaneous X application
separately.

We would also need a /usr/bin/x-editor alternative, with some scheme for
agreeing priorities, and a sensible-x-editor program in debianutils. The
other approach to the latter would be to modify sensible-editor to look
at $DISPLAY ? la sensible-browser, but I think that would be unwise; you
want the condition to be whether an X application is calling the editor,
not whether you happen to be in X, since it's frequent for a user to
want terminal-based programs to spawn terminal-based editors even if
they happen to be running in X (say, mutt in an xterm).
sensible-x-editor keys the decision on the nature of the caller, which
is more appropriate.

Thus, the policy for spawning an X editor could be: (1) check XEDITOR,
(2) use integrated editor if available, (3) run sensible-x-editor (which
might have 'xterm -e $EDITOR' as one of its fallback choices). Would
this keep everyone happy?

It's also worth noting that XEDITOR is not an entirely new idea, so we
wouldn't be trailblazing out of the void here. Google for XEDITOR
environment variable for some existing cases: for example, xdvi and ddd
already support it. Or, for previous Debian discussion,
http://lists.debian.org/debian-devel-0111/msg01595.html, where for what
it's worth I disagree with Branden's followup suggestion that a wrapper
that tests DISPLAY is sufficient, for the reasons stated above.

I assume that the policy editors wouldn't be too happy to start
recommending XEDITOR just yet, but if we agreed it informally now we
could start getting it implemented in enough places to standardize it
later. Where would be good places to start? Editor packages,
debianutils, and some vanilla X mail and news programs like knews
perhaps?

[1] Damn, this is confusing. Maybe the two of us should avoid getting
involved in the same discussions in the future. :-)

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#197835: [PROPOSAL]: integrated environments are allowed

2003-06-17 Thread Colin Watson
On Tue, Jun 17, 2003 at 07:51:00PM -0400, Colin Walters wrote:
 @@ -7349,11 +7352,13 @@
   /p
  
   p
 -   Thus, every program that launches an editor or pager must
 -   use the EDITOR or PAGER environment variable to determine
 -   the editor or pager the user wishes to use.  If these
 -   variables are not set, the programs file/usr/bin/editor/file
 -   and file/usr/bin/pager/file should be used, respectively.
 +   Thus, every program without an internal preference that
 +   launches an editor or pager must use the EDITOR or PAGER
 +   environment variable to determine the editor or pager the
 +   user wishes to use.  If these variables are not set, the
 +   programs file/usr/bin/editor/file
 +   and file/usr/bin/pager/file should be used,
 +   respectively.
   /p
  
   p

I think this is very bad. At the moment policy says that my EDITOR and
PAGER variables have priority over what random programs think is a good
idea, which I think is excellent. If programs get to pick a default that
overrides my EDITOR and PAGER then it all degenerates into chaos.

If what you really meant was that the order is as follows:

  * EDITOR/PAGER
  * program's preferred editor or pager
  * /usr/bin/editor or /usr/bin/pager

... then that would be slightly better; it dilutes the effectiveness of
the editor and pager alternatives, but that might not be *too* bad. It's
late here so I haven't fully thought it through.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Re: the 'build' debian/rules target

2003-06-13 Thread Colin Watson
On Fri, Jun 13, 2003 at 01:40:34AM -0400, Colin Walters wrote:
 I don't quite understand the point of having the 'build' target be
 mandatory.

dpkg-buildpackage requires it. You'd have to make it fail gracefully if
the build target wasn't there, and probably get this into a stable
release in order not to royally confuse users trying to build packages
on stable.

I'm not convinced this is a good idea, though; AIUI there are still
architectures that have trouble with fakeroot (at least there are still
build daemons that use sudo to gain root).

Also, I find 'debian/rules build' a useful finger macro for when I just
want to debug something small in a package and don't want to build the
actual binary package (perhaps I'm on a system where I don't have root
access to install the package anyway). I would be very disappointed if
this no longer worked consistently.

 My problem with it is precisely what policy says:
 
  For some packages, notably ones where the same source tree is
  compiled in different ways to produce two binary packages, the
  `build' target does not make much sense.  

This confuses me. The build target makes perfect sense here; it just
builds two temporary trees. With appropriate use of VPATH in the build
system this is quite easy.

 The reason I bring this up is I am designing a new Debian build system,
 and it's hard for me to know what to do with it exactly.

Please include the build target. It's useful for users as well.

-- 
Colin Watson  [EMAIL PROTECTED]



Re: Bug#196367: debian-policy: clarify what to do about priority mismatches

2003-06-08 Thread Colin Watson
On Sat, Jun 07, 2003 at 10:02:14PM -0500, Manoj Srivastava wrote:
 On Sat, 7 Jun 2003 16:33:23 +0100, Colin Watson [EMAIL PROTECTED] said: 
  Yes yes, we know all that. However, hundreds of release-critical bug
  reports cause very real practical problems for our release
  management processes, especially when they are unnecessary. 
 
   Hundreds of RC bugs? Is this hyperbole, you you have the data
  to back that up?

It is not hyperbole. By my count,
http://ftp-master.debian.org/unmet-deps/unmet-unstable-i386.html shows
256 instances of packages depending on other packages with lower
priority. I suppose some of them may collapse down to single bugs but
it's still a lot.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#196367: debian-policy: clarify what to do about priority mismatches

2003-06-08 Thread Colin Watson
On Sat, Jun 07, 2003 at 09:59:18PM -0500, Manoj Srivastava wrote:
   So fix the bug in the package, and clone it and assign the
  clone to ftp.
 
   It is a bug if the package has the wrong priority, and it is a
  bug if the override file needs fixing.  Just because there are two
  locations where the fix needs to go in does not invalidate the bug.

What real benefit (substantial enough to merit a release-critical bug)
accrues from fixing the informational Priority: field in the package?

The bug in the package should *not* be serious. That is my chief point.
I doubt the ftp.debian.org team would be happy with 256 serious bugs
filed there in preference to a single one saying that the override file
needed to be sorted out before release either, but I'm not a member of
that team so I will leave it to them to speak up.

   In other words, I would object to this change, since this
  would relax rules that allow me to just install base or standard
  packages from a CD, without needing extraneous packages, with very
  little benefit to anyone that I can see.

I'm not suggesting that the rule be relaxed. I'm suggesting that we stop
applying it in an ineffective place. Since the creation of the override
file, the only role I can see for the Priority: field in a package's
control file is to provide an initial suggestion to the ftpmasters as to
the priority that should be set for that package. We've never considered
mismatches between packages and the override file to be a serious bug.

Arranging for all overrides to be consistent is a task that needs to be
done before release, but one which can be done centrally, just like the
process of deciding which packages should go on which CDs. We don't
require all packages to carry an up-to-date control field saying which
CD they should be on! Consider the move from managing task packages as
metapackages to managing them as extra overrides for the Task: field,
which was done to remove a roadblock in the release management process.

Fixing priorities may occasionally require input from maintainers, but I
do not believe that this is the norm, any more than deciding position on
CDs routinely requires input from maintainers.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#196367: debian-policy: clarify what to do about priority mismatches

2003-06-07 Thread Colin Watson
On Sat, Jun 07, 2003 at 03:40:37PM +0200, Bastian Blank wrote:
 On Fri, Jun 06, 2003 at 12:39:45PM -0700, Chris Waters wrote:
  And since we do make mistakes here, and since any change can cause a
  ripple-effect, making other packages suddenly violate this clause,
  and since violations of this are both quite harmless and hard-to-spot,
  how about we change it to not be a must?  Then the ftp-masters can
  still try to ensure that it holds true, but people won't freak out
  about it.
 
 it will break the ability to just use packages with priority = standard
 and try to install one of them.

Fortunately, this is not an amazingly big deal. Furthermore, it is
*still* the case that the ftpmasters can and often do sort it out in one
big pass without having to upload hundreds of packages. They already
have tools to track priority mismatches.

The point stands that uploading a package with a changed Priority: field
does not by itself cause the Priority: field in the Packages file to
change, so filing bugs against packages for this problem is useless.

-- 
Colin Watson  [EMAIL PROTECTED]



Re: Status of UTF-8 Debian changelogs

2003-06-07 Thread Colin Watson
On Sat, Jun 07, 2003 at 04:59:29PM +0300, Dmitry Borodaenko wrote:
 On Thu, Jun 05, 2003 at 08:57:06PM -0400, Colin Walters wrote:
  JR the only thing that will change is that if someone complains at
  JR people who use UTF-8 in changelogs, a new retort will be
  JR available, THE POLICY MADE ME DO IT!!1!, or similar.
  CW Why would someone complain?
 
 I would complain.
 
 I am using KOI8-R terminal which can not display Latin-1 characters,

Where did Latin-1 come into this?

 and it seems backward to me to mandate or even allow _usage_ of UTF-8
 ahead of getting it _supported_ across the system.

If you find yourself with a UTF-8 file, use a program which knows how to
recode on the fly to your native encoding. Such programs are
increasingly common.

What do you lose here? Those who have fonts that can display the
character in question will be able to do so; those who don't won't, but
will see some reasonably obvious indicator like a ? or a filled-in
square to show that the character is one they can't display. This is
superior to the situation where those who don't have such fonts just see
some gibberish.

 I'd rather have 7-bit ASCII changelogs: why Latin-1 users are
 privileged to use native spelling of their names, while Cyrillic and
 Kanji and other users have to resort to transliteration?

They aren't so privileged. They may decide to do it anyway, but since
the encoding of changelogs is not yet specified you currently take pot
luck on anything outside 7-bit ASCII.

I believe you've just contradicted yourself, anyway. Nobody wants to
have to transliterate their name. I don't want to have to transliterate
the names of people who help me with my packages when I credit them in
the changelog; in some cases I may not even know how to transliterate
their names correctly. UTF-8 allows me to spell their names correctly.
At worst, a couple of characters may not be displayed properly for
people using legacy encodings who don't have software that can recode
for them, but if I'd artificially transliterated to 7-bit ASCII then
nobody would get to see the correct spellings anyway.

Since UTF-8 includes ASCII, all the technical content of my changelogs
will still appear normally no matter what locale you're using, but
suddenly it becomes possible for me to credit my contributors properly
regardless of whether they come from Spain, Russia, or Japan.

We're not talking about mandating the use of UTF-8 across the whole
system here. We're talking about recommending its use in one particular
case where it gives a small but real benefit, and where the consequences
of getting it wrong are not very important (we can always go back and
recode a few changelogs if some unforeseen badness results). Think of it
as a safe experiment in advance of wider deployment of UTF-8 later on.

Package maintainers who aren't set up for writing UTF-8 can always
resort to transliteration into ASCII if need be.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#196367: debian-policy: clarify what to do about priority mismatches

2003-06-07 Thread Colin Watson
On Fri, Jun 06, 2003 at 11:16:02PM +0200, Thomas Hood wrote:
 On Fri, 2003-06-06 at 21:39, Chris Waters wrote:
  On Fri, Jun 06, 2003 at 01:52:58PM +0100, Colin Watson wrote:
   Every so often, somebody encounters the bit of the policy manual that
   says:
 Packages must not depend on packages with lower priority values
 (excluding build-time dependencies). In order to ensure this, the
 priorities of one or more packages may need to be adjusted.
   Seeing the must, they then go and file a bunch of serious bugs.
   However, priorities are set by ftpmaster overrides, and, even if the
   maintainer uploads a fixed version of the package, the priority will
   still be wrong in the Packages file until an ftpmaster goes and changes
   the override. Thus, filing bugs against individual packages for this is
   basically a waste of time.
 
 The priority is changed in the override file, but I suppose
 it should be changed in the package source too.

Ideally, but it really doesn't matter. It's a minor bug at best.

 Where is the reason to freak out?  Freaking out is the wrong
 response to a bug report.  A bug report is not an attack; it is a
 message, containing useful information.

Yes yes, we know all that. However, hundreds of release-critical bug
reports cause very real practical problems for our release management
processes, especially when they are unnecessary. Policy is a tool (an
essential one) to help us produce a better distribution; when it
encourages people to impede the release process for little practical
gain instead of getting the information to where it needs to go, it is
not serving its purpose.

Put another way, the bug is in the override file, not the package. It
should therefore not be filed against the package. Doing so causes
confusion and wastes time.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#196367: debian-policy: clarify what to do about priority mismatches

2003-06-06 Thread Colin Watson
Package: debian-policy
Version: 3.5.9.0
Severity: wishlist

Every so often, somebody encounters the bit of the policy manual that
says:

  Packages must not depend on packages with lower priority values
  (excluding build-time dependencies). In order to ensure this, the
  priorities of one or more packages may need to be adjusted.

Seeing the must, they then go and file a bunch of serious bugs.
However, priorities are set by ftpmaster overrides, and, even if the
maintainer uploads a fixed version of the package, the priority will
still be wrong in the Packages file until an ftpmaster goes and changes
the override. Thus, filing bugs against individual packages for this is
basically a waste of time. Instead of wasting a number of people's time
and effort with lots of release-critical bugs, all the reporter needed
to do was ask for the priorities of (ideally) a batch of packages to be
changed. (I'm not sure in exactly what format ftpmaster would prefer
reports like this - perhaps somebody could clarify - but I do know that
hassling maintainers is a horribly ineffective way to get this job
done.)

I appreciate that in general policy isn't really the place for telling
people how to go about getting particular problems fixed. However, when
you try to tell somebody that actually the maintainers can't really do
anything useful about the dozens of RC bugs they've just filed the
response is invariably but policy said this was release-critical. I'd
really like it to have some clarifying text that says something like
this: Priorities are set by the archive maintainers and can be changed
en masse, so filing release-critical bugs against individual packages is
a poor way to report this class of problem.

There were various discussions about this last year on debian-devel
after a bout of mass-filing.

Thanks,

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#193748: debian-policy: gcc-3.3 no longer has varargs.h

2003-05-18 Thread Colin Watson
On Sun, May 18, 2003 at 09:26:43PM +0200, Josip Rodin wrote:
 On Sun, May 18, 2003 at 08:33:01PM +0200, Bill Allombert wrote:
In light of recent changes, I suggest that policy should instead say:
   
   How about we just remove the whole section? The software now makes it 
   clear
   that the old stuff is a bug, and it's not like we need the Policy Manual
   to say fix the obvious bug.

I concur, although perhaps it's still valuable to leave the libtermcap
comments there since it (presumably) doesn't trigger a compiler warning
in the same way.

  Maybe we should wait a bit before remove it ? See how many
  packages are affected, what feed back we get, etc...
 
 Well, that's my point. No packages should be affected -- in fact in sid
 I see only one dependency on termcap-compat, cmucl-source. I doubt there
 are many more sources using varargs.h, but I don't have numbers, so that
 might have to be investigated further.

I filed this bug after running into xisp, which uses it. I don't recall
encountering anything similar before, although of course the compiler
change is very recent.

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#193103: debian-policy: maybe say that programs that output HTML etc. should output valid HTML etc.

2003-05-13 Thread Colin Watson
On Tue, May 13, 2003 at 07:15:04AM -0500, Graham Wilson wrote:
 On Tue, May 13, 2003 at 03:25:00AM +0100, Colin Watson wrote:
  On Mon, May 12, 2003 at 09:13:05PM -0500, Graham Wilson wrote:
   On Tue, May 13, 2003 at 01:25:52AM +0100, Colin Watson wrote:
On Tue, May 13, 2003 at 04:20:03AM +0800, Dan Jacobson wrote:
 If there is a checklist for quality, then maybe say that programs that
 output HTML etc. should output valid HTML etc.
 
 E.g. one installs a program that makes a photo gallery of images, into
 a web page. But this page doesn't pass the HTML validator.

Surely we don't need policy to say that a bug is a bug. It's quite clear
that invalid HTML is a bug (maintainers may not think it's a
particularly urgent bug, but it's a bug nevertheless). No need for
policy to state the obvious.
   
   i think the author means _valid_ html, not just invalid html.
  
  I think you've read somebody's statements backwards, or something ... at
  any rate I'm confused now.
 
 oops. i probably should have read what i typed. i think the original
 poster of this bug means that it would be a bug for a program to produce
 html that doesnt validate according to the html dtd's.

That was also my understanding. I quite agree that that's a bug, but I'm
saying that the Debian Policy Manual doesn't need to spell out every
single thing that we already know to be a bug.

Policy covers decisions that have been taken in order that packages
interoperate smoothly with the packaging system and with each other, and
in order to ensure some degree of consistency across the system we
provide. Sometimes it's also used to document a choice that the project
has had to make between multiple technically valid alternatives. It is
not there as a repository of admonitions against every possible thing
which can go wrong with a package.

The submitter of this bug has in the past (e.g. #177523) seemed to have
the impression that if he finds a bug which has the potential to occur
in more than one package, then policy should be amended to forbid that
bug. I'm saying that when the bug is already obvious, such as claiming
compliance with a standard when it doesn't pass that standard's
validator, it is needless busy-work to amend policy, and doing so will
serve absolutely no useful purpose. If people haven't noticed already
that their HTML is invalid, a paragraph in policy is unlikely to make
them notice any more quickly; and in any case the submitter is already
fully entitled to file bugs about it regardless of whether policy says
it's bad or not.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



Bug#193103: debian-policy: maybe say that programs that output HTML etc. should output valid HTML etc.

2003-05-12 Thread Colin Watson
On Tue, May 13, 2003 at 04:20:03AM +0800, Dan Jacobson wrote:
 Package: debian-policy
 Version: 3.5.8.0
 Severity: wishlist
 
 If there is a checklist for quality, then maybe say that programs that
 output HTML etc. should output valid HTML etc.
 
 E.g. one installs a program that makes a photo gallery of images, into
 a web page. But this page doesn't pass the HTML validator.

Surely we don't need policy to say that a bug is a bug. It's quite clear
that invalid HTML is a bug (maintainers may not think it's a
particularly urgent bug, but it's a bug nevertheless). No need for
policy to state the obvious.

Cheers,

-- 
Colin Watson  [EMAIL PROTECTED]



  1   2   3   >