11,038 bytes added
, 21:34, 22 April 2008
{{Languages|:Package_Modification}}
En cours de traduction !!
===Introduction===
Le code source de SME Serveur se trouve dans le CVS de http://www.sourceforge.net dans deux dépôts:
* [http://fisheye1.cenqua.com/browse/smeserver/ CVS SME Server] qui contient les paquet du noyau de SME Serveur
* [http://fisheye1.cenqua.com/browse/smecontribs/ 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.
{{Note box|Pour l'instant les changement sur la base sont encore fait en utilisant mezzanine.}}
===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 : [http://buildsys.contribs.org]
{{Warning box|msg=Pour les contributeurs utilisant plague-client-0.5.0 vous devez reprendre une version plus ancienne afin de pouvoir accéder à l'interface, pour cela faite en tant que root:
rpm -e plague-client plague-common
yum --enablerepo=smecontribs install plague-client}}
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 focntionne
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:
[http://sourceforge.net/docman/display_doc.php?docid=11123&group_id=1 B04: Créer un nouveau compte]
[http://sourceforge.net/docman/display_doc.php?docid=29894&group_id=1 E04: CVS (Version Control for Source Code)]
[http://sourceforge.net/docs/F02/en/#top 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'. {{Note box|Vous devez être dans le dossier sme7, sme8, ou contribs7 pour que cela fonctionne}}
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:
<ol></li><li>Se connecter à shell.contribs.org comme ceci:
ssh username@shell.contribs.org
</li><li>Naviguer vers le dossier teams :
cd /teams
</li><li>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
</li><li>Maintenant copions les paquets intéressants de smetest à smecontribs, les version anciennes sont supprimées automatiquement:
cp smetest/package-name-version.rpm smecontribs/
</li></ol>
{{Note box|Dans un delais de deux heures le paquet devrait être déplacé vers le dépôt smecontribs et être disponible aussi tôt que les miroirs sont synchronisés.}}
===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 [http://lists.contribs.org/mailman/listinfo/devinfo 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 [http://forums.contribs.org forums].
D'autres listes existent pour suivre les bogues et le système de compialtion, UpdatesTeam + ...