Importing Packages to buildsys
This document describes how to import new packages to buildsys.
You will need Developer access to buildsys for this.
Shell login with ssh
It may benefit you to add an entry in your .ssh/config file like this:
host koozalishell Hostname shell.koozali.org User youruser Port xxx IdentityFile ~/.ssh/id_rsa_buildsys ForwardAgent yes
You can then shell in easily with
You can also modify the relevant sections in the script below.
How to import a SRPM
Importing new srpm or tgz + spec file to buildsys.
On your LOCAL build machine
It is assumed you have CVS in two directories in you home directory
First copy this into a file called ~/bin/importNewContrib
Note this is for Contrib packages. You can modify the script for Server packages by changing references from 'contribs' to 'server' and 'contribs$ver' to 'sme$ver'
#!/bin/bash if [ $# -eq 0 ] then echo "No arguments supplied" fi if [ $# -lt 2 ] then echo "Usage: importNewContrib version pkgname [rpmpath] # e.g. importNewContrib 9 smeserver-newcontrib # e.g. importNewContrib 10 smeserver-mycontrib ~/smeserver-mycontribs-1.0-1.src.rpm" exit fi ver=$1 pkgname=$2 rpmpath=$3 cd ~/smecontribs/rpms cvs -Q update -dPA 1>/dev/null cd ~/smecontribs cvs -Q -z3 -d:ext:YOURUSER@buildsrv.koozali.org:/cvsroot/smecontribs co -P rpms 1>/dev/null # Alternatively if you have a .ssh/config entry as above # cvs -Q -z3 -d:ext:koozalishell:/cvsroot/smecontribs co -P rpms 1>/dev/null newmodule=true; # better test would be to actually grep module file! if [ -d ~/smecontribs/rpms/$pkgname ] then echo "Os package exists already" newmodule=false; fi cd ~/smecontribs/rpms mkdir -p $pkgname/contribs$ver touch $pkgname/contribs$ver/.cvsignore touch $pkgname/contribs$ver/import.log cvs add $pkgname cvs add $pkgname/contribs$ver cvs add $pkgname/contribs$ver/.cvsignore cvs add $pkgname/contribs$ver/import.log cvs commit -m "Prep for $pkgname import" if ( $newmodule ) then cd ~/smecontribs/CVSROOT cvs -Q update -dPA 1>/dev/null echo "$pkgname rpms/$pkgname &common" >> modules linenumb=`cat modules |grep -n "#Start Auto-Maintenance" | grep -Eo '^[^:]+'` # "#Start Auto-Maintenance" #(head -n $linenumb; sort -nk$linenumb) < sample.txt 1<> sample.txt (head -n $linenumb; sort) < modules 1<> modules #echo "cvs commit -m \"adding $pkgname to modules\"" cvs commit -m "adding $pkgname to modules" fi echo "##########################" echo "do:" echo "scp $rpmpath YOURUSER@buildsrv.koozali.org:/home/KOOZALI/YOURUSER/" echo "now just do from buildsrv" echo "cd ~/smecontribs" echo "./common/cvs-import.sh -b contribs$ver -m 'Initial import' ../$rpmpath"
Set the file executable
chmod +x ~/bin/importNewContrib
From there do
importNewContrib 9 smeserver-mycontrib
importNewContrib 9 smeserver-mycontrib ~/smeserver-mycontribs-1.0-1.src.rpm"
After it is done you should find a new folder for
Also you should find your contrib listed in module file ~/smecontribs/CVSROOT/modules
As listed after the script you should send your srpm to the buildserver, one way is (replace ~/MYSRPM and YOURUSER)
scp ~/MYSRPM YOURUSER@buildsrv.koozali.org:/home/KOOZALI/YOURUSER/
Alternatively if set up
scp ~/MYSRPM koozalishell:/home/KOOZALI/YOURUSER/
On THE KOOZALI BUILD SERVER
Shell in to buildsys
cd ~/smecontribs ./common/cvs-import.sh -b contribs$ver -m 'Initial import' ~/MYSRPM
And you are done importing !
On your local build machine
Go to directory and update the content from cvs and buildserver source
cd ~/smecontribs/rpms/smeserver-mycontrib/contribs9/ cvs update -dPA make clean make prep make mockbuild
Edit your spec file in case you need it...
rm -f clog cvs commit -m "$(make clog)"
I found if I did this I got an error:
cvs commit: file 'import.log' had a conflict and has not been modified cvs [commit aborted]: correct above errors first!
I did this to clear it IN THE DIRECTORY:
rm -rf * cd .. cvs update -dPA cd contribs10 cvs commit -m "$(make clog)"
How to import from a tar.gz
Create a srpm file
Then import as above.