Page 1 sur 1

[afur] correspondance avec AUR [resolu]

Publié : jeu. 19 sept. 2013, 02:01
par coincoin
[EDIT Mod]Split depuis http://forums.archlinux.fr/topic14244.html[/EDIT]
FoolEcho a écrit :paraview m'a échappé lors de ma ronde hebdomadaire
Hum ce qu'a dis FoolEcho m'a mis la puce à l'oreille, je croyais qu'il y avait un script maintenant qui flagait les paquets périmés automatiquement...
Ce qui explique pourquoi il y a toujours un ptit temps de retard :D du coup j'ai regardé et j'ai quelques paquets périmés...

Re: [archlinuxfr] ParaView 4.0.1-2 au archlinuxfr x86_64

Publié : jeu. 19 sept. 2013, 10:51
par FoolEcho
coincoin a écrit :je croyais qu'il y avait un script maintenant qui flagait les paquets périmés automatiquement...
Malheureusement ce n'est pas totalement possible: sur un changement de version oui, mais sur une révision de paquets ça dépend de la nature du changement (si la révision concerne uniquement la mise en forme du PKGBUILD par exemple, ça ne vaut pas le coup de le marquer périmé)... et il y a encore d'autres exceptions qui font que... on peut filtrer ce qui change mais on ne coupe pas à la vérification manuelle, du coup oubli possible comme ici (en général, je fais une ronde par semaine).

Re: [archlinuxfr] ParaView 4.0.1-2 au archlinuxfr x86_64

Publié : jeu. 19 sept. 2013, 11:50
par coincoin
Oui je pensais au changement de versions. J'avais passé un script à tuxce qui permettait de vérifier les versions d'un paquet d'un dépôt perso par rapport à celles de AUR. Et s'il y avait une différence, l'obsolète était mis en évidence.

Re: [archlinuxfr] ParaView 4.0.1-2 au archlinuxfr x86_64

Publié : jeu. 19 sept. 2013, 13:16
par tuxce
Ce n'est pas une question de possible ou pas, c'est largement possible. C'est juste une question de temps, volonté etc.
Avant, il n'y avait rien, j'ai mis ce site pour avoir une vision plus claire des paquets existants sur [archlinuxfr], il est dispo sur le git, et c'est ouvert aux contributions :)

Pour ce qui est du script, le truc n'est pas d'en faire un ou pas (yaourt le fait, package-query* peut le faire, d'autres paquet sur AUR le font, etc.), mais c'est que ça s'intègre au site.
Du coup, comme le reste, au choix :) :
- une personne ayant les accès fera un truc et ça sera bon
- une personne en dehors proposera quelque chose, ça plaira et ça sera bon (afur est né comme ça) et peut être cette même personne aura d'autres idées et ainsi de suite.

(*) j'utilisais cette fonction si ça intéresse (pq est un alias pour package-query) :

Code : Tout sélectionner

archfr_diff () {
  declare -A parchfr=() paur=()
  eval $(pq -Slf'parchfr[%n]=%v;' archlinuxfr )
  eval $(pq -Aif'paur[%n]=%v;' ${!parchfr[@]} )
  for p in ${!paur[@]}; do
    [[ ${parchfr[$p]} != ${paur[$p]} ]] && echo $p ${parchfr[$p]} ${paur[$p]}
  done
}

Re: [archlinuxfr] ParaView 4.0.1-2 au archlinuxfr x86_64[RES

Publié : ven. 20 sept. 2013, 09:14
par FoolEcho
tuxce a écrit :Ce n'est pas une question de possible ou pas, c'est largement possible. C'est juste une question de temps, volonté etc.
Avant, il n'y avait rien, j'ai mis ce site pour avoir une vision plus claire des paquets existants sur [archlinuxfr], il est dispo sur le git, et c'est ouvert aux contributions :)

Pour ce qui est du script, le truc n'est pas d'en faire un ou pas (yaourt le fait, package-query* peut le faire, d'autres paquet sur AUR le font, etc.), mais c'est que ça s'intègre au site.
Le fait est aussi que le dépôt n'étant pas bondé, une vérification manuelle régulière va assez vite à l'aide d'un script du type proposé (peut-être 2 ou 3 paquets par semaine depuis que je le fais).
Ceci étant, ça fait très longtemps que je n'ai pas touché à du php, mais c'est peut-être bien l'occasion du coup. Après c'est plus une question de temps et de ce qu'on veut. J'ai survolé le git, je vois qu'il y a probablement toutes les fonctions pour faire un script automatique ou semi-automatique une fois transmis les infos des paquets périmés...

Tu as un site "crash test" à disposition où il faut suivre ton README et en faire un (un peu la flemme de le remplir donc s'il y a un truc de près quelque part... ^^) ?

Un autre sujet pour savoir ce qui pourrait être envisagé peut-être ? :copain:

Re: [afur] correspondance avec AUR

Publié : ven. 20 sept. 2013, 14:48
par tuxce
Je n'ai pas de site de test, par contre, je peux te fournir le dump de la base.
Juste pour donner les trucs auquels j'avais pensé mais que je n'ai pas eu le temps de faire (pour pleins de raisons toutes plus fausses les unes que les autres :) ) :
- Au départ, je partais sur une table genre :

Code : Tout sélectionner

create table pkg_aur
(
	pkg_id integer unsigned not null,
	name varchar(64) not null,
	version varchar(32) not null,
	index (pkg_id),
	foreign key (pkg_id) references packages (id) on delete cascade
);
qui serait remplit par un cron :

Code : Tout sélectionner

pq -Aif "insert into pkg_aur (pkg_id, name, version) select id, '%n', '%v' from packages where name = '%t';" $(mysql --skip-column-names -u user -p pass  afur <<< "select name from packages;") | mysql -u user -p pass  afur
Puis ensuite, je me suis dit, une fonction JS qui traiterait le json obtenu d'AUR ferait aussi bien l'affaire, ça aurait le mérite d'être en temps réel et c'est le client qui se tapera la demande.

Enfin bref, c'était des pistes (un peu commencées mais pas fini).
Je t'envoies le dump par mail dans la journée :chinois:

Re: [afur] correspondance avec AUR

Publié : ven. 20 sept. 2013, 17:00
par FoolEcho
tuxce a écrit :Je n'ai pas de site de test, par contre, je peux te fournir le dump de la base.
Volontiers.
tuxce a écrit :Juste pour donner les trucs auquels j'avais pensé mais que je n'ai pas eu le temps de faire (pour pleins de raisons toutes plus fausses les unes que les autres :) ) :
:copain:
tuxce a écrit :Puis ensuite, je me suis dit, une fonction JS qui traiterait le json obtenu d'AUR ferait aussi bien l'affaire, ça aurait le mérite d'être en temps réel et c'est le client qui se tapera la demande.

Enfin bref, c'était des pistes (un peu commencées mais pas fini).
Je pense que c'est de ça dont il faut discuter de toutes manières.
Je partais dans l'optique d'un service qui tournerait sur le serveur et qui vérifierait les versions (donc utilisant la fonction que tu as donné précédemment... si le serveur tourne son Arch ?) via une tâche cron ou à la connexion d'un admin selon ce qu'on souhaite, puis transfert de ces élements à afur. De là, au choix:
-soit une page qui recrache la liste des versions périmées en attendant quelqu'un d'habilité pour valider l'envoi des mails (avec courrier type).
-soit prise en charge directe sans intervention manuelle.
Je pense m'orienter vers le premier surtout pour les tests mais même à l'usage, mieux garder la main sur la maintenance.
Après faisant de l'objet, j'utiliserai directement les fonctions php pour recherche de paquets et cie fournies forcément (tu comprends que j'aime pas me casser le c... à réinventer la roue :mrgreen: ). Donc en gros, pas des masses de choses à faire à ce niveau, c'est «juste» faire un peu de légo.

Enfin, tout dépend de ce qu'on veut et ce qui est disponible évidemment: est-ce au site d'aller fouiner AUR directement pour croiser après les résultats avec les paquets d'archlinuxfr ou à une tâche soit cron, soit qui se déclenche si un admin s'y colle ?

Dans tous les cas, je ne vois pas trop l'intérêt d'une table supplémentaire puisqu'effectivement ça peut être fait à la volée.
tuxce a écrit :Je t'envoies le dump par mail dans la journée :chinois:
Ça marche. De toutes manières, je ne garantis pas de délai de livraison. :copain:

Re: [afur] correspondance avec AUR

Publié : ven. 20 sept. 2013, 19:10
par coincoin
Si ça peut servir le bout de code utilisé sur mon ancien repo.

Code : Tout sélectionner

for pkgname in $(ls "$REPODIR"/*/*.pkg.tar.*z | awk "{gsub(/.*\//, \"\"); gsub(/-[^-]+-[0-9.]+-[anyi68x_4]+\.pkg\.tar\..z/, \"\"); print}" | sort -u); do
  verany=$(ls "$REPODIR/any/$pkgname"-*.pkg.tar.*z 2>/dev/null | awk "/\/$pkgname-[^-]+-[0-9.]+-[anyi68x_4]+\.pkg\.tar\..z/{gsub(/.*\/$pkgname-/, \"\"); gsub(/-[anyi68x_4]+\.pkg\.tar\..z/, \"\"); print}")
  ver32=$(ls "$REPODIR/i686/$pkgname"-*.pkg.tar.*z 2>/dev/null | awk "/\/$pkgname-[^-]+-[0-9.]+-[anyi68x_4]+\.pkg\.tar\..z/{gsub(/.*\/$pkgname-/, \"\"); gsub(/-[anyi68x_4]+\.pkg\.tar\..z/, \"\"); print}")
  ver64=$(ls "$REPODIR/x86_64/$pkgname"-*.pkg.tar.*z 2>/dev/null | awk "/\/$pkgname-[^-]+-[0-9.]+-[anyi68x_4]+\.pkg\.tar\..z/{gsub(/.*\/$pkgname-/, \"\"); gsub(/-[anyi68x_4]+\.pkg\.tar\..z/, \"\"); print}")
  aurver=$(wget -qO- "http://aur.archlinux.org/packages/$(echo $pkgname | head -c 2)/$pkgname/PKGBUILD" | awk "BEGIN{FS=\"=\"} {gsub(/ +#.*/, \"\")} /^pkgver=/{pkgver=\$2} /^pkgrel=/{pkgrel=\$2} END{printf \"%s-%s\", pkgver, pkgrel}")
  aururl="http://aur.archlinux.org/packages/$pkgname"
  

    echo -n "<tr><th align='left'><a href=$aururl>$pkgname</a></th><td style='color: "
    [[ "$verany" < "$aurver" ]] && echo -n "red" || echo -n "green"
    echo -n ";'>$verany</td><td style='color: "
    [[ "$ver64" < "$aurver" ]] && echo -n "red" || echo -n "green"
    echo -n ";'>$ver64</td><td style='color: "
    [[ "$aurver" < "$verany" ]] || [[ "$aurver" < "$ver32" ]] || [[ "$aurver" < "$ver64" ]] && echo -n "red" || echo -n "green"
    echo ";'>$aurver</td></tr>"
done

Re: [afur] correspondance avec AUR

Publié : ven. 20 sept. 2013, 19:44
par FoolEcho
coincoin a écrit :Si ça peut servir le bout de code utilisé
Merci mais je ne pense pas en avoir l'utilité: si afur a une zolie base de données, autant s'en servir. 8)

Re: [afur] correspondance avec AUR

Publié : mar. 12 nov. 2013, 13:18
par FoolEcho
Juste pour signaler qu'afur est maintenant à même d'identifier les paquets périmés (signalés ou non sur afur) par rapport à AUR. :majorette: :majorette:

En l'état, un tri peut être effectué via l'option «» accessible à côté du Périmé?, les versions des paquets périmés apparaissant en rouge.

8)

Re: [afur] correspondance avec AUR

Publié : mer. 13 nov. 2013, 02:08
par coincoin
Super travail merci ! Je me disais bien que quelquechose avait changé :D.
Ca va faciliter pas mal de choses :wink:

edit : j'ai essayé d'updater deux packages dropbox et petsc avec afur-makepkg -k et afur-makepkg -s les nouveaux fichiers n'apparaissent pas sur afur est ce lié ?

reedit : merci tuxce !

Re: [afur] correspondance avec AUR

Publié : mer. 13 nov. 2013, 10:22
par tuxce
C'était lié. Les paquets y sont maintenant.