pkgtool: problemi con remove!!

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2419
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 14.2
Desktop: xfce4

Messaggio da slucky »

Allora caro albatros, oggi ho avuto la prova che hai centrato in pieno il problema e che la tua teoria è esatta!!! =D>
Ho infatti disinstallato gnome-slacky che ha molti pacchetti ( scusa submax non avevo visto che ce l'opzione remove all nel menu :oops: ) e subito pkgtool ha ripreso a funzionare perfettamente con la funzione remove, appena ho reinstallato gnome-slacky, perchè molti programmi mancando le librerie non funzionavano, mi è riapparso il solito errore PKGTOOL.REMOVED!!! :(
Ora quindi, non resta che informare gli sviluppatori di dialog e pkgtool ,cioè Pat e il suo staff del problema, nel frattempo come hai detto, si potrebbe fare una patch da usare in caso di problemi con il programma, per risolvere momentaneamente, prima che il team di Slackware decida come muoversi a riguardo.
Potresti scrivere tu a Pat, con la tua competenza spiegheresti molto bene tecnicamente il problema con l'aiuto e la consulenza di submax e gohanz, :)
Io con l'inglese sono messo male se no ti aiuterei :lol: :lol:

Ciao e un salutone a tutti!!! :D

Avatar utente
submax82
Staff
Staff
Messaggi: 3202
Iscritto il: mer 31 ago 2005, 0:00
Desktop: xfce
Distribuzione: SalixOS
Contatta:

Messaggio da submax82 »

ottima notizia... appena posso lo vedo un pò ... è un pò complicato però :?

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Allora, posto un sistema "quick and dirty" sul quale non do nessuna garanzia e sul quale non mi assumo alcuna responsabilità.

Codice: Seleziona tutto

--- pkgtool     2007-07-30 23:10:08.000000000 +0200
+++ pkgtool.test        2007-07-30 23:01:45.000000000 +0200
@@ -228,26 +228,34 @@
    chmod 1777 /tmp
    continue
   fi  
+
+  create_list_of_files_to_remove ()
+{
+FILES=`ls $ADM_DIR/packages`
+     if [ -n "$FILES" ]; then
+       cd $ADM_DIR/packages
+       { grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \
+       | sed -n 'h;n;/\x00/{h;n;};x;s/  */ /g;s/ $//;s/[\"`$]/\\&/g
+           s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" off "Select\/Unselect removing package \1" \\/;p' > $TMP/temporary_list \
+     
+   fi
+}
+
   if [ "$REPLY" = "Remove" ]; then
    #dialog --title "SCANNING" --infobox "Please wait while Pkgtool scans \
 #your system to determine which packages you have installed and prepares \
 #a list for you." 0 0
    # end section
    (
+create_list_of_files_to_remove #call the function to create a list of installed packages
      cat << EOF
 dialog --title "SELECT PACKAGES TO REMOVE" --item-help --checklist \
 "Please select the \
 packages you wish to Remove. Use the \
 spacebar to select packages to delete, and the UP/DOWN arrow keys to \
-scroll up and down through the entire list." 20 75 11 \\
+scroll up and down through the entire list." 20 75 11 \
+--file $TMP/temporary_list \\
 EOF
-     FILES=`ls $ADM_DIR/packages`
-     if [ -n "$FILES" ]; then
-       cd $ADM_DIR/packages
-       { grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \
-       | sed -n 'h;n;/\x00/{h;n;};x;s/  */ /g;s/ $//;s/[\"`$]/\\&/g
-           s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" off "Select\/Unselect removing package \1" \\/;p'
-     fi
      echo "2> $TMP/return"
    ) > $TMP/rmscript
    if [ -L $LOG -o -r $LOG ]; then
@@ -268,7 +276,7 @@
 been removed. A complete log of the files that were removed has been created \
 in $TMP: PKGTOOL.REMOVED." 0 0
    fi
-   rm -f $TMP/rmscript $TMP/return $TMP/tmpmsg $TMP/SeT*
+   rm -f $TMP/rmscript $TMP/return $TMP/tmpmsg $TMP/SeT* $TMP/temporary_list
    chmod 755 /
    chmod 1777 /tmp
 # No, return to the main menu:
Si tratta di una piccolissima patch, per applicarla basta copiare pkgtool nella stessa directory dove è stata messa la patch (io l'ho chiamata patch-pkgtool) e dare:
patch -p0 <nome-della-patch(es.patch-pkgtool)
Purtroppo nella procedura di copia e incolla l'applicazione della patch può non riuscire (almeno a me non funzionava più...), così ho messo in:
http://www.inghi.it/download/prova-pkgtool.tar.bz2 il pkgtool modificato e la patch da applicare.
Volendo si può usare direttamente il pkgtool modificato, che ho chiamato pkgtool.test (anzi, è la cosa più semplice da fare).

Le modifiche sono molto grezze: viene semplicemente scritta una funzione che usa pari pari il metodo di Patrick per preparare la lista dei pacchetti, solo che l'output viene scritto sul file temporary_list, la funzione viene poi chiamata prima di dialog ed a dialog viene passato il file temporary_list creato poco prima con l'opzione --file, quindi fra i file da rimuovere è stato incluso anche temporary_list.

Ho provato la versione modificata per rimuovere un pacchetto e funziona, ovvero si comporta come pkgtool normale anche se dietro le quinte funziona in maniera leggermente diversa (e teoricamente un po' meno veloce, ma si dovrebbe notare poco), quello che non so è come si comporti con l'errore famoso. Si potrebbe applicare allo script di test che avevo fatto l'altro giorno, ma stasera, scusatemi, ho poco tempo e anche domani e mercoledì mattina sarò alquanto impegnato.
Se ne avete voglia e coraggio (e, soprattutto, se avete le spalle coperte da un bel backup aggiornato di tutto), provate direttamente il pkgtool modificato, sui possibili danni del quale, ripeto, non mi assumo alcuna responsabilità, altrimenti aspettate che faccia la prova sicura fra due o tre giorni.
Magari, se ne avete voglia, leggete prima le modifiche fatte e proponete o fate direttamente tutte le migliorie del caso, soprattutto se rilevaste pericolosi errori (le modifiche che ho fatto io sono poche ed idiote, ma non si sa mai).

Attenzione, il pkgtool modificato non ha la pretesa di aver risolto l'errore, si limita passare un file anziché una lista di argomenti a dialog, così come proposto da submax82.
Se l'errore dovesse persistere, bisognerebbe procedere in altra maniera
,ad esempio dividendo l'elenco in più schermate.

Non ho visionato le altre parti di pkgtool, ma può darsi che ci siano altre parti dove l'uso di dialog potrebbe in futuro dar luogo ai problemi già riscontrati; così a occhio direi che potrebbe essere a rischio la chiamata a remove_packages se uno volesse rimuovere un numero molto grande, diciamo almeno qualche migliaio, di pacchetti con pkgtool, perché anche qui i nomi dei pacchetti da rimuovere sono passati tutti insieme come argomento alla funzione, mentre una modalità sicura, anche se più lenta, sarebbe passarli uno a uno (come poi remove_packages fa a sua volta con removepkg) o a gruppetti (ma è assai improbabile che qualcuno voglia rimuovere un numero così grande di pacchetti con pkgtool).

Per quanto riguarda la comunicazione a Patrick, posso scrivergli anch'io, ma se volesse farlo qualcuno che Patrick conosce già forse sarebbe meglio. In ogni caso, tenete conto che fino a giovedì pomeriggio avrei poco tempo per farlo...

Un salutone a tutti! Buonanotte! :D

Avatar utente
submax82
Staff
Staff
Messaggi: 3202
Iscritto il: mer 31 ago 2005, 0:00
Desktop: xfce
Distribuzione: SalixOS
Contatta:

Messaggio da submax82 »

ottimo lavoro è proprio quello a cui pensavo... ora aspettiamo che slucky o altri con molti pacchetti provino la modifica...

Avatar utente
gohanz
Staff
Staff
Messaggi: 5832
Iscritto il: mar 30 nov 2004, 0:00

Messaggio da gohanz »

Mihh funziona!!!!Immagine Adesso ti tocca telefonare a Pat!Immagine

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Oh, bene! :D
Stasera sono proprio di corsa, domani vedrò allora di buttar giù due righe per Patrick!

Salutoni a tutti! :D

Avatar utente
submax82
Staff
Staff
Messaggi: 3202
Iscritto il: mer 31 ago 2005, 0:00
Desktop: xfce
Distribuzione: SalixOS
Contatta:

Messaggio da submax82 »

wow

:wav:

ma il "limite" dei parametri non c'è anche nella funzione di rimozione a cui accennavi? questo per spedire una patch completa a Pat ...

comunque facci sapere la sua risposta ;)

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

grande albatros!

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Ho scritto a Patrick la seguente breve email, ora aspettiamo la sua eventuale risposta...
From: Gabriele Inghirami <suonodelsilenzio aA-Tt tiscalinet punt it>
To: volkerdi@slackware.com
Subject: Problems with pkgtool - remove when many packages have been installed
Date: Wed, 1 Aug 2007 21:38:03 +0200
X-Mailer: Sylpheed 2.4.4 (GTK+ 2.10.13; i686-pc-linux-gnu)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello!

I'm reporting to you a problem encountered by some of the slacky.eu community members involving pkgtool.

Here is a brief description of the problem:
when the user has a lot of packages installed (let's say more than 1300) and he wants to use pkgtool to remove some of them, the procedure fails and in the file /var/log/setup/tmp/PKGTOOL.REMOVED there is written:
no such package: /var/log/setup/tmp/rmscript:. Can't remove.
No such package: line. Can't remove.
No such package: 1:. Can't remove.
No such package: /usr/bin/dialog:. Can't remove.
No such package: Argument. Can't remove.
No such package: list. Can't remove.
No such package: too. Can't remove.
No such package: long. Can't remove.

I gave a look at /sbin/pkgtool and, after some investigations and various tries, I found that this happens when dialog (at line 238) receives an argument greater than 131072 bytes (it is an issue of linux to have (by default) ARG_MAX = 131072 - also on my system getconf ARG_MAX gives this value).
So, if there is a big number of installed packages, it is not difficult to reach this limit (it is quite easy, after the modularization of X and its splitting into smaller packages, if you install a (very nice) project like gnome-slacky).

I made small modifications to pkgtool, using a function that writes the list of the installed packages into a temporary file and then passing this file to dialog with the --file option.
The problem now seems solved.

Probably also the call of remove_packages (at line 261) could give troubles if the user wanted to remove with pkgtool a very big number of packages (even this condition it is unlikely to happen).
I didn't checked the rest of pkgtool and I don't know if the described problem may arise also in other parts of the code.

I put the modified version of pkgtool and the patch that I made on http://http://www.inghi.it/download/pro ... ol.tar.bz2 , please, give it a look.

If you have got a friend who knows italian, you can give a look at the discussion about this problem at:
viewtopic.php?t=19967

Please, feel free to write to me if you need more informations abut the issue.

Many thanks for your kind attention and, above all, for your great and admirable work!

Have a nice day!

Cheers.

Gabriele Inghirami
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFGsOERweLhPg1GbdYRAqLXAJ4wNgTCfS1nDUARl2KSO6sms2exTACgtIX2
4ULJpJCoL/IIHlnaw2yR7/Y=
=oi91
-----END PGP SIGNATURE-----

Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2419
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 14.2
Desktop: xfce4

Messaggio da slucky »

Grande Albatros :occasion5:
e davvero complimenti non solo perchè sei un mago del pinguino :D ............ma anche per il tuo inglese :lol:
La tua patch funziona anche a me e risolve il problema, come già detto da gohanz, ora aspettiamo la risposta del mitico Pat ;)
Però possiamo dire che anche questo bachetto è stato risolto, ed è il secondo che mi capita di trovare dopo quello riguardante i driver nvidia-legacy per vecchie schede grafiche, quando provavo a far funzionare kernelpkg di submax sul mio vecchio macinino :lol:

Ciao e ancora complimentoni, stammi bene ;)

Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2419
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 14.2
Desktop: xfce4

Messaggio da slucky »

Ragazzi, diamo tempo................stanno lavorando e studiando il caso..................non è giusto essere assillanti.............. okay, però speriamo che prima o poi Pat ti risponda albatros o ci dia qualche delucidazione sul problema...............e su come hanno deciso di risolverlo.

Ciao a tutti!!! :D

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Se e quando Patrick mi risponderà, non mancherò di riportare la risposta qui sul forum... :)
L'email dovrebbe essere regolarmente arrivata, spero non sia rimasta impigliata in qualche filtro anti-spam... :roll:
Penso, più probabilmente, che Patrick si sia preso un bel periodo di vacanza, visto e considerato che il changelog è fermo da tempo... :)

Avatar utente
gohanz
Staff
Staff
Messaggi: 5832
Iscritto il: mar 30 nov 2004, 0:00

Messaggio da gohanz »

Visto che il problema si sta diffondendo http://www.linuxquestions.org/questions ... p?t=576207 propongo di inserire pkgtool modificato tra i pacchetti di Slacky! Questo con una breve descrizione della correzione del bug!

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

gohanz ha scritto:Visto che il problema si sta diffondendo http://www.linuxquestions.org/questions ... p?t=576207 propongo di inserire pkgtool modificato tra i pacchetti di Slacky! Questo con una breve descrizione della correzione del bug!
per me si può fare

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Anche per me, magari specificando anche che si tratta di una soluzione provvisoria in attesa del nuovo pkgtool ufficiale ed evidenziando che è un fix non ufficiale...
Attenzione però che, così com'è, anche l'opzione View soffre dello stesso problema, richiede solo un numero più alto di pacchetti (anche la funzione remove_packages, ma è molto difficile provocare l'errore con essa, con View è solo questione di tempo).
E infatti, nella parte iniziale di pkgtool si legge:
# Sun Oct 24 23:11:40 BST 2004
# * Further optimisations by Jim Hawkins <jawkins@armedslack.org>
# - dramatically improved the speed of the "View" option
# Thu Nov 04 12:19:56 BST 2004
# * More optimisations by Jim Hawkins
# - improved "Remove" speed in a similar manner to "View"
Così i problemi dell'una sono anche i problemi dell'altra...
Si può comunque risolvere allo stesso modo di remove e, dato che ci siamo, si può anche fixare remove_packages, per quanto siano improbabili per essa le condizioni perché si verifichi l'errore (alcune migliaia di pacchetti da rimuovere selezionati a mano).

Se decidiamo di mettere su slacky pkgtool modificato, forse converrebbe a questo punto fixare anche view anziché aspettare l'errore...
Se lo vuol fare qualcuno, ben venga, altrimenti posso farlo anch'io, ma non prima di due o tre giorni a partire da domani (non è lungo, né difficile, ma non voglio introdurre errori banali facendolo distrattamente avendo poco tempo da dedicargli).

Visto che poi si tratta di una componente propria di slackware, avrei preferito che ci avesse pensato direttamente Patrick, così come poi in seguito sicuramente farà, solo che da parte sua per ora non ho avuto nessuna risposta; d'altra parte il changelog è sempre fermo al 1° luglio, quindi è probabile che si sia preso una bella vacanza... :)

Rispondi