Preparations for packaging ShellInABox in a way that makes it easy for Debian package maintainers to pick it up.

git-svn-id: https://shellinabox.googlecode.com/svn/trunk@192 0da03de8-d603-11dd-86c2-0f8696b7b6f9
This commit is contained in:
zodiac@gmail.com 2009-11-30 18:26:43 +00:00
parent 03886076e1
commit fe2eb7e120
12 changed files with 138 additions and 17 deletions

View file

@ -1,3 +1,8 @@
2009-11-29 Markus Gutschke <markus@shellinabox.com>
* Preparations for packaging ShellInABox in a way that makes it
easy for Debian package maintainers to pick it up.
2009-11-25 Markus Gutschke <markus@shellinabox.com> 2009-11-25 Markus Gutschke <markus@shellinabox.com>
* On browsers that support CSS transforms, enable switching between * On browsers that support CSS transforms, enable switching between

118
commit
View file

@ -1,7 +1,11 @@
#!/bin/bash -e #!/bin/bash -e
# The script ensures that all commands succeed unless an error occurred. If it
# does though, the shell terminates the script and our exit handler runs.
trap 'tput bel || :; echo Failed! >&2' EXIT trap 'tput bel || :; echo Failed! >&2' EXIT
# Ask the user a yes/no question. This function does not require the user to
# press ENTER after making a selection.
yes_no() { yes_no() {
local c local c
while :; do while :; do
@ -32,30 +36,122 @@ yes_no() {
done done
} }
# Build Debian package and create all the files that are needed by the
# distribution maintainer.
debian_package() {
set -e
(
# Try to build the package. If things fail, let the exit handler remove all
# temporary files.
trap 'rm -rf "${prj}-${ver}" "${prj}_${ver}"*' EXIT
# Clean up any old temporary files
rm -rf "${prj}-${ver}" "${prj}_${ver}"*
# Extract the distribution source archive
tar zfx "${prj}-${ver}.tar.gz"
# We want to ship the "debian" directory with the source archive that
# users download directly from the project web site. This allows them to
# easily build their own Debian package by following the instructions in
# INSTALL.Debian.
# But when preparing our package for direct integration with Debian-based
# distributions, we have to instead remove the "debian" directory, as the
# distribution prefers that third-party projects are not built "natively".
mv "${prj}-${ver}/debian" "${prj}_${ver}_debian"
tar zfc "${prj}_${ver}.orig.tar.gz" "${prj}-${ver}"
mv "${prj}_${ver}_debian" "${prj}-${ver}/debian"
# Reset compatibility level
echo 7 >"${prj}-${ver}/debian/compat"
# Build Debian packages.
(cd "${prj}-${ver}"
fakeroot dpkg-buildpackage -sa -us -uc || :)
trap '' EXIT
)
# Revert any changes that might be pending in distributions/debian/*
local revert="$(svn st |
grep distributions/debian |
grep '^[^?]' |
awk '{ print $2 }' |
tac)"
if [ -n "${revert}" ]; then
svn revert ${revert}
rm -f ${revert}
fi
# Create distributions/debian if it does not exist yet.
mkdir -p distributions/debian
for i in distributions distributions/debian; do
if [ -z "$(svn st "${i}" 2>/dev/null | grep -v '^[?]')" ]; then
svn add --depth=empty "${i}"
fi
done
# If this version of files already exists in the distribution directory,
# we are not yet ready to cut a new release. Just clean up and exit.
for i in "${prj}_${ver}"[-.]*.*; do
[ -r "distributions/debian/${i}" ] && {
rm $(ls "${prj}_${ver}"[-.]* | egrep -v '_*.changes|_*.deb')
return 0
}
done
# Move new Debian files into release area.
mv $(ls "${prj}_${ver}"[-.]* | egrep -v '_*.changes|_*.deb') \
distributions/debian/
svn add distributions/debian/"${prj}_${ver}"[-.]*.*
# Let the caller know that we added new packages.
return 1
}
# Quick sanity check that we are running from the correct directory
test -r configure.ac test -r configure.ac
# Make sure there are no stale files
svn update svn update
# Determine Subversion revision number, project name, and public version
# number
{ {
rev=$(($(svn info | sed -e 's/^Revision: \(.*\)/\1/;t1;d;:1;q')+1)) rev=$(($(svn info | sed -e 's/^Revision: \(.*\)/\1/;t1;d;:1;q')+1))
prj="$(sed -e 's/^AC_INIT(\([^,]*\),.*/\1/;t1;d;:1;q' configure.ac)"
ver="$(sed -e 's/^AC_INIT([^,]*, *\([^,]*\),.*/\1/;t1;d;:1;q' configure.ac)"
} 2>/dev/null } 2>/dev/null
prj="$(sed -e 's/^AC_INIT(\([^,]*\),.*/\1/;t1;d;:1;q' configure.ac)"
ver="$(sed -e 's/^AC_INIT([^,]*, *\([^,]*\),.*/\1/;t1;d;:1;q' configure.ac)" # Update "configure.ac" with the next Subversion revision number. This
# information will trickle down into various source files where it becomes
# part of the user-visible version information.
sed -ie 's/^\(VCS_REVISION=\).*/\1'"${rev}"'/' configure.ac sed -ie 's/^\(VCS_REVISION=\).*/\1'"${rev}"'/' configure.ac
touch shellinabox/vt100.jspp shellinabox/shell_in_a_box.jspp touch shellinabox/vt100.jspp shellinabox/shell_in_a_box.jspp
# For now, Ubuntu/Hardy is still quite popular. We want to make it easy for
# our users to build Debian packages from source. So, make sure we lock the
# compatibility level at 6. Once we no longer care about maintaining strict
# backwards compatibility, we can lift this restriction.
echo 6 >debian/compat echo 6 >debian/compat
# Build all the sources, create the distribution tar archive, and run some
# basic sanity checks.
make all distcheck make all distcheck
( trap 'rm -rf "${prj}-${ver}"' EXIT
rm -f "${prj}-${ver}" && # Build Debian package and create all the files that are needed by the
tar zfx "${prj}-${ver}.tar.gz" && # distribution maintainer.
cd "${prj}-${ver}" && msg=
fakeroot dpkg-buildpackage -us -uc && debian_package ||
cd .. && msg="${msg}
rm -f $(ls "${prj}_${ver}-"*.* | egrep -v '.deb$') ) || : NOTICE: New version released. Please do not forget to notify distributions"
svn diff $(svn st | svn diff $(svn st |
egrep -v ' configure$| aclocal.m4$|^[?]' | egrep -v ' configure$| aclocal.m4$|distributions|^[?]' |
sed -e 's/^[^ ]* *//') | less sed -e 's/^[^ ]* *//') | less
echo -n 'Commit these changes (Y/n): ' echo -n 'Commit these changes (Y/n): '
yes_no 0 || exit 1 yes_no 0 || exit 1
svn commit svn commit
echo "${msg}"
trap '' EXIT trap '' EXIT
exit 0 exit 0

View file

@ -138,7 +138,7 @@
#define STDC_HEADERS 1 #define STDC_HEADERS 1
/* Most recent revision number in the version control system */ /* Most recent revision number in the version control system */
#define VCS_REVISION "191" #define VCS_REVISION "192"
/* Version number of package */ /* Version number of package */
#define VERSION "2.10" #define VERSION "2.10"

2
configure vendored
View file

@ -2319,7 +2319,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_compiler_gnu=$ac_cv_c_compiler_gnu
VCS_REVISION=191 VCS_REVISION=192
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF

View file

@ -2,7 +2,7 @@ AC_PREREQ(2.57)
dnl This is the one location where the authoritative version number is stored dnl This is the one location where the authoritative version number is stored
AC_INIT(shellinabox, 2.10, markus@shellinabox.com) AC_INIT(shellinabox, 2.10, markus@shellinabox.com)
VCS_REVISION=191 VCS_REVISION=192
AC_SUBST(VCS_REVISION) AC_SUBST(VCS_REVISION)
AC_DEFINE_UNQUOTED(VCS_REVISION, "${VCS_REVISION}", AC_DEFINE_UNQUOTED(VCS_REVISION, "${VCS_REVISION}",
[Most recent revision number in the version control system]) [Most recent revision number in the version control system])

View file

@ -1955,7 +1955,7 @@ VT100.prototype.toggleBell = function() {
}; };
VT100.prototype.about = function() { VT100.prototype.about = function() {
alert("VT100 Terminal Emulator " + "2.10 (revision 191)" + alert("VT100 Terminal Emulator " + "2.10 (revision 192)" +
"\nCopyright 2008-2009 by Markus Gutschke\n" + "\nCopyright 2008-2009 by Markus Gutschke\n" +
"For more information check http://shellinabox.com"); "For more information check http://shellinabox.com");
}; };

3
distributions/README Normal file
View file

@ -0,0 +1,3 @@
This directory contains files that can be picked up by distributions that
want to package ShellInABox and that want to ship it directly rather than
making their users download it from the project's homepage.

Binary file not shown.

View file

@ -0,0 +1,17 @@
Format: 1.0
Source: shellinabox
Binary: shellinabox
Architecture: any
Version: 2.10-1
Maintainer: Markus Gutschke <markus@shellinabox.com>
Standards-Version: 3.6.1
Build-Depends: debhelper (>= 4.0.0), binutils, libssl-dev, libpam0g-dev, zlib1g-dev
Checksums-Sha1:
1847ca3684a3cd07b0831b977a6dadf5775f0d58 516377 shellinabox_2.10.orig.tar.gz
d724b4320311d93976bc70aceaaf3d3b9883cc1d 6073 shellinabox_2.10-1.diff.gz
Checksums-Sha256:
32d5307bd920232f21918a1edfe015da44b31991458a18e5760e60540052ceb2 516377 shellinabox_2.10.orig.tar.gz
119748a3a3e7d274ad9603ae5a751199c830f6e09ce6b699061c053ac03db549 6073 shellinabox_2.10-1.diff.gz
Files:
b3474662e46077f023de95ca44154c80 516377 shellinabox_2.10.orig.tar.gz
af657b1c3410a8c60225bb324642c26e 6073 shellinabox_2.10-1.diff.gz

Binary file not shown.

View file

@ -358,7 +358,7 @@ ShellInABox.prototype.extendContextMenu = function(entries, actions) {
}; };
ShellInABox.prototype.about = function() { ShellInABox.prototype.about = function() {
alert("Shell In A Box version " + "2.10 (revision 191)" + alert("Shell In A Box version " + "2.10 (revision 192)" +
"\nCopyright 2008-2009 by Markus Gutschke\n" + "\nCopyright 2008-2009 by Markus Gutschke\n" +
"For more information check http://shellinabox.com" + "For more information check http://shellinabox.com" +
(typeof serverSupportsSSL != 'undefined' && serverSupportsSSL ? (typeof serverSupportsSSL != 'undefined' && serverSupportsSSL ?

View file

@ -1955,7 +1955,7 @@ VT100.prototype.toggleBell = function() {
}; };
VT100.prototype.about = function() { VT100.prototype.about = function() {
alert("VT100 Terminal Emulator " + "2.10 (revision 191)" + alert("VT100 Terminal Emulator " + "2.10 (revision 192)" +
"\nCopyright 2008-2009 by Markus Gutschke\n" + "\nCopyright 2008-2009 by Markus Gutschke\n" +
"For more information check http://shellinabox.com"); "For more information check http://shellinabox.com");
}; };