#!/usr/bin/make -f # -*- mode: makefile; coding: utf-8 -*- # Copyright 2007-2010, 2012, 2015-2018 Jonas Smedegaard # Description: Main Debian packaging script for sugar # # 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 . # These need to be declared/run before CDBS includes pkg-jarabe = python-jarabe pkg-session = sugar-session DEB_BUILDDIR = build DEB_PYTHON2_MODULE_PACKAGES = $(pkg-jarabe) $(pkg-session) include /usr/share/cdbs/1/class/python-autotools.mk include /usr/share/cdbs/1/rules/autoreconf.mk include /usr/share/cdbs/1/rules/debhelper.mk comma = , pkgbranch = $(subst $(space),.,$(wordlist 1, 2,$(subst .,$(space),$(DEB_UPSTREAM_VERSION)))) pkg-sucrose = sucrose # 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 # Suppress unneeded auto-resolved build-dependency on python-dev # * TODO: drop cdbs_python_binary fallback when cdbs 0.4.150 is stable CDBS_BUILD_DEPENDS_class_python-sugar_python = $(or $(cdbs_python2_defaultruntime),$(cdbs_python_binary)) # Needed by upstream build process bdeps = libgtk-3-dev, libglib2.0-dev bdeps +=, gettext, intltool, shared-mime-info # Needed for our packaging bdeps +=, python-empy # Core activities # https://wiki.sugarlabs.org/go/Development_Team/Release/Modules#Fructose fructose = chat browse read calculate log write terminal pippy etoys fructose += imageviewer jukebox turtleart # Core activities not in Debian main fructose-relax = etoys turtleart pkg-fructose = $(patsubst %,$(comma) sugar-%-activity,\ $(filter-out $(fructose-relax),$(fructose))) pkg-fructose-relaxed = $(patsubst %,$(comma) sugar-%-activity,\ $(fructose-relax)) # Needed (always/often/sometimes) at runtime # * Glucose (at least current branch) # * network-manager (NM_SERVICE) used in extensions and jarabe # + modemmanager (NM_DEVICE_TYPE_MODEM) used in extensions and jarabe # + avahi-autoipd (NM_802_11_MODE_ADHOC) used in jarabe # * dbus-session-bus (bus.get_object) used in bin/sugar-launch, bin/sugar-erase-bundle, exensions and jarabe # + python-carquinyol (org.laptop.sugar.DataStore) used in jarabe # + upower (org.freedesktop.UPower) used in extensions # + consolekit (org.freedesktop.ConsoleKit) # or systemd (org.freedesktop.login1) used in jarabe # + telepathy-mission-control-5 (ACCOUNT_MANAGER_SERVICE) used in jarabe # + ohmd (org.freedesktop.ohm) used in extensions jarabe # * metacity used in jarabe # * lsb-release (lsb_release) used in extensions # * tzdata (/usr/share/zoneinfo) used in extensions # * ethtool used in extensions # * openssh-client (ssh-keygen) used in jarabe # * olpc-powerd (/etc/powerd/flags) needed in extensions # * gdb used in bin/sugar-launch # * gvfs needed for GIO removable media support # * xdg-user-dirs (xdg-user-dir) used in jarabe # * fonts-dejavu-core (Sans Serif) used in data/sugar.schemas # * mobile-broadband-provider-info used in extensions # * policykit-1 (pkexec) used in jarabe.model.brightness # TODO: Tighten to recommend / depend on Maliit when mature # TODO: Drop dbus-x11 fallback after stretch+1 # Never needed at runtime (loaded only on OLPC distribution): # * jarabe view.viewhelp_webkit1 (GIR soup-2.4 webkit-3.0) python-depends-session = sugar3 jarabe dbus cairo gir-depends-session = glib-2.0 gtk-3.0 pango-1.0 xkl-1.0 gir-depends-session += gudev-1.0 upowerglib-1.0 nm-1.0 depends-session = $(patsubst %,$(comma) python-%,$(python-depends-session)) depends-session +=, $(patsubst %,$(comma) gir1.2-%,$(gir-depends-session)) depends-session +=, sugar-themes (>= $(pkgbranch)) python-depends-jarabe = sugar3 gwebsockets cairo dbus telepathy xapian gir-depends-jarabe = gdkpixbuf-2.0 glib-2.0 gtk-3.0 gtksource-3.0 gir-depends-jarabe += gstreamer-1.0 wnck-3.0 sugarext-1.0 pango-1.0 gir-depends-jarabe += xkl-1.0 webkit2-4.0 depends-jarabe = $(patsubst %,$(comma) python-%,$(python-depends-jarabe)) depends-jarabe +=, $(patsubst %,$(comma) gir1.2-%,$(gir-depends-jarabe)) depends-jarabe +=, metacity, policykit-1 recommends-session = lsb-release, network-manager, modemmanager, ethtool recommends-session +=, upower, gvfs, tzdata, fonts-dejavu-core recommends-session +=, default-dbus-session-bus | dbus-session-bus | dbus-x11 recommends-session +=, mobile-broadband-provider-info, telepathy-gabble, telepathy-salut recommends-session +=, $(pkg-fructose) recommends-jarabe = python-carquinyol recommends-jarabe +=, default-dbus-session-bus | dbus-session-bus | dbus-x11 recommends-jarabe +=, network-manager, modemmanager recommends-jarabe +=, avahi-autoipd, openssh-client, xdg-user-dirs recommends-jarabe +=, libpam-systemd | consolekit suggests-session = gdb-minimal | gdb, olpc-powerd suggests-toolkit = git, ipython, fonts-dejavu-extra suggests-activities = python-elements, csound, gstreamer1.0-plugins-bad suggests-activities +=, gstreamer1.0-plugins-ugly, gstreamer1.0-libav suggests-fructose +=, python-gst0.10, gstreamer0.10-plugins-base suggests-fructose +=, gstreamer0.10-plugins-good suggests-session-weak = gir1.2-maliit-1.0, maliit-keyboard suggests-session-only = $(suggests-session-weak), $(pkg-sucrose) suggests-session-only +=, $(pkg-fructose-relaxed) suggests-jarabe-only = $(pkg-session) # Tighten relations in Sucrose metapackage: # * Depend on Glucose (at least current branch) # * Depend on Fructose # * Recommend non-Sugar helper parts # * Suggest deprecated Glucose parts # * Re-suggest weak parts (contrib/non-free/missing) depends-sucrose = $(pkg-session) depends-sucrose +=, python-carquinyol depends-sucrose +=, $(pkg-fructose) recommends-sucrose = $(suggests-session), $(suggests-toolkit) recommends-sucrose +=, $(suggests-activities) suggests-sucrose = $(suggests-fructose), $(suggests-session-weak) suggests-sucrose +=, $(pkg-fructose-relaxed) suggests-sucrose +=, python-sugar-toolkit suggests-sucrose +=, python-sugar suggests-sucrose +=, gtk2-engines-sugar (>= $(pkgbranch)) CDBS_BUILD_DEPENDS +=, $(bdeps) CDBS_DEPENDS_$(pkg-session) = $(depends-session) CDBS_DEPENDS_$(pkg-jarabe) = $(depends-jarabe) CDBS_DEPENDS_$(pkg-sucrose) = $(depends-sucrose) CDBS_RECOMMENDS_$(pkg-session) = $(recommends-session) CDBS_RECOMMENDS_$(pkg-jarabe) = $(recommends-jarabe) CDBS_RECOMMENDS_$(pkg-sucrose) = $(recommends-sucrose) CDBS_SUGGESTS_$(pkg-session) = $(suggests-session) CDBS_SUGGESTS_$(pkg-session) +=, $(suggests-session-only) CDBS_SUGGESTS_$(pkg-jarabe) = $(suggests-jarabe-only) CDBS_SUGGESTS_$(pkg-sucrose) = $(suggests-sucrose) # Provide virtual sugar package to ease install # Provide virtual x-session-manager package to avoid pulling in gnome-session CDBS_PROVIDES_$(pkg-session) +=, sugar, x-session-manager # Provide virtual notification-daemon package CDBS_PROVIDES_$(pkg-jarabe) +=, notification-daemon DEB_PYTHON_PRIVATE_MODULES_DIRS = /usr/share/sugar # Fix favor ISO 639-1 when differing from ISO 639-2 binary-post-install/$(pkg-session):: mv debian/$(cdbs_curpkg)/usr/share/locale/ibo \ debian/$(cdbs_curpkg)/usr/share/locale/ig # Ensure optimal hash-bang + dependency for scripts (see Python Policy) # * TODO: drop cdbs_python_binary fallback when cdbs 0.4.150 is stable CDBS_DEPENDS_$(pkg-session) +=, python binary-fixup/$(pkg-session):: 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))),'