1
0
Fork 0
libreoffice/debian/rules
Daniel Baumann 2de640139f
Including libreoffice configuration files for Progress Linux.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 21:16:27 +02:00

4784 lines
182 KiB
Makefile
Executable file

#!/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)
OOVER:=25.2
HELP_L10N_VIRTUAL_VERSION:=$(OOVER)
ifeq "$(shell echo $(OOVER) | cut -d. -f2)" "2"
# 24.2 + .6 -> 24.8 -> OK
NEXT_OOVER=$(shell echo "$(OOVER) + .6" | bc)
else
# 24.8 + .6 = 25.4 -> wrong (doesn't take into account that the year
# has 12 months)so subtract 2 (so effectively + .4) to get back to February (25.2),
# which is supposed to be the schedule.
NEXT_OOVER=$(shell echo "$(OOVER) + .4" | bc)
endif
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
DEB_VENDOR=Debian
SHELL:=/bin/bash
SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n '/^gcc/s/.*\(..\..\)\../\1/p' | cut -d" " -f1 | 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-25-2-3
endif
ifeq "$(USE_SOURCE_TARBALLS)" "y"
lo_sources_ver=$(shell cat $(CURDIR)/sources.ver | cut -d= -f2)
endif
#########
# Default package configuration
#
# FIXME: Should riscv64 be here at all given it doesn't support NaN payload propagation which LO (at least Calc) needs?
# see https://bugs.documentfoundation.org/show_bug.cgi?id=152943 and https://lists.debian.org/debian-riscv/2024/01/msg00018.html
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 s390x sparc sparc64
DEBIAN_MAIN_ARCHITECTURES = amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x
PATCHSET=$(DEB_VENDOR)
BUILD_DEPS=\
autoconf,\
automake,\
bc,\
bison,\
bzip2,\
flex, \
gperf,\
libfreetype-dev,\
libfontconfig-dev,\
pkgconf,\
po-debconf,\
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)),)
include /usr/share/java/java_defaults.mk
ifneq "$(BOOKWORM_BACKPORT)" "y"
ifneq ($(DEB_HOST_ARCH),$(filter-out $(DEB_HOST_ARCH),$(java_unsupported_architectures)))
ENABLE_JAVA=y
endif
else
ENABLE_JAVA=y
endif
ifeq "$(ENABLE_JAVA)" "y"
JDK=default
ifneq "$(JDK)" "default"
JAVA_MAINVER=17
endif
endif
else
ENABLE_JAVA=n
endif
#JAVAHELPER_MIN_VERSION=
SYSTEM_STUFF += hunspell
SYSTEM_STUFF += altlinuxhyph
SYSTEM_STUFF += boost
BOOST_VERSION=default
# 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
ENABLE_GPGMEPP=y
ifeq "$(ENABLE_GUI)" "y"
BUILD_PLASMA=y
# let's assume we won't ship two plasmas parallel..
PLASMA_VERSION=6
PLASMA_KF_VERSION=$(PLASMA_VERSION)
PLASMA_ARCHITECTURE=all
ENABLE_QT5=y
#QT5_MINVER=
ENABLE_KF5=n
ENABLE_QT6=y
ENABLE_QT6_MULTIMEDIA=y
ENABLE_KF6=y
endif
# go sure. if we want plasma, we want kfX, too and if we want that
# one we want qtX, too.
ifeq "$(BUILD_PLASMA)" "y"
ifeq "$(PLASMA_VERSION)" "5"
ENABLE_KF5=y
endif
ifeq "$(PLASMA_VERSION)" "6"
ENABLE_KF6=y
endif
endif
# KF5 depends on Qt5
ifeq "$(ENABLE_KF5)" "y"
ENABLE_QT5=y
KF5_QT5_DEPENDS := libreoffice-qt5 (= $${binary:Version})
endif
# KF6 depends on Qt6
ifeq "$(ENABLE_KF6)" "y"
ENABLE_QT6=y
KF6_QT6_DEPENDS := libreoffice-qt6 (= $${binary:Version})
endif
# https://www.debian.org/doc/debian-policy/ says this is not defined and must
# be ignored, but dh_strip mentions (and honours) it, so...
ifneq (noautodbgsym,$(findstring noautodbgsym,$(DEB_BUILD_OPTIONS)))
BUILD_DBGSYM_PACKAGES=y
ifeq "$(DEB_HOST_ARCH)" "amd64"
USE_DWZ=y
DWZ_ARGS:=-L 100000000
endif
endif
SYSTEM_STUFF += xmlsec
SYSTEM_STUFF += zxcvbn
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),binary-indep)
ENABLE_SYMBOLS=y
SMALL_SYMBOLS=y
endif
ifeq ($(MAKECMDGOALS),binary-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 += rhino
SYSTEM_STUFF += hsqldb
endif
ENABLE_LPSOLVE=y
# disabled. system-lpsolve somehow now causes
#scsolverobj.cxx:119:Assertion
#Test name: sc_apitest::ScSolverSettingsObj::testXSolverSettings
#equality assertion failed
#- Expected: 6981
#- Actual : 6987
#
#Failures !!!
#Run: 1 Failure total: 1 Failures: 1 Errors: 0
#SYSTEM_STUFF += lpsolve
#USE_SHARED_LPSOLVE=y
#LPSOLVE_MIN_VERSION=
ifeq (,$(filter lpsolve, $(SYSTEM_STUFF)))
SYSTEM_STUFF += colamd
endif
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
# will not work, uses schema/ stripped in the tarballs
ifeq "$(USE_SOURCE_TARBALLS)" "y"
ENABLE_EXPORT_VALIDATION_TESTS=n
endif
#JUNIT_MIN_VER=
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"
ifeq ($(filter nogir,$(DEB_BUILD_PROFILES)),)
ENABLE_INTROSPECTION=y
endif
endif
endif
BUILD_GTK4=y
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
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
FIREBIRD_VERSION=$(shell fb_config --version | cut -d. -f1,2)
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
SYSTEM_STUFF += frozen
SYSTEM_STUFF += argon2
# we don't have it in the archive. The "new" .net dlls are incomplete
# yet anyway. and what about cli-common-dev and the dh_cli* tools? Will they
# even work here?
ifeq ($(filter nocil,$(DEB_BUILD_PROFILES)),)
ENABLE_DOTNET=n
endif
ENABLE_CUPS=y
ENABLE_CPDB=y
# override stuff for indep builds to save build dependencies
ifeq ($(MAKECMDGOALS),binary-indep)
ENABLE_EVOAB=n
BUILD_GTK3=n
ENABLE_INTROSPECTION=n
ENABLE_GIO=n
BUILD_GTK4=n
ENABLE_QT5=n
ENABLE_QT6=n
# libgpgmepp-dev depends on Qt, too, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863149
ENABLE_GPGMEPP=n
ENABLE_KF5=n
ENABLE_KF6=n
ifneq "$(PLASMA_ARCHITECTURE)" "all"
BUILD_PLASMA=n
endif
ENABLE_MARIADB=n
ENABLE_FIREBIRD=n
ENABLE_SDBC_POSTGRESQL=n
ENABLE_SKIA=n
ENABLE_COINMP=n
ENABLE_LPSOLVE=n
USE_GSTREAMER=n
ENABLE_LDAP=n
ENABLE_PDFIUM=n
USE_DBUS=n
ENABLE_AVAHI=n
endif
# 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 \
--without-myspell-dicts \
--with-branding=$(CURDIR)/debian/branding \
--without-coredumpctl
# don't rebuild the font anywhere, we just really need it in indep builds.
# please put https://dev-www.libreoffice.org/extern/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
# into $(SOURCE_TREE)/tarballs if you don't rebuild the font.
BUILD_DEPS_INDEP += , fontforge-nox | fontforge <!pkg.libreoffice.noopensymbolbuild>
ifeq ($(filter pkg.libreoffice.noopensymbolbuild,$(DEB_BUILD_PROFILES)),)
ENABLE_OPENSYMBOL_BUILD=y
endif
# we get a fonts-opensymbol build-dep -b builds (_ARCH also affects -b), too anyway but it's still lesser
# dependencies than fontforge-nox | fontforge...
# But this can get a problem for bootstrapping if we ever needed a newer fonts-opensymbol for
# tests to pass...
# Allow building it nevertheless if wanted
BUILD_DEPS_ARCH += , fonts-opensymbol <!pkg.libreoffice.opensymbolbuild>
ifneq ($(MAKECMDGOALS),build-arch)
ifneq ($(filter pkg.libreoffice.opensymbolbuild,$(DEB_BUILD_PROFILES)),)
ENABLE_OPENSYMBOL_BUILD=y
endif
ifeq "$(ENABLE_OPENSYMBOL_BUILD)" "y"
CONFIGURE_FLAGS_INDEP += --enable-build-opensymbol
endif
endif
ifeq "$(ENABLE_GUI)" "y"
BUILD_DEPS += ,\
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_32BIT_ARCHS = $(filter-out $(OOO_64BIT_ARCHS),$(OOO_ARCHS))
$(eval $(call gen_no_archs,OOO_32BIT_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))
# ppc64el: see https://git.launchpad.net/~libreoffice/ubuntu/+source/libreoffice/patch/?id=be47aa72aad414537d27f0a18af7d067f1398666 and
# https://github.com/llvm/llvm-project/issues/63214
OOO_CLANG_SUPPORTED_ARCHS := $(filter-out alpha ia64 ppc64el mipsel mips64el,$(OOO_LE_ARCHS))
$(eval $(call gen_no_archs,OOO_CLANG_SUPPORTED_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
## 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 := $(OOO_CHECK_ARCHS) armel i386 ppc64el s390x riscv64
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
# run the atspi tests
ifeq "$(BUILD_GTK3)" "y"
ENABLE_ATSPI_TESTS=y
endif
endif
IGNORE_MAKE_FAILURES=-
TEST_TIMEOUT := timeout --foreground --preserve-status -v -k 250m 200m
ifeq "$(RUN_MAKE_CHECK)" "y"
ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CHECK_FATAL_ARCHS)))
IGNORE_MAKE_FAILURES:=
TEST_TIMEOUT:=
endif
else
ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_SMOKETEST_FATAL_ARCHS)))
IGNORE_MAKE_FAILURES:=
TEST_TIMEOUT:=
endif
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
JAVA_BRIDGE_BROKEN_ARCHS:=ppc64el s390x armhf
# like this it's more consistent (e.g. with armhf above); it should work, though...
JAVA_BRIDGE_BROKEN_ARCHS += armel
ifeq "$(JDK)" "default"
OOO_JAVA_ARCHS = $(filter-out $(JAVA_BRIDGE_BROKEN_ARCHS),$(filter $(OOO_ARCHS),$(java$(JAVA_RUNTIME_BASELINE)_architectures)))
else
OOO_JAVA_ARCHS = $(OOO_ARCHS)
endif
$(eval $(call gen_no_archs,OOO_JAVA_ARCHS))
# CLI
OOO_CLI_ARCHS := amd64 arm64
$(eval $(call gen_no_archs,OOO_CLI_ARCHS))
OOO_ARCH_DEP_EXTENSIONS_ARCHS := $(OOO_ARCHS)
OOO_EXTENSIONS_ARCHS := $(OOO_ARCH_DEP_EXTENSIONS_ARCHS)
OOO_BASE_ARCHS := $(OOO_ARCHS)
$(eval $(call gen_no_archs,OOO_BASE_ARCHS))
OOO_REPORTBUILDER_ARCHS := $(OOO_JAVA_ARCHS)
$(eval $(call gen_no_archs,OOO_REPORTBUILDER_ARCHS))
OOO_FIREBIRD_ARCHS := $(filter-out m68k,$(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
# this assumes autopkgtest -B. Without -B it tries to use the built packages
# which would break (nogui being empty, needed l10ns not being there)
ifeq "$(AUTOPKGTEST_BUILD)" "y"
# save build time for languages we do not exactly need.
BUILD_ONLY_EN_US=y
# as above (for binary-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 frozen mdds orcus libcmis,$(SYSTEM_STUFF))
BOOKWORM_BACKPORT=y
ENABLE_CPDB=n
BUILD_GTK4=n
ENABLE_KF6=n
PLASMA_VERSION=5
ifneq ($(MAKECMDGOALS),binary-indep)
ENABLE_KF5=y
endif
PLASMA_ARCHITECTURE=%OOO_ARCHS%
endif
ifeq "$(BOOKWORM_BACKPORT)" "y"
ifneq (,$(shell grep t64 debian/control))
$(error Revert t64 rename 6f794ba67d113395d7662c2ebf5f67b37eddff09 for bookworm-backports!)
endif
else
BUILD_DEPS += , dpkg-dev (>= 1.22.5) [$(filter-out i386,$(OOO_32BIT_ARCHS))]
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
# we apparently also need --disable-split-debug (see below) since according to configure.ac both are
# "Inherently incompatible, since no debug info is created while compiling, GCC complains."
# so make it explicit
ifeq "$(DEB_HOST_ARCH)" "riscv64"
ENABLE_LTO=n
endif
# probably...
ifeq "$(DEB_HOST_ARCH)" "loong64"
ENABLE_LTO=n
endif
# 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_ARCH += , llvm$(OOO_NO_CLANG_SUPPORTED_ARCHS)
else
BUILD_DEPS_ARCH += , llvm-$(CLANG_VERSION)-linker-tools$(OOO_NO_CLANG_SUPPORTED_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
# bridgetest fails when built with gcc 13, works with 12
# or works with clang, so instead of build-depending on an obsolete
# gcc we take this route
ifneq "$(BOOKWORM_BACKPORT)" "y"
ifeq "$(DEB_HOST_ARCH)" "i386"
USE_CLANG=y
endif
BUILD_DEPS += , clang [i386]
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
else
ifneq "$(BOOKWORM_BACKPORT)" "y"
BUILD_DEPS += , gcc (>= 4:12) [!i386], g++ (>= 4:12) [!i386]
else
BUILD_DEPS += , gcc (>= 4:12), g++ (>= 4:12)
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
ifeq "$(DEB_HOST_ARCH)" "s390x"
ifneq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
DEB_BUILD_OPTIONS += noopt
endif
endif
ifeq "$(DEB_HOST_ARCH)" "riscv64"
CONFIGURE_FLAGS += --disable-nan-tests
# see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1039906#26 (fixed)
# and it seems it the payloadNaN test actually passes with -O2 where it's
# unclear whether it actually is on hardware supporting it. Let's keep at
# -O0 for now and be sure it fails before shipping something broken
ifneq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
DEB_BUILD_OPTIONS += noopt
endif
# see https://lists.debian.org/debian-riscv/2024/01/msg00018.html
CONFIGURE_FLAGS += --disable-split-debug
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_ARCH += , clang$(OOO_NO_CLANG_SUPPORTED_ARCHS)
else
export LO_CLANG_CC=clang-$(CLANG_VERSION)
export LO_CLANG_CXX=clang++-$(CLANG_VERSION)
BUILD_DEPS_ARCH += , clang-$(CLANG_VERSION) [$(OOO_LE_ARCHS)]
endif
endif
endif
else
ifeq "$(CLANG_VERSION)" "default"
BUILD_DEPS += , clang
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_ARCH += , libopenjp2-7-dev [$(OOO_PDFIUM_ARCHS)]
endif
ifneq (,$(filter abseil, $(SYSTEM_STUFF)))
BUILD_DEPS_ARCH += , libabsl-dev [$(OOO_PDFIUM_ARCHS)]
endif
endif
endif
ifeq "$(ENABLE_CUPS)" "y"
BUILD_DEPS += , libcups2-dev
else
CONFIGURE_FLAGS += --disable-cups
endif
ifeq "$(ENABLE_CPDB)" "y"
BUILD_DEPS += , libcpdb-frontend-dev
CONFIGURE_FLAGS += --enable-cpdb
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
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)
ifneq ($(BOOKWORM_BACKPORT),y)
ifneq (,$(filter $(OOO_CHECK_ARCHS),$(filter-out i386,$(OOO_32BIT_ARCHS))))
BUILD_DEPS_ARCH += , libxmlsec1-dev (>= 1.2.39-5) [$(filter $(OOO_CHECK_ARCHS),$(filter-out i386,$(OOO_32BIT_ARCHS)))] <!nocheck>
endif
endif
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
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
ifneq ($(ENABLE_COINMP),y)
CONFIGURE_FLAGS += --disable-coinmp
else
ifneq (,$(filter coinmp, $(SYSTEM_STUFF)))
BUILD_DEPS_ARCH += , 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
# see https://lists.freedesktop.org/archives/libreoffice/2023-September/090877.html
ifneq (,$(filter ppc64el s390x,$(DEB_HOST_ARCH)))
DEB_CFLAGS_MAINT_APPEND = -ffp-contract=off
DEB_CXXFLAGS_MAINT_APPEND = -ffp-contract=off
endif
ifneq (,$(filter s390x,$(DEB_HOST_ARCH)))
ifeq (,$(shell gcc -v 2>&1 | grep disable-s390-excess-float-precision))
DEB_CFLAGS_MAINT_APPEND = -fexcess-precision=fast
# the gcc manpage says
# "-fexcess-precision=standard is not implemented for languages other than C"
# but it works with this and fails without, so probably has some effect after all
DEB_CXXFLAGS_MAINT_APPEND = -fexcess-precision=fast
endif
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:=$(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)-setuptools <!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
ifeq "$(ENABLE_DOTNET)" "y"
#BUILD_DEPS_INDEP += , cli-common-dev [$(OOO_CLI_ARCHS)] <!nocil>
# both for Microsofts and Ubuntus packages
BUILD_DEPS_INDEP += , dotnet-sdk-8.0 [$(OOO_CLI_ARCHS)] <!nocil>
else
CONFIGURE_FLAGS += --without-dotnet
endif
BUILD_DEPS += , debhelper-compat (= 12)
ifeq "$(RUN_MAKE_CHECK)" "y"
BUILD_DEPS_ARCH += , locales <!nocheck> | locales-all <!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
# porrst.cxx:85:Assertion
#Test name: (anonymous namespace)::testFloattableAnchorHeight::TestBody
#equality assertion failed
#- Expected: 1
#- Actual : 2
BUILD_DEPS_ARCH += , fonts-crosextra-caladea [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
# 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()
ifneq "$(BOOKWORM_BACKPORT)" "y"
BUILD_DEPS_ARCH += , fonts-hosny-amiri (>= 1.000) [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
else
BUILD_DEPS_ARCH += , fonts-hosny-amiri [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
endif
# 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>
# in pdfexport2.cxx (testTdf124116TrackUntrack - which uses David CLM)
BUILD_DEPS_ARCH += , culmus [$(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
# 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_ARCHS))]
endif
endif
ifeq ($(MAKECMDGOALS),binary-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_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 hy 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 tl 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 hy 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 tl tn tr ts ug uk uz ve vi xh zh-CN zh-TW zu
endif
# only needed if we supported builds without -B, see above
#ifeq "$(AUTOPKGTEST_BUILD)" "y"
# ISOS := en-US he zh-TW
# HELPISOS := en-US zh-TW
# LANGPACKISOS := en-US he zh-TW
#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"
ifeq ($(BOOKWORM_BACKPORT),y)
BUILD_DEPS += , java-common <!nojava>
else
BUILD_DEPS += , java-common (>= 0.75) <!nojava>
endif
BUILD_DEPS += , maven-repo-helper$(OOO_NO_JAVA_ARCHS) <!nojava>
ifeq "$(JDK)" "default"
JAVA_HOME=/usr/lib/jvm/default-java
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)/' | sed -e 's/\]/$(foreach i,$(JAVA_BRIDGE_BROKEN_ARCHS), !$(i))\]/') <!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)$(OOO_NO_JAVA_ARCHS) <!nojava>
else
CONFIGURE_FLAGS += --without-java
DEBHELPER_OPTIONS += -Nlibofficebean-java -Nlibreoffice-java-common -Nlibreoffice-script-provider-bsh -Nlibreoffice-script-provider-js -Nlibreoffice-subsequentcheckbase -Nlibunoloader-java -Nliblibreoffice-java -Nlibreoffice-sdbc-hsqldb -Nure-java
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
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.1), libmdds-dev (<< 2.2~)
endif
ifneq (,$(filter orcus, $(SYSTEM_STUFF)))
BUILD_DEPS += , liborcus-dev (>= 0.19.1), liborcus-dev (<< 0.20~)
ifneq ($(BOOKWORM_BACKPORT),y)
ifneq (,$(filter $(OOO_CHECK_ARCHS),$(filter-out i386,$(OOO_32BIT_ARCHS))))
BUILD_DEPS_ARCH += , liborcus-dev (>> 0.19.2-3+b1) [$(filter $(OOO_CHECK_ARCHS),$(filter-out i386,$(OOO_32BIT_ARCHS)))] <!nocheck>
endif
endif
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
endif
ifneq (,$(filter libwps, $(SYSTEM_STUFF)))
BUILD_DEPS += , libwps-dev (>= 0.4), libwps-dev (<< 0.5~)
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~)
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~)
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~)
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)))
BUILD_DEPS += , libzxing-dev
endif
else
CONFIGURE_FLAGS += --disable-zxing
endif
endif
CONFIGURE_FLAGS += --with-external-thes-dir=$(THES_DIR)
ifneq (,$(filter zxcvbn, $(SYSTEM_STUFF)))
BUILD_DEPS += , libzxcvbn-dev
endif
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_ARCH += , 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_ARCH += , libkf5coreaddons-dev, libkf5i18n-dev, libkf5config-dev, libkf5windowsystem-dev, libkf5kio-dev
endif
ifeq "$(ENABLE_KF6)" "y"
CONFIGURE_FLAGS += --enable-kf6
BUILD_DEPS_ARCH += , libkf6coreaddons-dev, libkf6i18n-dev, libkf6config-dev, libkf6windowsystem-dev, libkf6kio-dev
endif
PLASMA_ICONSET_DEP=libreoffice-style-breeze
ifeq "$(ENABLE_QT5)" "y"
CONFIGURE_FLAGS += --enable-qt5
BUILD_DEPS_ARCH += , qtbase5-dev $(QT5_MINVER), qt5-qmake $(QT5_MINVER), qtbase5-dev-tools $(QT5_MINVER)
BUILD_DEPS_ARCH += , libqt5x11extras5-dev $(QT5_MINVER)
BUILD_DEPS_ARCH += , libglib2.0-dev
BUILD_DEPS_ARCH += , libxcb1-dev
endif
ifeq "$(ENABLE_QT6)" "y"
CONFIGURE_FLAGS += --enable-qt6
BUILD_DEPS_ARCH += , qt6-base-dev $(QT6_MINVER), qmake6 $(QT6_MINVER), qt6-base-dev-tools $(QT6_MINVER)
BUILD_DEPS_ARCH += , libxcb1-dev
endif
ifneq "$(shell echo $(ENABLE_QT6)$(ENABLE_KF6) | grep -q y && echo true)" "true"
CONFIGURE_FLAGS += --disable-qt6-multimedia
else
ifeq "$(ENABLE_QT6_MULTIMEDIA)" "y"
ifneq "$(BOOKWORM_BACKPORT)" "y"
# go sure. the avmediaqt6 code has stuff enabled only if >= 6.5.0
QT6_MINVER := (>= 6.5.0)
endif
BUILD_DEPS_ARCH += , qt6-multimedia-dev $(QT6_MINVER)
else
CONFIGURE_FLAGS += --disable-qt6-multimedia
endif
endif
ifeq "$(ENABLE_MARIADB)" "y"
ifeq "$(MYSQL_FLAVOUR)" "default"
BUILD_DEPS_ARCH += , default-libmysqlclient-dev
else
ifeq "$(MYSQL_FLAVOUR)" "mysql"
ifneq (,$(filter mariadb, $(SYSTEM_STUFF)))
BUILD_DEPS_ARCH += , libmysqlclient-dev
endif
MARIADBCONFIG=/usr/bin/mysql_config
endif
ifeq "$(MYSQL_FLAVOUR)" "mariadb"
ifneq (,$(filter mariadb, $(SYSTEM_STUFF)))
BUILD_DEPS_ARCH += , libmariadb-dev
endif
MARIADBCONFIG=/usr/bin/mariadb_config
endif
endif
else
CONFIGURE_FLAGS += --disable-mariadb-sdbc
endif
ifeq "$(ENABLE_FIREBIRD)" "y"
BASE_FIREBIRD_RECOMMENDS = libreoffice-sdbc-firebird [$(OOO_FIREBIRD_ARCHS)]
ifneq (,$(filter libatomic-ops, $(SYSTEM_STUFF)))
BUILD_DEPS_ARCH += , libatomic-ops-dev$(OOO_NO_FIREBIRD_ARCHS)
endif
ifneq (,$(filter libtommath, $(SYSTEM_STUFF)))
BUILD_DEPS_ARCH += , libtommath-dev$(OOO_NO_FIREBIRD_ARCHS)
endif
ifneq (,$(filter firebird, $(SYSTEM_STUFF)))
BUILD_DEPS_ARCH += , firebird-dev$(OOO_NO_FIREBIRD_ARCHS)
# we need libEngine12.so
ifeq "$(RUN_MAKE_CHECK)" "y"
BUILD_DEPS_ARCH += , firebird$(FIREBIRD_VERSION)-server-core $(OOO_NO_FIREBIRD_ARCHS) <!nocheck>
endif
FIREBIRD_ENGINE_DEPENDS += firebird$(FIREBIRD_VERSION)-server-core
endif
else
CONFIGURE_FLAGS += --disable-firebird-sdbc
endif
ifeq "$(BUILD_GTK3)" "y"
BUILD_DEPS_ARCH += , 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_ARCH += , gobject-introspection <!nogir>, libgirepository1.0-dev <!nogir>
CONFIGURE_FLAGS += --enable-introspection
else
DEBHELPER_OPTIONS+= -Ngir1.2-lokdocview-0.1
endif
ifeq "$(ENABLE_ATSPI_TESTS)" "y"
# make sure it is enabled; it is auto-enabled if the below is there, though
CONFIGURE_FLAGS_TESTS += --enable-atspi-tests
BUILD_DEPS_ARCH += , libatspi2.0-dev$(OOO_NO_CHECK_ARCHS) <!nocheck>, at-spi2-core$(OOO_NO_CHECK_ARCHS) <!nocheck>
BUILD_DEPS_ARCH += , xvfb$(OOO_NO_CHECK_ARCHS) <!nocheck>, xauth$(OOO_NO_CHECK_ARCHS) <!nocheck>, dbus-x11$(OOO_NO_CHECK_ARCHS) <!nocheck>
else
# explicitely disable it if not wanted as t is auto-enabled if the above is there
CONFIGURE_FLAGS += --disable-atspi-tests
endif
else
CONFIGURE_FLAGS += --disable-gtk3
endif
ifeq "$(BUILD_GTK4)" "y"
GTK4_MINVER := (>= 4.10)
BUILD_DEPS_ARCH += , libgtk-4-dev $(GTK4_MINVER), 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_ARCH += , 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 += , libkrb5-dev
BUILD_DEPS_ARCH += , libpq-dev
else
BUILD_DEPS += , libkrb5-dev
endif
else
CONFIGURE_FLAGS += --disable-postgresql-sdbc
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 -Npython3-scriptforge
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_INDEP += , libbsh-java <!nojava>
endif
CONFIGURE_FLAGS_INDEP += --enable-scripting-beanshell
else
CONFIGURE_FLAGS += --disable-scripting-beanshell
DEBHELPER_OPTIONS += -Nlibreoffice-script-provider-bsh
endif
ifeq "$(ENABLE_SCRIPT_PROVIDER_JS)" "y"
ifneq (,$(filter rhino, $(SYSTEM_STUFF)))
BUILD_DEPS_INDEP += , librhino-java <!nojava>
endif
CONFIGURE_FLAGS_INDEP += --enable-scripting-javascript
else
CONFIGURE_FLAGS += --disable-scripting-javascript
DEBHELPER_OPTIONS += -Nlibreoffice-script-provider-js
endif
endif
ifeq ($(ENABLE_LPSOLVE),y)
ifneq (,$(filter lpsolve, $(SYSTEM_STUFF)))
ifeq "$(USE_SHARED_LPSOLVE)" "y"
BUILD_DEPS_ARCH += , 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
endif
ifneq (,$(filter colamd, $(SYSTEM_STUFF)))
BUILD_DEPS += , libsuitesparse-dev $(SUITESPARSE_MIN_VERSION)
endif
else
CONFIGURE_FLAGS += --disable-lpsolve
endif
ifeq "$(USE_DBUS)" "y"
BUILD_DEPS_ARCH += , libdbus-1-dev
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
else
CONFIGURE_FLAGS += --disable-dbus
endif
ifeq "$(ENABLE_AVAHI)" "y"
BUILD_DEPS_ARCH += , libavahi-client-dev
CONFIGURE_FLAGS += --enable-avahi
endif
ifeq "$(USE_GSTREAMER)" "y"
BUILD_DEPS_ARCH += , libgstreamer1.0-dev
CONFIGURE_FLAGS += --enable-gstreamer-1-0
BUILD_DEPS_ARCH += , 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
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 frozen, $(SYSTEM_STUFF)))
BUILD_DEPS += , libfrozen-dev
endif
ifneq (,$(filter argon2, $(SYSTEM_STUFF)))
BUILD_DEPS += , libargon2-dev
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
ifeq "$(ENABLE_GPGMEPP)" "y"
ifneq (,$(filter gpgmepp, $(SYSTEM_STUFF)))
BUILD_DEPS_ARCH+= , libgpgmepp-dev, 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
else
CONFIGURE_FLAGS += --disable-gpgmepp
endif
ifeq "$(ENABLE_GIO)" "y"
ifneq "$(BUILD_GTK3)" "y"
BUILD_DEPS_ARCH += , libglib2.0-dev
endif
else
CONFIGURE_FLAGS += --disable-gio
endif
ifeq "$(ENABLE_DCONF)" "y"
BUILD_DEPS += , libdconf-dev (>= 0.40)
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" \
! -name "libreofficekit-dev.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 debian/*.config
rm -f debian/pom*.xml
rm -rf $(CURDIR)/debian/locales
dh_clean
clean:
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
# 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
# remove only if we linked it over. otherwise we remove the one
# intentionally added there if so
cd $(SOURCE_TREE)/tarballs && \
if [ -L f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf ]; then \
rm f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf; \
fi
# 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.new debian/tests/control.new
# Based on script by Martin Quinson <Martin.Quinson@tuxfamily.org>
debian/control.new: $(wildcard debian/control*in) $(SOURCE_TREE)/bin/lo-xlate-lang debian/rules
echo "#" > debian/control.new
echo "# NOTE: This file is autogenerated. DO NOT manually edit it! " >> debian/control.new
echo "# Edit debian/control*in and rules (whatever applicable), run debian/rules control" >> debian/control.new
echo "# and move control.new to control if the difference is sane." >> debian/control.new
echo "#" >> debian/control.new
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.new
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.new < 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.new < 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.new
perl -pi -e 's|(Depends: libreoffice-writer, libreoffice-l10n-en-us)|\1, fonts-deva|' \
debian/control.new
endif
cat debian/control.ure.in >> debian/control.new
ifeq "$(ENABLE_JAVA)" "y"
ifeq "$(ENABLE_MEDIAWIKI)" "y"
cat debian/control.mediawiki.in >> debian/control.new
endif
ifeq "$(ENABLE_REPORTBUILDER)" "y"
cat debian/control.reportbuilder.in >> debian/control.new
endif
ifeq "$(ENABLE_NLPSOLVER)" "y"
cat debian/control.nlpsolver.in >> debian/control.new
endif
endif
cat debian/control.fonts.in >> debian/control.new
ifeq "$(PACKAGE_SDK)" "y"
cat debian/control.sdk.in >> debian/control.new
endif
ifeq "$(PACKAGE_LOKIT)" "y"
cat debian/control.lokit.in >> debian/control.new
endif
ifeq "$(BUILD_GTK3)" "y"
cat debian/control.gtk3.in >> debian/control.new
ifneq "$(ENABLE_INTROSPECTION)" "y"
sed -i "s/ and for developing stuff using introspection.//" debian/control.new
endif
endif
ifeq "$(BUILD_GTK4)" "y"
cat debian/control.gtk4.in >> debian/control.new
endif
ifeq "$(ENABLE_KF5)" "y"
cat debian/control.kf5.in >> debian/control.new
ifneq "$(BOOKWORM_BACKPORT)" "y"
perl -pi -e 's/plasma-iconset-dep}/plasma-iconset-dep}, kio (>> 5.115.0-5)/' debian/control.new
else
perl -pi -e 's/plasma-iconset-dep}/plasma-iconset-dep}, kio (>> 5.103.0-1)/' debian/control.new
endif
endif
ifeq "$(ENABLE_KF6)" "y"
cat debian/control.kf6.in >> debian/control.new
endif
ifeq "$(ENABLE_QT5)" "y"
cat debian/control.qt5.in >> debian/control.new
endif
ifeq "$(ENABLE_QT6)" "y"
cat debian/control.qt6.in >> debian/control.new
endif
ifeq "$(BUILD_PLASMA)" "y"
sed -e "s|@PLASMA_VERSION@|$(PLASMA_VERSION)|g" \
-e "s|@PLASMA_KF_VERSION@|$(PLASMA_KF_VERSION)|g" \
-e "s|@PLASMA_ARCHITECTURE@|$(PLASMA_ARCHITECTURE)|g" \
>> debian/control.new < debian/control.plasma.in
ifeq "$(PLASMA_VERSION)" "6"
# no kf6be here
sed -i "s/and a KDE\/KF$(PLASMA_KF_VERSION) configuration backend//" \
debian/control.new
endif
endif
ifeq "$(ENABLE_SDBC_POSTGRESQL)" "y"
cat debian/control.postgresql.in >> debian/control.new
endif
ifeq "$(ENABLE_EVO2)" "y"
cat debian/control.evolution.in >> debian/control.new
endif
cat debian/control.test-packages.in >> debian/control.new
ifeq "$(PACKAGE_LIBRELOGO)" "y"
cat debian/control.librelogo.in >> debian/control.new
endif
ifeq "$(ENABLE_FIREBIRD)" "y"
cat debian/control.firebird.in >> debian/control.new
endif
ifeq "$(ENABLE_DOTNET)" "y"
cat debian/control.cil.in >> debian/control.new
endif
perl -pi -e "s,%OOO_ARCHS%,$(OOO_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_NOGUI_ARCHS%,$(OOO_NOGUI_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_64BIT_ARCHS%,$(OOO_64BIT_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_BE_ARCHS%,$(OOO_BE_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_LE_ARCHS%,$(OOO_LE_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_BASE_ARCHS%,$(OOO_BASE_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_NO_BASE_ARCHS%,$(OOO_NO_BASE_ARCHS),"g debian/control.new
perl -pi -e "s,%OOO_JAVA_ARCHS%,$(OOO_JAVA_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_CLI_ARCHS%,$(OOO_CLI_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_ARCH_DEP_EXTENSIONS_ARCHS%,$(OOO_ARCH_DEP_EXTENSIONS_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_REPORTBUILDER_ARCHS%,$(OOO_REPORTBUILDER_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_NO_REPORTBUILDER_ARCHS%,$(OOO_NO_REPORTBUILDER_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_FIREBIRD_ARCHS%,$(OOO_FIREBIRD_ARCHS),g" debian/control.new
perl -pi -e "s,%OOO_NO_FIREBIRD_ARCHS%,$(OOO_NO_FIREBIRD_ARCHS),g" debian/control.new
perl -pi -e "s#%BUILD_DEPS%#$(strip $(BUILD_DEPS))#g" debian/control.new
perl -pi -e "s#%JUNIT_MIN_VER%#$(JUNIT_MIN_VER)#g" debian/control.new
ifeq "$(BUILD_PLASMA)" "y"
perl -pi -e 's/%LO-DESKTOP-INTEGRATION%/libreoffice-gnome | libreoffice-plasma/' debian/control.new
else
perl -pi -e 's/%LO-DESKTOP-INTEGRATION%/libreoffice-gnome/' debian/control.new
endif
ifeq (sk,$(findstring sk,$(HELPISOS)))
perl -pi -e 's/(Depends:.*)libreoffice-l10n-sk(.*)$$/\1libreoffice-l10n-sk, libreoffice-help-cs\2/' debian/control.new
endif
ifeq (pt-BR,$(findstring pt-BR,$(LANGPACKISOS)))
perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control.new
perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control.new
perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control.new
endif
ifeq "$(MYSQL_FLAVOUR)" "mysql"
perl -pi -e "s/(Build-Conflicts: .*)/\1,libmariadbclient-dev,/" debian/control.new
endif
ifneq "$(ALLOW_CLANG)" "y"
perl -pi -e "s/(Build-Conflicts: .*)/\1,clang,/" debian/control.new
else
perl -pi -e "s/(Build-Conflicts: .*)/\1,clang [$(filter-out $(OOO_CLANG_SUPPORTED_ARCHS),$(OOO_ARCHS))],/" debian/control.new
endif
ifeq "$(RUN_MAKE_CHECK)" "y"
# see #1103016. gpg-from-sq Provides: gpg (= 2.2.46)
perl -pi -e "s/(Build-Conflicts: .*)/\1,gpg-from-sq [$(OOO_CHECK_ARCHS)] <!nocheck>,/" debian/control.new
endif
$(PYTHON) debian/scripts/joinctrl.py < debian/control.new > debian/control.tmp
mv debian/control.tmp debian/control.new
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.new
endif
perl -pi -e 's/Description: office productivity suite -- presentation/Suggests: bluez\nDescription: office productivity suite -- presentation/' debian/control.new
endif
ifneq "$(DICT_DIR)" "/usr/share/hunspell"
perl -pi -e 's/^Breaks:.*myspell.*\n//' debian/control.new
endif
ifeq "$(ENABLE_APPARMOR_PROFILES)" "y"
perl -pi -e 's/ttf-mscorefonts-installer/ttf-mscorefonts-installer, apparmor/' debian/control.new
endif
diff -u debian/control debian/control.new && rm -f debian/control.new || (\
echo "Generated control file differs! Check the result!"; \
echo "Note: Edit control*.in and rules instead of control!"; \
echo "If the difference is correct move control.new to control"; \
exit 1)
#.DELETE_ON_ERROR: debian/control.new
debian/tests/control.new: debian/tests/control.in debian/rules
echo "#" > debian/tests/control.new
echo "# NOTE: This file is autogenerated. DO NOT manually edit it! " >> debian/tests/control.new
echo "# Edit debian/tests/control*in and rules (whatever applicable), run debian/rules control" >> debian/tests/control.new
echo "# and move control.new to control if the difference is sane." >> debian/tests/control.new
echo "#" >> debian/tests/control.new
sed -e "s|%OOO_JAVA_ARCHS%|$(OOO_JAVA_ARCHS)|g" \
-e "s,%OOO_NOJAVA_ARCHS%,$(filter-out $(OOO_JAVA_ARCHS),$(OOO_ARCHS)),g" \
-e "s|%OOO_JUNIT_ARCHS%|$(OOO_JUNIT_ARCHS)|g" \
-e "s|%OOO_NOGUI_ARCHS%|$(OOO_NOGUI_ARCHS)|g" \
-e "s|%OOO_JAVA_AND_NOGUI_ARCHS%|$(filter $(OOO_JAVA_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.new < debian/tests/control.in
# otherwise Architecture: is empty (and empty means "any" in autopgktest,
# cf. https://salsa.debian.org/ci-team/autopkgtest/-/blob/master/lib/testdesc.py#L546)
ifneq (,$(OOO_JUNIT_ARCHS))
sed -e "s|%OOO_JUNIT_ARCHS%|$(OOO_JUNIT_ARCHS)|g" \
>> debian/tests/control.new < debian/tests/control.junit.in
endif
# make sure it's the last one
ifeq (y,$(ENABLE_MARIADB))
cat debian/tests/control.mysql.in >> debian/tests/control.new
endif
ifneq (,$(findstring riscv64,$(OOO_AUTOPKGTEST_ARCHS)))
# don't even try Calc tests on riscv64
perl -pi -e 's/Tests: uicheck-sd/Tests: uicheck-sd\nArchitecture: !riscv64/' debian/tests/control.new
sed -i "`grep -n -A1 uicheck-sc debian/tests/control | tail -n 1 | cut -d- -f1`s/riscv64 //" debian/tests/control.new
sed -i "`grep -n -A1 uicheck-sw debian/tests/control | tail -n 1 | cut -d- -f1`s/riscv64 //" debian/tests/control.new
#perl -pi -e 's/Tests: uicheck-uitest/Tests: uicheck-uitest\nArchitecture: !riscv64/' debian/tests/control.new
endif
diff -u debian/tests/control debian/tests/control.new && rm -f debian/tests/control.new || (\
echo "Generated control file differs! Check the result!"; \
echo "Note: Edit tests/control*.in and rules instead of control!"; \
echo "If the difference is correct move control.new to control"; \
exit 1)
#.DELETE_ON_ERROR: debian/tests/control.new
# 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
ifeq ($(filter pkg.libreoffice.opensymbolbuild,$(DEB_BUILD_PROFILES)),)
# link to already-rebuilt opens___.ttf (fonts-opensymbol) form the arch indep build.
# Thankfully the sha256sum is only checked in Makefile.fetch (which we don't do)
cd $(SOURCE_TREE)/tarballs && \
ln -sf /usr/share/fonts/truetype/libreoffice/opens___.ttf \
f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
endif
touch $@
.PHONY: config_host.mk
config_host.mk:
rm -f config.status autogen.lastrun
PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \
CLANGDIR=$(CLANGDIR) \
MARIADBCONFIG=$(MARIADBCONFIG) \
FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \
./autogen.sh $(CONFIGURE_FLAGS)
build: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-arch $(STAMP_DIR)/build-indep
touch $(STAMP_DIR)/$@
build-arch: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-arch
$(STAMP_DIR)/build-arch:
#build-arch: ENABLE_HELP = n PACKAGE_SDK_DOCS = n ENABLE_MEDIAWIKI = n ENABLE_SCRIPT_PROVIDER_BSH = n ENABLE_SCRIPT_PROVIDER_JS = n
dh_testdir
ifeq "$(BUILD_NOGUI_PACKAGES)" "y"
# build with --disable-gui first
PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \
CLANGDIR=$(CLANGDIR) \
MARIADBCONFIG=$(MARIADBCONFIG) \
FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \
./autogen.sh $(CONFIGURE_FLAGS) \
--without-junit --without-cppunit \
--disable-ext-wiki-publisher \
--disable-scripting-beanshell --disable-scripting-javascript \
--without-doxygen --without-javadoc \
--with-galleries=no --with-theme="$(DEFAULT_IMAGE)" \
--disable-gui --disable-introspection --disable-qt5 --disable-kf5 --disable-qt6-multimedia
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 \
--disable-scripting-beanshell --disable-scripting-javascript \
--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 "$(ENABLE_JAVA)" "y"
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
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 $@
ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
build-tests:
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
ifeq "$(BOOKWORM_BACKPORT)" "y"
patch -p1 < debian/patches/disable-tdf163105-tests-due-to-old-amiri.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) $(CONFIGURE_FLAGS_TESTS) \
--disable-ext-wiki-publisher \
--without-doxygen --without-javadoc \
--disable-scripting-beanshell --disable-scripting-javascript \
--with-galleries=no --with-theme="$(DEFAULT_IMAGE)"
ifeq "$(BUILD_TESTS)" "y"
# build the tests (first)
export gb_SUPPRESS_TESTS=true; \
$(MAKE) check
endif
check: build-tests
ifeq "$(RUN_MAKE_CHECK)" "y"
# generate the needed en_US.UTF-8 locale if needed
if ! locale -a | grep -q ^en_US\.utf8; then \
mkdir -p $(CURDIR)/debian/locales; \
USE_CPUS=$(NUM_CPUS) debian/scripts/locale-gen; \
fi
# 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(helper), cppu(helper))
# - "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..
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 salhelper cppu cppuhelper 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; \
export LOCPATH=$(CURDIR)/debian/locales; \
export LANG=en_US.UTF-8; \
$(TEST_TIMEOUT) make check
# more public library checks
$(IGNORE_MAKE_FAILURES)\
for i in salhelper cppu cppuhelper; 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
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
ifeq "$(BOOKWORM_BACKPORT)" "y"
patch -p1 -R < debian/patches/disable-tdf163105-tests-due-to-old-amiri.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
else
# noop
build-tests:
check: build-tests
endif
install: $(STAMP_DIR)/install-common $(STAMP_DIR)/install-arch $(STAMP_DIR)/install-indep
install-common: $(STAMP_DIR)/install-common
ifeq ($(MAKECMDGOALS),binary)
$(STAMP_DIR)/install-common: $(STAMP_DIR)/build-arch $(STAMP_DIR)/build-indep
else
ifeq ($(MAKECMDGOALS),binary-indep)
$(STAMP_DIR)/install-common: $(STAMP_DIR)/build-indep
endif
ifeq ($(MAKECMDGOALS),binary-arch)
$(STAMP_DIR)/install-common: $(STAMP_DIR)/build-arch
endif
endif
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 \*
# we need to do it here. If -kf5 isn't built
# there's no -kf5.install generated, so dh_missing complains later
ifeq "$(ENABLE_QT5)" "y"
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 "$(shell echo $(ENABLE_KF5)$(ENABLE_KF6) | grep -q y && echo true)" "true"
ifeq "$(BUILD_PLASMA)" "y"
if [ -f debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libkf$(PLASMA_VERSION)be1lo.so ]; then \
mkdir -p debian/tmp/pkg/libreoffice-plasma/$(OODIR)/program; \
mv debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libkf$(PLASMA_VERSION)be1lo.so \
debian/tmp/pkg/libreoffice-plasma/$(OODIR)/program; \
fi
# remove other ones maybe built by --enable-kfX
rm -f debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libkf*be1lo.so
else
rm -f debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libkf*be1lo.so
endif
ifeq "$(ENABLE_KF5)" "y"
mkdir -p debian/tmp/pkg/libreoffice-kf5/$(OODIR)/program
mv debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libvclplug_kf5lo.so \
debian/tmp/pkg/libreoffice-kf5/$(OODIR)/program
endif
ifeq "$(ENABLE_KF6)" "y"
mkdir -p debian/tmp/pkg/libreoffice-kf6/$(OODIR)/program
mv debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libvclplug_kf6lo.so \
debian/tmp/pkg/libreoffice-kf6/$(OODIR)/program
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
# 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
# not installed, do manually
echo "../usr/lib/libreoffice/share/wordbook/en-US.dic usr/lib/libreoffice/share/wordbook" >> debian/libreoffice-common.install
ifeq (en-GB,$(findstring en-GB,$(LANGPACKISOS)))
if [ -f debian/tmp/usr/lib/libreoffice/share/wordbook/en-GB.dic ]; then \
echo "../usr/lib/libreoffice/share/wordbook/en-GB.dic usr/lib/libreoffice/share/wordbook" >> debian/libreoffice-l10n-en-gb.install; \
fi
endif
ifeq (hu,$(findstring hu,$(LANGPACKISOS)))
if [ -f debian/tmp/usr/lib/libreoffice/share/wordbook/hu_AkH11.dic ]; then \
echo "../usr/lib/libreoffice/share/wordbook/hu_AkH11.dic usr/lib/libreoffice/share/wordbook" >> debian/libreoffice-l10n-hu.install; \
fi
endif
ifeq (sl,$(findstring sl,$(LANGPACKISOS)))
if [ -f debian/tmp/usr/lib/libreoffice/share/wordbook/sl.dic ]; then \
echo "../usr/lib/libreoffice/share/wordbook/sl.dic usr/lib/libreoffice/share/wordbook" >> debian/libreoffice-l10n-sl.install; \
fi
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
# 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
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 "$(ENABLE_JAVA)" "y"
ifeq "$(PACKAGE_BASE)" "y"
mkdir -p $(PKGDIR)-sdbc-hsqldb/$(OODIR)/share/registry
mv $(PKGDIR)-common/$(OODIR)/share/registry/hsqldb.xcd \
$(PKGDIR)-sdbc-hsqldb/$(OODIR)/share/registry
else
rm -f $(PKGDIR)-common/$(OODIR)/share/registry/hsqldb.xcd
endif
endif
ifeq "$(ENABLE_DOTNET)" "y"
mkdir -p debian/libuno-net-basetypes-cil/$(OODIR)/program/dotnet
mkdir -p debian/libuno-net-oootypes-cil/$(OODIR)/program/dotnet
mkdir -p debian/libuno-net-uretypes-cil/$(OODIR)/program/dotnet
mv debian/ure/$(OODIR)/program/dotnet/net_basetypes.dll \
debian/libuno-net-basetypes-cil/$(OODIR)/program/dotnet
mv debian/ure/$(OODIR)/program/dotnet/net_oootypes.dll \
debian/libuno-net-oootypes-cil/$(OODIR)/program/dotnet
mv debian/ure/$(OODIR)/program/dotnet/net_uretypes.dll \
debian/libuno-net-uretypes-cil/$(OODIR)/program/dotnet
mkdir -p debian/ure-dotnet/$(OODIR)/program/dotnet
mv debian/ure/$(OODIR)/program/dotnet/net_bridge* \
debian/ure-dotnet/$(OODIR)/program/dotnet
rmdir debian/ure/$(OODIR)/program/dotnet
ifeq "$(PACKAGE_SDK)" "y"
mkdir -p $(PKGDIR)-dev-dotnet/$(OODIR)/sdk
mv debian/ure/$(OODIR)/sdk/dotnet \
$(PKGDIR)-dev-dotnet/$(OODIR)/sdk
else
rmdir debian/ure/$(OODIR)/sdk/dotnet
endif
rmdir debian/ure/$(OODIR)/sdk
endif
ifeq "$(ENABLE_FIREBIRD)" "y"
mkdir -p $(PKGDIR)-sdbc-firebird/$(OODIR)/share/registry
mv $(PKGDIR)-common/$(OODIR)/share/registry/firebird_sdbc.xcd \
$(PKGDIR)-sdbc-firebird/$(OODIR)/share/registry
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
mkdir -p $(PKGDIR)-dev-common/$(OODIR)/sdk/bin
mv $(PKGDIR)-dev/$(OODIR)/sdk/bin/addon_console.py* \
$(PKGDIR)-dev-common/$(OODIR)/sdk/bin
# 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_LOKIT)" "y"
# package LibreOfficeKit headers in an own package (which was the
# case anyway before it got installed into the SDK from 24.8.0 rc2
# onwards).
rm -rf debian/libreofficekit-dev
mkdir -p debian/libreofficekit-dev/usr/include
mv $(PKGDIR)-dev-common/usr/include/libreoffice/LibreOfficeKit \
debian/libreofficekit-dev/usr/include
ifeq "$(BUILD_GTK3)" "y"
rm -rf debian/libreofficekit-dev-gtk
mkdir -p debian/libreofficekit-dev-gtk/usr/include/LibreOfficeKit
mv debian/libreofficekit-dev/usr/include/LibreOfficeKit/LibreOfficeKitGtk.h \
debian/libreofficekit-dev-gtk/usr/include/LibreOfficeKit
endif
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
else
rm -f $(PKGDIR)-common/$(OODIR)/presets/database/evolocal.odb
endif
ifeq "$(PACKAGE_BASE)" "y"
mkdir -p debian/python3-access2base/$(PYTHON_SITE)
mv $(PKGDIR)-common/$(OODIR)/program/access2base.py \
debian/python3-access2base/$(PYTHON_SITE)
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
# ScriptForge
mkdir -p debian/python3-scriptforge/$(PYTHON_SITE)
mv $(PKGDIR)-common/$(OODIR)/program/scriptforge.py \
debian/python3-scriptforge/$(PYTHON_SITE)
mv $(PKGDIR)-common/$(OODIR)/program/scriptforge.pyi \
debian/python3-scriptforge/$(PYTHON_SITE)
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)-uiconfig-$$i/$(OODIR)/share/config/soffice.cfg/modules; \
mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/s$$i \
$(PKGDIR)-uiconfig-$$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)-uiconfig-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)-uiconfig-base/$(OODIR)/share/config/soffice.cfg/modules; \
done; \
fi; \
done
mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/dbaccess \
$(PKGDIR)-uiconfig-base/$(OODIR)/share/config/soffice.cfg
mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/writerperfect \
$(PKGDIR)-uiconfig-writer/$(OODIR)/share/config/soffice.cfg
mkdir -p $(PKGDIR)-uiconfig-report-builder/$(OODIR)/share/config/soffice.cfg/modules
ifeq "$(ENABLE_REPORTBUILDER)" "y"
mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/dbreport \
$(PKGDIR)-uiconfig-report-builder/$(OODIR)/share/config/soffice.cfg/modules
else
rm -rf $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/dbreport
endif
mkdir -p $(PKGDIR)-uiconfig-common/$(OODIR)/share/config/
mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg \
$(PKGDIR)-uiconfig-common/$(OODIR)/share/config
mkdir -p $(PKGDIR)-uiconfig-impress/$(OODIR)/share/config/soffice.cfg
mv $(PKGDIR)-impress/$(OODIR)/share/config/soffice.cfg/simpress \
$(PKGDIR)-uiconfig-impress/$(OODIR)/share/config/soffice.cfg
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 config; 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; \
perl -pi -e "s,\@DEB_HOST_ARCH\@,$(DEB_HOST_ARCH),g" $$MAINTSCRIPT; \
fi; \
done; \
done
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.preinst.in \
| sed -e "s/\@PKGISO\@/$$pkgiso/g" \
| sed -e "s/\@ISO\@/$$iso/g" \
>> debian/libreoffice-l10n-$$pkgiso.preinst; \
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
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
for i in java_uno.jar java_websocket.jar; do \
mv debian/ure/$(OODIR)/program/classes/$$i \
debian/ure-java/usr/share/java; \
ln -sf /usr/share/java/$$i debian/ure-java/$(OODIR)/program/classes/$$i; \
done
# 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}3t64/$(OODIR)/program; \
mkdir -p debian/libuno-$${i}3t64/usr/lib/$(DEB_HOST_MULTIARCH); \
mv debian/ure/$(OODIR)/program/libuno_$${i}.so.3 \
debian/libuno-$${i}3t64/$(OODIR)/program; \
ln -sf /$(OODIR)/program/`basename libuno_$$i.so.3` debian/libuno-$${i}3t64/usr/lib/$(DEB_HOST_MULTIARCH)/`basename libuno_$$i.so.3`; \
done
for i in salhelpergcc3 cppuhelpergcc3 purpenvhelpergcc3; do \
mkdir -p debian/libuno-$${i}-3t64/$(OODIR)/program; \
mkdir -p debian/libuno-$${i}-3t64/usr/lib/$(DEB_HOST_MULTIARCH); \
mv debian/ure/$(OODIR)/program/libuno_$${i}.so.3 \
debian/libuno-$${i}-3t64/$(OODIR)/program; \
ln -sf /$(OODIR)/program/`basename libuno_$$i.so.3` debian/libuno-$${i}-3t64/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 "$(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
mv $(PKGDIR)-core/$(OODIR)/program/libavmediagtk.so $(PKGDIR)-gtk4/$(OODIR)/program
endif
ifeq "$(ENABLE_QT6_MULTIMEDIA)" "y"
mv $(PKGDIR)-core/$(OODIR)/program/libavmediaqt6.so $(PKGDIR)-qt6/$(OODIR)/program
endif
endif
ifeq "$(ENABLE_INTROSPECTION)" "y"
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
dh_install -pgir1.2-lokdocview-0.1
endif
ifeq "$(PACKAGE_LOKIT)" "y"
ifeq "$(ENABLE_INTROSPECTION)" "y"
echo "workdir/CustomTarget/sysui/share/libreoffice/LOKDocView-0.1.gir /usr/share/gir-1.0/" >> debian/libreofficekit-dev-gtk.install
endif
dh_install -plibreofficekit-dev-gtk
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_ ...
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
# ... here.
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 debian/python3-uno/$(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" > debian/python3-uno/$(PYTHON_SITE)/uno.py
echo "sys.path.append('/$(OODIR)/program')" >> debian/python3-uno/$(PYTHON_SITE)/uno.py
echo "os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:/$(OODIR)/program/fundamentalrc')" >> debian/python3-uno/$(PYTHON_SITE)/uno.py
cat debian/python3-uno/$(OODIR)/program/uno.py >> debian/python3-uno/$(PYTHON_SITE)/uno.py
rm -f debian/python3-uno/$(OODIR)/program/uno.py
mv debian/python3-uno/$(OODIR)/program/unohelper.py debian/python3-uno/$(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/classes
mkdir -p $(PKGDIR)-sdbc-hsqldb/usr/share/libreoffice/program/classes
mkdir -p $(PKGDIR)-sdbc-hsqldb/$(OODIR)/share/registry
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
ifeq "$(ENABLE_MARIADB)" "y"
mkdir -p $(PKGDIR)-sdbc-mysql/$(OODIR)/program
mv $(PKGDIR)-base/$(OODIR)/program/libmysqlclo.so \
$(PKGDIR)-sdbc-mysql/$(OODIR)/program
# FIXME. Do in scp2
mkdir -p $(PKGDIR)-sdbc-mysql/$(OODIR)/share/registry
install -m644 instdir/share/registry/mysqlc.xcd \
$(PKGDIR)-sdbc-mysql/$(OODIR)/share/registry
endif
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 ($(ENABLE_LPSOLVE),y)
ifeq (,$(filter lpsolve, $(SYSTEM_STUFF)))
mv $(PKGDIR)-core/$(OODIR)/program/liblpsolve55.so \
$(PKGDIR)-calc/$(OODIR)/program
endif
endif
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" \
-a ! -name "libforuilo.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
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
else
rm -f $(PKGDIR)-java-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes/smoketest.jar
rm -f $(PKGDIR)-java-common/$(OODIR)/program/classes/smoketest.jar
endif
endif
# fix permissions
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
# disabling the splash screen
sed -i -e 's/Logo=1/Logo=0/' $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc
install -m 644 debian/soffice.sh \
$(PKGDIR)-common/etc/$(OODIRNAME)/soffice.sh
# local registry files
mkdir -p $(PKGDIR)-common/usr/lib/libreoffice/share/registry
cp debian/local/registry/* $(PKGDIR)-common/usr/lib/libreoffice/share/registry
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)-help-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config; \
mv $(PKGDIR)-common/$(OODIR)/share/config/images_helpimg.zip \
$(PKGDIR)-help-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/; \
mkdir -p $(PKGDIR)-help-common/$(OODIR)/share/config; \
ln -s /$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/images_helpimg.zip \
$(PKGDIR)-help-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 $(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; \
mkdir -p $(PKGDIR)-common/etc/libreoffice/registry; \
ln -s /usr/share/doc/libreoffice-common/examples/$$i $(PKGDIR)-common/$(OODIR)/share/registry/$$i; \
done
#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
# not installed if skia is disabled. Arch-indep builds disable skia for build-dep and
# speed reasons and it is supposed to end up in an arch-indep package (libreoffice-common)
# So install this manually if skia is disabled
ifneq "$(ENABLE_SKIA)" "y"
mkdir -p $(PKGDIR)-common/$(OODIR)/share/skia
install -m644 $(SOURCE_TREE)/vcl/skia/skia_denylist_vulkan.xml \
$(PKGDIR)-common/$(OODIR)/share/skia/skia_denylist_vulkan.xml
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 config xml "pretty" to make ucf --three-way work
t=`mktemp -q`; \
xmllint --pretty 1 debian/libreoffice-common/$(OODIR)/share/registry/main.xcd > $$t; \
mv $$t debian/libreoffice-common/$(OODIR)/share/registry/main.xcd
mkdir -p debian/libreoffice-common/$(OODIR)/share/.registry
mv debian/libreoffice-common/$(OODIR)/share/registry/main.xcd \
debian/libreoffice-common/$(OODIR)/share/.registry/main.xcd
# make sure we have a share/extensions dir owned by -common
mkdir -p $(PKGDIR)-common/$(OODIR)/share/extensions
# we need a common dir here otherwise the junit tests fail. See
# https://lists.freedesktop.org/archives/libreoffice/2025-January/092950.html.
# FIXME: The question is why it doesn't end up in the install without this, though...
mkdir -p $(PKGDIR)-common/$(OODIR)/share/wordbook/common
touch $@
binary-arch: $(STAMP_DIR)/binary-arch
$(STAMP_DIR)/binary-arch: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-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 --debconf-ok /" 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-cppu3t64 libuno-sal3t64 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}3t64/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program; \
mkdir -p debian/.debhelper/libuno-$${i}3t64/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}3t64/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}3t64/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 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 -ldebian/libreofficekit-dev-gtk/usr/share/gir-1.0 -pdebian/liblibreofficekitgtk/$(OODIR)/program
endif
dh_strip_nondeterminism -a
for i in sal3 cppu3 salhelpergcc3-3 cppuhelpergcc3-3 purpenvhelpergcc3-3; do \
dh_makeshlibs -plibuno-$${i}t64 -V"libuno-$${i}t64 (>= 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 stricter dependency
# - e.g. (wanted) (>= 3.0.0~) - instead of .symbols which gives os only a
# (>= 2.5.0.25784~ReleaseCandidate1.ds2)...
# Also go sure on libfbclient2s upper version (see e.g. #1094284 and
# https://lists.debian.org/debian-release/2025/01/msg00708.html)
cat /var/lib/dpkg/info/libfbclient2*.shlibs \
| sed -e "s/$$/, libfbclient2 (<< $(shell echo "$(FIREBIRD_VERSION) + 1" | bc)~)/" >> debian/shlibs.local
endif
endif
dh_shlibdeps -a -Nlibreoffice-core-nogui -Nure \
-Lure -Llibuno-sal3t64 -Llibpuno-cppu3t64 -Llibuno-salhelpergcc3-3t64 -Llibcppuhelpergcc3-3t64 -Llibuno-purpenvhelpergcc3-3t64 \
-l$(CURDIR)/debian/libuno-sal3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppu3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-salhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppuhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-purpenvhelpergcc3-3t64/$(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-sal3t64 -Llibpuno-cppu3t64 -Llibuno-salhelpergcc3-3t64 -Llibcppuhelpergcc3-3t64 -Llibuno-purpenvhelpergcc3-3t64 \
-l$(CURDIR)/debian/libuno-sal3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppu3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-salhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppuhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-purpenvhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/ure/$(OODIR)/program \
-- -xure
ifeq "$(BUILD_NOGUI_PACKAGES)" "y"
dh_shlibdeps -plibreoffice-core-nogui \
-Lure -Llibuno-sal3t64 -Llibpuno-cppu3t64 -Llibuno-salhelpergcc3-3t64 -Llibcppuhelpergcc3-3t64 -Llibuno-purpenvhelpergcc3-3t64 \
-l$(CURDIR)/debian/libuno-sal3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppu3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-salhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppuhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-purpenvhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/ure/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-core-nogui/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-base-core/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-base/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-writer/$(OODIR)/program \
$(SHLIBS_OVERRIDE)
endif
ifneq (,$(filter coinmp, $(SYSTEM_STUFF)))
perl -pi -e "s/coinor-libcoinutils3v5/coinor-libcoinutils3v5 $(COINUTILS_MINVER)/" \
debian/libreoffice-calc.substvars
perl -pi -e "s/coinor-libcoinmp1v5/coinor-libcoinmp1v5 $(COINMP_MINVER)/" \
debian/libreoffice-calc.substvars
endif
ifeq "$(ENABLE_JAVA)" "y"
for p in $(ARCH_DEP_PACKAGES); do \
jh_depends -p$$p -Xure -Xbase-files; \
done
# jh_depends adds ure (${source:Version}) entries. They are overly strict
# and do not fit anyway given ure has a different versioning scheme. Excluded
# above, readd here unversioned
perl -pi -e 's/^(java:Depends.*$$)/\1, ure/' \
debian/libofficebean-java.substvars
endif
ifneq "$(PLASMA_ARCHITECTURE)" "all"
# hack in a libreoffice-core dependency
if grep -q misc\:Depends debian/libreoffice-plasma.substvars; then \
sed -i 's/misc:Depends=\(.*\)/misc:Depends=$1, libreoffice-core (= $${binary:Version})' \
debian/libreoffice-plasma.substvars; \
else \
echo 'misc:Depends=libreoffice-core (= $${binary:Version})' \
>> debian/libreoffice-plasma.substvars; \
fi
endif
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'kf6-qt6-depends=$(KF6_QT6_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-sal3t64 libuno-cppu3t64 libuno-salhelpergcc3-3t64 libuno-cppuhelpergcc3-3t64 libuno-purpenvhelpergcc3-3t64 \
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
ifeq "$(ENABLE_DOTNET)" "y"
dh_gencontrol -plibreoffice-dev-dotnet -- \
-v$(shell echo `basename instdir/sdk/dotnet/LibreOffice.Bindings*.nupkg .nupkg` | sed -e "s/LibreOffice.Bindings.//")+LibO`echo $(BINARY_VERSION) | cut -d: -f2`
endif
dh_md5sums -a
dh_builddeb -a $(DEBHELPER_OPTIONS)
touch $@
binary-indep: $(STAMP_DIR)/binary-indep
$(STAMP_DIR)/binary-indep: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-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
#ifneq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CLI_ARCHS)))
# echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
# echo "For uploads with binary-all packages, please use arches where CLI/.NET 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 -ppython3-scriptforge
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
ifeq (,$(filter rhino, $(SYSTEM_STUFF)))
# 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
endif
ifeq "$(BUILD_TEST_PACKAGES)" "y"
perl -pi -e 's/junit4/junit4 $(JUNIT_MIN_VER)/' \
debian/libreoffice-subsequentcheckbase.substvars
endif
ifeq "$(ENABLE_DOTNET)" "y"
# noop, since not signed/versioned
#dh_makeclilibs -i
# nothing to depend on, dotnet-sdk-8.0 has no clideps and so no dep info
# for net itself
# And dh_makeclilibs doesn't create a .clilibs for our libs either
#dh_clideps -i
# hack in until dh_clideps works (see above). This is according to the generated .csproj
# ProjectReference
echo "cli:Depends=libuno-net-basetypes-cil" >> debian/libuno-net-uretypes-cil.substvars
echo "cli:Depends=libuno-net-uretypes-cil" >> debian/libuno-net-oootypes-cil.substvars
echo "cli:Depends=libuno-net-uretypes-cil" >> debian/ure-dotnet.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_DOTNET)" "y"
dh_gencontrol -plibuno-net-basetypes-cil -- \
-v$(shell grep Version net_ure/DotnetLibrary_net_basetypes.mk | sed -e 's,.*<Version>\(.*\)</Version>.*,\1,')+LibO`echo $(BINARY_VERSION) | cut -d: -f2`
dh_gencontrol -plibuno-net-oootypes-cil -- \
-v$(shell grep Version net_ure/DotnetLibrary_net_oootypes.mk | sed -e 's,.*<Version>\(.*\)</Version>.*,\1,')+LibO`echo $(BINARY_VERSION) | cut -d: -f2`
dh_gencontrol -plibuno-net-uretypes-cil -- \
-v$(shell grep Version net_ure/DotnetLibrary_net_uretypes.mk | sed -e 's,.*<Version>\(.*\)</Version>.*,\1,')+LibO`echo $(BINARY_VERSION) | cut -d: -f2`
endif
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: