Re: dpkg-reconfigure n'écoute pas debconf-set-selections (pour tzdata)

2020-12-03 Par sujet Charles Plessy
Le Thu, Dec 03, 2020 at 05:00:00PM +0200, Daniel Caillibaud a écrit :
> 
> Plus généralement, où peut-on trouver l'info des choix que ferait un
>   dpkg-reconfigure -f noninteractive xxx
> 
> Faut aller fouiner dans /var/lib/dpkg/info/xxx.config ?
> 
> Pour /var/lib/dpkg/info/tzdata.config on comprend comment c'est sensé
> fonctionner (même sans connaître le shell car les commentaires sont clairs),
> mais je sais pas si y'a un moyen plus rapide et générique pour avoir
> l'info.

Je ne connais pas de meilleure méthode...

Bonne journée,

-- 
Charles



Re: dpkg-reconfigure n'écoute pas debconf-set-selections (pour tzdata)

2020-12-03 Par sujet Daniel Caillibaud
Le 03/12/20 à  7h46, Charles Plessy  a écrit :
> je pense que ce n'est pas un bug, parce que « debconf n'est pas conçu
> pour être un système d'enregistrement et ne peut pas être utilisé comme
> tel », dixit man debconf-devel(7).
> https://manpages.debian.org/debconf-devel
> 
> Les paquets ne vont chercher des informations dans debconf que lorsque
> /etc n'en a pas encore.

Merci, je comprends mieux… debconf doit être vu les paramètres
d'installation par défaut lorsque rien n'est précisé dans /etc.

Paramètres qu'on peut préciser à l'installation ou plus tard (avec
debconf-set-selections), mais qui ne doivent surtout pas prendre le pas sur
une modification qu'aurait fait l'admin.

Et effectivement ça semble mieux comme ça.

On m'a soufflé un exemple où ce serait fâcheux s'il en était autrement :
- choix d'une zone à l'install (mettons Seoul parce que c'est un pc
  préinstallé en corée, ou une install faite avec en preseed coréen)
- l'admin fixe sa zone Europe/Paris via /etc/localtime et /etc/timezone
- lors de l'upgrade suivant du paquet tzdata, si debconf était la source
  d'autorité on se retrouverait avec Asie/Seoul

Plus généralement, où peut-on trouver l'info des choix que ferait un
  dpkg-reconfigure -f noninteractive xxx

Faut aller fouiner dans /var/lib/dpkg/info/xxx.config ?

Pour /var/lib/dpkg/info/tzdata.config on comprend comment c'est sensé
fonctionner (même sans connaître le shell car les commentaires sont clairs),
mais je sais pas si y'a un moyen plus rapide et générique pour avoir
l'info.

-- 
Daniel

Une maxime de charcutier chinois : la rondelle ne fait pas le printemps.
Coluche



Re: dpkg-reconfigure n'écoute pas debconf-set-selections (pour tzdata)

2020-12-02 Par sujet Charles Plessy
Le Wed, Dec 02, 2020 at 06:19:11PM +0100, Daniel Caillibaud a écrit :
> 
> Visiblement, si /etc/localtime pointe sur une timezone le 
>   dpkg-reconfigure tzdata -f noninteractive
> utilise cette timezone et ignore debconf.
> 
> C'est pas un bug ?

Bonjour Daniel,

je pense que ce n'est pas un bug, parce que « debconf n'est pas conçu
pour être un système d'enregistrement et ne peut pas être utilisé comme
tel », dixit man debconf-devel(7).  https://manpages.debian.org/debconf-devel

Les paquets ne vont chercher des informations dans debconf que lorsque
/etc n'en a pas encore.

> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=813226#20

Bon, effectivement, corriger un bug, c'est parfois assez brutal pour
ceux qui avaient appris empiriquement que c'était la manière normale
de fonctionner :(

Bonne journée,

Charles

-- 
Charles Plessy Nagahama, Yomitan, Okinawa, Japan



Re: dpkg-reconfigure n'écoute pas debconf-set-selections (pour tzdata)

2020-12-02 Par sujet Daniel Caillibaud
Le 30/11/20 à 16h56, Daniel Caillibaud  a écrit :
> Bonjour,
> 
> J'essaie d'imposer une timezone en mode non interactif avec
> debconf-set-selections et y'a un truc qui m'échappe…
> 
> # je veux avoir Europe/Paris sans avoir à répondre à une question, je me
> mets d'abord sur une autre timezone # par ex en répondant Europe/Riga
> dpkg-reconfigure tzdata
> Current default time zone: 'Europe/Riga'
> 
> # on vérifie debconf
> debconf-show tzdata|grep ^*
> * tzdata/Zones/Europe: Riga
> * tzdata/Areas: Europe
> * tzdata/Zones/Etc: UTC
> 
> # je select Europe/Paris
> printf 'tzdata tzdata/Areas select Europe\ntzdata tzdata/Zones/Europe
> select Paris\n'|debconf-set-selections
> 
> # je vérifie qu'il a compris ce que je voulais
> debconf-show tzdata|grep ^*
> * tzdata/Areas: Europe
> * tzdata/Zones/Etc: UTC
> * tzdata/Zones/Europe: Paris
> 
> # ok, j'applique la sélection
> dpkg-reconfigure tzdata -fnoninteractive
> 
> Current default time zone: 'Europe/Riga'
> 
> WTF 

Visiblement, si /etc/localtime pointe sur une timezone le 
  dpkg-reconfigure tzdata -f noninteractive
utilise cette timezone et ignore debconf.

C'est pas un bug ?

J'hésite à ouvrir un bug, pour tzdata ou debconf ?
(à priori plutôt tzdata vu les bugs déjà ouverts, notamment [1])

En tout cas, visiblement il faut, au choix

1) ne pas utiliser debconf et manuellement changer le symlink avant
reconfigure
  ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
  dpkg-reconfigure tzdata -f noninteractive

2) virer /etc/localtime (et /etc/timezone, plus sûr car les anciennes
versions de tzdata utilisaient ce fichier, ça semble plus le cas mais
y'a encore un bug ouvert là-dessus[1])
  rm -f /etc/localtime /etc/timezone 
  printf 'tzdata tzdata/Areas select Europe\ntzdata tzdata/Zones/Europe select 
Paris\n'|debconf-set-selections 1132
  dpkg-reconfigure tzdata -fnoninteractive

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=813226#20
et aussi https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848143

-- 
Daniel

J'ai souvent regretté mes discours, jamais mes silences.
Publilius Syrus



dpkg-reconfigure n'écoute pas debconf-set-selections (pour tzdata)

2020-11-30 Par sujet Daniel Caillibaud
Bonjour,

J'essaie d'imposer une timezone en mode non interactif avec
debconf-set-selections et y'a un truc qui m'échappe…

# je veux avoir Europe/Paris sans avoir à répondre à une question, je me mets 
d'abord sur une autre timezone
# par ex en répondant Europe/Riga
dpkg-reconfigure tzdata
Current default time zone: 'Europe/Riga'

# on vérifie debconf
debconf-show tzdata|grep ^*
* tzdata/Zones/Europe: Riga
* tzdata/Areas: Europe
* tzdata/Zones/Etc: UTC

# je select Europe/Paris
printf 'tzdata tzdata/Areas select Europe\ntzdata tzdata/Zones/Europe select 
Paris\n'|debconf-set-selections

# je vérifie qu'il a compris ce que je voulais
debconf-show tzdata|grep ^*
* tzdata/Areas: Europe
* tzdata/Zones/Etc: UTC
* tzdata/Zones/Europe: Paris

# ok, j'applique la sélection
dpkg-reconfigure tzdata -fnoninteractive

Current default time zone: 'Europe/Riga'

WTF 

-- 
Daniel

Le génie consiste à voir ce que tout le monde a vu
et à penser ce que personne n'a pensé.