1880
Comment: add various package name examples
|
5450
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
sbuild: lenny x86-64: can create 32 & 64 bit arch specific packages, 14 in total: | sbuild: lenny x86-64: can create 32 & 64 bit arch specific packages, ~12 in total: |
Line 5: | Line 5: |
* Untuntu LTS * last two ubuntu releases |
* Ubuntu LTS * last two Ubuntu releases |
Line 28: | Line 28: |
* domain: mabye "debian.sagemath.org" | * domain: maybe "debian.sagemath.org" or "sagemath.org/debian" |
Line 42: | Line 42: |
* create official Sage GPG key to sign packages | |
Line 45: | Line 46: |
* Comply with Debian policy when possible | |
Line 46: | Line 48: |
* ntl.dsc (the source source package), tarball with debian directory * libntl0_5.4.deb (initial NTL version, i.e. "0", contains shared library) * libntl-dev.deb (headers & static libraries) |
* ntl_5.4.1-1.dsc (the source source package), tarball with debian directory * libntl0_5.4.1-1_i386.deb (initial NTL version, i.e. "0", contains shared library) * libntl-dev_5.4.1-1_i386.deb (headers & static libraries) |
Line 50: | Line 52: |
* eclib.deb (binaries) * libec0.deb (shared libraries) * libec-dev.deb (headers & static libraries) |
* eclib_1.0_i386.deb (binaries) * libec0_1.0_i386.deb (shared libraries) * libec-dev_1.0_i386.deb (headers & static libraries) |
Line 55: | Line 57: |
== Setting up the build system (In Detail) == * Start Debian installer * Partitioning method: "Guided - use entire disk and set up LVM" - accept defaults and write LVM init to disk * delete original main LVM volume, create new VG, say with 10GB * set up accounts for root and users as usual * update to lenny: edit /etc/apt/source and replace "etch" with "lenny" * "aptitude update" * "aptitude dist-upgrade" (wait a while :) ) * download Tim's script collection from the main Deb packaging page [http://www.sagemath.org:9001/days7/DebianPackagingSprint?action=AttachFile (tarballs here for now)], untar ... * file "packages" contains list of packages needed for the build system * aptitude install `cat packages` installs the packages listed in packages. Also install cdbs. * file "approx.conf.tail": append file to approx.conf - make sure to set a fast mirror, i.e. not the MIT repo * restart approx service via "/etc/init.d/approx restart" * edit make-chroot and set $VG to volume group name or export VG * Now create change roots for various targets using make-chroot: Parameters $1 is SUITE (i.e. lenny), $2 is ARCH (i.e. i386) * If things go wrong remove lvm group created :( * download Tim's other script collection from the main Deb packaging page [http://www.sagemath.org:9001/days7/DebianPackagingSprint?action=AttachFile (tarballs for now)], untar into /usr/local/bin ... * export DEBATHENA_APT=(path to SAGE apt repository) * adduser sage sbuild (where sage is a user you want to be able to do builds) == Using the chroot environments == * Create GPG key: gpg --gen-key (follow instructions) * export key in ascii format: gpg --export -armor > sage-archive.asc * mount-defaults: uncomment /dev/pts, tmpfs mounts since there are currently problems with schroot 1.1.6-1. P potential solution: uncomment /dev/pts, /dev/shm mount points * starting schroot env: example gutsy: schroot -c gutsy-i386-sbuild == To actually do builds == * get SAGE .spkg and unpack into DIR * copy debian directory into $DIR/src * build source package using debuild -S from inside package directory ($DIR/src) * build binary packages using "da sbuildhack [resulting .dsc file]" from $DIR * upload into SAGE repository using "daupload-release [resulting .changes file]" from $DIR * use clean-schroots whenever you run out of disk space due to stale build chroots (often get leaked when you do ^C during a build) * autotools-dev, m4 (should be added to the dependencies - if they aren't) * using sbuildhack: Setup: adduser $USER sbuild [make sure user is in right group] /etc/sbuild/sbuild.conf: * set mailto, maintainer, etc... * uncomment '$sbuild_mode = "user";' Example: apt-get source valgrind [downloads sources, patches, dsc file] sbuildhack lenny-i386 valgrind-3.3.0-1.dsc * Building a Debian package: * set env variable DEBIANRELEASE to "lenny-i386" [building deb in schroot env] * set env variable USEDEB to "yes": first try to sudo apt-get install $SPKG.deb * sage-spkg: check if USEDEB and DEBIANRELEASE is set: if spkg-debian exists in $SPKG_ROOT execute it, otherwise do default sbuildhack - see http://trac.sagemath.org/sage_trac/ticket/2098 for patch == Structure for dist-specific build systems == $SPKG_ROOT/src $SPKG_ROOT/dist/$NAME |
Debian release to support
sbuild: lenny x86-64: can create 32 & 64 bit arch specific packages, ~12 in total:
- Ubuntu LTS
- last two Ubuntu releases
>=etch
Make check
- use schroot to run "make check"
Problematic Packages
- ATLAS (atlas-sage-x.y or version bump)
- Python (python-sage-x.y or version bump)
- jmol - potential conflict with gcj in stable (testing an above fine)
- Maxima: copies mgnuplot script to libexec (Maxima is already in Debian)
Changelog
- needs to be kept in sync with SPKG.txt (automated mechanism)
- dch (Debian changelog)
Initially
- webserver for static only content
- set up apt-get repo on $SAGE.MATH
- To set up repo: reprpro + gpg key for signing
- domain: maybe "debian.sagemath.org" or "sagemath.org/debian"
Problem to be solved
- Install location: /usr/share/sage/ - "sage" script in bin does cd and
- then execute the appropriate sage scipt in /usr/share/sage/
location of tmp, i.e. TMP, /tmp or /var/tmp, not SAGE_ROOT/tmp
- SAGE_ROOT/ipython - why is it there. What is the content (config files?)
databases in $SAGE_ROOT/data -> /use/share/sage/data
- spkg directory: gone or moved to sage-dev.deb
- make distclean: remove "*.c", "*.so", "*.os" in /devel/sage/
- content of examples directory: What to do with the code?
LIB -> lib - Singular related, move to lib/Singular
- text files from $SAGE_ROOT: /usr/share/doc/sage
- create official Sage GPG key to sign packages
Package names
- Comply with Debian policy when possible
- libraries (for example NTL):
- ntl_5.4.1-1.dsc (the source source package), tarball with debian directory
- libntl0_5.4.1-1_i386.deb (initial NTL version, i.e. "0", contains shared library)
libntl-dev_5.4.1-1_i386.deb (headers & static libraries)
- binary (eclib)
- eclib_1.0_i386.deb (binaries)
- libec0_1.0_i386.deb (shared libraries)
libec-dev_1.0_i386.deb (headers & static libraries)
- Singular
- To be determined
Setting up the build system (In Detail)
- Start Debian installer
- Partitioning method: "Guided - use entire disk and set up LVM" - accept defaults and write LVM init to disk
- delete original main LVM volume, create new VG, say with 10GB
- set up accounts for root and users as usual
- update to lenny: edit /etc/apt/source and replace "etch" with "lenny"
- "aptitude update"
"aptitude dist-upgrade" (wait a while )
download Tim's script collection from the main Deb packaging page [http://www.sagemath.org:9001/days7/DebianPackagingSprint?action=AttachFile (tarballs here for now)], untar ...
- file "packages" contains list of packages needed for the build system
aptitude install cat packages installs the packages listed in packages. Also install cdbs.
- file "approx.conf.tail": append file to approx.conf - make sure to set a fast mirror, i.e. not the MIT repo
- restart approx service via "/etc/init.d/approx restart"
- edit make-chroot and set $VG to volume group name or export VG
Now create change roots for various targets using make-chroot: Parameters 1 is SUITE (i.e. lenny), 2 is ARCH (i.e. i386)
If things go wrong remove lvm group created
download Tim's other script collection from the main Deb packaging page [http://www.sagemath.org:9001/days7/DebianPackagingSprint?action=AttachFile (tarballs for now)], untar into /usr/local/bin ...
- export DEBATHENA_APT=(path to SAGE apt repository)
- adduser sage sbuild (where sage is a user you want to be able to do builds)
Using the chroot environments
- Create GPG key: gpg --gen-key (follow instructions)
export key in ascii format: gpg --export -armor > sage-archive.asc
- mount-defaults: uncomment /dev/pts, tmpfs mounts since there are currently problems with schroot 1.1.6-1. P potential solution: uncomment /dev/pts, /dev/shm mount points
- starting schroot env: example gutsy:
- schroot -c gutsy-i386-sbuild
To actually do builds
- get SAGE .spkg and unpack into DIR
- copy debian directory into $DIR/src
- build source package using debuild -S from inside package directory ($DIR/src)
- build binary packages using "da sbuildhack [resulting .dsc file]" from $DIR
- upload into SAGE repository using "daupload-release [resulting .changes file]" from $DIR
- use clean-schroots whenever you run out of disk space due to stale build chroots (often get leaked when you do ^C during a build)
- autotools-dev, m4 (should be added to the dependencies - if they aren't)
- using sbuildhack:
- Setup:
- adduser $USER sbuild [make sure user is in right group]
- set mailto, maintainer, etc...
- uncomment '$sbuild_mode = "user";'
- Setup:
- Building a Debian package:
- set env variable DEBIANRELEASE to "lenny-i386" [building deb in schroot env]
- set env variable USEDEB to "yes": first try to sudo apt-get install $SPKG.deb
sage-spkg: check if USEDEB and DEBIANRELEASE is set: if spkg-debian exists in $SPKG_ROOT execute it, otherwise do default sbuildhack - see http://trac.sagemath.org/sage_trac/ticket/2098 for patch
Structure for dist-specific build systems
- $SPKG_ROOT/src
SPKG_ROOT/dist/NAME