diff options
Diffstat (limited to '')
-rwxr-xr-x | debian/rules | 3913 |
1 files changed, 3913 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 000000000..7d8604c15 --- /dev/null +++ b/debian/rules @@ -0,0 +1,3913 @@ +#!/usr/bin/make -f +################################################################################ +# LibreOffice source package rules file +# +# Please see debian/README for detailed documentation about the build system, and +# how to build LibreOffice. +################################################################################ +# Authors: +# Chris Halls <halls@debian.org> +# Rene Engelhard <rene@debian.org> +# Copyright 2002-2015 Software in the Public Interest, Inc. +# Portions Copyright 2010 Canonical Ltd. Author: Matthias Klose +# Portions Copyright 2011-2013 Canonical Ltd. Author: Bjoern Michaelsen +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>. +################################################################################ + +vafilt = $(subst $(2)=,,$(filter $(2)=%,$(1))) + +include /usr/share/dpkg/pkg-info.mk +CURDIR ?= $(realpath $(dir $(firstword $(MAKEFILE_LIST)))/..) +BASE_VERSION:=$(shell echo $(DEB_VERSION) | cut -d: -f1):$(DEB_VERSION_UPSTREAM) +BINARY_VERSION=$(DEB_VERSION) +#HELP_L10N_VIRTUAL_VERSION:=$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d: -f2 | tr [~] [\\-]) +HELP_L10N_VIRTUAL_VERSION:=7.0 +OOVER:=7.0 +NEXT_OOVER:=$(shell echo "$(OOVER) + 0.1" | bc) + +ARCH_INDEP_PACKAGES := $(shell dh_listpackages -i) +ARCH_DEP_PACKAGES := $(shell dh_listpackages -a) +PACKAGES := $(ARCH_INDEP_PACKAGES) $(ARCH_DEP_PACKAGES) + +include /usr/share/dpkg/architecture.mk +include /usr/share/dpkg/vendor.mk +SHELL:=/bin/bash + +#SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n '/^gcc/s/.*\(.\..\)\..$$/\1/p') +#FIXME +SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n '/^gcc/s/.*\(.\..\)\../\1/p' | cut -d" " -f1) +ifeq "$(shell echo $(SYSTEM_GCC_VERSION) | cut -d. -f1)" "0" # gcc 10+ (0.0, 0.1, 0.2 etc.) +SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n '/^gcc/s/.*\(..\..\)\../\1/p' | cut -d" " -f1) +endif + +PKGDIR:=debian/libreoffice +OODIRNAME=libreoffice +OODIR:=usr/lib/$(OODIRNAME) +OOSDKDIR:=$(OODIR)/sdk + +# Figure out who's building this package. +ifneq "$(DEB_VENDOR)" "Debian" +OOO_VENDOR:=The Document Foundation, $(DEB_PARENT_VENDOR) and $(DEB_VENDOR) +else +OOO_VENDOR=The Document Foundation/$(DEB_VENDOR) +endif +export OOO_VENDOR + +# debhelper +export DH_OPTIONS +export DH_ALWAYS_EXCLUDE=CVS:.svn:.bzr:.git +#export DH_VERBOSE=1 +# quilt +export QUILT_PATCHES=debian/patches +export QUILT_OPTIONS="-p1 -F0" + +SOURCE_TREE=. +STAMP_DIR=debian/stampdir +TARFILE_LOCATION=$(CURDIR)/tarballs +export TARFILE_LOCATION +USE_SOURCE_TARBALLS=y +USE_GIT_TARBALLS=n +ifeq "$(USE_GIT_TARBALLS)" "y" +GIT_BASEURL:=git://anongit.freedesktop.org/libreoffice +lo_sources_ver=$(shell grep AC_INIT $(SOURCE_TREE)/configure.ac | grep documentfoundation | cut -d, -f2 | sed -e 's,\[,,' -e 's,\],,') +# NOT in proper libreoffice-3-6 branch +# use ./g checkout -b tag-libreoffice-3.6.2.1 libreoffice-3.6.2.1 +GIT_TAG=libreoffice-$(lo_sources_ver) +GIT_BRANCH=libreoffice-7-0-4 +endif +ifeq "$(USE_SOURCE_TARBALLS)" "y" +lo_sources_ver=$(shell cat $(CURDIR)/sources.ver | cut -d= -f2) +endif + +######### +# Default package configuration +# +OOO_ARCHS = alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +PATCHSET=$(DEB_VENDOR) +BUILD_DEPS=\ + autoconf,\ + automake,\ + bc,\ + bison,\ + bzip2,\ + flex (>= 2.3.35), \ + fontforge-nox | fontforge, \ + gperf (>= 3.1),\ + libc0.1 (>= 2.10.2-7) [kfreebsd-any],\ + libfontconfig1-dev,\ + libfreetype6-dev (>= 2.2.0),\ + pkg-config,\ + unzip,\ + xsltproc,\ + zip,\ + zlib1g-dev\ + +BUILD_DEPS_INDEP += rdfind, symlinks + +# These are components which can be built from internal copies, or used from the +# distribution. See configure --help for valid values (--with-system-<value>). +SYSTEM_STUFF = dicts + +ENABLE_GUI=y + +ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),) +ENABLE_PYTHON=y +ifeq "$(ENABLE_PYTHON)" "y" + CONFIGURE_FLAGS += --enable-python=system + ENABLE_SCRIPT_PROVIDER_PYTHON=y + PACKAGE_LIBRELOGO=y +endif +# THIS IS ONLY FOR TESTING. When building against a specified pythonX.Y +# this will work inside OOo but *not* from outside OOo unless the user +# uses pythonX.Y directly (and the dh_pycentral-created dependencies allow +# also the non-working default python then) - see e.g. #587402. Also +# note we are NOT working with python < 2.6 anymore! +PYTHON_VERSION=current +ifeq "$(PYTHON_VERSION)" "current" + PYTHON=python3 + export PYTHON +else + # somehow configure insists on using python3 "for pyuno". The only way to + # override this (afaics) is this... + PYTHON=python$(PYTHON_VERSION) + PYTHON_CFLAGS=$(shell pkg-config --cflags python-$(PYTHON_VERSION)) + PYTHON_LIBS=$(shell pkg-config --libs python-$(PYTHON_VERSION)) + export PYTHON PYTHON_VERSION PYTHON_CFLAGS PYTHON_LIBS +endif +endif +BUILD_ONLY_EN_US=n +ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),) + ENABLE_JAVA=y + ifeq "$(ENABLE_JAVA)" "y" + JDK=default + include /usr/share/java/java_defaults.mk + ifneq "$(JDK)" "default" + JAVA_MAINVER=7 + endif + endif +else + ENABLE_JAVA=n +endif +JAVAHELPER_MIN_VERSION= (>= 0.37~) +SYSTEM_STUFF += hunspell +SYSTEM_STUFF += altlinuxhyph +SYSTEM_STUFF += boost +BOOST_VERSION=default +ifeq "$(BOOST_VERSION)" "default" + BOOST_MINVER= (>= 1.66) + ifeq "$(shell dpkg --compare-versions $(SYSTEM_GCC_VERSION) gt 10 && echo true)" "true" + BOOST_MINVER= (>= 1.71) + endif +endif +# libmdds-dev depends on libboost-dev, which will be removed +# when you install a non-default libboostX.Y-dev +ifeq "$(BOOST_VERSION)" "default" +SYSTEM_STUFF += mdds +endif +USE_EXTERNAL_CXXLIBS=y +SYSTEM_STUFF += mythes +SYSTEM_STUFF += icu +SYSTEM_STUFF += librevenge +SYSTEM_STUFF += libwpd libwpg libwps +SYSTEM_STUFF += libvisio +SYSTEM_STUFF += libcdr +SYSTEM_STUFF += libmspub +SYSTEM_STUFF += libmwaw +SYSTEM_STUFF += libodfgen +SYSTEM_STUFF += libepubgen +SYSTEM_STUFF += libetonyek +SYSTEM_STUFF += libfreehand +# this is libe-book, NOT evolutions libebook (which is +# dlopen()'ed anyway and whose headers we need from the +# system anyways if enabled +SYSTEM_STUFF += libebook +SYSTEM_STUFF += libabw +SYSTEM_STUFF += libpagemaker +SYSTEM_STUFF += libzmf +SYSTEM_STUFF += libstaroffice +SYSTEM_STUFF += libqxp +ENABLE_QRCODEGEN=y +SYSTEM_STUFF += qrcodegen +BUILD_CAIROCANVAS=y +SYSTEM_STUFF += cairo +ifeq "$(ENABLE_GUI)" "y" +BUILD_PLASMA=y +ENABLE_QT5=n +QT5_MINVER= (>= 5.6) +endif +ifeq "$(BUILD_PLASMA)" "y" + ENABLE_KF5=y + # KF5 depends on Qt5 + ifeq "$(ENABLE_KF5)" "y" + ENABLE_QT5=y + KF5_QT5_DEPENDS := libreoffice-qt5 (= $${binary:Version}) + endif +endif +# https://www.debian.org/doc/debian-policy/ says this is not defined and must +# be ignored, but dh_strip mentions (and honours) it, so... +ifneq (noautodbgsym,$(findstring noautodbgsym,$(DEB_BUILD_OPTIONS))) +BUILD_DBGSYM_PACKAGES=y +ifeq "$(DEB_HOST_ARCH)" "amd64" +USE_DWZ=y +DWZ_ARGS:=-L 100000000 +endif +endif +SYSTEM_STUFF += xmlsec + +ifeq ($(filter noinsttest,$(DEB_BUILD_PROFILES)),) + # this changes the packages built/contents of packages (-subsequentcheckbase) + # This is not exactly allowed in https://wiki.debian.org/BuildProfileSpec#Registered_profile_names + # but it doesn't have real practical difference, does it? + ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + BUILD_TEST_PACKAGES=y + endif +endif + +ifneq ($(MAKECMDGOALS),build-indep) +ENABLE_SYMBOLS=y +SMALL_SYMBOLS=y +endif +ifeq ($(MAKECMDGOALS),build-indep) +# no need to do a double build... +BUILD_NOGUI_PACKAGES=n +endif + +ifeq "$(ENABLE_JAVA)" "y" + SYSTEM_STUFF += beanshell + SYSTEM_STUFF += hsqldb +endif +SYSTEM_STUFF += lpsolve +USE_SHARED_LPSOLVE=y +LPSOLVE_MIN_VERSION= (>= 5.5.0.13-5+b1) +ENABLE_COINMP=y +SYSTEM_STUFF += coinmp +USE_DBUS=y +ifeq "$(USE_DBUS)" "y" + ifeq (,$(findstring linux,$(DEB_HOST_ARCH_OS))) + ENABLE_BLUETOOTH=n + else + ENABLE_BLUETOOTH=y + SYSTEM_STUFF += bluez + endif + ENABLE_PACKAGEKIT=n +endif +ENABLE_AVAHI=y +ifeq "$(ENABLE_GUI)" "y" +USE_GSTREAMER=y +endif +ENABLE_WEBDAV=y +ifeq "$(ENABLE_WEBDAV)" "y" +WEBDAV_LIB=neon + ifeq "$(WEBDAV_LIB)" "neon" + SYSTEM_STUFF += neon + NEON_SECTYPE=gnutls + NEONSONR=27 + else + SYSTEM_STUFF += apr + SYSTEM_STUFF += serf + endif +endif +SYSTEM_STUFF += redland +PACKAGE_SDK=y +ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),) +PACKAGE_SDK_DOCS=n +else +PACKAGE_SDK_DOCS=y +endif +PACKAGE_LOKIT=y +ENABLE_CHART_TESTS=n +# will not work, uses schema/ stripped in the tarballs +ifeq "$(USE_SOURCE_TARBALLS)" "y" +ENABLE_EXPORT_VALIDATION_TESTS=n +endif +JUNIT_MIN_VER= (>= 4.8.2-2) +CURL_SECTYPE=gnutls +USE_LIBSUITESPARSE=y +SUITESPARSE_MIN_VERSION= (>= 1:3.4.0) +PARALLEL_BUILD=y +ENABLE_LDAP=y +SYSTEM_STUFF += openldap +SYSTEM_STUFF += epoxy +ifeq "$(ENABLE_JAVA)" "y" + ENABLE_REPORTBUILDER=y + SYSTEM_STUFF += jfreereport + ENABLE_MEDIAWIKI=y + SYSTEM_STUFF += apache-commons + ENABLE_SCRIPT_PROVIDER_BSH=y + ENABLE_SCRIPT_PROVIDER_JS=y + ENABLE_NLPSOLVER=y +else + ENABLE_REPORTBUILDER=n + ENABLE_MEDIAWIKI=n + ENABLE_SCRIPT_PROVIDER_BSH=n + ENABLE_SCRIPT_PROVIDER_JS=n + ENABLE_NLPSOLVER=n +endif +ENABLE_SDBC_POSTGRESQL=y +ifeq "$(ENABLE_GUI)" "y" +BUILD_GTK3=y + # introspection needs GTK3 + ifeq "$(BUILD_GTK3)" "y" + ENABLE_INTROSPECTION=y + endif +endif +ENABLE_EVO2=y +ENABLE_GIO=y +ENABLE_DCONF=y +ENABLE_RANDR=y +PACKAGE_BASE=y +SYSTEM_STUFF += graphite +SYSTEM_STUFF += harfbuzz +SYSTEM_STUFF += libexttextcat +SYSTEM_STUFF += cppunit +DEFAULT_IMAGE=colibre +IMAGES:=$(DEFAULT_IMAGE) sifr sifr_dark sifr_dark_svg breeze breeze_dark breeze_dark_svg breeze_svg elementary elementary_svg karasa_jaga sukapura sukapura_svg +# FIXME +IMAGES_PACKAGES=$(subst _,-,$(filter-out sukapura_svg,$(filter-out sifr_dark_svg,$(filter-out breeze_dark_svg,$(filter-out sifr_dark,$(filter-out breeze_dark,$(filter-out breeze_svg,$(filter-out elementary_svg,$(IMAGES))))))))) +CONFIGURE_FLAGS_INDEP += --with-theme="$(IMAGES)" +MYSQL_FLAVOUR=mariadb +# set this also to y for system-mysql.. +SYSTEM_STUFF += mariadb +SYSTEM_STUFF += postgresql +DICT_DIR=/usr/share/hunspell +HYPH_DIR=/usr/share/hyphen +THES_DIR=/usr/share/mythes +SYSTEM_STUFF += libcmis +SYSTEM_STUFF += jpeg +SYSTEM_STUFF += libxml +SYSTEM_STUFF += expat +SYSTEM_STUFF += odbc +SYSTEM_STUFF += curl +SYSTEM_STUFF += sane +ENABLE_PDFIMPORT=y +ENABLE_POPPLER=y +SYSTEM_STUFF += poppler +ENABLE_PDFIUM=y +ifneq (big,$(DEB_HOST_ARCH_ENDIAN)) +ENABLE_SKIA=y +endif +SYSTEM_STUFF += libpng +SYSTEM_STUFF += nss +ENABLE_HELP=y +ifeq "$(ENABLE_HELP)" "y" + ENABLE_HTML_HELP=y + ifeq "$(ENABLE_HTML_HELP)" "y" + HELP_DEPENDS := libreoffice-help-common (= $${binary:Version}), firefox-esr | epiphany-browser | konqueror | chromium | firefox + HELP_COMMON_DEPENDS := libjs-normalize.css + else + HELP_DEPENDS := libreoffice-writer + DEBHELPER_OPTIONS += -Nlibreoffice-help-common + endif + SYSTEM_STUFF += clucene +endif +SYSTEM_STUFF += lcms2 +# this violates the requirement that nowindows should not change the +# package contents (-dev-common here) but a extra package for this +# is too much overhead (especially since this .dll will be gone +# in LO 7.2 anyway.) +ifeq ($(filter nowindows,$(DEB_BUILD_PROFILES)),) + PACKAGE_UNOWINREG_DLL=y + ifeq "$(DEB_VENDOR)" "Debian" + BUILD_UNOWINREG_DLL=y + endif +endif +SYSTEM_STUFF += liblangtag +SYSTEM_STUFF += orcus +USE_UCPP=y +ifeq "$(USE_UCPP)" "y" + SYSTEM_STUFF += ucpp +endif +# kfreebsd runs into SIZE_MAX problems, and the rest might +# get OOM (mips(el)...) so enable mergelibs only for 64bit +# archs +ifeq (,$(filter kfreebsd,$(DEB_HOST_ARCH))) + ifeq "$(DEB_HOST_ARCH_BITS)" "64" + ENABLE_MERGELIBS=y + endif +endif +#ifeq "$(ENABLE_MERGELIBS)" "y" +# ENABLE_LTO=y +#else + ENABLE_LTO=n +#endif +USE_OPENCL=y +ENABLE_FIREBIRD=y +ifeq "$(ENABLE_FIREBIRD)" "y" + SYSTEM_STUFF += firebird + ifeq (,$(filter firebird, $(SYSTEM_STUFF))) + SYSTEM_STUFF += libatomic-ops + SYSTEM_STUFF += libtommath + endif +endif +ENABLE_EOT=y +ifeq "$(ENABLE_EOT)" "y" +SYSTEM_STUFF += libeot +endif +SYSTEM_STUFF += glm +BUILD_PPC64EL=y +BUILD_ARM64=y +SYSTEM_STUFF += gpgmepp +INSTALL_APPARMOR_PROFILES=y +ENABLE_APPARMOR_PROFILES=y +CHECK_APPARMOR_PROFILES=true +ENABLE_LIBNUMBERTEXT=y +SYSTEM_STUFF += libnumbertext + +# Default flags to pass to configure +CONFIGURE_FLAGS+= \ + --with-vendor='$(OOO_VENDOR)' \ + --with-extra-buildid='$(DEB_VENDOR) package version: $(DEB_VERSION)' \ + --prefix=/usr --mandir=/usr/share/man \ + --docdir=/usr/share/doc/libreoffice \ + --libdir=/usr/lib \ + --bindir=/usr/bin \ + --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ + --disable-online-update \ + --disable-fetch-external \ + --without-fonts --enable-build-opensymbol \ + --without-myspell-dicts \ + --with-branding=$(CURDIR)/debian/branding + +ifeq "$(ENABLE_GUI)" "y" +BUILD_DEPS += ,\ + libcups2-dev,\ + libgl-dev,\ + libice-dev,\ + libsm-dev,\ + libx11-dev,\ + libx11-xcb-dev, \ + libxaw7-dev,\ + libxext-dev,\ + libxinerama-dev,\ + libxkbfile-dev,\ + libxrender-dev,\ + libxt-dev,\ + libxtst-dev,\ + x11proto-render-dev +endif + +ifeq "$(ENABLE_HELP)" "y" +CONFIGURE_FLAGS_INDEP+= --with-help + ifeq "$(ENABLE_HTML_HELP)" "y" + CONFIGURE_FLAGS_INDEP+= --with-help=html + endif +endif + +ifeq "$(shell echo $(DEB_VERSION_UPSTREAM) | grep -E '(alpha|beta)'; echo $$?)" "1" +CONFIGURE_FLAGS += --enable-release-build +RELEASE_BUILD := y +endif + +ifeq "$(DEB_DISTRIBUTION)" "UNRELEASED" +BUGS=mailto:debian-openoffice@lists.debian.org +endif + +ifneq (terse,$(findstring terse,$(DEB_BUILD_OPTIONS))) +export verbose=t +endif + +############# +# Architecture-specific changes + +# helper to generate no_archs macros (pass name of source macro) +define gen_no_archs + _no_arch_macro = $(subst OOO_,OOO_NO_,$1) + _no_arch_tmp_$1 = $$(foreach _a,$$(filter-out $$(call $1),$(OOO_ARCHS)),!$$(_a)) + $$(_no_arch_macro) = $$(if $$(_no_arch_tmp_$1),$$(_empty) [$$(_no_arch_tmp_$1)]) +endef + +PLATFORMID := $(shell grep PLATFORMID debian/vars.$(DEB_HOST_ARCH) | cut -d"=" -f2) + + +OOO_64BIT_ARCHS = $(filter alpha amd64 arm64 ia64 kfreebsd-amd64 mips64 mips64el ppc64 ppc64el s390x sparc64, $(OOO_ARCHS)) +$(eval $(call gen_no_archs,OOO_64BIT_ARCHS)) +OOO_BE_ARCHS = $(filter hppa m68k mips mips64 powerpc powerpcspe ppc64 s390 s390x sparc sparc64,$(OOO_ARCHS)) +OOO_LE_ARCHS = $(filter-out $(OOO_BE_ARCHS),$(OOO_ARCHS)) +$(eval $(call gen_no_archs,OOO_LE_ARCHS)) + +OOO_CHECK_ARCHS := $(filter-out kfreebsd-i386 kfreebsd-amd64 mips mipsel mips64el armel,$(OOO_ARCHS)) +$(eval $(call gen_no_archs,OOO_CHECK_ARCHS)) +#OOO_JUNIT_ARCHS := i386 amd64 armhf arm64 +OOO_JUNIT_ARCHS := amd64 arm64 +$(eval $(call gen_no_archs,OOO_JUNIT_ARCHS)) +#OOO_CHECK_FATAL_ARCHS := i386 amd64 armhf arm64 +OOO_CHECK_FATAL_ARCHS := amd64 arm64 + +RUN_MAKE_CHECK=n +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CHECK_ARCHS))) + RUN_MAKE_CHECK=y + endif + ifeq "$(ENABLE_JAVA)" "y" + ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_JUNIT_ARCHS))) + ENABLE_JUNIT4=y + endif + endif + IGNORE_MAKE_CHECK_FAILURES=- + ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CHECK_FATAL_ARCHS))) + IGNORE_MAKE_CHECK_FAILURES:= + endif +endif + +# Java... +ifeq "$(JDK)" "default" +OOO_JAVA_ARCHS = $(filter $(OOO_ARCHS),$(java6_architectures)) +else +OOO_JAVA_ARCHS = $(OOO_ARCHS) +endif +$(eval $(call gen_no_archs,OOO_JAVA_ARCHS)) + +OOO_ARCH_DEP_EXTENSIONS_ARCHS := $(OOO_ARCHS) +OOO_EXTENSIONS_ARCHS := $(OOO_ARCH_DEP_EXTENSIONS_ARCHS) + +OOO_BASE_ARCHS := $(OOO_JAVA_ARCHS) +$(eval $(call gen_no_archs,OOO_BASE_ARCHS)) +OOO_REPORTBUILDER_ARCHS := $(OOO_BASE_ARCHS) +$(eval $(call gen_no_archs,OOO_REPORTBUILDER_ARCHS)) +OOO_FIREBIRD_ARCHS := $(OOO_BASE_ARCHS) +$(eval $(call gen_no_archs,OOO_FIREBIRD_ARCHS)) +OOO_NOGUI_ARCHS := amd64 i386 arm64 armhf s390x ppc64 ppc64el +$(eval $(call gen_no_archs,OOO_NOGUI_ARCHS)) + +ifneq (,$(filter $(DEB_HOST_ARCH),$(OOO_NO_BASE_ARCHS))) + ifneq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_BASE_ARCHS))) + PACKAGE_BASE=n + ENABLE_SDBC_POSTGRESQL=n + ENABLE_EVO2=n + ENABLE_REPORTBUILDER=n + DEBHELPER_OPTIONS += -Nlibreoffice-base libreoffice-base-core -Nlibreoffice-base-drivers + DEBHELPER_OPTIONS += -Nlibreoffice-evolution + DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-postgresql -Nlibreoffice-sdbc-mysql + DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-hsqldb -Nlibreoffice-sdbc-firebird + DEBHELPER_OPTIONS += -Nlibreoffice-report-builder-bin -Nlibreoffice-report-builder + DEBHELPER_OPTIONS += -Npython3-access2base +# CONFIGURE_FLAGS += --disable-database-connectivity + endif +endif + +ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS))) + ENABLE_MEDIAWIKI=n + ENABLE_NLPSOLVER=n + DEBHELPER_OPTIONS += -Nlibreoffice-wiki-publisher -Nlibreoffice-script-provider-python -Nlibreoffice-nlpsolver + CONFIGURE_FLAGS += --disable-extension-integration --disable-extensions +else + CONFIGURE_FLAGS += --enable-extension-integration +endif + +ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_JAVA_ARCHS))) + ENABLE_JAVA=n + ENABLE_REPORTBUILDER=n + ENABLE_MEDIAWIKI=n + ENABLE_NLPSOLVER=n +endif + +ifneq "$(BUILD_TEST_PACKAGES)" "y" + DEBHELPER_OPTIONS += -Nlibreoffice-subsequentcheckbase -Nlibreoffice-smoketest-data +endif + +ifeq "$(ENABLE_GUI)" "y" + ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_NOGUI_ARCHS))) + BUILD_NOGUI_PACKAGES=y + endif +else +CONFIGURE_FLAGS += --disable-gui +DEBHELPER_OPTIONS += -Nlibreoffice-core -Nlibreoffice-calc -Nlibreoffice-writer -Nlibreoffice-draw -Nlibreoffice-report-builder-bin -Nlibreoffice-base -Nlibreoffice-impress -Nlibreoffice-math +# transitional package.. +DEBHELPER_OPTIONS += -Nlibreoffice-kde5 +endif +ifneq "$(BUILD_NOGUI_PACKAGES)" "y" +DEBHELPER_OPTIONS += -Nlibreoffice-core-nogui -Nlibreoffice-calc-nogui -Nlibreoffice-writer-nogui -Nlibreoffice-draw-nogui -Nlibreoffice-report-builder-bin-nogui -Nlibreoffice-base-nogui -Nlibreoffice-impress-nogui -Nlibreoffice-math-nogui +endif + +############# +# Distro-specific overrides + +# Debian Buster +ifeq "$(DEB_DISTRIBUTION)" "buster-backports" + BUGS=mailto:debian-backports@lists.debian.org + SYSTEM_STUFF := $(filter-out libmwaw xmlsec mdds orcus libnumbertext,$(SYSTEM_STUFF)) + USE_DWZ := n + BUSTER_BACKPORT=y +endif + +CONFIGURE_FLAGS += $(foreach i, $(SYSTEM_STUFF),--with-system-$(i)) + +CC_PREFIX:=$(shell gcc -dumpmachine)- + +# generally use clang +USE_CLANG=n +# allow clang for skia? +ALLOW_CLANG=y + +CLANG_VERSION=default + +ifeq "$(USE_CLANG)" "y" + ENABLE_COMPILER_PLUGINS=n +endif + +ifneq "$(USE_CLANG)" "y" + ifneq "$(GCC_VERSION)" "" + ifneq "$(SYSTEM_GCC_VERSION)" "$(GCC_VERSION)" + BUILD_DEPS += , gcc-$(GCC_VERSION), g++-$(GCC_VERSION) + CONFIGURE_FLAGS+= \ + CC=$(CC_PREFIX)gcc-$(GCC_VERSION) \ + CXX=$(CC_PREFIX)g++-$(GCC_VERSION) + endif + endif + BUILD_DEPS += , gcc (>= 4:7), g++ (>= 4:7) + # Use -O0 for gcc 10 on armhf to avoid build/test failure with gcc 10 + # https://bugs.launchpad.net/ubuntu/+bug/1891623 + # In Debian this never appeared to be an actual build failure but + # this also helps for the test timeout on armv8 machines/buildds. + # (armv7 "works"). So make it conditional on whether we run checks. + # With g++-10 there also appear SIGSEGVs in/with openjdk-11 and it + # hangs at RunMacros, which also tries to use Java "Macros". + # A --without-java build passes. +ifeq "$(DEB_HOST_ARCH)" "armhf" + ifeq "$(shell dpkg --compare-versions $(SYSTEM_GCC_VERSION) gt 10 && echo true)" "true" + ifeq ($(ENABLE_JAVA),y) + ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + ifneq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + DEB_BUILD_OPTIONS += noopt + endif + endif + endif + endif +endif + # skia build picks up clang if present (for performance reasons, + # at least on Windows...). See the thread starting at + # https://lists.freedesktop.org/archives/libreoffice/2020-April/084929.html + # Make it a explicit build-dependency so we don't have builds + # "randomly" using gcc or clang depending on whether clang is installed + # or not + ifeq (armel,$(findstring armel,$(DEB_HOST_ARCH))) + # there is no clang 11 on buster, obviously and this also fails to build with gcc 7 in buster + ifeq "$(BUSTER_BACKPORT)" "y" + ENABLE_SKIA=n + endif + endif + ifeq "$(ENABLE_SKIA)" "y" + ifeq "$(ALLOW_CLANG)" "y" + ifeq (ccache,$(findstring ccache,$(DEB_BUILD_OPTIONS))) + export CCACHE_CPP2=1 + endif + ifeq "$(CLANG_VERSION)" "default" + BUILD_DEPS += , clang (>= 1:5.0.2) [$(filter-out armel,$(OOO_LE_ARCHS))] + ifneq "$(BUSTER_BACKPORT)" "y" + # see #963162, #963167 which apparently don't exist on 11 + BUILD_DEPS += , clang (>= 1:11) [armel] + endif + else + export CLANG_CC=clang-$(CLANG_VERSION) + export CLANG_CXX=clang++-$(CLANG_VERSION) + BUILD_DEPS += , clang-$(CLANG_VERSION) [$(OOO_LE_ARCHS)] + endif + endif + endif +else + ifeq "$(CLANG_VERSION)" "default" + BUILD_DEPS += , clang (>= 1:5.0.2) + CONFIGURE_FLAGS+= CC=clang CXX=clang++ + else + BUILD_DEPS += , clang-$(CLANG_VERSION) + CONFIGURE_FLAGS+= CC=clang-$(CLANG_VERSION) CXX=clang++-$(CLANG_VERSION) + endif + ifeq "$(ENABLE_COMPILER_PLUGINS)" "y" + CONFIGURE_FLAGS += --enable-compiler-plugins + CLANGDIR := /usr/lib/llvm-$(shell $(CLANG) --version | head -n 1 | awk '{ print $$3 }' | cut -d. -f1) + ifeq "$(CLANG_VERSION)" "default" + BUILD_DEPS += , libclang-dev, llvm-dev + else + BUILD_DEPS += , libclang-$(CLANG_VERSION)-dev, llvm-$(CLANG_VERSION)-dev + endif + endif +endif +USE_GOLD=n +# leaves cruft around after building because it runs update_pch.sh.. +ENABLE_PCH=n + +ifeq "$(USE_DWZ)" "y" + BUILD_DEPS += , debhelper (>= 10.10.4) + # dwz 0.12-3 claims to have DW_OP_GNU support but still + # dwz: debian/libreoffice-core/usr/lib/libreoffice/program/libmergedlo.so: Couldn't find DIE referenced by DW_OP_GNU_parameter_ref + # happens + BUILD_DEPS += , dwz (>> 0.12-3) +endif + +ifneq "$(PACKAGE_SDK)" "y" + CONFIGURE_FLAGS += --disable-odk + ifneq "$(PACKAGE_SDK_DOCS)" "y" + CONFIGURE_FLAGS += --without-doxygen --without-javadoc + endif +else + ifeq "$(PACKAGE_SDK_DOCS)" "y" + BUILD_DEPS_INDEP += , doxygen (>= 1.8.4) <!nodoc>, graphviz <!nodoc> + else + CONFIGURE_FLAGS += --without-doxygen --without-javadoc + endif +endif + +ifeq "$(ENABLE_PDFIMPORT)" "y" + ifeq "$(ENABLE_POPPLER)" "y" + BUILD_DEPS += , libpoppler-dev (>= 0.12.0), libpoppler-private-dev, libpoppler-cpp-dev + else + CONFIGURE_FLAGS += --disable-poppler + endif + ifeq "$(ENABLE_PDFIUM)" "n" + CONFIGURE_FLAGS += --disable-pdfium + endif +endif + +ifneq (,$(filter graphite, $(SYSTEM_STUFF))) + BUILD_DEPS += , libgraphite2-dev (>= 0.9.3) +endif + +ifneq (,$(filter harfbuzz, $(SYSTEM_STUFF))) + BUILD_DEPS += , libharfbuzz-dev (>= 0.9.42) +endif + +ifneq (,$(filter libexttextcat, $(SYSTEM_STUFF))) + BUILD_DEPS += , libexttextcat-dev (>= 3.4.1) + TEXTCAT_DATA_RECOMMENDS := libexttextcat-data +endif + +ifneq "$(ENABLE_LDAP)" "y" + CONFIGURE_FLAGS += --disable-ldap +endif + +ifeq "$(ENABLE_LIBNUMBERTEXT)" "y" + ifneq (,$(filter libnumbertext, $(SYSTEM_STUFF))) + BUILD_DEPS += , libnumbertext-dev (>= 1.0.6) + NUMBERTEXT_DATA_RECOMMENDS := libnumbertext-data + endif +else + CONFIGURE_FLAGS += --disable-libnumbertext +endif + +ifneq (,$(filter jpeg, $(SYSTEM_STUFF))) + BUILD_DEPS += , libjpeg-dev +endif +ifneq (,$(filter libxml, $(SYSTEM_STUFF))) + BUILD_DEPS += , libxml2-dev (>= 2.8), libxml2-utils + BUILD_DEPS += , libxslt1-dev +else + CONFIGURE_FLAGS += --without-system-libxml +endif +ifneq (,$(filter xmlsec, $(SYSTEM_STUFF))) + BUILD_DEPS += , libxmlsec1-dev (>= 1.2.28) +endif +ifneq (,$(filter expat, $(SYSTEM_STUFF))) + BUILD_DEPS += , libexpat1-dev +endif +ifneq (,$(filter odbc, $(SYSTEM_STUFF))) + BUILD_DEPS += , unixodbc-dev (>= 2.2.11) +endif +ifneq (,$(filter sane, $(SYSTEM_STUFF))) + BUILD_DEPS += , libsane-dev +endif +ifneq (,$(filter libpng, $(SYSTEM_STUFF))) + BUILD_DEPS += , libpng-dev +endif + +ifneq (,$(filter curl, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcurl4-$(CURL_SECTYPE)-dev +endif + +COINMP_MINVER=(>= 1.7.6+dfsg1-2) + COINUTILS_MINVER=(>= 2.10.14+repack1-1) + # go sure given #873362 + COINMP_MINVER=(>= 1.8.3-3) +ifneq ($(ENABLE_COINMP),y) + CONFIGURE_FLAGS += --disable-coinmp +else + ifneq (,$(filter coinmp, $(SYSTEM_STUFF))) + BUILD_DEPS += , coinor-libcoinmp-dev $(COINMP_MINVER), coinor-libcoinutils-dev $(COINUTILS_MINVER) + endif +endif + +ifneq (,$(filter amd64,$(DEB_HOST_ARCH))) + SMALL_SYMBOLS = n +endif + +ifeq "$(ENABLE_SYMBOLS)" "y" + # Small symbols? + ifeq "$(SMALL_SYMBOLS)" "y" + CONFIGURE_FLAGS += --enable-symbols=SMALL + DEB_CFLAGS_MAINT_STRIP := -g + DEB_CXXFLAGS_MAINT_STRIP := -g + DEB_CFLAGS_MAINT_PREPEND += -g1 + DEB_CXXFLAGS_MAINT_PREPEND += -g1 +export DEB_CFLAGS_MAINT_STRIP DEB_CXXFLAGS_MAINT_STRIP +export DEB_CFLAGS_MAINT_PREPEND DEB_CXXFLAGS_MAINT_PREPEND + else + CONFIGURE_FLAGS += --enable-symbols + endif +else + DEB_CFLAGS_MAINT_STRIP := -g + DEB_CXXFLAGS_MAINT_STRIP := -g +export DEB_CFLAGS_MAINT_STRIP DEB_CXXFLAGS_MAINT_STRIP +endif +export DPKG_EXPORT_BUILDFLAGS=y +include /usr/share/dpkg/buildflags.mk +ifeq (debug,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CONFIGURE_FLAGS += --enable-debug +endif +ifeq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CONFIGURE_FLAGS += --disable-optimized +endif + +ifeq "$(ENABLE_PYTHON)" "y" +PYMAJOR:=$(shell $(PYTHON) -c "import sys; print (sys.version_info[0])") +PYMINOR:=$(shell $(PYTHON) -c "import sys; print (sys.version_info[1])") +PYMINORPLUS1:=$(shell $(PYTHON) -c "import sys; print (sys.version_info[1]+1)") +PYTHON_SITE:=debian/python3-uno/$(shell $(PYTHON) -c 'from distutils import sysconfig; print(sysconfig.get_python_lib())') +endif + + BUILD_DEPS += , $(PYTHON) +ifeq "$(ENABLE_PYTHON)" "y" + BUILD_DEPS += , $(PYTHON)-dev (>= 3.3) <!nopython> + BUILD_DEPS += , $(PYTHON)-distutils <!nopython> + BUILD_DEPS += , dh-python <!nopython> + ifeq "$(RUN_MAKE_CHECK)" "y" + ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + BUILD_DEPS += , $(PYTHON)-lxml <!nocheck !nopython> + else + CONFIGURE_FLAGS += --without-lxml + endif + endif +endif + + BUILD_DEPS += , debhelper-compat (= 12) +ifeq "$(BUILD_DBGSYM_PACKAGES)" "y" + # from debhelper changelog + BUILD_DEPS += , dpkg-dev (>= 1.18.2~) +else + BUILD_DEPS += , dpkg-dev (>= 1.17.14) +endif + + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , locales$(OOO_NO_CHECK_ARCHS) <!nocheck> + BUILD_DEPS += , gdb$(OOO_NO_CHECK_ARCHS) <!nocheck> + BUILD_DEPS += , fontconfig$(OOO_NO_CHECK_ARCHS) <!nocheck> + BUILD_DEPS += , fonts-liberation2$(OOO_NO_CHECK_ARCHS) <!nocheck> + BUILD_DEPS += , fonts-crosextra-carlito$(OOO_NO_CHECK_ARCHS) <!nocheck> + # https://lists.freedesktop.org/archives/libreoffice/2017-May/077764.html + BUILD_DEPS += , fonts-dejavu$(OOO_NO_CHECK_ARCHS) <!nocheck> + ifneq (,$(filter cppunit, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcppunit-dev (>= 1.14)$(OOO_NO_CHECK_ARCHS) <!nocheck> + endif + # 17:35 <@sberg_> vmiklos, oh, what kind of poor test is that? "warn:sal.osl:3785:2:sal/osl/unx/process.cxx:344: ChildStatusProc : starting 'pstoedit' failed" etc. is what I see in workdir/CppunitTest/filter_eps_test.test.log... + BUILD_DEPS += , pstoedit$(OOO_NO_CHECK_ARCHS) <!nocheck> + BUILD_DEPS += , imagemagick$(OOO_NO_CHECK_ARCHS) <!nocheck> + BUILD_DEPS += , ghostscript$(OOO_NO_CHECK_ARCHS) <!nocheck> + BUILD_DEPS += , hunspell-en-us$(OOO_NO_CHECK_ARCHS) <!nocheck> + BUILD_DEPS += , hyphen-en-us$(OOO_NO_CHECK_ARCHS) <!nocheck> + else + CONFIGURE_FLAGS += --without-cppunit + endif + ifeq "$(ENABLE_JUNIT4)" "y" + BUILD_DEPS += , junit4 $(JUNIT_MIN_VER) [$(OOO_JUNIT_ARCHS)] <!nocheck !nojava> + else + CONFIGURE_FLAGS += --without-junit + endif + ifeq "$(ENABLE_CHART_TESTS)" "y" + CONFIGURE_FLAGS += --enable-chart-tests + endif + ifeq "$(ENABLE_EXPORT_VALIDATION_TESTS)" "y" + BUILD_DEPS += , libofficeotron-java$(OOO_NO_CHECK_ARCHS) <!nocheck !nojava>, libodfvalidator-java$(OOO_NO_CHECK_ARCHS) <!nocheck !nojava> + else + CONFIGURE_FLAGS += --without-export-validation + endif +ifneq "$(BUILD_ONLY_EN_US)" "y" + ifeq (lang=,$(findstring lang=,$(DEB_BUILD_OPTIONS))) + ISOS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^.*lang=\([^\s].*\)\s.*/\1/p' | awk '{ print $$1 }' | sed -e 's/,/ /g') + ifeq "$(ENABLE_HELP)" "n" + HELPISOS= + else + HELPISOS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^.*lang=\([^\s].*\)\s.*/\1/p' | awk '{ print $$1 }' | sed -e 's/,/ /g') + endif + LANGPACKISOS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^.*lang=\([^\s].*\)\s.*/\1/p' | awk '{ print $$1 }' | sed -e 's/,/ /g') + else + # Note that the first one here *has to be* en-US. the first one gets + # gid_Module_Root as filelist later and the rest gid_Module_Root.$iso + # but we can't/shouldn't do dynamic switching, so let en-US be the first + # one to that gid_Module_Root always is english and the other langpacks + # have gid_Module_Root.$iso + #ISOS=$(shell $(SOURCE_TREE)/bin/lo-xlate-lang -i all') + ISOS:=en-US af am ar as ast be bg bn br bs ca ca-valencia cs cy da de dz el \ + en-GB en-ZA eo es et eu fa fi fr ga gd gl gu gug he hi hr hu id is it ja \ + ka kk km kmr-Latn kn ko lt lv mk mn ml mr nb ne nl nn nr nso oc om or \ + pa-IN pl pt pt-BR ro ru rw si sk sl sr sr-Latn ss st sv szl \ + ta te tg th tn tr ts ug uk uz ve vi xh zh-CN zh-TW zu + ifeq "$(ENABLE_HELP)" "n" + HELPISOS:= + else + #HELPISOS:=$(shell $(SOURCE_TREE)/bin/lo-xlate-lang -i all') + HELPISOS:=en-US ca ca-valencia cs da de dz el en-GB es et eu fi fr gl hi hu id it \ + ja km ko nl om pl pt pt-BR ru sk sl sv tr vi zh-CN zh-TW + endif + #LANGPACKISOS:=$(shell $(SOURCE_TREE)/bin/lo-xlate-lang -i all') + LANGPACKISOS:=en-US af am ar as ast be bg bn br bs ca ca-valencia cs cy da de dz el \ + en-GB en-ZA eo es et eu fa fi fr ga gd gl gu gug he hi hr hu id is it ja \ + ka kk km kmr-Latn kn ko lt lv mk mn ml mr nb ne nl nn nr nso oc om or \ + pa-IN pl pt pt-BR ro ru rw si sk sl sr sr-Latn ss st sv szl \ + ta te tg th tn tr ts ug uk uz ve vi xh zh-CN zh-TW zu + endif +else + ISOS=en-US + ifeq "$(ENABLE_HELP)" "n" + HELPISOS= + else + HELPISOS=en-US + endif + LANGPACKISOS=en-US +endif +BUILD_ISOS = $(ISOS) + +ifneq "$(BUILD_ONLY_EN_US)" "y" + ifneq "$(BUILD_ISOS)" "en-US" + CONFIGURE_FLAGS_LANG += --with-lang="$(BUILD_ISOS)" + CONFIGURE_FLAGS_INDEP += $(CONFIGURE_FLAGS_LANG) + BUILD_DEPS_INDEP += , gettext + endif +endif + +ifeq "$(ENABLE_JAVA)" "y" + BUILD_DEPS += , maven-repo-helper + ifeq "$(JDK)" "default" + JAVA_HOME=/usr/lib/jvm/default-java + BUILD_DEPS += , java-common (>= 0.61) <!nojava> + DEFAULT_JDK := $(call java_dependency, default-jdk) + # build-depend on 1.9 (upstream needs it anyway for module-info support) + BUILD_DEPS += , $(shell echo $(DEFAULT_JDK) | sed -e 's/default-jdk/default-jdk (>= 2:1.9)/') <!nojava> + endif + ifeq "$(JDK)" "openjdk" + BUILD_DEPS += , openjdk-$(JAVA_MAINVER)-jdk <!nojava> + JAVA_HOME=/usr/lib/jvm/java-$(JAVA_MAINVER)-openjdk-$(DEB_HOST_ARCH) + endif + TEST_JAVA_HOME=$(JAVA_HOME) + ifeq "$(ENABLE_MEDIAWIKI)" "y" + BUILD_DEPS_INDEP += , ant (>= 1.7.0)$(OOO_NO_JAVA_ARCHS) <!nojava>, ant-optional (>= 1.7.0)$(OOO_NO_JAVA_ARCHS) <!nojava> + else + # report-builder is done in build-arch already + ifneq (,$(filter jfreereport, $(SYSTEM_STUFF))) + BUILD_DEPS += , ant (>= 1.6.5)$(OOO_NO_JAVA_ARCHS) <!nojava> + else + BUILD_DEPS_INDEP += , ant (>= 1.6.5)$(OOO_NO_JAVA_ARCHS) <!nojava> + endif + endif + # but upstream also says --target=1.8 so 1.8 is fine in runtime + JAVA_RUNTIME_DEPENDS = default-jre (>= 2:1.8) + JAVA_RUNTIME_DEPENDS += | java8-runtime + # Suns Java "packages" + JAVA_RUNTIME_DEPENDS += | jre +export JAVA_HOME + CONFIGURE_FLAGS += --with-jdk-home=$(JAVA_HOME) + JAVA_COMMON_DEPENDS= , libreoffice-java-common + JAVA_COMMON_DEPENDS_VERSION:= (>= $(BASE_VERSION)~) + ifeq "$(PACKAGE_SDK)" "y" + ifeq "$(PACKAGE_UNOWINREG_DLL)" "y" + ifeq "$(BUILD_UNOWINREG_DLL)" "y" + CONFIGURE_FLAGS_INDEP += --enable-build-unowinreg + BUILD_DEPS_INDEP += , g++-mingw-w64-i686 <!nowindows> + WIN_TRIPLET := i686-w64-mingw32 + CONFIGURE_FLAGS_INDEP += --with-mingw-cross-compiler=$(WIN_TRIPLET)-g++ + endif + endif + endif + ifeq "$(ENABLE_MEDIAWIKI)" "y" + CONFIGURE_FLAGS_INDEP += --enable-ext-wiki-publisher + endif + ifeq "$(ENABLE_REPORTBUILDER)" "y" + # report-builder + ifneq (,$(filter jfreereport, $(SYSTEM_STUFF))) + REPORT_BUILDER_BUILD_DEPS += , libbase-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libsac-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libxml-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libflute-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libpentaho-reporting-flow-engine-java (>= 0.9.4)$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, liblayout-java (>= 0.2.10)$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libloader-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libformula-java (>= 1.1.7)$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, librepository-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libfonts-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libserializer-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava> + REPORT_BUILDER_JAR_DEPENDS := , libbase-java, libsac-java, libxml-java (>= 1.1.6), libflute-java (>= 1.1.6), libpentaho-reporting-flow-engine-java (>= 0.9.4), liblayout-java (>= 0.2.10), libloader-java (>= 1.1.6), libformula-java (>= 1.1.7), librepository-java (>= 1.1.6), libfonts-java (>= 1.1.6), libserializer-java (>= 1.1.6) + CONFIGURE_FLAGS += --with-libbase-jar=/usr/share/java/libbase.jar --with-libxml-jar=/usr/share/java/libxml.jar --with-flute-jar=/usr/share/java/flute.jar --with-jfreereport-jar=/usr/share/java/flow-engine.jar --with-liblayout-jar=/usr/share/java/liblayout.jar --with-libloader-jar=/usr/share/java/libloader.jar --with-libformula-jar=/usr/share/java/libformula.jar --with-librepository-jar=/usr/share/java/librepository.jar --with-libfonts-jar=/usr/share/java/libfonts.jar --with-libserializer-jar=/usr/share/java/libserializer.jar + endif + ifneq (,$(filter apache-commons, $(SYSTEM_STUFF))) + REPORT_BUILDER_BUILD_DEPS += , libcommons-logging-java$(OOO_NO_JAVA_ARCHS) <!nojava> + REPORT_BUILDER_JAR_DEPENDS += , libcommons-logging-java + CONFIGURE_FLAGS += --with-commons-logging-jar=/usr/share/java/commons-logging.jar + endif + BUILD_DEPS += $(REPORT_BUILDER_BUILD_DEPS) + else + CONFIGURE_FLAGS += --disable-report-builder + endif + ifeq "$(ENABLE_NLPSOLVER)" "y" + CONFIGURE_FLAGS_INDEP += --enable-ext-nlpsolver + endif + OOO_OFFICEBEAN_DEP = libofficebean-java + BUILD_DEPS += , javahelper $(JAVAHELPER_MIN_VERSION) <!nojava> +else + CONFIGURE_FLAGS += --without-java + DEBHELPER_OPTIONS += -Nlibreoffice-officebean -Nlibofficebean-java -Nlibreoffice-java-common -Nlibreoffice-script-provider-bsh -Nlibreoffice-script-provider-js -Nlibreoffice-subsequentcheckbase -Nlibunoil-java -Nlibofficebean-java -Nlibjuh-java -Nlibridl-java -Nlibunoloader-java -Nlibjurt-java -Nliblibreoffice-java -Nlibreoffice-sdbc-hsqldb +endif + +ifeq "$(ENABLE_JAVA)" "y" + ifeq "$(shell $(JAVA_HOME)/bin/java -version 2>&1 | grep -q Zero && echo true)" "true" + #RUN_MAKE_CHECK:=n + ENABLE_JUNIT4=n + endif +endif + +ifneq (,$(filter nss, $(SYSTEM_STUFF))) + BUILD_DEPS+= , libnss3-dev (>= 3.12.3) + BUILD_DEPS+= , libnspr4-dev +endif + +ifeq "$(USE_UCPP)" "y" + ifneq (,$(filter ucpp, $(SYSTEM_STUFF))) + IDLC_CPP_DEPENDS := ucpp + endif +else +# hardcode 4.7 as 4.8 fails: +# 14:17 <@caolan> ah, "build fails with cpp 4.8.0, this is fixable by passing +# -P, but then idlc produces empty urd files" + IDLC_CPP_DEPENDS := cpp-4.7 + CONFIGURE_FLAGS += --with-idlc-cpp=cpp-4.7 +endif + BUILD_DEPS += , $(IDLC_CPP_DEPENDS) + +ifneq (,$(filter hunspell, $(SYSTEM_STUFF))) + BUILD_DEPS += , libhunspell-dev (>= 1.1.5-2) +endif + CONFIGURE_FLAGS += --with-external-dict-dir=$(DICT_DIR) + +ifneq (,$(filter altlinuxhyph, $(SYSTEM_STUFF))) + BUILD_DEPS += , libhyphen-dev (>= 2.4) +endif + CONFIGURE_FLAGS += --with-external-hyph-dir=$(HYPH_DIR) + +ifneq (,$(filter boost, $(SYSTEM_STUFF))) + ifneq "$(BOOST_VERSION)" "default" + BUILD_DEPS += , libboost$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-date-time$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-iostreams$(BOOST_VERSION)-dev, libboost-filesystem$(BOOST_VERSION)-dev, libboost-locale$(BOOST_VERSION)-dev + #BUILD_DEPS += , libboost-thread$(BOOST_VERSION)-dev, libboost-program-options$(BOOST_VERSION)-dev + ifeq (,$(filter orcus, $(SYSTEM_STUFF))) + BUILD_DEPS += , libboost-system$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-iostreams$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-program-options$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-filesystem$(BOOST_VERSION)-dev $(BOOST_MINVER) + endif + else + BUILD_DEPS += , libboost-dev $(BOOST_MINVER), libboost-date-time-dev $(BOOST_MINVER), libboost-iostreams-dev $(BOOST_MINVER), libboost-filesystem-dev $(BOOST_MINVER), libboost-locale-dev $(BOOST_MINVER) + #BUILD_DEPS += , libboost-thread-dev, libboost-program-options-dev + ifeq (,$(filter orcus, $(SYSTEM_STUFF))) + BUILD_DEPS += , libboost-system-dev $(BOOST_MINVER), libboost-iostreams-dev $(BOOST_MINVER), libboost-program-options-dev $(BOOST_MINVER), libboost-filesystem-dev $(BOOST_MINVER) + endif + endif + ifeq "$(shell if [ -e /usr/lib/$(DEB_HOST_MULTIARCH)/libboost_date_time.so ]; then echo true; fi)" "true" + CONFIGURE_FLAGS += --with-boost-libdir=/usr/lib/$(DEB_HOST_MULTIARCH) + endif +endif + +ifneq "$(ENABLE_SKIA)" "y" + CONFIGURE_FLAGS += --disable-skia +endif + +ifneq (,$(filter mdds, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmdds-dev (>= 1.5), libmdds-dev (<< 1.8~) +endif + +ifneq (,$(filter orcus, $(SYSTEM_STUFF))) + BUILD_DEPS += , liborcus-dev (>= 0.16), liborcus-dev (<< 0.17~) +endif + +ifneq (,$(filter clucene, $(SYSTEM_STUFF))) + BUILD_DEPS += , libclucene-dev (>= 2.3.3.4-4.1) +endif + +ifeq "$(USE_EXTERNAL_CXXLIBS)" "y" + ifneq (,$(filter librevenge, $(SYSTEM_STUFF))) + BUILD_DEPS += , librevenge-dev, librevenge-dev (<< 0.1~) + endif + ifneq (,$(filter libwpd, $(SYSTEM_STUFF))) + BUILD_DEPS += , libwpd-dev (>= 0.10), libwpd-dev (<< 0.11~) + endif + ifneq (,$(filter mythes, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmythes-dev (>= 2:1.2) + endif + ifneq (,$(filter libwps, $(SYSTEM_STUFF))) + BUILD_DEPS += , libwps-dev (>= 0.4), libwps-dev (<< 0.5~) + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , libwps-dev (>= 0.4.9) <!nocheck> + endif + endif + ifneq (,$(filter libwpg, $(SYSTEM_STUFF))) + BUILD_DEPS += , libwpg-dev (>= 0.3), libwpg-dev (<< 0.4~) + endif + ifneq (,$(filter libvisio, $(SYSTEM_STUFF))) + BUILD_DEPS += , libvisio-dev (>= 0.1), libvisio-dev (<< 0.2~) + endif + ifneq (,$(filter libcdr, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcdr-dev (>= 0.1), libcdr-dev (<< 0.2~) + endif + ifneq (,$(filter libmspub, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmspub-dev (>= 0.1), libmspub-dev (<< 0.2~) + endif + ifneq (,$(filter libmwaw, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmwaw-dev (>= 0.3.1), libmwaw-dev (<< 0.4~) + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , libmwaw-dev (>= 0.3.15) <!nocheck> + endif + endif + ifneq (,$(filter libodfgen, $(SYSTEM_STUFF))) + BUILD_DEPS += , libodfgen-dev (>= 0.1), libodfgen-dev (<< 0.2~) + endif + ifneq (,$(filter libepubgen, $(SYSTEM_STUFF))) + BUILD_DEPS += , libepubgen-dev (>= 0.1.0), libepubgen-dev (<< 0.2~) + endif + ifneq (,$(filter libetonyek, $(SYSTEM_STUFF))) + BUILD_DEPS += , libetonyek-dev, libetonyek-dev (<< 0.2~) + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , libetonyek-dev (>= 0.1.8) <!nocheck> + endif + endif + ifneq (,$(filter libfreehand, $(SYSTEM_STUFF))) + BUILD_DEPS += , libfreehand-dev (>= 0.1), libfreehand-dev (<< 0.2~) + endif + ifneq (,$(filter libabw, $(SYSTEM_STUFF))) + BUILD_DEPS += , libabw-dev (>= 0.1), libabw-dev (<< 0.2~) + endif + ifneq (,$(filter libpagemaker, $(SYSTEM_STUFF))) + BUILD_DEPS += , libpagemaker-dev, libpagemaker-dev (<< 0.1~) + endif + ifneq (,$(filter libzmf, $(SYSTEM_STUFF))) + BUILD_DEPS += , libzmf-dev, libzmf-dev (<< 0.1~) + endif + ifneq (,$(filter libstaroffice, $(SYSTEM_STUFF))) + BUILD_DEPS += , libstaroffice-dev, libstaroffice-dev (<< 0.1~) + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , libstaroffice-dev (>= 0.0.3) <!nocheck> + endif + endif + ifneq (,$(filter libqxp, $(SYSTEM_STUFF))) + BUILD_DEPS += , libqxp-dev, libqxp-dev (<< 0.1~) + endif + ifneq (,$(filter libebook, $(SYSTEM_STUFF))) + BUILD_DEPS += , libe-book-dev (>= 0.1), libe-book-dev (<< 0.2~) + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , libe-book-dev (>= 0.1.2) <!nocheck> + endif + endif + ifneq (,$(filter libcmis, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcmis-dev (>= 0.5.2~), libcmis-dev (<< 0.6~) + endif + ifeq "$(ENABLE_QRCODEGEN)" "y" + ifneq (,$(filter qrcodegen, $(SYSTEM_STUFF))) + BUILD_DEPS += , libqrcodegencpp-dev + endif + else + CONFIGURE_FLAGS += --disable-qrcodegen + endif +endif + CONFIGURE_FLAGS += --with-external-thes-dir=$(THES_DIR) + +ifeq "$(INSTALL_APPARMOR_PROFILES)" "y" + BUILD_DEPS += , dh-apparmor + ifeq "$(CHECK_APPARMOR_PROFILES)" "true" + BUILD_DEPS += , apparmor <!nocheck> + endif +endif + +ifeq "$(ENABLE_EOT)" "y" + CONFIGURE_FLAGS += --enable-eot + ifneq (,$(filter libeot, $(SYSTEM_STUFF))) + BUILD_DEPS += , libeot-dev + endif +endif + +ifneq (,$(filter lcms2, $(SYSTEM_STUFF))) + BUILD_DEPS += , liblcms2-dev +endif + +ifneq (,$(filter openldap, $(SYSTEM_STUFF))) + BUILD_DEPS += , libldap2-dev +endif + +ifneq (,$(filter liblangtag, $(SYSTEM_STUFF))) + BUILD_DEPS += , liblangtag-dev (>= 0.4) +endif + +ifneq (,$(filter icu, $(SYSTEM_STUFF))) + BUILD_DEPS += , libicu-dev (>= 52) +endif + + +ifeq "$(BUILD_CAIROCANVAS)" "y" + ifneq (,$(filter cairo, $(SYSTEM_STUFF))) + BUILD_DEPS+= , libcairo2-dev + endif +else + CONFIGURE_FLAGS+= --disable-cairo +endif + +ifeq "$(ENABLE_KF5)" "y" + CONFIGURE_FLAGS += --enable-kf5 + BUILD_DEPS += , libkf5coreaddons-dev, libkf5i18n-dev, libkf5config-dev, libkf5windowsystem-dev, libkf5kio-dev +endif + PLASMA_ICONSET_DEP=libreoffice-style-breeze +ifeq "$(ENABLE_QT5)" "y" + CONFIGURE_FLAGS += --enable-qt5 + BUILD_DEPS += , qtbase5-dev $(QT5_MINVER), qt5-qmake $(QT5_MINVER), qtbase5-dev-tools $(QT5_MINVER) + BUILD_DEPS += , libqt5x11extras5-dev $(QT5_MINVER) + BUILD_DEPS += , libglib2.0-dev (>= 2.4) + BUILD_DEPS += , libxcb1-dev + BUILD_DEPS += , libxcb-icccm4-dev + ifeq "$(BUSTER_BACKPORT)" "y" + # for correct qmake/moc + BUILD_DEPS += , qtchooser + export QT_SELECT=5 + endif +endif + +ifeq "$(MYSQL_FLAVOUR)" "default" + BUILD_DEPS += , default-libmysqlclient-dev +else + ifeq "$(MYSQL_FLAVOUR)" "mysql" + ifneq (,$(filter mariadb, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmysqlclient-dev + endif + MARIADBCONFIG=/usr/bin/mysql_config + endif + ifeq "$(MYSQL_FLAVOUR)" "mariadb" + ifneq (,$(filter mariadb, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmariadb-dev + endif + MARIADBCONFIG=/usr/bin/mariadb_config + endif +endif + +ifeq "$(ENABLE_FIREBIRD)" "y" + BASE_FIREBIRD_RECOMMENDS = libreoffice-sdbc-firebird [$(OOO_FIREBIRD_ARCHS)] + ifneq (,$(filter libatomic-ops, $(SYSTEM_STUFF))) + BUILD_DEPS += , libatomic-ops-dev (>= 7.3~alpha1+git20110913-1)$(OOO_NO_FIREBIRD_ARCHS) + endif + ifneq (,$(filter libtommath, $(SYSTEM_STUFF))) + BUILD_DEPS += , libtommath-dev$(OOO_NO_FIREBIRD_ARCHS) + endif + ifneq (,$(filter firebird, $(SYSTEM_STUFF))) + BUILD_DEPS += , firebird-dev (>= 3.0.0.32483.ds4-4)$(OOO_NO_FIREBIRD_ARCHS) + # we need libEngine12.so + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , firebird3.0-server-core $(OOO_NO_FIREBIRD_ARCHS) <!nocheck> + endif + FIREBIRD_ENGINE_DEPENDS += firebird3.0-server-core + endif +else + CONFIGURE_FLAGS += --disable-firebird-sdbc + DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-firebird +endif + +ifeq "$(BUILD_GTK3)" "y" + BUILD_DEPS += , libgtk-3-dev (>= 3.18.0), libglib2.0-dev (>= 2.38.0) + ifneq (cairo,$(findstring cairo,$(SYSTEM_STUFF))) + $(error GTK3 build fails without system-cairo!!) + endif + ifeq (,$(filter epoxy, $(SYSTEM_STUFF))) + BUILD_DEPS += , libegl1-mesa-dev + endif + GNOME_GTK_RECOMMENDS += libreoffice-gtk3 + ifeq "$(ENABLE_INTROSPECTION)" "y" + BUILD_DEPS += , gobject-introspection (>= 1.32.0), libgirepository1.0-dev (>= 1.32) + CONFIGURE_FLAGS += --enable-introspection + else + DEBHELPER_OPTIONS+= -Ngir1.2-lokdocview-0.1 + endif +endif + +ifeq "$(ENABLE_EVO2)" "n" + CONFIGURE_FLAGS += --disable-evolution2 + DEBHELPER_OPTIONS += -Nlibreoffice-evolution +else + CONFIGURE_FLAGS += --enable-evolution2 + BUILD_DEPS += , libebook1.2-dev + LIBEBOOK_DEP = $(shell debian/scripts/get_libebook_dep.sh) +endif + +ifeq "$(ENABLE_SDBC_POSTGRESQL)" "y" + ifneq (,$(filter postgresql, $(SYSTEM_STUFF))) + BUILD_DEPS += , libpq-dev (>= 9.0~) + else + BUILD_DEPS += , libkrb5-dev + endif +else + CONFIGURE_FLAGS += --disable-postgresql-sdbc + DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-postgresql +endif + +ifeq "$(ENABLE_RANDR)" "y" + BUILD_DEPS += , libxrandr-dev +else + CONFIGURE_FLAGS += --disable-randr +endif + +ifneq "$(ENABLE_PYTHON)" "y" + DEBHELPER_OPTIONS+= -Npython3-uno -Nlibreoffice-script-provider-python -Npython3-access2base + CONFIGURE_FLAGS += --disable-python +else + PYUNO_DEPENDS = python3-uno (>= 4.4.0~beta2) + CONFIGURE_FLAGS += --enable-python=system +endif + +ifneq "$(PACKAGE_LIBRELOGO)" "y" + DEBHELPER_OPTIONS+= -Nlibreoffice-librelogo +endif + +ifeq "$(ENABLE_JAVA)" "y" + ifneq (,$(filter hsqldb, $(SYSTEM_STUFF))) + HSQLDB_MINVER= (>> 1.8.0.10) + HSQLDB_JAR=/usr/share/java/hsqldb1.8.0.jar + BUILD_DEPS += , libhsqldb1.8.0-java $(HSQLDB_MINVER)$(OOO_NO_JAVA_ARCHS) <!nojava>, libarchive-zip-perl$(OOO_NO_JAVA_ARCHS) <!nojava> + BASE_HSQLDB_DEPENDS = libhsqldb1.8.0-java $(HSQLDB_MINVER) + CONFIGURE_FLAGS += --with-hsqldb-jar=$(HSQLDB_JAR) + else + BUILD_DEPS += , libservlet3.1-java <!nojava> + endif + ifeq "$(ENABLE_SCRIPT_PROVIDER_BSH)" "y" + ifneq (,$(filter beanshell, $(SYSTEM_STUFF))) + BUILD_DEPS_INDEP += , libbsh-java <!nojava> + endif + CONFIGURE_FLAGS += --enable-scripting-beanshell + else + CONFIGURE_FLAGS += --disble-scripting-beanshell + DEBHELPER_OPTIONS += -Nlibreoffice-script-provider-bsh + endif + ifeq "$(ENABLE_SCRIPT_PROVIDER_JS)" "y" + CONFIGURE_FLAGS += --enable-scripting-javascript + else + CONFIGURE_FLAGS += --disable-scripting-javascript + DEBHELPER_OPTIONS += -Nlibreoffice-script-provider-js + endif +endif + +ifneq (,$(filter lpsolve, $(SYSTEM_STUFF))) + ifeq "$(USE_SHARED_LPSOLVE)" "y" + BUILD_DEPS += , liblpsolve55-dev $(LPSOLVE_MIN_VERSION), lp-solve $(LPSOLVE_MIN_VERSION) + LPSOLVE_DEP = lp-solve $(LPSOLVE_MIN_VERSION) + else + BUILD_DEPS += , liblpsolve55-dev $(LPSOLVE_MIN_VERSION) + endif + ifeq "$(USE_LIBSUITESPARSE)" "y" + BUILD_DEPS += , libsuitesparse-dev $(SUITESPARSE_MIN_VERSION) + else + BUILD_DEPS += , libufsparse-dev + endif +endif + +ifeq "$(USE_DBUS)" "y" + BUILD_DEPS += , libdbus-1-dev (>= 0.60) + CONFIGURE_FLAGS += --enable-dbus + ifeq "$(ENABLE_BLUETOOTH)" "y" + BUILD_DEPS += , libglib2.0-dev (>= 2.4) + ifneq (,$(filter bluez, $(SYSTEM_STUFF))) + BUILD_DEPS += , libbluetooth-dev [linux-any] + endif + else + CONFIGURE_FLAGS += --disable-sdremote-bluetooth + endif + ifeq "$(ENABLE_PACKAGEKIT)" "y" + CONFIGURE_FLAGS += --enable-packagekit + endif +endif + +ifeq "$(ENABLE_AVAHI)" "y" + BUILD_DEPS += , libavahi-client-dev + CONFIGURE_FLAGS += --enable-avahi +endif + +ifeq "$(USE_GSTREAMER)" "y" + BUILD_DEPS += , libgstreamer1.0-dev + CONFIGURE_FLAGS += --enable-gstreamer-1-0 + BUILD_DEPS += , libgstreamer-plugins-base1.0-dev + GSTREAMER_PLUGINS_SUGGESTS += , gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-plugins-ugly, gstreamer1.0-plugins-bad, gstreamer1.0-libav +else + CONFIGURE_FLAGS += --disable-gstreamer-1-0 +endif + +ifeq "$(ENABLE_WEBDAV)" "y" + ifeq "$(WEBDAV_LIB)" "neon" + ifneq (,$(filter neon, $(SYSTEM_STUFF))) + ifneq "$(NEON_SECTYPE)" "openssl" + BUILD_DEPS += , libneon$(NEONSONR)-$(NEON_SECTYPE)-dev + else + BUILD_DEPS += , libneon$(NEONSONR)-dev + endif + endif + else + ifneq (,$(filter apr, $(SYSTEM_STUFF))) + BUILD_DEPS += , libaprutil1-dev + endif + ifneq (,$(filter serf, $(SYSTEM_STUFF))) + BUILD_DEPS += , libserf-dev + endif + endif + CONFIGURE_FLAGS += --with-webdav=$(WEBDAV_LIB) +else + CONFIGURE_FLAGS += --with-webdav=no +endif + +ifeq "$(ENABLE_HELP)" "n" + CONFIGURE_FLAGS += --without-helppack-integration --without-help +endif + +ifneq (,$(filter redland, $(SYSTEM_STUFF))) + BUILD_DEPS += , librdf0-dev (>= 1.0.16-2) +endif + +ifeq "$(ENABLE_GUI)" "y" + ifneq (,$(filter epoxy, $(SYSTEM_STUFF))) + BUILD_DEPS += , libepoxy-dev (>= 1.2) + else + BUILD_DEPS += , libegl1-mesa-dev + endif +endif +ifneq (,$(filter glm, $(SYSTEM_STUFF))) + BUILD_DEPS += , libglm-dev (>= 0.9.9~a2) +endif + +ifneq (,$(filter gpgmepp, $(SYSTEM_STUFF))) + BUILD_DEPS+= , libgpgmepp-dev, libgpgme-dev, libgpg-error-dev +endif +ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS+= , gpg <!nocheck> + BUILD_DEPS+= , gpgconf <!nocheck> + BUILD_DEPS+= , gpg-agent <!nocheck> +endif + +ifeq "$(ENABLE_GIO)" "y" + ifneq "$(BUILD_GTK3)" "y" + BUILD_DEPS += , libglib2.0-dev (>= 2.26.0) + endif +else + CONFIGURE_FLAGS += --disable-gio +endif + +ifeq "$(ENABLE_DCONF)" "y" + BUILD_DEPS += , libdconf-dev (>= 0.15.2) +else + CONFIGURE_FLAGS += --disable-dconf +endif + +ifeq ($(ENABLE_MERGELIBS),y) + CONFIGURE_FLAGS += --enable-mergelibs +endif + +ifeq ($(ENABLE_LTO),y) + CONFIGURE_FLAGS += --enable-lto +endif + +ifeq ($(USE_GOLD),y) + CONFIGURE_FLAGS += --enable-ld=gold +else +# --enable-ld=gold is default for debug builds if found +ifneq (debug,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CONFIGURE_FLAGS += --disable-ld +endif +endif +ifneq (,$(findstring mips,$(DEB_HOST_ARCH))) +#10:46 < _rene_> can anyone shed a light on /<<PKGBUILDDIR>>/workdir/LinkTarget/Executable/bestreversemap: error while loading shared libraries: +# /<<PKGBUILDDIR>>/instdir/program/libuno_sal.so.3: ELF file ABI version invalid? both were built in the same LO build +#10:47 < _rene_> mips64el, apparently since gcc9 or new(er) binutils? +#10:47 < _rene_> on an other binary: +#10:47 < _rene_> file /home/rene/libreoffice-6.3.1~rc2/instdir/program/libunoidllo.so +# /home/rene/libreoffice-6.3.1~rc2/instdir/program/libunoidllo.so: ELF 64-bit LSB shared object, MIPS, MIPS64 rel2 version 1 (SYSV), +# dynamically linked, BuildID[sha1]=82f15433db9000b9dfee24ed07e2082ffb439dfd, with debug_info, not stripped +#10:47 < _rene_> (eller, mips64el chroot) +#[...] +#13:49 < aurel32> _rene_: the problem is the ABI version, ie those library have Version ABI: 5 instead of 0 for normal binaries +#13:50 < aurel32> the ABI version 5 will be used for gnu hash support in mips +#13:51 < aurel32> support has been added to binutils trunk recently, although the default is still sysv hash style +#13:51 < aurel32> and glibc support is still being reviewed, it might land in 2.31 +#13:51 < aurel32> previous version of libreoffice used -Wl,--hash-style=sysv +#13:52 < aurel32> now it seems it autodetect that binutils has gnu hash support and it passes -Wl,--hash-style=gnu +#13:52 < aurel32> but there is no support for the full toolchain yet +#13:54 < _rene_> so I need to force -Wl,--hash-style=sysv? +#13:54 < aurel32> --with-linker-hash-style +#13:54 < aurel32> Use linker with --hash-style=<style> when linking +#13:54 < aurel32> shared objects. Possible values: "sysv", "gnu", +#13:54 < aurel32> "both". The default value is "gnu" if supported on +#13:55 < aurel32> the build system, and "sysv" otherwise. +#13:55 < aurel32> it looks like that the hash style detection is not perfect +#13:55 < aurel32> _rene_: that should work indeed +#13:55 < _rene_> ok, thanks +#[...] +#14:01 < _rene_> aurel32: only mips64el affected or also mipsel? +#14:01 < _rene_> (mipsel is still building, though, so I assume it isn't) +#14:02 < aurel32> afaiu both should be affected +#14:03 < _rene_> ok, so I will make it $(findstring mips +#14:04 < aurel32> on mipsel: checking for --hash-style gcc linker support... sysv +#14:04 < aurel32> maybe the detection works better, anyway forcing it on both looks safer + CONFIGURE_FLAGS += --with-linker-hash-style=sysv +endif + +ifeq "$(ENABLE_PCH)" "y" + CONFIGURE_FLAGS += --enable-pch +endif + +# Use compiler cache? Include ccache in DEB_BUILD_OPTIONS for much faster rebuild times +# A complete build uses about 9G of compiler cache. +ifneq (ccache,$(findstring ccache,$(DEB_BUILD_OPTIONS))) + CONFIGURE_FLAGS += --disable-ccache +else + CONFIGURE_FLAGS += --enable-ccache=nodepend +endif + +## Build n projects in parallel? +## DEB_BUILD_OPTIONS=parallel=<n> +## if not specified LibreOffices configure tries to find it out itself +NUM_CPUS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^\(.* \)\?parallel=\([0-9]\+\).*$$/\2/p') +AVAIL_CPUS := $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1) +ifeq "$(PARALLEL_BUILD)" "y" + # we need to specify it only if it differs, otherwise configure autodetects + # it. + ifneq "$(NUM_CPUS)" "$(AVAIL_CPUS)" + CONFIGURE_FLAGS += --with-parallelism=$(NUM_CPUS) + endif +else + CONFIGURE_FLAGS += --without-parallelism +endif + +ifeq ($(GCC_VERSION),snapshot) + BUILD_PATH = /usr/lib/gcc-snapshot/bin:$$PATH + BUILD_LD_LIBRARY_PATH = /usr/lib/gcc-snapshot/lib:$$LD_LIBRARY_PATH + BUILD_DEPS += , gcc-snapshot +else + BUILD_PATH = $(CURDIR)/debian/usr/bin:$$PATH +endif +BUILD_PATH := $(CURDIR)/debian/usr/bin:$(BUILD_PATH) + +# Because of the stampdir magic, when you actually want to run a rule +# over, you would have to remove the stamp manually. Now, just do +# 'debian/rules <target> <target> ... FORCE=1', and the stamp files +# that match the given targets will be removed automagically. +stampdir_targets+=prepare +stampdir_targets+=build build-arch build-indep maintscripts +stampdir_targets+=install-common install-arch install-indep langpacks +stampdir_targets+=binary-arch binary-indep +ifdef FORCE + DUMMY:=$(shell rm -f $(patsubst %,$(STAMP_DIR)/%,$(filter $(stampdir_targets),$(MAKECMDGOALS)))) +endif + +# If this is defined, then none of the 'long' commands will be run. Useful +# for testing. +# test_rules=1 + +# Since the final stages use up a large amount of diskspace, provide targets to +# remove them without needing a full rebuild + +# Clean up the package directories (about 830M) +clean-debdir: + dh_testdir + # remove generated symlinks / java wrappers + rm -rf debian/usr + + find debian -name "*.links" ! -name "libreoffice-dev-doc.links" \ + ! -name "libreoffice-java-common.links" \ + ! -name "liblibreofficekitgtk.links" \ + ! -name "libreoffice-help-common.links" \ + ! -name "python3-access2base.links" -exec rm {} \; + rm -f debian/libreoffice-l10n-*.ucf + if [ -d "$(STAMP_DIR)" ]; then rm -rf "$(STAMP_DIR)"; fi + rm -f debian/*.bug-script + + rm -f debian/shlibs.local + + rm -f debian/libreoffice-help-*.lintian-overrides + rm -f debian/*.install debian/*.dirs debian/*.changelog + rm -f debian/*.postinst debian/*.postrm debian/*.preinst debian/*.prerm debian/*.triggers + rm -f debian/pom*.xml + + rm -rf $(CURDIR)/debian/locales + +ifeq "$(ENABLE_JAVA)" "y" + mh_clean +endif + dh_clean + +clean: + dh_testroot + dh_testdir + + if [ -f config.status ]; then \ + $(MAKE) distclean; \ + rm -f config.status; \ + fi + rm -rf instdir-nogui + find $(SOURCE_TREE) -name "*.pyc" -exec rm {} \; + rm -rf */*.pro.obsolete + + rm -rf $(SOURCE_TREE)/file-lists + rm -rf $(SOURCE_TREE)/pyuno-for* + rm -f autogen.lastrun + rm -f build_error.log + rm -f config/config_version.h + +ifeq "$(HELPISOS)" "" + rm -rf images* +endif + + rm -f download.list + + rm -f extras/source/truetype/symbol/opens___.ttf + + # obsolete lock file not cleaned up.... + rm -f dbaccess/qa/extras/testdocuments/fdo84315.odb.lck + + # Files created in debian directory + $(MAKE) -f debian/rules clean-debdir + + $(MAKE) -f debian/rules control + + +# Generate control files, because we have so many different languages +# and need to run autopkgtests based on Architectures +control: debian/control debian/tests/control + +# Based on script by Martin Quinson <Martin.Quinson@tuxfamily.org> +debian/control: $(wildcard debian/control*in) $(SOURCE_TREE)/bin/lo-xlate-lang debian/rules + chmod 755 $(SOURCE_TREE)/bin/lo-xlate-lang + sed -e "s#%$(DEB_VENDOR)=\([^%]*\)%#, \1#g#" \ + -e "s#%[A-Za-z]*=[^%]*%##g#" \ + -e "s#%BUILD_DEPS_INDEP%#$(strip $(BUILD_DEPS_INDEP))#g" \ + -e "s#@BUGS@#$(BUGS)#g" \ + < debian/control.in > debian/control + + for LNUM in $(filter-out en-US,$(LANGPACKISOS)) ; do \ + LNAME=`$(SOURCE_TREE)/bin/lo-xlate-lang -l $$LNUM | perl -e 'print ucfirst(<STDIN>);'`; \ + LCODE=`$(SOURCE_TREE)/bin/lo-xlate-lang -i $$LNUM | tr A-Z a-z`; \ + [ "$$LNUM" = ca-valencia ] && continue; \ + [ "$$LNUM" = sr-Latn ] && continue; \ + [ "$$LCODE" = kmr-latn ] && LCODE=kmr; \ + CCODE=`echo $$LCODE | sed 's/-.*//'`; \ + case "$$LCODE" in \ + bn) \ + FONT_RECOMMENDS=", fonts-beng"; \ + ;; \ + gu) \ + FONT_RECOMMENDS=", fonts-gujr"; \ + ;; \ + pa-in) \ + FONT_RECOMMENDS=", fonts-guru"; \ + ;; \ + ml) \ + FONT_RECOMMENDS=", fonts-mlym"; \ + ;; \ + or) \ + FONT_RECOMMENDS=", fonts-orya"; \ + ;; \ + te) \ + FONT_RECOMMENDS=", fonts-telu"; \ + ;; \ + ta) \ + FONT_RECOMMENDS=", fonts-taml"; \ + ;; \ + hi-in|ne|mr) \ + FONT_RECOMMENDS=", fonts-deva"; \ + ;; \ + he) \ + FONT_RECOMMENDS=", culmus"; \ + ;; \ + km) \ + FONT_RECOMMENDS=", fonts-khmeros"; \ + ;; \ + ar) \ + FONT_RECOMMENDS=", fonts-kacst, fonts-hosny-amiri, fonts-sil-scheherazade, fonts-hosny-thabit"; \ + ;; \ + fa) \ + FONT_RECOMMENDS=", fonts-farsiweb"; \ + ;; \ + dz) \ + FONT_RECOMMENDS=", fonts-dzongkha"; \ + ;; \ + th) \ + FONT_RECOMMENDS=", fonts-thai-tlwg"; \ + ;; \ + *) \ + FONT_RECOMMENDS= ;; \ + esac; \ + case "$$LCODE" in \ + rw) \ + LOCALES_DEPENDS="locales (>= 2.3.6) | locales-all (>= 2.3.6)" \ + ;; \ + ss|ts|km|ns|tn) \ + LOCALES_DEPENDS="locales (>= 2.3.5-12) | locales-all" \ + ;; \ + sr) \ + LOCALES_DEPENDS="locales (>= 2.3.6.ds1-5) | locales-all" \ + ;; \ + as|or|nr) \ + LOCALES_DEPENDS="locales (>= 2.3.6.ds1-1) | locales-all (>= 2.3.6.ds1-1)" \ + ;; \ + sw) \ + LOCALES_DEPENDS="locales (>= 2.13-5) | locales-all (>= 2.13-5)" \ + ;; \ + *) \ + LOCALES_DEPENDS="locales | locales-all" \ + ;; \ + esac; \ + sed -e "s|@LNAME@|$$LNAME|g" -e "s|@LCODE@|$$LCODE|g" \ + -e "s|@CCODE@|$$CCODE|g" \ + -e "s|@FONT_RECOMMENDS@|$$FONT_RECOMMENDS|g" \ + -e "s:@LOCALES_DEPENDS@:$$LOCALES_DEPENDS:g" \ + -e "s|@LDAP_LIB@|$(LDAP_LIB)|g" \ + >> debian/control < debian/control.lang.in; \ + done + +ifneq "$(ENABLE_HELP)" "n" + for LNUM in $(HELPISOS) ; do \ + LNAME=`$(SOURCE_TREE)/bin/lo-xlate-lang -l $$LNUM | perl -e 'print ucfirst(<STDIN>);'`; \ + LCODE=`$(SOURCE_TREE)/bin/lo-xlate-lang -i $$LNUM | tr A-Z a-z`; \ + [ "$$LNUM" = ca-valencia ] && continue; \ + CCODE=`echo $$LCODE | sed 's/-.*//'`; \ + sed -e "s|@LNAME@|$$LNAME|g" -e "s|@LCODE@|$$LCODE|g" \ + -e "s|@CCODE@|$$CCODE|g" \ + >> debian/control < debian/control.help.in; \ + done + # en_US is in -common + perl -pi -e 's|(Depends: libreoffice-writer \| language-support-translations-en), libreoffice-l10n-en-us|\1|' \ + debian/control + perl -pi -e 's|(Depends: libreoffice-writer, libreoffice-l10n-en-us)|\1, fonts-deva|' \ + debian/control +endif + cat debian/control.ure.in >> debian/control +ifeq "$(ENABLE_JAVA)" "y" + ifeq "$(ENABLE_MEDIAWIKI)" "y" + cat debian/control.mediawiki.in >> debian/control + endif + ifeq "$(ENABLE_REPORTBUILDER)" "y" + cat debian/control.reportbuilder.in >> debian/control + endif + ifeq "$(ENABLE_NLPSOLVER)" "y" + cat debian/control.nlpsolver.in >> debian/control + endif +endif + cat debian/control.fonts.in >> debian/control +ifeq "$(PACKAGE_SDK)" "y" + cat debian/control.sdk.in >> debian/control +endif +ifeq "$(PACKAGE_LOKIT)" "y" + cat debian/control.lokit.in >> debian/control +endif +ifeq "$(BUILD_GTK3)" "y" + cat debian/control.gtk3.in >> debian/control +endif +ifeq "$(ENABLE_KF5)" "y" + cat debian/control.kf5.in >> debian/control +endif +ifeq "$(ENABLE_QT5)" "y" + cat debian/control.qt5.in >> debian/control +endif +ifeq "$(BUILD_PLASMA)" "y" + cat debian/control.plasma.in >> debian/control +endif + cat debian/control.postgresql.in >> debian/control +ifeq "$(ENABLE_EVO2)" "y" + cat debian/control.evolution.in >> debian/control +endif + cat debian/control.test-packages.in >> debian/control +ifeq "$(PACKAGE_LIBRELOGO)" "y" + cat debian/control.librelogo.in >> debian/control +endif + cat debian/control.firebird.in >> debian/control + + cat debian/control.transitionals.in >> debian/control + + perl -pi -e "s,%OOO_ARCHS%,$(OOO_ARCHS),g" debian/control + perl -pi -e "s,%OOO_NOGUI_ARCHS%,$(OOO_NOGUI_ARCHS),g" debian/control + perl -pi -e "s,%OOO_64BIT_ARCHS%,$(OOO_64BIT_ARCHS),g" debian/control + perl -pi -e "s,%OOO_BE_ARCHS%,$(OOO_BE_ARCHS),g" debian/control + perl -pi -e "s,%OOO_LE_ARCHS%,$(OOO_LE_ARCHS),g" debian/control + perl -pi -e "s,%OOO_BASE_ARCHS%,$(OOO_BASE_ARCHS),g" debian/control + perl -pi -e "s,%OOO_NO_BASE_ARCHS%,$(OOO_NO_BASE_ARCHS),"g debian/control + perl -pi -e "s,%OOO_JAVA_ARCHS%,$(OOO_JAVA_ARCHS),g" debian/control + perl -pi -e "s,%OOO_ARCH_DEP_EXTENSIONS_ARCHS%,$(OOO_ARCH_DEP_EXTENSIONS_ARCHS),g" debian/control + perl -pi -e "s,%OOO_REPORTBUILDER_ARCHS%,$(OOO_REPORTBUILDER_ARCHS),g" debian/control + perl -pi -e "s,%OOO_NO_REPORTBUILDER_ARCHS%,$(OOO_NO_REPORTBUILDER_ARCHS),g" debian/control + perl -pi -e "s,%OOO_FIREBIRD_ARCHS%,$(OOO_FIREBIRD_ARCHS),g" debian/control + perl -pi -e "s,%OOO_NO_FIREBIRD_ARCHS%,$(OOO_NO_FIREBIRD_ARCHS),g" debian/control + perl -pi -e "s#%BUILD_DEPS%#$(strip $(BUILD_DEPS))#g" debian/control + perl -pi -e "s#%JUNIT_MIN_VER%#$(JUNIT_MIN_VER)#g" debian/control +ifeq "$(BUILD_PLASMA)" "y" + perl -pi -e 's/%LO-DESKTOP-INTEGRATION%/libreoffice-gnome | libreoffice-plasma/' debian/control +else + perl -pi -e 's/%LO-DESKTOP-INTEGRATION%/libreoffice-gnome/' debian/control +endif + +ifeq (sk,$(findstring sk,$(HELPISOS))) + perl -pi -e 's/(Depends:.*)libreoffice-l10n-sk(.*)$$/\1libreoffice-l10n-sk, libreoffice-help-cs\2/' debian/control +endif +ifeq (pt-BR,$(findstring pt-BR,$(LANGPACKISOS))) + perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control + perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control + perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control +endif + +ifeq "$(MYSQL_FLAVOUR)" "mysql" + perl -pi -e "s/(Build-Conflicts: .*)/\1,libmariadbclient-dev,/" debian/control +endif +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + # be sure to use our rebuilt font + perl -pi -e "s/(Build-Conflicts: .*)/\1,fonts-opensymbol <!nocheck>,/" debian/control +endif + +ifneq "$(ALLOW_CLANG)" "y" + perl -pi -e "s/(Build-Conflicts: .*)/\1,clang,/" debian/control +else + ifeq "$(BUSTER_BACKPORT)" "y" + # go safe and build-conflict against clang, as it doesn't work (see above) + perl -pi -e "s/(Build-Conflicts: .*)/\1,clang [armel],/" debian/control + endif +endif + $(PYTHON) debian/scripts/joinctrl.py < debian/control > debian/control.tmp + mv debian/control.tmp debian/control + + # make -l10n-fi suggest libreoffice-spellcheck-fi to + # match myspell-fi and libreoffice-soikko/-voikko + perl -pi -e 's/myspell-dictionary-fi/myspell-dictionary-fi | libreoffice-spellcheck-fi/' debian/control + perl -pi -e 's/hyphen-fi/hyphen-fi | libreoffice-hyphenation-fi/' debian/control + +ifeq "$(USE_DBUS)" "y" + ifeq "$(ENABLE_BLUETOOTH)" "y" + perl -pi -e 's/paperconf$$/paperconf\n * bluez: Bluetooth support for Impress (slideshow remote control)/' debian/control + endif + perl -pi -e 's/Description: office productivity suite -- presentation/Suggests: bluez\nDescription: office productivity suite -- presentation/' debian/control +endif + +ifneq "$(DICT_DIR)" "/usr/share/hunspell" + perl -pi -e 's/^Breaks:.*myspell.*\n//' debian/control +endif + +ifeq "$(ENABLE_APPARMOR_PROFILES)" "y" + perl -pi -e 's/ttf-mscorefonts-installer/ttf-mscorefonts-installer, apparmor (>= 2.13.1~)/' debian/control + perl -pi -e 's/openoffice-unbundled/openoffice-unbundled, apparmor (<< 2.13.1~)/' debian/control + +endif + +.DELETE_ON_ERROR: debian/control + +debian/tests/control: debian/tests/control.in debian/rules + sed -e "s|%OOO_JAVA_ARCHS%|$(OOO_JAVA_ARCHS)|g" \ + -e "s|%OOO_NOGUI_ARCHS%|$(OOO_NOGUI_ARCHS)|g" \ + > debian/tests/control < debian/tests/control.in + +.DELETE_ON_ERROR: debian/tests/control + +# All 'important' targets have 2 lines. The one that is run by +# dpkg-buildpackage or the user, and the one that does the actual work. This +# indirection is needed so that the 'stamp' files that signify when a rule is +# done can be located in a separate 'stampdir'. Recall that make has no way to +# know when a goal has been met for a phony target (like "build" or "install"). +# +# At the end of each stampdir target, be sure to run the command 'touch $@' +# so that the target will not be run again. Removing the file will make +# make run the target over. + +prepare: $(STAMP_DIR)/prepare +$(STAMP_DIR)/prepare: + dh_testdir + + # Make sure needed scripts are executable + set -e;\ + for FILE in debian/scripts/move-if-change \ + debian/scripts/get_libebook_dep.sh \ + debian/scripts/locale-gen \ + autogen.sh; \ + do \ + chmod 755 $$FILE ;\ + done + + mkdir -p $(STAMP_DIR) + + # Make sure we have /proc mounted - otherwise idlc will fail later. + test -r /proc/version + + # create fake file if file not there; we don't use it anyways. + if [ ! -f $(TARFILE_LOCATION)/185d60944ea767075d27247c3162b3bc-unowinreg.dll ]; then \ + touch $(TARFILE_LOCATION)/185d60944ea767075d27247c3162b3bc-unowinreg.dll; \ + fi + +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) +ifeq (terse,$(findstring terse,$(DEB_BUILD_OPTIONS))) + if [ -d .pc/do-not-hide-test-output.diff ]; then \ + patch -p1 -R < debian/patches/do-not-hide-test-output.diff; \ + TMP=`mktemp -q`; grep -v do-not-hide-test-output .pc/applied-patches \ + > $$TMP && mv $$TMP .pc/applied-patches; \ + rm -rf .pc/do-not-hide-test-output.diff; \ + fi +endif +endif + +ifeq "$(ENABLE_PCH)" "y" + # regen PCHs to go sure... + bin/update_pch.sh +endif + + touch $@ + +.PHONY: config_host.mk +config_host.mk: + rm -f config.status autogen.lastrun + PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \ + CLANGDIR=$(CLANGDIR) \ + MARIADBCONFIG=$(MARIADBCONFIG) \ + FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \ + ./autogen.sh $(CONFIGURE_FLAGS) + +build: + $(CURDIR)/debian/rules build-arch + $(CURDIR)/debian/rules build-indep + touch $(STAMP_DIR)/$@ + +build-arch: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-arch +$(STAMP_DIR)/build-arch: +#build-arch: ENABLE_HELP = n PACKAGE_SDK_DOCS = n ENABLE_MEDIAWIKI = n ENABLE_SCRIPT_PROVIDER_BSH = n ENABLE_SCRIPT_PROVIDER_JS = n + dh_testdir + +ifeq "$(BUILD_NOGUI_PACKAGES)" "y" + # build with --disable-gui first + PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \ + CLANGDIR=$(CLANGDIR) \ + MARIADBCONFIG=$(MARIADBCONFIG) \ + FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \ + ./autogen.sh $(CONFIGURE_FLAGS) \ + --without-junit --without-cppunit \ + --disable-ext-wiki-publisher \ + --disable-scripting-javascript --disable-scripting-beanshell \ + --without-doxygen --without-javadoc \ + --with-galleries=no --with-theme="$(DEFAULT_IMAGE)" \ + --disable-gui --disable-skia --disable-introspection --disable-qt5 --disable-kf5 + + PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) ARCH_FLAGS=$(ARCH_FLAGS) TMP=`mktemp -q -d` $(MAKE) build-non-l10n-only + + rm -rf instdir-nogui + cp -r instdir instdir-nogui + + # clean (git grep HAVE_FEATURE_UI). This also causes relinking + # since it relinks libmergedlo.so(?) but this is better than rebuilding + # the whole of vcl, framework, sw, ... + find workdir -name "spritehelper.o" \ + -o -name "app.o" \ + -o -name "cmdlineargs.o" \ + -o -name "sofficemain.o" \ + -o -name "splashx.o" \ + -o -name "titlehelper.o" \ + -o -name "svpinst.o" \ + -o -name "salmain.o" \ + -exec rm {} \; + find workdir instdir -name "*canvas*" \ + -o -name "*libsofficeapp*" \ + -o -name "*oosplash*" \ + -o -name "*libfwe*" \ + -o -name "*libvcl*" \ + -exec rm {} \; + # more cleanup. global.cxx of libsc.o wants + # OpenGLWrapper::isVCLOpenGLEnabled() + find workdir -name "global.o" -exec rm {} \; + find workdir instdir -name "*libsc*" -exec rm {} \; + # it is required to regenerate main.xcd without --disable-gui + find workdir -name "main.xcd" -o -name "main.list" -exec rm {} \; +endif + + PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \ + CLANGDIR=$(CLANGDIR) \ + MARIADBCONFIG=$(MARIADBCONFIG) \ + FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \ + ./autogen.sh $(CONFIGURE_FLAGS) \ + --without-junit --without-cppunit \ + --disable-ext-wiki-publisher \ + --disable-scripting-javascript --disable-scripting-beanshell \ + --without-doxygen --without-javadoc \ + --with-galleries=no --with-theme="$(DEFAULT_IMAGE)" + +ifeq "$(ALLOW_CLANG)" "y" + ifeq (ccache,$(findstring ccache,$(DEB_BUILD_OPTIONS))) + sed -i "s/^export CLANG_CC=\(.*\)/export CLANG_CC=ccache \1/" config_host.mk + sed -i "s/^export CLANG_CXX=\(.*\)/export CLANG_CXX=ccache \1/" config_host.mk + endif +endif + + PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) ARCH_FLAGS=$(ARCH_FLAGS) TMP=`mktemp -q -d` $(MAKE) build-non-l10n-only +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + $(CURDIR)/debian/rules check +endif + +ifneq "$(BUILD_ISOS)" "en-US" + # build sysui again with all languages; as it contains language-specific help and/or descriptions... + $(MAKE) sysui.clean + make cmd cmd="cd sysui; export WITH_LANG='$(LANGPACKISOS)'; export WITH_LANG_LIST='$(LANGPACKISOS)'; $(MAKE)" +endif + + touch $@ + +build-indep: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-indep +$(STAMP_DIR)/build-indep: + dh_testdir + +ifeq "$(PACKAGE_SDK)" "y" + if [ -f Makefile ]; then $(MAKE) odk.clean; fi +endif + if [ -f Makefile ]; then $(MAKE) scp2.clean; fi + + rm -f config.status autogen.lastrun + + # now build with the indep stuff (javadoc, languages, ....) + PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \ + MARIADBCONFIG=$(MARIADBCONFIG) \ + FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \ + ./autogen.sh $(CONFIGURE_FLAGS) $(CONFIGURE_FLAGS_INDEP) + + PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) ARCH_FLAGS=$(ARCH_FLAGS) TMP=`mktemp -q -d` $(MAKE) build +ifeq "$(BUILD_TEST_PACKAGES)" "y" + ifeq "$(ENABLE_JUNIT4)" "y" + PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) ARCH_FLAGS=$(ARCH_FLAGS) TMP=`mktemp -q -d` $(MAKE) Jar_{OOoRunner,test,ConnectivityTools} + endif +endif + +ifeq "$(BUILD_TEST_PACKAGES)" "y" + # doesn't necessarily exist unless you also ran check... + if [ -d workdir/Zip ]; then \ + find workdir/Zip -name "smoketestdoc*" | xargs rm; \ + patch -p0 < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.diff; \ + cd smoketest && $(MAKE) Zip_smoketestdoc; cd ..; \ + patch -p0 -R < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.diff; \ + cp workdir/Zip/smoketestdoc.zip workdir/Zip/smoketestdoc.sxw; \ + fi +endif + +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + $(CURDIR)/debian/rules check-indep +endif + + touch $@ + + +check: +ifeq "$(RUN_MAKE_CHECK)" "y" +ifneq (,$(filter $(DEB_HOST_ARCH),$(OOO_NO_BASE_ARCHS))) + patch -p1 < $(CURDIR)/debian/tests/patches/disable-db-tests.diff +endif +ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS))) + cd $(SOURCE_TREE)/smoketest && \ + patch -p1 < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.diff +endif + + # enable cppunit etc. + PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \ + CLANGDIR=$(CLANGDIR) \ + MARIADBCONFIG=$(MARIADBCONFIG) \ + FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \ + ./autogen.sh $(CONFIGURE_FLAGS) \ + --disable-ext-wiki-publisher \ + --disable-scripting-javascript --disable-scripting-beanshell \ + --without-doxygen --without-javadoc \ + --with-galleries=no --with-theme="$(DEFAULT_IMAGE)" + + # generate the needed en_US.UTF-8 locale + mkdir -p $(CURDIR)/debian/locales + USE_CPUS=$(NUM_CPUS) debian/scripts/locale-gen + + # build the tests first + export gb_SUPPRESS_TESTS=true; \ + $(MAKE) check + + # and now run them + $(IGNORE_MAKE_CHECK_FAILURES)t=`mktemp -q -d`; \ + cd $(SOURCE_TREE) && \ + export PATH=$(BUILD_PATH); \ + export TMPDIR=$$t; \ + export HOME=$$t; \ + export LOCPATH=$(CURDIR)/debian/locales; \ + export LANG=en_US.UTF-8; \ + export TZ=UTC; \ + unset DISPLAY; \ + export PARALLELISM=1; \ + if [ -x /usr/bin/gdb ]; then ulimit -c unlimited; fi && \ + $(MAKE) -k check || $(MAKE) check && \ + rm -rf $$t +ifneq (,$(filter $(DEB_HOST_ARCH),$(OOO_NO_BASE_ARCHS))) + patch -p1 -R < $(CURDIR)/debian/tests/patches/disable-db-tests.diff +endif +ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS))) + cd $(SOURCE_TREE)/smoketest && \ + patch -p1 -R < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.diff +endif +endif + +check-indep: +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + ifeq "$(ENABLE_JAVA)" "y" + # since the gb_SUPPRESS_CHECK stuff in build this isn't checked. + # probably should, so do it here manually. + $(IGNORE_MAKE_CHECK_FAILURES)cd odk && \ + $(MAKE) CustomTarget_odk/check + ifneq (,$(findstring -indep,$(MAKECMDGOALS))) + # was already checked in check + $(IGNORE_MAKE_CHECK_FAILURES)if [ ! -e $(STAMP_DIR)/build-arch ]; then \ + cd odk && $(MAKE) CustomTarget_odk/build-examples && \ + $(MAKE) CustomTarget_odk/build-examples_java; \ + fi + endif + endif +endif + +install: $(STAMP_DIR)/install-common $(STAMP_DIR)/install-arch $(STAMP_DIR)/install-indep + +install-common: $(STAMP_DIR)/install-common +$(STAMP_DIR)/install-common: + dh_testdir + dh_testroot + + dh_prep + rm -f debian/*.install debian/*.dirs + + # remove those for safety in case the languages might change on + # testbuilds. then the /*/ in dh_installdocs in binary-* won't work + # anymore (different dirs) + rm -rf $(SOURCE_TREE)/instsetoo_native/util/LibreOffice + + rm -rf $(SOURCE_TREE)/file-lists + + # install LibreOffice. + cd $(SOURCE_TREE)/; \ + PATH=$(BUILD_PATH) \ + DESTDIR=$(CURDIR)/debian/tmp \ + $(MAKE) distro-pack-install + export DESTDIR=$(CURDIR)/debian/tmp ;\ + export VERSION=$(OOVER); \ + export OOINSTBASE=$(OODIR); \ + export OOO_LANGS_LIST="$(ISOS)"; \ + $(CURDIR)/debian/scripts/gid2pkgdirs.sh +ifeq "$(BUILD_DBGSYM_PACKAGES)" "y" + make cmd cmd="export DESTDIR=$(CURDIR)/debian/tmp; $(CURDIR)/solenv/bin/install-gdb-printers -a /usr/share/gdb/auto-load/$(OODIR) -c -i /$(OODIR) -p /usr/share/libreoffice/gdb" +endif + + # FIXME + cd $(CURDIR)/debian/tmp/pkg && rm -rf \* + +ifeq "$(ENABLE_QT5)" "y" + # we need to do it here. If -kf5 isn't built + # there's no -kf5.install generated, so dh_missing complains later + mkdir -p debian/tmp/pkg/libreoffice-qt5/$(OODIR)/program + mv debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libvclplug_qt5lo.so\ + debian/tmp/pkg/libreoffice-qt5/$(OODIR)/program +endif +ifeq "$(ENABLE_KF5)" "y" + mv debian/tmp/pkg/libreoffice-kde \ + debian/tmp/pkg/libreoffice-kf5 +ifeq "$(BUILD_PLASMA)" "y" + mkdir -p debian/tmp/pkg/libreoffice-plasma/$(OODIR)/program + mv debian/tmp/pkg/libreoffice-kf5/$(OODIR)/program/libkf5be1lo.so \ + debian/tmp/pkg/libreoffice-plasma/$(OODIR)/program +else + rm -f debian/tmp/pkg/libreoffice-kf5/$(OODIR)/libkf5be1lo.so +endif +endif + +ifeq "$(ENABLE_HELP)" "y" +ifeq "$(ENABLE_HTML_HELP)" "y" + mkdir -p debian/tmp/pkg/libreoffice-help-common/$(OODIR); \ + mv debian/tmp/pkg/libreoffice-common/$(OODIR)/help \ + debian/tmp/pkg/libreoffice-help-common/$(OODIR) +endif +endif + + # prepare install/dir files for dh + for i in `cd $(CURDIR)/debian/tmp/pkg; ls -1 | xargs`; do \ + echo "$${i}/usr/* usr" > debian/$$i.install; \ + (cd debian/tmp/pkg/$$i; find . -type d | sed -e "s,\./,,") \ + > debian/$$i.dirs; \ + done + echo "/etc/libreoffice/registry/res" >> debian/libreoffice-common.dirs + + # the english resources should be in -common + cat debian/libreoffice-l10n-en-US.dirs >> debian/libreoffice-common.dirs + cat debian/libreoffice-l10n-en-US.install >> debian/libreoffice-common.install + rm -f debian/libreoffice-l10n-en-US.dirs debian/libreoffice-l10n-en-US.install + + # and ca-valencia in -ca... +ifeq (ca-valencia,$(findstring ca-valencia,$(LANGPACKISOS))) + if [ -f debian/libreoffice-l10n-ca-valencia.dirs -a -f debian/libreoffice-l10n-ca-valencia.install ]; then \ + cat debian/libreoffice-l10n-ca-valencia.dirs >> debian/libreoffice-l10n-ca.dirs; \ + cat debian/libreoffice-l10n-ca-valencia.install >> debian/libreoffice-l10n-ca.install; \ + rm -f debian/libreoffice-l10n-ca-valencia.dirs debian/libreoffice-l10n-ca-valencia.install; \ + fi +endif +ifeq "$(ENABLE_HELP)" "y" +ifeq (ca-valencia,$(findstring ca-valencia,$(HELPISOS))) + if [ -f debian/libreoffice-help-ca-valencia.dirs -a -f debian/libreoffice-help-ca-valencia.install ]; then \ + cat debian/libreoffice-help-ca-valencia.dirs >> debian/libreoffice-help-ca.dirs; \ + cat debian/libreoffice-help-ca-valencia.install >> debian/libreoffice-help-ca.install; \ + rm -f debian/libreoffice-help-ca-valencia.dirs debian/libreoffice-help-ca-valencia.install; \ + fi +endif +endif + # and sr-Latn should be in -sr +ifeq (sr-Latn,$(findstring sr-Latn,$(LANGPACKISOS))) + if [ -f debian/libreoffice-l10n-sr-Latn.dirs -a -f debian/libreoffice-l10n-sr-Latn.install ]; then \ + cat debian/libreoffice-l10n-sr-Latn.dirs >> debian/libreoffice-l10n-sr.dirs; \ + cat debian/libreoffice-l10n-sr-Latn.install >> debian/libreoffice-l10n-sr.install; \ + rm -f debian/libreoffice-l10n-sr-Latn.dirs debian/libreoffice-l10n-sr-Latn.install; \ + fi +endif + + # This should be in -kmr... This is different like the above where + # we move different "variants" into the "base" but there's only kmr-Latn + # for Kurmanji, but I don't really want to have that -latn suffix in + # the packages +ifeq (kmr-Latn,$(findstring kmr-Latn,$(LANGPACKISOS))) + if [ -f debian/libreoffice-l10n-kmr-Latn.dirs -a -f debian/libreoffice-l10n-kmr-Latn.install ]; then \ + cat debian/libreoffice-l10n-kmr-Latn.dirs >> debian/libreoffice-l10n-kmr.dirs; \ + cat debian/libreoffice-l10n-kmr-Latn.install >> debian/libreoffice-l10n-kmr.install; \ + rm -f debian/libreoffice-l10n-kmr-Latn.dirs debian/libreoffice-l10n-kmr-Latn.install; \ + fi +endif + + # fixup case (-l10n-pt-BR -> l10n-pt-br etc.) + for iso in $(ISOS); do \ + pkgiso=`echo $$iso | tr A-Z a-z`; \ + if [ "$$iso" != "$$pkgiso" ]; then \ + if [ "$$iso" != "en-US" -a \ + -e debian/libreoffice-l10n-$$iso.dirs -a \ + -e debian/libreoffice-l10n-$$iso.install ]; then \ + mv debian/libreoffice-l10n-$$iso.dirs \ + debian/libreoffice-l10n-$$pkgiso.dirs; \ + mv debian/libreoffice-l10n-$$iso.install \ + debian/libreoffice-l10n-$$pkgiso.install; \ + fi; \ + if [ -e debian/libreoffice-help-$$iso.dirs -a \ + -e debian/libreoffice-help-$$iso.install ]; then \ + mv debian/libreoffice-help-$$iso.dirs \ + debian/libreoffice-help-$$pkgiso.dirs; \ + mv debian/libreoffice-help-$$iso.install \ + debian/libreoffice-help-$$pkgiso.install; \ + fi; \ + fi; \ + done + + # fix up still sneaking in ./. They break dh_install (it installs + # but wrongly complains about it as not-installed files) + perl -pi -e 's,\./,,' debian/libreoffice-common.install + perl -pi -e 's,\./,,' debian/ure.install + +ifneq "$(ENABLE_HELP)" "n" + # remove non-packaged localized help. This a) saves space + # and b) we need this for the following dh_install as there will be + # no .install files created and dh_install will warn/fail due + # to non-installed files. + for iso in $(filter-out en-US,$(LANGPACKISOS)); do \ + if ! `echo $(HELPISOS) | grep -q $$iso` || [ "$$iso" = "sk" ] ; then \ + pkgiso=`echo $$iso | tr A-Z a-z`; \ + rm -rf debian/tmp/pkg/libreoffice-help-$$iso; \ + rm -f debian/libreoffice-help-$$pkgiso.dirs; \ + rm -f debian/libreoffice-help-$$pkgiso.install; \ + fi; \ + done +endif + +ifneq "$(PACKAGE_LIBRELOGO)" "y" + rm -rf debian/tmp/pkg/libreoffice-librelogo +endif + + for i in calc impress draw base writer; do \ + echo "../usr/share/appdata/libreoffice-$$i.appdata.xml /usr/share/metainfo/" >> $(PKGDIR)-$$i.install; \ + done + +ifeq "$(BUILD_PLASMA)" "y" + echo "../usr/share/appdata/org.libreoffice.kde.metainfo.xml /usr/share/metainfo/" >> $(PKGDIR)-plasma.install +endif + +ifeq "$(PACKAGE_LOKIT)" "y" + echo "../../../include/LibreOfficeKit usr/include" > debian/libreofficekit-dev.install +endif +ifeq "$(ENABLE_INTROSPECTION)" "y" + echo "../../../workdir/CustomTarget/sysui/share/libreoffice/LOKDocView-0.1.gir /usr/share/gir-1.0/" >> debian/libreofficekit-dev.install + echo "../../../workdir/CustomTarget/sysui/share/libreoffice/LOKDocView-0.1.typelib /usr/lib/$(DEB_HOST_MULTIARCH)/girepository-1.0" >> debian/gir1.2-lokdocview-0.1.install +endif + +ifneq "$(ENABLE_GUI)" "y" + rm -rf debian/tmp/pkg/libreofficekit-data +endif + + dh_installdirs -A + dh_install -A --sourcedir=debian/tmp/pkg && dh_missing -A --sourcedir=debian/tmp/pkg --fail-missing + + # somehow this isn't installed anymore on -B builds... + if [ ! -f debian/libreoffice-report-builder/$(OODIR)/program/librptlo.so ]; then \ + mkdir -p debian/libreoffice-report-builder/$(OODIR)/program/; \ + for i in librptlo.so librptuilo.so librptxmllo.so; do \ + cp $(CURDIR)/instdir/program/$$i \ + debian/libreoffice-report-builder/$(OODIR)/program/; \ + done; \ + fi + + rm -rf debian/tmp/pkg + + # fix the desktop files.... + cd $(PKGDIR)-common/$(OODIR)/share/xdg/ && \ + for i in *.desktop; do \ + sed -i -e "s/$(OOVER)//" $$i; \ + done +ifneq "$(RELEASE_BUILD)" "y" + cd $(PKGDIR)-common/$(OODIR)/share/xdg/ && \ + for i in *.desktop; do \ + sed -i -e "s/libreofficedev/libreoffice/" $$i; \ + sed -i -e "s/LibreOfficeDev/LibreOffice/" $$i; \ + done +endif + + # move desktop files to their correct packages (and correct dir) + # looks like it's pretty nonstandard to have symlinks; this breaks + # e.g. the generation from the appdata files. So get rid of those + # and move them to the libreoffice-* names after all. + for i in base calc draw impress math writer; do \ + mkdir -p $(PKGDIR)-$$i/usr/share/applications; \ + rm -f $(PKGDIR)-$$i/usr/share/applications/libreoffice-$$i.desktop; \ + mv $(PKGDIR)-common/$(OODIR)/share/xdg/$$i.desktop \ + $(PKGDIR)-$$i/usr/share/applications/libreoffice-$$i.desktop; \ + done + + # move pagein files + for i in calc draw impress writer; do \ + mv $(PKGDIR)-core/$(OODIR)/program/pagein-$$i \ + $(PKGDIR)-$$i/$(OODIR)/program; \ + done + +ifeq "$(ENABLE_HELP)" "y" + # move help to /usr/share + ifeq "$(ENABLE_HTML_HELP)" "y" + mv $(PKGDIR)-help-common/usr/lib \ + $(PKGDIR)-help-common/usr/share + endif + for iso in $(HELPISOS); do \ + pkgiso=`echo $$iso | tr A-Z a-z`; \ + if [ -e $(PKGDIR)-help-$$pkgiso/usr ]; then \ + mv $(PKGDIR)-help-$$pkgiso/usr/lib \ + $(PKGDIR)-help-$$pkgiso/usr/share; \ + fi; \ + done + +ifeq (sk,$(findstring sk,$(HELPISOS))) + # add fake sk help + mkdir -p $(PKGDIR)-help-sk/$(shell echo $(OODIR) | sed -e s/lib/share/)/help + ln -s cs \ + $(PKGDIR)-help-sk/$(shell echo $(OODIR) | sed -e s/lib/share/)/help/sk +endif +endif + +ifeq "$(ENABLE_JAVA)" "y" + ifeq "$(PACKAGE_BASE)" "y" + # move sdbc_hsqldb.jar into -base (do the move + # to /usr/share/java here directly, we do it for the "rest" + # later + mkdir -p $(PKGDIR)-base/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes; \ + mkdir -p $(PKGDIR)-base/$(OODIR)/program/classes; \ + mv $(PKGDIR)-common/$(OODIR)/program/classes/sdbc_hsqldb.jar \ + $(PKGDIR)-base/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes; \ + ln -s $(shell echo /$(OODIR) | sed -e s/lib/share/)/program/classes/sdbc_hsqldb.jar \ + $(PKGDIR)-base/$(OODIR)/program/classes/sdbc_hsqldb.jar + ifneq (,$(filter hsqldb, $(SYSTEM_STUFF))) + # fix the classpath (file:// breaks javahelper) + jh_classpath --classpath="$(HSQLDB_JAR) .." \ + $(PKGDIR)-base/$(shell echo /$(OODIR) | sed -e s/lib/share/)/program/classes/sdbc_hsqldb.jar + endif + ifeq (,$(filter hsqldb, $(SYSTEM_STUFF))) + # we need this in -base. Otherwise we get unwanted package differences + # in the unstable version and backports which might use internal hsqldb + mkdir -p $(PKGDIR)-base/$(OODIR)/program/classes + mv $(PKGDIR)-common/$(OODIR)/program/classes/hsqldb.jar \ + $(PKGDIR)-base/$(OODIR)/program/classes + endif + else + # remove sdbc_hsqldb.jar. otherwise ends up in -java-common + rm -f $(PKGDIR)-common/$(OODIR)/program/classes/sdbc_hsqldb.jar + endif +endif + +ifeq "$(PACKAGE_SDK)" "y" + # move arch-indep stuff into a libreoffice-dev-common + mkdir -p $(PKGDIR)-dev-common/usr/include + mv $(PKGDIR)-dev/usr/include/libreoffice \ + $(PKGDIR)-dev-common/usr/include + # except include/sal/typesizes.h + mkdir -p $(PKGDIR)-dev/usr/include/$(DEB_HOST_MULTIARCH)/libreoffice/sal + mkdir -p $(PKGDIR)-dev/usr/include/libreoffice/sal + mv $(PKGDIR)-dev-common/usr/include/libreoffice/sal/typesizes.h \ + $(PKGDIR)-dev/usr/include/$(DEB_HOST_MULTIARCH)/libreoffice/sal + cd $(PKGDIR)-dev/usr/include/libreoffice/sal/ && \ + ln -s /usr/include/$(DEB_HOST_MULTIARCH)/libreoffice/sal/typesizes.h + mkdir -p $(PKGDIR)-dev-common/usr/share/idl + mv $(PKGDIR)-dev/usr/share/idl/libreoffice \ + $(PKGDIR)-dev-common/usr/share/idl + mkdir -p $(PKGDIR)-dev-common/$(OOSDKDIR) + mv $(PKGDIR)-dev/$(OOSDKDIR)/classes \ + $(PKGDIR)-dev-common/$(OOSDKDIR) + mv $(PKGDIR)-dev/$(OOSDKDIR)/set* \ + $(PKGDIR)-dev-common/$(OOSDKDIR) + # settings/dk.mk is not arch-indep + mkdir -p $(PKGDIR)-dev/$(OOSDKDIR)/settings + mv $(PKGDIR)-dev-common/$(OOSDKDIR)/settings/dk.mk \ + $(PKGDIR)-dev/$(OOSDKDIR)/settings + mv $(PKGDIR)-dev/$(OOSDKDIR)/config* \ + $(PKGDIR)-dev-common/$(OOSDKDIR) + mv $(PKGDIR)-dev/$(OOSDKDIR)/index.html* \ + $(PKGDIR)-dev-common/$(OOSDKDIR) + ifeq "$(ENABLE_JAVA)" "y" + mkdir -p $(PKGDIR)-dev-common/usr/share/libreoffice/sdk + mv $(PKGDIR)-dev/usr/share/libreoffice/sdk/classes \ + $(PKGDIR)-dev-common/usr/share/libreoffice/sdk + endif + mkdir -p $(PKGDIR)-dev-common/$(OODIR)/share/glade + mv $(PKGDIR)-common/$(OODIR)/share/glade/libreoffice-catalog.xml \ + $(PKGDIR)-dev-common/$(OODIR)/share/glade +else + rm -rf $(PKGDIR)-common/$(OODIR)/share/glade +endif + + ifeq "$(PACKAGE_SDK_DOCS)" "y" + # move SDK documentation into own package + rm -rf $(PKGDIR)-dev-doc + mkdir -p $(PKGDIR)-dev-doc/usr/share/doc/libreoffice + mv $(PKGDIR)-dev/usr/share/doc/libreoffice/sdk \ + $(PKGDIR)-dev-doc/usr/share/doc/libreoffice + mkdir -p $(PKGDIR)-dev-doc/$(OOSDKDIR) + ln -sf /usr/share/doc/libreoffice/sdk/docs \ + $(PKGDIR)-dev-doc/$(OOSDKDIR)/docs + mv $(PKGDIR)-dev/$(OOSDKDIR)/examples \ + $(PKGDIR)-dev-doc/$(OOSDKDIR) + rm -f $(PKGDIR)-dev-doc/usr/share/doc/libreoffice/sdk/readme/LICENSE* + # and fix the symlink now dangling due to the move above + cd $(PKGDIR)-dev-common/$(OOSDKDIR) && \ + ln -sf /usr/share/doc/libreoffice/sdk/index.html + endif + +ifeq "$(PACKAGE_SDK)" "y" + ifeq "$(ENABLE_JAVA)" "y" + # compat/safety symlink for SDK Java stuff moved to /usr/share + rm -f $(PKGDIR)-dev-common/$(OOSDKDIR)/classes + mkdir -p $(PKGDIR)-dev-common/$(OOSDKDIR)/classes/com/sun/star/lib/loader + cd $(PKGDIR)-dev-common/$(OOSDKDIR)/classes/com/sun/star/lib/loader && \ + for i in $(CURDIR)/$(PKGDIR)-dev-common/$(shell echo $(OOSDKDIR) | sed -e s/lib/share/)/classes/com/sun/star/lib/loader/*.class; do \ + ln -s `echo $$i | sed -e 's,$(CURDIR)/$(PKGDIR)-dev-common,,'` `basename $$i`; \ + done + ifeq "$(PACKAGE_UNOWINREG_DLL)" "y" + mkdir -p $(PKGDIR)-dev-common/$(OOSDKDIR)/classes/win + mkdir -p $(PKGDIR)-dev-common/usr/lib/$(WIN_TRIPLET) + mv $(PKGDIR)-dev-common/$(shell echo $(OOSDKDIR) | sed -e s/lib/share/)/classes/win/unowinreg.dll \ + $(PKGDIR)-dev-common/usr/lib/$(WIN_TRIPLET) + rmdir $(PKGDIR)-dev-common/$(shell echo $(OOSDKDIR) | sed -e s/lib/share/)/classes/win + chmod 644 $(PKGDIR)-dev-common/usr/lib/$(WIN_TRIPLET)/unowinreg.dll + ln -s /usr/lib/$(WIN_TRIPLET)/unowinreg.dll \ + $(PKGDIR)-dev-common/$(OOSDKDIR)/classes/win/unowinreg.dll + else + rm -rf $(PKGDIR)-dev-common/$(shell echo $(OOSDKDIR) | sed -e s/lib/share/)/classes/win + endif + endif + chmod 644 $(PKGDIR)-dev-common/$(OOSDKDIR)/configure.pl + chmod 755 $(PKGDIR)-dev-common/$(OOSDKDIR)/setsdkenv_unix + + # fix permissions + find $(PKGDIR)-dev-common/usr/share/idl/$(OODIRNAME) -type f -exec chmod 644 {} \; +endif + +ifeq "$(ENABLE_EVO2)" "y" + mkdir -p $(PKGDIR)-evolution/$(OODIR)/presets/database + mkdir -p $(PKGDIR)-evolution/$(OODIR)/share/registry + mv $(PKGDIR)-common/$(OODIR)/presets/database/evolocal.odb \ + $(PKGDIR)-evolution/$(OODIR)/presets/database +endif + +ifeq "$(PACKAGE_BASE)" "y" + mkdir -p debian/python3-access2base/$(shell $(PYTHON) -c 'from distutils import sysconfig; print(sysconfig.get_python_lib())') + mv $(PKGDIR)-common/$(OODIR)/program/access2base.py \ + debian/python3-access2base/$(shell $(PYTHON) -c 'from distutils import sysconfig; print(sysconfig.get_python_lib())') +else + rm -rf $(PKGDIR)-common/$(OODIR)/share/basic/Access2Base + t=`mktemp -q`; grep -v Access2Base $(PKGDIR)-common/$(OODIR)/share/basic/dialog.xlc > \ + $$t && mv $$t $(PKGDIR)-common/$(OODIR)/share/basic/dialog.xlc && rm -f $$t + t=`mktemp -q`; grep -v Access2Base $(PKGDIR)-common/$(OODIR)/share/basic/script.xlc > \ + $$t && mv $$t $(PKGDIR)-common/$(OODIR)/share/basic/script.xlc && rm -f $$t + rm -f $(PKGDIR)-common/$(OODIR)/program/access2base.py +endif + +ifeq "$(PACKAGE_SDK)" "y" + # move gengal stuff into -dev-gui + mkdir -p $(PKGDIR)-dev-gui/$(OODIR)/program + mv $(PKGDIR)-core/$(OODIR)/program/gengal.bin \ + $(PKGDIR)-dev-gui/$(OODIR)/program + mv $(PKGDIR)-common/$(OODIR)/program/gengal \ + $(PKGDIR)-dev-gui/$(OODIR)/program +else + rm -f $(PKGDIR)-core/$(OODIR)/program/gengal.bin + rm -f $(PKGDIR)-common/$(OODIR)/program/gengal +endif + +ifneq "$(ENABLE_REPORTBUILDER)" "y" + # unneeded. a no-Java arch, so the report-builder can't work anyway. + # (and we need to remove it here anyway as it otherwise would end up + # in -base/-core) + rm -rf $(PKGDIR)-report-builder + rm -f $(PKGDIR)-core/$(OODIR)/program/librpt* +else + ifeq "$(PACKAGE_BASE)" "y" + # move rpt stuff into -report-builder-bin + rm -rf $(PKGDIR)-report-builder-bin + mkdir -p $(PKGDIR)-report-builder-bin/$(OODIR)/program + # it seems that --enable/--disable-reportbuiler affects the install + # location. sigh. + if [ -e $(PKGDIR)-core/$(OODIR)/program/librptlo.so ]; then \ + i=core; else i=report-builder; fi; \ + mv $(PKGDIR)-$$i/$(OODIR)/program/librpt* \ + $(PKGDIR)-report-builder-bin/$(OODIR)/program + endif +endif + + # move uno_packages/cache to /var and create symlink for for + # documentation referencing it... + rm -rf $(PKGDIR)-common/$(OODIR)/share/uno_packages + mkdir -p $(PKGDIR)-core/var/spool/$(OODIRNAME)/uno_packages/cache + mkdir -p $(PKGDIR)-core/$(OODIR)/share/uno_packages + ln -s /var/spool/$(OODIRNAME)/uno_packages/cache \ + $(PKGDIR)-core/$(OODIR)/share/uno_packages/cache + perl -pi -e \ + 's,\$$UNO_SHARED_PACKAGES/cache,file:///var/spool/$(OODIRNAME)/uno_packages/cache,g' \ + $(PKGDIR)-common/$(OODIR)/program/unorc + # What is this? unorc per default only mentiones + # share/uno_packages/cache... + rm -rf $(PKGDIR)-common/$(OODIR)/presets/uno_packages + +ifeq "$(ENABLE_FIREBIRD)" "y" + ifeq (,$(filter firebird, $(SYSTEM_STUFF))) + mkdir -p $(PKGDIR)-sdbc-firebird/$(OODIR)/share + mv $(PKGDIR)-common/$(OODIR)/share/firebird \ + $(PKGDIR)-sdbc-firebird/$(OODIR)/share + endif +endif + + # move soffice.cfg files into the "correct" packages + for i in base calc draw impress math writer; do \ + mkdir -p $(PKGDIR)-$$i/$(OODIR)/share/config/soffice.cfg/modules; \ + mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/s$$i \ + $(PKGDIR)-$$i/$(OODIR)/share/config/soffice.cfg/modules; \ + if [ $$i = writer ]; then \ + for i in sweb swform swreport swxform; do \ + mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/$$i \ + $(PKGDIR)-writer/$(OODIR)/share/config/soffice.cfg/modules; \ + done; \ + fi; \ + if [ $$i = base ]; then \ + for i in dbapp dbbrowser dbquery dbrelation dbtable dbtdata \ + sabpilot sbibliography; do \ + mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/$$i \ + $(PKGDIR)-base/$(OODIR)/share/config/soffice.cfg/modules; \ + done; \ + fi; \ + done + mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/dbaccess \ + $(PKGDIR)-base/$(OODIR)/share/config/soffice.cfg + mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/writerperfect \ + $(PKGDIR)-writer/$(OODIR)/share/config/soffice.cfg + mkdir -p $(PKGDIR)-report-builder/$(OODIR)/share/config/soffice.cfg/modules + mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/dbreport \ + $(PKGDIR)-report-builder/$(OODIR)/share/config/soffice.cfg/modules + + find debian/tmp ! -perm -200 | xargs -r chmod u+w + + touch $@ + +# +# Generate maintainer scripts +maintscripts: $(STAMP_DIR)/maintscripts +$(STAMP_DIR)/maintscripts: $(wildcard debian/shell-lib*.sh) $(wildcard debian/*.preinst.in) $(wildcard debian/*.postinst.in) $(wildcard debian/*.prerm.in) $(wildcard debian/*.postrm.in) debian/control + dh_testdir + + rm -f debian/*.{pre,post}{inst,rm} + + # generate maintainer scripts from *.in + for PKG in $(PACKAGES); do \ + for FILE in postinst postrm preinst prerm triggers; do \ + MAINTSCRIPT=debian/$$PKG.$$FILE ; \ + if [ -e $$MAINTSCRIPT.in ]; then \ + sed -n '1,/^#INCLUDE_SHELL_LIB#$$/p' < $$MAINTSCRIPT.in | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' > $$MAINTSCRIPT; \ + if grep -q "lool" $$MAINTSCRIPT.in; then \ + cat debian/shell-lib-lool.sh >> $$MAINTSCRIPT; \ + fi; \ + if egrep -q "(validate_extension|sync_extension)" $$MAINTSCRIPT.in; then \ + cat debian/shell-lib-extensions.sh >> $$MAINTSCRIPT; \ + fi; \ + sed -n '/^#INCLUDE_SHELL_LIB#$$/,$$p' < $$MAINTSCRIPT.in | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >> $$MAINTSCRIPT; \ + perl -pi -e "s/\@LANGPACKISOS\@/$(LANGPACKISOS)/" $$MAINTSCRIPT; \ + perl -pi -e "s,\@OODIR\@,$(OODIR),g" $$MAINTSCRIPT; \ + fi; \ + done; \ + done + # create .ucf files for libreoffice-l10n-*. First generic ones + # libreoffice-l10n.ucf.in, but there also are CJK/CTL specific + # files, too... + for iso in $(filter-out en-US,$(LANGPACKISOS)); do \ + pkgiso=`echo $$iso | tr \[:upper:\] \[:lower:\]`; \ + cat debian/libreoffice-l10n.ucf.in \ + | sed -e "s/\@ISO\@/$$iso/g" \ + > debian/libreoffice-l10n-$$pkgiso.ucf; \ + if [ -f instdir/share/registry/ctl_$$iso.xcd ]; then \ + echo "/usr/lib/libreoffice/share/.registry/ctl_$$iso.xcd /etc/libreoffice/registry/ctl_$$iso.xcd" \ + >> debian/libreoffice-l10n-$$pkgiso.ucf; \ + fi; \ + if [ -f instdir/share/registry/ctlseqcheck_$$iso.xcd ]; then \ + echo "/usr/lib/libreoffice/share/.registry/ctlseqcheck_$$iso.xcd /etc/libreoffice/registry/ctlseqcheck_$$iso.xcd" \ + >> debian/libreoffice-l10n-$$pkgiso.ucf; \ + fi; \ + if [ -f instdir/share/registry/cjk_$$iso.xcd ]; then \ + echo "/usr/lib/libreoffice/share/.registry/cjk_$$iso.xcd /etc/libreoffice/registry/cjk_$$iso.xcd" \ + >> debian/libreoffice-l10n-$$pkgiso.ucf; \ + fi; \ + done + + touch $@ + +# Install files generated by setup into package directories +langpacks: $(STAMP_DIR)/langpacks +$(STAMP_DIR)/langpacks: $(STAMP_DIR)/build-indep $(STAMP_DIR)/install-indep $(SOURCE_TREE)/bin/lo-xlate-lang + + # remove empty uno_packages dirs somehow in the langpacks(?) + for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \ + rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/share/uno_packages; \ + done + + # remove ooo dirs somehow in the langpacks(?) + for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \ + rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/share/dict/ooo; \ + done + + # remove extra license files + for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \ + rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/licenses; \ + rm -f $(PKGDIR)-l10n-$$iso/$(OODIR)/share/readme/LICENSE*; \ + done + + # remove extra readme files + for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \ + rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/readmes; \ + rm -f $(PKGDIR)-l10n-$$iso/$(OODIR)/share/readme/README*; \ + done + + # remove empty help directories + for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \ + rm -rf $(PKGDIR)-l10n-$$iso/$(shell echo $(OODIR) | sed -e s/lib/share/)/help; \ + rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/help; \ + done + + # install technical.dic + for iso in $(LANGPACKISOS); do \ + if [ "$$iso" = "en-US" ]; then pkg=common; \ + elif [ "$$iso" = "ca-valencia" ]; then pkg=l10n-ca; \ + elif [ "$$iso" = "sr-Latn" ]; then pkg=l10n-sr; \ + elif [ "$$iso" = "kmr-Latn" ]; then pkg=l10n-kmr; \ + else pkg=l10n-`echo $$iso | tr A-Z a-z`; \ + fi; \ + mkdir -p $(PKGDIR)-$$pkg/$(OODIR)/share/wordbook/$$iso; \ + install -m644 $(SOURCE_TREE)/extras/source/wordbook/technical.dic \ + $(PKGDIR)-$$pkg/$(OODIR)/share/wordbook/$$iso/technical.dic; \ + done + +ifeq "$(DEB_VENDOR)" "Debian" + # install Debian presentation template + otps=`cd debian/templates; echo *.otp`; \ + for iso in $(LANGPACKISOS); do \ + [ "$$iso" = "en-US" ] && continue; \ + pkgiso=`echo $$iso | tr \[:upper:\] \[:lower:\]`; \ + [ "$$pkgiso" = "ca-valencia" ] && pkgiso=ca; \ + [ "$$pkgiso" = "sr-latn" ] && pkgiso=sr; \ + [ "$$pkgiso" = "kmr-latn" ] && pkgiso=kmr; \ + mkdir -p $(PKGDIR)-l10n-$$pkgiso/$(OODIR)/share/template/$$iso/presnt; \ + for otp in $$otps; do \ + ln -sf ../../en-US/presnt/$$otp \ + $(PKGDIR)-l10n-$$pkgiso/$(OODIR)/share/template/$$iso/presnt/$$odt; \ + done; \ + done +endif + +ifeq (he,$(findstring he,$(LANGPACKISOS))) + perl -pi -e 's#<prop oor:name="CTLSequenceChecking"><value>true</value></prop>#<prop oor:name="CTLSequenceChecking"><value>false</value></prop>#' $(PKGDIR)-l10n-he/$(OODIR)/share/registry/ctl_he.xcd +endif + + touch $@ + +# Install files generated by setup into arch-dependent package directories +install-arch: $(STAMP_DIR)/install-arch +$(STAMP_DIR)/install-arch: $(STAMP_DIR)/build-arch $(STAMP_DIR)/install-common + dh_testdir + dh_testroot + umask 022 + +ifeq "$(ENABLE_JAVA)" "y" + mkdir -p debian/ure/usr/share/java + mv debian/ure/$(OODIR)/program/classes/java_uno.jar \ + debian/ure/usr/share/java + cd debian/ure/$(OODIR)/program/classes && \ + ln -sf /usr/share/java/java_uno.jar java_uno.jar + # remove libraries split out to extra packages + # will be installed using mh_* or jh_* in install-indep + for i in juh jurt ridl unoloader libreoffice; do \ + rm debian/ure/$(OODIR)/program/classes/$$i.jar; \ + done +endif + # and the public libs to their respective packages + for i in sal cppu; do \ + mkdir -p debian/libuno-$${i}3/$(OODIR)/program; \ + mkdir -p debian/libuno-$${i}3/usr/lib/$(DEB_HOST_MULTIARCH); \ + mv debian/ure/$(OODIR)/program/libuno_$${i}.so.3 \ + debian/libuno-$${i}3/$(OODIR)/program; \ + ln -sf /$(OODIR)/program/`basename libuno_$$i.so.3` debian/libuno-$${i}3/usr/lib/$(DEB_HOST_MULTIARCH)/`basename libuno_$$i.so.3`; \ + done + for i in salhelpergcc3 cppuhelpergcc3 purpenvhelpergcc3; do \ + mkdir -p debian/libuno-$${i}-3/$(OODIR)/program; \ + mkdir -p debian/libuno-$${i}-3/usr/lib/$(DEB_HOST_MULTIARCH); \ + mv debian/ure/$(OODIR)/program/libuno_$${i}.so.3 \ + debian/libuno-$${i}-3/$(OODIR)/program; \ + ln -sf /$(OODIR)/program/`basename libuno_$$i.so.3` debian/libuno-$${i}-3/usr/lib/$(DEB_HOST_MULTIARCH)/`basename libuno_$$i.so.3`; \ + done + # we also need libxmlreaderlo.so, libreglo.so and libunoidllo.so (libuno_cppuhelpergcc3.so.3 + # needs it) and libstorelo.so (libreglo.so needs it) + mkdir -p debian/uno-libs-private/$(OODIR)/program + for i in libxmlreaderlo.so libreglo.so libstorelo.so libunoidllo.so; do \ + mv debian/ure/$(OODIR)/program/$$i \ + debian/uno-libs-private/$(OODIR)/program; \ + done + + +ifeq "$(BUILD_PLASMA)" "y" + # install files for "create new" ... + mkdir -p $(PKGDIR)-plasma/usr/share/templates/.source + for i in $(SOURCE_TREE)/extras/source/shellnew/*; do \ + cp $$i $(PKGDIR)-plasma/usr/share/templates/.source/`basename $$i`; \ + done + cat debian/templates/soffice-template.desktop.in \ + | sed -e "s/@APP@/Writer/" \ + | sed -e "s/@EXT@/odt/" \ + | sed -e "s/@TYPE@/text/" \ + > $(PKGDIR)-plasma/usr/share/templates/soffice.odt.desktop + cat debian/templates/soffice-template.desktop.in \ + | sed -e "s/@APP@/Calc/" \ + | sed -e "s/@EXT@/ods/" \ + | sed -e "s/@TYPE@/spreadsheet/" \ + > $(PKGDIR)-plasma/usr/share/templates/soffice.ods.desktop + cat debian/templates/soffice-template.desktop.in \ + | sed -e "s/@APP@/Impress/" \ + | sed -e "s/@EXT@/odp/" \ + | sed -e "s/@TYPE@/presentation/" \ + > $(PKGDIR)-plasma/usr/share/templates/soffice.odp.desktop + cat debian/templates/soffice-template.desktop.in \ + | sed -e "s/@APP@/Draw/" \ + | sed -e "s/@EXT@/odg/" \ + | sed -e "s/@TYPE@/drawing/" \ + > $(PKGDIR)-plasma/usr/share/templates/soffice.odg.desktop +endif + +ifeq "$(ENABLE_EVO2)" "y" + mkdir -p -m755 $(PKGDIR)-evolution/$(OODIR)/program + mv $(PKGDIR)-gnome/$(OODIR)/program/libevoab*.so $(PKGDIR)-evolution/$(OODIR)/program + mv $(PKGDIR)-gnome/$(OODIR)/share/registry/evoab.xcd \ + $(PKGDIR)-evolution/$(OODIR)/share/registry +endif + +ifeq "$(ENABLE_GUI)" "y" + ifeq "$(BUILD_GTK3)" "y" + # split out gtk stuff + mkdir -p $(PKGDIR)-gtk3/$(OODIR)/program/ + mkdir -p debian/liblibreofficekitgtk/$(OODIR)/program + mv $(PKGDIR)-gnome/$(OODIR)/program/* $(PKGDIR)-gtk3/$(OODIR)/program/ + mv $(PKGDIR)-core/$(OODIR)/program/liblibreofficekitgtk.so \ + debian/liblibreofficekitgtk/$(OODIR)/program + endif + ifeq "$(ENABLE_GIO)" "y" + mv $(PKGDIR)-gtk3/$(OODIR)/program/libucpgio1lo.so \ + $(PKGDIR)-gnome/$(OODIR)/program/ + endif + ifeq "$(ENABLE_PACKAGEKIT)" "y" + mv $(PKGDIR)-gtk3/$(OODIR)/program/liblosessioninstalllo.so \ + $(PKGDIR)-gnome/$(OODIR)/program/ + endif +endif + +ifeq "$(PACKAGE_BASE)" "y" + mkdir -p $(PKGDIR)-base-core/$(OODIR)/program + mv $(PKGDIR)-base/$(OODIR)/program/libdbalo.so \ + $(PKGDIR)-base-core/$(OODIR)/program + mv $(PKGDIR)-base/$(OODIR)/program/libdbahsqllo.so \ + $(PKGDIR)-base-core/$(OODIR)/program +endif + +ifeq "$(ENABLE_JAVA)" "y" + ifneq (,$(filter hsqldb, $(SYSTEM_STUFF))) + # link to system hsqldb + mkdir -p $(PKGDIR)-base/$(OODIR)/program/classes + ln -sf $(HSQLDB_JAR) \ + $(PKGDIR)-base/$(OODIR)/program/classes/hsqldb.jar + endif +endif + +ifeq "$(ENABLE_JAVA)" "y" + # move the officebean so into libreoffice-officebean + # the jar will be installed (into libofficebean-java) + # using mh_ in install-indep + rm -rf debian/libofficebean-java + mkdir -p -m755 debian/libofficebean-java/usr/lib/jni + mkdir -p -m755 debian/libofficebean-java/$(OODIR)/program + mv $(PKGDIR)-core/$(OODIR)/program/libofficebean.so \ + debian/libofficebean-java/usr/lib/jni + cd debian/libofficebean-java/$(OODIR)/program && \ + ln -s /usr/lib/jni/libofficebean.so libofficebean.so + sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \ + < $(SOURCE_TREE)/bean/pom.officebean.xml > debian/pom.officebean.xml + mh_installpoms -plibofficebean-java + mh_installjar -plibofficebean-java -l debian/pom.officebean.xml instdir/program/classes/officebean.jar + # create symlink where LO expects it + mkdir -p $(CURDIR)/debian/libofficebean-java/$(OODIR)/program/classes + cd $(CURDIR)/debian/libofficebean-java/$(OODIR)/program/classes && \ + ln -s /usr/share/java/officebean.jar officebean.jar + # fix up Class-Path + jh_classpath --classpath="libreoffice.jar" \ + debian/libofficebean-java/usr/share/java/officebean.jar +endif + + mkdir -p -m755 $(PKGDIR)-base/usr/share/applications \ + $(PKGDIR)-core/usr/share/applications + + sed -i -e 's/Office;/Office;Graphics;/' $(PKGDIR)-draw/usr/share/applications/libreoffice-draw.desktop + sed -i -e 's/Education;Science;//' $(PKGDIR)-math/usr/share/applications/libreoffice-math.desktop + # invalid, according to lintian. make it shut up. + for i in writer calc impress draw math base; do \ + perl -pi -e 's/Application;//; s/X-Red-Hat-Base;//; s/X-SuSE-Core-Office;//; s/X-MandrivaLinux-.*;//;' $(PKGDIR)-$$i/usr/share/applications/libreoffice-$$i.desktop; \ + done + +ifeq "$(ENABLE_PYTHON)" "y" + # PyUNO packaging + install -d $(PYTHON_SITE) + # prepend stuff so that it works when the module is not in LOs + # directories but in $(PYTHON_SITE). Can't be a patch (anymore) + # as otherwise the python-based unittests fail miserably. + echo "import sys, os" > $(PYTHON_SITE)/uno.py + echo "sys.path.append('/$(OODIR)/program')" >> $(PYTHON_SITE)/uno.py + echo "os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:/$(OODIR)/program/fundamentalrc')" >> $(PYTHON_SITE)/uno.py + cat debian/python3-uno/$(OODIR)/program/uno.py >> $(PYTHON_SITE)/uno.py + rm -f debian/python3-uno/$(OODIR)/program/uno.py + mv debian/python3-uno/$(OODIR)/program/unohelper.py $(PYTHON_SITE) + touch debian/python3-uno/$(OODIR)/program/pythonloader.unorc + chmod u+w debian/python3-uno/$(OODIR)/program/pythonloader.unorc + ( echo 'PYTHONHOME=file:///usr/lib/python$(PYMAJOR).$(PYMINOR)' ;\ + echo 'PYTHONPATH=$$PYTHONHOME $$PYTHONHOME/site-packages $$PYTHONHOME/lib-dynload $$PYTHONHOME/lib-tk $$ORIGIN' \ + ) >> debian/python3-uno/$(OODIR)/program/pythonloader.unorc + chmod u-w debian/python3-uno/$(OODIR)/program/pythonloader.unorc + ifeq "$(ENABLE_SCRIPT_PROVIDER_PYTHON)" "y" + rm -f debian/libreoffice-script-provider-python/$(OODIR)/share/extensions/script-provider-for-python/registration/LICENSE + endif + + mkdir -p debian/python3-uno/usr/share/doc/python3-uno + cp -r $(SOURCE_TREE)/pyuno/demo \ + debian/python3-uno/usr/share/doc/python3-uno; \ + for i in $(SOURCE_TREE)/pyuno/doc/*; do \ + cp $$i debian/python3-uno/usr/share/doc/python3-uno; \ + done + cd debian/python3-uno/usr/share/doc/python3-uno && \ + find . -type d -name "CVS" | xargs -r rm -rf +endif + + # should be empty now, remove if there + rm -rf $(PKGDIR)-core/$(OODIR)/ure + +ifeq "$(PACKAGE_SDK)" "y" + # create wrapper scripts + cd $(PKGDIR)-dev/$(OOSDKDIR)/bin && \ + for i in *; do \ + mv $$i $$i.bin && \ + ( \ + echo "#!/bin/sh"; \ + echo "# wrapper script for OOos SDK programs"; \ + echo ""; \ + echo 'LD_LIBRARY_PATH=/$(OODIR)/program /$(OOSDKDIR)/bin/`basename $$0`.bin "$$@"'; \ + ) > $$i; \ + chmod 755 $$i; \ + done + # remove symlink, it should be in -dev-doc + cd $(PKGDIR)-dev/$(OOSDKDIR) && \ + rm docs + + rm -f $(PKGDIR)-dev/usr/share/doc/libreoffice/sdk/readme/LICENSE.gz +endif + + # remove empty resource directories + for i in draw base writer impress calc math; do \ + rm -rf $(PKGDIR)-$$i/$(OODIR)/program/resource; \ + done + +ifeq "$(PACKAGE_SDK)" "y" + ifeq "$(ENABLE_GUI)" "y" + # move ui-previewer into -dev-gui + mkdir -p $(PKGDIR)-dev-gui/$(OODIR)/program + mv $(PKGDIR)-core/$(OODIR)/program/ui-previewer \ + $(PKGDIR)-dev-gui/$(OODIR)/program + endif +else + rm -f $(PKGDIR)-core/$(OODIR)/program/ui-previewer +endif + +ifeq "$(ENABLE_JAVA)" "y" + mkdir -p $(PKGDIR)-sdbc-hsqldb/$(OODIR)/program + mkdir -p $(PKGDIR)-sdbc-hsqldb/usr/lib/libreoffice/program/classes + mkdir -p $(PKGDIR)-sdbc-hsqldb/usr/share/libreoffice/program/classes + mv $(PKGDIR)-base/$(OODIR)/program/libhsqldb.so \ + $(PKGDIR)-sdbc-hsqldb/$(OODIR)/program + ifneq (,$(filter hsqldb, $(SYSTEM_STUFF))) + mv $(PKGDIR)-base/usr/lib/libreoffice/program/classes/hsqldb.jar \ + $(PKGDIR)-sdbc-hsqldb/usr/lib/libreoffice/program/classes + endif + for i in lib share; do \ + mv $(PKGDIR)-base/usr/$$i/libreoffice/program/classes/sdbc_hsqldb.jar \ + $(PKGDIR)-sdbc-hsqldb/usr/$$i/libreoffice/program/classes; \ + done +endif +ifeq "$(ENABLE_FIREBIRD)" "y" + mkdir -p $(PKGDIR)-sdbc-firebird/$(OODIR)/program + mv $(PKGDIR)-core/$(OODIR)/program/libfirebird_sdbclo.so \ + $(PKGDIR)-sdbc-firebird/$(OODIR)/program + ifeq (,$(filter firebird, $(SYSTEM_STUFF))) + for i in libEngine12.so libfbclient.so.2; do \ + mv $(PKGDIR)-core/$(OODIR)/program/$$i \ + $(PKGDIR)-sdbc-firebird/$(OODIR)/program; \ + done + endif +endif + mkdir -p $(PKGDIR)-sdbc-mysql/$(OODIR)/program + mv $(PKGDIR)-base/$(OODIR)/program/libmysqlclo.so \ + $(PKGDIR)-sdbc-mysql/$(OODIR)/program + + mkdir -p $(PKGDIR)-base-drivers/$(OODIR)/program + for i in `find $(PKGDIR)-base/$(OODIR)/program/ -name "*.so" \ + -a \! -name "libdbulo*" -a \! -name "libdbaxml*" -a \! -name "libdbp*" -a \! -name "libabplo.so"`; do \ + mv $$i \ + $(PKGDIR)-base-drivers/$(OODIR)/program; \ + done + +ifeq "$(BUILD_NOGUI_PACKAGES)" "y" + # create no-GUI packages + for p in $(shell dh_listpackages -a | grep nogui | grep -v libreoffice-nogui | cut -d- -f2- | sed -e s/-nogui// | xargs); do \ + rm -rf $(PKGDIR)-$$p-nogui; \ + cp -ra $(PKGDIR)-$$p $(PKGDIR)-$$p-nogui; \ + for i in $(PKGDIR)-$$p-nogui/$(OODIR)/program/*; do \ + if [ -e instdir-nogui/program/`basename $$i` ]; then \ + cp -v instdir-nogui/program/`basename $$i` \ + $(PKGDIR)-$$p-nogui/$(OODIR)/program; \ + else \ + rm -fv $(PKGDIR)-$$p-nogui/$(OODIR)/program/`basename $$i`; \ + fi; \ + done; \ + done + # remove lib*uilo.so in -nogui + find debian/libreoffice-*-nogui/$(OODIR)/program -name "lib*uilo.so" -a ! -name "libuuilo.so" \ + -exec rm {} \; + rm -f debian/libreoffice-base-nogui/$(OODIR)/program/libdbulo.so + # and (no UI, so not needed) not needed .desktop and .ui files + find debian/libreoffice-*-nogui/usr/share/applications/*.desktop -exec rm {} \; + find debian/libreoffice-*-nogui/$(OODIR)/share/config/soffice.cfg -name "*.ui" -exec rm {} \; + # unneeded launchers + find debian/libreoffice-*-nogui/usr/bin/lo* -exec rm {} \; + # otherwise we get errors since the launchers are missing + find debian/libreoffice-*-nogui/usr/share/metainfo/libreoffice-*.appdata.xml -exec rm {} \; + + # OGLTrans.so is not in -impress-nogui so we don't need this either + rm -f debian/libreoffice-impress-nogui/$(OODIR)/share/registry/ogltrans.xcd + rm -f debian/libreoffice-impress-nogui/$(OODIR)/share/config/soffice.cfg/simpress/transitions-ogl.xml + rm -rf debian/libreoffice-impress-nogui/$(OODIR)/opengl +endif + + for i in $(ARCH_DEP_PACKAGES); do \ + if [ -e debian/$$i.bug-script.in ]; then \ + cat debian/$$i.bug-script.in \ + | sed -e "s/@PLATFORMID@/$(PLATFORMID)/" \ + | sed -e "s/@OOVER@/$(OOVER)/" \ + > debian/$$i.bug-script; \ + fi ;\ + if [ -e debian/$$i.ucf ]; then \ + if [ ! -e debian/$$i.bug-script.in ]; then \ + printf "#!/bin/sh\n\n" > debian/$$i.bug-script; \ + fi ;\ + echo "ucfq $$i" >> debian/$$i.bug-script; \ + fi ;\ + done + # generate .links files from *.in + for PKG in $(ARCH_DEP_PACKAGES); do \ + LINKS=debian/$$PKG.links ; \ + if [ -e $$LINKS.in ]; then \ + sed -e "s#\@OODIR\@#$(OODIR)#g" \ + < $$LINKS.in > $$LINKS ; \ + fi; \ + done + + # make config xml "pretty" to make ucf --three-way work. + for p in $(ARCH_DEP_PACKAGES); do \ + for i in `find debian/$$p/$(OODIR)/share/registry -name "*.xcd"`; do \ + t=`mktemp -q`; \ + xmllint --pretty 1 $$i > $$t; \ + mv $$t $$i; \ + done; \ + done + # and "hide" the ucf source registry; makes it less confusing for + # people who do know /usr/lib/libreoffice/share/registry. + for p in $(ARCH_DEP_PACKAGES); do \ + for i in `find debian/$$p -type d -wholename "*$(OODIR)/share/registry"`; do \ + mv $$i `echo $$i | sed -e s/registry/.registry/`; \ + done; \ + done + + touch $@ + +# Install files generated by setup into arch-independent package directories +install-indep: $(STAMP_DIR)/install-indep +#$(STAMP_DIR)/install-indep: debian/libreoffice.install +#$(STAMP_DIR)/install-indep: debian/libreoffice.dirs +$(STAMP_DIR)/install-indep: $(STAMP_DIR)/build-indep $(STAMP_DIR)/install-common + dh_testdir + dh_testroot + +ifneq "$(shell echo $(USE_GSTREAMER) | grep -q y && echo 0)" "0" + # sound doesn't work anyway, remove the .wav files to save space + rm -rf $(PKGDIR)-common/$(OODIR)/share/gallery/sounds + rm -f $(PKGDIR)-common/$(OODIR)/share/gallery/sg9.* +endif + + rm -f $(PKGDIR)-common/$(OODIR)/program/oo_product.bmp + + # install openoffice-xlate-lang + install -d -m755 $(PKGDIR)-common/usr/share/$(OODIRNAME)/bin + install -m755 $(SOURCE_TREE)/bin/lo-xlate-lang \ + $(PKGDIR)-common/usr/share/$(OODIRNAME)/bin + +ifeq "$(ENABLE_HELP)" "n" + # when we don't build helpcontent2 here we are missing helpxsl.zip so + # this file doesn't get installed either. Do it manually.. + mkdir -p -m755 $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/help && \ + cp $(SOURCE_TREE)/xmlhelp/util/main_transform.xsl \ + $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/help + cp $(SOURCE_TREE)/xmlhelp/util/idxcaption.xsl \ + $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/help + cp $(SOURCE_TREE)/xmlhelp/util/idxcontent.xsl \ + $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/help +endif + +ifeq "$(PACKAGE_SDK)" "y" + ifeq "$(PACKAGE_SDK_DOCS)" "y" + rm -f $(PKGDIR)-dev-doc/usr/share/doc/libreoffice-dev-doc/LICENSE + perl -pi -e 's,license.html,http://www.gnu.org/licenses/lgpl.html,' \ + $(PKGDIR)-dev-doc/$(OOSDKDIR)/index.html + find $(PKGDIR)-dev-doc/$(OODIR)/sdk/examples -type f -exec chmod 644 {} \; + endif +endif + +ifeq "$(ENABLE_JAVA)" "y" + # move common Java stuff to -java-common + rm -rf $(PKGDIR)-java-common + mkdir -p $(PKGDIR)-java-common/$(OODIR)/program/classes + mkdir -p $(PKGDIR)-java-common/$(OODIR)/share/Scripts + mkdir -p $(PKGDIR)-java-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes + mv $(PKGDIR)-common/$(OODIR)/share/Scripts/java \ + $(PKGDIR)-java-common/$(OODIR)/share/Scripts + # remove unoil and officebean; installed later/in install-arch by mh_* and in extra packages anyway + rm -f $(PKGDIR)-common/$(OODIR)/program/classes/unoil.jar + rm -f $(PKGDIR)-common/$(OODIR)/program/classes/officebean.jar + # and move the rest + mv $(PKGDIR)-common/$(OODIR)/program/classes/* \ + $(PKGDIR)-java-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes + cd $(PKGDIR)-java-common/$(OODIR)/program/classes && \ + for i in $(CURDIR)/$(PKGDIR)-java-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes/*; do \ + case "`basename $$i`" in aportisdoc.jar|pexcel.jar|pocketword.jar) continue ;; \ + *) ln -s `echo $$i | sed -e 's,$(CURDIR)/$(PKGDIR)-java-common,,'` `basename $$i` ;; esac; \ + done + +ifeq "$(BUILD_TEST_PACKAGES)" "y" + ifeq "$(ENABLE_JUNIT4)" "y" + rm -rf $(PKGDIR)-subsequentcheckbase + mkdir -p $(PKGDIR)-subsequentcheckbase/$(OODIR)/program/classes/ + for jar in OOoRunner test test-tools ConnectivityTools; do \ + cp workdir/Jar/$$jar.jar $(PKGDIR)-subsequentcheckbase/$(OODIR)/program/classes/; \ + done + # fix Class-Path: to not include build path + jh_classpath --classpath="libreoffice.jar OOoRunner.jar file:///usr/share/java/junit4.jar "\ + $(PKGDIR)-subsequentcheckbase/$(OODIR)/program/classes/test.jar + endif + + rm -rf $(PKGDIR)-smoketest-data + mkdir -p $(PKGDIR)-smoketest-data/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes + mkdir -p $(PKGDIR)-smoketest-data/$(OODIR)/program/classes + mv $(PKGDIR)-java-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes/smoketest.jar \ + $(PKGDIR)-smoketest-data/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes + mv $(PKGDIR)-java-common/$(OODIR)/program/classes/smoketest.jar \ + $(PKGDIR)-smoketest-data/$(OODIR)/program/classes + mkdir -p $(PKGDIR)-smoketest-data/usr/share/libreoffice + cp workdir/Extension/TestExtension.oxt \ + $(PKGDIR)-smoketest-data/usr/share/libreoffice + cp workdir/Zip/smoketestdoc.sxw \ + $(PKGDIR)-smoketest-data/usr/share/libreoffice +endif +endif + + # fix permissions + for i in editpic poll savepic show webcast; do \ + chmod 755 $(PKGDIR)-common/$(OODIR)/share/config/webcast/$$i.pl; \ + done + chmod 644 $(PKGDIR)-common/$(OODIR)/CREDITS.fodt + # Do we really need this (ALV2 mandating it) or can this go? + chmod 644 $(PKGDIR)-common/$(OODIR)/NOTICE + + # set PYTHONPATH in unopkg + perl -pi -e 's,unset XENVIRONMENT,unset XENVIRONMENT\n\nexport PYTHONPATH=\"/$(OODIR)/program\"\n\n,' \ + $(PKGDIR)-common/$(OODIR)/program/unopkg + + mkdir -p debian/fonts-opensymbol/usr/share/fonts/truetype/libreoffice + mv $(PKGDIR)-common/$(OODIR)/share/fonts/truetype/opens___.ttf \ + debian/fonts-opensymbol/usr/share/fonts/truetype/libreoffice + # this is double-installed since https://cgit.freedesktop.org/libreoffice/core/commit/?id=25f4cc12fb59284392914c93a0ae6ad199ecc069 + rm -f $(PKGDIR)-common/$(OODIR)/program/resource/common/fonts/opens___.ttf + mkdir -p debian/fonts-opensymbol/etc/fonts/conf.d + mkdir -p debian/fonts-opensymbol/usr/share/fontconfig/conf.avail + # this only works with --without-fonts. Otherwise we get all stuff here, + # not only the Symbol->OpenSymbol part... But we don't support --with-fonts + # build here right now anyway. + mv $(PKGDIR)-common/$(OODIR)/share/fonts/truetype/fc_local.conf \ + debian/fonts-opensymbol/usr/share/fontconfig/conf.avail/30-opensymbol.conf + cd debian/fonts-opensymbol/etc/fonts/conf.d/ && \ + ln -s /usr/share/fontconfig/conf.avail/30-opensymbol.conf + + # remove extra license files + rm -rf $(PKGDIR)-common/$(OODIR)/licenses + rm -f $(PKGDIR)-common/$(OODIR)/share/readme/LICENSE* + rm -f $(PKGDIR)-common/$(OODIR)/THIRDPARTYLICENSEREADME.html + rm -f $(PKGDIR)-common/$(OODIR)/LICENSE + + # remove extra readme files + rm -rf $(PKGDIR)-common/$(OODIR)/readmes + rm -f $(PKGDIR)-common/$(OODIR)/share/readme/README* + rm -f $(PKGDIR)-common/$(OODIR)/README.html + rm -f $(PKGDIR)-common/$(OODIR)/README + + # URE got moved to /usr/lib, so this is obsolete + for i in ure/lib ure; do \ + if [ -e $(PKGDIR)-common/$(OODIR)/$$i ]; then \ + rmdir $(PKGDIR)-common/$(OODIR)/$$i; \ + fi; \ + done + + # move psprint.conf into /etc. for non-GUI it somehow is not installed + # do do it manually. FIXME: is psprint.conf still a thing? +ifeq "$(ENABLE_GUI)" "y" + mkdir -p $(PKGDIR)-common/etc/$(OODIRNAME) + mv $(PKGDIR)-common/$(OODIR)/share/psprint/psprint.conf \ + $(PKGDIR)-common/etc/$(OODIRNAME) +else + mkdir -p $(PKGDIR)-common/etc/$(OODIRNAME) + mkdir -p $(PKGDIR)-common/$(OODIR)/share/psprint + install -m644 vcl/unx/generic/printer/configuration/psprint.conf \ + $(PKGDIR)-common/etc/$(OODIRNAME) +endif + ln -s /etc/$(OODIRNAME)/psprint.conf \ + $(PKGDIR)-common/$(OODIR)/share/psprint/psprint.conf + + # prepare a fake sofficerc in the place where OOo expects it + # which does nothing except reference the "normal" one + # which we put into /etc + mkdir -p $(PKGDIR)-common/etc/$(OODIRNAME) + mv $(PKGDIR)-common/$(OODIR)/program/sofficerc \ + $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc + ( \ + echo "# *DO NOT* CHANGE THIS FILE. IT ONLY TAKES THE SETTINGS FROM"; \ + echo "# /etc/$(OODIRNAME)/sofficerc. CHANGE THAT FILE IF YOU"; \ + echo "# REALLY WANT TO CHANGE SOMETHING."; \ + echo "FHS_CONFIG_FILE=file:///etc/$(OODIRNAME)/sofficerc"; \ + echo "" >> $(PKGDIR)-common/$(OODIR)/program/sofficerc; \ + ) > $(PKGDIR)-common/$(OODIR)/program/sofficerc + cat $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc \ + | perl -p -e 's/(.*)=(.*)/$$1=\$${\$$FHS_CONFIG_FILE:Bootstrap:$$1}/' \ + >> $(PKGDIR)-common/$(OODIR)/program/sofficerc + # except for URE_BOOTSTRAP... + TMP=`mktemp -q`; \ + grep -v URE_BOOTSTRAP $(PKGDIR)-common/$(OODIR)/program/sofficerc > $$TMP && mv $$TMP $(PKGDIR)-common/$(OODIR)/program/sofficerc && \ + grep URE_BOOTSTRAP $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc >> $(PKGDIR)-common/$(OODIR)/program/sofficerc && \ + grep -v URE_BOOTSTRAP $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc > $$TMP && mv $$TMP $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc + + install -m 644 debian/soffice.sh \ + $(PKGDIR)-common/etc/$(OODIRNAME)/soffice.sh + + set -e; \ + for i in $(IMAGES); do \ + z=images_$$i.zip; p=$$i; \ + if [ "$$i" = "breeze_dark" ]; then p=breeze; fi; \ + if [ "$$i" = "breeze_dark_svg" ]; then p=breeze; fi; \ + if [ "$$i" = "breeze_svg" ]; then p=breeze; fi; \ + if [ "$$i" = "elementary_svg" ]; then p=elementary; fi; \ + if [ "$$i" = "sifr_dark" ]; then p=sifr; fi; \ + if [ "$$i" = "sifr_dark_svg" ]; then p=sifr; fi; \ + if [ "$$i" = "karasa_jaga" ]; then p=karasa-jaga; fi; \ + if [ "$$i" = "sukapura_svg" ]; then p=sukapura; fi; \ + mkdir -p $(PKGDIR)-style-$$p/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config; \ + mv $(PKGDIR)-common/$(OODIR)/share/config/$$z \ + $(PKGDIR)-style-$$p/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/; \ + mkdir -p $(PKGDIR)-style-$$p/$(OODIR)/share/config; \ + ln -s /$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/$$z \ + $(PKGDIR)-style-$$p/$(OODIR)/share/config/$$z; \ + done + mkdir -p $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config; \ + mv $(PKGDIR)-common/$(OODIR)/share/config/images_helpimg.zip \ + $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/; \ + mkdir -p $(PKGDIR)-common/$(OODIR)/share/config; \ + ln -s /$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/images_helpimg.zip \ + $(PKGDIR)-common/$(OODIR)/share/config/images_helpimg.zip; \ + +ifeq "$(DEB_VENDOR)" "Debian" + # install Debian presentation template + mkdir -p $(PKGDIR)-common/$(OODIR)/share/template/en-US/presnt + install -m644 debian/templates/*.otp $(PKGDIR)-common/$(OODIR)/share/template/en-US/presnt/ +endif + +ifeq "$(PACKAGE_SDK)" "y" + # add symlinks for docs and examples + cd $(PKGDIR)-dev-doc/$(OOSDKDIR) && \ + rm -rf docs && \ + ln -sf /usr/share/doc/libreoffice/sdk/docs docs +endif + +ifeq "$(ENABLE_JAVA)" "y" + ifeq "$(ENABLE_SCRIPT_PROVIDER_BSH)" "y" + mkdir -p $(PKGDIR)-script-provider-bsh/$(OODIR)/share/Scripts + mv $(PKGDIR)-common/$(OODIR)/share/Scripts/beanshell \ + $(PKGDIR)-script-provider-bsh/$(OODIR)/share/Scripts + endif + + ifeq "$(ENABLE_SCRIPT_PROVIDER_JS)" "y" + mkdir -p $(PKGDIR)-script-provider-js/$(OODIR)/share/Scripts + mv $(PKGDIR)-common/$(OODIR)/share/Scripts/javascript \ + $(PKGDIR)-script-provider-js/$(OODIR)/share/Scripts + endif + + ifeq "$(ENABLE_MEDIAWIKI)" "y" + rm -f $(PKGDIR)-wiki-publisher/$(OODIR)/share/extensions/wiki-publisher/registration/LICENSE + rm -f $(PKGDIR)-wiki-publisher/$(OODIR)/share/extensions/wiki-publisher/license/THIRDPARTYLICENSEREADME.html + endif + + ifeq "$(ENABLE_NLPSOLVER)" "y" + rm -f $(PKGDIR)-nlpsolver/$(OODIR)/share/extensions/nlpsolver/registration/LICENSE + endif +endif + + # unopkg creates stuff in there. + mkdir -p $(PKGDIR)-common/$(OODIR)/share/prereg + mkdir -p $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/usr/var/)/share/prereg/bundled + ln -s /$(shell echo $(OODIR) | sed -e s/usr/var/)/share/prereg/bundled \ + $(PKGDIR)-common/$(OODIR)/share/prereg/bundled + + # dedup + cd $(PKGDIR)-common/usr/share/icons && \ + rdfind -outputname /dev/null -makesymlinks true hicolor gnome + # should happen on dh_link, apparently didn't fix the /home/... symlinks + # so do this... + symlinks -r -s -c $(PKGDIR)-common + + # looks like it's pretty nonstandard to have symlinks; this breaks + # e.g. thegeneration from the appdata files. So get rid of those + # and move them to the libreoffice-* names after all. + mkdir -p $(PKGDIR)-common/usr/share/applications + for i in startcenter xsltfilter; do \ + rm -f $(PKGDIR)-common/usr/share/applications/libreoffice-$$i.desktop; \ + mv $(PKGDIR)-common/$(OODIR)/share/xdg/$$i.desktop \ + $(PKGDIR)-common/usr/share/applications/libreoffice-$$i.desktop; \ + done + + # fix the shebangs to make lintian happy + sed -i "s,/usr/bin/env perl,/usr/bin/perl,g" \ + $(PKGDIR)-common/usr/share/$(OODIRNAME)/bin/lo-xlate-lang + for i in $(PKGDIR)-common/$(OODIR)/share/config/webcast/*.pl; do \ + sed -i "s,/usr/bin/env perl,/usr/bin/perl,g" $$i; \ + done + + for i in $(ARCH_INDEP_PACKAGES); do \ + if [ -e debian/$$i.bug-script.in ]; then \ + cat debian/$$i.bug-script.in \ + | sed -e "s/@PLATFORMID@/$(PLATFORMID)/" \ + > debian/$$i.bug-script; \ + fi ;\ + if [ -e debian/$$i.ucf ]; then \ + if [ ! -e debian/$$i.bug-script.in ]; then \ + printf "#!/bin/sh\n\n" > debian/$$i.bug-script; \ + fi ;\ + echo "ucfq $$i" >> debian/$$i.bug-script; \ + fi ;\ + done + # generate .links files from *.in + for PKG in $(ARCH_INDEP_PACKAGES); do \ + LINKS=debian/$$PKG.links ; \ + if [ -e $$LINKS.in ]; then \ + sed -e "s#\@OODIR\@#$(OODIR)#g" \ + < $$LINKS.in > $$LINKS ; \ + fi; \ + done + + # install extension shell lib for use by extensions not from here + install -D -m644 debian/shell-lib-extensions.sh \ + $(PKGDIR)-common/usr/share/$(OODIRNAME)/shell-lib-extensions.sh + +ifneq "$(ENABLE_HELP)" "n" + ifneq "$(ENABLE_HTML_HELP)" "y" + # those are needed in /usr/share, too + mkdir -p $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/) + mv $(PKGDIR)-common/$(OODIR)/help \ + $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/) + endif +endif + # help is in /usr/share + sed -i 's,$$(instpath)/help,/$(shell echo $(OODIR) | sed -e s/lib/share/)/help,' \ + $(PKGDIR)-common/$(OODIR)/share/registry/main.xcd + + # compat dirs, the split icons thing need it + mkdir -p $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program + mkdir -p $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program + + # enable session handling and recovery + perl -pi -e 's,<prop oor:name="DocumentStoreUIEnabled" oor:type="xs:boolean"><value>false</value></prop>,<prop oor:name="DocumentStoreUIEnabled" oor:type="xs:boolean"><value>true</value></prop>,' $(PKGDIR)-common/$(OODIR)/share/registry/main.xcd + + # examples. move where they belong + mkdir -p $(PKGDIR)-common/usr/share/doc/libreoffice-common/examples + for i in oo-ldap.xcd.sample oo-ad-ldap.xcd.sample; do \ + mv $(PKGDIR)-common/$(OODIR)/share/registry/$$i \ + $(PKGDIR)-common/usr/share/doc/libreoffice-common/examples; \ + ln -s /usr/share/doc/libreoffice-common/examples/$$i $(PKGDIR)-common/etc/libreoffice/registry/$$i; \ + done + + # register technical.dic + perl -pi -e 's/standard.dic;/standard.dic;technical.dic;/' $(PKGDIR)-common/$(OODIR)/share/registry/main.xcd + +#ifeq "$(PACKAGE_SDK)" "y" +# # install gengal stuff into -dev-gui +# mkdir -p $(PKGDIR)-dev-gui/$(OODIR)/program +# install -m644 $(SOURCE_TREE)/svx/$(shell . $(SOURCE_TREE)/bin/get_config_variables OUTPATH PROEXT; echo $$OUTPATH$$PROEXT)/bin/gengalrc \ +# $(PKGDIR)-dev-gui/$(OODIR)/program/gengalrc +#endif + + # package the Java public libraries... +ifeq "$(ENABLE_JAVA)" "y" + # somehow --has-package-version doesn't overwrite version and without <version>...</version> + # we get a NullPointerException when calling mh_installjar + for i in ridl unoloader libreoffice; do \ + sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \ + < $(SOURCE_TREE)/ridljar/pom.$$i.xml > debian/pom.$$i.xml; \ + done + sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \ + < $(SOURCE_TREE)/jurt/pom.jurt.xml > debian/pom.jurt.xml + sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \ + < $(SOURCE_TREE)/javaunohelper/pom.juh.xml > debian/pom.juh.xml + sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \ + < $(SOURCE_TREE)/unoil/pom.unoil.xml > debian/pom.unoil.xml + for i in juh jurt unoil ridl unoloader libreoffice; do \ + mh_installpoms -plib$$i-java; \ + mh_installjar -plib$$i-java -l debian/pom.$$i.xml instdir/program/classes/$$i.jar; \ + done + # create symlinks where LO expects them + for i in juh jurt unoil ridl unoloader libreoffice; do \ + mkdir -p $(CURDIR)/debian/lib$$i-java/$(OODIR)/program/classes; \ + cd $(CURDIR)/debian/lib$$i-java/$(OODIR)/program/classes; \ + ln -s /usr/share/java/$$i.jar $$i.jar; \ + done + + # fix up Class-Path + # make libreoffice.jar to be able to find libjpipe.so. + # See http://markmail.org/message/yacqa7oowugxwmn2 (for juh.jar back then...) + # also: javaunohelper/com/sun/star/comp/helper/Bootstrap.java: NativeLibraryLoader.loadLibrary( Bootstrap.class.getClassLoader(), "juh" ); + # seems to work nevertheless (if called from program/classes?) but fix it + # nevertheless + jh_classpath --classpath="unoloader.jar ../ /$(OODIR)/program" \ + $(CURDIR)/debian/liblibreoffice-java/usr/share/java/libreoffice.jar +endif + +ifeq "$(INSTALL_APPARMOR_PROFILES)" "y" + mkdir -p $(PKGDIR)-common/etc/apparmor.d + ./sysui/desktop/share/apparmor.sh /$(OODIR)/ sysui/desktop/apparmor/ \ + $(PKGDIR)-common/etc/apparmor.d/ false $(CHECK_APPARMOR_PROFILES) + ifneq "$(ENABLE_APPARMOR_PROFILES)" "y" + # disable the apparmor files per default + mkdir -p $(PKGDIR)-common/etc/apparmor.d/disable + cd $(PKGDIR)-common/etc/apparmor.d/disable && \ + for i in oosplash senddoc soffice.bin xpdfimport; do \ + ln -sf /etc/apparmor.d/usr.lib.libreoffice.program.$$i \ + usr.lib.libreoffice.program.$$i; \ + done + endif +endif + + # fix fundamentalrc to not cause + # /usr/lib/libreoffice/program/../program/xpdfimport calls + # we know the path and the apparmor profiles disallow this... + sed -i "s,^BRAND_BASE_DIR=.*,BRAND_BASE_DIR=file:///$(OODIR)," \ + $(PKGDIR)-common/$(OODIR)/program/fundamentalrc + + # make LO look for its "registry" in /etc (ucf-managed) + sed -i "s,^CONFIGURATION_LAYERS=.*\(dconf.*\)$$,CONFIGURATION_LAYERS=xcsxcu:file:///etc/libreoffice/registry res:file:///etc/libreoffice/registry \1," \ + $(PKGDIR)-common/$(OODIR)/program/fundamentalrc + + # make config xml "pretty" to make ucf --three-way work + for p in $(ARCH_INDEP_PACKAGES); do \ + for i in `find debian/$$p/$(OODIR)/share/registry -name "*.xcd"`; do \ + t=`mktemp -q`; \ + xmllint --pretty 1 $$i > $$t; \ + mv $$t $$i; \ + done; \ + done + # and "hide" the ucf source registry; makes it less confusing for + # people who do know /usr/lib/libreoffice/share/registry. Said path + # is a symlink set by libreoffice-common.links + for p in $(ARCH_INDEP_PACKAGES); do \ + for i in `find debian/$$p -type d -wholename "*$(OODIR)/share/registry"`; do \ + mv $$i `echo $$i | sed -e s/registry/.registry/`; \ + done; \ + done + + touch $@ + +binary-arch: $(STAMP_DIR)/binary-arch +$(STAMP_DIR)/binary-arch: $(STAMP_DIR)/install-arch debian/control $(STAMP_DIR)/maintscripts + dh_testdir + dh_testroot + + for pkg in $(ARCH_DEP_PACKAGES) ; do \ + rm -f debian/$$pkg.*.debhelper;\ + rm -rf debian/$$pkg/DEBIAN;\ + done + + dh_installdocs -a -A + cp workdir/CustomTarget/readlicense_oo/readme/README_en-US \ + $(PKGDIR)-core/usr/share/doc/libreoffice-core/README +ifeq "$(BUILD_NOGUI_PACKAGES)" "y" + cp workdir/CustomTarget/readlicense_oo/readme/README_en-US \ + $(PKGDIR)-core-nogui/usr/share/doc/libreoffice-core-nogui/README +endif + dh_ucf -a + for i in $(ARCH_DEP_PACKAGES); do \ + if [ -e debian/$$i.postinst.debhelper ] && grep -q ucf debian/$$i.postinst.debhelper; then \ + sed -i "s/ucf\ /ucf --three-way /" debian/$$i.postinst.debhelper; \ + sed -i "s/ucfr\ /ucfr --force /" debian/$$i.postinst.debhelper; \ + sed -i "s/ucf/ucf (>= 0.8)/" debian/$$i.substvars; \ + fi ; \ + if [ -e debian/$$i.postrm.debhelper ] && grep -q ucf debian/$$i.postrm.debhelper; then \ + sed -i "s/ucfr\ /ucfr --force /" debian/$$i.postrm.debhelper; \ + fi ; \ + done + dh_installdebconf -a + dh_installman -a + for i in writer calc draw base math impress; do \ + for i in `find $(PKGDIR)-$$i -type l -name "lo*.1"`; do \ + mv $$i $$i.gz; \ + if [ "`readlink $$i`" != "libreoffice.1.gz" ]; then \ + ln -sf libreoffice.1.gz $$i.gz; \ + fi; \ + done; \ + done + dh_installchangelogs -a -XChangeLog -k + dh_installmime -a +ifeq "$(ENABLE_PYTHON)" "y" + dh_python3 -ppython3-uno --no-ext-rename --no-guessing-deps + dh_python3 -ppython3-uno --no-ext-rename --no-guessing-deps $(OODIR)/program +endif + dh_lintian -a + dh_bugfiles -a -A + dh_link -a +ifeq "$(BUILD_DBGSYM_PACKAGES)" "y" + for i in libuno-cppu3 libuno-sal3 libreoffice-core libreoffice-writer; do \ + rm -rf debian/.debhelper/$$i/dbgsym-root; \ + done + ifeq "$(BUILD_NOGUI_PACKAGES)" "y" + for i in libreoffice-core-nogui libreoffice-writer-nogui; do \ + rm -rf debian/.debhelper/$$i/dbgsym-root; \ + done + endif + ifeq "$(USE_DWZ)" "y" + dh_dwz -a -- $(DWZ_ARGS) + endif + dh_strip -a + # dh_strip --dbg-package= is not idempotent, force copying of the binaries + # again... + rm -f $(STAMP_DIR)/install-common + + # install gdb helpers + mkdir -p debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR) + mv $(CURDIR)/debian/tmp/usr/share/gdb/auto-load/$(OODIR)/program \ + debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR) + mkdir -p debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/libreoffice/gdb + mv $(CURDIR)/debian/tmp/usr/share/libreoffice/gdb/libreoffice \ + debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/libreoffice/gdb + + # move sal and cppu gdb helpers into their respective packages + for i in sal cppu; do \ + mkdir -p debian/.debhelper/libuno-$${i}3/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program; \ + mkdir -p debian/.debhelper/libuno-$${i}3/dbgsym-root/usr/share/libreoffice/gdb/libreoffice; \ + mv debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program/libuno_$$i.so.3-gdb.py \ + debian/.debhelper/libuno-$${i}3/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program; \ + mv debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/libreoffice/gdb/libreoffice/$$i.py \ + debian/.debhelper/libuno-$${i}3/dbgsym-root/usr/share/libreoffice/gdb/libreoffice; \ + done + + # move sw and writerfilter gdb helpers to writer-dbgsym + mkdir -p debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program + mkdir -p debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/libreoffice/gdb/libreoffice/ + for i in sw writerfilter; do \ + if [ -f debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program/lib$${i}lo.so-gdb.py ]; then \ + mv debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program/lib$${i}lo.so-gdb.py \ + debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program/; \ + fi; \ + mv debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/libreoffice/gdb/libreoffice/$$i.py \ + debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/libreoffice/gdb/libreoffice; \ + done + + # populate -nogui-dbgsym from the gui counterparts +ifeq "$(BUILD_NOGUI_PACKAGES)" "y" + mkdir -p debian/.debhelper/libreoffice-core-nogui/dbgsym-root/usr/share/gdb/auto-load/ + mkdir -p debian/.debhelper/libreoffice-core-nogui/dbgsym-root/usr/share/libreoffice/ + cp -ra debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR) \ + debian/.debhelper/libreoffice-core-nogui/dbgsym-root/usr/share/gdb/auto-load/ + cp -ra debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/libreoffice/gdb \ + debian/.debhelper/libreoffice-core-nogui/dbgsym-root/usr/share/libreoffice + mkdir -p debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/usr/share/gdb + mkdir -p debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/usr/share/libreoffice/ + cp -ra debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/gdb/auto-load/ \ + debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/usr/share/gdb + cp -ra debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/libreoffice/gdb \ + debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/usr/share/libreoffice +endif +else + dh_strip -a --no-automatic-dbgsym +endif + dh_fixperms -a +ifeq "$(BUILD_DBGSYM_PACKAGES)" "y" + # dh_fixperms is not run on -dbgsym. And we get 0775 directories. Fix it + # manually + #16:29 < nthykier> _rene_: I would recommend a "find debian/.debhelper/libreoffice-core/dbgsym-root + # debian/$(UNO_LIBS_DBG_ROOT) debian/.debhelper/libreoffice-writer/dbgsym-root -exec + # chmod go=rX,u+rw,a-s {} +" + #16:29 < nthykier> Should be faster and is the same expression as used by + # dh_fixperms + find debian/.debhelper/libreoffice-core/dbgsym-root debian/.debhelper/libuno*/dbgsym-root debian/.debhelper/libreoffice-writer/dbgsym-root ! -type l -exec chmod go=rX,u+rw,a-s {} + +endif + dh_icons -a + dh_compress -a -X.py -X.mk -X.sxd +ifeq "$(ENABLE_INTROSPECTION)" "y" + dh_girepository -a debian/liblibreofficekitgtk/$(OODIR)/program +endif + dh_strip_nondeterminism -a + for i in sal3 cppu3 salhelpergcc3-3 cppuhelpergcc3-3 purpenvhelpergcc3-3; do \ + dh_makeshlibs -plibuno-$$i -V"libuno-$$i (>= 1:$(shell grep UREPACKAGEVERSION $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | awk '{ print $$2 }' | cut -d. -f1-3)~)" -- -c0 -d -V -v$(BINARY_VERSION); \ + done + dh_makeshlibs -n -pure -V"ure (>= 1:$(shell grep UREPACKAGEVERSION $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | awk '{ print $$2 }' | cut -d. -f1-3)~)" -- -d -V -v$(BINARY_VERSION) + dh_installdeb -a + rm -f debian/shlibs.local +ifeq "$(BUILD_KFREEBSD)" "y" + cat debian/shlibs.override.libc >> debian/shlibs.local +endif + # no shlibs dependencies on internal libs (which are dynamic) +ifeq (,$(filter icu, $(SYSTEM_STUFF))) + cat debian/shlibs.override.icu >> debian/shlibs.local +endif +ifeq (,$(filter libvisio, $(SYSTEM_STUFF))) + cat debian/shlibs.override.libvisio >> debian/shlibs.local +endif +ifeq (,$(filter libwpd, $(SYSTEM_STUFF))) + cat debian/shlibs.override.libwpd >> debian/shlibs.local +endif +ifeq (,$(filter libwpg, $(SYSTEM_STUFF))) + cat debian/shlibs.override.libwpg >> debian/shlibs.local +endif +ifeq (,$(filter libwps, $(SYSTEM_STUFF))) + cat debian/shlibs.override.libwps >> debian/shlibs.local +endif +ifeq (,$(filter libodfgen, $(SYSTEM_STUFF))) + cat debian/shlibs.override.libodfgen >> debian/shlibs.local +endif +ifeq (,$(filter libmwaw, $(SYSTEM_STUFF))) + cat debian/shlibs.override.libmwaw >> debian/shlibs.local +endif +ifeq (,$(filter librevenge, $(SYSTEM_STUFF))) + cat debian/shlibs.override.librevenge >> debian/shlibs.local +endif +ifeq (,$(filter libetonyek, $(SYSTEM_STUFF))) + cat debian/shlibs.override.libetonyek >> debian/shlibs.local +endif +ifeq (,$(filter libstaroffice, $(SYSTEM_STUFF))) + cat debian/shlibs.override.libstaroffice >> debian/shlibs.local +endif +ifeq (,$(filter orcus, $(SYSTEM_STUFF))) + cat debian/shlibs.override.orcus >> debian/shlibs.local +endif +ifeq (,$(filter liblangtag, $(SYSTEM_STUFF))) + cat debian/shlibs.override.liblangtag >> debian/shlibs.local +endif + # the other way as the above, depend on a newer libcmis to that the + # advertised google 2-factor-auth fixes are present +ifneq (,$(filter libcmis, $(SYSTEM_STUFF))) + cat debian/shlibs.override.libcmis >> debian/shlibs.local +endif +ifeq "$(ENABLE_FIREBIRD)" "y" +ifneq (,$(filter firebird, $(SYSTEM_STUFF))) + # force the values of .shlibs which gives us a (wanted) (>= 3.0.0~) + # instead of .symbols which gives os only a (>= 2.5.0.25784~ReleaseCandidate1.ds2)... + cat /var/lib/dpkg/info/libfbclient2*.shlibs >> debian/shlibs.local + +endif +endif + + dh_shlibdeps -a -Nlibreoffice-core-nogui -Nure \ + -Lure -Llibuno-sal3 -Llibpuno-cppu3 -Llibuno-salhelpergcc3-3 -Llibcppuhelpergcc3-3 -Llibuno-purpenvhelpergcc3-3 \ + -l$(CURDIR)/debian/libuno-sal3/$(OODIR)/program:$(CURDIR)/debian/libuno-cppu3/$(OODIR)/program:$(CURDIR)/debian/libuno-salhelpergcc3-3/$(OODIR)/program:$(CURDIR)/debian/libuno-cppuhelpergcc3-3/$(OODIR)/program:$(CURDIR)/debian/libuno-purpenvhelpergcc3-3/$(OODIR)/program:$(CURDIR)/debian/ure/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-core/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-base-core/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-base/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-writer/$(OODIR)/program \ + $(SHLIBS_OVERRIDE) + dh_shlibdeps -pure \ + -Llibuno-sal3 -Llibpuno-cppu3 -Llibuno-salhelpergcc3-3 -Llibcppuhelpergcc3-3 -Llibuno-purpenvhelpergcc3-3 \ + -l$(CURDIR)/debian/libuno-sal3/$(OODIR)/program:$(CURDIR)/debian/libuno-cppu3/$(OODIR)/program:$(CURDIR)/debian/libuno-salhelpergcc3-3/$(OODIR)/program:$(CURDIR)/debian/libuno-cppuhelpergcc3-3/$(OODIR)/program:$(CURDIR)/debian/libuno-purpenvhelpergcc3-3/$(OODIR)/program:$(CURDIR)/debian/ure/$(OODIR)/program \ + -- -xure +ifeq "$(BUILD_NOGUI_PACKAGES)" "y" + dh_shlibdeps -plibreoffice-core-nogui \ + -Lure -Llibuno-sal3 -Llibpuno-cppu3 -Llibuno-salhelpergcc3-3 -Llibcppuhelpergcc3-3 -Llibuno-purpenvhelpergcc3-3 \ + -l$(CURDIR)/debian/libuno-sal3/$(OODIR)/program:$(CURDIR)/debian/libuno-cppu3/$(OODIR)/program:$(CURDIR)/debian/libuno-salhelpergcc3-3/$(OODIR)/program:$(CURDIR)/debian/libuno-cppuhelpergcc3-3/$(OODIR)/program:$(CURDIR)/debian/libuno-purpenvhelpergcc3-3/$(OODIR)/program:$(CURDIR)/debian/ure/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-core-nogui/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-base-core/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-base/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-writer/$(OODIR)/program \ + $(SHLIBS_OVERRIDE) +endif + ifneq (,$(filter coinmp, $(SYSTEM_STUFF))) + perl -pi -e "s/coinor-libcoinutils3v5/coinor-libcoinutils3v5 $(COINUTILS_MINVER)/" \ + debian/libreoffice-calc.substvars + perl -pi -e "s/coinor-libcoinmp1v5/coinor-libcoinmp1v5 $(COINMP_MINVER)/" \ + debian/libreoffice-calc.substvars + endif +ifeq "$(ENABLE_JAVA)" "y" + for p in $(ARCH_DEP_PACKAGES); do \ + jh_depends -p$$p -Xure -Xbase-files; \ + done + # jh_depends adds ure (${source:Version}) entries. They are overly strict + # and do not fit anyway given ure has a different versioning scheme. Excluded + # above, readd here unversioned + perl -pi -e 's/^(java:Depends.*$$)/\1, ure/' \ + debian/libofficebean-java.substvars +endif +# This switch to dh_shlibdeps reduces the 'libXXX not found' warnings but +# causes ldd crashes sometimes when used with fakeroot: +# -l $(PKGDIR)-core/$(OPENOFFICEDIR)/program + dh_gencontrol -a $(DEBHELPER_OPTIONS) \ + -- \ + -V'base-version=$(BASE_VERSION)' \ + -V'oover=$(OOVER)' \ + -V'next-oover=$(NEXT_OOVER)' \ + -V'help-l10n-virtual-version=$(HELP_L10N_VIRTUAL_VERSION)' \ + -V'base-hsqldb-depends=$(BASE_HSQLDB_DEPENDS)' \ + -V'base-firebird-recommends=$(BASE_FIREBIRD_RECOMMENDS)' \ + -V'java-common-depends=$(JAVA_COMMON_DEPENDS) $(JAVA_COMMON_DEPENDS_VERSION)' \ + -V'java-runtime-depends=$(JAVA_RUNTIME_DEPENDS)' \ + -V'Binary-Version=$(BINARY_VERSION)' \ + -V'ooo-officebean-dep=$(OOO_OFFICEBEAN_DEP)' \ + -V'plasma-iconset-dep=$(PLASMA_ICONSET_DEP)' \ + -V'kf5-qt5-depends=$(KF5_QT5_DEPENDS)' \ + -V'lpsolve-dep=$(LPSOLVE_DEP)' \ + -V'gstreamer-plugins-suggests=$(GSTREAMER_PLUGINS_SUGGESTS)' \ + -V'libebook-dep=$(LIBEBOOK_DEP)' \ + -V'idlc-cpp-depends=$(IDLC_CPP_DEPENDS)' \ + -V'pyuno-depends=$(PYUNO_DEPENDS)' \ + -V'gnome-gtk-recommends=$(GNOME_GTK_RECOMMENDS)' \ + -V'firebird-engine-depends=$(FIREBIRD_ENGINE_DEPENDS)' \ + -V'libsane-suggests=$(shell dpkg -S /usr/lib/$(DEB_HOST_MULTIARCH)/libsane.so.1 | cut -d: -f1)' \ + -v$(BINARY_VERSION) +ifeq "$(BUILD_DBGSYM_PACKAGES)" "y" + for i in libuno-sal3 libuno-cppu3 libuno-salhelpergcc3-3 libuno-cppuhelpergcc3-3 libuno-purpenvhelpergcc3-3 \ + libreoffice-core libreoffice-writer; do \ + perl -pi -e 's/^(Depends:.*)/\1\nRecommends: gdb, python3-six/' \ + debian/.debhelper/$$i/dbgsym-root/DEBIAN/control; \ + done + perl -pi -e 's/Recommends: /Recommends: libreoffice-core-dbgsym, /' \ + debian/.debhelper/libreoffice-writer/dbgsym-root/DEBIAN/control + ifeq "$(BUILD_NOGUI_PACKAGES)" "y" + for i in libreoffice-core libreoffice-writer; do \ + perl -pi -e 's/^(Depends:.*)/\1\nRecommends: gdb, python3-six/' \ + debian/.debhelper/$$i-nogui/dbgsym-root/DEBIAN/control; \ + done + perl -pi -e 's/Recommends: /Recommends: libreoffice-core-nogui-dbgsym, /' \ + debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/DEBIAN/control + perl -pi -e 's/^(Recommends:.*)/Replaces: libreoffice-core-nogui-dbgsym (<< 1:6.4.3~rc1-3)\n\1/' \ + debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/DEBIAN/control + perl -pi -e 's/^(Replaces:.*)/Breaks: libreoffice-core-nogui-dbgsym (<< 1:6.4.3~rc1-3)\n\1/' \ + debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/DEBIAN/control + endif +endif + + dh_md5sums -a + dh_builddeb -a $(DEBHELPER_OPTIONS) + + touch $@ + +binary-indep: $(GSI_EXPORT_STAMP) $(STAMP_DIR)/binary-indep +$(STAMP_DIR)/binary-indep: $(STAMP_DIR)/install-indep debian/control $(STAMP_DIR)/maintscripts $(STAMP_DIR)/langpacks +ifneq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_JAVA_ARCHS))) + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + echo "For uploads with binary-all packages, please use arches where Java is enabled" + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" +endif + dh_testdir +ifneq ($(PACKAGE_SDK_DOCS),y) + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + echo "For uploads with binary-all packages, please use arches where the SDK docs are enabled!!!!" + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" +endif + dh_testdir + dh_testroot + + for pkg in $(ARCH_INDEP_PACKAGES) ; do \ + rm -f debian/$$pkg.*.debhelper;\ + rm -rf debian/$$pkg/DEBIAN;\ + done + + dh_installdocs -i -A + cp workdir/CustomTarget/readlicense_oo/readme/README_en-US \ + $(PKGDIR)-common/usr/share/doc/libreoffice-common/README + dh_ucf -i + for i in $(ARCH_INDEP_PACKAGES); do \ + if [ -e debian/$$i.postinst.debhelper ] && grep -q ucf debian/$$i.postinst.debhelper; then \ + sed -i "s/ucf\ /ucf --three-way /" debian/$$i.postinst.debhelper; \ + sed -i "s/ucfr\ /ucfr --force /" debian/$$i.postinst.debhelper; \ + sed -i "s/ucf/ucf (>= 0.8)/" debian/$$i.substvars; \ + fi ; \ + if [ -e debian/$$i.postrm.debhelper ] && grep -q ucf debian/$$i.postrm.debhelper; then \ + sed -i "s/ucfr\ /ucfr --force /" debian/$$i.postrm.debhelper; \ + fi ; \ + done + dh_installman -i + for i in `find $(PKGDIR)-common -type l -name "lo*.1"`; do \ + mv $$i $$i.gz; \ + if [ "`readlink $$i`" != "libreoffice.1.gz" ]; then \ + ln -sf libreoffice.1.gz $$i.gz; \ + fi; \ + done + dh_installchangelogs -i -XChangeLog -Nlibreoffice-librelogo -k +ifeq "$(PACKAGE_LIBRELOGO)" "y" + dh_installchangelogs -plibreoffice-librelogo -k librelogo/source/ChangeLog +endif +ifeq "$(PACKAGE_SDK_DOCS)" "y" + dh_doxygen -plibreoffice-dev-doc +endif + dh_installmime -i + dh_python3 -ppython3-access2base + dh_python3 -plibreoffice-script-provider-python +ifeq "$(ENABLE_HELP)" "y" + ifeq "$(ENABLE_HTML_HELP)" "y" + for iso in $(shell echo $(HELPISOS) | tr A-Z a-z); do \ + sed -e s/@LCODE@/$$iso/ < debian/libreoffice-help.lintian-overrides.in \ + > debian/libreoffice-help-$$iso.lintian-overrides; \ + done + endif +endif + dh_lintian -i + dh_bugfiles -i -A + dh_link -i + dh_fixperms -i + dh_icons -i +ifeq "$(INSTALL_APPARMOR_PROFILES)" "y" + for i in oosplash senddoc soffice.bin xpdfimport; do \ + dh_apparmor -plibreoffice-common --profile-name=usr.lib.libreoffice.program.$$i; \ + done +endif + dh_compress -i -X.py -X.mk -X.sxd -X.xcd.sample + dh_strip_nondeterminism -i + dh_installdeb -i +ifeq "$(ENABLE_JAVA)" "y" + for p in $(ARCH_INDEP_PACKAGES); do \ + if echo "$$p" | grep -q help; then continue; fi; \ + jh_depends -p$$p \ + -Xlibreoffice-report-builder -Xbase-files; \ + done +endif + # jh_depends adds a librhino-java Depends where we still use internal rhino + perl -pi -e "s/librhino-java//" \ + debian/libreoffice-script-provider-js.substvars +ifeq "$(BUILD_TEST_PACKAGES)" "y" + perl -pi -e 's/junit4/junit4 $(JUNIT_MIN_VER)/' \ + debian/libreoffice-subsequentcheckbase.substvars +endif + dh_gencontrol -i $(DEBHELPER_OPTIONS) \ + -Nfonts-opensymbol -- \ + -V'base-version=$(BASE_VERSION)' \ + -V'oover=$(OOVER)' \ + -V'next-oover=$(NEXT_OOVER)' \ + -V'help-l10n-virtual-version=$(HELP_L10N_VIRTUAL_VERSION)' \ + -V'java-common-depends=$(JAVA_COMMON_DEPENDS)' \ + -V'java-runtime-depends=$(JAVA_RUNTIME_DEPENDS)' \ + -V'textcat-data-recommends=$(TEXTCAT_DATA_RECOMMENDS)' \ + -V'numbertext-data-recommends=$(NUMBERTEXT_DATA_RECOMMENDS)' \ + -V'pyuno-depends=$(PYUNO_DEPENDS)' \ + -V'help-depends=$(HELP_DEPENDS)' \ + -V'help-common-depends=$(HELP_COMMON_DEPENDS)' \ + -V'report-builder-jar-depends=$(REPORT_BUILDER_JAR_DEPENDS)' \ + -V'Binary-Version=$(BINARY_VERSION)' \ + -v$(BINARY_VERSION) + dh_gencontrol -pfonts-opensymbol -- \ + -v2:$(shell fontforge -lang=ff -c 'Open($$1); Print ($$fontversion); Quit(0);' debian/fonts-opensymbol/usr/share/fonts/truetype/libreoffice/opens___.ttf)+LibO`echo $(BINARY_VERSION) | cut -d: -f2` +ifeq "$(ENABLE_MEDIAWIKI)" "y" + dh_gencontrol -plibreoffice-wiki-publisher -- \ + -V'java-common-depends=$(JAVA_COMMON_DEPENDS)' \ + -V'java-runtime-depends=$(JAVA_RUNTIME_DEPENDS)' \ + -v$(shell grep "<version" $(SOURCE_TREE)/swext/mediawiki/src/description.xml | perl -pi -e 's,<version value=\"(.*)\"/>,\1,; s/^\s+//')+LibO`echo $(BINARY_VERSION) | cut -d: -f2` +endif +ifeq "$(ENABLE_NLPSOLVER)" "y" + dh_gencontrol -plibreoffice-nlpsolver -- \ + -V'java-common-depends=$(JAVA_COMMON_DEPENDS)' \ + -V'java-runtime-depends=$(JAVA_RUNTIME_DEPENDS)' \ + -v$(shell grep "<version" $(SOURCE_TREE)/nlpsolver/src/com/sun/star/comp/Calc/NLPSolver/description.xml | perl -pi -e 's,<version value=\"(.*)\"/>,\1,; s/^\s+//')+LibO`echo $(BINARY_VERSION) | cut -d: -f2` +endif + dh_md5sums -i + dh_builddeb -i $(DEBHELPER_OPTIONS) + + touch $@ + +binary: binary-arch binary-indep + +ifeq "$(USE_GIT_TARBALLS)" "y" +# $(1) is the upstream name of the repo +# $(2) is the name of the tarball +# $(3) is the path to archive (empty for everything) +# +# according to policy get-orig-source has to download to the current dir, thus +# should not require a dh_testdir. However, like this we can have clean deps +# from build and download the source, configure, build, pack in on piece. As +# get-orig-source is an optional target anyway, we stick to support only this +# case and not random dirs. see also: debian bug 494141 +# also, we need to run configure to create the external tarball anyway + +GIT_INSTALLED:=$(shell which git >/dev/null 2>/dev/null && echo "y") + +get_orig_tarball=$(CURDIR)/../libreoffice_$(DEB_VERSION_UPSTREAM).orig$(1).tar.xz + +define pack_gittarball +$(if $(GIT_INSTALLED),,$(error You need git.)) +dh_testdir +TMPD=`mktemp -d $(if $(TMP),-p $(TMP))` && \ +mkdir $${TMPD}/archive && \ +git clone --bare $(GIT_BASEURL)/$(1) $${TMPD}/repo -b $(GIT_BRANCH) && \ +git archive --remote $${TMPD}/repo --format=tar --prefix libreoffice-$(DEB_VERSION_UPSTREAM)/ $(GIT_TAG) |tar x -C $${TMPD}/archive && \ +tar cvJf $(2) -C $${TMPD}/archive/$(3) --transform 's,./,,' . && \ +rm -rf $${TMPD} +endef + +define unpack_gittarball +dh_testdir +mkdir -p $(CURDIR)/$(1) +test -f $(CURDIR)/$(1)/.gitignore || tar xvJf $(2) -C $(CURDIR)/$(1) $(3) +endef + +ifneq ($(filter get-orig-source unpack,$(MAKECMDGOALS)),) +$(call get_orig_tarball): + $(call pack_gittarball,core,$@,) + +$(call get_orig_tarball,-helpcontent2): + $(call pack_gittarball,help,$@,libreoffice-$(DEB_VERSION_UPSTREAM)/) + +$(call get_orig_tarball,-%): + $(call pack_gittarball,$*,$@,libreoffice-$(DEB_VERSION_UPSTREAM)/) + +# Get upstream external sources +$(call get_orig_tarball,-tarballs): helpcontent2/makefile.pmk translations/makefile.mk .gitignore + dh_testdir + rm -rf tarballs + mkdir -p tarballs + quilt push -a + ./autogen.sh $(filter-out --disable-fetch-external,$(CONFIGURE_FLAGS)) --with-all-tarballs + $(MAKE) download gb_LO_VER=$(DEB_VERSION_UPSTREAM) + tar cvJf $@ -C tarballs --transform 's,./,,' . + +# using flag files for unpacking +.gitignore: $(call get_orig_tarball) + $(call unpack_gittarball,,$<,--strip-components=1) + +translations/makefile.mk: $(call get_orig_tarball,-translations) + $(call unpack_gittarball,translations,$<,) + +helpcontent2/makefile.pmk: $(call get_orig_tarball,-helpcontent2) + $(call unpack_gittarball,helpcontent2,$<,) + +tarballs/fetch.log: $(call get_orig_tarball,-tarballs) patched + $(call unpack_gittarball,tarballs,$<,) + +get-orig-source: $(call get_orig_tarball,-tarballs) tarballs/fetch.log + dh_testdir + +unpack: tarballs/fetch.log + dh_testdir +endif +endif + +ifeq "$(USE_SOURCE_TARBALLS)" "y" +get-orig-source: + PATH=$(CURDIR)/debian/scripts:$$PATH uscan --watchfile=$(CURDIR)/debian/watch --verbose --force + debian/scripts/fix_component_tarballs.sh +endif + +.PHONY: control +.PHONY: clean-debdir clean-instsetoo clean-objectdirs clean default +.PHONY: prepare build build-indep build-arch install-arch install-indep +.PHONY: get-orig-source unpack patched +.PHONY: $(stampdir_targets) + +# vim:set noet ai sts=8 sw=8 tw=0: |