Add Ubuntu packaging instructions

These files knowingly (one might say, intentionally) violate the spirit
and letter of the Debian / Ubuntu packaging rules. They are intended to be
able to create our own packages that include their own libdivecomputer,
libgit2 and (later) libmarble. Especially for daily builds this is WAY
easier than fighting with whatever may be the current version of these
packages in Ubuntu (especially since this allows us to use our private
libdivecomputer branch).

This assumes that the user runs the make-package.sh script from a
directory below which we have
subsurface/                <- Subsurface checked out git tree
subsurface/libdivecomputer <- desired libdivecomputer sources
subsurface/libgit2         <- desired libgit2 source

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2014-12-01 16:00:47 -08:00
parent bb12dea03c
commit 74447d6389
6 changed files with 152 additions and 0 deletions

View file

@ -0,0 +1,3 @@
* Daily build - check git revision for full changelog

42
packaging/ubuntu/control Normal file
View file

@ -0,0 +1,42 @@
Source: subsurface-4.2.90
Section: utils
Priority: optional
Maintainer: Dirk Hohndel <dirk@hohndel.org>
Build-Depends: asciidoc,
debhelper (>= 9),
libqt4-dev,
libqtwebkit-dev,
libgconf2-dev,
libtool,
libxml2-dev,
libxslt-dev,
libsoup2.4-dev,
pkg-config,
txt2html,
libzip-dev,
libsqlite3-dev,
libmarble-dev,
autoconf,
automake,
cmake,
dpkg-dev (>= 1.16.1.1),
libusb-dev,
dh-autoreconf,
libz-dev,
libssl-dev,
git
# libgit2-dev,
Standards-Version: 3.9.5
Homepage: http://subsurface-divelog.hohndel.org
#Vcs-Git: git://git.debian.org/collab-maint/subsurface-4.2.90.git
#Vcs-Browser: http://git.debian.org/?p=collab-maint/subsurface-4.2.90.git;a=summary
Package: subsurface-4.2.90
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Dive log program
Subsurface is an open source divelog program that runs on Windows, Mac and Linux.
Subsurface is able to track single- and multi-tank dives using air, Nitrox or
TriMix. It also allows logging of weights and exposure protection used, dive
masters and dive buddies and enables the user to rate dives and provide
additional dive notes.

View file

@ -0,0 +1,32 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: subsurface-4.2.90
Source: <url://subsurface-divelog.org>
Files: *
Copyright: 2011-2014 Dirk Hohndel, Linus Torvalds, Tomaz Canabrava and others
License: GPL-2.0
Files: debian/*
Copyright: 2014 Dirk Hohndel <dirk@hohndel.org>
License: GPL-2.0
License: GPL-2.0
This package is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as published
by the Free Software Foundation
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.
# Please avoid to pick license terms that are more restrictive than the
# packaged work, as it may make Debian's contributions unacceptable upstream.

View file

@ -0,0 +1,36 @@
#!/bin/bash
# start from the directory above the combined subsurface & subsurface/libdivecomputer directory
VERSION=$(cd subsurface ; git describe | sed -e 's/-g.*$// ; s/^v//')
echo "building Subsurface" $VERSION
if [[ -d subsurface-$VERSION ]]; then
rm -rf subsurface-$VERSION.bak.prev
mv subsurface-$VERSION.bak subsurface-$VERSION.bak.prev
mv subsurface-$VERSION subsurface-$VERSION.bak
fi
mkdir subsurface-$VERSION
(cd subsurface ; tar cf - . .git ) | (cd subsurface-$VERSION ; tar xf - )
cd subsurface-$VERSION
dh_make --email dirk@hohndel.org -c gpl2 --createorig --single --yes
rm debian/*.ex debian/*.EX debian/README.*
cp ../subsurface/packaging/ubuntu/control debian/control
cp ../subsurface/packaging/ubuntu/copyright debian/copyright
cp ../subsurface/packaging/ubuntu/rules debian/rules
cp ../subsurface/packaging/ubuntu/source.lintian-overrides debian/source.lintian-overrides
# do something clever with changelog
mv debian/changelog debian/autocl
head -1 debian/autocl | sed -e 's/unstable/trusty/' > debian/changelog
cat ../subsurface/packaging/ubuntu/changelog.txt >> debian/changelog
tail -1 debian/autocl >> debian/changelog
rm -f debian/autocl
debuild -S
exit
cd subsurface-$VERSION/libdivecomputer
autoreconf --install
./configure
make

31
packaging/ubuntu/rules Executable file
View file

@ -0,0 +1,31 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
%:
dh $@
override_dh_auto_clean:
(cd libdivecomputer ; make clean || true)
make clean || true
rm -rf libgit2/build
rm -f ssrf-version.h
rm -f subsurface
rm -f Makefile
override_dh_auto_configure:
(cd libdivecomputer ; autoreconf --install ; ./configure ; make)
(mkdir libgit2/build ; cd libgit2/build ; cmake .. ; make )
qmake LIBDCDEVEL=./libdivecomputer LIBGIT2DEVEL=./libgit2 subsurface.pro
override_dh_installchangelogs:
dh_installchangelogs
dh_installchangelogs ReleaseNotes.txt
txt2html Documentation/user-manual.txt > Documentation/user-manual.html
mkdir -p debian/subsurface/usr/share/doc/subsurface
cp Documentation/user-manual.txt debian/subsurface/usr/share/doc/subsurface/
cp Documentation/user-manual.html debian/subsurface/usr/share/doc/subsurface/html

View file

@ -0,0 +1,8 @@
# We use the package
subsurface source: source-is-missing theme/jqplot.canvasAxisTickRenderer.min.js
subsurface source: source-is-missing theme/jqplot.canvasTextRenderer.min.js
subsurface source: source-is-missing theme/jqplot.highlighter.min.js
subsurface source: source-is-missing theme/jquery.jqplot.min.js
subsurface source: source-is-missing theme/jquery.min.js