1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-
# Copyright 2012, 2015-2017 Jonas Smedegaard <dr@jones.dk>
# Description: Main Debian packaging script for sugar-toolkit-gtk3
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# This program 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/>.
DEB_BUILDDIR = build
include /usr/share/cdbs/1/class/python-autotools.mk
include /usr/share/cdbs/1/rules/debhelper.mk
CDBS_BUILD_DEPENDS +=, autoconf-archive
include /usr/share/cdbs/1/rules/autoreconf.mk
# TODO: convince upstream to install headers, and provide proper -dev package
stem = sugarext
pkgbranch = $(subst $(space),.,$(wordlist 1, 2,$(subst .,$(space),$(DEB_UPSTREAM_VERSION))))
abi = 0
lib = lib$(stem)
pkg-lib = lib$(stem)$(abi)
pkg-dev = lib$(stem)-dev
pkg-gir = gir1.2-$(stem)-1.0
pkg-data = lib$(stem)-data
#pkg-bin = sugar-activity
pkg-bin = python-sugar3
pkg-python = python-sugar3
# Adapt packaging in maintainer mode when targeting experimental branch:
# * Switch git packaging branch
# * Track any release (else only current branch)
ifneq (,$(DEB_MAINTAINER_MODE))
watch-limit = $(if $(DEB_SUITE_EXP),,$(pkgbranch)\\.)
debian-branch = $(if $(DEB_SUITE_EXP),master,master-$(pkgbranch))
clean::
perl -i -pe 's/\([\d.\\]*\.\*\)/($(watch-limit).*)/' \
debian/watch
perl -i -pe 's/^debian-branch *= *\K.*/$(debian-branch)/' \
debian/gbp.conf
endif
# Needed by upstream build process
# * linux-libc-dev/hurd-dev needed by sugar-fatattr
dev-bdeps = gtk-3 gdk-pixbuf2.0 sm ice rsvg2 xfixes xi x11
bdeps = $(patsubst %,$(comma) lib%-dev,$(dev-bdeps))
bdeps +=, gettext, intltool, libxml-parser-perl, x11proto-core-dev
bdeps +=, libasound2-dev | libasound-dev, libgirepository1.0-dev
bdeps +=, linux-libc-dev [linux-any], hurd-dev [hurd-any]
# Needed (always/often/seldom) at runtime
# * Carquinol used in sugar3.datastore.*
# * Jarabe used in sugar3.graphics.popwindow
# * alsa-utils (mayby still) needed to unmute devices at boot (bug#581504)
# * shared-mime-info (update-mime-database) used in sugar.bundle.bundlebuilder
# * unzip used in sugar3.bundle.bundle
# * git used in sugar3.activity.bundlebuilder
# * gstreamer1.0-espeak used in sugar3.speech
# * gstreamer1.0-plugins-good (autoaudiosink) used in sugar3.speech
# TODO: relax dependencies for our own GIR when its API is stable
gir-deps = glib-2.0 gtk-3.0 gdkpixbuf-2.0 pango-1.0 rsvg-2.0 atspi-2.0
python-deps = gi gi-cairo dbus cairo telepathy dateutil decorator
depends = $(patsubst %,$(comma) python-%,$(python-deps))
depends +=, $(patsubst %,$(comma) gir1.2-%,$(gir-deps))
depends +=, gir1.2-sugarext-1.0 (>= $(DEB_VERSION))
depends +=, gir1.2-sugarext-1.0 (<< $(DEB_VERSION).1~)
depends-dev = $(pkg-gir) (= $(DEB_VERSION))
depends-gir = $(pkg-lib) (= $(DEB_VERSION))
recommends = unzip, telepathy-mission-control-5, alsa-utils
recommends +=, telepathy-salut, shared-mime-info
recommends +=, gir1.2-webkit2-4.0
recommends +=, gir1.2-webkit2-4.0 | gir1.2-webkit-3.0
recommends +=, gstreamer1.0-espeak, gstreamer1.0-plugins-good
suggests = git, ipython
suggests +=, python-jarabe, python-carquinyol
CDBS_BUILD_DEPENDS +=, $(bdeps)
CDBS_DEPENDS_$(pkg-python) +=, $(depends)
CDBS_DEPENDS_$(pkg-dev) = $(depends-dev)
CDBS_DEPENDS_$(pkg-gir) = $(depends-gir)
CDBS_RECOMMENDS_$(pkg-python) = $(recommends)
CDBS_SUGGESTS_$(pkg-python) = $(suggests)
# Multiarch quirks
DEB_CONFIGURE_EXTRA_FLAGS += --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)
# optimize linking
LDFLAGS += -Wl,-O1
# TODO: disallow undefined symbols
#LDFLAGS += -Wl,-z,defs
# link only when needed
LDFLAGS += -Wl,--as-needed
DEB_DH_INSTALL_ARGS_ALL = --autodest
DEB_DH_INSTALL_ARGS_$(pkg-python) = usr/bin usr/lib/python*
DEB_DH_INSTALL_ARGS_$(pkg-gir) = usr/lib/$(DEB_HOST_MULTIARCH)/girepository-1.0
DEB_DH_INSTALL_ARGS_$(pkg-data) = usr/share/locale
# Drop created dir if empty to please lintian
binary-post-install/$(pkg-data)::
rmdir --ignore-fail-on-non-empty --parents $(DEB_DESTDIR)/usr/share/locale
# Let d-shlibs calculate development package dependencies
# and handle shared library install
CDBS_BUILD_DEPENDS += , d-shlibs (>= 0.59~)
binary-post-install/$(pkg-lib):: debian/stamp-local-shlibs-$(lib)
# the --override s/libfribidi0-dev/libfribidi-dev/ below is needed to
# address https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895235
debian/stamp-local-shlibs-$(lib): binary-install/$(pkg-lib)
d-shlibmove --commit \
--multiarch \
--exclude-la --exclude-a \
--devunversioned --ignorelibdep \
--movedev debian/tmp/usr/share/gir-1.0 usr/share/ \
--extralib debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libsugar-eventcontroller.so \
--override s/libfribidi0-dev/libfribidi-dev/ \
debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/$(lib).so
touch $@
clean::
rm -f debian/stamp-local-shlibs-$(lib)
# Ensure proper hash-bang in Python script (Python Policy 0.9 ยง3.1)
# * TODO: drop cdbs_python_binary fallback when cdbs 0.5 is stable
binary-fixup/$(pkg-python)::
egrep -r -l -Z '^#! ?/usr/bin/(env )?python[[:print:]]*$$' \
debian/$(cdbs_curpkg)/usr/bin/* \
| xargs -r -0 perl -pi -e 's,^#! ?/usr/bin/(env )?python[[:print:]]*$$,#!/usr/bin/$(strip $(or $(cdbs_curpythonruntime),$(cdbs_python_binary))),'
# Fix favor ISO 639-1 when differing from ISO 639-2
binary-post-install/$(pkg-data)::
mv debian/$(cdbs_curpkg)/usr/share/locale/ibo \
debian/$(cdbs_curpkg)/usr/share/locale/ig
|