#!/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-2023 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.5 OOVER:=7.5 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) ifneq (,$(shell pwd | grep autopkgtest)) AUTOPKGTEST_BUILD=y $(warning Build for autopkgtest) endif AUTOPKGTEST_CPPUNIT_PACKAGES := $(shell dh_listpackages | grep -v help | grep -v l10n | grep -v dev-doc | grep -v "nogui$$") 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' | cut -d" " -f1) SYSTEM_CLANG_VERSION = $(shell clang -v 2>&1 | head -n1 | awk '{ print $$4 }' | cut -d. -f1) 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-5-6 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 loong64 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390 s390x sparc sparc64 DEBIAN_MAIN_ARCHITECTURES = amd64 arm64 armel armhf i386 mipsel mips64el ppc64el riscv64 s390x PATCHSET=$(DEB_VENDOR) BUILD_DEPS=\ autoconf,\ automake,\ bc,\ bison,\ bzip2,\ flex, \ fontforge-nox | fontforge, \ gperf,\ libfontconfig-dev,\ 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= SYSTEM_STUFF += hunspell SYSTEM_STUFF += altlinuxhyph SYSTEM_STUFF += boost BOOST_VERSION=default ifeq "$(BOOST_VERSION)" "default" BOOST_MINVER= (>= 1.71) 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_ZXING=y SYSTEM_STUFF += zxing BUILD_CAIROCANVAS=y SYSTEM_STUFF += cairo ifeq "$(ENABLE_GUI)" "y" BUILD_PLASMA=y ENABLE_QT5=n #QT5_MINVER= 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 ENABLE_QT6=y # for moc move to /usr/lib/qt6/libxexec QT6_MINVER= (>= 6.2.1+dfsg-2) # 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 # go sure ifeq "$(BUILD_TEST_PACKAGES)" "y" ENABLE_JUNIT4=y endif endif ifeq "$(ENABLE_JAVA)" "y" SYSTEM_STUFF += beanshell SYSTEM_STUFF += hsqldb endif SYSTEM_STUFF += lpsolve USE_SHARED_LPSOLVE=y #LPSOLVE_MIN_VERSION= 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_CURL=y ENABLE_WEBDAV=y ifeq "$(ENABLE_WEBDAV)" "y" ENABLE_CURL=y endif ifeq "$(ENABLE_CURL)" "y" SYSTEM_STUFF += curl 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= USE_LIBSUITESPARSE=y #SUITESPARSE_MIN_VERSION= 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 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 BUILD_GTK4=n 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 SYSTEM_STUFF += dragonbox SYSTEM_STUFF += libfixmath DEFAULT_IMAGE=colibre IMAGES:=$(DEFAULT_IMAGE) colibre_dark colibre_svg colibre_dark_svg sifr sifr_svg sifr_dark sifr_dark_svg breeze breeze_dark breeze_dark_svg breeze_svg elementary elementary_svg karasa_jaga karasa_jaga_svg sukapura sukapura_svg sukapura_dark sukapura_dark_svg CONFIGURE_FLAGS_INDEP += --with-theme="$(IMAGES)" ENABLE_MARIADB=y ifeq "$(ENABLE_MARIADB)" "y" # FIXME: the mysql test doesn't get really tested since it is only ran/built # with CONNECTIVITY_TEST_MYSQL_DRIVER set - and doesn't build on 32bit... The # test is run in autopkgtest on OOO_CHECK_FATAL_ARCHS (aka 64bit archs!) only for # now anyway so let's just hack around here for now and disable the build of it # alltogether when not used and just set CONNECTIVITY_TEST_MYSQL_DRIVER on those # OOO_CHECK_FATAL_ARCHS ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CHECK_FATAL_ARCHS))) export CONNECTIVITY_TEST_MYSQL_DRIVER=dummy endif endif 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 ENABLE_LIBCMIS=y ifeq "$(ENABLE_LIBCMIS)" "y" SYSTEM_STUFF += libcmis endif SYSTEM_STUFF += jpeg SYSTEM_STUFF += libxml SYSTEM_STUFF += expat SYSTEM_STUFF += odbc SYSTEM_STUFF += sane ENABLE_PDFIMPORT=y ENABLE_POPPLER=y SYSTEM_STUFF += poppler ENABLE_PDFIUM=y PACKAGE_GEN=y ifeq "$(PACKAGE_GEN)" "y" # keep packaging gen (s390x is a release arch...), just disable skia. In contrast for # alpha and ia64 (ports-only) where skia also is disabled we set PACKAGE_GEN=n later in # the architecture specific settings ifneq (big,$(DEB_HOST_ARCH_ENDIAN)) ENABLE_SKIA=y endif else ENABLE_SKIA=n endif # see https://cgit.freedesktop.org/libreoffice/core/commit/?id=a0edcc68f94915a78fcc08e70d2cdd752abd9ebb BUILD_DEPS += , libfreetype-dev (>= 2.8.1) [$(filter-out alpha ia64,$(OOO_LE_ARCHS))] BUILD_DEPS += , libfreetype-dev (>= 2.2.0) [$(OOO_BE_ARCHS) alpha ia64] # see architecture-specific stuff below SYSTEM_STUFF += libpng ENABLE_NSS=y ifeq "$(ENABLE_NSS)" "y" SYSTEM_STUFF += nss endif ENABLE_HELP=y ifeq "$(ENABLE_HELP)" "y" ENABLE_HTML_HELP=y ENABLE_XMLHELP=y ifeq "$(ENABLE_HTML_HELP)" "y" HELP_DEPENDS := libreoffice-help-common (= $${binary:Version}), HELP_RECOMMENDS := firefox-esr | epiphany-browser | konqueror | chromium | firefox HELP_COMMON_DEPENDS := node-normalize.css BUILD_DEPS_INDEP += , node-normalize.css HELP_COMMON_DEPENDS += , node-prismjs BUILD_DEPS_INDEP += , node-prismjs else HELP_DEPENDS := libreoffice-writer DEBHELPER_OPTIONS += -Nlibreoffice-help-common endif ifeq "$(ENABLE_XMLHELP)" "y" SYSTEM_STUFF += clucene endif endif SYSTEM_STUFF += lcms2 SYSTEM_STUFF += liblangtag SYSTEM_STUFF += orcus # 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 ifneq "$(AUTOPKGTEST_BUILD)" "y" CHECK_APPARMOR_PROFILES=true endif SYSTEM_STUFF += libnumbertext SYSTEM_STUFF += box2d SYSTEM_STUFF += libwebp SYSTEM_STUFF += libtiff # Default flags to pass to configure CONFIGURE_FLAGS+= \ --with-vendor='$(OOO_VENDOR)' \ --with-extra-buildid='$(DEB_VENDOR) package version: $(BINARY_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 ifneq "$(ENABLE_XMLHELP)" "y" CONFIGURE_FLAGS += --disable-xmlhelp endif else CONFIGURE_FLAGS += --without-helppack-integration --without-help 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) RTL_OS := $(shell grep RTL_OS debian/vars.$(DEB_HOST_ARCH) | cut -d"=" -f2) RTL_ARCH := $(shell grep RTL_ARCH debian/vars.$(DEB_HOST_ARCH) | cut -d"=" -f2) OOO_64BIT_ARCHS = $(filter alpha amd64 arm64 ia64 kfreebsd-amd64 loong64 mips64 mips64el ppc64 ppc64el riscv64 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)) $(eval $(call gen_no_archs,OOO_BE_ARCHS)) OOO_LE_ARCHS = $(filter-out $(OOO_BE_ARCHS),$(OOO_ARCHS)) $(eval $(call gen_no_archs,OOO_LE_ARCHS)) OOO_CLANG_ARCHS := $(filter-out alpha ia64,$(OOO_LE_ARCHS)) $(eval $(call gen_no_archs,OOO_CLANG_ARCHS)) # supported upstream (upstream does aarch64 flatpak builds) OOO_CHECK_ARCHS := amd64 arm64 $(eval $(call gen_no_archs,OOO_CHECK_ARCHS)) OOO_JUNIT_ARCHS := amd64 arm64 $(eval $(call gen_no_archs,OOO_JUNIT_ARCHS)) OOO_CHECK_FATAL_ARCHS := amd64 arm64 # riscv64 is a new architecture. be more strict here. (The testtools pass and (most) of the uitests too # in the meanwhile). FIXME: Ignore and put into the smoketest-only archs. (Based on experience it then # never will get out of this anymore given the remaining issues don't get any attention even right now) OOO_CHECK_ARCHS += riscv64 OOO_JUNIT_ARCHS += riscv64 OOO_CHECK_FATAL_ARCHS += riscv64 # original idea was without armhf, but since --disable-cve-tests for 32bit archs (see below) # this now also passes. and the autopkgtests also pass (also the junit ones). # So let's include armhf in the above OOO_CHECK_ARCHS += armhf OOO_JUNIT_ARCHS += armhf OOO_CHECK_FATAL_ARCHS += armhf # if bridgetest and smoketest fail this is surely not working in a way # we would want in the archive OOO_SMOKETEST_FATAL_ARCHS := $(OOO_ARCHS) # archs where the archive/ci runs autopkgtests OOO_AUTOPKGTEST_ARCHS := $(filter-out riscv64,$(OOO_CHECK_ARCHS) i386 ppc64el s390x) ifeq (alpha,$(findstring $(DEB_HOST_ARCH),$(OOO_ARCHS))) PACKAGE_GEN=n endif ifeq (ia64,$(findstring $(DEB_HOST_ARCH),$(OOO_ARCHS))) PACKAGE_GEN=n endif BUILD_TESTS=y ifeq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) BUILD_TESTS=n endif ifeq "$(DEB_HOST_ARCH_BITS)" "32" # consistently crash in vcl_filters_test when # Testing load file:///<<PKGBUILDDIR>>//vcl/qa/cppunit/graphicfilter/data/tiff/fail/CVE-2017-9936-1.tiff: # CVE-2017-9936 is a memory leak and even a expected failure. # And we are not supposed to test for others' packages CVEs anyway, especially since this is fixed in libtiff # in 4.0.8-3(see https://security-tracker.debian.org/tracker/CVE-2017-9936) so ages ago CONFIGURE_FLAGS += --disable-cve-tests endif 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 "$(RUN_MAKE_CHECK)" "y" ifeq "$(ENABLE_JAVA)" "y" ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_JUNIT_ARCHS))) ENABLE_JUNIT4=y endif endif endif IGNORE_MAKE_FAILURES=- TEST_TIMEOUT := timeout --foreground --preserve-status -v -k 250m 200m ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CHECK_FATAL_ARCHS))) IGNORE_MAKE_FAILURES:= TEST_TIMEOUT:= endif ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_SMOKETEST_FATAL_ARCHS))) IGNORE_MAKE_FAILURES:= TEST_TIMEOUT:= endif endif ifeq "$(RUN_MAKE_CHECK)" "y" BUILD_TESTS=y else BUILD_TESTS=n endif # Java... # upstream says --source=1.8 / --target=1.8 so 1.8 is fine in runtime JAVA_RUNTIME_BASELINE=8 ifeq "$(JDK)" "default" OOO_JAVA_ARCHS = $(filter $(OOO_ARCHS),$(java$(JAVA_RUNTIME_BASELINE)_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 := $(filter amd64 i386 arm64 armhf s390x ppc64 ppc64el,$(OOO_ARCHS)) $(eval $(call gen_no_archs,OOO_NOGUI_ARCHS)) OOO_PDFIUM_ARCHS := $(OOO_ARCHS) $(eval $(call gen_no_archs,OOO_PDFIUM_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-nlpsolver CONFIGURE_FLAGS += --disable-extension-integration --disable-extensions 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 else BUILD_DEPS_INDEP += , junit4 $(JUNIT_MIN_VER) <!nojava> 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 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 ifeq "$(AUTOPKGTEST_BUILD)" "y" # as above (for build-indep), no need to do two builds here... # needs to be here since there is arch-specific rules before BUILD_NOGUI_PACKAGES=n # go sure BUILD_TESTS=y BUILD_TEST_PACKAGES=y ENABLE_JUNIT4=y endif ############# # Distro-specific overrides # Debian Bookworm ifeq "$(DEB_DISTRIBUTION)" "bookworm-backports" BUGS=mailto:debian-backports@lists.debian.org SYSTEM_STUFF := $(filter-out libcmis,$(SYSTEM_STUFF)) BOOKWORM_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 ifneq "$(shell echo $(USE_CLANG)$(ALLOW_CLANG) | grep y)" "" # /usr/bin/ld: /usr/lib/llvm-11/bin/../lib/LLVMgold.so: error loading plugin: /usr/lib/llvm-11/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory # for mips64el and riscv64 that doesn't exist so disable LTO there... ifeq "$(ENABLE_LTO)" "y" ifeq "$(DEB_HOST_ARCH)" "mips64el" ENABLE_LTO=n endif ifeq "$(DEB_HOST_ARCH)" "riscv64" ENABLE_LTO=n endif BUILD_DEPS += , clang (>= 1:12) [ppc64el] # since the llvm-defaults packages pointing to llvm 13(?) it apparently doesn't # automatically pull in llvm-xx-linker-tools anymore which contains the needed LLVMgold.so # (see above). # So build-depend on llvm, too. # We shouldn't depend on llvm-xx-linker-tools since this probably should be # version-agnostic when the default changes (unless explicitely specified of course). ifeq "$(USE_CLANG)" "y" ifeq "$(CLANG_VERSION)" "default" BUILD_DEPS += , llvm else BUILD_DEPS += , llvm-$(CLANG_VERSION)-linker-tools endif else ifeq "$(ALLOW_CLANG)" "y" ifeq "$(CLANG_VERSION)" "default" BUILD_DEPS += , llvm$(OOO_NO_CLANG_ARCHS) else BUILD_DEPS += , llvm-$(CLANG_VERSION)-linker-tools$(OOO_NO_CLANG_ARCHS) endif endif endif endif endif ifeq "$(USE_DWZ)" "y" # dwz errors out with # dwz: debian/libreoffice-core/usr/lib/libreoffice/program/libskialo.so: Unknown debugging section .debug_addr # since clang 14 ifeq "$(USE_CLANG)" "y" USE_DWZ := n endif ifeq "$(ENABLE_SKIA)" "y" ifneq "$(shell echo $(ALLOW_CLANG) | grep y)" "" ifeq "$(shell dpkg --compare-versions $(SYSTEM_CLANG_VERSION) ge 14 && echo true)" "true" DH_DWZ_ARGS += -Xskia endif endif endif endif 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 # 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 ($(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 # and also on s390x since it otherwise gets miscompiled. # Upstream tracked it down to a gcc bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106355 # but # 16:37 <@sberg> _rene_, I couldn't reproduce the issue with an -O0 (--enable-dbgutil) build, and can with a -O2 (no --enable-debug etc.) one # and: bridgetest fails when built with gcc 13, works with 12 ifneq "$(BOOKWORM_BACKPORT)" "y" BUILD_DEPS += , gcc-12 [s390x], g++-12 [s390x] endif ifeq "$(DEB_HOST_ARCH)" "s390x" ifneq "$(BOOKWORM_BACKPORT)" "y" CONFIGURE_FLAGS+= \ CC=$(CC_PREFIX)gcc-12 \ CXX=$(CC_PREFIX)g++-12 endif ifneq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS))) DEB_BUILD_OPTIONS += noopt endif endif # same as s390x above, bridgetest fails when built with gcc 13, works with 12 ifneq "$(BOOKWORM_BACKPORT)" "y" BUILD_DEPS += , gcc-12 [i386], g++-12 [i386] endif ifeq "$(DEB_HOST_ARCH)" "i386" ifneq "$(BOOKWORM_BACKPORT)" "y" CONFIGURE_FLAGS+= \ CC=$(CC_PREFIX)gcc-12 \ CXX=$(CC_PREFIX)g++-12 endif endif # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1039906#26 ifeq "$(DEB_HOST_ARCH)" "riscv64" ifneq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS))) DEB_BUILD_OPTIONS += noopt 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 "$(ENABLE_SKIA)" "y" ifeq "$(ALLOW_CLANG)" "y" ifeq (ccache,$(findstring ccache,$(DEB_BUILD_OPTIONS))) export CCACHE_CPP2=1 endif ifeq "$(CLANG_VERSION)" "default" export LO_CLANG_CC=clang export LO_CLANG_CXX=clang++ BUILD_DEPS += , clang (>= 1:8.0.1)$(OOO_NO_CLANG_ARCHS) # see #963162, #963167 which apparently don't exist on 11 BUILD_DEPS += , clang (>= 1:11) [armel] else export LO_CLANG_CC=clang-$(CLANG_VERSION) export LO_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:8.0.1) 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 += , clang (>= 1:12.0.1), libclang-dev (>= 1:12.0.1), llvm-dev (>= 1:12.0.1) else BUILD_DEPS += , libclang-$(CLANG_VERSION)-dev, llvm-$(CLANG_VERSION)-dev endif endif endif USE_GOLD=n ALLOW_GOLD=n # leaves cruft around after building because it runs update_pch.sh.. ENABLE_PCH=n ifeq "$(PACKAGE_SDK)" "y" CONFIGURE_FLAGS += --enable-odk ifeq "$(PACKAGE_SDK_DOCS)" "y" BUILD_DEPS_INDEP += , doxygen <!nodoc>, graphviz <!nodoc> else CONFIGURE_FLAGS += --without-doxygen --without-javadoc endif endif ifeq "$(ENABLE_PDFIMPORT)" "y" ifeq "$(ENABLE_POPPLER)" "y" BUILD_DEPS += , libpoppler-dev, libpoppler-private-dev, libpoppler-cpp-dev ifeq "$(RUN_MAKE_CHECK)" "y" BUILD_DEPS_ARCH += , poppler-data$(OOO_NO_CHECK_ARCHS) <!nocheck> endif else CONFIGURE_FLAGS += --disable-poppler endif ifeq "$(ENABLE_PDFIUM)" "n" CONFIGURE_FLAGS += --disable-pdfium else SYSTEM_STUFF += abseil SYSTEM_STUFF += openjpeg ifneq (,$(filter openjpeg, $(SYSTEM_STUFF))) BUILD_DEPS += , libopenjp2-7-dev [$(OOO_PDFIUM_ARCHS)] endif ifneq (,$(filter abseil, $(SYSTEM_STUFF))) BUILD_DEPS += , libabsl-dev [$(OOO_PDFIUM_ARCHS)] endif endif endif ifneq (,$(filter graphite, $(SYSTEM_STUFF))) BUILD_DEPS += , libgraphite2-dev endif ifneq (,$(filter harfbuzz, $(SYSTEM_STUFF))) BUILD_DEPS += , libharfbuzz-dev (>= 5.1.0) endif ifneq (,$(filter libexttextcat, $(SYSTEM_STUFF))) BUILD_DEPS += , libexttextcat-dev TEXTCAT_DATA_RECOMMENDS := libexttextcat-data endif ifneq "$(ENABLE_LDAP)" "y" CONFIGURE_FLAGS += --disable-ldap endif ifneq (,$(filter libnumbertext, $(SYSTEM_STUFF))) BUILD_DEPS += , libnumbertext-dev (>= 1.0.6) ifeq "$(RUN_MAKE_CHECK)" "y" # https://cgit.freedesktop.org/libreoffice/core/commit/?h=libreoffice-7-3&id=09dfe214a30f58ddcd7a857db8f5eee68d4cef2a BUILD_DEPS_ARCH += , libnumbertext-data (>= 1.0.11) <!nocheck> endif NUMBERTEXT_DATA_RECOMMENDS := libnumbertext-data endif ifneq (,$(filter jpeg, $(SYSTEM_STUFF))) BUILD_DEPS += , libjpeg-dev endif ifneq (,$(filter libxml, $(SYSTEM_STUFF))) BUILD_DEPS += , libxml2-dev, libxml2-utils BUILD_DEPS += , libxslt1-dev else CONFIGURE_FLAGS += --without-system-libxml endif ifneq (,$(filter xmlsec, $(SYSTEM_STUFF))) BUILD_DEPS += , libxmlsec1-dev (>= 1.2.35) endif ifneq (,$(filter expat, $(SYSTEM_STUFF))) BUILD_DEPS += , libexpat1-dev endif ifneq (,$(filter odbc, $(SYSTEM_STUFF))) BUILD_DEPS += , unixodbc-dev endif ifneq (,$(filter sane, $(SYSTEM_STUFF))) BUILD_DEPS += , libsane-dev endif ifneq (,$(filter libpng, $(SYSTEM_STUFF))) BUILD_DEPS += , libpng-dev endif # otherwise librdf0-dev (which we also need) is uninstallable... ifeq ($(BOOKWORM_BACKPORT),y) CURL_SECTYPE=gnutls else # ... from trixie onwards it seems it has an alternative which allows openssl CURL_SECTYPE=openssl endif ifeq "$(ENABLE_CURL)" "y" ifneq (,$(filter curl, $(SYSTEM_STUFF))) BUILD_DEPS += , libcurl4-$(CURL_SECTYPE)-dev (>= 7.68) endif else CONFIGURE_FLAGS += --disable-curl endif ifneq (,$(filter box2d, $(SYSTEM_STUFF))) BUILD_DEPS += , libbox2d-dev endif ifneq (,$(filter libwebp, $(SYSTEM_STUFF))) BUILD_DEPS += , libwebp-dev endif ifneq (,$(filter libtiff, $(SYSTEM_STUFF))) BUILD_DEPS += , libtiff-dev endif # go sure given #873362 COINMP_MINVER=(>= 1.8.3-3) #COINUTILS_MINVER= 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))) ifneq "$(AUTOPKGTEST_BUILD)" "y" SMALL_SYMBOLS = n endif endif # silence long-obsolete warnings. Should probably be in # upstreams makefiles but I failed to get it actually appear... ifeq "$(DEB_HOST_ARCH)" "armel" DEB_CXXFLAGS_MAINT_APPEND = -Wno-psabi endif ifeq "$(DEB_HOST_ARCH)" "armhf" DEB_CXXFLAGS_MAINT_APPEND = -Wno-psabi 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 <!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_ARCH += , $(PYTHON)-lxml$(OOO_NO_CHECK_ARCHS) <!nocheck !nopython> else CONFIGURE_FLAGS += --without-lxml endif endif endif BUILD_DEPS += , debhelper-compat (= 12) BUILD_DEPS += , dpkg-dev (>= 1.20.1) ifeq "$(RUN_MAKE_CHECK)" "y" BUILD_DEPS_ARCH += , locales$(OOO_NO_CHECK_ARCHS) <!nocheck> BUILD_DEPS_ARCH += , gdb$(OOO_NO_CHECK_ARCHS) <!nocheck> BUILD_DEPS_ARCH += , fontconfig [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck> ifeq ($(BOOKWORM_BACKPORT),y) BUILD_DEPS_ARCH += , fonts-liberation2 [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck> else BUILD_DEPS_ARCH += , fonts-liberation (>= 1:2) [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck> endif ifneq "$(BOOKWORM_BACKPORT)" "y" BUILD_DEPS_ARCH += , fonts-crosextra-carlito (>= 20230309) [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck> else BUILD_DEPS_ARCH += , fonts-crosextra-carlito (<< 20230309) [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck> endif # https://lists.freedesktop.org/archives/libreoffice/2017-May/077764.html BUILD_DEPS_ARCH += , fonts-dejavu [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck> # used in vcl/qa/cppunit/text.cxx:void VclTextTest::testImplLayoutArgs_PrepareFallback_precalculatedglyphs() BUILD_DEPS_ARCH += , fonts-hosny-amiri [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck> # sdext/source/pdfimport/test/tests.cxx (the test PDF uses NaskhArabic) and the result of the import is # checked which fails without the font. Also used in /vcl/qa/cppunit/complextext.cxx (VclComplexTextTest::testCaching()) BUILD_DEPS_ARCH += , fonts-noto-core [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck> # FIXME: Linux Libertine G (does fonts-linuxlibertine even contain it?, I don't see the _G files?) # now is used in test documents. # now we get a abort if fonts is not found and replaced in layout tests (even though # https://cgit.freedesktop.org/libreoffice/core/commit/?id=172270a8f04388a8f8062f672f9c3f3144a01a1f suggests that # it isn't the case in --without-fonts) but... And while we disable that abort via patch having this # to be sure there is no other failure mode makes sense (as with the other fonts above) BUILD_DEPS_ARCH += , fonts-linuxlibertine [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck> # 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_ARCH += , pstoedit$(OOO_NO_CHECK_ARCHS) <!nocheck> BUILD_DEPS_ARCH += , imagemagick$(OOO_NO_CHECK_ARCHS) <!nocheck> BUILD_DEPS_ARCH += , ghostscript$(OOO_NO_CHECK_ARCHS) <!nocheck> BUILD_DEPS_ARCH += , hunspell-en-us$(OOO_NO_CHECK_ARCHS) <!nocheck> BUILD_DEPS_ARCH += , hyphen-en-us$(OOO_NO_CHECK_ARCHS) <!nocheck> endif # we don't run any cppunit check in all builds ifneq "$(AUTOPKGTEST_BUILD)" "y" ifneq (,$(filter cppunit, $(SYSTEM_STUFF))) BUILD_DEPS_ARCH += , libcppunit-dev <!nocheck> # without the deterministic order patch the xmlsecurity_signing test fails. See # https://cgit.freedesktop.org/libreoffice/core/commit/external/cppunit/order.patch.0?id=2f2246d22e2a8ccbc1dc3e6f5243734a61edf270 ifeq "$(ENABLE_LTO)" "y" BUILD_DEPS_ARCH += , libcppunit-dev (>= 1.15.1-4) [$(filter $(OOO_CHECK_ARCHS),$(OOO_64BIT_ARCHS))] <!nocheck> endif endif ifeq ($(MAKECMDGOALS),build-indep) CONFIGURE_FLAGS_INDEP += --without-cppunit endif 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 bn-IN 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 bn-IN 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 <!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$(OOO_NO_JAVA_ARCHS) <!nojava>, ant-optional$(OOO_NO_JAVA_ARCHS) <!nojava> else # report-builder is done in build-arch already ifneq (,$(filter jfreereport, $(SYSTEM_STUFF))) BUILD_DEPS += , ant$(OOO_NO_JAVA_ARCHS) <!nojava> else BUILD_DEPS_INDEP += , ant$(OOO_NO_JAVA_ARCHS) <!nojava> endif endif JAVA_RUNTIME_DEPENDS = default-jre (>= 2:1.$(JAVA_RUNTIME_BASELINE)) JAVA_RUNTIME_DEPENDS += | java-runtime (>= $(JAVA_RUNTIME_BASELINE)) | java$(JAVA_RUNTIME_BASELINE)-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 "$(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$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libflute-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libpentaho-reporting-flow-engine-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, liblayout-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libloader-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libformula-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, librepository-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libfonts-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libserializer-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava> REPORT_BUILDER_JAR_DEPENDS := , libbase-java, libsac-java, libxml-java, libflute-java, libpentaho-reporting-flow-engine-java, liblayout-java, libloader-java, libformula-java, librepository-java, libfonts-java, libserializer-java 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 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 += -Nlibofficebean-java -Nlibreoffice-java-common -Nlibreoffice-script-provider-bsh -Nlibreoffice-script-provider-js -Nlibreoffice-subsequentcheckbase -Nlibofficebean-java -Nlibunoloader-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 ifeq "$(ENABLE_NSS)" "y" ifneq (,$(filter nss, $(SYSTEM_STUFF))) BUILD_DEPS+= , libnss3-dev BUILD_DEPS+= , libnspr4-dev else CONFIGURE_FLAGS += --without-system-nss endif else CONFIGURE_FLAGS += --disable-nss endif ifneq (,$(filter hunspell, $(SYSTEM_STUFF))) BUILD_DEPS += , libhunspell-dev endif CONFIGURE_FLAGS += --with-external-dict-dir=$(DICT_DIR) ifneq (,$(filter altlinuxhyph, $(SYSTEM_STUFF))) BUILD_DEPS += , libhyphen-dev 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 ifneq (,$(filter dragonbox, $(SYSTEM_STUFF))) BUILD_DEPS += , libdragonbox-dev (>= 1.1.3) endif ifneq (,$(filter libfixmath, $(SYSTEM_STUFF))) BUILD_DEPS += , libfixmath-dev endif endif ifneq "$(ENABLE_SKIA)" "y" CONFIGURE_FLAGS += --disable-skia endif ifneq (,$(filter mdds, $(SYSTEM_STUFF))) BUILD_DEPS += , libmdds-dev (>= 2.0), libmdds-dev (<< 2.1~) endif ifneq (,$(filter orcus, $(SYSTEM_STUFF))) BUILD_DEPS += , liborcus-dev (>= 0.17.2), liborcus-dev (<< 0.18~) endif ifeq "$(ENABLE_XMLHELP)" "y" ifneq (,$(filter clucene, $(SYSTEM_STUFF))) BUILD_DEPS += , libclucene-dev endif 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_ARCH += , libwps-dev (>= 0.4.12)$(OOO_NO_CHECK_ARCHS) <!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~) # configure.ac checks for >= 0.3.21 BUILD_DEPS += , libmwaw-dev (>= 0.3.21), libmwaw-dev (<< 0.4~) # ifeq "$(RUN_MAKE_CHECK)" "y" # BUILD_DEPS_ARCH += , libmwaw-dev (>= 0.3.21)$(OOO_NO_CHECK_ARCHS) <!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_ARCH += , libetonyek-dev (>= 0.1.8)$(OOO_NO_CHECK_ARCHS) <!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_ARCH += , libstaroffice-dev (>= 0.0.3)$(OOO_NO_CHECK_ARCHS) <!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_ARCH += , libe-book-dev (>= 0.1.2)$(OOO_NO_CHECK_ARCHS) <!nocheck> endif endif ifeq "$(ENABLE_LIBCMIS)" "y" ifneq (,$(filter libcmis, $(SYSTEM_STUFF))) BUILD_DEPS += , libcmis-dev (>= 0.6.1~), libcmis-dev (<< 0.7~) endif else CONFIGURE_FLAGS += --disable-libcmis endif ifeq "$(ENABLE_ZXING)" "y" ifneq (,$(filter zxing, $(SYSTEM_STUFF))) # https://cgit.freedesktop.org/libreoffice/core/commit/?id=d53340b2253537104abe6f95c8c63cc74487c3ec BUILD_DEPS += , libzxing-dev (>= 1.2.0) endif else CONFIGURE_FLAGS += --disable-zxing endif endif CONFIGURE_FLAGS += --with-external-thes-dir=$(THES_DIR) ifeq "$(INSTALL_APPARMOR_PROFILES)" "y" BUILD_DEPS_INDEP += , dh-apparmor ifeq "$(CHECK_APPARMOR_PROFILES)" "true" BUILD_DEPS_INDEP += , 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 += , libldap-dev endif ifneq (,$(filter liblangtag, $(SYSTEM_STUFF))) BUILD_DEPS += , liblangtag-dev endif ifneq (,$(filter icu, $(SYSTEM_STUFF))) BUILD_DEPS += , libicu-dev 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 BUILD_DEPS += , libxcb1-dev BUILD_DEPS += , libxcb-icccm4-dev endif ifeq "$(ENABLE_QT6)" "y" CONFIGURE_FLAGS += --enable-qt6 BUILD_DEPS += , qt6-base-dev $(QT6_MINVER), qmake6 $(QT6_MINVER), qt6-base-dev-tools $(QT6_MINVER) BUILD_DEPS += , libxcb1-dev endif ifeq "$(ENABLE_MARIADB)" "y" 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 else CONFIGURE_FLAGS += --disable-mariadb-sdbc DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-mysql 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$(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$(OOO_NO_FIREBIRD_ARCHS) # we need libEngine12.so ifeq "$(RUN_MAKE_CHECK)" "y" BUILD_DEPS_ARCH += , 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, libglib2.0-dev 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, libgirepository1.0-dev CONFIGURE_FLAGS += --enable-introspection else DEBHELPER_OPTIONS+= -Ngir1.2-lokdocview-0.1 endif endif ifeq "$(BUILD_GTK4)" "y" BUILD_DEPS += , libgtk-4-dev, libglib2.0-dev, libcairo2-dev, libatk1.0-dev CONFIGURE_FLAGS += --enable-gtk4 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 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 CONFIGURE_FLAGS += --enable-python=system endif ifneq "$(PACKAGE_LIBRELOGO)" "y" DEBHELPER_OPTIONS+= -Nlibreoffice-librelogo CONFIGURE_FLAGS += --disable-librelogo endif ifeq "$(ENABLE_JAVA)" "y" ifneq (,$(filter hsqldb, $(SYSTEM_STUFF))) #HSQLDB_MINVER= 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 += , libbsh-java <!nojava> endif CONFIGURE_FLAGS += --enable-scripting-beanshell else CONFIGURE_FLAGS += --disable-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 CONFIGURE_FLAGS += --enable-dbus ifeq "$(ENABLE_BLUETOOTH)" "y" BUILD_DEPS += , libglib2.0-dev 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" ifneq (,$(filter curl, $(SYSTEM_STUFF))) BUILD_DEPS += , libcurl4-$(CURL_SECTYPE)-dev (>= 7.68) endif ENABLE_CURL=y else CONFIGURE_FLAGS += --with-webdav=no endif ENABLE_SAL_OPENSSL_BACKEND=n ifneq "$(ENABLE_SAL_OPENSSL_BACKEND)" "y" ifneq (,$(filter mariadb, $(SYSTEM_STUFF))) ifneq (,$(filter postgresql, $(SYSTEM_STUFF))) CONFIGURE_FLAGS += --disable-openssl endif endif else CONFIGURE_FLAGS += --enable-cipher-openssl-backend SYSTEM_STUFF += openssl BUILD_DEPS += , libssl-dev endif SYSTEM_STUFF += lockfile ifneq (,$(filter lockfile, $(SYSTEM_STUFF))) BUILD_DEPS += , liblockfile-bin endif ifneq (,$(filter redland, $(SYSTEM_STUFF))) BUILD_DEPS += , librdf0-dev endif ifeq "$(ENABLE_GUI)" "y" ifneq (,$(filter epoxy, $(SYSTEM_STUFF))) BUILD_DEPS += , libepoxy-dev else BUILD_DEPS += , libegl1-mesa-dev endif endif ifneq (,$(filter glm, $(SYSTEM_STUFF))) BUILD_DEPS += , libglm-dev endif ifneq (,$(filter gpgmepp, $(SYSTEM_STUFF))) BUILD_DEPS+= , libgpgmepp-dev (>= 1.14), libgpgme-dev, libgpg-error-dev endif ifeq "$(RUN_MAKE_CHECK)" "y" BUILD_DEPS_ARCH += , gpg$(OOO_NO_CHECK_ARCHS) <!nocheck> BUILD_DEPS_ARCH += , gpgconf$(OOO_NO_CHECK_ARCHS) <!nocheck> BUILD_DEPS_ARCH += , gpg-agent$(OOO_NO_CHECK_ARCHS) <!nocheck> endif ifeq "$(ENABLE_GIO)" "y" ifneq "$(BUILD_GTK3)" "y" BUILD_DEPS += , libglib2.0-dev endif else CONFIGURE_FLAGS += --disable-gio endif ifeq "$(ENABLE_DCONF)" "y" BUILD_DEPS += , libdconf-dev else CONFIGURE_FLAGS += --disable-dconf endif ifeq ($(ENABLE_MERGELIBS),y) CONFIGURE_FLAGS += --enable-mergelibs endif ifeq ($(ENABLE_LTO),y) CONFIGURE_FLAGS += --enable-lto # see https://lists.debian.org/debian-devel-changes/2021/11/msg02548.html BUILD_DEPS += , binutils (>= 2.37-9) [ppc64] endif ifeq ($(BOOKWORM_BACKPORT),y) LIBERATION_FONT_RECOMMENDS += , fonts-liberation LIBERATION2_FONT_RECOMMENDS += , fonts-liberation2 else LIBERATION_FONT_RECOMMENDS += , fonts-liberation-sans-narrow LIBERATION2_FONT_RECOMMENDS += , fonts-liberation (>= 1:2) endif LIBERATION_FONTS_RECOMMENDS += $(LIBERATION2_FONT_RECOMMENDS) $(LIBERATION_FONT_RECOMMENDS) # go sure. if we explicitely disable LTO when it is enabled we don't want it to sneak in # (and vice-versa). See https://lists.debian.org/debian-devel/2022/06/msg00092.html ifeq ($(ENABLE_LTO),y) export DEB_BUILD_MAINT_OPTIONS=optimize=+lto # honour parallel=X. We can just remove the auto here (coming from dpkg-buildflags) # since upstream already adds -flto=jobserver (honouring PARALLEL already). # Replacing -flto=auto doesn't work since clang doesn't understand -flto=X (except thin) DEB_CFLAGS_MAINT_STRIP += -flto=auto DEB_CXXFLAGS_MAINT_STRIP += -flto=auto DEB_LDFLAGS_MAINT_STRIP += -flto=auto # save space ifeq "$(SMALL_SYMBOLS)" "y" DEB_CFLAGS_MAINT_STRIP += -ffat-lto-objects DEB_CXXFLAGS_MAINT_STRIP += -ffat-lto-objects DEB_LDFLAGS_MAINT_STRIP += -ffat-lto-objects endif export DEB_CFLAGS_MAINT_STRIP DEB_CXXFLAGS_MAINT_STRIP DEB_LDFLAGS_MAINT_STRIP export DEB_CFLAGS_MAINT_APPEND DEB_CXXFLAGS_MAINT_APPEND DEB_LDFLAGS_MAINT_APPEND else export DEB_BUILD_MAINT_OPTIONS=optimize=-lto endif ifeq ($(USE_GOLD),y) CONFIGURE_FLAGS += --enable-ld=gold else # --enable-ld=gold is default for debug builds if found # FIXME: Should we allow gold here nevertheless? configure # prints the following with --disable-ld: # * WARNING : Linker is not capable of creating gdb index, debugger startup will be slow ifeq (debug,$(findstring debug,$(DEB_BUILD_OPTIONS))) ifneq "$(ALLOW_GOLD)" "y" CONFIGURE_FLAGS += --disable-ld endif 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 include /usr/share/dpkg/buildopts.mk NUM_CPUS=$(DEB_BUILD_OPTION_PARALLEL) 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 cd $(SOURCE_TREE)/helpcontent2/help3xsl && \ rm -f normalize.css cd $(SOURCE_TREE)/helpcontent2/help3xsl && \ rm -f prism.js && \ rm -f prism.css # 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_ARCH%#$(strip $(BUILD_DEPS_ARCH))#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" = bn-IN ] && continue; \ [ "$$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-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; \ LOCALES_DEPENDS="locales | locales-all"; \ 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 "$(BUILD_GTK4)" "y" cat debian/control.gtk4.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 "$(ENABLE_QT6)" "y" cat debian/control.qt6.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 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 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/' 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_JUNIT_ARCHS%|$(OOO_JUNIT_ARCHS)|g" \ -e "s|%OOO_NOGUI_ARCHS%|$(OOO_NOGUI_ARCHS)|g" \ -e "s|%OOO_CHECK_FATAL_ARCHS%|$(OOO_CHECK_FATAL_ARCHS)|g" \ -e "s|%AUTOPKGTEST_CPPUNIT_PACKAGES%|$(shell echo $(AUTOPKGTEST_CPPUNIT_PACKAGES) | sed -e "s/\ /,/g")|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 configure will fail since java -version fails without /proc... test -r /proc/version 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 cd $(SOURCE_TREE)/helpcontent2/help3xsl && \ ln -sf /usr/share/javascript/normalize.css/normalize.css cd $(SOURCE_TREE)/helpcontent2/help3xsl && \ ln -sf /usr/share/nodejs/prismjs/prism.js && \ ln -sf /usr/share/nodejs/prismjs/themes/prism-coy.css prism.css 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 \ --without-doxygen --without-javadoc \ --with-galleries=no --with-theme="$(DEFAULT_IMAGE)" \ --disable-gui --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. cleaning up only potentially affected ones was not really # maintainable and broke running the uitests since something apparently was not rebuilt # for "use UI" as it should. # Better safe than sorry, even though that increases build time for a magnitude... $(MAKE) clean endif PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \ CLANGDIR=$(CLANGDIR) \ MARIADBCONFIG=$(MARIADBCONFIG) \ FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \ QT5DIR=/usr/lib/$(DEB_HOST_MULTIARCH)/qt5 QT6DIR=/usr/lib/qt6 \ ./autogen.sh $(CONFIGURE_FLAGS) \ --without-junit --without-cppunit \ --disable-ext-wiki-publisher \ --without-doxygen --without-javadoc \ --with-galleries=no --with-theme="$(DEFAULT_IMAGE)" 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 ifeq "$(ENABLE_HELP)" "y" ifeq (pt,$(findstring pt,$(HELPISOS))) # this somehow is missing. let's assume pt-BR is sufficiently ok for "original" pt if [ ! -f helpcontent2/source/media/screenshots/modules/simpress/ui/prntopts/pt/prntopts.png ]; then \ mkdir -p helpcontent2/source/media/screenshots/modules/simpress/ui/prntopts/pt; \ cp helpcontent2/source/media/screenshots/modules/simpress/ui/prntopts/pt-BR/prntopts.png \ helpcontent2/source/media/screenshots/modules/simpress/ui/prntopts/pt; \ fi endif endif # 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) \ QT5DIR=/usr/lib/$(DEB_HOST_MULTIARCH)/qt5 QT6DIR=/usr/lib/qt6 \ ./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" 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 endif ifneq "$(AUTOPKGTEST_BUILD)" "y" ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) $(CURDIR)/debian/rules check-indep endif endif touch $@ check: 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 ifeq "$(BOOKWORM_BACKPORT)" "y" patch -p1 -R < debian/patches/adapt-for-new-carlito.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) \ QT5DIR=/usr/lib/$(DEB_HOST_MULTIARCH)/qt5 QT6DIR=/usr/lib/qt6 \ ./autogen.sh $(CONFIGURE_FLAGS) \ --disable-ext-wiki-publisher \ --without-doxygen --without-javadoc \ --with-galleries=no --with-theme="$(DEFAULT_IMAGE)" ifeq "$(BUILD_TESTS)" "y" # build the tests (first) export gb_SUPPRESS_TESTS=true; \ $(MAKE) check endif ifneq "$(AUTOPKGTEST_BUILD)" "y" ifeq "$(RUN_MAKE_CHECK)" "y" # generate the needed en_US.UTF-8 locale mkdir -p $(CURDIR)/debian/locales USE_CPUS=$(NUM_CPUS) debian/scripts/locale-gen # and now run them $(IGNORE_MAKE_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; \ unset CONNECTIVITY_TEST_MYSQL_DRIVER; \ export PARALLELISM=1; \ if [ -x /usr/bin/gdb ]; then ulimit -c unlimited || true; fi && \ $(TEST_TIMEOUT) $(MAKE) -k check || $(TEST_TIMEOUT) $(MAKE) check && \ rm -rf $$t else # don't run make check but *do* run selected tests here which are deemed too important # to fail # - "bridgetest" # - the public libraries (sal, cppu(helper), comphelper) # - "smoketest" as a smoketest # - pyuno (as we ship python3-uno..) # - unoidl for the SDK $(IGNORE_MAKE_FAILURES)\ cd $(SOURCE_TREE) && \ $(TEST_TIMEOUT) make testtools.allcheck # build smoketest prerequisites # and it only builds unotest but not test so build that manually... # sal only builds cppunittester on make check due to cppunit-optional.diff # smoketest.allcheck actually does NOT run it... Do it manually later.. # allcheck actually does NOT run it... Do it manually later.. cd $(SOURCE_TREE) && \ ( \ make unotest.allbuild && \ make test.allbuild && \ gb_SUPPRESS_TESTS=true make sal.allcheck && \ make smoketest.allcheck \ ) # build some more tests for i in cppu cppuhelper comphelper unoidl; do \ gb_SUPPRESS_TESTS=true make $$i.allcheck; \ done # run the sal tests. We built them anyways and it does make sense to test # the system abstraction layer anyways. And it contains system-operating tests # and types test which might become relevant for new architectures $(IGNORE_MAKE_FAILURES)t=`mktemp -q -d`; \ cd $(SOURCE_TREE)/sal && \ export PATH=$(BUILD_PATH); \ export TMPDIR=$$t; \ export HOME=$$t; \ export PARALLELISM=1; \ $(TEST_TIMEOUT) make check # more public library checks $(IGNORE_MAKE_FAILURES)\ for i in cppu cppuhelper comphelper; do \ export PARALLELISM=1; \ $(TEST_TIMEOUT) make $$i.allcheck; \ done # run the smoketest $(IGNORE_MAKE_FAILURES)\ cd $(SOURCE_TREE)/smoketest && \ export PARALLELISM=1; \ $(TEST_TIMEOUT) make subsequentcheck ifeq "$(ENABLE_PYTHON)" "y" # does pyuno work? $(IGNORE_MAKE_FAILURES)\ cd $(SOURCE_TREE)/pyuno && \ export PARALLELISM=1; \ $(TEST_TIMEOUT) make check subsequentcheck endif # shipped in the SDK ifeq "$(PACKAGE_SDK)" "y" $(IGNORE_MAKE_FAILURES)\ cd $(SOURCE_TREE)/unoidl && \ export PARALLELISM=1; \ $(TEST_TIMEOUT) make check endif endif endif ifeq "$(BUILD_TESTS)" "y" 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 ifeq "$(BOOKWORM_BACKPORT)" "y" patch -p1 < debian/patches/adapt-for-new-carlito.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_FAILURES)cd odk && \ $(MAKE) CustomTarget_odk/check ifneq (,$(findstring -indep,$(MAKECMDGOALS))) # was already checked in check $(IGNORE_MAKE_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_QT6)" "y" mkdir -p debian/tmp/pkg/libreoffice-qt6/$(OODIR)/program mv debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libvclplug_qt6lo.so\ debian/tmp/pkg/libreoffice-qt6/$(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 bn-IN in -bn... ifeq (bn-IN,$(findstring bn-IN,$(LANGPACKISOS))) if [ -f debian/libreoffice-l10n-bn-IN.dirs -a -f debian/libreoffice-l10n-bn-IN.install ]; then \ cat debian/libreoffice-l10n-bn-IN.dirs >> debian/libreoffice-l10n-bn.dirs; \ cat debian/libreoffice-l10n-bn-IN.install >> debian/libreoffice-l10n-bn.install; \ rm -f debian/libreoffice-l10n-bn-IN.dirs debian/libreoffice-l10n-bn-IN.install; \ fi endif # 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 # FIXME; hack: somehow there only the dirs are there (dh_installdirs). they *are* in the install phase and gid2pkgdirs also # is supposed to install it to the dir but apparently doesn't. They are in instdir though, so let's use it from # there.. ifeq "$(ENABLE_NLPSOLVER)" "y" if [ -d instdir/share/extensions/nlpsolver ]; then \ rm -rf debian/tmp/pkg/libreoffice-nlpsolver; \ mkdir -p debian/tmp/pkg/libreoffice-nlpsolver/$(OODIR)/share/extensions; \ cp -ra instdir/share/extensions/nlpsolver \ debian/tmp/pkg/libreoffice-nlpsolver/$(OODIR)/share/extensions; \ fi endif ifeq "$(ENABLE_MEDIAWIKI)" "y" if [ -d instdir/share/extensions/wiki-publisher ]; then \ rm -rf debian/tmp/pkg/libreoffice-wiki-publisher; \ mkdir -p debian/tmp/pkg/libreoffice-wiki-publisher/$(OODIR)/share/extensions; \ cp -ra instdir/share/extensions/wiki-publisher \ debian/tmp/pkg/libreoffice-wiki-publisher/$(OODIR)/share/extensions; \ fi endif for i in calc impress draw base writer; do \ echo "../usr/share/metainfo/libreoffice-$$i.appdata.xml /usr/share/metainfo/" >> $(PKGDIR)-$$i.install; \ done ifeq "$(BUILD_PLASMA)" "y" echo "../usr/share/metainfo/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/$(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 endif chmod 644 $(PKGDIR)-dev-common/$(OOSDKDIR)/configure.pl chmod 755 $(PKGDIR)-dev-common/$(OOSDKDIR)/setsdkenv_unix 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 # fix up. Draw apparently needs those now to start mkdir -p $(PKGDIR)-draw/$(OODIR)/share/config/soffice.cfg/simpress; \ mkdir -p $(PKGDIR)-draw/$(OODIR)/share/config/soffice.cfg/modules/simpress/ui; \ for i in layoutlist.xml objectlist.xml styles.xml; do \ mv $(PKGDIR)-impress/$(OODIR)/share/config/soffice.cfg/simpress/$$i \ $(PKGDIR)-draw/$(OODIR)/share/config/soffice.cfg/simpress/; \ done mv $(PKGDIR)-impress/$(OODIR)/share/config/soffice.cfg/modules/simpress/ui/sidebarslidebackground.ui \ $(PKGDIR)-draw/$(OODIR)/share/config/soffice.cfg/modules/simpress/ui 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 grep -E -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... rm -f debian/libreoffice-l10n-*.ucf for iso in $(filter-out en-US,$(LANGPACKISOS)); do \ if [ "$$iso" = "bn-IN" ]; then pkgiso=bn; \ elif [ "$$iso" = "ca-valencia" ]; then pkgiso=ca; \ elif [ "$$iso" = "sr-Latn" ]; then pkgiso=sr; \ elif [ "$$iso" = "kmr-Latn" ]; then pkgiso=kmr; \ else pkgiso=`echo $$iso | tr \[:upper:\] \[:lower:\]`; \ fi; \ 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" = "bn-IN" ]; then pkg=l10n-bn; \ 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" = "bn-in" ] && pkgiso=bn; \ [ "$$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-java/usr/share/java mkdir -p debian/ure-java/$(OODIR)/program/classes mv debian/ure/$(OODIR)/program/classes/java_uno.jar \ debian/ure-java/usr/share/java cd debian/ure-java/$(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 for i in libjuh.so javaldx libjpipe.so libjuhx.so \ javavendors.xml JREProperties.class \ jvmfwk3rc libjava_uno.so; do \ mv debian/ure/$(OODIR)/program/$$i \ debian/ure-java/$(OODIR)/program; \ 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" ifneq "$(PACKAGE_GEN)" "y" rm -f $(PKGDIR)-core/$(OODIR)/program/libvclplug_genlo.so endif 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/*gtk3* $(PKGDIR)-gtk3/$(OODIR)/program/ ifeq "$(ENABLE_PACKAGEKIT)" "y" # FIXME: ended up in -gtk3 due to a bug. should it stay there or be in -gnome? mv $(PKGDIR)-gnome/$(OODIR)/program/liblosessioninstalllo.so \ $(PKGDIR)-gtk3/$(OODIR)/program/ endif mv $(PKGDIR)-core/$(OODIR)/program/liblibreofficekitgtk.so \ debian/liblibreofficekitgtk/$(OODIR)/program endif ifeq "$(BUILD_GTK4)" "y" mkdir -p $(PKGDIR)-gtk4/$(OODIR)/program/ mv $(PKGDIR)-gnome/$(OODIR)/program/*gtk4* $(PKGDIR)-gtk4/$(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 libofficebean-java (into the arch-dep # JNI paths). the jar will be installed 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/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 "$(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 # no need to have the Extension Manager GUI rm -f debian/libreoffice-core-nogui/$(OODIR)/program/libdeploymentgui.so # and (no UI, so not needed) not needed .desktop files. .ui files are needed though because otherwise # it obscurely fails (#1028290) or just crashes (https://lists.debian.org/debian-backports/2023/06/msg00000.html) :( find debian/libreoffice-*-nogui/usr/share/applications/*.desktop -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 rm -f *.bug-script 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/@RTL_OS@/$(RTL_OS)/" \ | sed -e "s/@RTL_ARCH@/$(RTL_ARCH)/" \ | 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 >&3" >> debian/$$i.bug-script; \ fi ;\ done for i in $(ARCH_DEP_PACKAGES); do \ if [ -e debian/$$i.bug-control ]; then \ if grep -q "^report-with:" debian/$$i.bug-control; then \ extra_packages=`grep "^report-with:" debian/$$i.bug-control | sed -e "s/^report-with: //"`; \ for p in $$extra_packages; do \ if [ $$i != $$p ] && [ -f debian/$$p.bug-script ] && ! echo $$added_packages | grep -q $$p && \ ! grep -q bug\/$$p\/script debian/$$i.bug-script; then \ printf "#!/bin/sh\n" >> debian/$$i.bug-script; \ printf "if [ -x /usr/share/bug/$$p/script ]; then /usr/share/bug/$$p/script; fi\n" >> debian/$$i.bug-script; \ added_packages="$$added_packages $$p"; \ fi; \ done; \ added_packages=; \ fi; \ 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 ifeq (,$(findstring $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS))) rm -f $(PKGDIR)-core/$(OODIR)/program/libunopkgapp.so rm -f $(PKGDIR)-core/$(OODIR)/program/unopkg.bin rm -f $(PKGDIR)-core/$(OODIR)/program/libdeploymentgui.so endif 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 rm -f $(PKGDIR)-java-common/$(OODIR)/program/classes/smoketest.jar 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; \ case "$$i" in \ breeze*) p=breeze; ;; \ colibre*) p=colibre; ;; \ elementary*) p=elementary; ;; \ karasa_jaga*) p=karasa-jaga; ;; \ sifr*) p=sifr; ;; \ sukapura*) p=sukapura; ;; \ *) ;; \ esac; \ 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_DOCS)" "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 >&3" >> debian/$$i.bug-script; \ fi ;\ done for i in $(ARCH_INDEP_PACKAGES); do \ if [ -e debian/$$i.bug-control ]; then \ if grep -q "^report-with:" debian/$$i.bug-control; then \ extra_packages=`grep "^report-with:" debian/$$i.bug-control | sed -e "s/^report-with: //"`; \ for p in $$extra_packages; do \ if [ $$i != $$p ] && [ -f debian/$$p.bug-script ] && ! echo $$added_packages | grep -q $$p && \ ! grep -q bug\/$$p\/script debian/$$i.bug-script; then \ printf "#!/bin/sh\n" >> debian/$$i.bug-script; \ printf "if [ -x /usr/share/bug/$$p/script ]; then /usr/share/bug/$$p/script; fi\n" >> debian/$$i.bug-script; \ added_packages="$$added_packages $$p"; \ fi; \ done; \ added_packages=; \ fi; \ 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 libreoffice; do \ mh_installpoms -pliblibreoffice-java; \ mh_installjar -pliblibreoffice-java -l debian/pom.$$i.xml instdir/program/classes/$$i.jar; \ done mh_installpoms -plibunoloader-java mh_installjar -plibunoloader-java -l debian/pom.unoloader.xml instdir/program/classes/unoloader.jar # create symlinks where LO expects them for i in juh jurt unoil ridl libreoffice; do \ mkdir -p $(CURDIR)/debian/liblibreoffice-java/$(OODIR)/program/classes; \ cd $(CURDIR)/debian/liblibreoffice-java/$(OODIR)/program/classes; \ ln -s /usr/share/java/$$i.jar $$i.jar; \ done mkdir -p $(CURDIR)/debian/libunoloader-java/$(OODIR)/program/classes; \ cd $(CURDIR)/debian/libunoloader-java/$(OODIR)/program/classes; \ ln -s /usr/share/java/unoloader.jar unoloader.jar # 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 # make sure we have a share/extensions dir owned by -common mkdir -p $(PKGDIR)-common/$(OODIR)/share/extensions 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; \ 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 $(DH_DWZ_ARGS) -- $(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 (>= 4:$(shell grep UREPACKAGEVERSION $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | awk '{ print $$2 }' | cut -d. -f1-3)~)" -- -c2 -V -v$(BINARY_VERSION); \ done dh_makeshlibs -n -pure -V"ure (>= 4:$(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 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 # FIXME. Otherwise the unoEditGlossary openDialog test crashes and hangs. go sure to make sure it doesn't # happen on runtime. No idea whether alpha1 would suffice but it doesn't really matter in practice anyway :) perl -pi -e "s/, libuno-sal3 \(>= 1:7.3.0~beta1\),/, libuno-sal3 \(>= 1:7.4.0~beta1\),/" \ debian/libreoffice-core.substvars 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'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'liberation-fonts-recommends=$(LIBERATION_FONTS_RECOMMENDS)' \ -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; \ 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-recommends=$(HELP_RECOMMENDS)' \ -V'help-common-depends=$(HELP_COMMON_DEPENDS)' \ -V'report-builder-jar-depends=$(REPORT_BUILDER_JAR_DEPENDS)' \ -V'liberation2-font-recommends=$(LIBERATION2_FONT_RECOMMENDS)' \ -V'Binary-Version=$(BINARY_VERSION)' \ -v$(BINARY_VERSION) dh_gencontrol -pfonts-opensymbol -- \ -v`echo $(BINARY_VERSION) | cut -d: -f1`:$(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`echo $(BINARY_VERSION) | cut -d: -f1`:$(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`echo $(BINARY_VERSION) | cut -d: -f1`:$(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: