# Description: LibreOffice is a powerful office suite # URL: https://www.libreoffice.org/ # Maintainer: Tim Biermann, tbier at posteo dot de # Depends on: abseil-cpp box2d clucene fakeroot fontforge graphite2 gst-plugins-base hyphen icu libabw libcdr libcuckoo libe-book libepubgen libetonyek libexttextcat libfreehand libmspub libmwaw libmythes libnumbertext libodfgen liborcus libpagemaker libqrcodegen libqxp libstaroffice libtommath libvisio libwpg libwps libzmf neon nss openjpeg2 paper redland unzip xmlsec xorg-libxcomposite zip # Optional: avahi coin-or-mp cups gpgme kio lpsolve mariadb openldap postgresql python3-lxml qt5 sane valgrind name=libreoffice version=7.3.5.1 release=1 pdfiumversion=4699 source=(https://downloadarchive.documentfoundation.org/libreoffice/old/$version/src/$name-$version.tar.xz https://downloadarchive.documentfoundation.org/libreoffice/old/$version/src/$name-dictionaries-$version.tar.xz https://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll https://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz https://dev-www.libreoffice.org/src/dtoa-20180411.tgz #https://dev-www.libreoffice.org/src/skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz https://dev-www.libreoffice.org/src/pdfium-$pdfiumversion.tar.bz2 #https://dev-www.libreoffice.org/src/libcmis-0.5.2.tar.xz makefile.in.patch) # unpack_source() {{{ unpack_source() { mkdir $SRC/tarballs for file in ${source[@]}; do case ${file##*/} in libreoffice-*.tar.xz) echo "Unpacking $(get_filename $file)" bsdtar -p -o -C $SRC -xf $(get_filename $file) ;; 185d60944ea767075d27247c3162b3bc-unowinreg.dll|\ pdfium-$pdfiumversion.tar.bz2|\ dtoa-20180411.tgz|\ skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz|\ libcmis-0.5.2.tar.xz|\ 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz) echo "Moving $(get_filename $file) to $SRC/tarballs" cp $(get_filename $file) $SRC/tarballs ;; *) cp $(get_filename $file) $SRC ;; esac done } # }}} build() { # fail the build if dependencies are not met {{{ ls /usr/include/harfbuzz/hb-icu.h || (printf '\e[1;31m%-6s\e[m\n' "you need to install icu, then rebuild harfbuzz for libreoffice to work, quitting.." ; exit 1) ls /usr/lib/pkgconfig/xmlsec1-nss.pc || (printf '\e[1;31m%-6s\e[m\n' "you need to install nss, then rebuild xmlsec for libreoffice to work, quitting.." ; exit 1) # }}} cd $name-$version patch -Np1 -i $SRC/makefile.in.patch sed -i 's:application/pdf;::g' sysui/desktop/menus/draw.desktop sed -i 's:text/plain;::g' sysui/desktop/menus/writer.desktop # optionals {{{ prt-get isinst avahi && PKGMK_LIBREOFFICE+=' --enable-avahi' || PKGMK_LIBREOFFICE+=' --disable-avahi' #prt-get isinst box2d && PKGMK_LIBREOFFICE+=' --with-system-box2d' || PKGMK_LIBREOFFICE+=' --without-system-box2d' #prt-get isinst ccache && PKGMK_LIBREOFFICE+=' --enable-ccache' || PKGMK_LIBREOFFICE+=' --disable-ccache' prt-get isinst ccache && export CCACHE_CPP2=1 #prt-get isinst clucene && PKGMK_LIBREOFFICE+=' --with-system-clucene' || PKGMK_LIBREOFFICE+=' --without-system-clucene' prt-get isinst coin-or-mp && PKGMK_LIBREOFFICE+=' --with-system-coinmp' || PKGMK_LIBREOFFICE+=' --disable-coinmp' prt-get isinst cups && PKGMK_LIBREOFFICE+=' --enable-cups' || PKGMK_LIBREOFFICE+=' --disable-cups' prt-get isinst gpgme && PKGMK_LIBREOFFICE+=' --enable-gpgmepp' || PKGMK_LIBREOFFICE+=' --disable-gpgmepp' prt-get isinst dconf && PKGMK_LIBREOFFICE+=' --enable-dconf' || PKGMK_LIBREOFFICE+=' --disable-dconf' #prt-get isinst gtk4 && PKGMK_LIBREOFFICE+=' --enable-gtk4' prt-get isinst kio && PKGMK_LIBREOFFICE+=' --enable-kde5 --enable-gtk3-kde5' #prt-get isinst libstaroffice && PKGMK_LIBREOFFICE+=' --with-system-libstaroffice' || PKGMK_LIBREOFFICE+=' --without-system-libstaroffice' #prt-get isinst libtommath && PKGMK_LIBREOFFICE+= ' --with-system-libtommath' || PKGMK_LIBREOFFICE+=' --without-system-libtommath' prt-get isinst lpsolve && PKGMK_LIBREOFFICE+=' --enable-lpsolve' || PKGMK_LIBREOFFICE+=' --disable-lpsolve' prt-get isinst mariadb || PKGMK_LIBREOFFICE+=' --disable-mariadb-sdbc' prt-get isinst openldap || PKGMK_LIBREOFFICE+=' --disable-ldap' prt-get isinst postgresql || PKGMK_LIBREOFFICE+=' --disable-postgresql-sdbc' prt-get isinst python3-lxml || PKGMK_LIBREOFFICE+=' --without-lxml' prt-get isinst qt5 && PKGMK_LIBREOFFICE+=' --enable-qt5' || PKGMK_LIBREOFFICE+=' --disable-qt5' #prt-get isinst qt6-base && PKGMK_LIBREOFFICE+=' --enable-qt6' || PKGMK_LIBREOFFICE+=' --disable-qt6' prt-get isinst sane && PKGMK_LIBREOFFICE+=' --with-system-sane' || PKGMK_LIBREOFFICE+=' --without-system-sane' prt-get isinst valgrind && PKGMK_LIBREOFFICE+=' --with-valgrind' # }}} local build_date=$(date +%Y%m%d) NOCONFIGURE=1 ./autogen.sh ./configure $PKGMK_LIBREOFFICE \ --with-parallelism=${JOBS-1} \ --prefix=/usr \ --with-external-tar="$SRC/tarballs" \ --enable-{build-opensymbol,dbus,firebird-sdbc=no,gtk3,introspection=yes} \ --enable-{ld=gold,lto,odk,openssl,pdfium,python=system,release-build} \ --with-{lang="",package-format=archive,myspell-dicts} \ --with-extra-buildid="$(crux | awk '{ print $1 " " $3 }') ${build_date}" \ --with-package-version="$version" \ --with-system-{headers,libs} \ --with-external-dict-dir=/usr/share/hunspell \ --with-external-hyph-dir=/usr/share/hypen \ --with-external-thes-dir=/usr/share/mythes \ --without-{doxygen,fonts,gssapi,help,helppack-integration,java,system-firebird} \ --disable-{ccache,cmis,dependency-tracking,extension-update,fetch-external,firebird-sdbc} \ --disable-{online-update,poppler,report-builder,sdremote-bluetooth,skia,werror,zxing} touch {sources.ver,src.downloaded} echo "lo_sources_ver=${version}" > sources.ver make pushd workdir/installation/LibreOffice/archive/install/en-US tar xf *.tar.gz popd make DESTDIR=$PKG distro-pack-install install -dm755 $PKG/usr/etc/libreoffice install -m644 $PKG/usr/lib/libreoffice/program/{bootstraprc,sofficerc} \ $PKG/usr/etc/libreoffice/ install -m644 $PKG/usr/lib/libreoffice/share/psprint/psprint.conf \ $PKG/usr/etc/libreoffice/ # install dummy links to make them found by lo cd $PKG/usr/lib/libreoffice/program/ ln -vsrf $PKG/usr/etc/libreoffice/{bootstraprc,sofficerc} . # cleanup {{{ rm -r $PKG/usr/share/{doc,libreoffice/sdk} rm -r $PKG/usr/lib/libreoffice/sdk find $PKG -iname "*readme*" -exec rm -fr '{}' \+ # }}} }