Changes

Jump to navigation Jump to search
Created page with "{{Level|Developer}} {{WIP box|}} This page uses some transclusion from the main page Build_an_Official_ISO ==Introduction== {{#lsth:Build an Official ISO|Introduction}}..."
{{Level|Developer}}

{{WIP box|}}
This page uses some transclusion from the main page [[Build_an_Official_ISO]]

==Introduction==
{{#lsth:Build an Official ISO|Introduction}}

==Preparation of a new Major Release==
{{#lsth:Build an Official ISO|Preparation of a new Major Release}}

==Preparation for a new ISO release==
{{#lsth:Build an Official ISO|Preparation for a new ISO release}}

==Prepare SME Server==
===='''Local Only''': Update local mirror as seen by the chroot====
'''Local Only'''
rsync -av --delete --progress ~/smeserver/releases/10/ /build/smeserver/repo/10

====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.
VER=10
VERSION=$VER.0.alpha5
VERPREV=$VER.0.alpha4

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
cd /build/smeserver/stage/
rm -f $VER
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/Packages/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

cd /build/smeserver/stage/extra/images/$VER/product/

make any needed modification in the product image. at least update the release version
vim .buildstamp
vim run/install/product/pyanaconda/installclasses/custom.py
vim run/install/product/pyanaconda/installclasses/koozali.py
vim usr/lib64/python2.7/site-packages/pyanaconda/installclasses/centos.py
vim usr/lib64/python2.7/site-packages/pyanaconda/installclasses/koozali.py

build new product.img and copy it to stage
find . | cpio -c -o | gzip -9cv > ../product.img; cd ..
mkdir -p /build/smeserver/stage/$VER/x86_64/images/
cp product.img /build/smeserver/stage/$VER/x86_64/images/

rsync -arv /mirrors/centos/7/os/x86_64/isolinux/* /build/smeserver/stage/$VERSION/x86_64/isolinux/
mkdir /build/smeserver/stage/extra/isolinux/

====Create cdrom content====

'''WIP: From there on with SME 10, we are simply copying EFI, LiveOS, isolinux, images folders from CentOS or previous version.'''

'''this has to be done before building product.img and put it in images. Also you will have to update the isolinux.cfg content.'''

When starting from fresh rsync can copy cdrom.image content, it also generates the folder tree.
{{Warning box|'''Before doing this, you should use an account with CVS write access to bump the version or alter the following files:
#Packages/base/comp.xml
#isolinux{boot.msg, help.txt,isolinux.cfg}
#updates/README.txt'''}}
{{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/
cd ~/smeserver
cvs -z3 -d:pserver:anonymous@shell.koozali.org:/cvs/smeserver co -P cdrom.image

rsync -av --delete --delete-excluded --exclude 'CVS/' --exclude 'isolinux/' ~/smeserver/cdrom.image/sme10/ /build/smeserver/stage/$VER/x86_64/
rsync -av --delete --delete-excluded --exclude 'CVS/' ~/smeserver/cdrom.image/sme10/isolinux/ /build/smeserver/stage/extra/isolinux/$VER/

====OR Refresh cdrom content====
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 -av --exclude 'CVS/' --exclude 'isolinux/' ~/smeserver/cdrom.image/sme10/ /build/smeserver/stage/$VER/x86_64/
rsync -av --exclude 'CVS/' ~/smeserver/cdrom.image/sme10/isolinux/ /build/smeserver/stage/extra/isolinux/$VER/

====Create the remaining folders====
{{Note box|Note: images and isolinux do not need to be created as they are removed anyway in build_installer}}

* x86_64
cd /build/smeserver/stage/10/x86_64
mkdir -p /build/smeserver/stage/10/x86_64/repodata/
mkdir -p /build/smeserver/stage/10/x86_64/updates/po
mkdir -p /build/smeserver/stage/10/x86_64/updates/textw
mkdir -p /build/smeserver/stage/10/x86_64/updates/iw
mkdir -p /build/smeserver/stage/10/x86_64/updates/storage/devicelibs

* other directories
mkdir -p /build/smeserver/stage/iso/$VER/{x86_64,source}

====Copy anaconda translations====
Anaconda translations need copying to /updates/po from ~/anaconda-po
cp -R ~/anaconda-po/translate.koozali.org/anaconda/sme10/* /build/smeserver/stage/10/x86_64/updates/po/

====Copy anaconda content====
See ~/smeserver/cdrom.image/sme10/updates/README.txt for details of what to copy. The patched anaconda files from ~/smeserver/rpms/anaconda/sme10 will go to updates directory. The exact directory depends on the anaconda version, eg ~/smeserver/rpms/anaconda/sme10/anaconda-21.48.22.56

The following needs to be done on builder 7
cd ~/smeserver/rpms/anaconda/sme10/
cvs update -dPA
make prep
cd ~/smeserver/rpms/anaconda/sme10/anaconda-21.48.22.56

'''this does not work and need to be updated.'''

cp -R storage /build/smeserver/stage/10/x86_64/updates/
cp -R textw/*.py /build/smeserver/stage/10/x86_64/updates/textw
cp -R iw/*.py /build/smeserver/stage/10/x86_64/updates/iw
cp *.py /build/smeserver/stage/10/x86_64/updates
cp lang-table /build/smeserver/stage/10/x86_64/updates

===='''Local Only''': Hack: Permission Fixup====
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

===='''Local Only''': Create stage content====
{{Note box|Note: This step occurs every hours on the buildsys.}}
'''Local Only'''
/build/smeserver/stage/bin/update_repos







==Build & Release SME Server==

VER=10
VERSION=$VER.0.alpha5
VERPREV=$VER.0.alpha4

You can find logs of the related scripts build_ISO and build_installer<br />

If something goes wrong, please verify first
/build/smeserver/stage/$VER/build_installer.x86_64
and after if you have no errors
/build/smeserver/stage/$VER/build_ISO.x86_64


====Build SME Server 10 64 bit ISO====
rm -f /build/smeserver/stage/$VER/x86_64/SME
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
pushd /build/smeserver/stage/$VER/x86_64/
ln -s Packages SME
popd
=====local only=====
rm -f /build/smeserver/stage/$VER/x86_64/SME
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
pushd /build/smeserver/stage/$VER/x86_64/
ln -s Packages SME
popd




==Where are My F... ISO==
{{#lsth:Build an Official ISO|Where are My F... ISO}}





==Dev access to release ISO==
VER=10
VERSION=$VER.0.alpha5
VERPREV=$VER.0.alpha4

=====Prepare directory structure for SME10 release=====
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.
mkdir -p /build/smeserver/repo/testing/$VERSION/iso/source/
mkdir -p /build/smeserver/repo/testing/$VERSION/iso/x86_64/
mkdir -p /build/smeserver/repo/testing/$VERSION/smeos/x86_64/

=====Copy SME Server 10 64 bit Jigdo to mirror=====
/bin/cp -a /build/smeserver/stage/iso/$VER/x86_64/smeserver-$VERSION-x86_64.jigdo /build/smeserver/repo/testing/$VERSION/iso/x86_64/
/bin/cp -a /build/smeserver/stage/iso/$VER/x86_64/smeserver-$VERSION-x86_64.template /build/smeserver/repo/testing/$VERSION/iso/x86_64/
rsync -a --delete /build/smeserver/stage/$VER/x86_64/ /build/smeserver/repo/testing/$VERSION/smeos/x86_64/


=====Copy SME Server 10 SRPMS Jigdo to mirror=====
/bin/cp -a /build/smeserver/stage/iso/$VER/source/smeserver-$VERSION-SRPMS.jigdo /build/smeserver/repo/testing/$VERSION/iso/source/
/bin/cp -a /build/smeserver/stage/iso/$VER/source/smeserver-$VERSION-SRPMS.template /build/smeserver/repo/testing/$VERSION/iso/source/
rsync -a --delete /build/smeserver/stage/$VER/SRPMS/ /build/smeserver/repo/testing/$VERSION/smeos/SRPMS

=====Copy SME Server 10 ISOs to mirror=====
rsync -a --delete /build/smeserver/stage/iso/$VER/ /build/smeserver/repo/testing/$VERSION/iso


=====Hard links=====
As an example how to create the hard links:
cp -lr /build/smeserver/repo/testing/$VERPREV/smeos/* /build/smeserver/repo/testing/$VERSION/smeos/
mkdir -p /build/smeserver/repo/testing/$VERSION/smeaddons/
mkdir -p /build/smeserver/repo/testing/$VERSION/smecontribs/
mkdir -p /build/smeserver/repo/testing/$VERSION/smedev/
mkdir -p /build/smeserver/repo/testing/$VERSION/smeextras/
mkdir -p /build/smeserver/repo/testing/$VERSION/smetest/
mkdir -p /build/smeserver/repo/testing/$VERSION/smeupdates/
mkdir -p /build/smeserver/repo/testing/$VERSION/smeupdates-testing/
cp -lr /build/smeserver/repo/testing/$VERPREV/smecontribs/* /build/smeserver/repo/testing/$VERSION/smecontribs/
cp -lr /build/smeserver/repo/testing/$VERPREV/smedev/* /build/smeserver/repo/testing/$VERSION/smedev/
cp -lr /build/smeserver/repo/testing/$VERPREV/smeextras/* /build/smeserver/repo/testing/$VERSION/smeextras/
cp -lr /build/smeserver/repo/testing/$VERPREV/smetest/* /build/smeserver/repo/testing/$VERSION/smetest/
cp -lr /build/smeserver/repo/testing/$VERPREV/smeupdates/* /build/smeserver/repo/testing/$VERSION/smeupdates/
cp -lr /build/smeserver/repo/testing/$VERPREV/smeupdates-testing/* /build/smeserver/repo/testing/$VERSION/smeupdates-testing/
cp -lr /build/smeserver/repo/testing/$VERPREV/smeaddons/* /build/smeserver/repo/testing/$VERSION/smeaddons/

=====Switch main version link=====
and finally

rm -f /build/smeserver/repo/testing/$VER
pushd /build/smeserver/repo/testing/
ln -s $VERSION $VER
popd

[[Category:SME Server Development Framework]]
[[Category:Development Tools]]
Super Admin, Wiki & Docs Team, Bureaucrats, Interface administrators, Administrators
3,250

edits

Navigation menu