Difference between revisions of "Simple Package Modification"
m (Wellsi moved page Talk:Package Modification to Simple Package Modification) |
Revision as of 07:35, 23 January 2013
The simplest package modification is for someone to access the code via anonymous CVS and produce a patch to put into Bugzilla. This can be done on SME 8 by installing only cvs as follows.
Using SME 8
Create a new user, eg builder
- You will need to alter your user account to enable regular login. If you want to enable account "builder", then you would type the following commands from the root account:
chsh -s /bin/bash builder
db accounts setprop builder Shell /bin/bash
- Install CVS
yum install cvs
- create a development directory, eg ~/home/smeserver
mkdir ~/home/smeserver
cd ~/home/smeserver
- Download the module you want to work on, eg e-smith-base
cvs -z3 -d:pserver:anonymous@smeserver.cvs.sourceforge.net:/cvsroot/smeserver checkout -P e-smith-base
- Alternatively retrieve the whole CVS tree
cd ~/home/smeserver
cvs -z3 -d:pserver:anonymous@smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P rpms
You can now retrieve one of the packages from SourceForge. In this case, we want to modify the e-smith-base package for SME8, so let's retrieve it from SourceForge:
- Change to work directory
cd ~/home/smeserver/rpms/e-smith-base/sme8
To prepare a tree
cvs update -dPA
make clean
make prep
- Save a copy of the original files
cp -R e-smith-base-5.2.0 e-smith-base-5.2.0.old
<Now make the changes needed to the files in e-smith-base-5.2.0>
- Create a patch
diff -urN smeserver-foo-2.0.0.old smeserver-yum-2.0.0 > smeserver-yum-2.0.0-importKeys.patch
- Now to make a build to test if it works:
- Update the spec file
#increase the release %define release 15 #add the patch Patch2: smeserver-foo-1.2-widget.patch #update the changelog, include the bug number * Fri Jan 11 2008 John Smith <smith@foo.net> 1.2-15 - fixed foo to create bar [SME 3470] #apply the patch in %setup %patch2 -p1
CHECK: that the changelog version really matches the RPM version.
CHECK: Is the spec file correct, look at the changes
cvs diff e-smith-base.spec
Have you updated the release? Is that new release in the changelog? Have you included the patch, Patch1: e-smith-proftpd-2.2.0-persistent_passwd.patch Is the changelog correct
* Tue Jan 22 2013 Ian Wells <esmith@wellsi.com> 2.2.0-4.sme - Remove previous change [SME: 7129]
There must be a bugzilla number in this format [SME: 7129] Is the date really correct? Both day and date. The version should follow after the email address
CHECK: what would be committed
cvs update
* M modified, will be committed * U file has been updated since you last checked it out * A added, will be added on commit * D deleted, will be deleted on commit * ? egregious file not part of CVS record for this dir
CHECK: has the patch files been added? cvs add e-smith-quota-2.0.0-badlyformattedie8.patch
CHECK: are the files UNIX or do they have DOS endings (bad)
Build the rpm locally to test, (note, this deletes the working tree!)
make local
Once the patch works, attach the patch to the bugzilla entry.
--- this simple package modification ends here ---
- If you have CVS access then
Once you are satisfied and want to submit the package to the build server commit your changes. (Please use descriptive comments so that other developers are aware of what is happening. Comments will appear on the subject line of the commit email that get send to the other developers.) cvs commit -m 'your descriptive commit message here' cvs commit -m <-- copy this then add changelog line
- If you have build access then
Build it (from either the sme7 or sme8 dir):
make tag make build