Changes

From SME Server
Jump to navigationJump to search
8,300 bytes added ,  06:24, 18 November 2017
m
Update CVS server details
Line 4: Line 4:     
In this howto we could let script-tools we need to build rpm
 
In this howto we could let script-tools we need to build rpm
 +
 +
===Unnilennium===
 +
[[User:Unnilennium|Jean-Philippe Pialasse]]<br/>
 +
 +
====prepa====
 +
a script to update the cvs Tree and apply all patches
 +
cvs update -dPA
 +
make clean
 +
make prep
 +
 +
====refresh====
 +
a script to refresh the whole cvs Tree of smecontribs
 +
#!/bin/bash
 +
 +
cd ~/smecontribs/rpms
 +
cvs update -dPA
 +
cd ~/smecontribs
 +
cvs -z3 -d:ext:shell.koozali.org:/cvs/smecontribs co -P rpms
 +
cd ~/smecontribs/rpms
 +
 +
====addSubTree====
 +
A script to add srpm in Buildsrv
 +
 +
#!/bin/bash
 +
 +
if [ ! -f "$1" ]
 +
then
 +
echo "srpm does not exists"
 +
exit 99
 +
fi
 +
 +
package=$1
 +
 +
pkgname=`echo $1|rev|cut -d"/" -f1|cut -d"-" -f3-|rev`
 +
 +
VSME=${2:-'9'}
 +
 +
echo "$pkgname/contribs$VSME"
 +
 +
 +
#cd ~/smecontribs/rpms
 +
#cvs update -dPA
 +
#cd ~/smecontribs
 +
#cvs -z3 -d:ext:shell.koozali.org:/cvs/smecontribs co -P rpms
 +
#cd ~/smecontribs/rpms
 +
 +
cd ~/smecontribs/rpms
 +
 +
# contrib folder not found
 +
if [ ! -d "$pkgname" ]
 +
then
 +
echo " ~/smecontribs/rpms/$pkgname not found"
 +
exit 99
 +
fi
 +
 +
 +
if [ ! -d "$pkgname/contribs$VSME" ]
 +
then
 +
echo " ~/smecontribs/rpms/$pkgname/contribs$VSME not found : new subtree to create"
 +
mkdir -p $pkgname/contribs$VSME
 +
touch $pkgname/contribs$VSME/.cvsignore
 +
touch $pkgname/contribs$VSME/import.log
 +
cvs add $pkgname
 +
cvs add $pkgname/contribs$VSME
 +
cvs add $pkgname/contribs$VSME/.cvsignore
 +
cvs add $pkgname/contribs$VSME/import.log
 +
cvs commit -m "Prep for $pkgname import"
 +
 +
else
 +
echo " ~/smecontribs/rpms/$pkgname/contribs$VSME found : just need to import new source rpm"
 +
 +
fi
 +
 +
 +
./common/cvs-import.sh -b "contribs$VSME" -m "Initial import to v$VSME" "$package"
 +
 +
echo " now first build ..."
 +
cd ~/smecontribs/rpms/$pkgname/contribs$VSME
 +
cvs update -dPA
 +
make clean
 +
make prep
 +
make local
 +
cvs commit -m "$pkgname first build"
 +
make tag
 +
make build
 +
echo "now please fill a bug"
 +
echo "http://bugs.contribs.org/enter_bug.cgi?product=SME%20Contribs&component=${pkgname}&version=${VSME}beta&short_desc=first%20import%20to%20sme$VSME%20tree%20[$pkgname]"
 +
echo "http://bugs.contribs.org/enter_bug.cgi?product=SME%20Contribs&component=${pkgname}&version=${VSME}beta&short_desc=first%20import%20to%20sme$VSME%20tree%20[$pkgname]">>~/TODO
 +
 +
====listv9====
 +
List rpm version already online in the sme9contribs tree and build srpm from the folder ~/srpm which are not already online
 +
 +
#!/bin/bash
 +
 +
#liste contribs avec deja version v9
 +
#find  ~/smecontribs/rpms/ -name 'contribs9' -printf '%h\n' | sort -u |grep "smeserver-"|cut -d"/" -f6>~/alreadyV9
 +
# liste �tant deja released
 +
URL='http://mirror.contribs.org/releases/9/smecontribs/SRPMS/';
 +
curl $URL 2>&1 | grep -o -E 'href="(.+)"' | cut -d'"' -f2|grep  -E '^smeserver-'|rev| cut -d"-" -f3-|rev >~/lscontribs9
 +
home=~
 +
echo $home
 +
ls ~/srpm |grep "src.rpm"|sed  "s|.*|$home/srpm/&|"> ~/listsrpm
 +
 +
#listes juste import�e ou smedev
 +
comm -23 <(sort ~/lscontribs9) <(sort ~/alreadyV9)
 +
 +
while read fichier ; do
 +
 +
tmp=`echo $fichier|rev|cut -d"/" -f1| cut -d"-" -f3-|rev`
 +
#echo $fichier
 +
#echo $tmp
 +
if grep -Fxq "^$tmp$" ~/alreadyV9
 +
then
 +
    echo " $tmp : already there " # code if found
 +
echo " $tmp : already there " >>~/TODO
 +
else
 +
  echo "$tmp to import into v9"  # code if not found
 +
        # import
 +
        echo "addSubTree $fichier 9    "
 +
        addSubTree $fichier 9
 +
        echo "mv $fichier \"$home/done/\""
 +
        mv $fichier "$home/srpm/done/"
 +
        sleep 10
 +
fi
 +
 +
done < <(cat ~/listsrpm)
    
===Stephdl===
 
===Stephdl===
Line 20: Line 146:  
  epel-5-x86_64            epel-5-i386
 
  epel-5-x86_64            epel-5-i386
   −
  #!/bin/bash
+
  <nowiki>#!/bin/bash
 
     # who i'm
 
     # who i'm
 
     ME=$(whoami)
 
     ME=$(whoami)
Line 51: Line 177:  
     echo ""
 
     echo ""
 
     echo "3.Sign your rpms"
 
     echo "3.Sign your rpms"
     rpm --resign /home/$ME/exchange/$2/*.rpm 2>&1 > /dev/null
+
     rpm --resign /home/$ME/exchange/$2/*.rpm 2>&1 > /dev/null</nowiki>
 
                                                                  
 
                                                                  
 
A the end I use rpm to sign my rpm, if you don't need it you can remove it.
 
A the end I use rpm to sign my rpm, if you don't need it you can remove it.
Line 122: Line 248:  
  # Find the centos version
 
  # Find the centos version
 
  DIST=$2
 
  DIST=$2
  if [[ -z $DIST && "$BRANCH" =~ "sme9" ]]; then
+
  <nowiki>if [[ -z $DIST && "$BRANCH" =~ "sme9" ]]; then</nowiki>
 
     DIST="el6"
 
     DIST="el6"
 
  elif [ -z $DIST ]; then
 
  elif [ -z $DIST ]; then
Line 156: Line 282:  
  cp $TMPDIR/$PACKAGE-$VERSION.tar.gz ~/rpmbuild/SOURCES/$PACKAGE-$VERSION.tar.gz
 
  cp $TMPDIR/$PACKAGE-$VERSION.tar.gz ~/rpmbuild/SOURCES/$PACKAGE-$VERSION.tar.gz
 
  cp $PACKAGE.spec ~/rpmbuild/SPECS/
 
  cp $PACKAGE.spec ~/rpmbuild/SPECS/
 +
 +
##copy a list of files to SOURCES when patches or archives are not in the root folder
 +
ls > /tmp/$PACKAGE-$VERSION
 +
cp -Rf $(</tmp/$PACKAGE-$VERSION) ~/rpmbuild/SOURCES/
 
   
 
   
 
  # And build
 
  # And build
Line 223: Line 353:  
   
 
   
 
  rm -f  ~/rpmbuild/SPECS/$PACKAGE.spec ~/rpmbuild/SOURCES/$PACKAGE-$VERSION.tar.gz ~/rpmbuild/SRPMS/$PACKAGE-$VERSION*.src.rpm
 
  rm -f  ~/rpmbuild/SPECS/$PACKAGE.spec ~/rpmbuild/SOURCES/$PACKAGE-$VERSION.tar.gz ~/rpmbuild/SRPMS/$PACKAGE-$VERSION*.src.rpm
  rm -rf $TMPDIR  ~/$PACKAGE-$VERSION  
+
  rm -rf $TMPDIR  ~/rpmbuild/SOURCES/$PACKAGE-$VERSION
 +
 +
# clean ~/rpmbuild/SOURCES when patches or archives are not in the root folder
 +
cd ~/rpmbuild/SOURCES/
 +
rm -rf $(</tmp/$PACKAGE-$VERSION)
 +
#remove the file list
 +
rm -rf /tmp/$PACKAGE-$VERSION
 
   
 
   
 
  # we give the path where are files
 
  # we give the path where are files
Line 260: Line 396:  
  contrib_migration smeserver-packagename
 
  contrib_migration smeserver-packagename
   −
  #test if the first argument is here
+
  <nowiki>#test if the first argument is here
 
     if [[ -z $1 ]]; then
 
     if [[ -z $1 ]]; then
 
         echo "#################################################################################"
 
         echo "#################################################################################"
Line 339: Line 475:  
     echo "think also if you have a github project called stephdl/$1"
 
     echo "think also if you have a github project called stephdl/$1"
 
     echo "###################################"
 
     echo "###################################"
  fi
+
  fi</nowiki>
    
====build_srpm====
 
====build_srpm====
Line 492: Line 628:  
  #first we update the smecontribs tree
 
  #first we update the smecontribs tree
 
  cd ~/work/smecontribs
 
  cd ~/work/smecontribs
  cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smecontribs co -P rpms
+
  cvs -z3 -d:ext:shell.koozali.org:/cvs/smecontribs co -P rpms
 
  echo "############################"
 
  echo "############################"
 
  echo "    smecontribs uptodate  "
 
  echo "    smecontribs uptodate  "
Line 503: Line 639:  
   
 
   
 
  cd ~/work/smeserver
 
  cd ~/work/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
 
   
 
   
 
  echo "############################"
 
  echo "############################"
Line 512: Line 648:  
  cd $location
 
  cd $location
   −
====Cron night Job====
+
====git_srpm====
 
This script is done to import a srpm and to push it after a 'rpmbuild -bp' to your git folder '~/git_work' here.
 
This script is done to import a srpm and to push it after a 'rpmbuild -bp' to your git folder '~/git_work' here.
   Line 572: Line 708:  
  rm -f  ~/rpmbuild/SPECS/$1*.spec ~/rpmbuild/SOURCES/$1* ~/rpmbuild/SRPMS/$1*.src.rpm
 
  rm -f  ~/rpmbuild/SPECS/$1*.spec ~/rpmbuild/SOURCES/$1* ~/rpmbuild/SRPMS/$1*.src.rpm
 
</nowiki>
 
</nowiki>
  −
      
====Cron night Job====
 
====Cron night Job====
Line 584: Line 718:  
  * 5  * * * mock -r smeserver-8-x86_64-base --init; mock -r smeserver-8-i386-base --init
 
  * 5  * * * mock -r smeserver-8-x86_64-base --init; mock -r smeserver-8-i386-base --init
 
  * 6  * * * /usr/bin/cvs_update
 
  * 6  * * * /usr/bin/cvs_update
 +
 +
====srpm-import to buildsrv====
 +
 +
srpm-import is a script to import to buildsrv, you need to be granted to use it. the purpose is to create new source in CVS from a remote srpm
 +
 +
usage:
 +
 +
srpm-import smeserver-contribs contrib9 http://mirror.de-labrusse.fr/smeserver/6/SRPMS/smeserver-php-scl-0.4-3.el6.sme.src.rpm
 +
 +
code:
 +
 +
#!/bin/bash
 +
 +
# Author : stephane de labrusse <stephdl@de-labrusse.fr> @2015
 +
# the purpose is to import a srpm from a remote url in the CVS of buildsrv
 +
 +
 +
#test if all arguments are here
 +
    <nowiki>if [[ -z $3 ]]; then</nowiki>
 +
    echo "########################################################################################################"
 +
    echo "Import srpm to CVS on buildsrv  : srpm-import Folder_Name Branch_Name(smeX|contribsX) Url_2_Remote_Srpm"
 +
    echo "########################################################################################################"
 +
    exit
 +
    fi
 +
 +
#we test the branchname
 +
    <nowiki>if [[ $2 != "sme"[8-9] && $2 != "contribs"[8-9] ]];then</nowiki>
 +
    echo ""
 +
    echo "the branchname name is not good, must be sme[8-9] or contribs[8-9]"
 +
    exit 1
 +
    fi
 +
 +
#we test the remote url
 +
    <nowiki>if wget $3 >/dev/null 2>&1 ; then</nowiki>
 +
    echo "Url : $3 exists..."
 +
    else
 +
    echo ""
 +
    echo "Url : $3 doesn't exists.."
 +
    exit 1
 +
    fi
 +
 +
#test root cvs folder
 +
    <nowiki>if [[ -d $1 ]]; then</nowiki>
 +
    echo "the source folder $1 already exists"
 +
    fi
 +
 +
#mkdir root cvs folder
 +
mkdir -p $1
 +
cvs add $1
 +
cd $1
 +
 +
#test the branch name
 +
    <nowiki>if [[ -d $2 ]];then</nowiki>
 +
    echo ""
 +
    echo "the branch name $1/$2 already exists : we stop the script."
 +
    echo ""
 +
    echo "You must import a new tarball manually if needed :"
 +
    echo "    cd $1/$2"
 +
    echo "    wget http://your.src.rpm"
 +
    echo "    rpm2cpio  *.src.rpm | cpio -idmv --no-absolute-filenames"
 +
    echo "    make new-sources FILES=*.?z"
 +
    echo "    rm -rf *.src.rpm *.?z *.spec"
 +
    echo "    cvs commit -m 'new source commited for the branch $2 of $1'"
 +
    exit 1
 +
    fi
 +
 +
#mkdir branch name (smeX or contribsX)
 +
mkdir -p $2
 +
cvs add $2
 +
cd $2
 +
#import correct date of first import
 +
echo $(date +%s) > import.log
 +
#copy makefile FIXME
 +
cp -f ~/Makefile .
 +
sed -i -e "s/smeserver-durep/$1/g" Makefile
 +
#wget the srpm by remote url
 +
wget $3
 +
#untar the srpm
 +
rpm2cpio  *.src.rpm | cpio -idmv --no-absolute-filenames
 +
#import the new source
 +
make new-sources FILES=*.?z
 +
#a bit of clean
 +
rm -rf *.src.rpm *.?z
 +
#import all to cvs
 +
cvs add *
 +
# Informations needed from the spec file
 +
version=$(rpm -q --qf "%{version}\n" --specfile $1.spec| head -1)
 +
#ARCH=$(rpm -q --qf "%{arch}\n" --specfile $1.spec | head -1)
 +
release=$(rpm -q --qf "%{release}\n" --specfile $1.spec | head -1| sed s/\.el.//)
 +
 +
#sed work no needed anymore(see above)
 +
#version=$(grep -sri 'define version' *.spec | sed 's/%define version //gI')
 +
#release=$(grep -sri 'define release' *.spec | sed 's/%define release //gI')
 +
 +
#bump the release
 +
release=$((release + 1))
 +
#write to the spec file
 +
sed -i "/%define release/c %define release $release" *.spec
 +
sed -i "/changelog/a * $(LC_ALL=C date +"%a %b %d %Y") stephane de Labrusse <stephdl@de-labrusse.fr> $version-$release.sme\n- Initial release to $2\n" *.spec
 +
echo ""
 +
echo "Verify in $1/$2 if all is well, then commit the changes"
 +
echo "    cvs commit -m '$(LC_ALL=C date +"%a %b %d %Y") stephane de Labrusse <stephdl@de-labrusse.fr> $version-$release.sme - Initial release to $2'"
 +
echo ""
 +
echo " If it is the first importation of a srpm, you must enable it in the CVSROOT, first you have to refresh the CVS source"
 +
echo "    cvs co CVSROOT"
 +
echo " Then you must edit /CVSROOT/modules and add the name of the new CVS module (alphabetically sorted), after that commit the changes"
 +
echo "now please fill a bug"
 +
pkgname=$1
 +
VSME=$(echo $2|sed 's/sme\|contribs//gI')
 +
 +
echo "http://bugs.contribs.org/enter_bug.cgi?product=SME%20Contribs&component=${pkgname}&version=${VSME}beta&short_desc=first%20import%20to%20sme$VSME%20tree%20[$pkgname]"
 +
echo "$(date)
 +
http://bugs.contribs.org/enter_bug.cgi?product=SME%20Contribs&component=${pkgname}&version=${VSME}beta&short_desc=first%20import%20to%20sme$VSME%20tree%20[$pkgname]">>~/TODO
 +
 +
==== search ====
 +
Like the name, simply search rpm in buildsrv
 +
 +
#!/bin/bash
 +
<nowiki>if [[ -z $1 ]]; then</nowiki>
 +
echo "You must specify a name of rpm"
 +
exit
 +
fi
 +
find /distros -name "*$1*"
 +
echo ''
 +
echo '## other repo ##'
 +
echo ''
 +
find /mirrors/ -name "*$1*"
 +
 +
 +
usage:
 +
./find rpmname

Navigation menu