Importing an existing source rpm to repsys
Using /usr/local/bin/srpm2svn.sh on the cluster (written by Frederic Lepied).
srpm2svn.sh /SRPMS/contrib/qtparted-0.4.4-6mdk.src.rpm
My version control layout
mkdir -p ~/vc/mandriva/packages/cooker ln -s ~/vc/mandriva/packages/cooker ~/
Getting package sources from repsys
svn co svn+ssh://svn.mandriva.com/svn/packages/cooker/qtparted ~/cooker
Updating the package source
http://qa.mandriva.com/twiki/bin/view/Main/RepositorySystem#Changing_a_package
cd ~/cooker/qtparted/current svn up cp ~/qtparted-0.4.5.tar.bz2 SOURCES svn add SOURCES/qtparted-0.4.5.tar.bz2 svn rm SOURCES/qtparted-0.4.4.tar.bz2 # update version in rpm spec file emacs SPECS/qtparted.spec # check changes svn status svn diff # commit on svn svn commit -m "0.4.5"
Testing the package build
http://qa.mandriva.com/twiki/bin/view/Main/RepositorySystem#Testing_a_package
cd ~/cooker/qtparted/current svn up # bm basically allows to build the package in current directory # instead of default rpm top dir # use -l to see rpm build logs bm -l
Adding a patch
cd ~/cooker/qtparted/current svn up # unpack sources and run %prep bm -l -p # do some changes to support parted 1.7 pushd BUILD/qtparted-0.4.5/src cp -a qp_fswrap.cpp qp_fswrap.cpp.parted1.7 emacs qp_fswrap.cpp popd # the following step should be automated # a "bm_gendiff parted1.7" should be enough pushd BUILD gendiff qtparted-0.4.5 .parted1.7 > ../SOURCES/qtparted-0.4.5-parted1.7.patch popd svn add SOURCES/qtparted-0.4.5-parted1.7.patch # add patch field, and "patchX -p1 -b .parted1.7" emacs SPECS/qtparted.spec # check changes svn status svn diff # commit on svn svn commit -m "parted 1.7.x support"
Uploading the package
http://qa.mandriva.com/twiki/bin/view/Main/RepositorySystemSubmitting
Simple way:
Upload qtparted
Detailled process:
repsys getsrpm qtparted rpm --rebuild @38790:qtparted-0.4.5-1mdv2007.0.src.rpm youri cooker @38790:qtparted-0.4.5-1mdv2007.0.src.rpm <generated packages>
References
http://qa.mandriva.com/twiki/bin/view/Main/RepositorySystem#Sample_build_session