Building binary packages
Building crossdev environment for MINGW-32, first install crossdev package
emerge -av crossdev
Under hardened profile mingw doesn't get compiled, hence switch to default profile before building
eselect profile set 1 env-update source /etc/profile
Build MINGW-32 with the latest releases
crossdev -t i686-mingw32 -P -v
Restore Hardened profile
eselect profile set 7 env-update source /etc/profile
Mac OS X
Until now it has not been possible to install a building environment for Mac OS X under Linux. If you have suggestions, they are pretty welcome. Hence a Mac Book pro have been converted to a Mac server (true Mac server do not exist any longer). In fact, two Mac Book pro act as servers: one under the most recent OS (at the time of writing, Mountain Lion, and the other running Snow Leopard to provide binary packages for old OS (Tiger, Leopard and Snow Leopard).
New OS releases
Apple is producing a new major release approximately every year. The new release name must be added at several location inside the building environment. Line numbers are approximative. It may change in the future.
- Add in switch at line 7
- Add in enum at line 166
- Add in if at line 179
- Add in switch at line 236
- Add in switch at line 311
- Add in switch at line 347
- Add in help message at line 443
- Build selfuncompress-mac-x86-XXX executable under new platform and include it in selfcompress share files.
- Update building tools in /usr/local/Geopsy.firstname.lastname@example.org
- Add in CoreApplicationPrivate::platform()
- Add in CoreApplicationPrivate::systemInfo()
'pbuilder' is no longer available in gentoo portage. Are there any other solutions?
These comments are made on a gentoo distribution and they are based on https://help.ubuntu.com/ubuntu/packagingguide/C/gs-pbuilder.html.
Install fakeroot package
emerge -av fakeroot
Before running pbuilder, you must fix /etc/hostname temporarily (difference between gentoo and debian environments).
echo "sirac.geopsy.org" > /etc/hostname
Don't forget to remove that file at the end. You may encounter problems on next startup of you gentoo box. Check that hostname -f works properly. If not, check /etc/host of gentoo tree.
pbuilder does not run out of the box. Apparently, arch is not properly set and it must be forced with --debootstrapopts.
pbuilder create --debug --distribution hardy --debootstrapopts --arch=amd64 --mirror "ftp://ftp.proxad.net/mirrors/ftp.ubuntu.com/ubuntu" --othermirror "deb http://archive.ubuntu.com/ubuntu hardy universe multiverse" --debootstrapopts --include=gpgv
Every time you touch /etc/apt/sources.list, don't forget to run apt-get update'.
To modify the build environment:
pbuilder execute --save-after-exec your_script
cp sesarray-src-2.1.0-snapshot-20081205.tar.gz sesarray_220.127.116.1181205.orig.tar.gz tar xvfpz sesarray_18.104.22.16881205.orig.tar.gz
Edit debian directory
* changelog * control * copyright * rules
For each new version, changelog and control must be updated.
To generate .dsc files (as normal user)
cd sesarray-src-2.1.0-snapshot-20081205 dpkg-buildpackage -S -rfakeroot
To generate the final .deb package (as root)
pbuilder build ../sesarray_22.214.171.12481205-2.dsc
or (for debug)
# Initialization of the build platform cd /var/cache/pbuilder/build mkdir experimental cd experimental tar xfpz ../../base.tgz # For all tries.... pbuilder build --no-targz --buildplace /var/cache/pbuilder/build/experimental --preserve-buildplace ../sesarray_126.96.36.19981205-2.dsc
Copy this file to pool/main on repository
apt-ftparchive is not installed with emerge, it is in /usr/local/apt and you must set paths before
export LD_LIBRARY_PATH=/usr/local/apt:$LD_LIBRARY_PATH export PATH=/usr/local/apt:$PATH
cd softwares/packages/ubuntu apt-ftparchive generate ../apt-ftparchive.conf apt-ftparchive -c=../apt-release.conf release dists/hardy > dists/hardy/Release