[bug] Problème avec customizepkg

Annonces, dépannage, évolution du projet yaourt
Moonz
newbie
Messages : 3
Inscription : mer. 23 avr. 2008, 12:01

[bug] Problème avec customizepkg

Message par Moonz »

Salut,

Je viens de tenter customizepkg (sur liferea), mais yaourt m'a envoyé chier (no files found for liferea). Après (rapide) enquête, c'est la ligne là qui pose problème:

wget -q "${url/only_with_tag=*/only_with_tag=$branchtags}" -O "$YAOURTTMPDIR/page.tmp" || continue

Wget indique qu'il a bien téléchargé la page, mais celle-ci reste inchangée, ne me demandez pas pourquoi (oui, c'est un wget tout ce qu'il y a de plus standard, pas patché ni rien). Le patch qui suit a réglé le problème, mais je sais pas si c'est la bonne manière.

Code : Tout sélectionner

--- /usr/bin/yaourt	2008-03-15 20:16:23.000000000 +0100
+++ /tmp/yaourt	2008-04-23 11:57:12.000000000 +0200
@@ -387,7 +387,7 @@
 		[ "$MAJOR" != "getpkgbuild" ] && aurcomments $aurid $PKG
 		url=`wget --quiet "${AUR_URL3}${aurid}" -O - | grep "href='http://cvs.archlinux.org.*>CVS<" | sed -e "s/^.*href='//" -e "s/'>CVS<.*$//"`
 	else
-		wget -q "${ABS_URL}&repo=${repository}&q=$PKG" -O "$YAOURTTMPDIR/page.tmp"
+		rm -f "$YAOURTTMPDIR/page.tmp" && wget -q "${ABS_URL}&repo=${repository}&q=$PKG" -O "$YAOURTTMPDIR/page.tmp"
 		manage_error $? || continue
 		if grep -q 'View CVS Entries' "$YAOURTTMPDIR/page.tmp"; then
 			url=`grep 'View CVS Entries' "$YAOURTTMPDIR/page.tmp" | awk -F "\"" '{print $2}'`
@@ -397,7 +397,7 @@
 			if [ ${#urls[@]} -gt 1 -a $TESTING -eq 1 ]; then
 				branchtags="TESTING"
 			fi
-			wget -q "http://archlinux.org${urls[0]}" -O "$YAOURTTMPDIR/page.tmp"
+			rm -f "$YAOURTTMPDIR/page.tmp" && wget -q "http://archlinux.org${urls[0]}" -O "$YAOURTTMPDIR/page.tmp"
 			manage_error $? || continue
 			url=`grep 'View CVS Entries' "$YAOURTTMPDIR/page.tmp" | awk -F "\"" '{print $2}'`
 		fi
@@ -405,7 +405,7 @@
 
 	# Download Files on CVS package page
 	if [ -z "$url" ]; then echo "$PKG was not found on abs"; manage_error 1 || continue; fi
-	wget -q "${url/only_with_tag=*/only_with_tag=$branchtags}" -O "$YAOURTTMPDIR/page.tmp" || continue
+	rm -f "$YAOURTTMPDIR/page.tmp" && wget -q "${url/only_with_tag=*/only_with_tag=$branchtags}" -O "$YAOURTTMPDIR/page.tmp" || continue
 	files=( `grep "href=\".*?rev=.*&" "$YAOURTTMPDIR/page.tmp" |  sed -e "s/^.*href=\"//" -e "s/&only_with_tag.*//"` )
 	if [ ${#files[@]} -eq 0 ]; then echo "No file found for $PKG"; manage_error 1 || continue; fi
 	echo
Avatar de l’utilisateur
mélodie
Maître du Kyudo
Messages : 2784
Inscription : lun. 30 oct. 2006, 02:06
Localisation : Pyrénées

Message par mélodie »

Bonjour Moonz,

Je suis sans doute une des rares archères à ne pas (encore) savoir lire le bash, mais je voudrais tout de même te poser une question : quelle costumisation particulière souhaites-tu apporter à liferea :?:

Bon, ben bienvenu.
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

salut, le fait qu'il t'affiche le message montre que le wget se passe bien (|| continue), d'ailleurs, le -O fonctionne exactement comme une redirection, le "rm -f" n'est donc pas necessaire
je dirais que tu as du faire quelque chose avant de modifier yaourt pour que ca fonctionne.
Moonz
newbie
Messages : 3
Inscription : mer. 23 avr. 2008, 12:01

Message par Moonz »

Vieux réflexe à changer d'un ex-gentooiste: c'est simplement pour virer la dépendance sur libnetworkmanager... tout le monde a ses susperstitions :)

Bon, j'ai trouvé le bug, finalement, c'est juste que j'avais continue = on dans mon ~/.wgetrc. Enfin, AMHA, ça reste un bug de Yaourt, il ne devrait pas m'imposer un .wgetrc particulier...

Après lecture du code de wget (c'était pas écrit dans le man), voici une bonne manière de procéder:

* Créer un fichier $YAOURTTMPDIR/wgetrc contenant juste "continue = off"
* Positionner la variable d'environnement WGETRC à $YAOURTTMPDIR/wgetrc

Le tout avant tout appel de wget.

Si vous voulez, je peux faire un vrai patch, mais vu que c'est plutôt trivial...
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

pas forcément une bonne chose, parce qu'en meme temps, ca casserait les autres réglages potentiellement utiles de wgetrc (proxy entre autre), par contre, spécifier stdout en sortie contourne l'option continue:

Code : Tout sélectionner

wget $url -O - > $fichier
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

Merci pour ce retour. Je ferai une modification effectivement (la solution de tuxce est pas mal).
En fait, tout cette partie du code va sauter dès que les devs passeront de CVS à Subversion. Ca sera l'occasion de remanier tout ça. Il faut depuis un moment aussi que j'ajoute l'utilisation du proxy directement dans yaourt (sans avoir à customiser wgetrc), donc la proposition de Moonz est un bonne solution.

En tous cas, bienvenue à toi Moonz :wink:
Répondre