From 6a325bb92a1eaa6ed8fc5e161437d31736ad4c72 Mon Sep 17 00:00:00 2001 From: ranke Date: Tue, 17 Feb 2009 02:02:13 +0000 Subject: Version to go with tonights backport. git-svn-id: svn+ssh://stiller/home/schatz/reps/r-backports@50 f247ebf9-aa24-0410-a698-f940e971ad2b --- CRAN_backporting.txt | 56 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/CRAN_backporting.txt b/CRAN_backporting.txt index cf7771f..701b142 100644 --- a/CRAN_backporting.txt +++ b/CRAN_backporting.txt @@ -3,43 +3,47 @@ Prerequisites: - cdebootstrap, schroot installed - GPG key for signing packages + 1. Setting up the chroot environment for backporting The filesystem where you create the chroot needs to be mounted with exec and dev options, and you have to be root to do this: - cdebootstrap -a i386 -f build etch etch32 http://debian.tu-bs.de/debian + cdebootstrap -a i386 -f build lenny lenny32 http://debian.tu-bs.de/debian This will create a i386 chroot with essential software for building packages in -the newly created directory "etch32". Of course, if you are backporting for a -different release, substitute its name for etch, also in the following. +the newly created directory "lenny32". Of course, if you are backporting for a +different release, substitute its name for lenny, also in the following. + 2. Configuring your chroot for comfortable use with schroot Put an entry like this into your /etc/schroot/schroot.conf (mine is located on my external drive mounted on /exthd) - [etch32] - description=Debian etch i386 (etch32) - location=/exthd/etch32 + [lenny32] + description=Debian lenny i386 (etch32) + location=/exthd/lenny32 personality=linux32 priority=3 users=ranke groups=ranke,root root-groups=root - aliases=etch-ia32 + aliases=lenny-ia32 run-setup-scripts=true run-exec-scripts=true You can then login into your chroot (as root) with - schroot -c etch32 + schroot -c lenny32 -install the editor of your choice, add security and sid sources to your -/etc/apt/sources.list (in order to be able to backport from sid), add a user, -install and configure console-data for the keymap, install and configure -locales, install subversion, devscripts (for editing changelogs with dch) -and patchutils (for interdiff). +install the editor of your choice (after updating the list of available +packages e.g. by apt-get update), add security and sid sources to your +/etc/apt/sources.list (in order to be able to backport from sid), add a user +(e.g. after installing adduser), install and configure console-data for the +keymap, install and configure locales, install subversion, devscripts (for +editing changelogs with dch, pulls a lot of dependencies unfortunately) and +patchutils (for interdiff). In order to build packages as a normal user, use su username to change to the user account you want to use, then @@ -53,24 +57,25 @@ If you want to backport R, you can try which would pull in everything you need for building r-base, if all build dependencies could be satisfied. This is unlikely, however, because then we -would not have to backport... Last time I just put in an etch source entry -in my sources.list, and grabbed the build deps from there as a start. +would not have to backport... You also need you gpg key in your build environment. I achieved this by the following bind mount in /etc/fstab - /home/ranke/.gnupg /exthd/etch32/home/ranke/.gnupg noauto bind 0 0 + /home/ranke/.gnupg /exthd/lenny32/home/ranke/.gnupg noauto bind 0 0 because I don't want my secret key on the USB drive. + 3. Backporting R Then go to directory r-base, edit the backporting script and try it with - fakeroot sh backport_r-base.sh + fakeroot sh backport_r-base_lenny.sh + +You will probably have to install some more build dependencies that have been +introduced in newer R versions. -You will have to install some more build dependencies that have been introduced -in newer R versions. 4. Backporting (compiling) recommended packages @@ -78,5 +83,14 @@ This is done in the parent directory, using the script backport_recommended.sh. You don't need fakeroot for this, because fakeroot is called in it where needed. You need to install an R backport in order to ensure compatibility and to satisfy build -dependencies of recommended packages, which sometimes include other recommended packages -that you will need to have installed from another source. +dependencies of recommended packages. You will also need cdbs for building the +r-cran-* packages, unixodbc-dev for building r-cran-rodbc, and python-all-dev +as well as python-numpy for building python-rpy. + + +5. Building packages for another architecture with pbuilder + +I usually do backports for i386 in a permanent chroot. Then, when I build the +packages for amd64 using pbuilder, I find missing build dependencies. The scripts +I use for this are r-base/build_r-base.sh and build_all_etch.sh. Of course, pbuilder +has to be set up before... -- cgit v1.2.1