Re: [MBF] Moving mountnfs.sh script to runlevel 2

2019-01-13 Thread Ansgar
Dmitry Bogatov writes:
> During resolving issue #551555 of bin:initscripts, I discovered that
> solution would be move `mountnfs.sh' initscript into runlevels (2 3 4 5).
>
> Historically, `mountnfs.sh' was present in runlevel S due the fact, that
> bin:initscripts were responsible to mounting /usr. Nowdays, /usr is
> mounted by initramfs, so many scripts could be moved from runlevel S to
> runlevels (2 3 4 5).
>
> Issue is that there is number of initscripts in runlevel S, that depends
> on $remove_fs, which means /all/ file systems are mounted, not just /
> and /usr.
>
> I ask corresponding maintainers (list at bottom of email) to either
>  * move their scripts to runlevel (2 3 4 5) [preferred]
>  * remove dependency on $remote_fs, if all they need is /usr
>  * replace with dependency on `mountall', if they need 
>one of (/run /dev/shm /tmp)

What will happen on systems where users changed the configuration files
and these changes are not applied automatically?

Ansgar



Re: Potentially insecure Perl scripts

2019-01-24 Thread Ansgar
Russ Allbery writes:
> Ben Hutchings writes:
>> People have said this about ASLR, protected symlinks, and many other
>> kinds of security hardening changes.  We made them anyway and took the
>> temporary pain for a long-term security gain.
>
> Well, Perl has a deprecation mechanism with warnings and so forth,
> although I don't think Perl has ever actively broken a feature outside of
> "use " with a later version, except for features marked as
> experimental.  But I suppose it's possible.

'.' was eventually removed from @INC by default.  It also wasn't seen as
a security problem when I reported it as such (or not worth fixing at
the time), but only years later when someone else reported it again.  So
maybe awareness changed a bit.

But "<>" isn't the only problem, there are way too many uses of the
two-argument form of Perl's "open" too...

Ansgar



Re: package management symlink

2019-02-05 Thread Ansgar
Sören Reinecke writes:
>> I'm not convinced that having to remember different package manager
>> names is a significant problem for new people adopting a Linux
>> distribution. The name is a very small part of the
>> differences between 
>> the package managers (they have very different
>> behaviour models, not 
>> just names), and the package managers are a small part of all the 
>> differences between distributions.
>
> Many developers don't provide their software via a repository instead
> they provide the source code with an INSTALL file. They depend on
> dependencies they resolve through the repositories. Approving "nimue"
> just as symlink that points to the package management system across
> linux systems would enable them to write just one install script for
> debian and red hat systems for example.

No, that already stops working when package are named differently which
is frequently the case.  There is no readline-devel package in Debian
and no libreadline-dev in Red Had or Gentoo.

Also what you suggest already exists, for example in the form of
"pacapt" (but there are alternatives too!).  What is the benefit of
adding yet another version of these scripts?

Ansgar



Re: Bug#877900: How to get 24-hour time on en_US.UTF-8 locale now?

2019-02-07 Thread Ansgar
On Thu, 2019-02-07 at 09:59 -0500, Michael Stone wrote:
> On Thu, Feb 07, 2019 at 02:40:06PM +, Simon McVittie wrote:
> > How would this locale differ from C.UTF-8? Is the only difference
> > that C.UTF-8 has strict lexicographical sorting, whereas "en" would
> > have
> > case-insensitive sorting like en_GB.utf8 does? (If that's the only
> > difference, then perhaps something like "LANG=C.utf8
> > LC_COLLATE=en_US.utf8"
> > is enough.)
> 
> POSIX specifies the output format for various utilities in the C locale, 
> which defeats my understanding of the purpose of this proposal. So, for 
> example, in ls -l:

I don't think the "C.UTF-8" locale covered by any promises POSIX might
make for "C".  (Nor is what happens when no LC_*, LANG vairables are
set at all.)

Ansgar



Re: Bug#877900: How to get 24-hour time on en_US.UTF-8 locale now?

2019-02-07 Thread Ansgar
Michael Stone writes:
> On Thu, Feb 07, 2019 at 09:20:07PM +0100, Ondřej Surý wrote:
>>en_DK.UTF-8 is a good default locale?
>
> I think the suggestion of just "en" made the most sense--specify the
> language and an arbitrary set of rules that aren't tied to a specific
> country.

C.UTF-8 has the default of already existing and always being available.
Other locales are not guaranteed to be around (well, except "C").

FWIW systemd will set LANG=C.UTF-8 if no other locale is specified since
systemd 240:

 * When no /etc/locale.conf file exists (and hence no locale settings
   are in place), systemd will now use the "C.UTF-8" locale by default,
   and set LANG= to it. This locale is supported by various
   distributions including Fedora, with clear indications that upstream
   glibc is going to make it available too. This locale enables UTF-8
   mode by default, which appears appropriate for 2018.

That seems a reasonable choice and d-i could just use that by not
specifying any locale if the user wishes so.

(There is a small problem that getty@.service unsets LANG again.)

(And you get 24-hour time, but very strange Endian in C.UTF-8:
  WEEKDAY MMM DD HH:MM:SS TZ 
while en_US.UTF-8 has at least DD MMM ...  Having
  -MM-DD HH:MM:SS[+]
instead would be much nicer if we were to create an arbitrary set of new
rules for a new universal "en" locale ;-) )

Ansgar



Re: Removal of linux-base from jessie-backports broke Xen upstream CI

2019-02-13 Thread Ansgar
On Wed, 2019-02-13 at 12:46 +, Ian Jackson wrote:
> Alexander Wirt writes ("Re: Removal of linux-base from jessie-backports broke 
> Xen upstream CI"):
> > Jessie backports doesn't exist anymore. For some time now. It is already on
> > its way to archive.d.o. 
> 
> Thanks are due to to folks on #debian-uk who pointed out this
> announcement (from June!) that I missed;
>   https://lists.debian.org/debian-backports-announce/2018/07/msg0.html
> 
> I have to say I'm not sure this removal is very helpful but then I'm
> not helping maintain -backports so I guess my opinion doesn't carry
> much weight.

More importantly Jessie has reached end-of-life[1].  Please do not
expect related suites (such as -security, -backports, -proposed-
updates, -updates) to continue working after this.

(Related to that: arm64 is gone from jessie-security; arm64 wasn't
removed from -backports as there is no LTS for backports and jessie-
backports will eventually be archived as is.)

Ansgar

  [1] https://www.debian.org/News/2018/20180623



Re: Bug#922155: [Pkg-matrix-maintainers] ITP: matrix-archive-keyring -- OpenPGP archive key for the Matrix.org package repository

2019-02-13 Thread Ansgar
On Wed, 2019-02-13 at 15:41 +, Linda Lapinlampi wrote:
> Template: matrix-archive-keyring/sources.list
> Type: boolean
> Default: false
> _Description: Use APT data sources from Matrix.org?
>  The Matrix.org Debian package repository distributes supplemental Matrix.org
>  related packages intended to work with the Debian distribution, but require
>  software software outside of the distribution to either build or function.
>  These packages are digitally signed with keys from matrix-archive-keyring.
>  .
>  The Debian Project will be unable to directly support issues faced from using
>  supplemental packages from this third-party repository. Packages from these
>  APT sources may be non-conforming to the technical requirements set in the
>  Debian Policy for the Debian distribution.

More important is the question if the system should /trust/ the keys.

IMHO installing a non-Debian keyring should *not* make the keys trusted
by APT by default (i.e. with the default answer if debconf is used).

ubuntu-keyring does that; most other keyrings sadly do not follow this.

Ansgar



Re: Use of the Build-Conflicts field

2019-02-15 Thread Ansgar
Sean Whitton writes:
> Use of the Build-Conflicts field is currently mostly optional, but Ian
> Jackson and I have been working on text for Debian Policy that would
> require its use in certain cases.  See #824495 for the discussion.
>
> There are two cases which we think that everyone would agree that there
> is a bug, but we are not sure that the bug would be considered to be RC.
> We are posting to -devel to see if, in fact, we do have a consensus that
> these bugs would be RC, or not.
>
> (1) a package FTBFSs when: another package that is part of a "reasonable
> standard development workstation install" is present, but the first
> package does not declare a Build-Conflicts against the second
>
> (2) a package FTBFSs when: a package that is NOT part of a "reasonable
> standard development workstation install" is present, but the first
> package does not declare a Build-Conflicts against the second
>
> Is (1) an RC-severity bug in the package that FTBFSs?  Is (2)?

How many packages would be affected by (1) or (2)?

I think both are less problematic than the case where the maintainer
uploaded a package which has different features than a rebuild on a
buildd. That would result in a rebuild (NMUs, next regular upload by
someone else or a changed build environment, binNMUs) to change the
features available to users.  Something we really don't want; note that
this could also happen in security or stable updates.

(Having Build-Conflicts for the additional features case is probably not
implementable with reasonable effort given how autotools and others
enable automatic feature-detection by default which isn't really what
one wants...)

Failing to build in non-standard environments is in contrast a fairly
friendly failure mode.  So it should not be a serious bug (whether RC or
not is something for the release team).

> For the purposes of this e-mail, let's assume that we have a good grasp
> on what a "reasonable standard development workstation install" means.

I doubt we have, but let's ignore that.

Ansgar



Re: merged-/usr-via-symlinks vs a-different-layout

2019-02-19 Thread Ansgar
Guillem Jover writes:
> 3) Switching packages to the merged-/usr layout could have been
>accomplished automatically via debhelper for a coverage of around
>99% (?) of the archive. With something along the lines of:
>
>  ,---
>  D=debian/tmp
>  for d in /bin /sbin /lib; do
>for p in $(find $D/$d ! -type d); do
>  b="${p##$D/}"
>  m="$D/usr$b"
>  if [ ! -e "$m" ]; then
>mkdir -p "$(dirname $m)"
>mv "$p" "$m"
>ln -s "${m##$D}" "$p"
>  fi
>done
>  done
>  `---
>
>With the property that it would handle gracefully all cases were the
>maintainer has checked that no compat symlinks are required and has
>then progressively moved the pathname installation to their final
>destination under /usr.

That is not merged-/usr, but a different filesystem layout.

So, no, it is not possible to switch packages to merged-/usr this way.

> 4) Due to having to support the broken merged-/usr-via-symlinks
>deployment, when we want to move the contents of the binary
>packages to the merged-/usr layout, we require now to include tons
>of logic in (probably new) maintainer scripts, when we have been
>trying to remove them altogether. :( With even more files untracked
>by dpkg itself, bypassing the packaging system even more, when the
>compat symlinks could have been shipped in the binary packages.

As far as I know maintainer scripts are only required for moving files
from / to /usr when (a) a compat symlink is required, and (b) only when
both merged-/usr and non-merged-/usr is supported.

Ansgar



Re: merged-/usr-via-symlinks vs a-different-layout

2019-02-23 Thread Ansgar
Guillem Jover writes:
> On Tue, 2019-02-19 at 08:54:12 +0100, Ansgar wrote:
>> Guillem Jover writes:
>> > 3) Switching packages to the merged-/usr layout could have been
>> >accomplished automatically via debhelper for a coverage of around
>> >99% (?) of the archive. With something along the lines of:
>> >
>> >  ,---
>> >  D=debian/tmp
>> >  for d in /bin /sbin /lib; do
>> >for p in $(find $D/$d ! -type d); do
>> >  b="${p##$D/}"
>> >  m="$D/usr$b"
>> >  if [ ! -e "$m" ]; then
>> >mkdir -p "$(dirname $m)"
>> >mv "$p" "$m"
>> >ln -s "${m##$D}" "$p"
>> >  fi
>> >done
>> >  done
>> >  `---
>> >
>> >With the property that it would handle gracefully all cases were the
>> >maintainer has checked that no compat symlinks are required and has
>> >then progressively moved the pathname installation to their final
>> >destination under /usr.
>> 
>> That is not merged-/usr, but a different filesystem layout.
>> 
>> So, no, it is not possible to switch packages to merged-/usr this way.
>
> You are still conflating the concept with the deployment. The
> underlaying properties of merging /usr is that the contents for
> directories that are present in both / and /usr get merged into
> /usr.

No, I'm saying that you are proposing yet another different file system
layout.  Which is quite simple to see: the file system would differ.

You just claim it follows similar "ideas" in some way.

I can come up with other variations that move files to /usr too: have
/bin a symlink to /usr/root/bin (some for other directories).  That
would also be a different file system layout which shouldn't be called
"merged-/usr" either.

(That would have no filesystem aliasing between /bin and /usr/bin;
policy has special rules to allow replacing top-level directories with
symlinks; but besides that it is different for no good reason so I don't
think it would be a good idea.)

> See for example OpenSUSE which did this transition correctly:
>
>   <https://en.opensuse.org/openSUSE:Usr_merge>

"The special comments #UsrMerge, #EndUsrMerge will help us to clean up
the spec files once everything has been moved and we can create a
general link from /bin to /usr/bin for example. "

So they want a /bin -> /usr/bin symlink (and the same for the other
directories) just as in the proposal you call broken...

Maybe you have misunderstood what SuSE plans to do?

Having dpkg track a symlink /bin/${something} and a file
/usr/bin/${something} will break should /bin be turned into a symlink
happen.  So there is no nice way to finish the transition.  I'm not sure
how that would work on RPM; maybe SuSE got stuck with that?  That would
be another good reason to not follow that way...

I wouldn't be surprised if that took about as long as the /usr/doc ->
/usr/share/doc transition.  (If the change process for most simple
changes like file locations takes 10+ years then I say the process is
broken...)

Ansgar



Re: [Idea] Debian User Repository? (Not simply mimicing AUR)

2019-04-08 Thread Ansgar
Paul Wise writes:
> On Mon, Apr 8, 2019 at 3:34 PM Mo Zhou wrote:
>
>> However, the translator itself is not trivial, as it might need
>> it's own shell parser or something alike to be reliable enough.
>
> Couldn't you just run makepkg (with some hooks) and dpkg-deb to
> convert the results to Debian packages?

How should this handle dependencies (probably named differently in
Debian) or maintainer scripts?

Tools like `alien` to convert RPM and Debian packages have similar
limitations and I don't remember them working that well.

Ansgar



Re: Discussion on eventual transition away from source packages

2019-04-19 Thread Ansgar
Daniel Kahn Gillmor  writes:
> On Fri 2019-03-22 09:32:55 +0100, Lucas Nussbaum wrote:
>> I'm probably missing something, but it doesn't sound like a lot of work
>> to me? It's "just" a service that:
>> - gets notified of the existence of a git repo + tag to upload
>> - fetches that git repo + tag
>> - checks signature / confirm that the GPG key owner is allowed to upload
>>   that package
>
> In case anyone is considering trying to do this, please be aware that
> there are several non-obvious subtleties involved in "verifying a git
> tag".

Doesn't Git also only use hash algorithms that are no longer recommended
for cryptographic applications?  Or have they finished moving to
stronger algorithms?

I don't think we should downgrade to SHA-1 for new services.

Ansgar



Re: Preferred git branch structure when upstream moves from tarballs to git

2019-04-29 Thread Ansgar
Russell Stuart writes:
> On Tue, 2019-04-30 at 09:25 +0800, Paul Wise wrote:
>> I like this option because it still works well if we ever decide to
>> fix a fundamental flaw in the Debian source package layout.
>
> I suspect whether that's a fundamentally is a matter or personal taste.
>  On this point my taste aligns with yours.
>
> I've used both rpm source format and the Debian one, and IMO the rpm
> one is mostly better.  The primary reason is the one you've mention
> here: they maintain the separation between the source, rpm spec, and
> build areas's far more cleanly than Debian does.  This makes some
> common flaws one often flaws in Debian packages just disappear: like
> cleaning up the source directory after a build.

I also agree with this.  It is also not only RPM, but for example also
Gentoo, Arch and others which contain only the distro-specific parts in
their repositories.

This also makes things easier as developers do not have to know about
branch management, merging, rebasing, ... to start with.  Many people
using Git don't know how to do this.

As an example: to update to a new upstream release, I ideally just have
to drop the new upstream tarball, update d/changelog and am done.
Compare with [1] which is much more complicated, even ignoring the extra
complexity using dgit adds compared to just using git.

Ansgar

  [1] 
https://manpages.debian.org/stretch-backports/dgit/dgit-maint-merge.7.en.html#NEW_UPSTREAM_RELEASES



Re: Preferred git branch structure when upstream moves from tarballs to git

2019-05-02 Thread Ansgar
On Thu, 2019-05-02 at 13:45 +0100, Ian Jackson wrote:
> Ansgar Burchardt writes ("Re: Preferred git branch structure when
> upstream moves from tarballs to git"):
> > On Tue, 2019-04-30 at 16:00 -0700, Sean Whitton wrote:
> > > As a package maintainer, if you don't keep the whole source package in
> > > git, you're giving up on a lot of the power of git.
> > 
> > I think keeping entry barriers low is more important than being able to
> > use all the power of Git.  That's sadly one of the main problems with
> > Dgit: it raises entry barriers by making packaging more complicated. 
> 
> A source-only upload with dgit is fewer commands, and more reliable,
> than doing so with sbuild/dput.

Complexity is not the number of commands to use.

Having to know about branches, merging, dealing with multiple remotes,
... *is* an entry barrier compared to not having to know about it.  Now
you have to teach people that before you even get to how to write a
build recipe.

(Also for source-only uploads you don't need sbuild at all.)

> Doing an NMU campaign with dgit is massively easier than doing so with
> .dsc-based tools.

Why should that be "massively easier" with dgit?  Without dgit you get
source, change the source package, build the source package, upload the
modified source package.  No matter what workflow/VCS/* the maintainer
uses.

Ansgar



Re: Preferred git branch structure when upstream moves from tarballs to git

2019-05-02 Thread Ansgar
On Thu, 2019-05-02 at 09:15 -0700, Russ Allbery wrote:
> Ansgar  writes:
> 
> > Having to know about branches, merging, dealing with multiple remotes,
> > ... *is* an entry barrier compared to not having to know about it.  Now
> > you have to teach people that before you even get to how to write a
> > build recipe.
> 
> I'm confused.  I'm a happy user of dgit and don't have to think about any
> of those things as part of using dgit.  I choose to use branches, but I
> certainly wouldn't have to, and merging, multiple remotes, and so forth
> don't seem related to using dgit at all.

How do you update the package to a new upstream release?

The "dgit" repository is also separate from the "real" repository; if
you just use "dgit clone ${something}" you won't get the current
"master" branch (unless it happens to be identical to the last
release), or totally different if the maintainer doesn't use dgit.

The history is also strange if you "dgit clone" a repository where the
maintainer used dgit in the past, but no longer does.  Now you have a
commit tree with multiple roots which is also confusing for people.

All of this is very uncommon outside the dgit world.

Ansgar



Re: Preferred git branch structure when upstream moves from tarballs to git

2019-05-03 Thread Ansgar
On Fri, 2019-05-03 at 15:59 +0100, Ian Jackson wrote:
> Ansgar writes ("Re: Preferred git branch structure when upstream moves from 
> tarballs to git"):
> > On Thu, 2019-05-02 at 09:15 -0700, Russ Allbery wrote:
> > > Ansgar  writes:
> > > > Having to know about branches, merging, dealing with multiple remotes,
> > > > ... *is* an entry barrier compared to not having to know about it.  Now
> > > > you have to teach people that before you even get to how to write a
> > > > build recipe.
> > > 
> > > I'm confused.  I'm a happy user of dgit and don't have to think about any
> > > of those things as part of using dgit.  I choose to use branches, but I
> > > certainly wouldn't have to, and merging, multiple remotes, and so forth
> > > don't seem related to using dgit at all.
> > 
> > How do you update the package to a new upstream release?
> 
> The same way you would with whatever tools you are currently using for
> that task.  dgit is not a git delta management tool.  For the
> maintainer, dgit replaces dput, not gbp pq or git-dpm or quilt.

The question was to illustrate that dgit forces you to learn about
branches, merging, ...  There is no workflow with dgit that doesn't
require this; when not using dgit, this isn't required.

Using dgit is a significantly higher entry barrier than not using it; I
wouldn't recommend using it for that reason.

> The "dgit" repository is also separate from the "real" repository;
> > if
> > you just use "dgit clone ${something}" you won't get the current
> > "master" branch (unless it happens to be identical to the last
> > release), or totally different if the maintainer doesn't use dgit.
> > 
> > The history is also strange if you "dgit clone" a repository where
> > the
> > maintainer used dgit in the past, but no longer does.  Now you have
> > a
> > commit tree with multiple roots which is also confusing for people.
> > 
> > All of this is very uncommon outside the dgit world.
> 
> If you are trying to get the source code, there is a choice to be
> made.
> 
> You can choose to
> 
>  (1) Get a predictable standardised tree format, which can directly be
>  built, cherry-picked, etc.,
> 
>  And, always have what is actually in the archive.
> 
>  But maybe an unhelpful history.  Especially, if the maintainer
>  does not use dgit push.
> 
>  (dgit clone)

This doesn't give you the real source according to people who state
that "source code" nowadays means the Git repository used by the
maintainer.  dgit doesn't differ from apt-get source & gbp import-dsc
there, at least I don't see one.

(This might be different for packages where the maintainer is using
dgit, didn't forget to push and didn't make any changes since the last
upload, i.e. when debcheckout would give the same result.)

>  (2) Have an unpredictable (and usually not even specified) tree
>  format, which may (and usually will) require use of
>  git-workflow-specific tools to even build it.
> 
>  Have to understand the maintainer's branch structure to try to
>  figure out which version corresponds to what is in the archive.
> 
>  Have the maintainer's history.  This is usually in a format
>  useful to the maintainer, but it is not standardised.  It may be
>  the packaging history for a whole packaging ecosystem.  It may be
>  a linear history of a gbp pq branch.  It may be a git-dpm history
>  containing multiple rebases of the same patch series.
> 
>  (debcheckout)

It has the advantage of having the history if one cares about it.  Why
would one not prefer that over the result of importing the .dsc
somewhere?

Maybe dgit is useful for some people to maintain their packages in Git;
but it's not helpful for packages where the maintainer is using it and
some complications are just not a good idea IMHO (like using a separate
Git repository with potentially different contents and not warning
users when fabricating history different from the real VCS history).

Ansgar



Re: Preferred git branch structure when upstream moves from tarballs to git

2019-05-03 Thread Ansgar
On Fri, 2019-05-03 at 17:39 +0100, Ian Jackson wrote:
> Ansgar writes ("Re: Preferred git branch structure when upstream
> moves from tarballs to git"):
> > On Fri, 2019-05-03 at 15:59 +0100, Ian Jackson wrote:
> > > Ansgar writes ("Re: Preferred git branch structure when upstream
> > > moves from tarballs to git"):
> > > > How do you update the package to a new upstream release?
> > > 
> > > The same way you would with whatever tools you are currently
> > > using for
> > > that task.  dgit is not a git delta management tool.  For the
> > > maintainer, dgit replaces dput, not gbp pq or git-dpm or quilt.
> > 
> > The question was to illustrate that dgit forces you to learn about
> > branches, merging, ...  There is no workflow with dgit that doesn't
> > require this; when not using dgit, this isn't required.
> 
> This is so wrong it is very perplexing to me.

Yet you confirm exactly what I am saying...

> This does not work right now with dgit because I have not taught dgit
> how to convert such a thing into a git tree that contains the actual
> source code.

I'm not talking about a hypothetical, different version of dgit which
might have a different set of features.  Anything is possible for such
a hypothetical version.

> Using dgit is a significantly higher entry barrier than not using
> > it;
> 
> Using dgit is a much lower entry barrier if you already know git, and
> don't know about Debian source packages.  Like most people nowadays.

I know plenty of people who more or less only know git commit, push and
pull.  Nothing more advanced.

> Using dgit is only a higher entry barrier if (i) you aren't
> comfortable with "intermediate" use of git (ii) you are already an
> expert on dpkg-source, quilt, etc.

Thank you for confirming that dgit raises entry barriers.  I still
believe that is opposite of what distributions should do, see the
popularity of AUR or similar projects.

> Any maintainer who feels (as I often do) that the preferred form for
> modification of their package includes the full git history, should
> already be using dgit, since how else can they always discoverably
> publish the complete corresponding source ?

There is this fancy Vcs-Git field.  Simple to discover.

Now, if dgit could just use that repository...

> [1] Possibly the user will get the maintainer's git history plus some
> autogenerated dgit conversion commits.  For example, for a package
> whose maintainer uses gbp pq, the user gets a thing that has many
> similarities to the gbp pq patch queue branch.  In particular, the
> patches are applied, each as a git commit in the user's history.

And then has to take care to not push those artificial commits
somewhere if that is not the preferred workflow... That seems rather
backwards to me.

Ansgar



Re: Preferred git branch structure when upstream moves from tarballs to git

2019-05-06 Thread Ansgar
Sam Hartman  writes:
> I'm having a bit of trouble here and am hoping you can help us out.
> Ian asked what git workflow it is that you're talking about where people
> can deal with commit push and pull and don't need to know more.
>
> I didn't see a clear answer to that.
> Which debian packaging workflow do you believe has that property?

There is no need for a vendor branch if only the packaging information
is kept in the repository, i.e. only debian/.  In particular there is no
need for branches or merges for regular updates (i.e. not based on an
older release).

This is also what pretty much every other distribution seems to be
doing, for example Fedora, Gentoo, Ports (BSD), Arch Linux, Void Linux.

It would be easier if there was even more separation between packaging
and upstream source, e.g. base/src (upstream source), base/debian
(packaging information), and possibly other directories below base for
build artifacts (instead of unpredictable locations under base/debian).
Which leads back to the beginning of the subthread[1].

  [1] https://lists.debian.org/debian-devel/2019/04/msg00462.html

Ansgar



Re: Preferred git branch structure when upstream moves from tarballs to git

2019-05-07 Thread Ansgar
On Tue, 2019-05-07 at 12:51 +0100, Ian Jackson wrote:
> Ansgar Burchardt writes ("Re: Preferred git branch structure when
> upstream moves from tarballs to git"):
> > Sam Hartman  writes:
> > > OK, I didn't hear that as an answer but think I'm coming to the
> > > same
> > > conclusion that Ian did after reading your mail.
> > > It sounds like you are talking about having the Debian packaging
> > > in a
> > > separate repository from upstream.
> > > Do I correctly understand the model you are talking about?
> ...
> > I'll point to [1] for what complexity this avoids.  Try explaining
> > that
> > to someone without advanced Git knowledge...
> > 
> >   [1] 
> > https://manpages.debian.org/unstable/git-debrebase/git-debrebase.5.en.html
[...]

> In this message you are using the fact that I have written a
> comprehensive data model specification, against me.  This is a
> seriously bad thing to do.
> 

I think you underestimate how much knowledge you require from users
right from the beginning...

So in a way the problem is that the documentation needs to exist.  git-
debrebase or dgit (to a lesser extend) implement a Debian-specific
version control system on top of Git.  git-debrebase makes this most
obvious: the Git history it generates is pretty much unlike anything
you would ever get from regular Git usage (counterexamples welcome), it
mangles your Git commits into a specific format it expects
(laundering), mangles rebased branches into fast-forward merges with
pseudomerges; all this does not happen in regular Git usage.

dgit has less of these problems, but still does things different from
regular git usage (again pseudomerges to make rebases fast-forward for
example); there are other issues as well such as its suggested use for
NMUs feeling rather unfriendly as it moves the packaging to another VCS
than the maintainer uses with a disjoint history...

Sure, dealing with patch series is not nice either way, but I don't
think the added complexity of git-debrebase (or dgit) is worth what it
provides.  Alternatives require less intimiate knowledge of git and
provide a gentler learning curve; some basic patch queue manipulation
even doesn't require special tools at all (adding/removing patches that
already exist in the right format and apply).

Other distributions have intentionally be trying to move to less
distro-specific tools to reduce barrier of entry; dgit and git-
debrebase both move in the opposite direction (more highly distro-
specific tools).

> You should be applauding me for providing serious documentation for
> advanced users.

According to git-debrebase(1) the documentation I referred to is basic
documentation:

> You should read this manpage in cojnunction with "TERMINOLOGY" in 
> git-debrebase(5), which defines many important terms used here.

"TERMINOLOGY" then refers to most other sections.

> The obvious counter is the (still comprehensive, but user-facing)
> tutorial manpage.  For example,
>   
> https://manpages.debian.org/stretch-backports/dgit/dgit-maint-debrebase.7.en.html#EDITING_THE_DEBIAN_PACKAGING
> et seq.

It illustrates my other main gripe with dgit/git-debrebase: it makes it
harder to share in-progress work, in fact git-debrebase discourages
people from doing so:

| Note that each time you conclude a debrebase you introduce a
| pseudomerge into your git history, which may make it harder to read.

| A simple convention you can use to minimise the number of
| pseudomerges is to git debrebase conclude only right before you
| upload or push to salsa.debian.org. 

Yes, one can avoid some of the problems by pushing a non-fast-forward,
non-interchange branch.  But that differs from the regular workflow
and, again, requires more advanced Git knowledge.

> An equivalently detailed and frank document about dpkg-source would
> be a nightmare.

The concept behind 3.0 (quilt) is much easier to explain: extract
tarballs, optionally apply some patches provided.  With the bonus that
users who have used other distributions before might already know about
most of this which lowers barrier of entry.  Implementation details
like constructing a .dsc are indeed messy.

With most other Debian packaging workflows one can also limit oneself
to more basic Git commands for regular usage, in the most minimalistic
case only commit/push/pull (not even merge); these also match what
users will know if they have used Git at all (be it for packaging in
other distribution, upstream projects, or even just writing their
thesis).

You might say that git-debrebase is not required, but what about users
that want to contribute to a package maintained using it?  They will
have to deal with the complexity...  This also differs from other
packaging workflows that usually don't make specific tools mandatory.

(Not all tools can always be made optional of course, but one should do
some consideration if one makes new tools mandatory.)

Ansgar



Re: .deb format: let's use 0.939, zstd, drop bzip2

2019-05-08 Thread Ansgar
Adam Borowski writes:
> I've recently did some research on how can we improve the speed of unpacking
> packages.  There's a lot of other stages that can be improved, but let's
> talk about the .deb format.
>
> First, the 0.939 format, as described in "man deb-old".  While still being
> accepted by dpkg, it had been superseded before even the very first stable
> release.  Why?  It has at least two upsides over 2.0:

Switching to a different binary format will break various tools.  If we
want to do this, I wonder if we shouldn't take the chance to move away
from tar?

We have various applications that only want to extract single members of
the package (changelog, NEWS, copyright, ...); tar is a really bad
format for such an operation.  Other formats (zip, 7z, ...) are more
suited for them.

Ansgar



Re: .deb format: let's use 0.939, zstd, drop bzip2

2019-05-08 Thread Ansgar
Jeremy Stanley writes:
> On 2019-05-08 22:35:58 +0200 (+0200), Ansgar wrote:
>> Switching to a different binary format will break various tools.  If we
>> want to do this, I wonder if we shouldn't take the chance to move away
>> from tar?
>> 
>> We have various applications that only want to extract single members of
>> the package (changelog, NEWS, copyright, ...); tar is a really bad
>> format for such an operation.  Other formats (zip, 7z, ...) are more
>> suited for them.
>
> Are you talking about source packages or binary packages here? The
> latter use ar, not tar.

I'm talking about binary packages (*.deb).  They currently use tar
archives (control.tar.*, data.tar.*) packed in an ar archive.

Ansgar



Re: .deb format: let's use 0.939, zstd, drop bzip2

2019-05-09 Thread Ansgar
Adam Borowski writes:
> On Wed, May 08, 2019 at 10:35:58PM +0200, Ansgar wrote:
>> Adam Borowski writes:
>> > I've recently did some research on how can we improve the speed of 
>> > unpacking
>> > packages.  There's a lot of other stages that can be improved, but let's
>> > talk about the .deb format.
>> >
>> > First, the 0.939 format, as described in "man deb-old".  While still being
>> > accepted by dpkg, it had been superseded before even the very first stable
>> > release.  Why?  It has at least two upsides over 2.0:
>> 
>> Switching to a different binary format will break various tools.
>
> The 0.939 format is already supported by most tools.
>
> No one sane digs into insides of the format, using a small number of
> low-level tools, thus we can reuse it with little effort.
>
> Of course, adding a new compressor _does_ break compat, but we added four
> compressors to 2.0 over the years already, and the sky didn't fall.

Well, it causes minor breakage which is fairly easy to fix.  A different
container format instead of tar would require more involved changes in
tools, so I'm not 100% convinced of my idea myself ;-)  The thread just
looked like the right time to consider such changes.

>> If we want to do this, I wonder if we shouldn't take the chance to move
>> away from tar?
>
> Any seekable format significantly reduces compression, although this can
> be reduced by managing split points.

Well, depending on how much splitting you do, the loss in compression
should be small enough to not care about?

>> We have various applications that only want to extract single members of
>> the package (changelog, NEWS, copyright, ...); tar is a really bad
>> format for such an operation.  Other formats (zip, 7z, ...) are more
>> suited for them.
>
> Perhaps such files could be considered metadata and moved to the control
> tarball?  Or merely just moved forward -- remember that tarballs are
> unordered.

I don't think that is a good idea: if someone wants to use another file
in a similar way, he couldn't and would have to fall back to the worse
solution.

As an example: I have a config-diff script which compares conffiles with
the pristine version included in the *.deb; it wants to access /etc/*.
(Though ideally dpkg would keep the pristine version accessible below
/usr; that would also be useful for other uses.)

Also dpkg keeps metadata in /var, but changelogs, NEWS, copyright
documentation isn't variable state data and should be below /usr...  The
same is really true for lists of files and maintainer scripts though.

Ansgar



Re: Preferred git branch structure when upstream moves from tarballs to git

2019-05-09 Thread Ansgar
On Thu, 2019-05-09 at 10:33 +0100, Ian Campbell wrote:
> On Thu, 2019-05-09 at 11:19 +1000, Ben Finney wrote:
> > What I remain unconvinced of is the worth of abandoning the clean
> > separation between an upstream source repository (whether Git repository
> > or not) and a VCS repository for Debian packaging (typically in Git).
> 
> I think there's a common misconception here which has cropped up
> several times in this thread. (NB: I've not used dgit in anger yet, but
> I hope what follows is correct).
> 
> That misconception is that "dgit repo" == "maintainer's repo", which is
> not actually the case. As a maintainer you can (if you want) just use
> "dgit push" (instead of dput) while only caring about (and interacting
> with) the "maintainer's repo", never touching or looking at dgit's view
> of the world (apart from perhaps noticing and ignoring some `dgit/*`
> branches in your _local_ repo, I don't beleive you are required to push
> those to anywhere, including your maintainer repo).

I think that is very confusing, yes.

By now I have come to understand that whatever "dgit" produces should
be just regarded as a build artifact, just like binary packages or for
some people the .dsc or for some workflows debian/patches/*.

Though directing users to build artifacts when they request the source
seems counterproductive to me...

I wonder why not the "maintainer view" is published (for the part
making Git repositories "reliably locatable") and any mangling is
applied by "dgit clone" (instead of "dgit push")?  ("dgit push" can
check that the mangling works.)

Then whatever is published is what is the actual preferred form of
modification (as it is what the maintainer uses), but if so desired one
can still get a "dgit view".  (Though for contributing changes to the
maintainer, one should probably base them on the maintainer view...)

In this case the published history also matches the "git histories we
are actually using ourselves", a design goal not met currently; one
could also apply the mangling feature to repositories not published on
the dgit server.

Ansgar



Re: .deb format: let's use 0.939, zstd, drop bzip2

2019-05-09 Thread Ansgar
On Thu, 2019-05-09 at 12:32 +, Jeremy Stanley wrote:
> On 2019-05-09 06:27:36 +0900 (+0900), Mike Hommey wrote:
> > On Wed, May 08, 2019 at 09:04:49PM +, Jeremy Stanley wrote:
> [...]
> > > Are you talking about source packages or binary packages here?
> > > The
> > > latter use ar, not tar.
> > 
> > Binary packages use both.
> > 
> > $ ar t /var/cache/apt/archives/libgcc-9-dev_9.1.0-1_amd64.deb
> > debian-binary
> > control.tar.xz
> > data.tar.xz
> 
> Ahh, yes, thanks I should have remembered that... so then my
> question becomes: is the suggestion to replace *both* ar and tar in
> the binary package format with a single flat archive, or to switch
> out the tarballs inside the ar archive but continue using ar to
> aggregate them?

`ar` needs to be replaced for the file size limitation mentioned in the
initial mail: ar represents file size as a 10 digit decimal number[1]
which limits the members (control.tar.*, data.tar.*) to ~10G.

  [1] https://en.wikipedia.org/wiki/Ar_(Unix)#File_header

Replacing `ar` is an incompatible format change.  So if we already do
an incompatible change, it is an appropriate time to bundle any other
incompatible changes (if there are any).  That is why I suggested that
it might be useful to also replace the `tar` archives with another
format.

Ansgar



Re: .deb format: let's use 0.939, zstd, drop bzip2

2019-05-13 Thread Ansgar
On Fri, 2019-05-10 at 11:04 +0200, Thomas Goirand wrote:
> On 5/9/19 6:25 PM, Andrej Shadura wrote:
> > How about the format opkg used for some time, which is a .deb file
> > but
> > with tar as the outer container format instead of ar?
> 
> This is a very bad idea. When installing a large amount of packages,
> apt
> needs to uncompress all control.tar.gz files so it can get the config
> and templates of debconf. With tar, meaning without an index, one may
> need to uncompress the whole of the .deb file in order to extract
> just a
> tiny portion of it. This could potentially be super long (think: a
> dist-upgrade with so many packages...).

The outer container would probably be uncompressed; as it has only very
few members (dummy file, control.tar.*, data.tar.*, ${something-new}),
accessing any of these few members is fast (as you can just seek from
one header to the next and only need to do so few times).

Ansgar




Re: .deb format: let's use 0.939, zstd, drop bzip2

2019-05-13 Thread Ansgar
Hi Adam,

On Fri, 2019-05-10 at 16:11 +0200, Adam Borowski wrote:
> /usr on the box I'm sitting at:
> * zip the program: dies horribly due to /usr/lib/llvm-7/build/
> symlink
>   loops.
> * zip:
>   1891345142 bytes
> * zip-the-concept (individually compressed files), xz
>   1516943024 bytes
> * tar.xz
>   1092591508 bytes
> 
> Linux source:
> * zip:
>   213820843 bytes
> * individually compressed files, xz
>   180997203 bytes
> * tar.xz:
>   104318396 bytes
> 
> So no, I don't want zip, nor even a randomly accessible format.

Could you also try 7z?  It supports solid compression[1] which
compresses multiple files into one block like tar.xz, but unlike tar.xz
can use more than one block: "Later versions of 7-zip use a variable
solid block size, so that only a limited amount of data must be
processed in order to extract one file".

So it would provide somewhat random access and still offer better
compression than zip or other forms of individually compressed files.

It would be interesting if you could also include the access time for
extracting only the last member of the archive; though for 7z one would
need to check if it does the right thing first...

Ansgar

  [1] https://en.wikipedia.org/wiki/Solid_compression




Re: .deb format: let's use 0.939, zstd, drop bzip2

2019-05-13 Thread Ansgar
Adam Borowski writes:
> On Mon, May 13, 2019 at 11:25:11AM +0200, Ansgar wrote:
>> It supports solid compression[1] which
>> compresses multiple files into one block like tar.xz, but unlike tar.xz
>> can use more than one block: "Later versions of 7-zip use a variable
>> solid block size, so that only a limited amount of data must be
>> processed in order to extract one file".
>
> Yeah but the default block size is 2GB, which would make every single .deb
> in the archive effectively fully solid.  You can fine-tune the values, but
> example numbers don't appear like they'd help much.
>
> And just tested, -ms=on vs -ms=16m:
> -rw-r--r--  1 kilobyte kilobyte 1087957645 May 13 14:37 u.7z
> -rw-r--r--  1 kilobyte kilobyte 1253369019 May 13 14:50 u16m.7z
>
> So the space loss is massive.

That indeed looks like it likely not worth switching to a different
format to allow better random access (which is more of a special-use
case anyway).

Thank you for your experiments!

Ansgar



Re: ZFS in Buster

2019-05-28 Thread Ansgar
Ian Jackson writes:
>> > Would it be possible to provide an alternative patched linux kernel
>> > that works with ZFS?
>
> I think this would be both unwise legally (without seeking additional
> legal advice) and rather rude to the kernel upstream whose code is
> then being reused without permission - indeed, contrary to their
> explicitly stated intent.

At least one commercial distribution (Ubuntu) has been distributing ZFS
binary modules as part of their Linux packages for some years and didn't
have any problems.

Debian doesn't provide prebuilt binary modules for out-of-tree modules
mostly to not have to care about them when the Linux ABI changes as
happens in many updates (including security/stable updates).

(Ubuntu avoids that by using `wget` to get the source for out-of-tree
modules like ZFS when building their src:linux package, something Debian
would probably not like that much...)

Ansgar



Re: Why do we take so long to realise good ideas (Was: Difficult Packaging Practices)

2019-05-29 Thread Ansgar
On Wed, 2019-05-29 at 10:38 +0200, Raphael Hertzog wrote:
> On Wed, 29 May 2019, Andrey Rahmatullin wrote:
> > One of the popular answers to this and some other problems is "nobody sat
> > down and wrote the code". Not sure what can we do about this class of
> > reasons.
> 
> Use the $300,000 on our bank accounts?

I heard that this didn't work out well the last time ("dunc tank"),
though that was before the time I followed Debian development.

Ansgar



Re: Hurd-i386 and kfreebsd-{i386,amd64} removal

2019-06-05 Thread Ansgar
Aurelien Jarno writes:
> kfreebsd-amd64 and kfreebsd-i386 have now been moved to debian-ports. As
> hurd-i386 has been moved earlier, it means that all the 3 architectures
> have now been moved.

I removed kfreebsd-* and hurd-i386 from ftp-master's unstable and
experimental suites yesterday.  The move should be completed with this.

Ansgar



getting rid of "testing"

2019-06-24 Thread Ansgar
Hi,

what do people think about getting rid of current suite names ("stable",
"testing", "unstable") for most purposes?  We already recommend using
codenames instead as those don't change their meaning when a new release
happens.

Related to that I would like to be able to write something like

  deb http://deb.debian.org/debian debian11 main
  deb http://security.debian.org/debian-security debian11-security main

in sources.list as codenames confuse people.

Ubuntu already has no suite names, only codenames, but having to map
"Ubuntu 18.04" to "bionic" instead of just writing the version in
sources.list is annoying (I always have to look up the codename to be
sure as I don't use Ubuntu that much).

Ansgar



Re: Content Rating System in Debian

2019-06-25 Thread Ansgar
Hi,

On Tue, 2019-06-25 at 11:40 +0700, Bagas Sanjaya wrote:
> Based on above, what are your opinions/thoughts/positions about
> Content Rating System in Debian?

is this related to your other proposal involving giving "sudo"
permissions to teenagers to handle this age recommendation stuff for TV
programs?

| In fact, many television stations have most programs written for
| teens (age 13 and older), so sysadmins there configure sudoers which
| allows teens to behave like sysadmins themselves (by giving them full
| administrator privileges) on their production systems. Also, parental
| monitoring and guidance can reduce likehood of teens breaking such
| systems. Maybe because teens are largest marketshare for TVs.

Ansgar
 - rating "kill -KILL" X-rated for extreme violence



Re: getting rid of "testing"

2019-06-25 Thread Ansgar
On Tue, 2019-06-25 at 16:39 +0800, Paul Wise wrote:
> On Tue, Jun 25, 2019 at 2:08 PM Ansgar wrote:
> > what do people think about getting rid of current suite names ("stable",
> > "testing", "unstable") for most purposes?  We already recommend using
> > codenames instead as those don't change their meaning when a new release
> > happens.
> 
> I use these (testing, etc) so getting rid of them would be annoying.

The "stable" suite names are more annoying than
unstable/testing/experimental as they require updates to suites at
release time that are not related to the release.  That shouldn't be
necessary.

For "testing", "unstable" one could probably introduce some `Alias`
field in Release, but I also like minimalist solutions (which already
seem to work well for Ubuntu).

> > Related to that I would like to be able to write something like
> > 
> >   deb http://deb.debian.org/debian debian11 main
> 
> Already kind of possible:
> 
> deb http://deb.debian.org/debian Debian9.9 main

Yes, but it gives warnings for issues that I believe should be an error
instead. (And currently a good reason for TLS to talk to mirros so a
MitM that is not a mirror operator cannot give you oldstable when you
want to use unstable.)

debootstrap gives an error for this:

+---
| $ /sbin/debootstrap --print-debs Debian9.9 . http://ftp.de.debian.org/debian 
unstable
| [...]
| E: Asked to install suite Debian9.9, but got stable (codename: stretch) from 
mirror
+---

As Adam already pointed out having the point release in there also
makes "Debian9.9" rather unhelpful.

> > Ubuntu already has no suite names, only codenames, but having to map
> > "Ubuntu 18.04" to "bionic" instead of just writing the version in
> > sources.list is annoying (I always have to look up the codename to be
> > sure as I don't use Ubuntu that much).
> 
> They do have the 'devel' suite, but it is not a proper one:
> 
> https://bugs.launchpad.net/ubuntu/+bug/1821272

That is what Debian9.9 (and similar) are currently as well.

Ansgar



Re: git & Debian packaging sprint report

2019-07-14 Thread Ansgar
Sean Whitton writes:
> On Fri 12 Jul 2019 at 02:06PM +02, Ansgar wrote:
>> Depends on a lot of things.  As far as I understand this work is in a
>> very early stage and a first brainstorming session on what problem this
>> is intended to solve, why one should consider doing it, and possible
>> requirements is planned for DebConf[1].
>>
>> Without having any of these, it is hard to comment on anything.
>
> Figuring out how this is going to be deployed as Debian infrastructure
> is indeed at an early stage.
>
> I don't think it is accurate to think of the whole project as being at
> an early stage.  From my perspective, the hardest problem to solve was
> conversion of git trees to uploads, on the server side, in a way that is
> user friendly.  We take ourselves to have solved that problem, which to
> my mind renders this project beyond the early stages of development.

What is the DebConf BOF then for?  It says it is "a requirements
collecting BOF for that [git push] discussion"?

Ansgar



Re: Debian and our frenemies of containers and userland repos

2019-07-23 Thread Ansgar
Marc Haber writes:
> Compared to a full VM, a container _is_ smaller. I am not sure whether
> the difference is as huge in times where we have kernel same-page
> merging though.
>
> Do we have a build technology that uses containers instead of chroots
> yet?

I haven't used it so far, but at least "whalebuilder" exists.

The gitlab-ci used on salsa.d.o also uses Docker containers; people also
build packages using this (mostly for testing though, see for example [1]).

Ansgar

  [1] https://salsa.debian.org/salsa-ci-team/pipeline



Re: tag2upload (git-debpush) service architecture - draft

2019-07-29 Thread Ansgar
Bernd Zeimetz writes:
> On 7/27/19 8:16 PM, Rebecca N. Palmer wrote:> As a way to avoid relying
> on SHA-1, would it work to have git-debpush
>> include a longer hash in the tag message, and tag2upload also verify
>> that hash?
>>
> The other idea would be to convince git upstream to use something
> better than sha1 - and after a bit of searching, I found
[...]
> So I think the best thing to do is to get sha256 working in git and
> force the usage of sha256 if you want to sign a tag for upload.

That will take quite a while; we would probably need a version of git
supporting that in stable.

There are also other issues, for example:

 - Such a service would bypass various sanity checks on the archive
   side, including various permission checks.

 - Such a service would need to properly validate the PGP signature.
   The archive really shouldn't rely on a third-party service for this.
   (In particular the service in question here doesn't do that as far as
   I can tell.)

Ansgar



Re: Please stop hating on sysvinit (was Re: do packages depend on lexical order or {daily,weekly,monthly} cron jobs?)

2019-08-09 Thread Ansgar
Alf Gaida writes:
> We need sysvinit for some non-linux things

No: Hurd existed for a long time without using sysvinit/sysv-rc.  I
think sysvinit was only ported to Hurd in 2013 or 2014 (I didn't search
much, but found a Summer of Code application from 2013 for this).

Having sysvinit might make things a bit easier for Hurd/kFreeBSD, but
it's not an absolute requirement for such a port to exist.

Ansgar



Re: Bypassing the 2/3/4GB virtual memory space on 32-bit ports

2019-08-22 Thread Ansgar
"Theodore Y. Ts'o" writes:
> On Wed, Aug 21, 2019 at 10:03:01AM +0100, Luke Kenneth Casson Leighton wrote:
>> so i hope that list gives a bit more context as to how serious the
>> consequences of dropping 32 bit support really is.
>
> I very much doubt we are any where near "dropping 32-bit support".
> There's a lot of "all or nothing thinking" in your argumentation
> style.

The topic of this very thread is how to avoid dropping support for 32bit
architectures.  So people clearly want to continue supporting it.

> As Sam has said multiple times, what's much more likely is that the
> set of packages that can't be built on native packages on 32-bit
> platforms will grow over time.  The question is when will that
> actually *matter*?  There are many of these packages which no one
> would want to run on a 32-bit platform, especially if we're focusing
> on the embedded use case.

It might matter pretty soon: for generic-purpose systems one almost
always want to be able to use a web browser; even various embedded
systems do.  However web browsers are one of the most heavy packages to
build.

> At least initially, the simplest way of dealing with the problem is
> that maintainers will simply not build their package on 32-bit
> platforms.

I don't think we want this to happen if we want to continue supporting
32bit systems.  But using a 64bit toolchain in an otherwise 32bit
userland as the thread suggests we now really should start looking at
will avoid this.

It will probably take a few more years until we have to worry about
being able to run browsers in 32bit...  But I would hope that most
people understand that using 32bit for new generic-purpose systems is
not future-proof (and hasn't been for a while); even phones have started
to move to 64bit systems a while ago.

Ansgar



Re: Proposed build profile: noinsttests

2019-09-04 Thread Ansgar
Simon McVittie writes:
> The name of the profile
> ---
>
> The "noinsttests" name is inspired by previous discussion (on a bug
> asking for more  in some package, if I remember correctly?),
> and by ginsttest-runner in the gnome-desktop-testing package[1], which
> is a test-runner for GNOME's installed-tests initiative.
>
> If people strongly prefer build profiles to be singular, then "noinsttest"
> would also be fine.
>
> The conventional names for the build-time options that enable/disable
> GNOME installed-tests are --{en,dis}able-installed-tests (Autotools) and
> -Dinstalled_tests={true,false} (Meson), but I think "no-installed-tests"
> or "no-as-installed-tests", or a version of one of those names with
> words run together, would be inconveniently long for a build-profile.

I think a name without abbreviations like "no-installed-tests" is
better.  While it is clear what the name means for people working with
build profiles all the time, a more expressive name might be easier on
people only dealing with them occasionally.

Ansgar



Re: Git Packaging: Native source formats

2019-09-04 Thread Ansgar
Sam Hartman writes:
> * One is that you're not using upstream tarballs.  If upstream has
>   tarballs they produce, we're not using them.  I guess we may end up
>   having that part of the conversation now rather than later.
>
>   It's clear that we value integrity of upstream source.  That is we
>   want to make it easy for people to start from some upstream source
>   that is trusted because upstream has produced it and audit just our
>   changes.
>   One way to do this is with an upstream tarball and a diff (or set of
>   diffs or a debian directory).

There are a few other projects consuming upstream tarballs from Debian's
archive.  I've seen source-based distributions (portage, pkgsrc) using
tarballs from there.  It would be friendly to not break this for them if
we can avoid doing so without too much cost.

Upstream tarballs are probably also the easiest way for upstream to
provide a signed version of their software which we have tried to
encourage (for example by including such signatures in Debian's
archive).

Ansgar



Re: Git Packaging Round 2: When to Salsa mirror

2019-09-09 Thread Ansgar
Geert Stappers writes:
> On Sun, Sep 08, 2019 at 10:05:17PM -0700, Russ Allbery wrote:
>> Higher chance that the repository won't go away.
>
> Where is Alioth? As retoric question.

The repositories on Alioth weren't lost and can still be found archived
on https://alioth-archive.debian.org/

> What about Vcs-Mirror-*  for actual telling where a mirror is.
> In case of `git` is "mirror" a "clone"

Arguably in Git everything but the maintainer's local repository might
be a mirror.  This was even called a security feature as hash collisions
might need to be sneaked in there to get included in release tarballs[1].

Ansgar

  [1] 
https://public-inbox.org/git/pine.lnx.4.58.0504291221250.18...@ppc970.osdl.org/



Re: Git Packaging Round 2: When to Salsa

2019-09-09 Thread Ansgar
Sam Hartman writes:
> If you are a Debian Developer packaging a package for inclusion in
> Debian, you should store your packaging information in one repository
> per package on salsa.debian.org in the debian group.  That is you should
> create a repository under https://salsa.debian.org/debian .

This allows everyone to do arbitrary changes and presumably upload the
package.  That is quite a large change that I'm not sure everyone likes.

+---
| Direct commits to repositories in the Debian group by any Debian
| developer are implicitly welcome. No pre-commit coordination
| (e.g. merge-request or mail) is expected.
+---[ 
https://wiki.debian.org/Salsa/Doc#Collaborative_Maintenance:_.22Debian.22_group 
]

Ansgar



Re: Git Packaging Round 2: When to Salsa

2019-09-12 Thread Ansgar
On Thu, 2019-09-12 at 08:14 -0400, Sam Hartman wrote:
> Ian> 1. The maintainer's git repository branch format must be
> Ian> documented.  Otherwise another contributor has to guess.  This
> Ian> could be done either by doing maintainer uploads with dgit
> Ian> (since recent versions of dgit include the maintainer branch
> Ian> format information in the git tags), or perhaps by writing
> Ian> something in README.source.
> 
> Makes sense.
> My take is discussion on debian-devel strongly supports making it easier
> to figure out what branch format people are using.

I don't see much value in this requirement (besides additional work). 
One should look at the repository anyway whan planning to do changes
(to match the existing style used); one would naturally see how files
are organized.  We already had tons of packages shipping a
README.source stating "this packages uses quilt, ..." before which I
also didn't find very valuable; this seems pretty similar.

If dgit provides a program to figure this out, people interested in
obtaining the information automatically can just extract and use that. 
(Using dgit to upload packages is sadly incompatible with best
practices around packaging.)

Ansgar



Re: Mozilla Firefox DoH to CloudFlare by default (for US users)?

2019-09-12 Thread Ansgar
Adam Borowski writes:
> On Tue, Sep 10, 2019 at 07:46:57PM +0200, Marco d'Itri wrote:
>> Well, no. They cannot without significantly more expensive hardware to 
>> do DPI and a *totally different* legislative framework.
>> (Source: I have been dealing with government-mandated censorship in 
>> Italy for ~15 years, both at technical and policy levels.)
>
> I don't understand how blocking by IP would be any more expensive than
> blocking by DNS.  It's _cheaper_: you read a field in the IP header instead
> of doing it in a higher level DNS server.

>From the top of my head I can think of several reasons:

 - For IP-level blocking you need to implement blocking in more places
   instead of a central place (DNS); also more data needs to be
   processed in total.  Block lists are generally not public and access
   to them might need different restrictions (for legal reasons).

 - IP-level blocking leads to more overblocking (anything sharing the
   same IP); this causes legal problems.

So Marco's arguments seem reasonable.

>> > * Cloudflare can falsify DNS¹
>> You can use DNSSEC over DoH.
>
> If implemented.

It's probably easier to use DNSSEC with DoH as you avoid broken
resolvers at ISP or customer routers that don't speak DNSSEC or not even
proper DNS.  I've encountered customer routers that knew only about `A`
RRs and lied about `PTR` which breaks stuff in interesting ways...

Ansgar



Re: Git Packaging Round 2: When to Salsa

2019-09-15 Thread Ansgar
Anthony DeRobertis writes:
> On 9/12/19 8:57 AM, Ansgar wrote:
>> I don't see much value in this requirement (besides additional work).
>> One should look at the repository anyway whan planning to do changes
>> (to match the existing style used); one would naturally see how files
>> are organized.  We already had tons of packages shipping a
>> README.source stating "this packages uses quilt, ..." before which I
>> also didn't find very valuable; this seems pretty similar.
>
> Working with packages downstream it's nice to have that
> documented. E.g., needing to patch something for a weird site
> requirement, or backport a fix that isn't a big deal for anyone else
> (so likely wouldn't qualify for a stable update), etc. Not everyone
> who wants to modify a package is familiar with the multitude of ways
> of maintaining packages.

As long as you only need to touch the more trivial parts of the package
and not the upstream source.  There are many more ways to organize
upstream sources; more conventions (for different programming
languages); more workflows; code style conventions; ...

Most of the variance in Debian packaging is much less than what one
would encounter outside of the packaging-specific bits.

Ansgar



Re: Debian 9/stretch moved to archive.debian.org

2023-04-23 Thread Ansgar
On Mon, 2023-03-27 at 00:40 +0200, Ansgar wrote:
> the stretch, stretch-debug and stretch-proposed-updates suites have now
> also been imported on archive.debian.org. People still interested in
> these should update their sources.list.
> 
> I plan to remove the suites from the main archive in about a month
> (2023-04-23 or later).
> 
> The stretch-backports, stretch-backports-sloppy and related debug suites
> will likely move soon as well and might be removed from the main archive
> around the same time.

This has happened now, just according to 計画[1]. It might take a moment
to reach mirrors.

Ansgar

  [1]: Translator's note: 計画 means plan.



Re: DEP 17: Improve support for directory aliasing in dpkg

2023-05-07 Thread Ansgar
Hi,

On Sun, 2023-05-07 at 07:50 +0200, Helmut Grohne wrote:
> But then, you only capture diversions inside Debian's ecosystem and miss
> out on other kinds of diversions such as local diversions. We currently
> support imposing local diversions on pretty much arbitrary files
> including unit files.

No, we do not really support diversions. Once you are divert a file, it
is luck whether this works or not.

Once you divert files, maintainer scripts and other parts would have to
be aware of this and chose whether to use the original file included in
the file or the diverted file.

Not handling diversions can lead to files disappearing, data loss or
other breakage, but it's very rare a package considers this.

Ansgar



Re: DEP 17: Improve support for directory aliasing in dpkg

2023-05-07 Thread Ansgar
Hi,

On Sun, 2023-05-07 at 07:50 +0200, Helmut Grohne wrote:
> But then, you only capture diversions inside Debian's ecosystem

It's unreasonable to support stuff outside Debian's ecosystem: even
basic dependency relations do not work for this.

Debian's dependency system requires to explicitly declare
Depends/Conflicts/Replaces/Breaks, but for obvious reasons we cannot do
that for packages outside Debian's ecosystem.

The same is true for diversions/alternatives/* or anything else
requiring coordination among all users: the dpkg ecosystem has too many
practical limitations to support non-Debian packages on anything but a
"it might work" basis (which is usually "good enough").  (This is even
true for packages within the Debian ecosystem, especially when one
considers partially implemented features like multi-arch.)

Is there any specific reason why specifically diversions are a problem
where "it might work" is not sufficient? That is, why should we divert
from the usual standard for dealing with packages outside the Debian
ecosystem here?

> I also caution that we've started from a very simple approach and tried
> fixing it up to address the problems that we recognized in analyzing it.
> My impression is that we are not finished with our discovery here and
> won't be for quite some time.

Well, we find limitations in dpkg that we in all other contexts usually
ignore. If we used similar expectations in other cases, we would need
to very much restrict when Breaks/Conflicts/Replaces might be used at
all: it's totally unrealistic to list all (possibly local) packages
that ship conflicting files, possibly only created by maintainer
scripts. Or to explicitly list all reverse dependencies that might be
broken by a particular change. We also would not have multi-arch yet as
the dependency system doesn't support it fully (some of which is
already known, but probably discovery isn't finished yet).

(Of course in some cases explicitly listing reverse dependencies can be
avoided: just always introduce something like

Provides: ${foo}-compat (= 1)

for *all* dependencies and forbid `>=` in `Depends`; this allows to
stop providing that in cases where one would have to declare explicit
`Breaks` before. But only the direct provider can use this, so it's
already too limited... Alternatively forbid *all* changes that would
require this, i.e., require stable interfaces. However we do not do
this.)

But for all these issues we just say "meh, you are out of luck".

Ansgar



Re: DEP 17: Improve support for directory aliasing in dpkg

2023-05-10 Thread Ansgar
On Wed, 2023-05-10 at 08:35 -0700, Sean Whitton wrote:
> On Sun 07 May 2023 at 11:14AM +02, Ansgar wrote:
> > Debian's dependency system requires to explicitly declare
> > Depends/Conflicts/Replaces/Breaks, but for obvious reasons we
> > cannot do
> > that for packages outside Debian's ecosystem.
> > 
> > The same is true for diversions/alternatives/* or anything else
> > requiring coordination among all users: the dpkg ecosystem has too
> > many
> > practical limitations to support non-Debian packages on anything
> > but a
> > "it might work" basis (which is usually "good enough").  (This is
> > even
> > true for packages within the Debian ecosystem, especially when one
> > considers partially implemented features like multi-arch.)
> 
> I don't think this is the consensus view.

So why do we allow changes that require listing all reverse
dependencies in Breaks then? This is known to be wrong for all non-
listed packages, e.g., all local/vendor/derivative-specific packages.

> Our derivatives are among our users, for example, and we care about
> them being able to add packages in appropriate ways.

As far as I understand, we do explicitly *not* care about our
derivatives with regard to merged-/usr as some packages in Debian
recommend users to move *away* from merged-/usr to split-/usr on
derivatives, i.e., to an unsupported fs layout.

AFAIR the ctte felt that doing so on derivatives is fine for packages
in Debian (w/o an explicit formal ruling).

Ansgar



Re: DEP 17: Improve support for directory aliasing in dpkg

2023-05-10 Thread Ansgar
Hi Russ,

On Wed, 2023-05-10 at 13:50 -0700, Russ Allbery wrote:
> Ansgar  writes:
> > As far as I understand, we do explicitly *not* care about our
> > derivatives with regard to merged-/usr as some packages in Debian
> > recommend users to move *away* from merged-/usr to split-/usr on
> > derivatives, i.e., to an unsupported fs layout.
> 
> Caring about them isn't the same thing as doing everything they want.  We
> can both try to make things as smooth for them as possible and still make
> design decisions about Debian that they may disagree with or that may make
> some property they want to maintain difficult or impossible.  It's the
> sort of decision we have to make on a case-by-case basis.

Debian going out of its way to tell derivative users to switch back
from merged-/usr to split-/usr is the *opposite* of trying to make
things as smooth for them as possible.

I asked the ctte to consider not telling derivative users to revert
from merged-/usr and was told me that "we [ctte] would not consider
this [change] to be in line with our existing decisions" (informally).

I take that as explicitly not caring that we break derivative users'
systems.

Ansgar



Bug#1035904: dpkg currently warning about merged-usr systems (revisited) (was: Re: DEP 17: Improve support for directory aliasing in dpkg)

2023-05-10 Thread Ansgar
Package: tech-ctte
X-Debbugs-Cc: Russ Allbery , Sean Whitton 
, Helmut Grohne , Luca Boccassi 
, debian-d...@lists.debian.org, debian-devel@lists.debian.org

On Wed, 2023-05-10 at 14:36 -0700, Russ Allbery wrote:
> Ansgar  writes:
> > Debian going out of its way to tell derivative users to switch back from
> > merged-/usr to split-/usr is the *opposite* of trying to make things as
> > smooth for them as possible.
> 
> Yes, I agree with that part and I think I objected to that at the time.
> Nonetheless, one bad decision doesn't mean that it is Debian policy that
> we don't care about derivatives or their users.  I think we made a mistake
> there which is not in alignment with our ideals or our goals.  We should
> try to reverse that mistake, not double down on it.

Cool, then let's ask tech-ctte.

Dear ctte, please consider overruling the dpkg maintainer to include
the patch from #994388[1].

Thanks,
Ansgar

  [1]: https://bugs.debian.org/994388#397



Re: Bug#1035904: dpkg currently warning about merged-usr systems (revisited)

2023-05-11 Thread Ansgar
On Wed, 2023-05-10 at 19:01 -0700, Sean Whitton wrote:
> On Wed 10 May 2023 at 11:47PM +02, Ansgar wrote:
> > Cool, then let's ask tech-ctte.
> > 
> > Dear ctte, please consider overruling the dpkg maintainer to
> > include
> > the patch from #994388[1].
> > 
> > Thanks,
> > Ansgar
> > 
> >   [1]: https://bugs.debian.org/994388#397
> 
> This would require a new, maintainer-overruling vote.
> Our existing decisions do not apply, so far as I can tell.

Yes, I agree.

> I have written a separate message to the bug and to debian-dpkg with
> a proposal to avoid having to have such a vote.

That seems to be about an implementation detail on how to apply the
patch. I don't think that is the core of the issue?

The core issue as I see it is as follows:

- Debian has decided to support only merged-/usr, including possibly
  moving /bin/sh to /usr/bin/sh or using /usr/lib*/ld-linux-x86-64.so.2
  as the interpreter in binaries.

- This change breaks on non-merged-/usr systems, including derivatives
  that do not revert *all* relevant changes. (Do you know one that
  does this or plans to do so?)

- dpkg recommends derivative users to move to non-merged-/usr.

I think this contradiction is not good and the core conflict. For me a
distribution should have some coherence. It is not just a distribution
of unrelated parts (like linux, libc, dpkg, dash, ...), but also
integrates them to work together.

And this also means not one package telling users to do X which breaks
other packages. Or (if other packages would do similar things as dpkg)
one package asking users to do X and the other asking users to do the
opposite of X. Just imagine dpkg asking users to move to split-/usr and
then another package starting to warn users to move back to merged-
/usr. Would that be a good state? I think not which is why this bug
exists.

Do you think this summary of the issue is right?

Is there some consensus about how this issue should be solved or do we
need a longer discussion to explore the solution space?

Ansgar



dropping Priority field from binary packages for most packages

2023-05-13 Thread Ansgar
Hi,

could we drop the Priority field from most packages? Most packages use
"Priority: optional" and this is just noise in d/control (source
package). Tools should just assume "optional" when no other value is
set.

Currently Policy documents Priority to be mandatory in 2.5:

+---
| Each package must have a priority value, which is set in the
| metadata for the Debian archive and is also included in the
| package’s control files (see Priority).
+---[ https://www.debian.org/doc/debian-policy/ch-archive.html#priorities ]

As well as only recommended:

+---
| The fields in this file are:
| [...]
| - Priority (recommended)
+---[ 
https://www.debian.org/doc/debian-policy/ch-controlfields.html#binary-package-control-files-debian-control
 ]

I would like to drop it pretty much everywhere, most importantly
debian/control in source packages (as often humans edit these). But it
could be dropped in other places (CONTROL in .deb and Packages indices)
as well.

Regards,
Ansgar

PS: Please note the following disclaimer: I might or might not be payed
for this change and refuse to disclose financial incentives or other
conflicts of interest; I might or might not suggest to revert this if
my sponsors' (should they exist) priorities shift elsewhere.

-- 
Certified Software Terrorist (Crime of File Relocation)



Bug#1036358: release-notes: Debian 12 expected to be last release w/ installer for i386

2023-05-19 Thread Ansgar
Package: release-notes
X-Debbugs-Cc: Steve McIntyre , debian-devel@lists.debian.org

On Fri, 2023-05-19 at 15:03 +0100, Steve McIntyre wrote:
> I had been thinking about doing similar for installer images too, but
> with other work going on too I think it got too late in the cycle to
> make that change. My plan is therefore to ship i386 installer images
> for bookworm as normal (including bookworm point releases going
> forwards), but to disable those builds for testing/trixie
> ~immediately after the release.

I suggest to already document this in the release notes for bookworm,
possibly in Section 2.1 (Supported architectures) or a subsection in
Section 5 (Issues to be aware of for bookworm).

Maybe something along these lines:

+---
| Debian 12 is expected to be the last Debian release providing
| full support for i386.  Debian 13 will only partially support
| i386 and no longer provide installation media for i386.
|
| We recommend hosts still running the i386 port to be upgraded
| to amd64.  Legacy i386 software can be run using multi-arch,
| chroot environments or containers.
+---

Ansgar



Re: i386 in the future (was Re: 64-bit time_t transition for 32-bit archs: a proposal)

2023-05-19 Thread Ansgar
On Fri, 2023-05-19 at 20:57 +0200, Bjørn Mork wrote:
> Hmm.  I find the netboot installer archives very useful for rescue
> purposes.  This sometimes involves PC hardware too old for amd64. I PXE
> booted a 20+ year old laptop with no DVD/CD drive (Compaq Evo N410c - CD
> drive was part of the optional docking station) using a bullseye
> netboot.tar not long ago.

You can keep using the bullseye netboot.tar for the next 20+ years to
rescue boot an ancient system, copy the data off of it, and then
responsibly dispose the system.

I don't think this is a good argument to keep generating i386 install
media.

> Not a major thing, but if you're going to keep most of i386 anyway...

I would hope we could eventually drop some expensive, useless packages
from i386 like src:linux.

Ansgar



Re: i386 in the future (was Re: 64-bit time_t transition for 32-bit archs: a proposal)

2023-05-19 Thread Ansgar
On Fri, 2023-05-19 at 19:40 +0100, James Addison wrote:
> Do we know how often the i386 installer is downloaded compared to
> amd64, and could/should we start with updated messaging where those
> are provided before removing users' ability to install on their
> systems?
> 
> (i386 remains the second-most-popular architecture behind amd64 today
> going by popcon[1] stats - perhaps a lot of that is people using i386
> as a compatibility architecture only, but it'd be nice to be
> reasonably confident about that)

One of the problems with popcon is that it draws too much attention to
old releases which isn't really interesting when talking about future
developments.  If one looks at arch usage per release (as reported to
popcon) one gets this table:

| Architecture   | jessie | stretch | buster | bullseye | bookworm/sid |
|++-++--+--|
| alpha  |  1 | ||  |4 |
| amd64  |   9090 |   17156 |  41137 |   108145 |14800 |
| arm64  ||   1 | 93 |  937 |  203 |
| armel  | 21 |  47 | 67 |   68 |   10 |
| armhf  |  7 |  18 |216 |  429 |   49 |
| hppa   || ||  |8 |
| hurd-i386  || ||4 |6 |
| i386   |   1318 |1231 |   1495 | 3042 |  168 |
| ia64   || ||  |3 |
| kfreebsd-amd64 |  2 | ||  |  |
| m68k   ||   1 ||  |4 |
| mips   |  2 | |  6 |  |  |
| mips64el   || |  6 |4 |  |
| mipsel |  2 |   1 |  7 |  |  |
| powerpc| 13 |   1 |  1 |1 |   18 |
| ppc64  || ||1 |   28 |
| ppc64el||   5 | 16 |  |   12 |
| riscv64|| ||  |   15 |
| s390x  || ||8 |3 |
| sh4|| ||  |1 |
| sparc64|| ||  |   11 |
| x32|| ||  |2 |
|++-++--+--|
| ∑  |  10456 |   18461 |  43044 |   112639 |15345 |
#+TBLFM: @>$2..@>$>=vsum(@I..II)

where i386 has dropped from 13% to 7% to 3% to 3% and finally to 1%.
Also interesting is that arm64 has taken over i386 on bookwork/sid.

We don't know how many people downloaded i386 instead of amd64 as they
have an Intel CPU.

What is also not clear is the bias of systems having popcon enabled at
all (it seems to be mostly desktop systems) and how it looks on the
total population.

Ansgar



Re: i386 in the future

2023-05-20 Thread Ansgar
On Sat, 2023-05-20 at 04:25 +0100, Wookey wrote:
> On 2023-05-19 12:42 +0100, Steve McIntyre wrote:
> > If they're still running
> > i386 *hardware*, then they should be replacing that hardware with more
> > modern, more capable, more *efficient* stuff.
> 
> I'm still using an i386 early acer netbook. (I even just upgraded it 4
> releases from Wheezy to Bookworm to get a newer Alfa wifi card working
> with a mdern kernel). It's only used for ~1 month/year, primarily as a
> fancy long-range wifi router and it's reasonably low power. An rPI
> would not be a useful replacement as it's not the same form factor
> (robust clamshell, with screen/mouse).
[...]
> Removing the installer to stop supporting _new_ installs is probably
> fair enough but I don't think we can yet say there are no reasonable
> use cases for old i386 hardware.

I don't think that is a good use case to keep i386 installations on
i386 hardware alive beyond 2028 (which is what we are talking about):
just grab a slightly newer amd64 netbook out of the junk by the time
LTS support for Debian bookworm ends.

Ansgar



Re: DEP 17: Improve support for directory aliasing in dpkg

2023-05-25 Thread Ansgar
Hi Russ,

On Wed, 2023-05-10 at 14:36 -0700, Russ Allbery wrote:
> Ansgar  writes:
> > Debian going out of its way to tell derivative users to switch back from
> > merged-/usr to split-/usr is the *opposite* of trying to make things as
> > smooth for them as possible.
> 
> Yes, I agree with that part and I think I objected to that at the time.
> Nonetheless, one bad decision doesn't mean that it is Debian policy that
> we don't care about derivatives or their users.  I think we made a mistake
> there which is not in alignment with our ideals or our goals.  We should
> try to reverse that mistake, not double down on it.

My impression is that the tech-ctte disagrees on this point and would
not want to reverse the mistake, but double down on it (in your words).

Or rather my impression is that they would like to avoid any decision
on the dpkg mess situation. (Though not making a decision when asked is
of course also an explicit decision.)

So let me summarize Debian's "official" position as I understand it: we
do *NOT* care how dpkg's recommendations will break derivative
installations at all; if systems become unbootable, cause data loss,
... now or in the future that is explicitly fine.

Ansgar



Re: DEP 17: Improve support for directory aliasing in dpkg

2023-05-26 Thread Ansgar
On Fri, 2023-05-26 at 08:39 +0100, Matthew Vernon wrote:
> > So let me summarize Debian's "official" position as I understand it: we
> > do *NOT* care how dpkg's recommendations will break derivative
> > installations at all; if systems become unbootable, cause data loss,
> > ... now or in the future that is explicitly fine.
> 
> This is also unhelpful (and incorrect).

No, it is correct.

We allow boot-critical parts to refer to files using either the path in
/ or /usr; on systems following the recommendations from dpkg's warning
this might result in non-booting systems.

That is what we sign up to accept by having the warning in dpkg.

Ansgar



Re: Dynamic linker support for FPC.

2023-05-28 Thread Ansgar
On Sun, 2023-05-28 at 20:23 +0200, Andrey Rakhmatullin wrote:
> On Sun, May 28, 2023 at 06:53:51PM +0200, Abou Al Montacir wrote:
> > One year ago, glibc 2.32 
> 2.32 was released in 2020 though? Unless you mean some Debian-specific
> changes, happened in 2021, in which case please be more specific?
> 
> > introduced a change in the dynamic linker removing the functions
> > calloc/malloc/realloc/free.
> What do you mean by this?

I think this entry from the changelog is meant:

+---
| 2020-02-15  Florian Weimer  
|
| COMMIT: 3a0ecccb599a6b1ad4b149dc569c0080e92d057b
| ld.so: Do not export free/calloc/malloc/realloc functions [BZ #25486]
+---

Which is an incompatible ABI change.

Ansgar



Re: i386 in the future (was Re: 64-bit time_t transition for 32-bit archs: a proposal)

2023-05-31 Thread Ansgar
On Wed, 2023-05-31 at 19:48 +0100, Wookey wrote:
> On 2023-05-31 07:29 -0500, John Goerzen wrote:
> 
> > > Hanging on to systems using power-hungry chips from 20 years ago instead 
> > > of
> > > intercepting a system such as this is not reducing the number of computers
> > > that end up in the waste stream, it just keeps you stuck with a more
> > > power-hungry system.
> 
> a) That's not necessarily a problem if the machine is running from a
> renewable supply. The issue is emissions, not power consumption per
> se.

Thankfully I have a spiritual power filter[1] based on anthroposophic
principles that makes my computers consume only renewable energy ;-)

> and b) as both John and I have pointed out there are low-power i386
> systems still in use.
> 
> c) it's not our choice to make. If people insist on using more
> electricity than they need to for their computing, that's on them.
> (we
> enable enormous amounts of this already - old i386 systems probably
> barely register at this point)
> 
> Debian should be supporting people using whatever suits them where
> that effort is reasonably proportionate. We are not driven by the
> 'sell new stuff' goals of hardware manufactuers so we should IMHO be
> erring on the side of keeping stuff going as long as there is
> sufficient community support.

I doubt we have that, see some of the issues listed for i386 on
https://release.debian.org/testing/arch_qualify.html

I would not be surprised if we consider dropping leaf software where
builds start to hit the address space limit (I expect browsers & such).

Plus the broken FPU implementation as we don't require SSE.

And it *is* our choice to make to not spend time on dead architectures.

Ansgar

  [1]: It also works for other carbon emissions!



Re: 64-bit time_t transition for 32-bit archs: a proposal

2023-06-09 Thread Ansgar
On Fri, 2023-06-09 at 09:22 +, Holger Levsen wrote:
> On Fri, Jun 09, 2023 at 11:49:21AM +0800, Paul Wise wrote:
> > > You mean by somehow refreshing the signatures there?
> > Some ideas for that are here:
> > https://bugs.debian.org/763419
> > https://bugs.debian.org/820423
> 
> interesting. thanks for those pointers!

I did write a prototype once, but haven't touched it for some time. For
example:

https://defi.43-1.org/debian-defi-archive/debian/dists/stretch-backports/InRelease

(It should also work for other things.)

The test key is available from
https://defi.43-1.org/defibrillator-test-key.asc

Ansgar



Re: proposal: dhcpcd-base as standard DHCP client starting with Trixie

2023-06-19 Thread Ansgar
On Mon, 2023-06-19 at 13:35 +0200, Michael Biebl wrote:
> Why does isc-dhcp-client have priority:important to begin with?
> I don't think users care so much about a dhcp client but rather a 
> network configuration system and each network configuration system
> has its own preferred dhcp implementation e.g NetworkManager no
> longer uses isc-dhcp-client by default and systemd-networkd doesn't
> use isc-dhcp-client either.
> 
> So maybe simply demoting the priority of isc-dhcp-client to normal is
> a better route.
> ifupdown already recommends isc-dhcp-client and if ifupdown want's to
> use dhcpcd in the future it could change this recommends.

The priority question isn't the important one. The real question is:

What network configuration system should users end up with (by
default)?

I think this should be NetworkManager for desktop environments and I
personally like systemd-networkd for other environments. In both cases
these replace both ifupdown and isc-dhcp-client.

I also think that installing both ifupdown and NetworkManager on
desktop environments is worse than only NM.

Ansgar



Re: proposal: dhcpcd-base as standard DHCP client starting with Trixie

2023-06-20 Thread Ansgar
On Tue, 2023-06-20 at 05:03 -0400, nick black wrote:
> Simon McVittie left as an exercise for the reader:
> > At the moment I believe the status quo for d-i is that networking is
> > managed by NetworkManager if a desktop task happens to have pulled it in,
> > or ifupdown otherwise? And that seems reasonable (although I personally
> > prefer to set up systemd-networkd on servers).
> 
> i don't wish to start an argument, but just to ask: everyone has
> recommended NetworkManager for workstations. i've been running
> systemd-networkd on everything (servers, laptops, and
> workstations) for several years now, usually in conjunction with
> dnsmasq and wpa_supplicant, and it's been pretty great. what
> does NetworkManager offer that makes it superior to
> systemd-networkd on the desktop (which i'm interpreting to mean
> "for interactive use")?

Managing VPN connections or 802.1X authentication for ethernet
connections is nicer with NetworkManager for desktop computers too.

For computers with static networking (where static might still mean
DHCP) systemd-networkd might be sufficient as well. This might also
include a subset of desktop computers, but I think the better default
is still NM and it is up to the administrator to configure an
alternative.

Ansgar



Re: Policy consensus on transition when removing initscripts.

2023-06-26 Thread Ansgar
On Sun, 2023-06-25 at 11:15 -0700, Russ Allbery wrote:
> Bastian Blank  writes:
> > Sorry no.  Please add a conversion layer that adopts service and
> > maybe other systemd units to initrc if you care about it.  This is
> > what systemd does to adopt existing init scripts, so you can do the
> > opposite.
> 
> I don't think it's useful to tell people who are working on sysvinit
> support how best to do that work.  We decided to not require support
> in packages and put the maintenance burden on the sysvinit
> maintainers.  It feels rude to me to do that and then try to second-
> guess how they choose to do that.

I think sysvinit maintainers looked at such ideas in the past, but
weren't capable to get it to work. That might be a blocker for such
approaches. There was also a GSoC project in 2012 and some other work.

> [...] we should respect it.

But not necessarily much more than the community the thread starter
works with shows towards others.

> > And it can detect easily if no init script exists for a given unit,
> > so no coordination necessary.
> 
> Replaces and Conflicts are required at the very least so that
> upgrades work properly, and I don't see any reason why we shouldn't
> provide instructions to package maintainers to do that smoothly,
> rather than having the init script disappear and then reappear and
> break users who are using unstable.  It's not that difficult to slow
> down a little bit and follow a process.

Neither orphan-sysvinit-scripts now! nor the packages it ships legacy
startup scripts for seem to have Replaces or Conflicts though?

I also don't think we should put anything here on the critical path:
that lead to problems with, for example, systemd-shim which was
promised to get maintained and timely updated...

Less prone to errors than a manual process might be to watch
automatically where legacy startup scripts disappear anyway; it's not
that complicated to do. People tend to forget things.

Ansgar



Re: Developer Workload and Sustainability

2023-06-28 Thread Ansgar
Hi Simon,

On Thu, 2023-06-29 at 00:32 +0900, Simon Richter wrote:
> According to Policy as currently published, systemd units are 
> encouraged, and init scripts are mandatory.

Please stop lying:

+---
| Packages that include system services should include systemd service
| units to start or stop those services. [...]
|
| If the package does not include a service unit (if, for example, no
| one has yet written one), including an init script, as described
| below, to start the service is encouraged.
|
| Packages including a service unit may optionally include an init
| script to support other init systems.
+---[ Policy 9.3.1 ]

And no, this isn't exactly new. Except apparently for you.

The real exhausting thing is people lying, FUD, spreading conspiracy
theories (ominous commercial sponsors (Rothschilds? Soros?)), endless
revisiting of decisions (should we prepare to revert usrmerge because
the attention of ominous commercial sponsors might shift elsewhere?),
claiming systemd is rot/cancer/an infection/the Windows registry and so
on.

I agree that this isn't a technical issue though.


> That's the thing: few people want init scripts. I don't want init
> scripts either.

This very thread only exists because people want init scripts.  I agree
that this is very few people though.

> What I want is an init system that can be maintained inside a community 
> project like Debian without burning out people and endangering the long 
> term viability of the project.

And claiming this isn't possible with systemd is one thing: FUD.

> That is where systemd fails us as a community project, because the 
> environment in which most of development is happening is not
> hospitable to community building efforts, and the complexity of the
> project constitutes a high barrier to entry, which acts as a further
> selection filter for contributors.

More FUD.

> I don't yet see a clear path out of this. The only thing that is
> obvious to me is that this is not a technical problem[3].

I think we should consider removing sysvinit and init scripts from
Debian.  The non-technical cost of having them is too high.

Ansgar



Re: Second take at DEP17 - consensus call on /usr-merge matters

2023-06-28 Thread Ansgar
Hi,

On Wed, 2023-06-28 at 21:37 +0200, Helmut Grohne wrote:
> Among these options, the first has a working prototype (debootstrap),
> but it is unclear how that extends to use of snapshot.d.o and how to
> make it work with debootsnap and debbisect as those tend to use a
> suite name rather than a codename.

debootstrap allows using suite names as well. As their meaning changed
over time, the changes for conditional merged-usr also made debootstrap
extract the Codename from the Release file in case a user specified a
suite name.  These days there are a few other changes that might depend
on the release (identified by the codename).

As pointed out on IRC, this might not work for the combination of
"unstable" and using snapshot.d.o, but in principle that could be
handled by looking at the Release's Date field as well (but, meh, not
sure if we need that).

>  * It becomes a whack-a-mole, since we need to add codenames of every
>derivative to every bootstrapping implementation.

Well, shouldn't it already have become whack-a-mole then?  debootstrap
has the code for many years and is widely used after all... It doesn't
seem to have been a problem in practice as there haven't been
complaints since this was implemented AFAIK.  (Possibly users just
specify --no-merged-usr manually if needed; no idea.)

> Introduction
> 
[...]
> Regardless of what strategy we end up choosing here, we will likely
> keep some of the temporary changes even in the `forky` release to
> accommodate external repositories and derivatives.

There should be no additional work for derivatives.  merged-/usr is not
really something a Debian-based derivative can opt-out of and if some
distribution did so (say because of warnings in dpkg or for other
reasons), it's their own problem...

Ansgar



Re: Developer Workload and Sustainability

2023-06-30 Thread Ansgar
On Fri, 2023-06-30 at 11:10 +0100, Sean Whitton wrote:
> On Wed 28 Jun 2023 at 06:20PM +02, Ansgar wrote:
> 
> > On Thu, 2023-06-29 at 00:32 +0900, Simon Richter wrote:
> > > According to Policy as currently published, systemd units are
> > > encouraged, and init scripts are mandatory.
> > 
> > Please stop lying:
> 
> Please assume good faith.  There is no reason to think Simon would be
> lying about what he thinks is in Policy.  It's a mistake, not a lie.

It's not only about this sentence, but the entire mail.

And it's also not the first instance.

> > The real exhausting thing is people lying, FUD, spreading conspiracy
> > theories (ominous commercial sponsors (Rothschilds? Soros?)), endless
> > revisiting of decisions (should we prepare to revert usrmerge because
> > the attention of ominous commercial sponsors might shift elsewhere?),
> > claiming systemd is rot/cancer/an infection/the Windows registry and so
> > on.
> 
> Perhaps people are spreading conspiracy theories like this about systemd
> outside of Debian.  But people are not doing that on Debian lists, so
> the quoted text from your message seems entirely off-topic.

People, including DDs, do several of the things I listed, including in
this thread.  So it seems entirely on-topic.

Ansgar



Re: Developer Workload and Sustainability

2023-06-30 Thread Ansgar
Hi Sean,

On Fri, 2023-06-30 at 11:14 +0100, Sean Whitton wrote:
> It's understandable that you'd feel frustrated by what seems like a
> misrepresentation of your project's organisation and ethos, but
> please try to avoid this sort of rhetoric.

Fancy idea: how about we ask people to *stop* grossly misrepresenting
other projects instead?

We've had a decade of that about systemd, probably more if one looks at
Pulseaudio, GNOME and other things. Eventually we might reach a point
where we might want to stop that. Sadly I don't see you asking for that
to happen, rather the opposite.

> You can just as well present the git statistics without hiding the
> author's names for rhetorical effect, or asking rhetorical questions,
> and it would keep the temperature of the discussion lower.

Okay, then let's just note that sysvinit has an extreme barrier of
entry, driving most contributors away.  A property it seems to share
with dpkg.

Thus both aren't a sustainable base to build a community distribution
on and we should look at solving that problem, possibly by using
community-friendly alternatives instead.

Does that help? I tried to write in the helpful style the mail I
replied to uses. I skipped stating {sysvinit,dpkg} proponents haven't
done their homework, using {sysvinit,dpkg} incurs technical debt, they
failed us as community projects, it's impossible to onboard people to
them[1], and possibly some other minor points.

Ansgar

  [1]: Of course stating this is fine even when I'm not involved with
   dpkg or sysvinit, as per the mail I replied to.



Bug#1049462: dpkg-source: Ignore __pycache__ by default (was: Re: __pycache__ directories)

2023-08-16 Thread Ansgar
Package: dpkg
Severity: wishlist
X-Debbugs-Cc: Michael Biebl , debian-devel@lists.debian.org

On Mon, 2023-08-14 at 22:09 +0200, Michael Biebl wrote:
> I received a couple of bug reports against packages I (co) maintain 
> regarding this issue and having a quick look, quite a few fail due to
> python scripts being run during the build and creating a __pycache__ 
> directory.

dpkg-source already ignores various paths for the diff when building
source packages, for example ".git", ".svn", "CVS", "*~", ...

Maybe $diff_ignore_default_regex should just be extended to include
"__pycache__" as well and these would be non-issues.

Ansgar



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Ansgar
Hi,

On Fri, 2023-11-10 at 14:45 +0100, Bjørn Mork wrote:
> I guess those 0.61% are run bt the most valuable Debian users out
> there. I'm sorry to not be one of them, but that's the way things
> have become.

Do you have any data to back up this claim?  Or is it just a totally
made up guess and one could just as well claim that those are the least
valuable 0.61%?

Ansgar



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Ansgar
On Fri, 2023-11-10 at 08:48 -0500, Michael Stone wrote:
> On Fri, Nov 10, 2023 at 10:38:13AM +, Luca Boccassi wrote:
> > Per-architecture dependencies are possible though, so maybe starting
> > to add the libssl dependency only on amd64 is a good starting point,
> > and then users of other architectures can request to be added too if
> > it is beneficial for them.
> 
> I haven't seen any objections to the basic idea, so I'm starting here: 
> coreutils 9.4-2 will link to libcrypto if there's a gpl-compatible 
> version available at build time, but I've added the build-dependency as 
> linux-amd64 only for now. That should make it fairly straightforward for 
> people to control the linking on other architectures by controlling 
> their build environment. Going forward, depending on feedback, I can 
> roll this back, expand the build-dep, and/or make the configure option 
> also depend on the arch.

Please avoid producing different results depending on the build
environment. That just results in non-reproducible issues in unclean
environments (suddenly different dependencies, different features,
...).

Please consider to just use openssl everywhere or also explicitly
disable/enable build options per arch. (Personally I would in this case
probably just enable openssl everywhere and recommend people to improve
openssl in case it is slower than the built-in implementation; openssl
is probably use widely enough to warrant that.)

Ansgar



Changing supermajority requirements

2023-11-22 Thread Ansgar
Hi,

the Constitution has several supermajority requirements that seem
excessive to me:

Constitution changes:

+---
| 4.1.2: Amend this constitution, provided they agree with a 3:1 majority.
| [...]
| 5.1.5.3: A Foundation Document requires a 3:1 majority for its supersession. 
[...]
+---

Constitutional changes to my country's constitution only require a 2:1
majority. A 3:1 majority seems excessive for that reason and I would
suggest to change both of these to 2:1 for that reason.

I think a supermajority is fine for changing fundamental rules, so more
than a simple majority is okay.

Developer overriding tech ctte:

+---
| 4.1.4: Make or override any decision authorised by the powers of the
| Technical Committee, provided they agree with a 2:1 majority.
+---

I think this is excessive: if a (simple) majority of developers is
unhappy about some technical decisions, we should probably not do them.
So in my opinion this should be a simple 1:1 majority.

Tech ctte overriding a developer:

+---
| 6.1.4: Overrule a Developer (requires a 3:1 majority).
|
| The Technical Committee may ask a Developer to take a particular technical
| course of action even if the Developer does not wish to; this requires
| a 3:1 majority. For example, the Committee may determine that a complaint
| made by the submitter of a bug is justified and that the submitter's
| proposed solution should be implemented.
+---

I think this should only require a simple majority as well. Or at most
2:1, but I don't think there is a reason for it to be higher than a
simple majority.

Should we look at changing these?

Ansgar



Re: Deprecation of /etc/alternatives?

2023-12-25 Thread Ansgar
On Mon, 2023-12-25 at 09:29 +0200, Teemu Likonen wrote:
> * 2023-12-23 15:34:49+0100, Gioele Barabucci wrote:
> > While we are on the topic of alternatives, I hope to see the
> > maintscript-based /etc/alternatives paradigm deprecated in favor of
> > the package-based X-is-X paradigm introduced by `python-is-
> > python3`.
> 
> I hope not. For example, as a user it is nice to execute a single
> command (update-alternatives) to get a high priority alternative for
> "editor". I use my locally built /usr/local/bin/emacs as the editor.
> 
>     /etc/alternatives/editor -> /usr/local/bin/emacs

Users should just set the VISUAL environment variable.

Alternatives are the wrong tool to set user preferences as they can
only be set globally and only by root.

(editor-is-emacs has the same problem of course...)

Ansgar



Re: Bug#1059745: ITP: cryptsetup-2fa -- 2FA plugin for cryptsetup

2023-12-31 Thread Ansgar
On Sun, 2023-12-31 at 18:49 +0800, YunQiang Su wrote:
> * Package name    : cryptsetup-2fa
>   Version : 0.1
>   Upstream Contact: YunQiang Su 
> * URL : https://github.com/wzssyqa/cryptsetup-2fa/
> * License : BSD-2
>   Programming Lang: SHELL
>   Description : 2FA plugin for cryptsetup
> 
> 2 mthods are supported for 2 FA:
>   - Yubikey Challenge
>   - TPM2 Keypair
> PIN-less is also supported, if the PINs are present in
> /etc/cryptsetup/2fa.conf.
> 
> Since I am not expert of security and encrypt:
> CODE Review is requested here, too.

Is there any reason to not just use systemd-cryptenroll?
It seems to be a more featureful implementation and also doesn't
require storing PINs in plain text in configuration files like
/etc/cryptsetup/2fa/2fa.conf as README instructs users to do here.
Nor does it store plain text credentials in /var/cache.

Ansgar

PS: I also don't understand why cryptsetup-2fa-enroll(1) references
privacyIDEA.



Re: Bug#1060034: ITP: python-openai -- OpenAI Python API library

2024-01-05 Thread Ansgar
On Thu, 2024-01-04 at 21:30 -0500, Mo Zhou wrote:
> Dependency of DebGPT. Will be maintained by deep learning team.
> It will go to the contrib section based on policy section 2.2.2,
> because this API client requires either
> (1) paied access to the proprietary backend
> (2) compatible open-source backend implementations are not yet
>  available in the archive.

I'm confused. Will this package have a "Depends: some-proprietary-
openai-thing"? Can't it talk to a web service providing the API?

Does OpenAI even offer this "some-proprietary-openai-thing" package to
the general public?

Ansgar



Re: Bug#1060034: ITP: python-openai -- OpenAI Python API library

2024-01-05 Thread Ansgar



On Fri, 2024-01-05 at 08:50 -0500, Mo Zhou wrote:
> 
> On 1/5/24 03:48, Ansgar wrote:
> > On Thu, 2024-01-04 at 21:30 -0500, Mo Zhou wrote:
> > > Dependency of DebGPT. Will be maintained by deep learning team.
> > > It will go to the contrib section based on policy section 2.2.2,
> > > because this API client requires either
> > > (1) paied access to the proprietary backend
> > > (2) compatible open-source backend implementations are not yet
> > >   available in the archive.
> > > 
> > > I'm confused. Will this package have a "Depends: some-
> > > proprietary-
> > > openai-thing"? Can't it talk to a web service providing the API?
> No. All the dependencies are: python3-anyio,python3-distro,
> python3-httpx,python3-pydantic,python3-sniffio,python3-tqdm,
> python3-typing-extensions,python3:any.
> Can be satisfied using packages from main section.
> 
> That said, this package does not work at all without (1) paid
> access token from OpenAI (2) open-source alternative

Then the package should be in main.

We do not require external software to be free as well, be that Web
APIs provided by Github, Twitter, or the NVidia firmware required for
Nouveau, microcode or storage/keyboard/sound/printer firmware required
for Linux, ...  We would have to move pretty much everything to contrib
if that was the case.

Ansgar




Policy: should libraries depend on services (daemons) that they can speak to?

2024-01-07 Thread Ansgar
Hi,

I would like to extend Debian Policy on libraries depending on services
(daemons) that they can speak to.

Let me bring to examples, one made up,, one for which I filed a bug
recently. But as far as I can tell this question comes up from time to
time:

1. libpulse0 & friends
--

libpulse0 is a client library for the Pulseaudio server. It doesn't do
much without pulseaudio.

Q: Should libpulse0 have Depends: pulseaudio?

There a similar libraries like libjack0 to talk to Jackd.

Q: Should libjack0 have Depends: jackd1?

The answer should probably be the same for both questions.

If the answer is "yes", this would result in an application that can
output audio via Pulseaudio or Jackd and linking the respective
liubraries pulling in *both* Pulseaudio and Jackd (and possibly other
sound servers as well).

2. python3-secretstorage


python3-secretstorage is a library to talk to a Dbus Secret Store API
implemented by several programs (gnome-keyring, libkf5wallet-bin,
keepassxc).

Q: Should python3-secretstorage Depends: default-dbus-session-bus |
dbus-session-bus?

Q: Should python3-secretstorage Depends: gnome-keyring | ...?

If the answer is "yes", this would result in an application that can
manage credentials via Secret Store to pull in DBus, systemd-sysv,
gnome-keyring, and lots of other stuff, even when one just wants to,
for example, install (public) packages from PyPI (#1058945).

(There is a practical different between Python and C in that Python
makes it easier to handle optional linkage: just try `import foobar`
and handle the import error; proper plugin handling in C is
significantly more work.)

3. The general case
---

Many Debian packages build with a large set of optional features
enabled, thus linking many libraries. I believe that if all libraries
implementing support to talk to some service would mandate installing
said service, then this would result in many installations getting many
more packages, especially when also considering use of software in
containers.  Some service might even conflict with each other, e.g.,
one would probably only want to use a single sound server.

I therefore think that libraries (be it classic C shared object
libraries or Python modules or others) should in general *not* have
Depends: or Recommends: relations on services (DBus services, DBus
itself, daemons, ...).

A quick poll on IRC in #-devel seemed to show a majority of people who
responded agreeing with this.

(This does not have to apply to libnss-* or libpam-* which are not
actually libraries, but plugins.)

Ansgar



Re: 64-bit time_t transition in progress

2024-02-08 Thread Ansgar
Hi,

On Fri, 2024-02-02 at 08:21 -0800, Steve Langasek wrote:
> Once all of these packages have built in experimental and we have identified
> and addressed all adverse interactions with the usrmerge transition, the
> plan is:
> 
>  - dpkg uploaded to unstable with abi=time64 enabled by default[5]

How does this work when a user builds their own software using any
library build with abi=time64? They will still get a 32bit time_t &
others unless they use dpkg-buildflags as well, won't they?

If we already change ABI, why not change this in the toolchain (glibc,
gcc) so also user-build packages use the correct ABI? That was what
happened for other ABI changes like the C++ ABI change as far as I
remember.

Ansgar



Re: Changes to abi=+time64 behavior (was Re: 64-bit time_t transition in progress)

2024-02-09 Thread Ansgar
Hi,

On Fri, 2024-02-09 at 15:24 +, Bill Allombert wrote:
> when introducing a new soname (no just a new package name), then one
> should move to time64 even on i386 ?

If you know all consumers of the package will be using appropriate
compiler flags to get 64-bit time_t, then this is fine.

Otherwise provider and consumer would disagree about ABI and likely not
work fully correct.

> But fundamentally, how do we know how third-party binaries are
> compiled ?

They have to use `dpkg-buildflags` with equivalent ABI settings.

Ansgar



move to merged-usr-only?

2020-11-20 Thread Ansgar
Hi,

I would like to propose to plan to move to support merged-usr-only over
the following releases.  The motivation is bugs like [1] where upstream
developers just use `/usr/bin/rm` (or other binaries, or user scripts
using /usr/bin/bash, or ...) unconditionally; this was already a
motivation to adopt merged-/usr as a default for me.

As far as I know nothing broke catastrophically over the last releases
with merged-/usr.

Alternatively, a team could form that preemptively looks at such issues
and fixes them, ideally upstream.

So a possible idea would be to:

 - For Debian 12 (bookworm): make it mandatory to migrate old systems to
   merged-/usr on upgrade. Possibly by allowing the existing usrmerge
   program to run from the initramfs.

 - For Debian 13 (trixie): packages should no longer install to /bin,
   /sbin, /lib, but to the respective locations under /usr.

Ansgar

  [1]: https://bugs.debian.org/973853



Re: move to merged-usr-only?

2020-11-20 Thread Ansgar
On Fri, 2020-11-20 at 10:19 +0100, Adam Borowski wrote:
> On Fri, Nov 20, 2020 at 09:35:42AM +0100, Ansgar wrote:
> > I would like to propose to plan to move to support merged-usr-only over
> > the following releases.  The motivation is bugs like [1] where upstream
> > developers just use `/usr/bin/rm` (or other binaries, or user scripts
> > using /usr/bin/bash, or ...) unconditionally; this was already a
> > motivation to adopt merged-/usr as a default for me.
> > 
> > As far as I know nothing broke catastrophically over the last releases
> > with merged-/usr.
> 
> Unless you look at dpkg or attempts at speeding up bootstrap.
> 
> See 
> https://salsa.debian.org/glibc-team/glibc/-/commit/49d137c4392cb1144f2313f78f31466aaa169b75
> for an example.
> 
> As far as I know, dpkg maintainers consider usrmerge to be unsupported,
> and trying to make my own NIH deb installer I see why.

The good news here is that shipping bash as /usr/bin/bash (instead of
/bin/bash) solves that problems as dpkg will just install it under
/usr/bin/bash.  No aliasing over symlinks involved.

You also don't need any special handling for anything in /bin, /sbin as
nothing would be installed there (all packages ship the files in /usr).

> > So a possible idea would be to:
> > 
> >  - For Debian 12 (bookworm): make it mandatory to migrate old systems to
> >merged-/usr on upgrade. Possibly by allowing the existing usrmerge
> >program to run from the initramfs.
> 
> Counterproposal: replace debootstrap with mmdebstrap, which is many times
> faster -- and doesn't support usrmerge at all, or at least disable usrmerge
> in debootstrap in default.

That is unrelated.  Also you don't need special usrmerge support once
all packages ship files under /usr.

If you care about speed: not calling sync() way too often would
probably make dpkg significantly faster and possibly reduce the total
time the system is in an incinsistent state (of half-updated packages),
reducing the chance of system crashes breaking stuff ;-)

If you see the aliasing problem as a large issue, we could also try to
ship files in /usr already for bookworm.

> >  - For Debian 13 (trixie): packages should no longer install to /bin,
> >/sbin, /lib, but to the respective locations under /usr.
> 
> Moving stuff with no mandated path is a good idea, yes.  Alas, it's been
> massively complicated by usrmerge being a thing, and thus you can't just
> ship the file in a new location as you risk a path conflict.

You can just ship /usr/bin/bash instead of /bin/bash in an updated
package.

> So let's make it so a canonical path to a file never includes a directory
> symlink; if you insist on /usr/bin/rm then /bin/rm should be
> /bin/{rm->/usr/bin/rm} not /{bin->usr/bin}/rm

Why ship /bin/rm at all? Seems too complicated and just ends in the
half-migrated state that SuSE was in last I checked.

> >   [1]: https://bugs.debian.org/973853
> 
> That's a piece of software for which upstream is Red Hat.  The number of
> people developing on RPM distros is rapidly falling, so this is less and
> less of an issue.

Well, other distributions like Debian, Ubuntu, ... also use merged-/usr 
these days.

Ansgar



Re: move to merged-usr-only?

2020-11-20 Thread Ansgar
On Fri, 2020-11-20 at 11:12 +0100, Ansgar wrote:
> On Fri, 2020-11-20 at 10:19 +0100, Adam Borowski wrote:
> > So let's make it so a canonical path to a file never includes a directory
> > symlink; if you insist on /usr/bin/rm then /bin/rm should be
> > /bin/{rm->/usr/bin/rm} not /{bin->usr/bin}/rm
> 
> Why ship /bin/rm at all? Seems too complicated and just ends in the
> half-migrated state that SuSE was in last I checked.

Oh, and I forgot: I don't think adding new /bin/python3 ->
/usr/bin/python3 symlinks (repeat for everything else in
/usr/{bin,sbin} and possibly some parts of lib) to all packages is a
desirable goal.

One point is *not* having / to know about the contents /usr.  That was
discussed many times in the past and I don't think we need to revisit
it.

Ansgar



Re: move to merged-usr-only?

2020-11-21 Thread Ansgar
On Sat, 2020-11-21 at 02:01 +, Paul Wise wrote:
> On Fri, Nov 20, 2020 at 7:35 PM Simon McVittie wrote:
> 
> > Package-by-package migration touches a large number of packages
> 
> By my count there are 1712 binary packages from X source packages
> installing things outside /etc /usr /var

The goal is to have /bin and /usr/bin to have identical contents.  If
one wishes to achieve that via symlinks for every single binaries, you
not only need symlinks in /bin for binaries previously there, but moved
to /usr/bin, but also for binaries that already are in /usr/bin.

So one would need a new /bin/python3 -> /usr/bin/python3 symlinks in
addition to the /bin/bash -> /usr/bin/bash symlink discussed here. This
affects many more packages.

Starting a 10-year[1] migration for the small part (move bash to
/usr/bin, add /bin/bash -> /usr/bin/bash) symlink, then maybe[2] start
*another* *multi-year) migration after that, and then getting there
isn't a great outlook for me.  (At that time migration to merged-/usr
for the remaining systems would no longer be a worry either way as
presumably only very few installations without merged-/usr would exist
anyway and no migration would be needed, i.e., like the i386 -> amd64
cross-upgrade nobody really worries about any more.)

Ansgar

  [1]: https://lists.debian.org/debian-devel/2018/11/msg00354.html
  [2]: cf. OpenSuSE or suggestions to never do that and instead wait 
   until nobody uses /bin/sh any longer.  If you suggest to do 
   package-by-package migrations, please at least argue why Debian
   wouldn't end in the same in-between state as SuSE.



Re: move to merged-usr-only?

2020-11-21 Thread Ansgar
On Sat, 2020-11-21 at 11:07 +, Paul Wise wrote:
> On Sat, Nov 21, 2020 at 10:33 AM Ansgar wrote:
> 
> > The goal is to have /bin and /usr/bin to have identical contents.
> > So one would need a new /bin/python3 -> /usr/bin/python3 symlinks
> 
> Those seem unnecessary to me, since we have $PATH and nothing should
> be using /bin/python3 at this stage.

We have $PATH, yet there are bugs that come from using `/usr/bin/rm` as
mentioned in my inital mail.  There is no reason to assume that the
same doesn't happen in the other direction.

I've already seen people using `#!/bin/python` as interpreter a long
time ago (before Debian had merged-/usr by default).  One can try to
educate people that this is wrong because some binaries were
historically only available in /usr (due to too small root disk, but a
larger disk for /home), but why bother when we can just get rid of the
problem and even already have done so partly?

Or you can say we ignore that error class for a few more years and only
address half of it and then the other half in X years.

Ansgar



Re: apt ignoring check-valid-until flag

2020-12-17 Thread Ansgar
On Thu, 2020-12-17 at 00:47 +0100, John Paul Adrian Glaubitz wrote:
> On 12/17/20 12:36 AM, Paul Wise wrote:
> >  * snapshot could gain a re-signing service (#763419)
> 
> That would be absolutely awesome. Whom do I throw my money at?

It doesn't seem too complicated to implement and could be developed
independent from snapshot.d.o:

If any Release.gpg/InRelease file is requested:

- Retrieve the original Release+Release.gpg/InRelease files.
- If there is a valid signature from any previous archive key:
  - Generate new signature (Release.gpg/InRelease) and store it in 
some cache.
(Bonus points if this keeps the original signature if possible.)
  - Return the generated Release.gpg/InRelease.
- Otherwise:
  - Return some HTTP error? Or the unmodified Release.gpg/InRelease?

Any other files:

- Redirect to normal snapshot.d.o

Only some storage for recently-requested Release.gpg/InRelease files
would be needed.  The service could run independent from snapshot.d.o
and redirect most requests there.

Maybe the same could be done for archive.d.o?

I might be interested to experiment with this as it seems reasonably
small project to implement. :-)

Ansgar



Re: apt ignoring check-valid-until flag

2020-12-18 Thread Ansgar
On Fri, 2020-12-18 at 01:15 +, Paul Wise wrote:
> On Thu, Dec 17, 2020 at 10:03 AM Ansgar wrote:
> >     (Bonus points if this keeps the original signature if
> > possible.)
> 
> Two separate signatures is possible for Release+Release.gpg, just
> rename the latter to .old, but what can you do for InRelease? Is it
> possible to have multiple signatures in one blob of signing data? Is
> it possible to take an existing signature and add a second one to it?
> Can the same thing be done for Release.gpg? Do apt, gpg and gpgv cope
> with this sort of thing?

We do that for stable's InRelease and Release.gpg: it is signed by keys
held by ftp-master and stable release team and we merge the signatures.
For detached signatures you can even just concatenate two ascii-armored
signatures and GnuPG will find all signatures (we did that for older
releases). InRelease requires merging them.

For GnuPG to check multiple signatures they must all use the same
message digest (i.e. all signatures must use SHA-256, not one SHA-256
and another SHA-512 or similar), but for a signature-refreshing service
we probably don't want new signatures for old Release files to use MD5
or SHA-1 even when the old signature did.

For our use case consumers must accept when /any/ signature is valid
for this (not /all/!); this doesn't make it less secure as we just
require a single signature anyway so an attacker having one could drop
additional signatures.  Other applications might want to explicitly
require more than one valid signature.

Ansgar



Bug#978636: move to merged-usr-only?

2020-12-29 Thread Ansgar
Package: tech-ctte
X-Debbugs-Cc: debian-devel@lists.debian.org

Hi,

as suggested in [1], I would like to see Debian to move to support
only the merged-usr filesystem layout.  This would simplfy things for
the future and also address the problem with installing files under
aliased trees that dpkg has to do for both variants to be supported.

merged-usr has been the default for new installations since the last
release and (as far as I am aware) no world-breaking bugs have
happened since; some environments such as buildd chroots still do not
use merged-usr.

I would like to ask the technical committee to decide whether we want
to move to merged-usr-only.  It seems to be a case of overlapping
jurisdiction (6.1.2 in the constitution).

I'm not asking the committee to decide on a concrete technical
implementation for this.  Obviously we would need to also implement a
migration path for legacy installations for a move to merged-usr-only
to be implemented.  This also isn't relevant for Debian 11 (bullseye),
but I would like to have enough time in the Debian 12 (bookworm)
cycle.

Ansgar

[1]: https://lists.debian.org/debian-devel/2020/11/#00232
 continued in December: https://lists.debian.org/debian-devel/2020/12/#00386



Re: Making Debian available, non-free promotor

2021-01-15 Thread Ansgar
On Tue, 2021-01-12 at 19:30 +0100, Geert Stappers wrote:
> Ah, yes I also wonder how much the world will improve
> if non-free would be split in non-free and non-free-firmware.
> Currently is non free firmware a hugh promoter of non-free in
> /etc/apt/sources.list

I proposed moving non-free firmware to a new non-free-firmware some
time ago[1], but then it seemed like there was no consensus on this
which I though we had before.  Some people wanted non-free/firmware
instead (different name), wanted packages to start appearing in
multiple components (non-free and non-free[/-]firmware), wanted
additional categories (e.g. non-free/doc for Free Software Foundation
stuff), wanted non-free drivers as well, wanted major changes how
components work (which might imply incompatible changes for mirroring
tools and so on), ...

As I wasn't motivated for a new topic for long discussions in addition
to systemd and usrmerge nor for spending much time on implementing
more support for (mostly?) non-free stuff I left things as they are.
(Nor would I be too motivated to then read "but it's wrong" for many
years later as with the other topics...)

Ansgar

  [1]: 
https://lists.debian.org/msgid-search/87ziwfauw3@deep-thought.43-1.org



Re: Making Debian available

2021-01-15 Thread Ansgar
On Fri, 2021-01-15 at 15:30 +, Jeremy Stanley wrote:
> On 2021-01-15 12:11:06 +0100 (+0100), Emanuele Rocca wrote:
> [...]
> > So the current situation is that we make an active effort to
> > produce two different types of installation media: one that works
> > for all users, and one broken for most laptops.
> [...]
> 
> The one you say "works for all users" doesn't "work" for me because
> it contains proprietary closed-source software I don't want.

Then don't install them?

Debian's Social Contract states "We encourage CD manufacturers to read
the licenses of the packages in these areas [non-free & contrib] and
determine if they can distribute the packages on their CDs."  Maybe we
should do that for the CD images we manufacture? :)

Ansgar



Re: Making Debian available, non-free promotor

2021-01-29 Thread Ansgar
Yao Wei writes:
> At then, we can let users download the missing drivers from the
> generated webpage, like the following:
>
>> Additional packages for the network interface
>> ==
>>
>> As Debian is the universal operating system, we consider both users
>> and free software important.  However, the network device of the
>> computer requires firmware that is not available in the installation
>> media, because these are considered non-free according to our
>> guideline.
>> 
>> We encourage you to get devices that respects your freedom.

Should this message also be shown when non-free firmware is preinstalled
in the system for educational purposes?

Or do devices that have pre-installed non-free firmware respect the
user's freedom?  As long as the users doesn't look and doesn't hear
about it, it's not there after all (two-wise-monkey-free / FSF-free?).
The best example probably are TiVo devices which don't have
user-upgradable firmware and thus should be called "freedom respecting"
;-)

We could also recommend users to just install Debian in a VM which
abstracts away the hardware, e.g., in a VM under Windows.  This also
respects user freedom in the same sense as above as Windows is usually
preinstalled.  (And AFAIU on modern systems Debian will usually run in
some partition anyway and not have full hardware access, so it already
runs in a "VM" of sorts.)

>> Meanwhile, you can either try another device that's known good using
>> only free software, or download the .deb package(s) linked below and
>> put into the same place this file resides:
>>
>> ---
>> 
>> firmware-iwlwifi
>> - for: Network Controller: Intel Corporation Wireless 8265 / 8275
>> - https://packages.debian.org/bullseye/firmware-iwlwifi

iwlwifi does work fine with just free software just like hard disks and
similar?

Ansgar



Re: Which package is responsible for setting rlimits?

2021-02-01 Thread Ansgar
Simon Richter writes:
> On Mon, Feb 01, 2021 at 12:30:30PM -0500, Sam Hartman wrote:
>
>> It sounded like you were proposing that pam detect if systemd was pid1
>> and if so, then do what it does today otherwise inherit limits by
>> default.
>
> PAM itself doesn't need to detect anything, the individual modules are
> responsible for checking whether their requirements are met, and do
> something safe if not.
>
> The way I see it, we want a pam_systemd module that is responsible for
> applying *all* settings configured in systemd units, and that is kept in
> sync with the unit file parser, and the pam_limits module to handle the
> non-systemd setups.

Systemd doesn't manage much of the "process forked from ssh that is the
user's process", so there is no place to configure such limit.

Also:

+---
| To raise the user's limits further, the available configuration
| mechanisms differ between operating systems, but typically require
| privileges. In most cases it is possible to configure higher per-user
| resource limits via PAM or by setting limits on the system service
| encapsulating the user's service manager, i.e. the user's instance of
| user@.service.
+---[ man:systemd.exec(5) ]

So changing this limit for user sessions is currently out-of-scope for
systemd and handled by pam_limits on Debian (or whatever else).

Ansgar



Re: Which package is responsible for setting rlimits?

2021-02-01 Thread Ansgar
Hi Simon,

I think there are three aspects in your mail: the behavior of
pam_limits, defaults for resource limits on legacy init systems and some
discussion of sysvinit scripts that seems unrelated:

1. Resources limits set for a system service (e.g. sshd) might not be
   appropriate for a user session opened by the system service.

   Debian's PAM patch seems to be targeted at dealing with this by
   defaulting to restore the "original" values (taken from a process
   assumed to be unconstrained, here pid 1): sshd might have resource
   limits enforced, but the user session calls PAM which lifts the
   limits by default.

   You argue this might not be a good idea as pid-1's limits are
   somewhat arbitrary (in particular when systemd is pid-1) and it might
   be a good idea to consider using some other default.

   Possibilities seem to include:

   (a) Continue as is.

   The limits applied by pam_limit by default might not be
   reasonable as they are intended for systemd's pid-1, not
   arbitrary other processes.

   (b) Have pam_limit query some other source for default values, for
   example get the DefaultLimit*= values systemd uses by default for
   system services or having pam_limit use some default values
   (i.e., duplicating the logic that sets DefaultLimit*= in
   systemd).

   (c) Have some way to query the kernel's initial resource limits and
   use that as default (but doing so would just imply (2.) below as
   this happens on sysvinit systems as far as I understand).

   (d) Have pam_limit default to just inheriting resource limits, that
   is revert the Debian-specific patch.  If an admin configures
   resource limits for system services that provide login services,
   but are not appropriate for user sessions, then the admin is
   responsible for increasing those by explicitly configuring
   pam_limits to raise them.

   As long as sshd, getty, gdm, ... have no explicit (lower)
   resource limits configured, the inherited limits would be
   reasonable by default.

   If sshd, getty, gdm, ... have similar resource limits on
   non-systemd systems, inheriting limits would also be reasonable
   to do there.

   I think (b) or (d) would be better than (a) which might still be
   better than (c).

2. The defaults for resource limits on non-systemd systems are no longer
   a good default and should be changed.

   This is probably true for both for system services and user
   processes, so somewhat independent from the behavior of pam_limits.

3. Init scripts cannot safely be called in arbitrary environments which
   can have arbitrary resource limits not appropriate for the service.

   To be safe, init scripts would need to explicitly set resource limits
   when invoked.  This is also just another bit of the environment that
   would need to be explicitly sanitized, but usally isn't.

   But this is unrelated to what pam_limits does: even when an admin
   *explicitly* configures lower limits for user session, these limits
   *shouldn't* be applied to system services that just happen to be
   (re)started in a user session.

Ansgar



Re: Which package is responsible for setting rlimits?

2021-02-02 Thread Ansgar
Hi, Simon,

Simon Richter writes:
> For systemd, resource limits should not be set by pam_limits, because
> pam_limits reads /etc/security/limits.conf, while the systemd ecosystem
> stores resource limits in the unit files.

Please read [1].

  [1]: https://lists.debian.org/debian-devel/2021/02/msg00014.html

> Teaching pam_limits to interrogate systemd would create a functional
> dependency between the PAM and systemd packages where we could only update
> them in lock step, so that would be a maintenance nightmare.

This is wrong.  Just like we don't have to update consumers and
producers of other things like /etc/resolv.conf in lock step.  Or users
and providers of libc.

>> 2. The defaults for resource limits on non-systemd systems are no longer
>>a good default and should be changed.
>
>>This is probably true for both for system services and user
>>processes, so somewhat independent from the behavior of pam_limits.
>
> My expectation for a non-systemd system is that I have to explicitly
> configure anything but "unlimited", and I will do so if necessary.

So sysvinit should set the resource limits as high as possible?  Seems
like a reasonable change to sysvinit (as it doesn't do so currently as
far as I know; the thread came from those limits too low on sysvinit
systems after all).

> tl;dr: pam_limits is for non-systemd setups, and only gets in the way of
> users configuring limits according to systemd.resource-limits(5).It should
> not do anything if pid 1 is systemd so it doesn't interfere, and be split
> off into a separate package along with its configuration file to reduce
> confusion.

This doesn't seem correct.

> The behaviour of copying rlimits from pid 1 in the absence of
> explicit configuration is hacky but good enough for the other init
> systems.

And neither this as then we wouldn't have gotten this thread at all
which is about those defaults being too low for some applications.

Ansgar



Re: Proposal: plocate as standard for bookworm

2021-02-09 Thread Ansgar
"Steinar H. Gunderson" writes:
> On Sat, Feb 06, 2021 at 10:16:29PM -0800, Josh Triplett wrote:
>> Furthermore, any mechanism they use to configure one of them
>> (e.g. for privacy or performance reasons) will not control the other,
>> and again they may well be unaware of the existence of the other one.
>
> I'm not sure what privacy reasons you're referring to? I'm not aware that
> neither mlocate/plocate nor e.g. tracker will leak data across users.

If you have an encrypted /home (or /home/), but unencrypted
/var/lib/plocate, you leak information about the encrypted files.

File indexing services run as a user would at least write only to
/home/ which would be encrypted.

Admittedly Debian's other defaults like making every file in $HOME
world-readable by default are very unfriendly too on both multi-user
systems (obviously) and single-user systems where suddenly even the
"nobody" user has access to lots of interesting files...

Ansgar



Re: a proper-unix meta package (Re: Proposal: plocate as standard for bookworm)

2021-02-10 Thread Ansgar
On Wed, 2021-02-10 at 13:38 +0100, Adam Borowski wrote:
> Define "proper Unix"...

A system including Emacs.  So we would need emacs at Priority: standard
or even important or required :]

Ansgar



Re: Questioning debian/upstream/signing-key.asc

2021-03-26 Thread Ansgar
On Fri, 2021-03-26 at 09:06 -0700, Russ Allbery wrote:
> I'm not all that familiar with the intended semantics of OpenPGP key
> expirations, but intuitively I think a signature made before the
> expiration should be considered valid, even if the key has now
> expired and thus shouldn't be used to make new signatures.

How would you know that the signature was made before the key expired?

Other systems (e.g. signed executables on Windows) have a trusted third
party sign the timestamp for that, but OpenPGP doesn't do so.

Ansgar



Re: Tone policing by a member of the community team [Was, Re: Statement regarding Richard Stallman's readmission to the FSF board]

2021-04-06 Thread Ansgar
Hi Steve,

On Tue, 2021-04-06 at 11:15 -0700, Steve Langasek wrote:
> the rules of civilized discourse do not apply when dealing with
> individuals who are external to your civilization.

Please take your imperialist ideology elsewhere.

Thanks,
Ansgar



Re: Tone policing by a member of the community team [Was, Re: Statement regarding Richard Stallman's readmission to the FSF board]

2021-04-06 Thread Ansgar
On Tue, 2021-04-06 at 22:07 +0200, Pierre-Elliott Bécue wrote:
> On this point I disagree because Steve never posted that publicly,

So if I sent a private mail "fuck off you piece of shit" as a reply to
a message that is okay as long as I don't send it to the public mailing
list?

Either it's acceptable or it's not acceptable, both as a private and
public reply.

Ansgar



Re: Thanks and Decision making working group

2021-04-20 Thread Ansgar
Philipp Kern writes:

> On 2021-04-20 10:59, Adrian Bunk wrote:
>> I would suggest to replace the option of shortening the discussion
>> period with the possibility of early calling for a vote after a week
>> that can be vetoed by any developer within 24 hours. This would ensure
>> that shorter discussion periods would only happen when there is
>> consensus that nothing is left to be discussed.
>
> But K developers could have stopped this, right? (Per 4.2.2.3.) Now
> the constitution feels quite heavyweight on that ("sponsoring a
> resolution"), but I'd be surprised if the DPL would not have taken
> back the decision in that case (4.2.2.5).

How does that even work?  The next clause is:

+---
| If the decision is put on hold, an immediate vote is held to determine
| whether the decision will stand until the full vote on the decision is
| made or whether the implementation of the original decision will be
| delayed until then.
+---[ Debian Constitution, 4.2.2.4 ]

Which leaves open quite a bit, e.g, how long would the voting period for
the immediate vote be?  The regular voting period is two weeks after
all...

Ansgar



  1   2   3   4   5   6   >