Package Modification/fr
Introduction
Le code source de SME Serveur se trouve dans le CVS de http://www.sourceforge.net dans deux dépôts:
- CVS SME Server qui contient les paquet du noyau de SME Serveur
- CVS SME Contribs qui contient les paquets pour des contributions
Cette page a pour but de vous aider afin de modifier les contributions stockés chez sourceforge.
Installation
Environnement local
- Nous utilisons CVS sans avoir besoin de mezzanine, vérifiez que celui ci est installé (à faire en tant que root)
yum install cvs
- Configurez CVS pour utilsier ssh en créant le fichier /etc/profile.d/smebuild.sh avec le contenu suivant (à faire avec votre utilisateur non root qui sera dédié à l'élaboration de vos contributions)
# Developer environment # This gets symlinked into /etc/profile.d export CVS_RSH=ssh # tell CVS to use ssh # DO NOT set CVSROOT alias rm='rm -i' alias cp='cp -i --preserve=timestamps' alias mv='mv -i'
Vous devez vous déconnecter et vous reconnecter afin que le fichier soit pris en compte.
Accès au système de compilation
Vous pouvez verifier l'état et l'avancé des compilations sur le serveur à cette adresse : [1]
Demandez à Shad ( admin@contribs.org ) qu'il crée un certificat pour vous , en lui donnant l'adresse email à utiliser pour les notifications.
Si vous n'avez pas d'accès à shell.contribs.org avec login et mot de passe demandez le par la même occasion.
yum --enablerepo=smecontribs install plague-client
A partir d'ici n'utilisez plus du tout le compte "root". Utilisez un compte dédié au développement.
Copiez les certicifats et fichiers de configuration dans le dossier ~/
.plague-client.cfg .username.pem .contribs-upload-ca.pem .contribs-server-ca.pem
n'oubliez pas de mettre les bon privilèges aux fichiers
chmod 600 .username.pem
Vérifiez que cela fonctionne
plague-client list_builders Builders: ------------------------------------------------------------------------------------------ build64-1.contribs.org x86_64 amd64 ia32e noarch i386 i486 i586 i686 athlon available build32-1.contribs.org i386 i486 i586 i686 athlon noarch available
Accès à Sourceforge
- Le code de SME Serveur est stocké en CVS à http://SourceForge.net. Pour pouvoir travailler sur votre code, vous devez posseder un compte chez SourceForge. Avec ce compte l'équipe de développement peut vous permettre d'accéder au dépôt CVS. Pour plus d'informations vous pouvez lire:
B04: Créer un nouveau compte E04: CVS (Version Control for Source Code) F02: Génération de clefs SSH et utilisation
- Après que vous ayez créé votre compte SourceForge demandez à l'équipe de vous ajouter un accès en tant que développeur de contributions au dépôt smecontribs. Ouvrez un bogue pour faire cette demande.
- Copiez votre clef locale public SSH sur SourceForge https://sourceforge.net/account/editsshkeys.php
- Si votre nom d'utilisateur local est différent de celui de sf.net modifiez ~/.ssh/config:
Host smeserver.cvs.sourceforge.net User sfusername (without @shell.sf.net) Host smecontribs.cvs.sourceforge.net User sfusername (without @shell.sf.net)
- N'oubliez pas de mettre les bons droits sur le fichier
chmod 600 ~/.ssh/config
Utilisation
Importation du src.rpm
Envoyez un email à Shad, admin@contribs.org, avec l'emplacement ou il peut recuperer celui ci. Il sera importé pour vous dans le système de compilation.
Importation de l'arbre cvs
Il s'agit juste des informations CVS avec l'arborescence, les .SPEC et les patch, aucune source n'est recupérée.
Vous pouvez utiliser ~/home/smeserver ou ce qu'il vous plait.
mkdir ~/smeserver cd ~/smeserver cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P rpms (pour le moment les changements sur smeserver sont fait avec mezzanine, puis mis à jour manuellement par les développeurs)
si vous n'êtes qu'intéressé par le dossier smecontribs il vous suffit de ces lignes :
mkdir ~/smecontribs cd ~/smecontribs cvs -z3 -d:ext:smecontribs.cvs.sourceforge.net:/cvsroot/smecontribs co -P rpms
Pour rafraichir faites la commande suivante depuis le dossier rpm, ou tout autre dossier plus loin dans l'arborescence CVS
cvs update -dPA
Modifier un paquet
Les contributeurs ont les droits pour les commandes patch, tag et build. Si vous avez besoin d'envoyer une nouvelle archive de sources Shad doit le faire pour vous. Envoyez lui par mail à admin@contribs.org. Les fichier binaires sont stockés sur un espace séparé. CVS n'étant pas très efficient avec les fichiers binaires.
Les commandes Mezzanine, (mzsfget, mzclean, mzprep, mzpatch, mzbuild, mzput) ont toutes étaient remplacées par une nouvelle méthode.
Ajoutez un bogue concernant votre contribution à http://bugs.contribs.org against your contrib
Rendez vous dans votre dossier de contribution
cd smecontribs/rpms/smeserver-foo/contribs7
Afin de préparer l'arbre :
cvs update -dPA [optionnel] make clean [optionnel] make prep
Faire un patch
Rendez vous dans l'arbre mis en place et réalisez vos modifications.
Dans le dossier du fichier a modifier :
cp 28UserManagerProxyPass 28UserManagerProxyPass.{patchname}
Ensuite modifiez le fichier original 28UserManagerProxyPass. Afin d'ajouter un fichier faites "touch filename.{patchname}" afin d'vaoir un fichier vraiment vide. (vraiment vide = 0kb, certain logiciels ne savent pas faire çà!)
Une fois que vous avez réalisé toutes les modifications voulues, vous pouvez fabriquer le patch (depuis le dossier contribs7) avec:
make patch SUFFIX={patchname}
Cela va créer et ajouter au CVS un patch pour vous. Il devrait être nommé "name-version-{patchname}.patch" (man gendiff. C'est ce qu'utilise makefile pour générer le fichier diff.)
Appliquer un patch personnel
Voici la méthode pour appliquer un patch préparé autre part,du coup vous n'utilisez pas la commande "make patch". Vous devez donc utiliser "cvs add".
copiez le patch dans le dossier contribs7
cvs add smeserver-foo-locale-2008-xx-xx.patch
Edition du spec
nano -w smeserver-foo.spec
#incrementezla release %define release 15 #ajouter le patch Patch2: smeserver-foo-1.2-widget.patch #metter a jour le changelog, en incluant le numéro de bogue * Fri Jan 11 2008 John Smith <smith@foo.net> 1.2-15 - fixed foo to create bar [SME 3470] #appliquer le patch dans %setup %patch2 -p1
Soumettre au CVS
Compilez localement le rpm afin de le tester, (à noter, cela écrase l'arborescence de travail!). Vous trouverez le rpm d ans le dossier rpm et le src.rpm dans la racine contribs7.
make local
Quand vous êtes satisfait et voulez soumettre votre paquet au serveur de compilation soumettez vos changements. (Merci d'utiliser des commentaires afin que les autres développeurs soient au courant de ce que vous avez fait. Ces commentaires apparaitront dans la ligne de sujet de l'email qui sera envoyé aux autres développeurs.)
cvs commit -m 'your descriptive commit message here'
Vous pouvez automatiser l'ajout du commentaire dans le fichier spec avec la commande 'clog'.
rm -f clog cvs commit -m "$(make clog)"
Puis réalisez le tag des fichiers afin de leur donner l'appartenance à la version à compiler
make tag
Puis envoyez la requete afin que le serveur de compilation récupère la dernière version taguée et la compile dans un environnement emprisonné (chroot mock).
make build
Il est important de ne pas oublier le "make tag" avant de faire le "make build"
Assurez vous de toujours travailler sur la dernière version, d'autres développeur ont pu apporter des modifications(cvs update -dPA)
Vous recevrez, ainsi que l'équipe de mise à jour, un email en cas de succes de la compilation. En cas d'échec vous serez le seul a recevoir un email.
CVS pense-bête Package_Modification/More cvs commands
Publier un paquet
Après que le serveur ai réussi à compiler votre paquet celui-ci sera placer dans le dépôt smetest. Vosu devriez être mis au courant du succès par email.
Quand un paquet est compilé avec succès vous devez vérifier vos changements, dans l'idéal vous devriez avoir un bogue à vérifier pour chaque modification. Après vérification de toutes les modifications et bogues, vous pouvez publier le paquet comme suit:
- Se connecter à shell.contribs.org comme ceci: ssh username@shell.contribs.org
- Naviguer vers le dossier teams : cd /teams
- LE dossier team contient quelques dossiers dont deux sont intéressant, le premier es appelé "updates" et contient les paquets SME, l'autre est appelé " contribs" et contient les contributions compilées. Supposons que nous voulions publier notre contribution nous procèderions comme suit: cd contribs/7
- Maintenant copions les paquets intéressants de smetest à smecontribs, les version anciennes sont supprimées automatiquement: cp smetest/package-name-version.rpm smecontribs/
Workflow
Après que le paquet ait été compilé avec succès il est placé dans le dépôt correspondant par la prochaine mise à jour (40° minute de l'heure en cours). Le paquet se retrouvera soit dans smedev (nouveau) ou dans smetest (existant). Après vérification le paquet est déplacé manuellement de smedev/smetest vers smecontribs (pour les contributions) ou smeupdates-testing (pour les paquets de base).
Mailing Lists
Inscrivez vous à la liste devinfo mailinglist. C'est l'endroit pour discuter du développement du serveur et de ses contributions. Si vous avez des questions sans rapport avec le développement merci de les adresser sur le forum forums.
D'autres listes existent pour suivre les bogues et le système de compialtion, UpdatesTeam + ...