[PKGBUILD] rcman

Mise à jour / Création /debug de paquetages
Tapi
Hankyu
Messages : 13
Inscription : lun. 05 févr. 2007, 03:21

[PKGBUILD] rcman

Message par Tapi »

Mesdames et messieurs,

Par la présente je vous informe de la naissance de rcman.
Le petit est venu au monde ce soir jeudi 10 mai, à 22h23.
Il semble en bonne santé, malgré un accouchement quelque peu difficile sur AUR ;)

Bon, cessons les simagrées. :D
Je me suis amusé à programmer un petit soft, que j'ai nommé rcman, pour m'entraîner à coder en haskell ; mais voilà, il semble intéresser certaines personnes.
Ce soft permet la gestion des services à lancer au démarrage du PC ; autrement dit, il manipule le tableau DAEMONS du fichier /etc/rc.conf en ajoutant et supprimant des services.

Vous pourrez trouver son PKGBUILD sur AUR :
http://aur.archlinux.org/packages.php?d ... 1&ID=10858

Comme à l'accoutumée, un petit "yaourt -S rcman" vous permettra de l'installer.

Je suis à l'écoute d'absolument toutes vos remarques (constructives :twisted:) et idées pour l'amélioration de cet outil !

Bien amicalement,
Tapi 8)
Avatar de l’utilisateur
gyo
Maître du Kyudo
Messages : 1049
Inscription : jeu. 19 avr. 2007, 10:40
Localisation : Nantes (44)

Message par gyo »

Ok, c'est bien que quelqu'un ait eu (enfin) l'idée de faire un programme de gestion des services... C'est propre et ça marche, cependant ton programme est un peu trop permissif et manque de fonctionnalités :

les trucs qui vont pas :
1) on peut ajouter un service déjà présent
2) on ne peut pas changer le préfix d'un service sans le supprimer et le rajouter avec le bon préfix
3) on peut rajouter un service qui n'existe pas (genre 'dtc' :roll:)

les fonctionnalités à rajouter :
1) lister touts les services disponibles
2) mettre des gardes fou pour éviter de mettre le service plusieurs fois
3) pouvoir arrêter/(re)démarrer et voir le statut d'un service dans ce style là :
rcman <service_xy> (start|stop|status|restart)
4) lister les status des services en cours

Pas banal de programmer en haskell :). Bonne continuation !
commentaire rédigé à l’aide d’un clavier ergonomique bépo
KISS MY ARCH
Avatar de l’utilisateur
marc[i1]
Maître du Kyudo
Messages : 1753
Inscription : ven. 27 oct. 2006, 10:48
Localisation : Nantes (44)

Message par marc[i1] »

Et là encore une fois la team archlinux.fr avais pensé à tout ... :lol:

http://bugs.archlinux.fr/
amis archers, profitont des outils offert et remercions le seigneur Warnaud ! :D
Ne vous emmerdez plus, emmerdez les autres.
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Message par warnaud »

marc[i1] a écrit :... seigneur Warnaud ! :D
C'est pas saigneur ? :D
Ouais tapi si tu veux on peut incorporer rcman dans bugs.archlinux.fr pareil pour les autres projets d'ailleurs :)
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Tapi
Hankyu
Messages : 13
Inscription : lun. 05 févr. 2007, 03:21

Message par Tapi »

Nouvelle release !
Et voici que, moins de 24h après la version 0.1, sort la version 0.2.

Les changements au programmes sont :
- ajout de la fonctionnalité status qui affiche les services démarrés :

Code : Tout sélectionner

    rcman -S
    rcman status
- ajout de la fonctionnalité list qui affiche tous les services installés :

Code : Tout sélectionner

    rcman -l
    rcman list
- ajout de la fonctionnalité start/stop/restart (je vais pas vous faire un dessin :P) :

Code : Tout sélectionner

    rcman start <service>
    rcman stop <service>
    rcman restart <service>
En ce qui concerne le caractère trop "permissif" du soft, je n'ai rien modifié.
J'espère les corriger d'ici la prochaine release. ;)

Vraiment, ne vous privez pas pour faire des remarques, ça ne peut que m'aider !

Salutations :)
Tapi
Dernière modification par Tapi le sam. 12 mai 2007, 02:49, modifié 1 fois.
Tapi
Hankyu
Messages : 13
Inscription : lun. 05 févr. 2007, 03:21

Message par Tapi »

marc[i1] : Ca m'intéresse à fond ! :)
Ca permettrait d'avoir un vrai retour sur le fonctionnement du soft...

Moi voter oui ! :D
Tapi
Hankyu
Messages : 13
Inscription : lun. 05 févr. 2007, 03:21

Message par Tapi »

Histoire de garder un bon rythme, environ 6h30 après la sortie de la 0.2, c'est la 0.3 qui pointe le bout de son nez !
Rassurez-vous, ça va se calmer... ;)


Pas mal d'améliorations sont au programme :

- ajout à la commande status de la possibilité d'afficher le statut d'un service particulier :

Code : Tout sélectionner

    $ rcman status mpd
    Service "mpd" is running
    $ rcman -S samba
    Service "samba" is NOT running
    $
- ajout de gardes-fou : il est désormais impossible d'ajouter ou démarrer/arrêter/redémarrer un service qui n'existe pas, d'ajouter un service qui est déjà présent dans la liste, de même que de démarrer un service déjà lancé ou arrêter/redémarrer un service qui ne l'est pas :

Code : Tout sélectionner

    # rcman add abcdef
    Error: can't find service "abcdef"
    # rcman add gdm
    Error: service "gdm" is already there, at position 11
    # rcman start syslog-ng
    Error: service "syslog-ng" is already running
    # rcman stop samba
    Error: service "samba" is not running
    #
- ajout de la commande mod : cette commande permet de changer à la volée les paramètres d'un service (à savoir les préfixes et la position), sans avoir à le supprimer et à le recréer par la suite. Par exemple, si mpd est le 5e service et est lancé en avant-plan, pour le lancer en 8e en arrière-plan, taper :

Code : Tout sélectionner

    # rcman mod @mpd 8
    Updated service "mpd" : position 8, enabled, in background
    #
Le dernier paramètre (la position) est optionnel ; s'il est omis, le service est recréé à la même position.
Ainsi, pour désactiver le service sshd mais le conserver dans la liste, taper :

Code : Tout sélectionner

    # rcman mod '!sshd'
    Updated service "sshd" : position 7, disabled, in foreground
    #
ou

Code : Tout sélectionner

    # rcman mod \!gdm
    Updated service "gdm" : position 11, disabled, in foreground
    #
- ajout de versions courtes des commandes start, stop, restart (et mod) : -U (Up), -D (Down), -R (Restart) et -M (Mod)

- amélioration de la reconnaissance et de la détection des services, ainsi que de la lisibilité et de la modularité du code, pour ceux que ça intéresse... ;)


A titre d'information, voici la page d'aide :

Code : Tout sélectionner

rcman version 0.3. Written by Simon Malinge
Licensed under the terms of the GNU GPL : <http://www.gnu.org/licenses/gpl.html>

Usage : rcman [OPTIONS...]
Manages the DAEMONS array in /etc/rc.conf, controls and displays information about services

  -U,  start SERVICE        Start SERVICE
  -D,  stop SERVICE         Stop SERVICE
  -R,  restart SERVICE      Restart SERVICE
  -S,  status [SERVICE]     Show SERVICE status
                            If SERVICE is not specified, show all running services
  -a,  add SERVICE [POS]    Add SERVICE at position POS in rc.conf
                            Prefix SERVICE with '@' to start in background
                            Prefix SERVICE with '!' to disable
                            If POS is not specified, add at the end of the list
  -d,  del SERVICE          Delete SERVICE from rc.conf
  -m,  mod SERVICE [POS]    Modify SERVICE in rc.conf
                            Update prefixes and position : same as "-a" for an existing service
  -l,  list                 List installed services
  -s,  show                 Show the contents of the DAEMONS array in rc.conf
  -h                        Show this help and exit

Bien le bonsoir :P
Tapi


PS: le package est désormais dans sa version 0.3-2 : cela corrige le problème de la dépendance manquante à gmp.
Dernière modification par Tapi le sam. 12 mai 2007, 18:03, modifié 1 fois.
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Message par warnaud »

Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Tapi
Hankyu
Messages : 13
Inscription : lun. 05 févr. 2007, 03:21

Message par Tapi »

Juste un petit post pour vous informer de la création du projet rcman sur flyspray (http://bugs.archlinux.fr).
Merci de passer par flyspray si vous découvrez un bug ;)
En ce qui concerne les "feature request", libre à vous de choisir si vous voulez les poster ici ou sur flyspray.

Merci à Warnaud et marc[i1] !
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Message par warnaud »

De rien, si le post prends de l'ampleur ou que tu le souhaite pour plus de clarté on peut créer une catégorie dans le forum carrément
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Avatar de l’utilisateur
Tebo
Chu Ko Nu
Messages : 368
Inscription : sam. 17 mars 2007, 23:24

Message par Tebo »

Mais mais c'est très bien tous sa!
Je suis sûr que yaourt pourrait avalé rcman, on aurait une sorte de wajig pour arch :D

http://www.togaware.com/wajig/
Tapi
Hankyu
Messages : 13
Inscription : lun. 05 févr. 2007, 03:21

Message par Tapi »

Version 0.3.1 :
Les modifications effectuées sont mineures.
La page d'accueil a été modifiée pour la page projet de flyspray.

Tebo : yaourt est écrit en bash et rcman en haskell, ça demanderait du boulot de les assembler, mais pourquoi pas... ;)

Warnaud : en toute franchise, je serais pas contre l'idée de la catégorie dans le forum... Après, faut voir si rcman branche suffisamment de personnes pour que ça en vaille la peine :)
Avatar de l’utilisateur
Al1
Daikyu
Messages : 84
Inscription : sam. 12 août 2006, 22:07
Localisation : Beauvais (60)

Message par Al1 »

Salut Tapi

Interessé par ton rcman j'ai voulu l'installer mais ...impossible semble t'il a cause de mon architecture
Es tu au courant , te l'as ton deja signalé ??
Bravo en tout cas
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Message par warnaud »

Al-1 il te faut ghc

Code : Tout sélectionner

yaourt -S ghc
C'est le compilateur haskell.
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Avatar de l’utilisateur
Al1
Daikyu
Messages : 84
Inscription : sam. 12 août 2006, 22:07
Localisation : Beauvais (60)

Message par Al1 »

Ah bien, merci warnaud...
J'essaye ....

Edit: Malgré l'install dudit paquet, le probleme retse le meme avec le meme message:

Code : Tout sélectionner

==> Building and installing package
==> ERROR: rcman is not available for the 'athlon' architecture.
    Note that many packages may need a line added to their ./PKGBUILD
    such as arch=('athlon').
Error: Makepkg was unable to build rcman package.
Edit2
Apres l'ajout dans le PKGBUILD de
arch=(athlon)
j'ai ce message :

Code : Tout sélectionner

FINISHED --14:02:15--
Downloaded: 162,209 bytes in 2 files
Checking md5sum of rcman-i686.gz: OK
==> Compressing man pages...
==> Generating .FILELIST file...
==> Generating .PKGINFO file...
==> Compressing package...
==> Removing installed dependencies...
error: no targets specified (use -h for help)

==> Finished making: rcman  (Sun May 13 14:02:16 CEST 2007)

==>  Continue installing 'rcman'? [Y/n] 
==>   ----------------------------------------------
==>


Chargement des données du paquet... 

Erreur: l'ajout de la cible './rcman-0.3.1-1-athlon.pkg.tar.gz' (paquet invalide ou corrompu) a échoué

==> WARNING: rcman-0.3.1-1-athlon.pkg.tar.gz will be kept in /tmp/
Tapi
Hankyu
Messages : 13
Inscription : lun. 05 févr. 2007, 03:21

Message par Tapi »

Al1: C'est bizarre tout ça...
Peux-tu me donner le résultat des commandes "uname -a", "uname -m" et "cat /proc/cpuinfo" sur ton poste, ainsi que la valeur de la variable CARCH dans /etc/makepkg.conf ?

Merci d'avance :)
Avatar de l’utilisateur
Al1
Daikyu
Messages : 84
Inscription : sam. 12 août 2006, 22:07
Localisation : Beauvais (60)

Message par Al1 »

Tapi a écrit :Al1: C'est bizarre tout ça...
Peux-tu me donner le résultat des commandes "uname -a", "uname -m" et "cat /proc/cpuinfo" sur ton poste, ainsi que la valeur de la variable CARCH dans /etc/makepkg.conf ?

Merci d'avance :)
Bien sur Tapi

Code : Tout sélectionner

alain ~ $ uname -a
Linux Alain_Arch 2.6.19-ALAIN #3 PREEMPT Sun Apr 8 23:47:28 CEST 2007 i686 AMD Athlon(TM) XP 1800+ AuthenticAMD GNU/Linux

Code : Tout sélectionner

$ uname -m
i686

Code : Tout sélectionner

alain ~ $ cat /proc/cpuinfo
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 6
model		: 8
model name	: AMD Athlon(TM) XP 1800+
stepping	: 1
cpu MHz		: 1533.530
cache size	: 256 KB
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow ts
bogomips	: 3068.40

Code : Tout sélectionner

# /etc/makepkg.conf
#

#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The FTP/HTTP download utility that makepkg should use to acquire sources
export FTPAGENT="/usr/bin/wget --continue --passive-ftp --tries=3 --waitretry=3 --no-check-certificate"
#export FTPAGENT="/usr/bin/snarf"
#export FTPAGENT="/usr/bin/lftpget -c"

#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
export CARCH="athlon"
export CHOST="athlon-pc-linux-gnu"
#-- Exclusive: will only run on i686 or higher (P6, Athlon)
export CFLAGS="-march=athlon -O2 -pipe"
export CXXFLAGS="-march=athlon -O2 -pipe"
#-- Optimized: will run on any x86, but optimized for i686
#export CFLAGS="-mcpu=i686 -O2 -pipe"
#export CXXFLAGS="-mcpu=i686 -O2 -pipe"
#-- Make Flags: change this for DistCC/SMP systems
#export MAKEFLAGS="-j2"

#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
#-- Fakeroot: for building packages as a non-root user
export USE_FAKEROOT="y"
#-- DistCC: a distributed C/C++/ObjC compiler (modify MAKEFLAGS too)
export DISTCC="n"
#-- A space-delimited list of hosts running in the DistCC cluster
export DISTCC_HOSTS=""
#-- Colorized output messages
export USE_COLOR="y"

#########################################################################
# GLOBAL PACKAGE OPTIONS
#########################################################################
#
#-- Don't strip symbols from binaries/libraries
#export NOSTRIP="1"
#-- Keep doc and info directories
#export KEEPDOCS="1"

#########################################################################
# PACKAGE OUTPUT
#########################################################################
#
#-- Destination: specify a fixed directory where all packages will be placed
export PKGDEST=/var/abs/local/public/
#-- Packager: name/email of the person or organization building packages
#export PACKAGER="John Doe <john@doe.com>"


# sourceforge local mirror added by archconfig
export sfmirror=heanet.dl.sourceforge.net
Tapi
Hankyu
Messages : 13
Inscription : lun. 05 févr. 2007, 03:21

Message par Tapi »

Al1: Ok, je pense avoir trouvé...
Le problème semble venir de ton makepkg.conf, et plus précisément de la variable CARCH.
En fait, tu n'as aucune raison de mettre cette variable à "athlon". C'est même une chose à ne pas faire (le problème qui t'arrive en est la preuve).
La variable CARCH sert à spécifier l'architecture processeur de ton ordinateur. Pour un PC, CARCH peut prendre les valeurs "i686" et "x86_64".
Dans ton cas, c'est "i686". "athlon" n'est que le modèle de ton processeur, et non son architecture.
Tu peux tout à fait optimiser tes options de compilation, mais en aucun cas tu n'es censé modifier CARCH.

Réessaie d'installer rcman avec CARCH à "i686", et dis-moi si ça marche... ;)
Avatar de l’utilisateur
Al1
Daikyu
Messages : 84
Inscription : sam. 12 août 2006, 22:07
Localisation : Beauvais (60)

Message par Al1 »

Merci bien Tapi pour ta reponse
Et cette fois apres la modif cela fonctionne
Par contre cette variable est comme ça depuis tres longtemps
Je crois meme pouvoir dire que c'est wain qui me l'avait fait mettre a cette valeur
(Excuse moi wain si je me trompe) :oops:
Avatar de l’utilisateur
marc[i1]
Maître du Kyudo
Messages : 1753
Inscription : ven. 27 oct. 2006, 10:48
Localisation : Nantes (44)

Message par marc[i1] »

surtout que tu vas faire une mise à jour vers pacman3 et ton makepkg.conf sera à refaire ... profite en pour migrer :)
Ne vous emmerdez plus, emmerdez les autres.
Répondre