Bug#1121778: install_packages: will not load package_config file when class contains dash

2025-12-02 Thread Thomas Lange
> On Tue, 2 Dec 2025 15:29:29 +0100, "Dr. Christian Kreidl" 
>  said:

> I've seen that change, but it does not fix the bug.
Ah, I know understand the problem in my code, that it modifies
@classes. Thanks for your bug report and patch.

-- 
regards Thomas



Bug#1121778: install_packages: will not load package_config file when class contains dash

2025-12-02 Thread Dr. Christian Kreidl


I've seen that change, but it does not fix the bug.


Am 02.12.25 um 15:19 schrieb Thomas Lange:


In FAI 6.5 this was fixed
using this change:

-@clvar =  map { $_,1 }  grep { s/-/Ö/g } @classes;
+@clvar =  map { $_,1 }  grep { s/-/Ö/g;1 } @classes;


Can you please confirm that this also works for you.




smime.p7s
Description: Kryptografische S/MIME-Signatur


Bug#1121778: install_packages: will not load package_config file when class contains dash

2025-12-02 Thread Thomas Lange


In FAI 6.5 this was fixed
using this change:

-@clvar =  map { $_,1 }  grep { s/-/Ö/g } @classes;
+@clvar =  map { $_,1 }  grep { s/-/Ö/g;1 } @classes;


Can you please confirm that this also works for you.



Bug#1121778: install_packages: will not load package_config file when class contains dash

2025-12-02 Thread Dr. Christian Kreidl

Package: fai-client
Version: 6.4.3
Severity: important
Tags: patch

Hi!

classes containing a dash will result in package_config files for that class 
not being read.
This causes fai to ignore hostname-specific package config files when hostname 
contains a dash.

example:
--snip--
List of all classes:  DEFAULT AMD64 DEBIAN pc-test LAST
...
install_packages: reading config files from directory 
/var/lib/fai/config/package_config
install_packages: read config file DEBIAN
install_packages: executing  apt-get clean
--snip--

expected behavior:
--snip--
List of all classes:  DEFAULT AMD64 DEBIAN pc-test LAST
...
install_packages: reading config files from directory 
/var/lib/fai/config/package_config
install_packages: read config file DEBIAN
install_packages: read config file pc-test
install_packages: executing  apt-get clean
--snip--

See attached patch to fix the bug.
The previously used grep command alters data in @classes .
Thus the filename is changed to "pcÖtest" and is not read, since it does not 
exist.

Please provide a fixed version of fai-client for trixie.

Thanks!

Best regards
Christian

-- System Information:
Debian Release: 13.2
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.57+deb13-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages fai-client depends on:
ii  debconf-utils1.5.91
ii  file 1:5.46-5
ii  iproute2 6.15.0-1
ii  libfile-lchown-perl  0.02-4
ii  perl 5.40.1-6
ii  procps   2:4.0.4-9
ii  zstd 1.5.7+dfsg-1

Versions of packages fai-client recommends:
ii  fdisk   2.41-5
ii  util-linux  2.41-5

Versions of packages fai-client suggests:
pn  libgraph-perl  
pn  logtail

-- Configuration Files:
/etc/fai/fai.conf changed [not included]

-- no debconf information


--- install_packages.orig	2025-05-26 17:39:21.0 +0200
+++ install_packages	2025-12-02 14:11:59.525798143 +0100
@@ -143,7 +143,7 @@
 @classes = grep { !/^#|^\s*$/ } split(/[\s\n]+/,$ENV{classes});
 foreach (@classes) { $classisdef{$_}=1;}
 # define an array of arguments for subroutine call: the class names, set to 1
-@clvar =  map { $_,1 }  grep { s/-/Ö/g } @classes;
+@clvar =  map { $_,1 }  map { s/-/Ö/gr } @classes;
 
 warn "$0: reading config files from directory $classpath\n" if $verbose;
 foreach (@classes) {


smime.p7s
Description: Kryptografische S/MIME-Signatur