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

Bug#796603: closed by Anton Zinoviev <zinoviev@debian.org> (Bug#796603: fixed in console-setup 1.138)



On Fri, Mar 04, 2016 at 03:08:39PM -0300, Felipe Sateler wrote:
>
> > Unfortunately, I will not be able to maintain this file or to update it
> > in accordance with future changes in systemd.  So I suppose that unless
> > you or somebody else volunteers to maintain it, it will be better to
> > continue without it.
> 
> As long as the initscript does simple things, it should require very
> little maintainance. While I can't commit to maintain it (I am no
> expert in console matters), feel free to CC pkg-systemd-maintainers or
> myself if you ever receive a bug about this.

The reason I hesitate is that I am not a "normal" maintainer of 
console-setup.  While I have enough time for development related to 
console-setup, my limitations force me to allocate this time in batches 
with relatively large periods between them.  In fact, it won't be 
incorrect to say that most of the time other people take care of this 
package (one can easily observe this in the changelog).

> >> Before=local-fs-pre.target
> >> Wants=local-fs-pre.target
> >
> > What is the meaning of these two?
> 
> This ensures it is run before systemd attempts to fsck and mount any
> local filesystems. It is therefore a relatively appropriate
> replacement for the checkroot dependency.

What does 'Wants' do?  Is this some kind of optimization?

> There does not appear to be a keymap init script:
> 
> These are created by the kernel when devtmpfs is mounted, and systemd
> mounts /dev before starting any units, so they should be available,
> yes.

This is good.  It seems we don't need 'After'.

> > One novelty in version 1.138 is that it is unnecessary to run setupcon
> > in order to configure the console.  It is OK to configure the keyboard
> > in this way, but this usually will be slower than what the script
> > keyboard-setup.sh does -- instead of setupcon it runs
> > /etc/console-setup/cached_setup_keyboard.sh and reverts to using
> > setupcon only when this script doesn't exist of fails.
> 
> IMO, the init script should be as dumb as possible, as it is a
> conffile. Therefore all program logic should move outside the script
> and into a helper script that lives in /lib. This way, improvements
> are guaranteed to be shipped to users.

The script /etc/console-setup/cached_setup_keyboard.sh is not a 
configuration file and the user is not supposed to edit it.  Since it is 
autogenerated, there is no problem to ship improvements to the users. 
(Under FHS this script would have to go in /var rather than in /etc, 
however, we need it while /var is not yet mounted.  Years ago, nobody at 
debian-devel could find a solution to this problem, so now console-setup 
violates this aspect of FHS.)

> The resulting unit would be:
> 
> ConditionPathExists=/bin/setupcon

Is there a possibility to use something like 'ConditionPathDoesntExist?  
If yes, then we can use two units like these:

Unit 1:

ConditionPathExists=/etc/console-setup/cached_setup_keyboard.sh
ExecStart=/etc/console-setup/cached_setup_keyboard.sh

Unit 2:

ConditionPathDoesntExist=/etc/console-setup/cached_setup_keyboard.sh
ConditionPathExists=/bin/setupcon
ExecStart=/bin/setupcon --keyboard-only

Anton Zinoviev


Reply to: