Changes

From SME Server
Jump to navigationJump to search
5,681 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 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 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 593: Line 729:  
code:
 
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
 
  #test if all arguments are here
 
     <nowiki>if [[ -z $3 ]]; then</nowiki>
 
     <nowiki>if [[ -z $3 ]]; then</nowiki>
 
     echo "########################################################################################################"
 
     echo "########################################################################################################"
     echo "   you must give arguments : srpm-import Folder_Name Branch_Name(smeX|contribsX) Url_2_Remote_Srpm"
+
     echo "Import srpm to CVS on buildsrv : srpm-import Folder_Name Branch_Name(smeX|contribsX) Url_2_Remote_Srpm"
 
     echo "########################################################################################################"
 
     echo "########################################################################################################"
 
     exit
 
     exit
Line 602: Line 744:  
   
 
   
 
  #we test the branchname
 
  #we test the branchname
     <nowiki>if [[ $2 != "sme"* && $2 != "contribs"* ]];then</nowiki>
+
     <nowiki>if [[ $2 != "sme"[8-9] && $2 != "contribs"[8-9] ]];then</nowiki>
 
     echo ""
 
     echo ""
     echo "the branchname name is not good, must be smeX or contribsX"  
+
     echo "the branchname name is not good, must be sme[8-9] or contribs[8-9]"  
 
     exit 1
 
     exit 1
 
     fi
 
     fi
 
   
 
   
 
  #we test the remote url
 
  #we test the remote url
     if wget $3 >/dev/null 2>&1 ; then
+
     <nowiki>if wget $3 >/dev/null 2>&1 ; then</nowiki>
 
     echo "Url : $3 exists..."
 
     echo "Url : $3 exists..."
 
     else
 
     else
Line 630: Line 772:  
     <nowiki>if [[ -d $2 ]];then</nowiki>
 
     <nowiki>if [[ -d $2 ]];then</nowiki>
 
     echo ""
 
     echo ""
     echo "the branch name already exists : we stop the script"
+
     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
 
     exit 1
 
     fi
 
     fi
Line 638: Line 788:  
  cvs add $2
 
  cvs add $2
 
  cd $2
 
  cd $2
   
  #import correct date of first import
 
  #import correct date of first import
 
  echo $(date +%s) > import.log
 
  echo $(date +%s) > import.log
+
  #copy makefile FIXME
  #copy makefile from my home '''FIXME'''
   
  cp -f ~/Makefile .
 
  cp -f ~/Makefile .
 
  sed -i -e "s/smeserver-durep/$1/g" Makefile
 
  sed -i -e "s/smeserver-durep/$1/g" Makefile
   
  #wget the srpm by remote url  
 
  #wget the srpm by remote url  
 
  wget $3
 
  wget $3
   
  #untar the srpm
 
  #untar the srpm
 
  rpm2cpio  *.src.rpm | cpio -idmv --no-absolute-filenames
 
  rpm2cpio  *.src.rpm | cpio -idmv --no-absolute-filenames
   
  #import the new source
 
  #import the new source
 
  make new-sources FILES=*.?z
 
  make new-sources FILES=*.?z
   
  #a bit of clean
 
  #a bit of clean
 
  rm -rf *.src.rpm *.?z  
 
  rm -rf *.src.rpm *.?z  
   
  #import all to cvs
 
  #import all to cvs
 
  cvs add *
 
  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
+
  #sed work no needed anymore(see above)
  version=$(grep -sri 'define version' *.spec | sed 's/%define version //gI')
+
  #version=$(grep -sri 'define version' *.spec | sed 's/%define version //gI')
  release=$(grep -sri 'define release' *.spec | sed 's/%define release //gI')
+
  #release=$(grep -sri 'define release' *.spec | sed 's/%define release //gI')
 
   
 
   
 
  #bump the release
 
  #bump the release
 
  release=$((release + 1))
 
  release=$((release + 1))
   
  #write to the spec file
 
  #write to the spec file
 
  sed -i "/%define release/c %define release $release" *.spec
 
  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 sme9contribs\n" *.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')
 
   
 
   
  #cvs commit -m "* $(LC_ALL=C date +"%a %b %d %Y") stephane de Labrusse <stephdl@de-labrusse.fr> $version-$release.sme - Initial release to sme9contribs"
+
  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