We have moved to Git. This repository is only provided for compatibility with old installations. Learn how to migrate your installation here.

changeset 244:ba7702338756

[sync] imported 6937046..ae65881 from upstream commit ae6588187ec0f9add7a17b5a7b9ae6d2cb5786d0 Author: Daniel Neugebauer <dneuge@energiequant.de> Date: Tue Dec 27 13:39:50 2022 +0100 app-office/softmaker-office: bump to 2021-1060
author Migration Sync <gentoo-overlay@megacoffee.net>
date Tue, 27 Dec 2022 12:45:02 +0000
parents 4e2200ed1559
children e95a7ddfb090
files app-office/softmaker-office/Manifest app-office/softmaker-office/softmaker-office-2021.1060.ebuild
diffstat 2 files changed, 249 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/app-office/softmaker-office/Manifest	Fri Mar 04 18:45:02 2022 +0000
+++ b/app-office/softmaker-office/Manifest	Tue Dec 27 12:45:02 2022 +0000
@@ -1,2 +1,4 @@
 DIST softmaker-office-2021-1034-amd64.tgz 327733989 BLAKE2B 5ca71dae69e1691391f2be6c1b940577e9dcd4ac71047e821b6b87bb576e94b5aee61c9f4ca19f2628aeb0a77bc7a7ce4d91639710b10e7f635dec095c2e6160 SHA512 0fa37279283799337999d6da249dc861b5d6cc8b3c2d82b177735237d3d30342bf890bb79b9c99a9357cee66fa03096b74a7fa4f511e9f92a2d62a2a548058fe
+DIST softmaker-office-2021-1060-amd64.tgz 334243460 BLAKE2B a479662eb8ae86a3ec64fd7286ff0f03ca7909e7954c93eb91ca128f8be0c35aef378d904fd41e4ea46e6bc80a6356860de963058fb7795ad9378c8edafafdfb SHA512 36d6cf49c3dce821f50ebef60e6ae48cd97ad9507cb7af7bc1500977c03d24f197b7b7036e92b9b5c3bc387d1d3fac2cc156022e4294c71ad998e8e8e3649c9d
 EBUILD softmaker-office-2021.1034.ebuild 10700 BLAKE2B fb8a66bd0b14b1ebd6b2c3bd6d8e1fb621e3db3e29a119f7997dc1dfed287bca5f6b2c2151b99ff549ca9da807c60c2898542c17ae69b1e008814011db0ea4b6 SHA512 d240bbd4b439714e02edb0ac6e518ab60dd9b190272869523628e6367b4956b418c969c0b91238f25f3231ec52abcf4a7384fcbd4884074644652deec1bd0819
+EBUILD softmaker-office-2021.1060.ebuild 10700 BLAKE2B f2b1acd3a20261f349b5d880f245a5ff886e84ca253cb38d2516737e005c08d745e3b6ad423c7f5f050458fd1ff7edb261cd35b388731bdfa17344d013a11094 SHA512 725ba9c8b12078ce7efdf3beac62d3298626fcd827b8fa2650d01b464b98fb5224f9f3f10e4606ba047720a46f785a29ee94881311d743d3f195c3bc16e5e303
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app-office/softmaker-office/softmaker-office-2021.1060.ebuild	Tue Dec 27 12:45:02 2022 +0000
@@ -0,0 +1,247 @@
+# Copyright 1999-2021 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop xdg-utils
+
+DESCRIPTION="SoftMaker Office - an office suite featuring a word processor (TextMaker), spreadsheets (PlanMaker) and slides software (Presentations)"
+HOMEPAGE="https://www.softmaker.com/en/softmaker-office"
+
+SRC_URI="https://www.softmaker.net/down/softmaker-office-${PV//\./-}-amd64.tgz"
+
+LICENSE="SoftMakerOffice"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# .deb dependencies as of 27 Dev 2022, version 2021-1060:
+#
+#   DEBIAN                               GENTOO
+#
+#   libcurl4 | libcurl3 (>= 7.16.2)   => net-misc/curl
+#   libc6 (>= 2.17)                   => sys-libs/glibc
+#   libgcc1 (>= 1:4.2)                => sys-devel/gcc
+#   libgl1-mesa-glx | libgl1          => virtual/opengl
+#   libstdc++6 (>= 5.2)               => sys-devel/gcc
+#   libx11-6                          => x11-libs/libX11
+#   libxext6                          => x11-libs/libXext
+#   libxmu6                           => x11-libs/libXmu
+#   libxrandr2 (>= 2:1.2.99.3)        => x11-libs/libXrandr
+#   libxrender1                       => x11-libs/libXrender
+
+DEPEND="
+	app-arch/tar
+	app-arch/xz-utils
+"
+RDEPEND="${DEPEND}
+	net-misc/curl
+	sys-libs/glibc
+	sys-devel/gcc
+	virtual/opengl
+	x11-libs/libX11
+	x11-libs/libXext
+	x11-libs/libXmu
+	x11-libs/libXrandr
+	x11-libs/libXrender
+"
+
+S="${WORKDIR}"
+
+INNER_ARCHIVE="office2021.tar.lzma"
+EXTRACTED_INNER_ARCHIVE="${WORKDIR}/extracted"
+
+FINAL_INSTALL_DIR="/opt/softmaker-office"
+INSTALL_DIR="${D}${FINAL_INSTALL_DIR}"
+
+# disable QA check for pre-stripped binaries
+QA_PRESTRIPPED="
+	${FINAL_INSTALL_DIR}/dpf3/libgamorphDpf.so
+	${FINAL_INSTALL_DIR}/dpf3/libsprt4-5-1.so
+	${FINAL_INSTALL_DIR}/dpf3/libdpf.so.3
+	${FINAL_INSTALL_DIR}/dpf3/libsx.so
+	${FINAL_INSTALL_DIR}/dpf3/libsprt4-5-1-instance-03.so
+	${FINAL_INSTALL_DIR}/dpf3/libCTokenizer.so
+	${FINAL_INSTALL_DIR}/dpf3/libSGAnalyseSP.so
+	${FINAL_INSTALL_DIR}/dpf3/libsprt4-5-1-instance-01.so
+	${FINAL_INSTALL_DIR}/dpf3/libDpfDict.so
+	${FINAL_INSTALL_DIR}/dpf3/libsprt4-5-1-instance-02.so
+	${FINAL_INSTALL_DIR}/dpf3/libCSegmentation.so
+	${FINAL_INSTALL_DIR}/textmaker
+	${FINAL_INSTALL_DIR}/presentations
+	${FINAL_INSTALL_DIR}/planmaker
+"
+
+# disable QA checks for upstream .desktop files
+QA_DESKTOP_FILE="
+	usr/share/applications/planmaker-2021.desktop
+	usr/share/applications/presentations-2021.desktop
+	usr/share/applications/textmaker-2021.desktop
+"
+
+src_unpack() {
+	unpack ${A} || "Failed to unpack outer archive"
+	
+	mkdir ${EXTRACTED_INNER_ARCHIVE}
+	cd ${EXTRACTED_INNER_ARCHIVE} || die "Failed to switch to extraction directory"
+	
+	tar xJf ${WORKDIR}/${INNER_ARCHIVE} || die "Failed to extract ${INNER_ARCHIVE}"
+}
+
+src_prepare() {
+	## extract all lines defining functions from original install script so we can import it
+	# first make sure we actually have the expected revision
+	expected_hash="d9a7f0e21b15d226f203c3e74e42bdb3"
+	actual_hash=$(md5sum "${WORKDIR}/installsmoffice" | cut -c'-32')
+	[[ "${actual_hash}" == "${expected_hash}" ]] || die "Unexpected file hash on install script, unable to extract functions. Expected MD5 ${expected_hash}, got: ${actual_hash}"
+	
+	# extract
+	tail -n 1566 ${WORKDIR}/installsmoffice | head -n 1328 >${WORKDIR}/smoffice-install-functions.sh
+	
+	# mandatory since EAPI 6
+	eapply_user
+}
+
+src_compile() {
+	. ${WORKDIR}/smoffice-install-functions.sh
+	
+	# set variables needed by original install script
+	APPBINPATH="${WORKDIR}" # install script function will write there during installation
+	SRCPATH="${EXTRACTED_INNER_ARCHIVE}" # install script function will read from there during installation
+	APPPATH="${FINAL_INSTALL_DIR}" # generated script will run files from there after installation
+
+	## create_script
+	UNINSTALLSCRIPT="${APPBINPATH}/uninstall_smoffice2021" # irrelevant but function will generate that file nevertheless
+	REMOVEICONSSCRIPT="${APPBINPATH}/remove_icons.sh" # also irrelevant but needed
+	
+	# somehow the base file for the (irrelevant) uninstall script does not exist after unpacking, replace by dummy
+	echo '#dummy' >$SRCPATH/mime/uninst1
+	
+	# run original create_script function
+	# arg 1 = version
+	# arg 2 = fixed to "1" by original install script
+	# arg 3 = empty to indicate global installation
+	(set -e; create_script 2021 "1" "") || die "Failed to run original create_script"
+
+	## create_desktop1 to create .desktop files
+	# run original create_desktop functions
+	# arg 1 = version
+	# arg 2 = "0" assumes /usr/bin for installation, "1" uses APPBINPATH which would be wrong for this ebuild
+	(set -e; create_desktop1 2021 "0") || die "Failed to run original create_desktop1"
+	
+	## do not run create_desktop2 as it would install the files (this will be done separately by this ebuild)
+}
+
+src_install() {
+	# all pre-built binaries should go into /opt and be symlinked to usr/bin etc.
+	
+	# copy everything from inner archive to /opt install dir
+	insinto ${FINAL_INSTALL_DIR}
+	doins -r ${EXTRACTED_INNER_ARCHIVE}/*
+
+	# redo the executables (otherwise they miss permission)
+	exeinto ${FINAL_INSTALL_DIR}
+	doexe ${EXTRACTED_INNER_ARCHIVE}/planmaker
+	doexe ${EXTRACTED_INNER_ARCHIVE}/presentations
+	doexe ${EXTRACTED_INNER_ARCHIVE}/textmaker
+
+	# install the original wrapper scripts to /usr/bin
+	dobin ${WORKDIR}/planmaker21
+	dobin ${WORKDIR}/presentations21
+	dobin ${WORKDIR}/textmaker21
+
+	# symlink .desktop entries
+	for app in planmaker presentations textmaker; do
+		dosym ${FINAL_INSTALL_DIR}/mime/${app}-2021.desktop /usr/share/applications/${app}-2021.desktop
+	done
+	
+	# MIME definition
+	# TODO: split to separate files?
+	# TODO: separate SoftMaker Office's own from generic definitions? (generic = MS Office etc.)
+	insinto /usr/share/mime/application/
+	doins /opt/softmaker-office/mime/softmaker-office-2021.xml
+	
+	## icons (see original copy_icons function)
+	# TODO: don't install what we don't need when separated
+	# 1024 is not supported by desktop eclass yet
+
+	# app icons
+	for app in prl tml pml; do
+		for size in 16 24 32 48 64 128 256 512; do
+			newicon -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/${app}_${size}.png" "application-x-${app}21.png"
+		done
+	done
+	
+	# MIME icons
+	for size in 16 24 32 48 64 128 256 512; do
+		## text documents
+		# SoftOffice => tmd icon
+		for mime in application-x-tmd application-x-tmv; do
+			newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/tmd_${size}.png" ${mime}.png
+		done
+		
+		# MS Office => tmd_mso icon
+		for mime in application-rtf text-rtf application-msword application-msword-template application-vnd.ms-word application-x-doc application-x-pocket-word application-vnd.openxmlformats-officedocument.wordprocessingml.document application-vnd.openxmlformats-officedocument.wordprocessingml.template application-vnd.ms-word.document.macroenabled.12 application-vnd.ms-word.template.macroenabled.12; do
+			newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/tmd_mso_${size}.png" ${mime}.png
+		done
+		
+		# OpenDocument => tmd_oth icon
+		for mime in application-x-pocket-word application-vnd.oasis.opendocument.text text-rtf application-vnd.sun.xml.writer application-vnd.sun.xml.writer.template application-vnd.wordperfect application-vnd.oasis.opendocument.text-template application-vnd.oasis.opendocument.text application-vnd.sun.xml.writer application-vnd.sun.xml.writer.template application-x-dbf; do
+			newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/tmd_oth_${size}.png" ${mime}.png
+		done
+		
+		## spreadsheet documents
+		# SoftOffice? => pmd icon
+		for mime in application-x-pmd application-x-pmv application-x-pmdx application-x-pagemaker; do
+			newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/pmd_${size}.png" ${mime}.png
+		done
+		
+		# MS Office => pmd_mso icon
+		for mime in application-x-sylk application-excel application-x-excel application-x-ms-excel application-x-msexcel application-x-xls application-xls application-vnd.ms-excel application-vnd.openxmlformats-officedocument.spreadsheetml.sheet application-vnd.openxmlformats-officedocument.spreadsheetml.template application-vnd.ms-excel.sheet.macroenabled.12 application-vnd.ms-excel.template.macroenabled.12 text-spreadsheet; do
+			newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/pmd_mso_${size}.png" ${mime}.png
+		done
+		
+		# OpenDocument and generic? => pmd_oth icon
+		for mime in text-csv application-x-dif application-x-prn application-vnd.stardivision.calc; do
+			newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/pmd_oth_${size}.png" ${mime}.png
+		done
+		
+		## presentations
+		# SoftOffice => prd icon
+		for mime in application-x-prd application-x-prs application-x-prv; do
+			newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/prd_${size}.png" ${mime}.png
+		done
+		
+		# MS Office => prd_mso icon
+		for mime in application-ppt application-mspowerpoint application-vnd.ms-powerpoint application-vnd.ms-powerpoint.presentation.macroenabled.12 application-vnd.ms-powerpoint.slideshow.macroEnabled.12 application-vnd.openxmlformats-officedocument.presentationml.presentation application-vnd.openxmlformats-officedocument.presentationml.template application-vnd.openxmlformats-officedocument.presentationml.slideshow; do
+			newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/prd_mso_${size}.png" ${mime}.png
+		done
+		
+		## trailing in original function
+		newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/tmd_${size}.png" application-x-tmd.png
+		newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/tmd_mso_${size}.png" application-x-tmd-mso.png
+		newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/tmd_oth_${size}.png" application-x-tmd-oth.png
+		
+		newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/pmd_${size}.png" application-x-pmd.png
+		newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/pmd_mso_${size}.png" application-x-pmd-mso.png
+		newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/pmd_oth_${size}.png" application-x-pmd-oth.png
+		
+		newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/prd_${size}.png" application-x-prd.png
+		newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/prd_mso_${size}.png" application-x-prd-mso.png
+		newicon -c mimetypes -s ${size} "${EXTRACTED_INNER_ARCHIVE}/icons/prd_oth_${size}.png" application-x-prd-oth.png
+	done
+	
+	# TODO: what about the provided fonts, theres no global registration in the original install script?
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	xdg_mimeinfo_database_update
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+	xdg_mimeinfo_database_update
+}
+