Files
haikuports/app-office/libreoffice/libreoffice-24.8.1.1.recipe
2026-01-28 11:00:34 +01:00

431 lines
15 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SUMMARY="A full office productivity suite"
DESCRIPTION="LibreOffice is a powerful office suite its clean interface and \
feature-rich tools help you unleash your creativity and enhance your \
productivity.
It's compatible with a wide range of document formats such as MS Word (.doc, \
.docx), Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx) and Publisher.
LibreOffice includes several applications that make it the most powerful Free \
and Open Source office suite on the market:
- Writer (word processing)
- Calc (spreadsheets)
- Impress (presentations)
- Draw (vector graphics and flowcharts)
- Base (databases)
- Math (formula editing)"
HOMEPAGE="https://www.libreoffice.org/"
COPYRIGHT="2000-2024 LibreOffice contributors"
LICENSE="MPL v2.0"
REVISION="1"
SOURCE_URI="https://github.com/LibreOffice/core/archive/libreoffice-$portVersion.tar.gz"
CHECKSUM_SHA256="ffafcd5a0af5d0bb1ad0211dba0608069dbeb4d8fa898f0d4bd9e6cc98b4fad4"
SOURCE_DIR="core-libreoffice-$portVersion"
SOURCE_FILENAME="core-libreoffice-$portVersion.tar.gz"
SOURCE_URI_2="https://github.com/LibreOffice/translations/archive/libreoffice-$portVersion.tar.gz"
CHECKSUM_SHA256_2="f2384d18fac29d328492d453768cc6410d46dd259a049ad4d73323856d9ae7c3"
SOURCE_DIR_2="translations-libreoffice-$portVersion"
SOURCE_FILENAME_2="translations-libreoffice-$portVersion.tar.gz"
SOURCE_URI_3="https://github.com/LibreOffice/dictionaries/archive/refs/tags/libreoffice-$portVersion.tar.gz"
CHECKSUM_SHA256_3="deeac81ef425e7a294397a8e9c97e0e7e80f73979c54e36c8de9c620e4063612"
SOURCE_DIR_3="dictionaries-libreoffice-$portVersion"
SOURCE_FILENAME_3="dictionaries-libreoffice-$portVersion.tar.gz"
SOURCE_URI_4="https://dev-www.libreoffice.org/src/dtoa-20180411.tgz#noarchive"
CHECKSUM_SHA256_4="0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4"
SOURCE_URI_5="https://dev-www.libreoffice.org/src/libcuckoo-93217f8d391718380c508a722ab9acd5e9081233.tar.gz#noarchive"
CHECKSUM_SHA256_5="471dd83a813ed2816c2246c373004470ad0f6612c7ce72038929dc5161cdd58e"
SOURCE_URI_6="https://dev-www.libreoffice.org/src/dragonbox-1.1.3.tar.gz#noarchive"
CHECKSUM_SHA256_6="09d63b05e9c594ec423778ab59b7a5aa1d76fdd71d25c7048b0258c4ec9c3384"
SOURCE_URI_7="https://dev-www.libreoffice.org/src/frozen-1.1.1.tar.gz#noarchive"
CHECKSUM_SHA256_7="f7c7075750e8fceeac081e9ef01944f221b36d9725beac8681cbd2838d26be45"
SOURCE_URI_8="https://dev-www.libreoffice.org/src/zxcvbn-c-2.5.tar.gz#noarchive"
CHECKSUM_SHA256_8="77d6c6ecb35952a8d8ce7f736b7a2bf466275c48210e309b73782d6b7e84dffd"
srcGitRevision9="cd5a5ee2cc0e3b3a62a5827d22035752ec7813a3"
SOURCE_URI_9="https://github.com/threedeyes/LibreOfficeLauncher/archive/$srcGitRevision9.tar.gz"
CHECKSUM_SHA256_9="5314962ca770369398599e175dc2c35c685d3fc968c9894390490c737036e528"
SOURCE_DIR_9="LibreOfficeLauncher-$srcGitRevision9"
SOURCE_FILENAME_9="LibreOfficeLauncher-$srcGitRevision9.tar.gz"
PATCHES="libreoffice-$portVersion.patchset"
ADDITIONAL_FILES="
libreoffice.iom
libreoffice.rdef.in
create_buildid.sh
"
POST_INSTALL_SCRIPTS="$relativePostInstallDir/create_buildid.sh"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="!x86"
boostMinimumVersion=1.83.0
libreofficeLanguages="af ar be bg bn br brx bs ca ca-valencia cs cy da de dsb el en-GB en-ZA eo es et eu fa fi fr fy ga gd gl he hi hr hu id is it ja ka kk kmr-Latn ko lb lt lv mk mn nb ne nl nn pl pt pt-BR ro ru sa-IN sd sk sl sq sr sr-Latn sv szl tg th tr tt ug uk uz vi zh-CN zh-TW"
PROVIDES="
libreoffice$secondaryArchSuffix = $portVersion
app:LibreOffice = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libabw_0.1$secondaryArchSuffix
lib:libargon2$secondaryArchSuffix
lib:libboost_date_time$secondaryArchSuffix
lib:libboost_filesystem$secondaryArchSuffix
lib:libboost_iostreams$secondaryArchSuffix
lib:libboost_locale$secondaryArchSuffix
lib:libBox2D$secondaryArchSuffix
lib:libcairo$secondaryArchSuffix
lib:libcdr_0.1$secondaryArchSuffix
lib:libclucene_core$secondaryArchSuffix
lib:libcmis_0.6$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libcurl$secondaryArchSuffix
lib:libe_book_0.1$secondaryArchSuffix
lib:libepoxy$secondaryArchSuffix
lib:libepubgen_0.1$secondaryArchSuffix
lib:libetonyek_0.1$secondaryArchSuffix
lib:libexpat$secondaryArchSuffix
lib:libexslt$secondaryArchSuffix
lib:libexttextcat_2.0$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreehand_0.1$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgraphite2$secondaryArchSuffix
lib:libharfbuzz_icu$secondaryArchSuffix
lib:libharfbuzz$secondaryArchSuffix
lib:libhunspell_1.7$secondaryArchSuffix
lib:libhyphen$secondaryArchSuffix
lib:libicui18n$secondaryArchSuffix >= 74
lib:libicuuc$secondaryArchSuffix >= 74
lib:libintl$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:liblangtag$secondaryArchSuffix
lib:liblber_2.4$secondaryArchSuffix
lib:liblcms2$secondaryArchSuffix
lib:libldap_2.4$secondaryArchSuffix
lib:liblpsolve55$secondaryArchSuffix
lib:libmspub_0.1$secondaryArchSuffix
lib:libmwaw_0.3$secondaryArchSuffix
lib:libmythes_1.2$secondaryArchSuffix
lib:libmysqlclient$secondaryArchSuffix
lib:libneon$secondaryArchSuffix
lib:libnspr4$secondaryArchSuffix
lib:libnss3$secondaryArchSuffix
lib:libnssutil3$secondaryArchSuffix
lib:libnumbertext_1.0$secondaryArchSuffix
lib:libodfgen_0.1$secondaryArchSuffix
lib:liborcus_0.18$secondaryArchSuffix
lib:libpagemaker_0.0$secondaryArchSuffix
lib:libplc4$secondaryArchSuffix
lib:libplds4$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libpoppler_qt6$secondaryArchSuffix
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
lib:libQt6Multimedia$secondaryArchSuffix
lib:libQt6MultimediaWidgets$secondaryArchSuffix
lib:libQt6Widgets$secondaryArchSuffix
lib:libqxp_0.0$secondaryArchSuffix
lib:libraptor2$secondaryArchSuffix
lib:librdf$secondaryArchSuffix
lib:libreadline$secondaryArchSuffix
lib:librevenge_0.0$secondaryArchSuffix
lib:librevenge_stream_0.0$secondaryArchSuffix
lib:libsmime3$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libssl3$secondaryArchSuffix
lib:libstaroffice_0.0$secondaryArchSuffix
lib:libtiff$secondaryArchSuffix
lib:libuuid$secondaryArchSuffix
lib:libvisio_0.1$secondaryArchSuffix
lib:libwebp$secondaryArchSuffix
lib:libwpd_0.10$secondaryArchSuffix
lib:libwpg_0.3$secondaryArchSuffix
lib:libwps_0.4$secondaryArchSuffix
lib:libxmlsec1_nss$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libzmf_0.0$secondaryArchSuffix
"
ARCHITECTURES_galleries="any"
PROVIDES_galleries="
libreoffice_galleries = $portVersion
"
REQUIRES_galleries="
app:LibreOffice == $portVersion base
"
REPLACES_galleries="
libreoffice_x86_galleries
"
for lang in $libreofficeLanguages; do
typeset -l langcode
langcode=${lang/-/_}
eval "PROVIDES_${langcode}=\"\
libreoffice_${langcode} = $portVersion\
\"; \
REQUIRES_${langcode}=\"\
app:LibreOffice == $portVersion base\
\"; \
DESCRIPTION_${langcode}=\"Translations for the Libreoffice suite ($lang)\"; \
ARCHITECTURES_${langcode}=\"any\"; \
REPLACES_${langcode}=\"\
libreoffice_x86_${langcode}\
\""
done
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
glm${secondaryArchSuffix}_devel
unixodbc${secondaryArchSuffix}_devel
qt6_tools${secondaryArchSuffix}_devel
devel:libabw_0.1$secondaryArchSuffix
devel:libargon2$secondaryArchSuffix
devel:libboost_date_time$secondaryArchSuffix >= $boostMinimumVersion
devel:libboost_filesystem$secondaryArchSuffix >= $boostMinimumVersion
devel:libboost_iostreams$secondaryArchSuffix >= $boostMinimumVersion
devel:libboost_locale$secondaryArchSuffix >= $boostMinimumVersion
devel:libBox2D$secondaryArchSuffix
devel:libcairo$secondaryArchSuffix
devel:libcdr_0.1$secondaryArchSuffix
devel:libclucene_contribs_lib$secondaryArchSuffix
devel:libclucene_core$secondaryArchSuffix
devel:libcmis_0.6$secondaryArchSuffix
devel:libcppunit$secondaryArchSuffix
devel:libcurl$secondaryArchSuffix
devel:libe_book_0.1$secondaryArchSuffix
devel:libepoxy$secondaryArchSuffix
devel:libepubgen_0.1$secondaryArchSuffix
devel:libetonyek_0.1$secondaryArchSuffix
devel:libexpat$secondaryArchSuffix
devel:libexttextcat_2.0$secondaryArchSuffix
devel:libfontconfig$secondaryArchSuffix
devel:libfreehand_0.1$secondaryArchSuffix
# devel:libgcrypt$secondaryArchSuffix
devel:libgraphite2$secondaryArchSuffix
devel:libharfbuzz_icu$secondaryArchSuffix
devel:libhunspell_1.7$secondaryArchSuffix
devel:libhyphen$secondaryArchSuffix
devel:libicuuc$secondaryArchSuffix >= 74
devel:libjpeg$secondaryArchSuffix
devel:liblangtag$secondaryArchSuffix
devel:liblcms2$secondaryArchSuffix
devel:libldap$secondaryArchSuffix
devel:liblpsolve55$secondaryArchSuffix
devel:libmspub_0.1$secondaryArchSuffix
devel:libmwaw_0.3$secondaryArchSuffix
devel:libmysqlclient$secondaryArchSuffix
devel:libmythes_1.2$secondaryArchSuffix
devel:libneon$secondaryArchSuffix
devel:libnss3$secondaryArchSuffix
devel:libnumbertext_1.0$secondaryArchSuffix
devel:libodfgen_0.1$secondaryArchSuffix
devel:liborcus_0.18$secondaryArchSuffix
devel:libpagemaker_0.0$secondaryArchSuffix
devel:libpoppler_qt6$secondaryArchSuffix >= 3.7.0
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Multimedia$secondaryArchSuffix
devel:libqrcodegen$secondaryArchSuffix
devel:libqxp_0.0$secondaryArchSuffix
devel:libraptor2$secondaryArchSuffix
devel:librdf$secondaryArchSuffix
devel:libreadline$secondaryArchSuffix >= 8
devel:librevenge_0.0$secondaryArchSuffix
devel:libsane$secondaryArchSuffix
devel:libssl$secondaryArchSuffix >= 3
devel:libstaroffice_0.0$secondaryArchSuffix
devel:libtiff$secondaryArchSuffix
devel:libvisio_0.1$secondaryArchSuffix
devel:libwebp$secondaryArchSuffix
devel:libwpd_0.10$secondaryArchSuffix
devel:libwpg_0.3$secondaryArchSuffix
devel:libwps_0.4$secondaryArchSuffix
devel:libuuid$secondaryArchSuffix >= 1.3.1
devel:libxmlsec1_nss$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libzmf_0.0$secondaryArchSuffix
devel:mdds >= 2.1
"
BUILD_PREREQUIRES="
icu74_tools
cmd:aclocal
cmd:autoconf
cmd:awk >= 3
cmd:bison
cmd:find
cmd:flex
cmd:fontforge
cmd:gcc$secondaryArchSuffix
cmd:git
cmd:gperf
cmd:grep
cmd:ld$secondaryArchSuffix
cmd:libtool$secondaryArchSuffix
cmd:make
cmd:msgfmt
cmd:patch
cmd:perl
cmd:pkg_config$secondaryArchSuffix
cmd:python3.10
cmd:ucpp
cmd:which
cmd:xsltproc
cmd:xz
cmd:zip
"
BUILD()
{
export DISABLE_ASLR=1
export CFLAGS="-fPIC"
export CXXFLAGS=$CFLAGS
export LDFLAGS=$CFLAGS
mkdir -p external/tarballs
cp $sourceDir4/dtoa-20180411.tgz external/tarballs
cp $sourceDir5/libcuckoo-93217f8d391718380c508a722ab9acd5e9081233.tar.gz external/tarballs
cp $sourceDir6/dragonbox-1.1.3.tar.gz external/tarballs
cp $sourceDir7/frozen-1.1.1.tar.gz external/tarballs
cp $sourceDir8/zxcvbn-c-2.5.tar.gz external/tarballs
rm -rf translations
ln -s $sourceDir2 translations
rm -rf dictionaries
cp -R $sourceDir3 dictionaries
pkgconfig_libdir="`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir/pkgconfig"
pkgconfig_datadir="`finddir B_SYSTEM_DIRECTORY`/$relativeDataDir/pkgconfig"
export PKG_CONFIG_LIBDIR="$pkgconfig_libdir:$pkgconfig_datadir"
./autogen.sh \
--enable-build-opensymbol \
--enable-cairo-canvas \
--enable-python=no \
--enable-qt6 \
--enable-release-build \
--enable-readonly-installset \
--enable-sal-log \
\
--disable-ccache \
--disable-dependency-tracking \
--disable-fetch-external \
--disable-firebird-sdbc \
--disable-postgresql-sdbc \
--disable-zxing \
\
--with-boost-libdir=`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir \
--with-distro=LibreOfficeHaiku \
--with-fonts=no \
--with-lang="$libreofficeLanguages" \
--with-system-cairo \
--with-system-libs \
--with-system-nss \
--with-system-openssl \
--with-tls="openssl" \
--with-vendor="HaikuPorts" \
\
--without-doxygen \
--without-helppack-integration \
--without-java \
--without-system-dragonbox \
--without-system-frozen \
--without-system-jars \
--without-system-libfixmath \
--without-system-zxcvbn
make $jobArgs
pushd dictionaries
make
popd
pushd $sourceDir9/src
make
popd
}
INSTALL()
{
appDir=$appsDir/LibreOffice
mkdir -p $appDir
cp -r instdir/* $appDir
rm -rf $appDir/share/extensions/dict-{zu,te,sw,si,pt-PT,oc,no,lo,gug,gu,ckb,bo,an}
mv $appDir/program/soffice.bin $appDir/program/LibreOffice
cp $sourceDir9/src/LibreOffice\ {Calc,Database,Draw,Impress,Math,Writer} $appDir
# make sure we do not copy default profile
rm -rf $appDir/user $appDir/share/xdg
mkdir -p "$dataDir/deskbar/menu/Applications/LibreOffice"
packageEntries galleries \
$appDir/share/gallery $appDir/presets/gallery
declare -a files
declare -a filesToPackage
typeset -l langcode
for lang in $libreofficeLanguages; do
unset files
unset filesToPackage
langcode=${lang/-/_}
files=("${files[@]}" "$appDir/program/resource/${lang/-/_}")
files=("${files[@]}" "$appDir/share/autotext/$lang")
files=("${files[@]}" "$appDir/share/autocorr/$lang")
files=("${files[@]}" "$appDir/share/extensions/dict-$lang")
files=("${files[@]}" "$appDir/share/registry/res/registry_$lang.xcd")
files=("${files[@]}" "$appDir/share/registry/res/fcfg_langpack_$lang.xcd")
files=("${files[@]}" "$appDir/share/registry/Langpack_$lang.xcd")
files=("${files[@]}" "$appDir/readmes/README_$lang")
for f in ${files[@]}; do
if [ -f $f ] || [ -d $f ]; then
filesToPackage=("${filesToPackage[@]}" "$f")
fi
done
packageEntries ${langcode} ${filesToPackage[@]}
done
mkdir -p $postInstallDir
cp $portDir/additional-files/create_buildid.sh $postInstallDir
local APP_SIGNATURE="application/x-vnd.LibreOffice"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/libreoffice.rdef.in > libreoffice.rdef
addResourcesToBinaries libreoffice.rdef $appDir/program/LibreOffice
mimeset -f $appDir/program/LibreOffice
addAppDeskbarSymlink $appDir/program/LibreOffice "LibreOffice/LibreOffice"
addAppDeskbarSymlink "$appDir/LibreOffice Calc" "LibreOffice/LibreOffice Calc"
addAppDeskbarSymlink "$appDir/LibreOffice Database" "LibreOffice/LibreOffice Database"
addAppDeskbarSymlink "$appDir/LibreOffice Draw" "LibreOffice/LibreOffice Draw"
addAppDeskbarSymlink "$appDir/LibreOffice Impress" "LibreOffice/LibreOffice Impress"
addAppDeskbarSymlink "$appDir/LibreOffice Math" "LibreOffice/LibreOffice Math"
addAppDeskbarSymlink "$appDir/LibreOffice Writer" "LibreOffice/LibreOffice Writer"
}