Pagina 1 di 2

@ponce fix lxc template per slackware 15

Inviato: lun 24 feb 2020, 0:19
da ZeroUno
Ciao.

slackware 15 è in avvicinamento.

Al momento lxc non funziona correttamente con slackpkg della -current e tantomeno con quello beta. Cioè, consente di creare correttamente un container il rootfs ma i path vengono sballati in quanto $ROOT è riferito sia a $TEMP che $WORKDIR e qualcos'altro, quindi la cache non è riciclabile per più container, e in current rimane uno step interattivo.
Slackpkg+ invece ha $ROOT non funzionante.

rworkman sta rivedendo slackpkg e io conseguentemente slackpkg+ visto che prima di slackware 15 saranno da rilasciare stabili.

Al momento c'è qualche dubbio relativamente alla blacklist
Al momento visto che ho poche esperienze d'uso di slackpkg con $ROOT e tantomento con blacklist, mi è venuto in mente lxc.

slackpkg ha un bug riguardo blacklist & $ROOT che non è chiaro che direzione prendere per fixarlo.


Tu hai già pensato qualcosa per fixare lxc-slackware per farlo funzionare su 15.0?

Re: @ponce fix lxc template per slackware 15

Inviato: lun 24 feb 2020, 14:42
da ponce
Ho già da tempo pronti degli update di lxc alla 3.x con dei fix al template per current, ma credo proprio che sia stato introdotto un errore in slackpkg nella gestione della variabile $ROOT, magari per correggere un altro bug, perché durante l'installazione del template alcuni file, come hai notato, vengono cercati in percorsi che non dovrebbero essere quelli.
È un po' che non lo riprendo in mano, provo a farlo appena ho un po' di tempo libero.

Re: @ponce fix lxc template per slackware 15

Inviato: lun 24 feb 2020, 15:05
da ZeroUno
È cambiata la gestione di $ROOT.
Ora tutto, tranne $CONF mi pare, è relativo a $ROOT, Q
quindi /var/lib/slackpkg, /var/cache/packages, ecc vanno sotto $ROOT.
Questo è voluto pare.
c'è invece un bug su blacklist quindi se ne va un pezzo da una parte e un pezzo dall'altra.
Slackpkg 2.84 è ancora in beta quindi tutto si può fare.
https://www.linuxquestions.org/question ... ?p=6092069
Ho suggerito come esempio/target di $ROOT proprio lxc perché al momento non conosco altri casi d'uso noti.

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 17:05
da ponce
allora, avevo sistemato tutto l'estate scorsa rivedendo il template e funzionava fino a slackpkg-2.84.0_beta6, confermo che la slackpkg-2.84.0_beta7 non lo fa piu' funzionare.

http://ponce.cc/slackware/testing/new_lxc/

per quel che mi riguarda slackpkg-2.84.0_beta6 non aveva nessun bug con la gestione della variabile $ROOT (l'ho ritestato adesso), sembra invece che sia stato introdotto con modifiche fatte tra la beta6 e la beta7: sai quali modifiche sono state fatte e perche'?
qual'e' il bug specifico che viene corretto con quelle modifiche?

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 17:39
da ZeroUno
Non ha aggiornato git, quindi non mi ero accorto della nuova versione, ma dalla diff ha aggiunto $ROOT ai $CONF/blacklist mancanti.

Codice: Seleziona tutto

diff -urb slackpkg-2.84.0_beta6-noarch-1_rlw/install/doinst.sh slackpkg-2.84.0_beta7-noarch-1_rlw/install/doinst.sh
--- slackpkg-2.84.0_beta6-noarch-1_rlw/install/doinst.sh        2019-07-15 22:32:47.000000000 +0200
+++ slackpkg-2.84.0_beta7-noarch-1_rlw/install/doinst.sh        2020-02-20 03:39:04.000000000 +0100
@@ -29,7 +29,7 @@
       SRCMIRROR=mirrors-x86.sample
     ;;
   esac
-  cp usr/doc/slackpkg-2.84.0_beta6/$SRCMIRROR etc/slackpkg/mirrors.new
+  cp usr/doc/slackpkg-2.84.0_beta7/$SRCMIRROR etc/slackpkg/mirrors.new
 }
 
 copy_mirror_file
Only in slackpkg-2.84.0_beta6-noarch-1_rlw/usr/doc: slackpkg-2.84.0_beta6
Only in slackpkg-2.84.0_beta7-noarch-1_rlw/usr/doc: slackpkg-2.84.0_beta7
diff -urb slackpkg-2.84.0_beta6-noarch-1_rlw/usr/libexec/slackpkg/core-functions.sh slackpkg-2.84.0_beta7-noarch-1_rlw/usr/libexec/slackpkg/core-functions.sh
--- slackpkg-2.84.0_beta6-noarch-1_rlw/usr/libexec/slackpkg/core-functions.sh   2019-07-15 22:15:33.000000000 +0200
+++ slackpkg-2.84.0_beta7-noarch-1_rlw/usr/libexec/slackpkg/core-functions.sh   2020-02-20 03:34:20.000000000 +0100
@@ -151,12 +151,12 @@
                fi
        done
 
-       TEMPLATEDIR=$CONF/templates
+       TEMPLATEDIR=${ROOT}/$CONF/templates
        if [ ! -d $TEMPLATEDIR ]; then
          mkdir $TEMPLATEDIR
        fi
 
-       SLACKCFVERSION=$(grep "# v[0-9.]\+" $CONF/slackpkg.conf | cut -f2 -dv)
+       SLACKCFVERSION=$(grep "# v[0-9.]\+" ${ROOT}/$CONF/slackpkg.conf | cut -f2 -dv)
        CHECKSUMSFILE=${ROOT}/${WORKDIR}/CHECKSUMS.md5
        KERNELMD5=$(md5sum /boot/vmlinuz 2>/dev/null)
        DIALOG_MAXARGS=${DIALOG_MAXARGS:-19500}
@@ -644,7 +644,7 @@
                        for ARGUMENT in $(echo $INPUTLIST); do
                                for i in $(cat ${TMPDIR}/pkglist ${TMPDIR}/tmplist | \
                                                grep -w -- "${ARGUMENT}" | cut -f2 -d\  | sort -u); do
-                                       grep -qx "${i}" ${CONF}/blacklist || LIST="$LIST $i"
+                                       grep -qx "${i}" ${ROOT}/${CONF}/blacklist || LIST="$LIST $i"
                                done
                        done
                ;;
@@ -1232,7 +1232,7 @@
        FILES="$(diff $TMPDIR/list1 $TMPDIR/list2 | grep '<' | cut -f2 -d\ )"
        if [ "$FILES" != "" ]; then
                for i in $FILES ; do
-                       grep -qx "${i}" ${CONF}/blacklist && continue
+                       grep -qx "${i}" ${ROOT}/${CONF}/blacklist && continue
                        DOUBLEFILES="$DOUBLEFILES $i"
                done
                unset FILES
diff -urb slackpkg-2.84.0_beta6-noarch-1_rlw/usr/sbin/slackpkg slackpkg-2.84.0_beta7-noarch-1_rlw/usr/sbin/slackpkg
--- slackpkg-2.84.0_beta6-noarch-1_rlw/usr/sbin/slackpkg        2019-07-15 22:32:47.000000000 +0200
+++ slackpkg-2.84.0_beta7-noarch-1_rlw/usr/sbin/slackpkg        2020-02-20 03:39:04.000000000 +0100
@@ -49,7 +49,7 @@
 # CONF = configuration directory
 # SOURCE = A mirror of Slackware. Source can be set by editing $CONF/mirrors
 #
-VERSION=2.84.0_beta6
+VERSION=2.84.0_beta7
 PATH=/bin:/usr/bin:/sbin:/usr/sbin
 SLACKWARE_VERSION=$(cat /etc/slackware-version | cut -f2 -d\ )
 CONF=${CONF:-/etc/slackpkg}
@@ -66,8 +66,8 @@
        \@^cdrom://@p
        \@^local://@p
        \@^https\{0,1\}://@p
-       \@^ftps\{0,1\}://@p' $CONF/mirrors)
-. $CONF/slackpkg.conf
+       \@^ftps\{0,1\}://@p' ${ROOT}/$CONF/mirrors)
+. ${ROOT}/$CONF/slackpkg.conf
 ERROR=""
 
 # Set temporary directory
@@ -466,7 +466,7 @@
                # all blacklisted packages
                if [ "$INPUTLIST" = "" ]; then
                        echo -e "Packages in blacklist:\n"
-                       grep -e "^\([a-z]\)" $CONF/blacklist | $MORECMD
+                       grep -e "^\([a-z]\)" ${ROOT}/$CONF/blacklist | $MORECMD
                        cleanup
                fi
 
non ho ancora visto il nuovo template.

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 18:27
da ponce
si, vedo le modifiche, ma continuo a non capire il perche' delle aggiunte se prima gia' andava regolarmente... boh?
c'era qualcosa che non funzionava prima di quelle aggiunte?

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 18:50
da ZeroUno
stavo rivedendo il template.
Quello vecchio in effetti funzionava ma
WORKDIR=$cache/slackpkg-$release-$arch
andava a puntare come risultato finale a
/var/cache/lxc/slackware/rootfs-current-x86_64/var/cache/lxc/slackware/slackpkg-current-x86_64
mentre avrebbe avuto problemi con la blacklist (solo lì il dubbio) e FORSE con slackpkg in generale quando viene lanciato dal sistema guest.

In questa beta7 invece mi pare che l'impatto maggiore sia
+ TEMPLATEDIR=${ROOT}/$CONF/templates

così se tu scrivi
cat <<EOF > $CONF/templates/minimal-lxc.template
slackpkg install-template non lo trova perchè lo cerca in $ROOT/$CONF/templates

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 18:55
da ZeroUno
credo che l'idea della nuova gestione di $ROOT sia che NIENTE di slackpkg - al di fuori dei binari - si debba trovare nel sistema ospitante ma solo dentro quello guest.
il che ha il suo senso in verità.

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 19:15
da ponce
ma in realta' secondo me non ha senso che si punti sempre al sistema dentro $ROOT: come era prima era possibile specificare una $CONF personalizzata che non doveva puntare al sistema del container ma in una locazione temporanea di lavoro, era fatto apposta per avere un posto "usa e getta" dove mettere il template del container, un mirror e una blacklist per la sua creazione.
forzando la presenza di $CONF sotto $ROOT il template non puo' funzionare.

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 19:19
da ZeroUno
Si, infatti dicevo che col nuovo $ROOT non è possibile riciclare la cache. Però giocando di link simbolici dovresti poterlo fare.
lxc è il caso d'uso che mi è venuto in mente. In realtà c'è anche che monto un sistema che ha problemi e installo roba con slackpkg e $ROOT o anche una guest di lxc terminata ed in erogazione.

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 19:22
da ponce
ZeroUno ha scritto:
mar 25 feb 2020, 19:19
Si, infatti dicevo che col nuovo $ROOT non è possibile riciclare la cache. Però giocando di link simbolici dovresti poterlo fare.
lxc è il caso d'uso che mi è venuto in mente. In realtà c'è anche che monto un sistema che ha problemi e installo roba con slackpkg e $ROOT o anche una guest di lxc terminata ed in erogazione.
ma in questo caso che descrivi non serve forzare $CONF sotto $ROOT, basta mettere $CONF con la nuova locazione, poi ci pensano i pkgtool a rispettare $ROOT.

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 19:27
da ZeroUno
Se è un sistema esistente - magari montato da CD o su chiavetta usb - se punti
CONF=/mnt/etc/slackpkg
e dentro slackpkg.conf c'è scritto /var/lib/slackpkg, con slackpkg di 14.2 verrebbe inteso come /quello del sistema madre indipendente che specifichi o meno ROOT

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 19:32
da ponce
ZeroUno ha scritto:
mar 25 feb 2020, 19:27
Se è un sistema esistente - magari montato da CD o su chiavetta usb - se punti
CONF=/mnt/etc/slackpkg
e dentro slackpkg.conf c'è scritto /var/lib/slackpkg, con slackpkg di 14.2 verrebbe inteso come /quello del sistema madre indipendente che specifichi o meno ROOT
non dovrebbe essere un problema, tanto il contenuto di /var/lib/slackpkg viene aggiornato di continuo: anche se viene sovrascritto con un altro all'aggiornamento successivo puo' tranquillamente ricambiare tutto.

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 19:33
da ZeroUno
In effetti credo che l'idea è l'allineamento di $ROOT di pkgtools.
ROOT=/mnt installpkg
usa sia /var/lib/pkgtools che altro da /mnt, file temporanei inclusi.

P.S. Non sto dicendo che è meglio come l'ha pensata rwalkman, ma solo che non sono mai stati espressamente definiti casi d'uso per cui si possa dire è meglio questo o quello. Per lxc indubbiamente era meglio slackpkg 2.82.2

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 20:06
da ponce
ZeroUno ha scritto:
mar 25 feb 2020, 19:33
P.S. Non sto dicendo che è meglio come l'ha pensata rwalkman, ma solo che non sono mai stati espressamente definiti casi d'uso per cui si possa dire è meglio questo o quello. Per lxc indubbiamente era meglio slackpkg 2.82.2
ribadisco, secondo me per lxc era ok fino alla 2.84.0_beta6, a un livello pratico basterebbe fare il revert delle ultime modifiche: tuttora non capisco per quale caso effettivo di malfunzionamento siano state fatte, ma a questo punto credo nessuno.