-
-
Save ustbgaofan/7128849 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=20130527 | |
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 --link *.tar.gz build_$distrib | |
cp --link *.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 protected] 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 cleanTempDirectory() { | |
cd ~/tmp && rm -rf emacs && mkdir emacs && cd emacs | |
} | |
function convertFromXz() { | |
# 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 prepareBuildFromDebianUnstable() { | |
cleanTempDirectory | |
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 | |
convertFromXz | |
} | |
function prepareBuildFromDebianStable() { | |
cleanTempDirectory | |
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 | |
convertFromXz | |
} | |
function prepareBuildFromDebianRelease() { | |
cleanTempDirectory | |
SERVER=http://ftp.fr.debian.org/debian/pool/main/e/emacs24/ | |
MAIN_VERSION=24.3+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 prepareBuildFromDebianNondfsgRelease() { | |
cleanTempDirectory | |
SERVER=http://cdn.debian.net/debian/pool/non-free/e/emacs24-non-dfsg/ | |
MAIN_VERSION=24.3+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 prepareBuildFromOld() { | |
cleanTempDirectory | |
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 | |
convertFromXz | |
} | |
#prepareBuildFromOld | |
#packageForDistribution oneiric | |
# prepareBuildFromDebianNondfsgRelease | |
# packageForDistribution precise # 12.04 LTS | |
# packageForDistribution quantal # 12.10 LTS | |
# packageForDistribution raring # 13.04 LTS | |
# prepareBuildFromDebianStable | |
# packageForDistribution lucid # 10.04 LTS | |
# packageForDistribution oneiric # 11.10 | |
# packageForDistribution natty # 11.04 | |
# packageForDistribution maverick # 10.10 -- no longer supported | |
# prepareBuildFromDebianRelease | |
# packageForDistribution precise # 12.04 LTS | |
# packageForDistribution quantal # 12.10 | |
# packageForDistribution raring # 13.04 | |
prepareBuildFromDebianUnstable | |
packageForDistribution precise # 12.04 LTS | |
packageForDistribution quantal # 12.10 | |
packageForDistribution raring # 13.04 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment