Line 6: |
Line 6: |
| ===Configuring your development environment=== | | ===Configuring your development environment=== |
| | | |
− | The SME Server source code is checked into CVS at SourceForge. | + | The SME Server source code is checked into CVS at koozali.org. |
− | SME Server code is stored in the CVS on http://www.sourceforge.net in two repositories: | + | SME Server code is stored in the CVS on shell.koozali.org in two repositories: |
− | * [http://fisheye1.cenqua.com/browse/smeserver/ CVS SME Server] which holds the core packages of the SME Server | + | * [https://viewvc.koozali.org/smeserver/ CVS SME Server] which holds the core packages of the SME Server |
− | * [http://fisheye1.cenqua.com/browse/smecontribs/ CVS SME Contribs] which holds the contribs packages | + | * [https://viewvc.koozali.org/smecontribs/ CVS SME Contribs] which holds the contribs packages |
| | | |
| Reminder: | | Reminder: |
| The SME Server source code is released under the GPL. You must release the source code to all modifications. If you make improvements, please raise a bug and attach a patch so the change can be discussed and pulled back into the base for everyone to share. | | The SME Server source code is released under the GPL. You must release the source code to all modifications. If you make improvements, please raise a bug and attach a patch so the change can be discussed and pulled back into the base for everyone to share. |
| | | |
− | Only developers who are going to put patches back into CVS and build new packages need SourceForge CVS access. The sources are freely available and patches are gratefully received. Just follow the instructions in this section and attach the patch(es) to the Bugzilla entry, explaining why the change should be made. | + | Only developers who are going to put patches back into CVS and build new packages need shell.koozali.org CVS access. The sources are freely available and patches are gratefully received. Just follow the instructions in this section and attach the patch(es) to the Bugzilla entry, explaining why the change should be made. |
| | | |
| </div><div class="SECT2"> | | </div><div class="SECT2"> |
Line 21: |
Line 21: |
| ====Local environment==== | | ====Local environment==== |
| * Install cvs | | * Install cvs |
− | yum install cvs | + | yum install cvs rsh |
| | | |
| * Setup CVS to use ssh by creating /etc/profile.d/smebuild.sh with the following content | | * Setup CVS to use ssh by creating /etc/profile.d/smebuild.sh with the following content |
Line 66: |
Line 66: |
| build32-1.contribs.org i386 i486 i586 i686 athlon noarch available | | build32-1.contribs.org i386 i486 i586 i686 athlon noarch available |
| | | |
− | ====Sourceforge access==== | + | ====CVS shell.koozali.org access==== |
− | * SME Server code is stored in the CVS on http://SourceForge.net. To be able to work on your code in the SME Server CVS repository you need an account on SourceForge. With this account the development team can give you access to the CVS repository. More information can be found here: | + | * SME Server code is stored in the CVS on http://shell.koozali.org. To be able to work on your code in the SME Server CVS repository you need an account on Koozali.org. With this account the development team can give you access to the CVS repository. |
− | [http://sourceforge.net/docman/display_doc.php?docid=11123&group_id=1 B04: Registering a User Account]
| |
− | [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: SSH Key Generation and Usage]
| |
| | | |
− | * After you have created your SourceForge account you can ask the development team to give you developer access to smecontribs. Create a bug in the Bug Tracker as usual. | + | * After your Koozali.org account has been created you can ask the development team to give you developer access to smecontribs. Create a bug in the Bug Tracker as usual. |
| | | |
− | * Copy your local public SSH key to SourceForge https://sourceforge.net/account/editsshkeys.php
| + | * If local username is different to shell.koozali.org username edit ~/.ssh/config: |
− | | |
− | * If local username is different to sf.net username edit ~/.ssh/config: | |
| | | |
− | Host smeserver.cvs.sourceforge.net | + | Host shell.koozali.org |
− | User sfusername ''(without @shell.sf.net)'' | + | User koozaliusername ''(without @shell.koozali.org)'' |
− | Host smecontribs.cvs.sourceforge.net | + | port 222 |
− | User sfusername ''(without @shell.sf.net)''
| |
| | | |
| * Don't forget to set the proper privileges on the file | | * Don't forget to set the proper privileges on the file |
Line 87: |
Line 81: |
| chmod 600 ~/.ssh/config | | chmod 600 ~/.ssh/config |
| | | |
− | ====Import source to sourceforge==== | + | ====Import source to shell.koozali.org==== |
− | Email admin@contribs.org with the location of your rpm, it will be imported into the build system for you. Follow the same procedure when an upstrean release occurs, eg a new .tar.gz, Update your local cvs with: | + | Email admin@contribs.org with the location of your rpm, it will be imported into the build system for you. Follow the same procedure when an upstream release occurs, eg a new .tar.gz, Update your local cvs with: |
| | | |
| cvs update -dPA | | cvs update -dPA |
| + | |
| + | If you have developer access to buildsys you can follow this guide |
| + | |
| + | https://wiki.contribs.org/Package_Import |
| | | |
| ====Import cvs in your workspace==== | | ====Import cvs in your workspace==== |
Line 97: |
Line 95: |
| mkdir ~/home/smeserver | | mkdir ~/home/smeserver |
| cd ~/home/smeserver | | cd ~/home/smeserver |
− | cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P rpms | + | cvs -z3 -d:ext:shell.koozali.org:/cvs/smeserver co -P rpms |
| | | |
| mkdir ~/home/smecontribs | | mkdir ~/home/smecontribs |
| cd ~/home/smecontribs | | cd ~/home/smecontribs |
− | cvs -z3 -d:ext:smecontribs.cvs.sourceforge.net:/cvsroot/smecontribs co -P rpms | + | cvs -z3 -d:ext:shell.koozali.org:/cvs/smecontribs co -P rpms |
| | | |
| To refresh run the following from the rpms directory, or any lower directory with a CVS dir | | To refresh run the following from the rpms directory, or any lower directory with a CVS dir |
Line 121: |
Line 119: |
| If a relevant bug does not exist, raise one. If the bug exists, assign it to yourself to show that you are working on it: | | If a relevant bug does not exist, raise one. If the bug exists, assign it to yourself to show that you are working on it: |
| | | |
− | For this exercise, let's look at bug 1174 "yum-import-keys should not import duplicates" [http://www.contribs.org/bugzilla/show_bug.cgi?id=1174/ http://www.contribs.org/bugzilla/show_bug.cgi?id=1174]. | + | For this exercise, let's look at bug 1174 "yum-import-keys should not import duplicates" [http://bugs.contribs.org/show_bug.cgi?id=1174 http://bugs.contribs.org/show_bug.cgi?id=1174]. |
| | | |
| </div><div class="SECT2"> | | </div><div class="SECT2"> |
Line 134: |
Line 132: |
| | | |
| and so, we want to modify the <tt class="FILENAME">smeserver-yum</tt> package. | | and so, we want to modify the <tt class="FILENAME">smeserver-yum</tt> package. |
− | {{Note box|msg=You can view a complete list of the packages checked into SourceForge CVS http://smeserver.cvs.sourceforge.net/smeserver/. On rare occasions, the sources of particular packages may be slightly out of date as there is a small delay (typically only a few hours) between changes to the developer CVS and the anonymous CVS. In practice, this rarely matters and at worst it requires a merging of your changes with any other recent changes to the package.}}
| |
| | | |
− | <span class="emphasis">''All packages on the SME Server ISO/CD must be checked into SourceForge CVS''</span>. The only exceptions are packages which come from the following upstream repositories: CentOS and dag. | + | <span class="emphasis">''All packages on the SME Server ISO/CD must be checked into shell.koozali.org CVS''</span>. The only exceptions are packages which come from the following upstream repositories: CentOS and dag. |
| | | |
| </div><div class="SECT2"> | | </div><div class="SECT2"> |
| ---- | | ---- |
| | | |
− | You can now retrieve one of the packages from SourceForge. In this case, we want to modify the <var class="LITERAL">smeserver-yum</var> package, so let's retrieve it from SourceForge: | + | You can now retrieve one of the packages from shell.koozali.org. In this case, we want to modify the <var class="LITERAL">smeserver-yum</var> package, so let's retrieve it from shell.koozali.org: |
| + | |
| + | cvs -z3 -d:ext:shell.koozali.org:/cvs/smeserver co -P smeserver-yum |
| | | |
| Change to work directory | | Change to work directory |
Line 147: |
Line 146: |
| | | |
| To prepare a tree | | To prepare a tree |
− | cvs update -dPA # not always needed | + | cvs update -dPA |
− | make clean # not always needed | + | make clean |
| make prep | | make prep |
| | | |
Line 165: |
Line 164: |
| Once you have all the files you want patched copied and changed then you can build the patch (from the sme7 dir) with: | | Once you have all the files you want patched copied and changed then you can build the patch (from the sme7 dir) with: |
| make patch SUFFIX={patchname} | | make patch SUFFIX={patchname} |
− | It will build and add the patch for you. It should be named "name-version-{patchname}.patch" | + | It will build and add the patch for you. It should be named "name-version-{patchname}.patch". It will also add the patch to CVS. |
| | | |
| Method B | | Method B |
Line 171: |
Line 170: |
| Make a copy of the prepared directory, edit directly, then make a patch | | Make a copy of the prepared directory, edit directly, then make a patch |
| | | |
− | cp smeserver-yum-2.0.0 smeserver-foo-2.0.0.old | + | cp -R smeserver-yum-2.0.0 smeserver-foo-2.0.0.old |
| diff -urN smeserver-foo-2.0.0.old smeserver-yum-2.0.0 > smeserver-yum-2.0.0-importKeys.patch | | diff -urN smeserver-foo-2.0.0.old smeserver-yum-2.0.0 > smeserver-yum-2.0.0-importKeys.patch |
| | | |
Line 241: |
Line 240: |
| plague-client list uid {task number} | | plague-client list uid {task number} |
| | | |
− | ====Releasing a package==== | + | ====Releasing a contrib package==== |
| After the make build command the build system will try and build your package. After a successful build it will be put in the smetest repository. You should be notified of the result of the build by e-mail. | | After the make build command the build system will try and build your package. After a successful build it will be put in the smetest repository. You should be notified of the result of the build by e-mail. |
| | | |
Line 247: |
Line 246: |
| <ol></li><li>Login to shell.contribs.org like this: | | <ol></li><li>Login to shell.contribs.org like this: |
| | | |
− | ssh username@shell.contribs.org | + | ssh -p222 username@shell.koozali.org |
− | </li><li>Navigate to the teams directory: | + | </li><li>Navigate to the smeserver directory: |
| | | |
− | cd /teams | + | cd /teams/smeserver |
| </li><li>The teams directory contains a few directories of which two are relevant, the first is called updates which will hold the SME Server packages, the other is called contribs and will hold build contribs. | | </li><li>The teams directory contains a few directories of which two are relevant, the first is called updates which will hold the SME Server packages, the other is called contribs and will hold build contribs. |
| Suppose we would like to release our contrib we would proceed like this: | | Suppose we would like to release our contrib we would proceed like this: |
| | | |
− | cd contribs/7 | + | cd contribs/9 |
| </li><li>Now copy the relevant package from smetest to smecontribs, old versions are removed automatically | | </li><li>Now copy the relevant package from smetest to smecontribs, old versions are removed automatically |
| | | |
Line 260: |
Line 259: |
| </li></ol> | | </li></ol> |
| | | |
− | {{Note box|Within a period of two hours the package should be moved to the smecontribs repository and be available as soon as the mirrors synchronize.}} | + | {{Note box|Within a period of one hour the package should be moved to the smecontribs repository and be available as soon as the mirrors synchronize.}} |
| | | |
| Once the server successfully builds it will automatically be pulled on the next repo update run | | Once the server successfully builds it will automatically be pulled on the next repo update run |