Skip to content
Snippets Groups Projects
Unverified Commit f89d706d authored by aviau's avatar aviau
Browse files

Add Debian and Ubuntu packaging

This moves the official Debian packaging into ring-project. Jenkins
should now be able to run packaging jobs and publish packages. It
should also make it easy to add a `verify` check on Jenkins to test
packaging patches.

This will make it much easier to work on packaging issues because the
build environment is now reproductible on any machine.

The patch adds Makefile targets to create packages such as:
 - package-all
 - package-<DISTRO>

Builds are all done inside Docker containers and it is possible to
build many at a time with the `package-all` target.

To debug a build, use `package-<DISTRO>-interactive` to obtain a shell
inside a container, ready to launch a build.

Tuleap: #781
Change-Id: Id87a74a6c412ffc5bf82b9562639ce5a9424b06a
parent 81e420a4
No related branches found
No related tags found
No related merge requests found
Showing
with 337 additions and 3 deletions
client-android
client-gnome
client-macosx
client-windows
daemon
lrc
ring_*
.git
*/.git
......@@ -4,3 +4,6 @@
.DS_Store
env
docs/build
packages
ring_*.tar.gz
Makefile.packaging.distro_targets
......@@ -12,6 +12,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
.DEFAULT_GOAL := package-all
##############################
## Version number variables ##
......@@ -31,10 +33,15 @@ COMMIT_ID:=$(shell git rev-parse --short HEAD)
RELEASE_VERSION:=$(LAST_COMMIT_DATE_SHORT).$(NUMBER_OF_COMMITS).$(COMMIT_ID)
RELEASE_TARBALL_FILENAME:=ring_$(RELEASE_VERSION).tar.gz
# Debian versions
DEBIAN_VERSION:=$(RELEASE_VERSION)~dfsg1-1
DEBIAN_DSC_FILENAME:=ring_$(DEBIAN_VERSION).dsc
#####################
## Other variables ##
#####################
TMPDIR := $(shell mktemp -d)
CURRENT_UID:=$(shell id -u)
#############################
## Release tarball targets ##
......@@ -59,6 +66,25 @@ $(RELEASE_TARBALL_FILENAME):
rm -rf $(CURDIR)/daemon/contrib/tarballs/*
#######################
## Packaging targets ##
#######################
.PHONY: package-all
package-all: package-debian8 \
package-debian8_i386 \
package-debian9 \
package-debian9_i386 \
package-ubuntu15.10 \
package-ubuntu15.10_i386 \
package-ubuntu16.04 \
package-ubuntu16.04_i386
# Append the output of make-packaging-target to this Makefile
# see Makefile.packaging.distro_targets
$(shell scripts/make-packaging-target.py --generate-all > Makefile.packaging.distro_targets)
include Makefile.packaging.distro_targets
###################
## Other targets ##
###################
......@@ -76,3 +102,6 @@ clean:
rm -rf env
rm -rf docs/build
rm -f ring_*.tar.gz
rm -rf packages
rm -f Makefile.packaging.distro_targets
rm -f .docker-image-*
client-gnome @ 884c37c0
Subproject commit 45bee9ccc17ec7de1e570ef3133f4dfdfba8c309
Subproject commit 884c37c0d1ceb17d0146f174d014f56092373593
daemon @ 150035a8
Subproject commit fbdc7b2476d330897ff2014e9fc17fd128eb4c19
Subproject commit 150035a81912cc8109331c684d8ad5be6b343e8f
FROM debian:8
RUN apt-get update && \
apt-get install -y vim devscripts equivs
# Speed up mk-build-deps
RUN apt-get update && \
apt-get install -y autoconf automake cmake libtool libdbus-1-dev \
libdbus-c++-dev libupnp-dev \
libebook1.2-dev libclutter-gtk-1.0-dev \
libclutter-1.0-dev libglib2.0-dev libgtk-3-dev \
libnotify-dev qtbase5-dev qttools5-dev \
qttools5-dev-tools yasm unbound-anchor git-core \
autotools-dev gnome-icon-theme-symbolic gettext \
libpulse-dev libsamplerate0-dev libasound2-dev \
libexpat1-dev libpcre3-dev libyaml-cpp-dev \
libboost-dev libsndfile1-dev libsrtp-dev \
libxext-dev libxfixes-dev autopoint libspeex-dev \
libspeexdsp-dev chrpath uuid-dev libavcodec-dev \
libavutil-dev libavformat-dev libswscale-dev \
libavdevice-dev libopus-dev libudev-dev libticonv-dev \
libgsm1-dev libjsoncpp-dev libqrencode-dev
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD /opt/build-package-debian.sh
FROM savoirfairelinux/ring-debian32:8
RUN apt-get update && \
apt-get install -y vim devscripts equivs
# Speed up mk-build-deps
RUN apt-get update && \
apt-get install -y autoconf automake cmake libtool libdbus-1-dev \
libdbus-c++-dev libupnp-dev \
libebook1.2-dev libclutter-gtk-1.0-dev \
libclutter-1.0-dev libglib2.0-dev libgtk-3-dev \
libnotify-dev qtbase5-dev qttools5-dev \
qttools5-dev-tools yasm unbound-anchor git-core \
autotools-dev gnome-icon-theme-symbolic gettext \
libpulse-dev libsamplerate0-dev libasound2-dev \
libexpat1-dev libpcre3-dev libyaml-cpp-dev \
libboost-dev libsndfile1-dev libsrtp-dev \
libxext-dev libxfixes-dev autopoint libspeex-dev \
libspeexdsp-dev chrpath uuid-dev libavcodec-dev \
libavutil-dev libavformat-dev libswscale-dev \
libavdevice-dev libopus-dev libudev-dev libticonv-dev \
libgsm1-dev libjsoncpp-dev libqrencode-dev
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD /opt/build-package-debian.sh
FROM debian:stretch
RUN apt-get update && \
apt-get install -y vim devscripts
# Speed up mk-build-deps
RUN apt-get update && \
apt-get install -y autoconf automake cmake libtool libdbus-1-dev \
libdbus-c++-dev libupnp-dev libgnutls28-dev \
libebook1.2-dev libclutter-gtk-1.0-dev \
libclutter-1.0-dev libglib2.0-dev libgtk-3-dev \
libnotify-dev qtbase5-dev qttools5-dev \
qttools5-dev-tools yasm unbound-anchor git-core \
autotools-dev gnome-icon-theme-symbolic gettext \
libpulse-dev libsamplerate0-dev libasound2-dev \
libexpat1-dev libpcre3-dev libyaml-cpp-dev \
libboost-dev libsndfile1-dev libsrtp-dev \
libxext-dev libxfixes-dev autopoint libspeex-dev \
libspeexdsp-dev chrpath uuid-dev libavcodec-dev \
libavutil-dev libavformat-dev libswscale-dev \
libavdevice-dev libopus-dev libudev-dev libticonv-dev \
libgsm1-dev libjsoncpp-dev libqrencode-dev
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD /opt/build-package-debian.sh
FROM savoirfairelinux/ring-debian32:9
RUN apt-get update && \
apt-get install -y vim devscripts
# Speed up mk-build-deps
RUN apt-get update && \
apt-get install -y autoconf automake cmake libtool libdbus-1-dev \
libdbus-c++-dev libupnp-dev libgnutls28-dev \
libebook1.2-dev libclutter-gtk-1.0-dev \
libclutter-1.0-dev libglib2.0-dev libgtk-3-dev \
libnotify-dev qtbase5-dev qttools5-dev \
qttools5-dev-tools yasm unbound-anchor git-core \
autotools-dev gnome-icon-theme-symbolic gettext \
libpulse-dev libsamplerate0-dev libasound2-dev \
libexpat1-dev libpcre3-dev libyaml-cpp-dev \
libboost-dev libsndfile1-dev libsrtp-dev \
libxext-dev libxfixes-dev autopoint libspeex-dev \
libspeexdsp-dev chrpath uuid-dev libavcodec-dev \
libavutil-dev libavformat-dev libswscale-dev \
libavdevice-dev libopus-dev libudev-dev libticonv-dev \
libgsm1-dev libjsoncpp-dev libqrencode-dev
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD /opt/build-package-debian.sh
FROM ubuntu:14.04
RUN apt-get update && \
apt-get install -y vim devscripts equivs
# Speed up mk-build-deps
RUN apt-get update && \
apt-get install -y autoconf automake cmake libtool libdbus-1-dev \
libdbus-c++-dev libupnp-dev \
libebook1.2-dev libclutter-gtk-1.0-dev \
libclutter-1.0-dev libglib2.0-dev libgtk-3-dev \
libnotify-dev qtbase5-dev qttools5-dev \
qttools5-dev-tools yasm unbound-anchor git-core \
autotools-dev gnome-icon-theme-symbolic gettext \
libpulse-dev libsamplerate0-dev libasound2-dev \
libexpat1-dev libpcre3-dev libyaml-cpp-dev \
libboost-dev libsndfile1-dev libsrtp-dev \
libxext-dev libxfixes-dev autopoint libspeex-dev \
libspeexdsp-dev chrpath uuid-dev libavcodec-dev \
libavutil-dev libavformat-dev libswscale-dev \
libavdevice-dev libopus-dev libudev-dev libticonv-dev \
libgsm1-dev libjsoncpp-dev libqrencode-dev
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD /opt/build-package-debian.sh
FROM savoirfairelinux/ring-ubuntu32:14.04
RUN apt-get update && \
apt-get install -y vim devscripts equivs
# Speed up mk-build-deps
RUN apt-get update && \
apt-get install -y autoconf automake cmake libtool libdbus-1-dev \
libdbus-c++-dev libupnp-dev \
libebook1.2-dev libclutter-gtk-1.0-dev \
libclutter-1.0-dev libglib2.0-dev libgtk-3-dev \
libnotify-dev qtbase5-dev qttools5-dev \
qttools5-dev-tools yasm unbound-anchor git-core \
autotools-dev gnome-icon-theme-symbolic gettext \
libpulse-dev libsamplerate0-dev libasound2-dev \
libexpat1-dev libpcre3-dev libyaml-cpp-dev \
libboost-dev libsndfile1-dev libsrtp-dev \
libxext-dev libxfixes-dev autopoint libspeex-dev \
libspeexdsp-dev chrpath uuid-dev libavcodec-dev \
libavutil-dev libavformat-dev libswscale-dev \
libavdevice-dev libopus-dev libudev-dev libticonv-dev \
libgsm1-dev libjsoncpp-dev libqrencode-dev
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD /opt/build-package-debian.sh
FROM ubuntu:15.10
RUN apt-get update && \
apt-get install -y vim devscripts equivs
# Speed up mk-build-deps
RUN apt-get update && \
apt-get install -y autoconf automake cmake libtool libdbus-1-dev \
libdbus-c++-dev libupnp-dev \
libebook1.2-dev libclutter-gtk-1.0-dev \
libclutter-1.0-dev libglib2.0-dev libgtk-3-dev \
libnotify-dev qtbase5-dev qttools5-dev \
qttools5-dev-tools yasm unbound-anchor git-core \
autotools-dev gnome-icon-theme-symbolic gettext \
libpulse-dev libsamplerate0-dev libasound2-dev \
libexpat1-dev libpcre3-dev libyaml-cpp-dev \
libboost-dev libsndfile1-dev libsrtp-dev \
libxext-dev libxfixes-dev autopoint libspeex-dev \
libspeexdsp-dev chrpath uuid-dev libavcodec-dev \
libavutil-dev libavformat-dev libswscale-dev \
libavdevice-dev libopus-dev libudev-dev libticonv-dev \
libgsm1-dev libjsoncpp-dev libqrencode-dev
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD /opt/build-package-debian.sh
FROM savoirfairelinux/ring-ubuntu32:15.10
RUN apt-get update && \
apt-get install -y vim devscripts equivs
# Speed up mk-build-deps
RUN apt-get update && \
apt-get install -y autoconf automake cmake libtool libdbus-1-dev \
libdbus-c++-dev libupnp-dev \
libebook1.2-dev libclutter-gtk-1.0-dev \
libclutter-1.0-dev libglib2.0-dev libgtk-3-dev \
libnotify-dev qtbase5-dev qttools5-dev \
qttools5-dev-tools yasm unbound-anchor git-core \
autotools-dev gnome-icon-theme-symbolic gettext \
libpulse-dev libsamplerate0-dev libasound2-dev \
libexpat1-dev libpcre3-dev libyaml-cpp-dev \
libboost-dev libsndfile1-dev libsrtp-dev \
libxext-dev libxfixes-dev autopoint libspeex-dev \
libspeexdsp-dev chrpath uuid-dev libavcodec-dev \
libavutil-dev libavformat-dev libswscale-dev \
libavdevice-dev libopus-dev libudev-dev libticonv-dev \
libgsm1-dev libjsoncpp-dev libqrencode-dev
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD /opt/build-package-debian.sh
FROM ubuntu:16.04
RUN apt-get update && \
apt-get install -y vim devscripts equivs
# Speed up mk-build-deps
RUN apt-get update && \
apt-get install -y autoconf automake cmake libtool libdbus-1-dev \
libdbus-c++-dev libupnp-dev libgnutls28-dev \
libebook1.2-dev libclutter-gtk-1.0-dev \
libclutter-1.0-dev libglib2.0-dev libgtk-3-dev \
libnotify-dev qtbase5-dev qttools5-dev \
qttools5-dev-tools yasm unbound-anchor git-core \
autotools-dev gnome-icon-theme-symbolic gettext \
libpulse-dev libsamplerate0-dev libasound2-dev \
libexpat1-dev libpcre3-dev libyaml-cpp-dev \
libboost-dev libsndfile1-dev libsrtp-dev \
libxext-dev libxfixes-dev autopoint libspeex-dev \
libspeexdsp-dev chrpath uuid-dev libavcodec-dev \
libavutil-dev libavformat-dev libswscale-dev \
libavdevice-dev libopus-dev libudev-dev libticonv-dev \
libgsm1-dev libjsoncpp-dev libqrencode-dev
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD /opt/build-package-debian.sh
FROM savoirfairelinux/ring-ubuntu32:16.04
RUN apt-get update && \
apt-get install -y vim devscripts equivs
# Speed up mk-build-deps
RUN apt-get update && \
apt-get install -y autoconf automake cmake libtool libdbus-1-dev \
libdbus-c++-dev libupnp-dev libgnutls28-dev \
libebook1.2-dev libclutter-gtk-1.0-dev \
libclutter-1.0-dev libglib2.0-dev libgtk-3-dev \
libnotify-dev qtbase5-dev qttools5-dev \
qttools5-dev-tools yasm unbound-anchor git-core \
autotools-dev gnome-icon-theme-symbolic gettext \
libpulse-dev libsamplerate0-dev libasound2-dev \
libexpat1-dev libpcre3-dev libyaml-cpp-dev \
libboost-dev libsndfile1-dev libsrtp-dev \
libxext-dev libxfixes-dev autopoint libspeex-dev \
libspeexdsp-dev chrpath uuid-dev libavcodec-dev \
libavutil-dev libavformat-dev libswscale-dev \
libavdevice-dev libopus-dev libudev-dev libticonv-dev \
libgsm1-dev libjsoncpp-dev libqrencode-dev
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD /opt/build-package-debian.sh
lrc @ 3fc24faf
Subproject commit 54bb9b6c55ab9c5b23a5c76641b49761ca67b5be
Subproject commit 3fc24faf38351b018ebe018a9785d59b76645fd9
Packaging
#########
The rules folder contains the latest and greatest packaging rules.
The distros folder contains overrides for some files that must be changed
depending on the distribution. Those are kept at a minimum.
Differences log
###############
This files lists the overrides done in the various subfolders. It is useful
when updating packaging because we don't maintain patches and we should know
what was overriden and why.
# Notes
## Importing a new version
1- Prepare the new changelog entry mentioning the new version.
(the version on the changelog will be used to determine what to download).
Releases are available here: https://dl.ring.cx/ring-release/tarballs/
2- Run debian/rules get-orig-source
3- Import the tarball with gbp import-orig <tarball>
## tarballs-unpacked
We need those tarballs in tarballs-unpacked.
The rest should be excluded.
- msgpack-c-cpp-1.2.0.tar.gz
- opendht-281b62dfd529a226e94d0da19e01acf07871a797.tar.gz
- pjproject-2.4.5.tar.bz2
9
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment