-
-
Save jbulow/4683195 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Author: Damien Cassou | |
# | |
# This is the script I use to build https://launchpad.net/~cassou/+archive/emacs/ | |
# from http://emacs.naquadah.org/. | |
MAIN_VERSION=20121202 | |
SUB_VERSION=1 | |
PATCH_FUNCTION=noPatch | |
function noPatch() { | |
echo nothing to do | |
} | |
function patchForOldDistribution() { | |
# Change compression from xz to bzip2 | |
sed --in-place 's/\(dh_builddeb .* \)-Z xz/\1-Z bzip2/' rules | |
# Lower dependency requirements for older ubuntu distributions | |
sed --in-place 's/\(dpkg.* \)(>= 1.15.6)/\1(>= 1.15.5)/' control | |
sed --in-place 's/\(dpkg.* \)(>= 1.15.6)/\1(>= 1.15.5)/' control.in | |
sed --in-place 's/debhelper (>= .*)/debhelper (>= 5.0.0)/' control | |
sed --in-place 's/debhelper (>= .*)/debhelper (>= 5.0.0)/' control.in | |
sed --in-place 's/Standards-Version: .*/Standards-Version: 3.9.1/' control | |
sed --in-place 's/Standards-Version: .*/Standards-Version: 3.9.1/' control.in | |
echo 7 > compat | |
} | |
function patchForEmacsRelease() { | |
# Replace use of backquote '`' by $(shell ...) | |
sed --in-place 's/`\([^`]\+\)`/$(shell \1)/g' rules | |
# - Add missing LDFLAGS=$(LDFLAGS) | |
# - Add the final "cat config.log" so that all log is sent to stdout | |
sed --in-place 'sXCFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" ./configure \(.*\)$XCFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure \1 || cat config.logX' rules | |
# Insert missing override_dh_auto_test (I don't know why tests are not working) | |
sed --in-place 's/^override_dh_auto_configure: debian/override_dh_auto_test:\n\ttrue\n\noverride_dh_auto_configure: debian/' rules | |
# Don't depend on libtiff4-dev explicitly as there is now libtiff5-dev | |
sed --in-place 's/libtiff4-dev | //g' control | |
sed --in-place 's/libtiff4-dev | //g' control.in | |
} | |
function packageForDistribution() { | |
distrib="$1" | |
mkdir build_$distrib | |
cp *.tar.gz build_$distrib | |
cp *.tar.bz2 build_$distrib | |
cd build_$distrib | |
tar xfz *.tar.gz | |
tar xfj *.tar.bz2 | |
BUILD_DIR=${PACKAGE}-${MAIN_VERSION}* | |
mv debian $BUILD_DIR/ | |
cd $BUILD_DIR | |
cd debian | |
$PATCH_FUNCTION | |
cd .. | |
EMAIL=damien.cassou@gmail.com dch --distribution "$distrib" --local "~ppa$SUB_VERSION~$distrib" "Build for $distrib" | |
read -p "PAUSED. Press any key" | |
debuild -S -sa --changes-option='-DDistribution='${distrib} | |
cd .. | |
dput ppa:cassou/emacs ${PACKAGE}_${MAIN_VERSION}*.changes | |
cd .. | |
} | |
function clean-temp-directory() { | |
cd ~/tmp && rm -rf emacs && mkdir emacs && cd emacs | |
} | |
function convert-from-xz() { | |
# Convert from tar.xz to tar.bz2 to support Ubuntu lucid and its dpkg < 1.15.6 | |
file=${PACKAGE}_${MAIN_VERSION}.orig.tar | |
unxz --stdout $file.xz | bzip2 --compress --stdout > $file.bz2 | |
rm -f $file.xz | |
} | |
function prepare-build-from-debian-unstable() { | |
clean-temp-directory | |
SERVER=http://emacs.naquadah.org/unstable | |
PKG_VERSION=-1 | |
VERSION=${MAIN_VERSION}${PKG_VERSION} | |
PACKAGE=emacs-snapshot | |
wget --no-clobber ${SERVER}/${PACKAGE}_${VERSION}.dsc | |
wget --no-clobber ${SERVER}/${PACKAGE}_${MAIN_VERSION}.orig.tar.xz | |
wget --no-clobber ${SERVER}/${PACKAGE}_${VERSION}.debian.tar.gz | |
convert-from-xz | |
} | |
function prepare-build-from-debian-stable() { | |
clean-temp-directory | |
SERVER=http://emacs.naquadah.org/stable | |
PKG_VERSION=-1+squeeze | |
VERSION=${MAIN_VERSION}${PKG_VERSION} | |
PACKAGE=emacs-snapshot | |
wget --no-clobber ${SERVER}/${PACKAGE}_${VERSION}.dsc | |
wget --no-clobber ${SERVER}/${PACKAGE}_${MAIN_VERSION}.orig.tar.xz | |
wget --no-clobber ${SERVER}/${PACKAGE}_${VERSION}.debian.tar.gz | |
convert-from-xz | |
} | |
function prepare-build-from-debian-release() { | |
clean-temp-directory | |
SERVER=http://ftp.fr.debian.org/debian/pool/main/e/emacs24/ | |
MAIN_VERSION=24.2+1 | |
PKG_VERSION=-1 | |
VERSION=${MAIN_VERSION}${PKG_VERSION} | |
PACKAGE=emacs24 | |
wget --no-clobber ${SERVER}/${PACKAGE}_${VERSION}.dsc | |
wget --no-clobber ${SERVER}/${PACKAGE}_${MAIN_VERSION}.orig.tar.bz2 | |
wget --no-clobber ${SERVER}/${PACKAGE}_${VERSION}.debian.tar.gz | |
PATCH_FUNCTION=patchForEmacsRelease | |
} | |
function prepare-build-from-debian-nondfsg-release() { | |
clean-temp-directory | |
SERVER=http://cdn.debian.net/debian/pool/non-free/e/emacs24-non-dfsg/ | |
MAIN_VERSION=24.2+1 | |
PKG_VERSION=-1 | |
VERSION=${MAIN_VERSION}${PKG_VERSION} | |
PACKAGE=emacs24-non-dfsg | |
wget --no-clobber ${SERVER}/${PACKAGE}_${VERSION}.dsc | |
wget --no-clobber ${SERVER}/${PACKAGE}_${MAIN_VERSION}.orig.tar.bz2 | |
wget --no-clobber ${SERVER}/${PACKAGE}_${VERSION}.debian.tar.gz | |
} | |
function prepare-build-from-old() { | |
clean-temp-directory | |
SERVER=https://launchpad.net/~cassou/+archive/emacs/+files | |
PACKAGE=emacs-snapshot | |
MAIN_VERSION=20120823 | |
PKG_VERSION=-1~ppa~oneiric1 | |
VERSION=${MAIN_VERSION}${PKG_VERSION} | |
wget --no-clobber http://emacs.naquadah.org/stable/emacs-snapshot_20120823.orig.tar.xz | |
wget --no-clobber https://launchpad.net/~cassou/+archive/emacs/+files/emacs-snapshot_20120728-fake2-1~ppa~oneiric1.debian.tar.gz | |
convert-from-xz | |
} | |
#prepare-build-from-old | |
#packageForDistribution oneiric | |
# prepare-build-from-debian-nondfsg-release | |
# packageForDistribution precise # 12.04 LTS | |
# packageForDistribution quantal # 12.10 LTS | |
# prepare-build-from-debian-stable | |
# packageForDistribution lucid # 10.04 LTS | |
# packageForDistribution oneiric # 11.10 | |
# packageForDistribution natty # 11.04 | |
# packageForDistribution maverick # 10.10 -- no longer supported | |
# prepare-build-from-debian-release | |
# packageForDistribution precise # 12.04 LTS | |
# packageForDistribution quantal # 12.10 | |
prepare-build-from-debian-unstable | |
packageForDistribution precise # 12.04 LTS | |
packageForDistribution quantal # 12.10 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment