Changes

Jump to navigation Jump to search
2,889 bytes removed ,  17:06, 11 October 2022
Line 1: Line 1:  
{{Level|Developer}}
 
{{Level|Developer}}
   −
{{WIP box|}}
+
{{WIP box|unnilennium}}
 +
 
 +
===Versions===
 +
VER=10
 +
VERSION=$VER.1
 +
VERPREV=$VER.0
 +
TESTING=
 +
# where is PREV could be "" "testing or "obsolete"
 +
FROM=
 +
# where we put new one could be "" "testing or "obsolete"
 +
TO=
 +
 
 +
go back
 +
* [[Build_an_Official_ISO#Create release specific folder and link (or rename the folder)]]
 +
* [[Build_an_Official_ISO#Build & Release SME Server 10]]
    
===Introduction===
 
===Introduction===
Line 13: Line 27:  
Please read Bug #7931 regarding repodata and symlinks.
 
Please read Bug #7931 regarding repodata and symlinks.
   −
{{Warning box| '''due to the recent change of some plugins, this howto is only workable now, with the [http://mirror.de-labrusse.fr/Sme-Server/mock-1.1.41/ Mock Version: 1.1.41]''' --[[User:Stephdl|Stephdl]] ([[User talk:Stephdl|talk]]) 21:40, 16 March 2015 (CET)
+
{{Warning box| build of iso on cluster should be done on builder7 with releases user }}
du to the work of dani, we should use theversion of mock > 1.2 --[[User:Stephdl|Stephdl]] ([[User talk:Stephdl|talk]]) 11:06, 29 June 2015 (CEST)}}  
  −
====Folder structure, both local and buildsys====
     −
This document presumes that
+
====Local Only: Requirements====
~/builds_bin is builds_bin from CVS
+
====='''Local Only''': mock requirement=====
~/cdrom.image is cdrom.image from CVS
+
on centos 7
~/anaconda-po contains '''the anaconda translations'''
+
  yum install python-decoratortools
~/smeserver '''contains a local smeserver mirror'''
  −
  ~/rpms is rpms folder from CVS
     −
===='''Local Only''': mock plugin : iso_prepare====
+
====='''Local Only''': mock plugin : iso_prepare=====
 
You have to install a new plugin for mock : Iso_prepare<br />
 
You have to install a new plugin for mock : Iso_prepare<br />
   −
copy the content of http://bugs.contribs.org/attachment.cgi?id=5145 and paste it in  
+
copy the content of https://bugs.contribs.org/attachment.cgi?id=6286 (updated for CentOS 7 and python 3.6) and paste it in  
  sudo vim /usr/lib/python2.6/site-packages/mockbuild/plugins/iso_prepare.py
+
  sudo wget https://bugs.contribs.org/attachment.cgi?id=6286 -O /usr/lib/python3.6/site-packages/mockbuild/plugins/iso_prepare.py
   −
===='''Local Only''': update_repos====
+
====='''Local Only''': update_repos=====
 
The script update_repos relies on RPM2 which can be found as a RPM.
 
The script update_repos relies on RPM2 which can be found as a RPM.
 
  yum install perl-RPM2 repoview --enablerepo=epel
 
  yum install perl-RPM2 repoview --enablerepo=epel
Line 36: Line 46:  
{{Note box|Note that update_repos copies packages from smeupdates-testing to stage but not from smetest, so packages freshly built won't be included into the new ISO until they are manually moved from smetest to smeupdates-testing}}
 
{{Note box|Note that update_repos copies packages from smeupdates-testing to stage but not from smetest, so packages freshly built won't be included into the new ISO until they are manually moved from smetest to smeupdates-testing}}
 
The buildsys has two main folders that are relevant for building an ISO.
 
The buildsys has two main folders that are relevant for building an ISO.
  repo      => '/build/smeserver/repo/ ', eg '/build/smeserver/repo/testing/9/'
+
  repo      => '/build/smeserver/repo/ ', eg '/build/smeserver/repo/testing/10/'
  stage    => '/build/smeserver/stage/', eg  '/build/smeserver/stage/9/'
+
  stage    => '/build/smeserver/stage/', eg  '/build/smeserver/stage/10/'
    
* '''repo''' is the folder that replicates to the mirrors. Be careful of all changes here.
 
* '''repo''' is the folder that replicates to the mirrors. Be careful of all changes here.
Line 44: Line 54:  
It also needs all GPG keys for every package that it sees, it can take a while to find them all.
 
It also needs all GPG keys for every package that it sees, it can take a while to find them all.
   −
===='''Local Only''': Create the repo folder and the binary program folder====
+
====='''Local Only''': Create the repo folder and the binary program folder=====
'''Local Only'''
   
  mkdir -p /build/smeserver/repo
 
  mkdir -p /build/smeserver/repo
 
  mkdir -p /build/smeserver/stage/bin
 
  mkdir -p /build/smeserver/stage/bin
Line 52: Line 61:     
Eg  
 
Eg  
  /bin/cd ~/builds_bin
+
  /bin/cd ~/smeserver/builds_bin
 
  /usr/bin/cvs update -dPA
 
  /usr/bin/cvs update -dPA
  /bin/cp ~/builds_bin/* /build/smeserver/stage/bin
+
  /bin/cp ~/smeserver/builds_bin/* /build/smeserver/stage/bin
   −
===='''Local Only''': Mock Special Settings====
+
====='''Local Only''': Mock Special Settings=====
 
* hard-coded UID of release account
 
* hard-coded UID of release account
   −
verify that in all '''/etc/mock/smeserver-{i386,x86_64}-iso.cfg''' you have '''config_opts['chrootuid'] = os.getuid()'''
+
verify that in all '''/etc/mock/smeserver-10-{i386,x86_64}-iso.cfg''' you have '''config_opts['chrootuid'] = os.getuid()'''
 
  - config_opts['chrootuid'] = 10020
 
  - config_opts['chrootuid'] = 10020
 
  + config_opts['chrootuid'] = os.getuid()
 
  + config_opts['chrootuid'] = os.getuid()
   −
* {{Note box|Due to local settings you have to edit each configuration of mock and edit '''smeserver-X-{i386,x86_64}-iso.cfg''' files to include /build in the chroot}}
+
*  
:''These are the changes that you need to made if you do not have the nfs mounts on your local machine
+
{{Note box|Due to local settings you have to edit each configuration of mock and edit '''smeserver-X-{i386,x86_64}-iso.cfg''' files to include /build in the chroot}}
 +
:''These are the changes that you need to made if you do not have the nfs mounts on your local machine''
 
  config_opts['plugin_conf']['mount_opts']['dirs'].append(('storage:/export/build', '/build', 'nfs', 'defaults,noatime,nodiratime,nosuid'))
 
  config_opts['plugin_conf']['mount_opts']['dirs'].append(('storage:/export/build', '/build', 'nfs', 'defaults,noatime,nodiratime,nosuid'))
 
  config_opts['plugin_conf']['mount_opts']['dirs'].append(('storage:/mirrors', '/mirrors', 'nfs', 'defaults,noatime,nodiratime,nosuid'))
 
  config_opts['plugin_conf']['mount_opts']['dirs'].append(('storage:/mirrors', '/mirrors', 'nfs', 'defaults,noatime,nodiratime,nosuid'))
Line 73: Line 83:  
  config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/build', '/build' ))
 
  config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/build', '/build' ))
 
Eg:
 
Eg:
  sudo vim /etc/mock/smeserver-9-x86_64-iso.cfg
+
  sudo vim /etc/mock/smeserver-10-x86_64-iso.cfg
   −
===='''Local Only''': Patch a Mock Plugin====
+
====='''Local Only''': Patch a Mock Plugin=====
 +
{{Note box|this does not seems to be needed anymore on a CentOS 7 builder using python3.6 as per 2020/06/11}}
 
There is also an update to /usr/lib/python2.6/site-packages/mockbuild/mounts.py that needs to happen so loop devices get mounted correctly. Check '''/var/lib/mock/smeserver-VERSION-ARCH/result/root.log''' after '''mock -r smeserver-VERSION-ARCH-iso --init (eg mock -r smeserver-8-i386-iso --init)'''. The mounting of the /dev/loopX should pass (return code 0). If it fails (return code 32) then the patch below is needed on your build host. see http://bugs.contribs.org/show_bug.cgi?id=7675#c61
 
There is also an update to /usr/lib/python2.6/site-packages/mockbuild/mounts.py that needs to happen so loop devices get mounted correctly. Check '''/var/lib/mock/smeserver-VERSION-ARCH/result/root.log''' after '''mock -r smeserver-VERSION-ARCH-iso --init (eg mock -r smeserver-8-i386-iso --init)'''. The mounting of the /dev/loopX should pass (return code 0). If it fails (return code 32) then the patch below is needed on your build host. see http://bugs.contribs.org/show_bug.cgi?id=7675#c61
   Line 125: Line 136:  
then do
 
then do
 
  sudo patch -N  /usr/lib/python2.6/site-packages/mockbuild/plugins/mount.py < mount.py.20150626.daniel.berteaud.patch
 
  sudo patch -N  /usr/lib/python2.6/site-packages/mockbuild/plugins/mount.py < mount.py.20150626.daniel.berteaud.patch
 +
 +
====CVS Folder structure, both local and buildsys====
 +
 +
as releases user do
 +
 +
This document presumes that
 +
~/smeserver/builds_bin is builds_bin from CVS
 +
~/smeserver/cdrom.image is cdrom.image from CVS
 +
~/anaconda-po contains '''the anaconda translations'''
 +
~/smeserver/releases '''contains a local smeserver mirror'''
 +
~/smeserver/rpms is rpms folder from CVS
 +
 +
if absent then :
 +
cd ~
 +
mkdir -p smeserver/builds_bin smeserver/cdrom.image smeserver/cdrom.image
 +
ln -s smeserver/builds_bin builds_bin
 +
ln -s smeserver/cdrom.image cdrom.image
 +
mkdir -p anaconda-po
 +
 +
then update content or populate
 +
cd smeserver
 +
cvs -z3 -d:pserver:anonymous@shell.koozali.org:/cvs/smeserver co -P builds_bin
 +
cvs -z3 -d:pserver:anonymous@shell.koozali.org:/cvs/smeserver co -P cdrom.image
 +
cvs -z3 -d:pserver:anonymous@shell.koozali.org:/cvs/smeserver co -P rpms
 +
cd ~
 +
 +
 +
===Preparation of a new Major Release===
 +
this part is a work in progress and might help for SME 11
 +
 +
====Check how to tweak Anaconda====
 +
download last anaconda package from CentOS and update source in buildsys. Do this on shell VM.<syntaxhighlight lang="bash">
 +
wget https://vault.centos.org/7.9.2009/os/Source/SPackages/anaconda-21.48.22.159-1.el7.centos.src.rpm
 +
~/smeserver/common/cvs-import.sh -b sme10 anaconda-21.48.22.159-1.el7.centos.src.rpm
 +
cd ~/smeserver/rpms/anaconda/sme10
 +
prepa
 +
 +
</syntaxhighlight>then you want to harvest the patch we already have. For SME10:
 +
# 100-anaconda-koozali-product.patch
 +
# 101-anaconda-koozali-add-koozali-install-class.patch
 +
<syntaxhighlight>
 +
wget https://viewvc.koozali.org/smeserver/rpms/anaconda/sme10/100-anaconda-koozali-product.patch
 +
cvs add 100-anaconda-koozali-product.patch
 +
 +
wget https://viewvc.koozali.org/smeserver/rpms/anaconda/sme10/101-anaconda-koozali-add-koozali-install-class.patch
 +
cvs add 101-anaconda-koozali-add-koozali-install-class.patch
 +
 +
 +
#alternative could to play with
 +
#$ cvs update -p -r rev file.txt > file.txt
 +
#$ cvs add file.txt
 +
#$ cvs commit
 +
</syntaxhighlight>then add to the spec file the needed elements to apply the patches, and udpate changelog<syntaxhighlight lang="spec">
 +
## at beginning
 +
 +
#KOOZALI
 +
Patch100: 100-anaconda-koozali-product.patch
 +
Patch101: 101-anaconda-koozali-add-koozali-install-class.patch
 +
#ENDKOOZALI
 +
 +
 +
### in %prep
 +
 +
#KOOZALI
 +
%patch100 -p1
 +
pushd pyanaconda/installclasses/
 +
cp -f centos.py koozali.py
 +
popd
 +
%patch101 -p1
 +
#END KOOZALI
 +
 +
 +
 +
### in changelog
 +
* Tue Feb 16 2021 Jean-Philipe Pialasse <tests@pialasse.com> 21.48.22.159-2.sme
 +
- patch for product.img branding of anaconda
 +
 +
 +
 +
</syntaxhighlight>then commit<syntaxhighlight>
 +
cvs commit
 +
</syntaxhighlight>also prepare for later usage<syntaxhighlight lang="bash">
 +
make clean
 +
make prep
 +
</syntaxhighlight>if it fails applying the patches you will need to manually modify the files and ceate new patches...
 +
 +
====Update isolinux content====
 +
TODO
 +
 +
====Update cdrom.image content====
 +
Update cdrom.image to the latest in CVS
 +
 +
create a new tree if this is a new SME version
 +
cd smeserver
 +
cvs -z3 -d:ext:shell.koozali.org:/cvs/smeserver co -P cdrom.image
 +
cd cdrom.image
 +
cp -r sme9 sme10
 +
rm -rf sme10/CVS
 +
rm -rf sme10/isolinux/CVS
 +
rm -rf sme10/Packages/base/CVS 
 +
rm -rf sme10/Packages/CVS
 +
rm -rf sme10/product/CVS
 +
rm -rf sme10/product/installclasses/CVS
 +
rm -rf sme10/product/pixmaps/CV
 +
rm -rf sme10/updates/CVS
 +
cvs add sme10
 +
cd sme10
 +
 +
add new key
 +
wget http://mirror.canada.pialasse.com/releases/testing/10/smeos/x86_64/RPM-GPG-KEY-koozali
 +
 +
do a little tidy up, then
 +
 +
find ./ -name CVS -prune -o -print | xargs cvs add
 +
cvs commit -m 'new cdrom.image version for sme10'
 +
 +
alternatively to only update content
 +
cd ~/cdrom.image
 +
cvs update -dPA
 +
 +
    
===Preparation for a new ISO release===
 
===Preparation for a new ISO release===
Line 130: Line 262:  
====Generate a new Changelogs====
 
====Generate a new Changelogs====
 
When generating an ISO the Release Notes for the ISO should contain the full delta from the last ISO. Ian gets a script for doing that
 
When generating an ISO the Release Notes for the ISO should contain the full delta from the last ISO. Ian gets a script for doing that
 +
 +
When it is available you need to put it there:
 +
 +
to do this :
 +
cd ~/smeserver/cdrom.image
 +
cvs update -dPA
 +
cd  sme10/
 +
then copy the new version, as instance you could do this:
 +
cp ~/ReleaseNotes.txt README.txt
 +
 +
then commit:
 +
cvs commit -m "Release 10.1" README.txt
 +
 
====The Smeserver version name====
 
====The Smeserver version name====
 
The Version number comes from a rpm, smeserver-release, you need to bump the version in the spec file and build the rpm, think to push it to smeupdates-testing.
 
The Version number comes from a rpm, smeserver-release, you need to bump the version in the spec file and build the rpm, think to push it to smeupdates-testing.
Line 164: Line 309:     
====Server-Manager translations====
 
====Server-Manager translations====
Check translations from https://translate.koozali.org/patches/ if the filesize is >0 then need to patch smeserver-locale (to sme8 & sme9) and produce new rpms that will must be pushed to smeupdate-testing
+
Check translations from https://translate.koozali.org/patches/ if the filesize is >0 then need to patch smeserver-locale (to sme10) and produce new rpms that will must be pushed to smeupdate-testing
    
====Anaconda translations====
 
====Anaconda translations====
Line 171: Line 316:  
get the latest files ('''-w 1''' means wait one second between two requests, to prevent your IP behing blacklisted):
 
get the latest files ('''-w 1''' means wait one second between two requests, to prevent your IP behing blacklisted):
 
  wget --mirror --no-parent -w 1 -A.mo -P ~/anaconda-po https://translate.koozali.org/anaconda/
 
  wget --mirror --no-parent -w 1 -A.mo -P ~/anaconda-po https://translate.koozali.org/anaconda/
 +
 +
you can also fast the operation by doing the following if you only need on sme version:
 +
mkdir -p ~/anaconda-po/sme10
 +
wget --mirror --no-parent -w 1 -A.mo -P ~/anaconda-po/sme10 https://translate.koozali.org/anaconda/sme10/
    
====Check if installer needs re-building====
 
====Check if installer needs re-building====
 
{{Warning box|If either anaconda has changed OR there is new content in cdrom.image (apart from the release note) then the installer needs to be rebuilt (by the script build_installer). Otherwise just the ISO needs to be built (by the script Build_ISO).}}
 
{{Warning box|If either anaconda has changed OR there is new content in cdrom.image (apart from the release note) then the installer needs to be rebuilt (by the script build_installer). Otherwise just the ISO needs to be built (by the script Build_ISO).}}
   −
====Update cdrom.image content====
  −
Update cdrom.image to the latest in CVS
  −
  −
cd ~/cdrom.image
  −
cvs update -dPA
        Line 191: Line 335:  
{{Note box|Be careful to bump the version, the release and the displayversion macro, eg
 
{{Note box|Be careful to bump the version, the release and the displayversion macro, eg
   −
  %define version 8.2
+
  %define version 10.1
 
  %define release 0.rc2
 
  %define release 0.rc2
 
  %define displayversion %{version}rc2
 
  %define displayversion %{version}rc2
    +
or with final release:
 +
 +
%define version 10.1
 +
%define release 1
 +
%define displayversion %{version}
 +
 +
Do not forget the changelog !
 
}}
 
}}
    
====Bump version in the splash screen====
 
====Bump version in the splash screen====
This is only needed on SME9: we need to update the title of the splsh screen. For this, we have to update the title line in cdrom.images/sme9/isolinux/isolinux.cfg, eg
+
We need to update the title of the splash screen. For this, we have to update the title line in cdrom.images/sme10/isolinux/isolinux.cfg, eg
 +
 
 +
menu title Welcome to SME Server 10.1 RC1
   −
  menu title Welcome to SME Server 9.1 beta3
+
 
 +
to do this :
 +
cd ~/smeserver/cdrom.image
 +
  cvs update -dPA
 +
cd  sme10/isolinux/
 +
vim isolinux.cfg
 +
 
 +
then edit, and finish with:
 +
cvs commit -m "Release 10.1" isolinux.cfg
 +
 
 +
====Bump version in /etc/*release* files====
 +
We need to update the title of the initial boot screen when the iso installer has been launched.
 +
to do this :
 +
cd ~/smeserver/cdrom.image
 +
cvs update -dPA
 +
cd  sme10/product/etc
 +
 
 +
then update all the files there where you can see a 10.* version number.
 +
centos-release  e-smith-release  os-release  redhat-release  system-release-cpe
    
====Remove the 'Beta warning' in Anaconda====
 
====Remove the 'Beta warning' in Anaconda====
=====For SME8=====
+
=====For SME10=====
 +
 
 +
edit the file .buildstamp
 +
cd /build/smeserver/stage/extra/images/10/product
 +
vim .buildstamp
 +
 
 +
[Main]
 +
Product=Koozali SME Server
 +
Version=10alpha5
 +
BugURL=https://bugs.koozali.org
 +
IsFinal=False
 +
UUID=alpha5.x86_64
 +
[Compose]
 +
Lorax=19.6.66-1
   −
Edit cdrom.image/sme8/updates/installclasses/smeinstallclass.py and remove the "betanag" entry from the dispatch.setStepList list
     −
    def setSteps(self, dispatch):
+
change isFinal to True
        dispatch.setStepList(
  −
                "betanag",  <- remove this line
  −
                "language",
  −
                "keyboard",
  −
                "findrootparts",
     −
=====For SME9=====
+
Also bump the '''Version''' !
   −
The Iso gets a 'beta' tag with warnings during the install process. How remove the beta tag, '''add --final in the /build/smeserver/stage/bin/build_installer'''
     −
# add --final when we have final product
  −
  PYTHONPATH=/usr/lib/anaconda/ sudo /usr/lib/anaconda-runtime/buildinstall \
  −
      --product "$distname" \
  −
      --version "${distvers/[^0-9.]*/}" \
  −
      --release "$distname" \
  −
      --brand "centos" \
  −
      '''--final \'''
  −
      --bugurl http://bugs.contribs.org/ \
  −
      --output $(pwd)/$distarch/ \
  −
      /build/smeserver/repo/$distrel/smeextras/$distarch/ \
  −
      $(pwd)/$distarch/
  −
  /bin/sed -i -e "s|packagedir =.*|packagedir = Packages|" $(pwd)/$distarch/.treeinfo
     −
===SME Server 9===
+
===Prepare SME Server 10===
    
===='''Local Only''': Update local mirror as seen by the chroot====
 
===='''Local Only''': Update local mirror as seen by the chroot====
 
'''Local Only'''
 
'''Local Only'''
  rsync -av --delete --progress ~/smeserver/releases/9/ /build/smeserver/repo/9
+
  rsync -av --delete --progress ~/smeserver/releases/10/ /build/smeserver/repo/10
    
====Create release specific folder and link (or rename the folder)====
 
====Create release specific folder and link (or rename the folder)====
 
The build_installer and build_ISO expect to be run from a directory that points to the head of the stage (ex. /build/stage/8). This is usually a symlink to 8.1 or 8.1beta1. The script fully expands the symlink and pulls off the last element to figure out what version we are going to build.  
 
The build_installer and build_ISO expect to be run from a directory that points to the head of the stage (ex. /build/stage/8). This is usually a symlink to 8.1 or 8.1beta1. The script fully expands the symlink and pulls off the last element to figure out what version we are going to build.  
   −
  mkdir -p /build/smeserver/stage/9.1/{SRPMS,i386,x86_64}
+
get the version string [[Build_an_Official_ISO#Versions]]
 +
 
 +
{{Note box|Note: images and isolinux do not need to be created as they are removed anyway in build_installer(from SME9, need to check)}}
 +
  mkdir -p /build/smeserver/stage/$VERSION/{SRPMS,x86_64}
 +
mkdir -p /build/smeserver/stage/$VERSION/x86_64/{Packages,EFI,images,isolinux,LiveOS,repodata,repoview,updates}
 +
mkdir -p /build/smeserver/stage/$VERSION/x86_64/Packages/base
 +
mkdir -p /build/smeserver/stage/$VERSION/x86_64/images/pxeboot
 +
mkdir -p /build/smeserver/stage/$VERSION/x86_64/updates/{po,textw,iw,storage/devicelibs}
 
  cd /build/smeserver/stage/
 
  cd /build/smeserver/stage/
  rm -f 9
+
  rm -f $VER
  ln -s 9.1 9
+
  ln -s $VERSION $VER
 +
Get last LiveOS from centos
 +
cd /build/smeserver/stage/$VERSION/x86_64/LiveOS
 +
wget <nowiki>http://mirror.centos.org/centos/7/os/x86_64/LiveOS/squashfs.img</nowiki>
 +
Get CentOS last images content
 +
cd /build/smeserver/stage/$VERSION/x86_64/images
 +
wget <nowiki>http://mirror.centos.org/centos/7/os/x86_64/images/boot.iso</nowiki> <nowiki>http://mirror.centos.org/centos/7/os/x86_64/images/efiboot.img</nowiki>
 +
cd /build/smeserver/stage/$VERSION/x86_64/images/pxeboot
 +
wget <nowiki>http://mirror.centos.org/centos/7/os/x86_64/images/pxeboot/initrd.img</nowiki> <nowiki>http://mirror.centos.org/centos/7/os/x86_64/images/pxeboot/vmlinuz</nowiki>
 +
 
 +
Prepare to build the product.img
 +
rsync -arv /build/smeserver/repo/$FROM/$VERPREV/smeos/x86_64/product /build/smeserver/stage/$VERSION/x86_64/
   −
'''Local Only'''
+
Populate isolinux dir:
  mkdir -p /build/smeserver/stage/extra/isolinux/
+
  rsync -arv /mirrors/centos/7/os/x86_64/isolinux/* /build/smeserver/stage/$VERSION/x86_64/isolinux/
 +
could also be from previous iso
 +
rsync -arv /build/smeserver/stage/$VERPREV/x86_64/isolinux/* /build/smeserver/stage/$VERSION/x86_64/isolinux/
 +
Populate EFI
 +
rsync -arv /mirrors/centos/7/os/x86_64/EFI /build/smeserver/stage/$VERSION/x86_64/
 +
could also be from previous iso
 +
rsync -arv /build/smeserver/stage/$VERPREV/x86_64/EFI /build/smeserver/stage/$VERSION/x86_64/
    
====Create cdrom content====
 
====Create cdrom content====
 
When starting from fresh rsync can copy cdrom.image content, it also generates the folder tree.
 
When starting from fresh rsync can copy cdrom.image content, it also generates the folder tree.
{{Warning box|'''Note that this would remove everything else out of the target directory, eg translations.'''}}
+
{{Warning box|'''Before doing this, you should use an account with CVS write access to bump the version or alter  the following files:
Also note that the isolinux content goes into a temporary directory, /build/smeserver/stage/extra/isolinux/
+
#Packages/base/comp.xml
 
+
#isolinux{boot.msg, help.txt,isolinux.cfg}
rsync -a --delete --delete-excluded --exclude 'CVS/' --exclude 'isolinux/' ~/cdrom.image/sme9/ /build/smeserver/stage/9/x86_64/
+
#netinstall/isolinux/isolinux.cfg
rsync -a --delete --delete-excluded --exclude 'CVS/' --exclude 'isolinux/' ~/cdrom.image/sme9/ /build/smeserver/stage/9/i386/
+
#product/.buildstamp
rsync -a --delete --delete-excluded --exclude 'CVS/' ~/cdrom.image/sme9/isolinux/ /build/smeserver/stage/extra/isolinux/9/
+
#updates/README.txt'''}}
   −
====OR Refresh cdrom content====
+
==== Refresh cdrom content====
 
If only refreshing the files, then remove the delete.
 
If only refreshing the files, then remove the delete.
 +
cd ~/smeserver
 +
cvs -z3 -d:pserver:anonymous@shell.koozali.org:/cvs/smeserver co -P cdrom.image
   −
  rsync -a --exclude 'CVS/' --exclude 'isolinux/' ~/cdrom.image/sme9/ /build/smeserver/stage/9/x86_64/
+
  rsync -arv --exclude 'CVS/' ~/smeserver/cdrom.image/sme$VER/ /build/smeserver/stage/$VER/x86_64/
  rsync -a --exclude 'CVS/' --exclude 'isolinux/' ~/cdrom.image/sme9/ /build/smeserver/stage/9/i386/
+
  cd /build/smeserver/stage/extra/images/$VER/product/
  rsync -a --exclude 'CVS/' ~/cdrom.image/sme9/isolinux/ /build/smeserver/stage/extra/isolinux/9/
     −
====Create the remaining folders====
+
====Copy anaconda translations====
{{Note box|Note: images and isolinux do not need to be created as they are removed anyway in build_installer}}
+
Anaconda translations need copying to /updates/po from ~/anaconda-po
 +
see [[Build_an_Official_ISO#Anaconda translations]] to get updated strings
 +
cp -R ~/anaconda-po/translate.koozali.org/anaconda/sme$VER/* /build/smeserver/stage/$VER/x86_64/updates/po/
   −
* i386
+
====Copy anaconda content to create product.img====
cd /build/smeserver/stage/9/i386
+
See ~/smeserver/cdrom.image/sme$VER/updates/README.txt for details of what to copy. The patched anaconda files from ~/smeserver/rpms/anaconda/sme$VER will go to updates directory. The exact directory depends on the anaconda version, eg ~/smeserver/rpms/anaconda/sme$VER/anaconda-21.48.22.56
ln -s Packages/ SME
  −
mkdir -p /build/smeserver/stage/9/i386/repodata/
  −
mkdir -p /build/smeserver/stage/9/i386/updates/po
  −
mkdir -p /build/smeserver/stage/9/i386/updates/textw
  −
  mkdir -p /build/smeserver/stage/9/i386/updates/iw
  −
mkdir -p /build/smeserver/stage/9/i386/updates/storage/devicelibs
     −
* x86_64
+
if first time running cvs (here example as anonymous, but can use your login):
cd /build/smeserver/stage/9/x86_64
  −
ln -s Packages/ SME
  −
mkdir -p /build/smeserver/stage/9/x86_64/repodata/
  −
mkdir -p /build/smeserver/stage/9/x86_64/updates/po
  −
mkdir -p /build/smeserver/stage/9/x86_64/updates/textw
  −
mkdir -p /build/smeserver/stage/9/x86_64/updates/iw
  −
mkdir -p /build/smeserver/stage/9/x86_64/updates/storage/devicelibs
     −
* other directories
+
  mkdir -p ~/smeserver
  mkdir -p /build/smeserver/stage/iso/9/i386
+
  pushd ~/smeserver
  mkdir -p /build/smeserver/stage/iso/9/x86_64
+
  cvs -z3 -d:pserver:anonymous@shell.koozali.org:/cvs/smeserver co -P rpms/anaconda
  mkdir -p /build/smeserver/stage/iso/9/source
+
popd
   −
====Copy anaconda translations====
+
then you can simply
Anaconda translations need copying to /updates/po from ~/anaconda-po
  −
cp -R ~/anaconda-po/translate.koozali.org/anaconda/sme9/* /build/smeserver/stage/9/i386/updates/po/
  −
cp -R ~/anaconda-po/translate.koozali.org/anaconda/sme9/* /build/smeserver/stage/9/x86_64/updates/po/
     −
====Copy anaconda content====
+
pushd ~/smeserver/rpms/anaconda/sme10/
See ~/cdrom.image/sme9/updates/README.txt for details of what to copy. The patched anaconda files from ~/rpms/anaconda/sme9 will go to updates directory. The exact directory depends on the anaconda version, eg  ~/rpms/anaconda/sme9/anaconda-13.21.239
+
  cvs update -dPA
  cd ~/rpms/anaconda/sme9/
   
  make prep
 
  make prep
  cd ~/rpms/anaconda/sme9/anaconda-13.21.239
+
  popd
  cp -R storage /build/smeserver/stage/9/i386/updates/
+
pushd /build/smeserver/stage/$VERSION/x86_64/product/
cp -R textw/*.py /build/smeserver/stage/9/i386/updates/textw
+
/bin/cp -f --preserve=timestamps ~/smeserver/rpms/anaconda/sme10/anaconda-21.48.22.159/pyanaconda/installclasses/koozali.py  run/install/product/pyanaconda/installclasses/
  cp -R iw/*.py /build/smeserver/stage/9/i386/updates/iw
+
  /bin/cp -f --preserve=timestamps ~/smeserver/rpms/anaconda/sme10/anaconda-21.48.22.159/pyanaconda/installclasses/koozali.py usr/lib64/python2.7/site-packages/pyanaconda/installclasses/
cp *.py /build/smeserver/stage/9/i386/updates
+
  /bin/cp -f --preserve=timestamps ~/smeserver/rpms/anaconda/sme10/anaconda-21.48.22.159/pyanaconda/installclasses/centos.py usr/lib64/python2.7/site-packages/pyanaconda/installclasses/
  cp lang-table /build/smeserver/stage/9/i386/updates
+
  /bin/cp -f --preserve=timestamps ~/smeserver/rpms/anaconda/sme10/anaconda-21.48.22.159/pyanaconda/installclasses/fedora.py usr/lib64/python2.7/site-packages/pyanaconda/installclasses/
 +
popd
 +
 
 +
For testing purpose you can do this, but BUILD SCRIPT DOES IT ! build new product.img and copy it to stage, if you want but it should be done by the build.ISO script
   −
  cp -R storage /build/smeserver/stage/9/x86_64/updates/
+
  #find . | cpio -c -o | gzip -9cv > ../product.img; cd ..
cp -R textw/*.py /build/smeserver/stage/9/x86_64/updates/textw
+
  #mkdir -p /build/smeserver/stage/$VER/x86_64/images/
  cp -R iw/*.py /build/smeserver/stage/9/x86_64/updates/iw
+
  #cp product.img /build/smeserver/stage/$VER/x86_64/images/
  cp *.py /build/smeserver/stage/9/x86_64/updates
  −
cp lang-table /build/smeserver/stage/9/x86_64/updates
      
===='''Local Only''': Hack: Permission Fixup====
 
===='''Local Only''': Hack: Permission Fixup====
 
This is only needed on local server if permissions are incorrect. It should not be needed.<br />
 
This is only needed on local server if permissions are incorrect. It should not be needed.<br />
  −
'''Local Only'''
   
  sudo chmod -R a+w /build/smeserver/stage
 
  sudo chmod -R a+w /build/smeserver/stage
    
===='''Local Only''': Create stage content====
 
===='''Local Only''': Create stage content====
{{Note box|Note: This step occurs every hours on the buildsys.}}
+
{{Note box|Note: This step occurs every hours on the buildsys as cron task.}}
'''Local Only'''
   
  /build/smeserver/stage/bin/update_repos
 
  /build/smeserver/stage/bin/update_repos
   −
===Prepare SME Server 8===
     −
===='''Local Only''': Update local mirror as seen by the chroot====
  −
rsync -av --delete --progress ~/smeserver/releases/8/ /build/smeserver/repo/8/
     −
====Create release specific folder and link (or rename folder)====
  −
The build_installer and build_ISO expect to be run from a directory that points to the head of the stage (ex. /build/stage/8). This is usually a symlink to 8.1 or 8.1beta1. The script fully expands the symlink and pulls off the last element to figure out what version we are going to build.
  −
mkdir -p /build/smeserver/stage/8.2/{SRPMS,i386,x86_64}
  −
cd /build/smeserver/stage/
  −
rm 8
  −
ln -s 8.2 8
     −
mkdir -p /build/smeserver/stage/extra/isolinux/
+
===Build & Release SME Server 10===
   −
====Create cdrom content====
+
get the version string [[Build_an_Official_ISO#Versions]]
When starting from fresh rsync can copy cdrom.image content, it also generates the folder tree.
  −
{{Warning box|'''Note that this would remove everything else out of the target directory, eg translations.'''}}
  −
Also note that the isolinux content goes into a temporary directory, /build/smeserver/stage/extra/isolinux/
     −
rsync -a --delete --delete-excluded --exclude 'CVS/' --exclude 'isolinux/' ~/cdrom.image/sme8/ /build/smeserver/stage/8/x86_64/
+
You can find logs of the related scripts build_ISO and build_installer<br />
rsync -a --delete --delete-excluded --exclude 'CVS/' --exclude 'isolinux/' ~/cdrom.image/sme8/ /build/smeserver/stage/8/i386/
  −
rsync -a --delete --delete-excluded --exclude 'CVS/' ~/cdrom.image/sme8/isolinux/ /build/smeserver/stage/extra/isolinux/8/
     −
====OR Refresh cdrom content====
+
If something goes wrong, please verify first
If only refreshing the files, then remove the delete.
+
/build/smeserver/stage/$VER/build_installer.x86_64
 +
and after if you have no errors
 +
/build/smeserver/stage/$VER/build_ISO.x86_64
   −
  rsync -a --exclude 'CVS/' --exclude 'isolinux/' ~/cdrom.image/sme8/ /build/smeserver/stage/8/x86_64/
+
====Build SME Server 10 64 bit ISO====
  rsync -a --exclude 'CVS/' --exclude 'isolinux/' ~/cdrom.image/sme8/ /build/smeserver/stage/8/i386/
+
as releases on builder7
rsync -a --exclude 'CVS/' ~/cdrom.image/sme8/isolinux/ /build/smeserver/stage/extra/isolinux/8/
+
  mock -r smeserver-$VER-x86_64-iso --init
 +
# not to do #mock -r smeserver-$VER-x86_64-iso --mount --cwd /build/smeserver/stage/$VER --unpriv --chroot /build/smeserver/stage/bin/build_installer
 +
  mock -r smeserver-$VER-x86_64-iso --mount --cwd /build/smeserver/stage/$VER --unpriv --chroot /build/smeserver/stage/bin/build_ISO
   −
====Create the remaining folders====
+
=====local only=====
{{Note box|Note: images and isolinux do not need to be created as they are removed anyway in build_installer}}
+
mock -r smeserver-$VER-x86_64-iso --init
 +
#not to do #mock -r smeserver-$VER-x86_64-iso --mount --cwd /build/smeserver/stage/$VER --unpriv --chroot /build/smeserver/stage/bin/build_installer
 +
sudo chmod -R a+w /build/smeserver/stage
 +
mock -r smeserver-$VER-x86_64-iso --mount --cwd /build/smeserver/stage/$VER --unpriv --chroot /build/smeserver/stage/bin/build_ISO
   −
* i386
  −
cd /build/smeserver/stage/8/i386
  −
ln -s SME Packages
  −
mkdir -p /build/smeserver/stage/8/i386/repodata
  −
mkdir -p /build/smeserver/stage/8/i386/updates/po
  −
cp ~/cdrom.image/sme8/SME/base/comps.xml /build/smeserver/stage/8/i386/repodata/
     −
* x86_64
  −
cd /build/smeserver/stage/8/x86_64
  −
ln -s SME Packages
  −
mkdir -p /build/smeserver/stage/8/x86_64/repodata
  −
mkdir -p /build/smeserver/stage/8/x86_64/updates/po
  −
cp ~/cdrom.image/sme8/SME/base/comps.xml /build/smeserver/stage/8/x86_64/repodata/
     −
* other directories
+
===Where are My F... ISO===
  mkdir -p /build/smeserver/stage/iso/8/i386
+
  ls /build/smeserver/stage/iso/10/
  mkdir -p /build/smeserver/stage/iso/8/x86_64
+
  source  x86_64
mkdir -p /build/smeserver/stage/iso/8/source
     −
====Copy anaconda translations====
+
===Developer Access Needed to release ISO===
Anaconda translations need copying to /updates/po from ~/anaconda-po
+
From this point a developer access to the buildsys and the main repo is Needed, sorry guys. Has to be done from buildsrv
   −
cp -R ~/anaconda-po/translate.koozali.org/anaconda/sme8/* /build/smeserver/stage/8/i386/updates/po/
+
get the version string [[Build_an_Official_ISO#Versions]]
cp -R ~/anaconda-po/translate.koozali.org/anaconda/sme8/* /build/smeserver/stage/8/x86_64/updates/po/
     −
====Copy anaconda content====
+
=====Prepare directory structure for SME10 release=====
See ~/cdrom.image/sme8/updates/README.txt for details of what to copy. The patched anaconda files from ~/rpms/anaconda/sme8 will go to updates directory. The exact directory depends on the anaconda version,
+
SME 10.x test releases will go to /build/smeserver/repo/testing/10. Check that the link points to the correct testing release. Note when uploading Jigdos the ‘10’ link will not be pointing to the new directory.
eg ~/rpms/anaconda/sme8/anaconda-11.1.2.263. One file (bootloaderInfo.py) also comes from booty. '''Finally lang-names needs to come from the actual anaconda RPM to updates which is a manual step.'''
+
  mkdir -p /build/smeserver/repo/$TO/$VERSION/iso/source/
 +
mkdir -p /build/smeserver/repo/$TO/$VERSION/iso/x86_64/
 +
  mkdir -p /build/smeserver/repo/$TO/$VERSION/smeos/x86_64/
   −
  cd ~/rpms/anaconda/sme8/
+
=====Copy SME Server 10 64 bit Jigdo to mirror=====
make prep
+
  /bin/cp -a /build/smeserver/stage/iso/$VER/x86_64/smeserver-$VERSION-x86_64.jigdo /build/smeserver/repo/$TO/$VERSION/iso/x86_64/
cd ~/rpms/anaconda/sme8/anaconda-11.1.2.263
+
  /bin/cp -a /build/smeserver/stage/iso/$VER/x86_64/smeserver-$VERSION-x86_64.template /build/smeserver/repo/$TO/$VERSION/iso/x86_64/
  cp anaconda bootloader.py findpackageset.py fsset.py instdata.py kickstart.py lang-table language.py packages.py partedUtils.py raid.py upgrade.py yuminstall.py /build/smeserver/stage/8/i386/updates/
+
  rsync -a --delete /build/smeserver/stage/$VER/x86_64/ /build/smeserver/repo/$TO/$VERSION/smeos/x86_64/
  cp anaconda bootloader.py findpackageset.py fsset.py instdata.py kickstart.py lang-table language.py packages.py partedUtils.py raid.py upgrade.py yuminstall.py /build/smeserver/stage/8/x86_64/updates/
     −
cd textw
+
=====Copy SME Server 10 SRPMS Jigdo to mirror=====
  cp confirm_text.py progress_text.py timezone_text.py upgrade_bootloader_text.py upgrade_text.py /build/smeserver/stage/8/i386/updates/
+
  /bin/cp -a /build/smeserver/stage/iso/$VER/source/smeserver-$VERSION-SRPMS.jigdo /build/smeserver/repo/$TO/$VERSION/iso/source/
  cp confirm_text.py progress_text.py timezone_text.py upgrade_bootloader_text.py upgrade_text.py /build/smeserver/stage/8/x86_64/updates/
+
  /bin/cp -a /build/smeserver/stage/iso/$VER/source/smeserver-$VERSION-SRPMS.template /build/smeserver/repo/$TO/$VERSION/iso/source/
 +
rsync -a --delete /build/smeserver/stage/$VER/SRPMS/ /build/smeserver/repo/$TO/$VERSION/smeos/SRPMS
   −
cd  ~/rpms/booty/sme8/
+
=====Copy SME Server 10 ISOs to mirror=====
  make prep
+
  rsync -a --delete /build/smeserver/stage/iso/$VER/ /build/smeserver/repo/$TO/$VERSION/iso
cp ~/rpms/booty/sme8/booty-0.80.6/bootloaderInfo.py /build/smeserver/stage/8/i386/updates/
  −
cp ~/rpms/booty/sme8/booty-0.80.6/bootloaderInfo.py /build/smeserver/stage/8/x86_64/updates/
     −
===='''Local Only''': Hack: Permission Fixup====
  −
This is only needed on local server if permissions are incorrect. '''It should not be needed.'''
  −
* Massage permissions before starting ISO building
  −
'''Local Only'''<br />
     −
  sudo chmod -R a+w /build/smeserver/stage
+
=====Hard links=====
 +
As an example how to create the hard links:
 +
  cp -lr /build/smeserver/repo/$FROM/$VERPREV/smeos/* /build/smeserver/repo/$TO/$VERSION/smeos/
 +
mkdir -p /build/smeserver/repo/$TO/$VERSION/smeaddons/
 +
mkdir -p /build/smeserver/repo/$TO/$VERSION/smecontribs/
 +
mkdir -p /build/smeserver/repo/$TO/$VERSION/smedev/
 +
mkdir -p /build/smeserver/repo/$TO/$VERSION/smeextras/
 +
mkdir -p /build/smeserver/repo/$TO/$VERSION/smetest/
 +
mkdir -p /build/smeserver/repo/$TO/$VERSION/smeupdates/
 +
mkdir -p /build/smeserver/repo/$TO/$VERSION/smeupdates-testing/
 +
cp -lr /build/smeserver/repo/$FROM/$VERPREV/smecontribs/* /build/smeserver/repo/$TO/$VERSION/smecontribs/
 +
cp -lr /build/smeserver/repo/$FROM/$VERPREV/smedev/* /build/smeserver/repo/$TO/$VERSION/smedev/
 +
cp -lr /build/smeserver/repo/$FROM/$VERPREV/smeextras/* /build/smeserver/repo/$TO/$VERSION/smeextras/
 +
cp -lr /build/smeserver/repo/$FROM/$VERPREV/smetest/* /build/smeserver/repo/$TO/$VERSION/smetest/
 +
cp -lr /build/smeserver/repo/$FROM/$VERPREV/smeupdates/* /build/smeserver/repo/$TO/$VERSION/smeupdates/
 +
cp -lr /build/smeserver/repo/$FROM/$VERPREV/smeupdates-testing/* /build/smeserver/repo/$TO/$VERSION/smeupdates-testing/
 +
cp -lr /build/smeserver/repo/$FROM/$VERPREV/smeaddons/* /build/smeserver/repo/$TO/$VERSION/smeaddons/
   −
===='''Local Only''': Create stage content====
+
=====Switch main version link=====
{{Note box|Note: This step occurs every hours on the buildsys.}}
+
and finally
/build/smeserver/stage/bin/update_repos
     −
===Build & Release SME Server 8===
+
pushd /build/smeserver/repo/$TO/
You can find logs of the related scripts build_ISO and build_installer<br />
+
unlink $VER
 +
ln -s $VERSION $VER
 +
popd
   −
If something goes wrong, please verify first
  −
/build/smeserver/stage/8/build_installer.i386
  −
or
  −
/build/smeserver/stage/8/build_installer.x86_64
  −
and after if you have no errors
  −
/build/smeserver/stage/8/build_ISO.i386
  −
or
  −
/build/smeserver/stage/8/build_ISO.x86_64
  −
====Build SME Server 8 32 bit ISO====
  −
mock -r smeserver-8-i386-iso --init
  −
mock -r smeserver-8-i386-iso --mount --cwd /build/smeserver/stage/8 --unpriv --chroot /build/smeserver/stage/bin/build_installer
  −
mock -r smeserver-8-i386-iso --mount --cwd /build/smeserver/stage/8 --unpriv --chroot /build/smeserver/stage/bin/build_ISO
     −
=====local only=====
  −
mock -r smeserver-8-i386-iso --init
  −
mock -r smeserver-8-i386-iso --mount --cwd /build/smeserver/stage/8 --unpriv --chroot /build/smeserver/stage/bin/build_installer
  −
sudo chmod -R a+w /build/smeserver/stage
  −
mock -r smeserver-8-i386-iso --mount --cwd /build/smeserver/stage/8 --unpriv --chroot /build/smeserver/stage/bin/build_ISO
     −
====Build SME Server 8 64 bit ISO====
+
[[Category:SME Server Development Framework]]
mock -r smeserver-8-x86_64-iso --init
+
[[Category:Development Tools]]
mock -r smeserver-8-x86_64-iso --mount --cwd /build/smeserver/stage/8 --unpriv --chroot /build/smeserver/stage/bin/build_installer
  −
mock -r smeserver-8-x86_64-iso --mount --cwd /build/smeserver/stage/8 --unpriv --chroot /build/smeserver/stage/bin/build_ISO
  −
=====local only=====
  −
mock -r smeserver-8-x86_64-iso --init
  −
mock -r smeserver-8-x86_64-iso --mount --cwd /build/smeserver/stage/8 --unpriv --chroot /build/smeserver/stage/bin/build_installer
  −
sudo chmod -R a+w /build/smeserver/stage
  −
mock -r smeserver-8-x86_64-iso --mount --cwd /build/smeserver/stage/8 --unpriv --chroot /build/smeserver/stage/bin/build_ISO
     −
===Build & Release SME Server 9===
+
==check if all deps are there ==
You can find logs of the related scripts build_ISO and build_installer<br />
+
need to move to the correct section
   −
If something goes wrong, please verify first
  −
/build/smeserver/stage/9/build_installer.i386
  −
or
  −
/build/smeserver/stage/9/build_installer.x86_64
  −
and after if you have no errors
  −
/build/smeserver/stage/9/build_ISO.i386
  −
or
  −
/build/smeserver/stage/9/build_ISO.x86_64
  −
====Build SME Server 9 32 bit ISO====
  −
mock -r smeserver-9-i386-iso --init
  −
mock -r smeserver-9-i386-iso --mount --cwd /build/smeserver/stage/9 --unpriv --chroot /build/smeserver/stage/bin/build_installer
  −
mock -r smeserver-9-i386-iso --mount --cwd /build/smeserver/stage/9 --unpriv --chroot /build/smeserver/stage/bin/build_ISO
  −
=====local only=====
  −
mock -r smeserver-9-i386-iso --init
  −
mock -r smeserver-9-i386-iso --mount --cwd /build/smeserver/stage/9 --unpriv --chroot /build/smeserver/stage/bin/build_installer
  −
sudo chmod -R a+w /build/smeserver/stage
  −
mock -r smeserver-9-i386-iso --mount --cwd /build/smeserver/stage/9 --unpriv --chroot /build/smeserver/stage/bin/build_ISO
  −
  −
====Build SME Server 9 64 bit ISO====
  −
mock -r smeserver-9-x86_64-iso --init
  −
mock -r smeserver-9-x86_64-iso --mount --cwd /build/smeserver/stage/9 --unpriv --chroot /build/smeserver/stage/bin/build_installer
  −
mock -r smeserver-9-x86_64-iso --mount --cwd /build/smeserver/stage/9 --unpriv --chroot /build/smeserver/stage/bin/build_ISO
  −
=====local only=====
  −
mock -r smeserver-9-x86_64-iso --init
  −
mock -r smeserver-9-x86_64-iso --mount --cwd /build/smeserver/stage/9 --unpriv --chroot /build/smeserver/stage/bin/build_installer
  −
sudo chmod -R a+w /build/smeserver/stage
  −
mock -r smeserver-9-x86_64-iso --mount --cwd /build/smeserver/stage/9 --unpriv --chroot /build/smeserver/stage/bin/build_ISO
  −
  −
===Where are My F... ISO===
  −
ls /build/smeserver/stage/iso/8/
  −
i386  source  x86_64
  −
and
  −
ls /build/smeserver/stage/iso/9/
  −
i386  source  x86_64
  −
  −
===Developer Access Needed===
  −
From this point a developer access to the buildsys and the main repo is Needed, sorry guys
      +
first createrepo
 +
createrepo --database --update --skip-symlinks --simple-md-filenames --groupfile repodata/comps.xml /build/smeserver/stage/$VER/x86_64
   −
====Prepare directory structure for SME8 release====
+
then use repoclosure
SME 8.x test releases will go to /build/smeserver/repo/testing/8. Check that the link points to the correct testing release. Note when uploading Jigdos the ‘8’ link will not be pointing to the new directory.
+
  repoclosure --repofrompath=stage,/build/smeserver/stage/10/x86_64  -c yum.conf
  mkdir -p /build/smeserver/repo/testing/8.1/iso/i386/
  −
  mkdir -p /build/smeserver/repo/testing/8.1/iso/source/
  −
mkdir -p /build/smeserver/repo/testing/8.1/iso/x86_64/
  −
  mkdir -p /build/smeserver/repo/testing/8.1/smeos/i386/
  −
mkdir -p /build/smeserver/repo/testing/8.1/smeos/SRPMS/
  −
mkdir -p /build/smeserver/repo/testing/8.1/smeos/x86_64/
     −
====Copy SME Server 8 64 bit Jigdo to mirror====
+
will output
  /bin/cp -a /build/smeserver/stage/iso/8/x86_64/smeserver-8.1-x86_64.jigdo /build/smeserver/repo/testing/8.1/iso/x86_64/
+
  Added stage repo from /build/smeserver/stage/10/x86_64
/bin/cp -a /build/smeserver/stage/iso/8/x86_64/smeserver-8.1-x86_64.template /build/smeserver/repo/testing/8.1/iso/x86_64/
+
Reading in repository metadata - please wait....
  rsync -a --delete /build/smeserver/stage/8/x86_64/ /build/smeserver/repo/testing/8.1/smeos/x86_64/
+
Checking Dependencies
 +
Repos looked at: 1
 +
    stage
 +
  Num Packages in Repos: 1421
   −
====Copy SME Server 8 32 bit Jigdo to mirror====
  −
/bin/cp -a /build/smeserver/stage/iso/8/i386/smeserver-8.1-i386.jigdo /build/smeserver/repo/testing/8.1/iso/i386/
  −
/bin/cp -a /build/smeserver/stage/iso/8/i386/smeserver-8.1-i386.template /build/smeserver/repo/testing/8.1/iso/i386/
  −
rsync -a --delete /build/smeserver/stage/8/i386/ /build/smeserver/repo/testing/8.1/smeos/i386
     −
====Copy SME Server 8 SRPMS Jigdo to mirror====
+
content of yum.conf used for this test
  /bin/cp -a /build/smeserver/stage/iso/8/source/smeserver-8.1-SRPMS.jigdo /build/smeserver/repo/testing/8.1/iso/source/
+
[main]
  /bin/cp -a /build/smeserver/stage/iso/8/source/smeserver-8.1-SRPMS.template /build/smeserver/repo/testing/8.1/iso/source/
+
  cachedir=/tmp/cache/yum/$basearch/$releasever
  rsync -a --delete /build/smeserver/stage/8/SRPMS/ /build/smeserver/repo/testing/8.1/smeos/SRPMS
+
keepcache=0
 +
debuglevel=2
 +
logfile=/dev/null
 +
exactarch=1
 +
obsoletes=1
 +
gpgcheck=1
 +
plugins=1
 +
  installonly_limit=5
 +
reposdir=/etc/yum.smerepos.d
 +
  distroverpkg=centos-release
   −
====Copy SME Server 8 ISOs to mirror====
  −
rsync -a --delete /build/smeserver/stage/iso/8/ /build/smeserver/repo/testing/8.1/iso
     −
====Prepare directory structure for SME8 release====
+
if you get an error
SME 9.x test releases will go to /build/smeserver/repo/testing/9. Check that the link points to the correct testing release. Note when uploading Jigdos the ‘9’ link will not be pointing to the new directory.
+
package: php80-php-intl-8.0.23-1.el7.remi.x86_64 from stage
mkdir -p /build/smeserver/repo/testing/9.0/iso/i386/
+
  unresolved deps:
mkdir -p /build/smeserver/repo/testing/9.0/iso/source/
+
    libicuuc.so.71()(64bit)
mkdir -p /build/smeserver/repo/testing/9.0/iso/x86_64/
+
    libicuio.so.71()(64bit)
mkdir -p /build/smeserver/repo/testing/9.0/smeos/x86_64/
+
    libicui18n.so.71()(64bit)
mkdir -p /build/smeserver/repo/testing/9.0/smeos/i386/
+
    libicudata.so.71()(64bit)
   −
====Copy SME Server 9 64 bit Jigdo to mirror====
  −
/bin/cp -a /build/smeserver/stage/iso/9/x86_64/smeserver-9.0-x86_64.jigdo /build/smeserver/repo/testing/9.0/iso/x86_64/
  −
/bin/cp -a /build/smeserver/stage/iso/9/x86_64/smeserver-9.0-x86_64.template /build/smeserver/repo/testing/9.0/iso/x86_64/
  −
rsync -a --delete /build/smeserver/stage/9/x86_64/ /build/smeserver/repo/testing/9.0/smeos/x86_64/
     −
====Copy SME Server 9 32 bit Jigdo to mirror====
+
then on a SME do
  /bin/cp -a /build/smeserver/stage/iso/9/i386/smeserver-9.0-i386.jigdo /build/smeserver/repo/testing/9.0/iso/i386/
+
  yum whatprovides */libicuuc.so.71
/bin/cp -a /build/smeserver/stage/iso/9/i386/smeserver-9.0-i386.template /build/smeserver/repo/testing/9.0/iso/i386/
  −
rsync -a --delete /build/smeserver/stage/9/i386/ /build/smeserver/repo/testing/9.0/smeos/i386
     −
====Copy SME Server 9 SRPMS Jigdo to mirror====
+
then add the missing rpm in the updates repo and sync it with update_repos script
/bin/cp -a /build/smeserver/stage/iso/9/source/smeserver-9.0-SRPMS.jigdo /build/smeserver/repo/testing/9.0/iso/source/
  −
/bin/cp -a /build/smeserver/stage/iso/9/source/smeserver-9.0-SRPMS.template /build/smeserver/repo/testing/9.0/iso/source/
  −
rsync -a --delete /build/smeserver/stage/9/SRPMS/ /build/smeserver/repo/testing/9.0/smeos/SRPMS
  −
 
  −
====Copy SME Server 9 ISOs to mirror====
  −
rsync -a --delete /build/smeserver/stage/iso/9/ /build/smeserver/repo/testing/9.0/iso
  −
 
  −
 
  −
 
  −
====Hard links====
  −
As an example how to create the hard links:
  −
cp -lr /build/smeserver/repo/testing/9.0rc1/smeos/* /build/smeserver/repo/testing/9.0/smeos/
  −
mkdir -p /build/smeserver/repo/testing/9.0/smeaddons/
  −
mkdir -p /build/smeserver/repo/testing/9.0/smecontribs/
  −
mkdir -p /build/smeserver/repo/testing/9.0/smedev/
  −
mkdir -p /build/smeserver/repo/testing/9.0/smeextras/
  −
mkdir -p /build/smeserver/repo/testing/9.0/smetest/
  −
mkdir -p /build/smeserver/repo/testing/9.0/smeupdates/
  −
mkdir -p /build/smeserver/repo/testing/9.0/smeupdates-testing/
  −
cp -lr /build/smeserver/repo/testing/9.0rc1/smecontribs/* /build/smeserver/repo/testing/9.0/smecontribs/
  −
cp -lr /build/smeserver/repo/testing/9.0rc1/smedev/* /build/smeserver/repo/testing/9.0/smedev/
  −
cp -lr /build/smeserver/repo/testing/9.0rc1/smeextras/* /build/smeserver/repo/testing/9.0/smeextras/
  −
cp -lr /build/smeserver/repo/testing/9.0rc1/smetest/* /build/smeserver/repo/testing/9.0/smetest/
  −
cp -lr /build/smeserver/repo/testing/9.0rc1/smeupdates/* /build/smeserver/repo/testing/9.0/smeupdates/
  −
cp -lr /build/smeserver/repo/testing/9.0rc1/smeupdates-testing/* /build/smeserver/repo/testing/9.0/smeupdates-testing/
  −
cp -lr /build/smeserver/repo/testing/9.0rc1/smeaddons/* /build/smeserver/repo/testing/9.0/smeaddons/
  −
 
  −
[[Category:SME Server Development Framework]]
  −
[[Category:Development Tools]]
 
Super Admin, Wiki & Docs Team, Bureaucrats, Interface administrators, Administrators
3,250

edits

Navigation menu