Bug#835507: Please clarify that sysvinit support decision is not going to expire

2016-08-28 Thread Christian Seiler
On 08/28/2016 08:37 AM, Bart Schouten wrote:
> Sam Hartman schreef op 28-08-2016 1:37:
>> Similarly, if the community of people who care about sysvinit  is 
>> unwilling to spend the time keeping it working, eventually sysvinit
>> as a whole will be unmaintained and buggy.
> 
> True, but I don't think those conditions are there.

Not yet, but a lot of sysvinit-related stuff still hasn't been
adopted after being orphaned.

> I mean that the statements:
> 
> a) the scripts need (urgent) maintaining
> 
> and
> 
> b) in the context of the actual maintaining they do need, the help 
> that is necessary isn't there.
> 
> Are not true.

I would agree that in this specific case, a) is not true (there's
no apparent problem with them that wasn't already there in Wheezy),
but I'm honestly not at all sure about b).

To bring out my pet example: with sysvinit systems, in Jessie it's
not possible to have /usr on NFS anymore. The reason is that mount.nfs
is now linked against a library in /usr. I reported the bug [1] before
the release of Jessie (and I only found it because I was testing stuff
with sysvinit, I don't use it regularly at all). But nothing happened.
Then when the whole monster /usr-merge thread happened on debian-devel
half a year ago, I brought up that bug again, and nobody seemed to
care either.

With systemd this bug doesn't occur, because on systemd systems the
/usr partition is mounted in the initrd - so you can indeed boot
/usr on nfs with Jessie - but only with systemd.

To be fair: the mounting of /usr in initramfs now happens regardless
of init system also in Stretch, so the bug will now only appear if
you don't use an initramfs. But it was not sysvinit people who made
that work, but Ben Hutchings who NMU'd initscripts. [2]

Actually, the only people who appear to be improving sysvinit support
in Debian at the moment appear to be systemd users. And the only
thing I hear from sysvinit users are complaints.

> I think the "maintainership requirement" of those scripts are 
> currently being exaggerated,

In this specific case? Probably. When the thread that started this TC
bug popped up on debian-devel, I was on your side: those scripts
shouldn't have been removed.

Heck, I even wrote init scripts for something I packaged recently.
(Admittedly, that was a simple daemon and the init script is trivial,
see [3].)

However, I've been working on something for the last couple of months
(on and off) to write some code to make stuff work on sysvinit for
one package I maintain, which I wouldn't need to do if I just wanted
to support systemd. Currently there's a huge workaround in the package
that is awful in every regard. And I really want to get rid of the
workaround, because it is detrimental to users in other ways (and the
workaround also affects systemd users), and do it properly.

But when I read stuff such as this: 

> ... warehouse of troubles that need a million hours of employment 
> each year to keep it going ...
> - you will hate the day when you discover you've been scammed ...

Or, when other people constantly and irrationally bring up
libsystemd0 again and again (see the current debian-devel thread),
then sorry, these kinds of comments make me lose any motivation in
still working on helping people out with sysvinit. It's becoming
more and more appealing to me to just say "screw sysvinit users",
I don't care anymore. I'm not there yet, but I suspect that I'm not
the only one who feels that way, so please, continue with this kind
of rhetoric, and see where you'll be at in a few years.

> Anyone writing an actual SysV init script would have thought of those
> things. That person would have felt responsible for it, because no
> one else would do it for you. That person would have built more
> intelligence into the startup script.

No, sorry, that's simply patently untrue. There are some good init
scripts out there, but the vast majority of them are just plain
horrible. They kind of work, but they make a lot of assumptions
that break in a lot of corner cases. And writing good init scripts
is _really_ hard, because shell programming is awful. (Useful, but
awful.)

Heck, even the skeleton Debian init script is completely useless
for use in a Pacemaker/HA environment - because start/stop will
_always_ return exit code 0, regardless of whether it worked or
not. (Only status returns different exit codes.) With sysvinit I
have _always_ had to patch init scripts to return proper error
codes when I wanted to use them in a HA environment. (And I've
done that since Squeeze, where there was no systemd.) This
violates LSB btw. (No, I didn't file a bug against the initscripts
package, let alone an MBF against all daemons with this problems,
not even before systemd was even a thing during Squeeze times,
because it was already very clear to me from just looking at the
bug list that nobody seemed to care about maintaining the package
properly, and I'd just be wasting my time.)

So yeah, for me sysvinit scripts are 

Re: Bug#762194: Automatic switch to systemd on wheezy-jessie upgrades (thoughts)

2014-12-04 Thread Christian Seiler

Am 2014-12-04 18:21, schrieb Adam Borowski:

On Thu, Dec 04, 2014 at 05:25:26PM +0100, Christian Seiler wrote:

 - Switchig depends order of init [1]
   (sysvinit-core before systemd-sysv)

- won't work, because init is Essential, but systemd-sysv 
isn't,

   so this change would default the init system to sysvinit for
   jessie (which is against the TC ruling from earlier this 
year,

   so unless you'd want to overrule that... ;-))


That's why in my proposal the installation of systemd-sysv by default 
is

moved to debootstrap.


Unfortunately, that has its own set of problems. People want to be
able to bootstrap jessie from other distributions, and from previous
Debian versions (which is why an update to debootstrap was accepted
into s-p-u recently to fix a bug so that jessie could be bootstrapped
from jessie, see [1]).

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768444

Note that there is also cdebootstrap, which you'd also have to
modify, and I honestly don't know what some other tools that can
install Debian use internally do.

Also, it is intuitive to keep changes to the default install in 
debootstrap
rather than in dependencies.  And it makes future changes of the 
default

easy without breaking existing systems.


With the init metapackage, if it stays the way it is, then this is
not the case - because a change in the init metapackage order will
not affect existing systems anymore, it will just affect new systems.
So instead of hardcoding behavior in debootstrap, dependencies are
precisely the right way to go, in my eyes.

As for reasons not to switch, you did not mention the multitude of 
breaks
the whole system (ie, severity:critical) bugs in common 
configurations.

These include:
* vservers/containers


If you look at what most container solutions do in order to 'support'
current systems, they override quite a lot of the init script logic
in order not to do stuff they shouldn't do. With the current state of
things, I never had the expectation that dist-upgrading a container
would even remotely work, and I've never tried that.

Note that containers have been painful for upgrades anyway, since
Etch/Lenny had VServer and something else, Squeeze still had VServer
but only if using the official kernel, if your hardware required you
to use a backports kernel, then you couldn't use VServer anymore. In
with Squeeze came LXC as a possible alternative, but when it came to
Wheezy, subtle stuff changed again (e.g. /run directory, especially
if you wanted to run the container without CAP_SYS_ADMIN).

Also: jessie will be the first version of Debian that will have a
kernel that supports unpriviledged (user namespace) containers. That
alone is something worth reinvestigating the current setup for.

So my expectation for containers has always been: build it again on
the new operating system version, and then migrate the data over.

In fact, systemd actually gives me hope that this might not be the
case anymore in the not-too-distant future. For jessie it probably
won't work that way yet, but for stretch onwards (read: strech -
buster upgrades) I really am hopeful that it will finally be possible
to just upgrade your container and everything will just work[tm].
Which has never been my experience so far.


* chroots that run daemons


What do you mean? systemd supports daemons with chroot just fine,
either directly (RootDirectory=) or even using traditional init
scripts.


* some configurations of encrypted lvm


Could you point me to a bug report on this? I'd like to help out with
that. I have systemd running on my home computer with an encrypted
LVM, and it does work, so what you are referencing is probably a
nasty bug that could be fixed.


* custom kernels (including those you can't upgrade)


That is indeed a problem.


* nonexistant filesystems in fstab (this one is being worked on)


I did mention that in my email.

Thus, the potential for breakage is simply too big.  This is similar, 
but

bigger in scope than the grub1-grub2 switch some years ago.


Well, in the end, it comes down to priorities, as to how much breakage

Christian


--
To UNSUBSCRIBE, email to debian-ctte-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/57d7f2a72b8bbe7cb5edd00c0fe0e...@iwakd.de



Bug#762194: Automatic switch to systemd on wheezy-jessie upgrades (thoughts)

2014-12-04 Thread Christian Seiler

Sorry, stupid webmail, sent my email to early...
and only to the mailing list, not the bugtracker... :(

To make sure it's recorded in the bug, and I also added something to
the end:

Am 2014-12-04 19:31, schrieb Christian Seiler:

Am 2014-12-04 18:21, schrieb Adam Borowski:

On Thu, Dec 04, 2014 at 05:25:26PM +0100, Christian Seiler wrote:

 - Switchig depends order of init [1]
   (sysvinit-core before systemd-sysv)

- won't work, because init is Essential, but systemd-sysv 
isn't,

   so this change would default the init system to sysvinit for
   jessie (which is against the TC ruling from earlier this 
year,

   so unless you'd want to overrule that... ;-))


That's why in my proposal the installation of systemd-sysv by 
default is

moved to debootstrap.


Unfortunately, that has its own set of problems. People want to be
able to bootstrap jessie from other distributions, and from previous
Debian versions (which is why an update to debootstrap was accepted
into s-p-u recently to fix a bug so that jessie could be bootstrapped
from jessie, see [1]).

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768444

Note that there is also cdebootstrap, which you'd also have to
modify, and I honestly don't know what some other tools that can
install Debian use internally do.

Also, it is intuitive to keep changes to the default install in 
debootstrap
rather than in dependencies.  And it makes future changes of the 
default

easy without breaking existing systems.


With the init metapackage, if it stays the way it is, then this is
not the case - because a change in the init metapackage order will
not affect existing systems anymore, it will just affect new systems.
So instead of hardcoding behavior in debootstrap, dependencies are
precisely the right way to go, in my eyes.

As for reasons not to switch, you did not mention the multitude of 
breaks
the whole system (ie, severity:critical) bugs in common 
configurations.

These include:
* vservers/containers


If you look at what most container solutions do in order to 'support'
current systems, they override quite a lot of the init script logic
in order not to do stuff they shouldn't do. With the current state of
things, I never had the expectation that dist-upgrading a container
would even remotely work, and I've never tried that.

Note that containers have been painful for upgrades anyway, since
Etch/Lenny had VServer and something else, Squeeze still had VServer
but only if using the official kernel, if your hardware required you
to use a backports kernel, then you couldn't use VServer anymore. In
with Squeeze came LXC as a possible alternative, but when it came to
Wheezy, subtle stuff changed again (e.g. /run directory, especially
if you wanted to run the container without CAP_SYS_ADMIN).

Also: jessie will be the first version of Debian that will have a
kernel that supports unpriviledged (user namespace) containers. That
alone is something worth reinvestigating the current setup for.

So my expectation for containers has always been: build it again on
the new operating system version, and then migrate the data over.

In fact, systemd actually gives me hope that this might not be the
case anymore in the not-too-distant future. For jessie it probably
won't work that way yet, but for stretch onwards (read: strech -
buster upgrades) I really am hopeful that it will finally be possible
to just upgrade your container and everything will just work[tm].
Which has never been my experience so far.


* chroots that run daemons


What do you mean? systemd supports daemons with chroot just fine,
either directly (RootDirectory=) or even using traditional init
scripts.


* some configurations of encrypted lvm


Could you point me to a bug report on this? I'd like to help out with
that. I have systemd running on my home computer with an encrypted
LVM, and it does work, so what you are referencing is probably a
nasty bug that could be fixed.


* custom kernels (including those you can't upgrade)


That is indeed a problem.


* nonexistant filesystems in fstab (this one is being worked on)


I did mention that in my email.

Thus, the potential for breakage is simply too big.  This is 
similar, but

bigger in scope than the grub1-grub2 switch some years ago.


Well, in the end, it comes down to priorities, as to how much 
breakage

people consider acceptable, in contrast to the other upsides and
downsides of the change. I don't think it is unreasonable that some
people come down on the other side of this issue.

As I said in my first email, I don't think there is an easy answer
here.

Christian


--
To UNSUBSCRIBE, email to debian-ctte-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/7a227d36ce9b9b23dcb52cc433538...@iwakd.de



Bug#746578: libpam-systemd to flip dependencies - proposal

2014-11-04 Thread Christian Seiler
Am 04.11.2014 17:07, schrieb Josh Triplett:
 This isn't a complete showstopper, since most of the time people seem to
 debootstrap a standard system and then install additional packages.
 However, it would affect a debootstrap with --include=task-desktop or
 --include=gnome or similar.

Just as a side note: I never use debootstrap to actually include
anything that wouldn't be considered 'base system', just because I've
had the experience that quite a few packages don't work together with
debootstrap (try doing --include=syslog-ng (and --exclude=rsyslog) while
debootstrapping wheezy - the dependency resolution works properly, but
the package won't install, because the preinst or postinst scripts don't
like debootstrap's environment (the rsyslog exclude alone works btw., so
that's what I'm doing if I want something with syslog-ng)). I have some
real doubts that debootstrap is going to be able to set up something
like GNOME or task-desktop or whatever, just because they probably are
going to pull in lots of packages of which at least a couple are going
to have similar problems to the aforementioned one I had with syslog-ng.

Therefore, I always tend to use debootstrap to just install a very, very
basic system and then use apt-get in a chroot to install the rest of the
software, if I decide to install a Debian image like that.

This in mind, looking at apt-cache rdepends libpam-systemd[1], I don't
see anything in there I'd want to include in debootstrap. But maybe
that's just me.

 Does anyone see an obvious way to structure the dependencies to avoid
 this result and only install systemd-sysv?

I don't think that's possible if you want to keep the effect the
switching the dependencies has (i.e. selecting systemd-shim as first
alternative so that systems without systemd as pid1 don't try to install
systemd-sysv when packages depending on logind are installed).

 I haven't tested the upgrade scenario.
 
 I appreciate the test you already ran.  I'd love to see an upgrade test
 as well (from a system with sysvinit installed), but this test already
 revealed an issue.

 - Fresh install of Debian Wheezy (from netinst CD)
 - tasksel: Standard utilities + SSH server
 - aptitude full-upgrade
 - aptitude install --without-recommends gdm3
(package that pulls in libpam-systemd in Jessie, without
 installing too much, although gdm3 itself already pulls in
 quite a lot on wheezy, in hindsight probably should have gone
 with network-manager...)
 - Then edit sources.list, remove everything wheezy-related, add my
   modified mirror, apt-get update

Then this gives the following consequences:

  - apt-get upgrade:
  * doesn't try to upgrade enough packages that you could call
the system jessie, doesn't pull in anything systemd related
other than trying to upgrade libsystemd-login0 (already
installed on wheezy because of a Depends of dbus)
  - apt-get dist-upgrade
  * pulls in systemd-shim
  - aptitude full-upgrade
  * pulls in systemd-shim
  - aptitude upgrade (i.e. safe-upgrade)
  * takes a couple of minutes to resolve deps
(granted, running in a VM, but I have a fast CPU, so
this is really unusual, never seen aptitude working so
long before, but OTOH I've never done a dist-upgrade
with aptitude before, so maybe that's normal?)
  * DOES NOT pull in systemd-shim
  - didn't test any other frontends

(I'm not showing any detailed package lists here because there's just
too much unrelated stuff.)

Christian

[1] Depended on by:
udisks2, policykit-1, network-manager, lightdm*,
gnome-settings-daemon, gnome-bluetooth, gdm3
Recommended by (not relevant for deboostrap IIRC):
xfce4-session, xfce4-power-manager, systemd,
gnome-session-bin, argyll
(* Depends: libpam-systemd | consolekit)

PS: I tested this because I think it's better to have all the relevant
information before deciding an issue, please don't interpret my email as
being critical of the proposed resolution.


-- 
To UNSUBSCRIBE, email to debian-ctte-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/54592660.5000...@iwakd.de



Bug#746578: libpam-systemd to flip dependencies - proposal

2014-11-03 Thread Christian Seiler
Am 02.11.2014 06:59, schrieb Josh Triplett:
 Apart from that, I would still request that someone with the ability to
 produce a modified local mirror test the two critical cases mentioned in
 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746578#129 .  If those
 two cases work, then systemd systems should not end up with systemd-shim
 installed under normal circumstances, making breakage far less likely.

debootstrap 1.0.64 on a current Jessie box with a locally modified
and otherwise up-to-date (2014-11-04T05:00Z) mirror wants to pull in the
following packages[1]:

acl adduser base-files base-passwd bash bsdutils coreutils dash debconf
debconf-i18n debianutils diffutils dmsetup dpkg e2fslibs e2fsprogs
findutils gcc-4.8-base gcc-4.9-base grep gzip hostname init
init-system-helpers initscripts insserv libacl1 libattr1 libaudit-common
libaudit1 libblkid1 libbz2-1.0 libc-bin libc6 libcap2 libcap2-bin
libcomerr2 libcryptsetup4 libdb5.3 libdebconfclient0 libdevmapper1.02.1
libgcc1 libgcrypt20 libgdbm3 libgpg-error0 libkmod2
liblocale-gettext-perl liblzma5 libmount1 libncurses5 libncursesw5
libpam-modules libpam-modules-bin libpam-runtime libpam0g libpcre3
libprocps3 libselinux1 libsemanage-common libsemanage1 libsepol1
libslang2 libsmartcols1 libss2 libsystemd0 libtext-charwidth-perl
libtext-iconv-perl libtext-wrapi18n-perl libtinfo5 libudev1
libustr-1.0-1 libuuid1 login lsb-base mawk mount multiarch-support
ncurses-base ncurses-bin passwd perl perl-base perl-modules procps sed
sensible-utils startpar systemd systemd-sysv sysv-rc sysvinit-utils tar
tzdata udev util-linux zlib1g apt apt-utils bsdmainutils cgmanager cpio
cron dbus debian-archive-keyring dmidecode gnupg gpgv groff-base
ifupdown iproute2 iptables iputils-ping isc-dhcp-client isc-dhcp-common
kmod less libapt-inst1.5 libapt-pkg4.12 libboost-iostreams1.55.0
libcap-ng0 libcgmanager0 libdbus-1-3 libdns-export100 libestr0 libexpat1
libffi6 libglib2.0-0 libgmp10 libgnutls-deb0-28 libgnutls-openssl27
libhogweed2 libicu52 libidn11 libirs-export91 libisc-export95
libisccfg-export90 libjson-c2 liblogging-stdlog0 liblognorm1 libmnl0
libnetfilter-acct1 libnettle4 libnewt0.52 libnfnetlink0 libnih-dbus1
libnih1 libp11-kit0 libpam-systemd libpipeline1 libpopt0 libpsl0
libreadline6 libsigc++-2.0-0c2a libssl1.0.0 libstdc++6 libtasn1-6
libusb-0.1-4 libxtables10 logrotate man-db manpages nano net-tools
netbase netcat-traditional nfacct readline-common rsyslog systemd-shim
tasksel tasksel-data traceroute vim-common vim-tiny wget whiptail

I've also tried debootstrap 1.0.62 on a Fedora 19 box with the same
mirror, with the same results.

Note that systemd-shim together with cgmanager is pulled in.

My guess is that there's some greediness in the dependency resolver in
debootstrap, and as long as there's no conflict, it won't try to follow
other alternatives to see if the dependencies have already been met.

Also note that neither --exclude=systemd-shim,cgmanager nor
--exclude=systemd-shim seem to have no effect whatsoever on
the list of packages. (Which is probably a bug in debootstrap, because
it should at least warn you if it can't fulfill the specified --exclude,
but also in this case it could actually exclude it...)

I haven't tested the upgrade scenario.

Christian

[1] debootstrap --print-debs --no-check-gpg \
  --include=libpam-systemd jessie $DIR $MIRROR

PS: Diff of the stuff that is pulled in compared to the same command
done in the current archive (after sorting the package list):
@@ -7,6 +7,7 @@
 bash
 bsdmainutils
 bsdutils
+cgmanager
 coreutils
 cpio
 cron
@@ -57,6 +58,7 @@
 libcap2-bin
 libcap-ng0
 libc-bin
+libcgmanager0
 libcomerr2
 libcryptsetup4
 libdb5.3
@@ -70,6 +72,7 @@
 libgcc1
 libgcrypt20
 libgdbm3
+libglib2.0-0
 libgmp10
 libgnutls-deb0-28
 libgnutls-openssl27
@@ -94,6 +97,8 @@
 libnettle4
 libnewt0.52
 libnfnetlink0
+libnih1
+libnih-dbus1
 libp11-kit0
 libpam0g
 libpam-modules
@@ -153,6 +158,7 @@
 sensible-utils
 startpar
 systemd
+systemd-shim
 systemd-sysv
 sysvinit-utils
 sysv-rc


-- 
To UNSUBSCRIBE, email to debian-ctte-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/54587669.4000...@iwakd.de