Bug#897277: Bug#474540: ext[23] should not be marked "essential"

2018-05-01 Thread Theodore Y. Ts'o
On Tue, May 01, 2018 at 05:22:34PM +0200, Helmut Grohne wrote:
> Hi Ted,
> 
> I do want to ensure that this has gone through well ahead of the
> transition freeze. Batching up such changes to the last moment makes
> releasing buster on time harder. Even though the chance of breaking
> something is low, it is not exactly equal zero. I want to have enough
> time to fix things up in the unexpected case. Do you think there'll be a
> minor release within May? That'd be fine from my point of view.

The transition freeze is scheduled for January 12, 2019.  That's a
*long* time from now.  This is why I'm puzlled by the urgency.

It's likely we'll have a minor release in the next month --- so by
early June at the latest; probably during May.

Regards,

- Ted



Bug#474540: ext[23] should not be marked "essential"

2018-05-01 Thread Helmut Grohne
Hi Ted,

Thank you for your quick reply.

On Tue, May 01, 2018 at 10:16:40AM -0400, Theodore Y. Ts'o wrote:
> I just didn't think it was worth it to do an upload just with the
> priority change; my plan was to batch it with some other bug fixes in
> the next e2fsprogs minor release.  Is there a reason why you believe
> it would be better to accelerate getting this pushed out to testing?

I don't think there is a need to hurry just yet, but with my proposed
backup plan it would have still been at least four weeks until the
change would hit testing.

I do want to ensure that this has gone through well ahead of the
transition freeze. Batching up such changes to the last moment makes
releasing buster on time harder. Even though the chance of breaking
something is low, it is not exactly equal zero. I want to have enough
time to fix things up in the unexpected case. Do you think there'll be a
minor release within May? That'd be fine from my point of view.

Helmut



Bug#897277: [ty...@mit.edu: Re: Bug#474540: ext[23] should not be marked "essential"]

2018-05-01 Thread Theodore Y. Ts'o
--- Begin Message ---
On Tue, May 01, 2018 at 10:29:19AM +0200, Helmut Grohne wrote:
> 
> On Sun, Apr 15, 2018 at 07:15:45PM +0200, Helmut Grohne wrote:
> > Thus I ask Ted to drop the Essential flag now. I am attaching a patch
> > that replaces Essential: yes with XB-Important: yes.
> 
> It seems that you presently lack the time to implement this change. The
> bug log indicates that merely replacing Essential with XB-Important is
> uncontroversial (messages #92 and #102). Thus I propose NMUing e2fsprogs
> with the patch I sent earlier. Unless I hear from you, I'll move forward
> with a delayed NMU in a week.

I just didn't think it was worth it to do an upload just with the
priority change; my plan was to batch it with some other bug fixes in
the next e2fsprogs minor release.  Is there a reason why you believe
it would be better to accelerate getting this pushed out to testing?

Cheers,

- Ted
--- End Message ---


Bug#474540: ext[23] should not be marked "essential"

2018-05-01 Thread Theodore Y. Ts'o
On Tue, May 01, 2018 at 10:29:19AM +0200, Helmut Grohne wrote:
> 
> On Sun, Apr 15, 2018 at 07:15:45PM +0200, Helmut Grohne wrote:
> > Thus I ask Ted to drop the Essential flag now. I am attaching a patch
> > that replaces Essential: yes with XB-Important: yes.
> 
> It seems that you presently lack the time to implement this change. The
> bug log indicates that merely replacing Essential with XB-Important is
> uncontroversial (messages #92 and #102). Thus I propose NMUing e2fsprogs
> with the patch I sent earlier. Unless I hear from you, I'll move forward
> with a delayed NMU in a week.

I just didn't think it was worth it to do an upload just with the
priority change; my plan was to batch it with some other bug fixes in
the next e2fsprogs minor release.  Is there a reason why you believe
it would be better to accelerate getting this pushed out to testing?

Cheers,

- Ted



Bug#474540: ext[23] should not be marked "essential"

2018-05-01 Thread Helmut Grohne
Control: clone -1 -2
Control: retitle -2 decrease e2fsprogs' Priority: required
Control: tags -2 - patch
Control: block -2 by -1

Hi Ted,

On Sun, Apr 15, 2018 at 07:15:45PM +0200, Helmut Grohne wrote:
> Thus I ask Ted to drop the Essential flag now. I am attaching a patch
> that replaces Essential: yes with XB-Important: yes.

It seems that you presently lack the time to implement this change. The
bug log indicates that merely replacing Essential with XB-Important is
uncontroversial (messages #92 and #102). Thus I propose NMUing e2fsprogs
with the patch I sent earlier. Unless I hear from you, I'll move forward
with a delayed NMU in a week.

I'm also splitting this bug in accordance with the discussion. The new
bug -2 is about changing the Priority field and I don't see it being
fixed soon, because I don't see consensus here and I don't intend to
work on this part myself. Possibly we should tag it wontfix or moreinfo
for the time being.

Helmut



Bug#474540: ext[23] should not be marked "essential"

2018-04-15 Thread Helmut Grohne
Control: tags -1 + patch

On Mon, Aug 21, 2017 at 08:42:16AM -0400, Theodore Ts'o wrote:
> On Mon, Aug 21, 2017 at 09:34:20AM +0200, Andreas Henriksson wrote:
> > Step 1: Essential: yes -> Important: yes

You know I've picked up the work to make this happen. To that end, I
inspected the archive and figured which packages need dependencies on
e2fsprogs and filed bugs. Those bugs can be viewed at
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=nonessentiale2fsprogs;users=helm...@debian.org
and at the time of this writing 100 / 132 are fixed. Of the remaining 32
bugs, 11 are minor (i.e. not adding a dependency but
recommends/suggests) and 7 are pending. Thus our upper bound for missing
dependencies is 21 packages at present.

Thus I think it is time to move forward.

> > Step 2: Priority: required -> Priority: important

> I think we're converging.  I'm not entirely convinced about Step 2 for
> buster.  I am just concerned it's going to cause more disruption than
> might be first expected --- and finding the possible gotchas is going
> to be hard until we do a stable release of Buster.

I think we agree that we don't agree on step 2 at the moment. I thus ask
for removing step 2 from the scope of this bug (the and the bug title
doesn't say anything about priority either). If someone wants to pursue
step 2, please file (or clone) a new bug.

Thus I ask Ted to drop the Essential flag now. I am attaching a patch
that replaces Essential: yes with XB-Important: yes.

The implications will be:
 * debootstrap will continue to install e2fsprogs in all variants (due
   to priority). Other bootstrap tools may do without e2fsprogs. The
   latter aspect is the one I'm after.
 * apt and others will refuse removing e2fsprogs (due to XB-Important)
 * Packages that use something from e2fsprogs without declaring a
   dependency will be eligible for a bug of severity serious.

This change really has quite low chance of negatively impacting
anything. Once Essential: yes is dropped, I'll bump the severity of the
remaining 21 bugs to serious.

Helmut
diff --minimal -Nru e2fsprogs-1.44.1/debian/changelog 
e2fsprogs-1.44.1/debian/changelog
--- e2fsprogs-1.44.1/debian/changelog   2018-04-10 17:04:36.0 +0200
+++ e2fsprogs-1.44.1/debian/changelog   2018-04-15 19:00:01.0 +0200
@@ -1,3 +1,11 @@
+e2fsprogs (1.44.1-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Demote e2fsprogs from Essential: yes to XB-Important: yes. (Closes:
+#474540)
+
+ -- Helmut Grohne   Sun, 15 Apr 2018 19:00:01 +0200
+
 e2fsprogs (1.44.1-2) unstable; urgency=medium
 
   * Fix e2image handling of e2i files on big endian systems
diff --minimal -Nru e2fsprogs-1.44.1/debian/control 
e2fsprogs-1.44.1/debian/control
--- e2fsprogs-1.44.1/debian/control 2018-04-10 17:04:36.0 +0200
+++ e2fsprogs-1.44.1/debian/control 2018-04-15 18:59:55.0 +0200
@@ -187,7 +187,7 @@
  libraries.
 
 Package: e2fsprogs
-Essential: yes
+XB-Imporant: yes
 Pre-Depends: ${shlibs:Depends}, ${misc:Depends}, libblkid1, libuuid1
 Multi-Arch: foreign
 Suggests: gpart, parted, fuse2fs, e2fsck-static


Bug#474540: ext[23] should not be marked "essential"

2017-08-21 Thread Andreas Henriksson
On Mon, Aug 21, 2017 at 08:42:16AM -0400, Theodore Ts'o wrote:
[...]
> So what I am currently thinking might be a viable first step is to
> split out the translations for e2fsprogs and transition from
> Essential: yes to Essential: no, since there is no controversy over
> that step.  We can then decide whether or not it's worthwhile to try
> to make the Priority: required -> Priority -> important transition
> during Buster or not.
> 
> Sounds fair?

Yes! Thanks for the quick feedback and sorry for any confusion.
Looking forward to see your changes uploaded in hopefully not
too distant future.

If you don't, I'll likely soon start the debian-devel discussion
about more minbase packages splitting their locales out and see
what people think about it and see if we can attract the attention
of atleast the top savings package maintainers.

Regards,
Andreas Henriksson



Bug#474540: ext[23] should not be marked "essential"

2017-08-21 Thread Theodore Ts'o
On Mon, Aug 21, 2017 at 09:34:20AM +0200, Andreas Henriksson wrote:
> Your 1) and 2) is what I initially called "step 1" and "step 2" to try
> to indicate they are to separate distincts steps.
> 
> Step 1: Essential: yes -> Important: yes
> Step 2: Priority: required -> Priority: important
> 
> > 
> > We can make the first change without the second.  The first allows us
> > packages to declare dependencies.  The second shrinks the minbase
> > size.  And that's why I was asking the question what problem exactly
> > that we being solved here.  Since if it's just the dependency issue,
> > we can change Essential to No.
> 
> I'm perfectly happy if we just do step 1 for buster (upcoming release).
> 
> I think it would be nice to atleast keep the option open for discussion
> of doing also step 2 later (in Bullseye?, release after Buster -- about
> 4-5 years from now), if you think doing it for buster is too agressive.
> 
> The main reason for doing 'step 2' would be to make 'minbase' a "slim"
> version of debian "out of the box" (without tweaks needed. Basically
> same motivation as for splitting out the locales of minbase packages.)

I think we're converging.  I'm not entirely convinced about Step 2 for
buster.  I am just concerned it's going to cause more disruption than
might be first expected --- and finding the possible gotchas is going
to be hard until we do a stable release of Buster.

That being said, it's going to be true for no matter when we do it,
and it's early in the Buster cycle, so I do understand the "what the
heck, let's just do it now" argument.  I'm just not 100% sure I find
it super-compelling.

However, splitting out the locales for the minbase will save
*substantially* more space for a "slim" version of Debian, and we can
**definitely** do it now, for the Buster release.

So what I am currently thinking might be a viable first step is to
split out the translations for e2fsprogs and transition from
Essential: yes to Essential: no, since there is no controversy over
that step.  We can then decide whether or not it's worthwhile to try
to make the Priority: required -> Priority -> important transition
during Buster or not.

Sounds fair?

- Ted



Bug#474540: ext[23] should not be marked "essential"

2017-08-21 Thread Andreas Henriksson
Hi,

On Sun, Aug 20, 2017 at 05:40:20PM -0400, Theodore Ts'o wrote:
[...]
> The normal Debian Docker images uses --variant=minbase.  So changing
> e2fsprogs from Priority: required to Priority: important **will**
> change the Docker image.  Ref:
> 
> https://github.com/moby/moby/blob/master/contrib/mkimage.sh

I thought tianon did the official images. Just goes to show how
out of the loop I am with docker these days.

I'd recommend they add a '--include=mount,fdisk,e2fsprogs' to their
debootstrap command for the future (in their non-slim version(s)?) if they
want to be sure to preserve the tools in their base image for the
future.

[...]
> 
> I think you're entangling two different changes:
> 
> 1) Essential: yes->no
> 2) Priority: required->important
> 
> No?

Yes.

Your 1) and 2) is what I initially called "step 1" and "step 2" to try
to indicate they are to separate distincts steps.

Step 1: Essential: yes -> Important: yes
Step 2: Priority: required -> Priority: important

> 
> We can make the first change without the second.  The first allows us
> packages to declare dependencies.  The second shrinks the minbase
> size.  And that's why I was asking the question what problem exactly
> that we being solved here.  Since if it's just the dependency issue,
> we can change Essential to No.

I'm perfectly happy if we just do step 1 for buster (upcoming release).

I think it would be nice to atleast keep the option open for discussion
of doing also step 2 later (in Bullseye?, release after Buster -- about
4-5 years from now), if you think doing it for buster is too agressive.

The main reason for doing 'step 2' would be to make 'minbase' a "slim"
version of debian "out of the box" (without tweaks needed. Basically
same motivation as for splitting out the locales of minbase packages.)

Regards,
Andreas Henriksson



Bug#474540: ext[23] should not be marked "essential"

2017-08-20 Thread Theodore Ts'o
On Sun, Aug 20, 2017 at 03:08:32PM +0200, Andreas Henriksson wrote:
> > > step 1: Switch from Essential: yes to Important: yes
> > > 
> > > This will not be much of a change in practise. Higher level tools
> > > like apt etc will still not want to uninstall the package, but
> > > you can now uninstall it using dpkg without getting the 
> > > 'are you really sure you know what you're doing' question.
> > > I'd say the most important difference is that according to
> > > debian-policy (which doesn't know anything about Important: yes)
> > > the package is now no longer Essential and thus other packages
> > > are now allowed to add dependencies where needed.
> > 
> > I think you mean "don't know anything about Required: yes" above, but
> 
> No, AFAIK there's no such this as "Required: yes". Only
> "Essential: yes" and (the newish) "Important: yes".
> 
> I guess you're mixing this up with the "Priority: ..." field because
> of the somewhat confusing naming.

Sorry, I meant to type "Priority: Required".  We can do Essential: Yes
/ Priority: Required and I think that's safe.  It's dropping Priority:
down to Important is where things get interesting

> > 
> > It's not just the builders; it will also be the Debian Docker image.
> 
> I haven't checked, but I would assume the (normal) debian docker images
> are built from a normal default debootstrap, which would include
> "Priority: important" packages and thus e2fsprogs would still be there.

The normal Debian Docker images uses --variant=minbase.  So changing
e2fsprogs from Priority: required to Priority: important **will**
change the Docker image.  Ref:

https://github.com/moby/moby/blob/master/contrib/mkimage.sh

> By making a package Essential: yes you (via debian-policy) forbit
> packages to declare a dependency and thus the relationships between
> packages can not easily be tracked. At the same time deinstalling an
> Essential: yes package is just one additional step (answering one
> additional confirmation question).

I think you're entangling two different changes:

1) Essential: yes->no
2) Priority: required->important

No?

We can make the first change without the second.  The first allows us
packages to declare dependencies.  The second shrinks the minbase
size.  And that's why I was asking the question what problem exactly
that we being solved here.  Since if it's just the dependency issue,
we can change Essential to No.

- Ted



Bug#474540: ext[23] should not be marked "essential"

2017-08-20 Thread Andreas Henriksson
Hello Theodore Ts'o,

This mail dedicated to the potential confusion about Essentialness
and Priority.

On Sat, Aug 19, 2017 at 06:51:11PM -0400, Theodore Ts'o wrote:
> On Fri, Aug 18, 2017 at 01:21:57PM +0200, Andreas Henriksson wrote:
> > I would like to breath some life into this bug report. I've been
> > collecting information/brainstorming-ideas about minimal debian
> > installation (debootstrap --variant=minbase) on
> > https://wiki.debian.org/BusterPriorityRequalification
> > 
> > The e2fsprogs was one of the packages that where questioned if
> > it really needs to be Essential: yes / Priority: required.
> > It is also one of the largest packages in the minbase set.
> 
> There is one thing I can very quickly and easily do to to improve the
> minbase set.  We can significantly reduce the size of e2fsprogs (by
> more half) by simply moving all of its locale files to a new package,
> e2fsprogs-l10n.  That shrinks installed size of e2fsprogs from 2825k
> to 1330k.
> 
> > step 1: Switch from Essential: yes to Important: yes
> > 
> > This will not be much of a change in practise. Higher level tools
> > like apt etc will still not want to uninstall the package, but
> > you can now uninstall it using dpkg without getting the 
> > 'are you really sure you know what you're doing' question.
> > I'd say the most important difference is that according to
> > debian-policy (which doesn't know anything about Important: yes)
> > the package is now no longer Essential and thus other packages
> > are now allowed to add dependencies where needed.
> 
> I think you mean "don't know anything about Required: yes" above, but

No, AFAIK there's no such this as "Required: yes". Only
"Essential: yes" and (the newish) "Important: yes".

I guess you're mixing this up with the "Priority: ..." field because
of the somewhat confusing naming.

> yes, it seems largely safe to do this.  Given that Debian policy
> states that packages should not be made "Essential" without a
> discussion on debian-devel, I'd probably want to also raise this as a
> proposal on debian-devel before changing "Essential: yes" to
> "Essential: no".

Not sure the reverse of making something Essential automatically applies
but sure a debian-devel discussion might be useful, if not only to
increase actual debian development related mail on the list.

(Fwiw, I recently sent out a discussion related to src:util-linux and
lowering the Essential-ness of the packages which resulted in very
little useful discussion. Doesn't seem too many people in genreral
are interested in the core stuff.)

> 
> > step 2: Dowgrade from Priority: required to Priority: important
> > 
> > This means e2fsprogs will still be part of every normal install,
> > just not part of 'debootstrap --variant=minbase' (e.g. buildd chroots
> > and other specialized systems).
> > Pitfalls with this change would be that every package who needs
> > something from e2fsprogs (eg. lsattr, chattr) during build phase
> > must have a build-dependency on e2fsprogs or they will FTBFS.
> > Given we're still early in the Buster development cycle, I would
> > personally think this change is pretty safe to do now but depends
> > on how much fuzz you're willing to stir up. I'd like to offer
> > my help in fixing this (by filing bug reports and doing non-maintainer
> > uploads where needed).
> 
> It's not just the builders; it will also be the Debian Docker image.

I haven't checked, but I would assume the (normal) debian docker images
are built from a normal default debootstrap, which would include
"Priority: important" packages and thus e2fsprogs would still be there.

I would expect only the 'slim' variant to be built from
--variant=minbase and anyone using slim would ofcourse expect that it
contains less software than the normal variant.

> And while it might be fair to say that containers won't need "mount",
> it's somewhat more likely that there might be build containers that
> will assume the existence of mke2fs.
> 
> I'm not sure how to address that, since at least with debian packages
> it's a relatively closed universe so we would discover problems as the
> reproducible build system tried to rebuild various packages, for
> example.  But I could imagine so Docker container designed to rebuild
> cyanogen or AOSP (for example) that would be assuming e2fsprogs to be
> present, and would blow up as a result.

Apart from my above comment, the best we can do is to document the
change in a high-level understandable way in the Release Notes.
While not everyone reads the release notes, hopefully atleast the people
making downstream redistributions does Then they can relay the
information to their users in their most suitable way.

> 
> This is one of the reasons why, if the goal is to shrink the size of
> minbase shrinking e2fsprogs by removing all of the locale files is
> probably the biggest bang for our buck that we can do right away, and
> is guaranteed to be 100% safe --- since there won't be any users of
>

Bug#474540: ext[23] should not be marked "essential"

2017-08-20 Thread Andreas Henriksson
Hello,

On Sat, Aug 19, 2017 at 09:15:24PM -0400, Theodore Ts'o wrote:
> On Sun, Aug 20, 2017 at 01:22:52AM +0200, Marco d'Itri wrote:
> > On Aug 20, Theodore Ts'o  wrote:
> > 
> > > By the way, I was just taking a quick look, and e2fsprogs isn't the
> > > only offender in this regard.  Out of a 201 MB i386 minbase chroot, 33
> > > MB, or over 16% can be found in /usr/share/locale.  The next largest
> > > hierarchies under /usr/share are /usr/share/doc, at 9.4 MB, and
> > > /usr/share/man, at 6.1 MB.
> > > 
> > > So if the goal is to shrink minbase, that might be a really good place
> > > to start.  Packages that might be good initial first targets would
> > > probably be coreutils, dpkg, and gnupg.
> >
> > I am not persuaded that we should split a significant number of packages 
> > (how many? Where do you draw the line?) this way: we already have a tool 
> > to solve this in a general way, i.e. localepurge.
> 
> From the localepurge package description:
> 
>This tool is a hack which is *not* integrated with the system's
>package management system and therefore is not for the faint of heart.
>Its interference can provoke strange, but usually harmless, behavior in
>programs related to apt/dpkg, such as dpkg-repack, reportbug, etc.
> 
> In either case, it seems unlikely people would be happy doing using
> either localepurge or dpkg --path-exclude for official Docker images.

It's already being used to get rid of some/most /usr/share/doc
content in the 'slim' variant of the "official" Debian images.

https://github.com/tianon/docker-brew-debian/issues/48

> Splitting out the locale files is going to be much easier to support
> than trying to hammer localremove into debootstrap.
> 
> Furthermore, it's not a significant number of packages, simply because
> there aren't a huge number of packages in minbase that have locale
> files to begin with, and only a handful of those have significantly
> sized locale files.

While I see localepurge as the general solution, I agree your suggestion
of splitting locales out (and shipping them in separate 'Priority:
important' packages thus not being included in 'minbase') has some value
simply by improving the 'out of the box' experience. Maybe it's worth
discussing it to see if there's enough consensus to implement it for
all/biggest minbase packages and where we draw the line if we only
do the top ones.

An example of where this is already implemented is util-linux-locales
(but it has Priority: optional, not sure why it's like that).

I've your information as an item (and appendix with your calculations
table) on https://wiki.debian.org/BusterPriorityRequalification

At the same time I also want to point out that space saving is just
one small detail this. Shrinking the number of 'Essential: yes'
packages has several other benefits, including simplifying
bootstrapping, allowing dependency tracking...
Splitting locales should be just considered an additional parallell
effort to shrinking Essential.

Regards,
Andreas Henriksson



Bug#474540: ext[23] should not be marked "essential"

2017-08-19 Thread Theodore Ts'o
On Sun, Aug 20, 2017 at 01:22:52AM +0200, Marco d'Itri wrote:
> On Aug 20, Theodore Ts'o  wrote:
> 
> > By the way, I was just taking a quick look, and e2fsprogs isn't the
> > only offender in this regard.  Out of a 201 MB i386 minbase chroot, 33
> > MB, or over 16% can be found in /usr/share/locale.  The next largest
> > hierarchies under /usr/share are /usr/share/doc, at 9.4 MB, and
> > /usr/share/man, at 6.1 MB.
> > 
> > So if the goal is to shrink minbase, that might be a really good place
> > to start.  Packages that might be good initial first targets would
> > probably be coreutils, dpkg, and gnupg.
>
> I am not persuaded that we should split a significant number of packages 
> (how many? Where do you draw the line?) this way: we already have a tool 
> to solve this in a general way, i.e. localepurge.

>From the localepurge package description:

   This tool is a hack which is *not* integrated with the system's
   package management system and therefore is not for the faint of heart.
   Its interference can provoke strange, but usually harmless, behavior in
   programs related to apt/dpkg, such as dpkg-repack, reportbug, etc.

In either case, it seems unlikely people would be happy doing using
either localepurge or dpkg --path-exclude for official Docker images.
Splitting out the locale files is going to be much easier to support
than trying to hammer localremove into debootstrap.

Furthermore, it's not a significant number of packages, simply because
there aren't a huge number of packages in minbase that have locale
files to begin with, and only a handful of those have significantly
sized locale files.

Here's the breakdown of all of the packages with locale files in the
minbase set in Debian Jessie, the savings (in kilobytes of installed
size) if we were to split out their locale files, and the cummulative
savings if we split the top N packages.

Package Savings Cummulative
Savings  Percentage
coreutils   8052 805224.91
dpkg46201267239.20
bash37441641650.78
gnupg   34241984061.37
e2fsprogs   17762161666.86
tar 16802329672.06
shadow  16322492877.11
apt 15282645681.84
libapt-pkg4.12  10522750885.09
Linux-PAM   796 2830487.55
findutils   756 2906089.89
grep636 2969691.86
diffutils   620 3031693.78
debconf 596 3091295.62
adduser 444 3135696.99
sed 428 3178498.32
libgpg-error388 3217299.52
systemd 84  3225699.78
acl 72  32328   100.00

I wouldn't call 12 packages a "significant number", and that would get
us over 90% of the 32 megabyte savings.  Splitting the top six would
get us 72% of the savings.  And with *zero* chance of compatibility
problems.

In addition, most of these packages, including the the top three
packages on the above list are ones that we could **never** remove
from the essential=yes / priority=required set.

Finally, splitting out the locale files for coreutils alone would net
almost three times the savings of completely removing e2fsprogs (2809k
in Jessie) from the minbase set.  If you think it's worth it to work
on removing e2fsprogs from minbase, why not split out at least
coreutils, dpkg, bash, and gnupg?  It will be less work, and will
result in more disk space saved.

- Ted



Bug#474540: ext[23] should not be marked "essential"

2017-08-19 Thread Marco d'Itri
On Aug 20, Theodore Ts'o  wrote:

> By the way, I was just taking a quick look, and e2fsprogs isn't the
> only offender in this regard.  Out of a 201 MB i386 minbase chroot, 33
> MB, or over 16% can be found in /usr/share/locale.  The next largest
> hierarchies under /usr/share are /usr/share/doc, at 9.4 MB, and
> /usr/share/man, at 6.1 MB.
> 
> So if the goal is to shrink minbase, that might be a really good place
> to start.  Packages that might be good initial first targets would
> probably be coreutils, dpkg, and gnupg.
I am not persuaded that we should split a significant number of packages 
(how many? Where do you draw the line?) this way: we already have a tool 
to solve this in a general way, i.e. localepurge.

I strongly support Andreas' goal, and I think that demoting e2fsprogs 
would not cause significant compatibility problems since it would happen 
only for a new release when other things usually need to be tweaked 
anyway.

-- 
ciao,
Marco


signature.asc
Description: PGP signature


Bug#474540: ext[23] should not be marked "essential"

2017-08-19 Thread Theodore Ts'o
On Fri, Aug 18, 2017 at 01:21:57PM +0200, Andreas Henriksson wrote:
> I would like to breath some life into this bug report. I've been
> collecting information/brainstorming-ideas about minimal debian
> installation (debootstrap --variant=minbase) on
> https://wiki.debian.org/BusterPriorityRequalification
> 
> The e2fsprogs was one of the packages that where questioned if
> it really needs to be Essential: yes / Priority: required.
> It is also one of the largest packages in the minbase set.

There is one thing I can very quickly and easily do to to improve the
minbase set.  We can significantly reduce the size of e2fsprogs (by
more half) by simply moving all of its locale files to a new package,
e2fsprogs-l10n.  That shrinks installed size of e2fsprogs from 2825k
to 1330k.

> step 1: Switch from Essential: yes to Important: yes
> 
> This will not be much of a change in practise. Higher level tools
> like apt etc will still not want to uninstall the package, but
> you can now uninstall it using dpkg without getting the 
> 'are you really sure you know what you're doing' question.
> I'd say the most important difference is that according to
> debian-policy (which doesn't know anything about Important: yes)
> the package is now no longer Essential and thus other packages
> are now allowed to add dependencies where needed.

I think you mean "don't know anything about Required: yes" above, but
yes, it seems largely safe to do this.  Given that Debian policy
states that packages should not be made "Essential" without a
discussion on debian-devel, I'd probably want to also raise this as a
proposal on debian-devel before changing "Essential: yes" to
"Essential: no".

> step 2: Dowgrade from Priority: required to Priority: important
> 
> This means e2fsprogs will still be part of every normal install,
> just not part of 'debootstrap --variant=minbase' (e.g. buildd chroots
> and other specialized systems).
> Pitfalls with this change would be that every package who needs
> something from e2fsprogs (eg. lsattr, chattr) during build phase
> must have a build-dependency on e2fsprogs or they will FTBFS.
> Given we're still early in the Buster development cycle, I would
> personally think this change is pretty safe to do now but depends
> on how much fuzz you're willing to stir up. I'd like to offer
> my help in fixing this (by filing bug reports and doing non-maintainer
> uploads where needed).

It's not just the builders; it will also be the Debian Docker image.
And while it might be fair to say that containers won't need "mount",
it's somewhat more likely that there might be build containers that
will assume the existence of mke2fs.

I'm not sure how to address that, since at least with debian packages
it's a relatively closed universe so we would discover problems as the
reproducible build system tried to rebuild various packages, for
example.  But I could imagine so Docker container designed to rebuild
cyanogen or AOSP (for example) that would be assuming e2fsprogs to be
present, and would blow up as a result.

This is one of the reasons why, if the goal is to shrink the size of
minbase shrinking e2fsprogs by removing all of the locale files is
probably the biggest bang for our buck that we can do right away, and
is guaranteed to be 100% safe --- since there won't be any users of
the e2fsprogs locale files except for e2fsprogs itself, and most of
the time they aren't used at all (at least in the English speaking
world :-).  (And of course, in build chroots for reproducible-build
reasons.)

By the way, the other program that other packages may be using is
logsave(8) -- the sysvinit and initramfs-tools packages use logsave at
the very least.

> Bonus step: consider chattr/lsattr move to util-linux?
> 
> As I understand it, chattr and lsattr used to be ext-specific. Nowadays
> more filesystems seems to have implemented the same interface and thus
> made the tools useful in a broader scope.

Yeah, mumble.  I'd have to think about that.  We're still adding new
ext4-specific flags to chattr and lsattr, so I'm less enthusiastic
about moving them.

The other libraries/packages that were moved to util-linux where the
uuid and blkid libraries (and associated userspace utilities).  Those
were largely no longer changing in any ext4-specific way, so it was a
lot easier to be willing to move it to util-linux.  The logsave binary
falls in that category, and so I would have no objections to moving
logsave to util-linux.  It's stayed in e2fsprogs mostly out of
inertia.

Regards,

- Ted



Bug#474540: ext[23] should not be marked "essential"

2017-08-19 Thread Theodore Ts'o
On Sat, Aug 19, 2017 at 06:51:11PM -0400, Theodore Ts'o wrote:
> 
> There is one thing I can very quickly and easily do to to improve the
> minbase set.  We can significantly reduce the size of e2fsprogs (by
> more half) by simply moving all of its locale files to a new package,
> e2fsprogs-l10n.  That shrinks installed size of e2fsprogs from 2825k
> to 1330k.

By the way, I was just taking a quick look, and e2fsprogs isn't the
only offender in this regard.  Out of a 201 MB i386 minbase chroot, 33
MB, or over 16% can be found in /usr/share/locale.  The next largest
hierarchies under /usr/share are /usr/share/doc, at 9.4 MB, and
/usr/share/man, at 6.1 MB.

So if the goal is to shrink minbase, that might be a really good place
to start.  Packages that might be good initial first targets would
probably be coreutils, dpkg, and gnupg.

Cheers,

- Ted



Bug#474540: ext[23] should not be marked "essential"

2017-08-18 Thread Andreas Henriksson
Hello!

I would like to breath some life into this bug report. I've been
collecting information/brainstorming-ideas about minimal debian
installation (debootstrap --variant=minbase) on
https://wiki.debian.org/BusterPriorityRequalification

The e2fsprogs was one of the packages that where questioned if
it really needs to be Essential: yes / Priority: required.
It is also one of the largest packages in the minbase set.

While making things non-essential is quite hard because there's
no obvious path to take, as already has been discussed in this
bug report I'd like to suggest starting with what I just did
to the (src:util-linux) mount package.

step 1: Switch from Essential: yes to Important: yes

This will not be much of a change in practise. Higher level tools
like apt etc will still not want to uninstall the package, but
you can now uninstall it using dpkg without getting the 
'are you really sure you know what you're doing' question.
I'd say the most important difference is that according to
debian-policy (which doesn't know anything about Important: yes)
the package is now no longer Essential and thus other packages
are now allowed to add dependencies where needed.

step 2: Dowgrade from Priority: required to Priority: important

This means e2fsprogs will still be part of every normal install,
just not part of 'debootstrap --variant=minbase' (e.g. buildd chroots
and other specialized systems).
Pitfalls with this change would be that every package who needs
something from e2fsprogs (eg. lsattr, chattr) during build phase
must have a build-dependency on e2fsprogs or they will FTBFS.
Given we're still early in the Buster development cycle, I would
personally think this change is pretty safe to do now but depends
on how much fuzz you're willing to stir up. I'd like to offer
my help in fixing this (by filing bug reports and doing non-maintainer
uploads where needed).

Bonus step: consider chattr/lsattr move to util-linux?

As I understand it, chattr and lsattr used to be ext-specific. Nowadays
more filesystems seems to have implemented the same interface and thus
made the tools useful in a broader scope.
If I'm not mistaken in the past some tools that has been developed as
e2fsprogs utilities has moved to util-linux once they've become generic
enough. The chattr and lsattr tools seems to be widely enough used
in debian (codesearch.debian.net says 133 packages match chattr for
example), that it might be useful to keep these two tools in the
Essential set while moving the rest out. Not sure how much work
it would be, but maybe the chattr and lsattr implementations could
move over to util-linux (upstream) and after we can transition in
Debian to ship these utils in the 'util-linux' binary package?
This is mostly just a thought on how 'step 2' could be simplified.


I'm very keen on seeing this move forward, so I'd like to hear your
opinion on it. I'm also willing to help out where needed so please
speak up if you have any work in mind that needs to be done.

Regards,
Andreas Henriksson



Bug#474540: ext[23] should not be marked "essential"

2008-04-06 Thread Harald Dunkel

Package: e2fsprogs
Version: 1.40.8-2
Severity: wishlist

Looking at the large number of different file systems for Linux
I wonder whether it would be possible to split e2fsprogs to keep
the "essential" part separate from the file system specific part?

I am running Debian without ext[23] filesystems for many years
without any problems, so I would like to get rid of the tools
that are "ext2-only".


Regards

Harri




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