Package Modification/fr

From SME Server
Jump to navigation Jump to search


Introduction

Le code source de SME Serveur se trouve dans le CVS de http://www.sourceforge.net dans deux dépôts :

Cette page a pour but de vous aider afin de modifier les contributions stockées chez sourceforge.

  Note :
Pour l'instant les changements sur la base sont encore faits 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 : [1]


  Attention :
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 faites en tant que root :
rpm -e plague-client plague-common
yum --enablerepo=smecontribs install plague-client



Demandez à Jean-Philippe ou Daniel ( admin@koozali.org ) la création d'un certificat pour vous, en lui donnant l'adresse email à utiliser pour les notifications. Si vous n'avez pas d'accès à shell.koozali.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 au CVS sur shell.koozali.org

  • Le code de SME Serveur est stocké en CVS sur le serveur shell.koozali.org. Pour pouvoir travailler sur votre code, vous devez posseder un compte sur l'infrastructure. Avec ce compte l'équipe de développement peut vous permettre d'accéder au dépôt CVS.
  • Après que vous ayez créé votre compte Koozali, un accès en tant que développeur de contributions au dépôt smecontribs vous sera aussi créé.
  • Si votre nom d'utilisateur local est différent de celui de sf.net modifiez ~/.ssh/config:
Host  shell.koozali.org
User  koozaliusername (without @shell.koozali.org)
port 222
  • 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:shell.koozzali.org:/cvs/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:shell.koozzali.org:/cvs/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
Appliquer un patch de traduction

Vérifiez si une traduction attends d'être ajoutée:

  • pour le noyau sme : [2]
  • pour les contributions: [3]

Si le patch n'est pas vide vous avez un peu de travail

Rendez vous dans le dossier du paquet a modifier puis faites:

wget http://translate.contribs.org/patches/contribs/name-2.6-locale-2008-04-22.patch

Ensuite faite ce qui est nécessaire pour la prise en compte du patch et qui est expliqué ci-dessous....

Vous pouvez aussi mettre a jour la traduction [4] vous même et attendre la synchronisation des patchs (vers 2 heures du matin GMT-6)

Edition du spec
nano -w smeserver-foo.spec
#incrementez la 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:
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

Suivi de la compilation

vous pouvez suivre l'évolution de la fabrication du paquet en temps réél avec avec

plague-client list uid  {numéro de tache}

Publier un paquet

Après que le serveur ai réussi à compiler votre paquet celui-ci sera placer dans le dépôt smetest. Vous devriez être mis au courant du succès par courriel.

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:

  1. Se connecter à shell.contribs.org comme ceci: ssh username@shell.contribs.org
  2. Naviguer vers le dossier team : cd /teams
  3. Le dossier team contient quelques dossiers dont deux sont intéressant, le premier est 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
  4. Maintenant copions les paquets intéressants de smetest à smecontribs, les version anciennes sont supprimées automatiquement: cp smetest/package-name-version.rpm smecontribs/


  Note:
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 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 + ...