# HG changeset patch # User Migration Sync # Date 1685916002 0 # Node ID f8f6e50d5c79f77734961b5bd58de30f98b66109 # Parent c328bdc3e0470d6e15b7097c514c65e76de0867d [sync] imported e4e9400..5fd794d from upstream commit 5fd794d1280cc60ce24c73cb6ca552274d628f8a Author: Daniel Neugebauer Date: Sun Jun 4 23:49:41 2023 +0200 app-office/softmaker-office: version bump 2021.1064 commit a9f78aa008575f6d894a735d0992b1d897751509 Author: Daniel Neugebauer Date: Sun Jun 4 23:47:16 2023 +0200 app-office/softmaker-office: fixed typo commit 31d0d432a5cc3c0a5e62cb5274d163f81f96d5c5 Author: Daniel Neugebauer Date: Sun Jun 4 23:29:34 2023 +0200 app-office/softmaker-office: fix MIME installation diff -r c328bdc3e047 -r f8f6e50d5c79 app-office/softmaker-office/Manifest --- a/app-office/softmaker-office/Manifest Tue May 23 17:45:02 2023 +0000 +++ b/app-office/softmaker-office/Manifest Sun Jun 04 22:00:02 2023 +0000 @@ -1,6 +1,8 @@ DIST softmaker-office-2021-1034-amd64.tgz 327733989 BLAKE2B 5ca71dae69e1691391f2be6c1b940577e9dcd4ac71047e821b6b87bb576e94b5aee61c9f4ca19f2628aeb0a77bc7a7ce4d91639710b10e7f635dec095c2e6160 SHA512 0fa37279283799337999d6da249dc861b5d6cc8b3c2d82b177735237d3d30342bf890bb79b9c99a9357cee66fa03096b74a7fa4f511e9f92a2d62a2a548058fe DIST softmaker-office-2021-1060-amd64.tgz 334243460 BLAKE2B a479662eb8ae86a3ec64fd7286ff0f03ca7909e7954c93eb91ca128f8be0c35aef378d904fd41e4ea46e6bc80a6356860de963058fb7795ad9378c8edafafdfb SHA512 36d6cf49c3dce821f50ebef60e6ae48cd97ad9507cb7af7bc1500977c03d24f197b7b7036e92b9b5c3bc387d1d3fac2cc156022e4294c71ad998e8e8e3649c9d DIST softmaker-office-2021-1062-amd64.tgz 333885529 BLAKE2B 0fb1c35bca771635c7fb966871901479129fcd545095343fc781f2914c02f4656ac550ed5178f5b622013a26557d58a583f1d635ce92c35fd26abfdf254f5f32 SHA512 bd26ba8e580faabd11ceffc4dee64da6404bc41874fa1c0aecbc20094da811670fd07451a7eb1f4760fad38f17e4f8761313f77dd6ebdf936256546df7bd98bf -EBUILD softmaker-office-2021.1034.ebuild 10700 BLAKE2B fb8a66bd0b14b1ebd6b2c3bd6d8e1fb621e3db3e29a119f7997dc1dfed287bca5f6b2c2151b99ff549ca9da807c60c2898542c17ae69b1e008814011db0ea4b6 SHA512 d240bbd4b439714e02edb0ac6e518ab60dd9b190272869523628e6367b4956b418c969c0b91238f25f3231ec52abcf4a7384fcbd4884074644652deec1bd0819 -EBUILD softmaker-office-2021.1060.ebuild 10700 BLAKE2B f2b1acd3a20261f349b5d880f245a5ff886e84ca253cb38d2516737e005c08d745e3b6ad423c7f5f050458fd1ff7edb261cd35b388731bdfa17344d013a11094 SHA512 725ba9c8b12078ce7efdf3beac62d3298626fcd827b8fa2650d01b464b98fb5224f9f3f10e4606ba047720a46f785a29ee94881311d743d3f195c3bc16e5e303 -EBUILD softmaker-office-2021.1062.ebuild 10700 BLAKE2B 494e10155a6bddfac4419ad819859a5c3fa02a4b316317666d52c2b46a3f23ee60693fe64060d3f61d57fcd4f80dde3e527513bcc697e460615e02d8c224f123 SHA512 261a26638ddfa8055fd983e59d62b41360d4273e37a344b5c339e1cee0563e4a9e0b7af1bb83cad8bcea7991ceca9e225fd63c6e815bca59696072eddb4204df +DIST softmaker-office-2021-1064-amd64.tgz 322931084 BLAKE2B 7b38726c3ba6cce00a6c16c9161dfe262a13b6005696cc7df823b9b894e75ffeeee44caad8c6ce2509083d7edef8f5e9c61b8418361a3ea72414af697b551ed3 SHA512 64f6f0148c000c57dcd5753e3d2f0e7d97645e6a53073e25464876101cde7124fe5197f27bf9e27d33b8558d61397c34775cc2b9d173ea081f7fc1212ca7a42f +EBUILD softmaker-office-2021.1034-r1.ebuild 10705 BLAKE2B 17c0ce69b981fd27bb5c80b86b655cd1f1fb74727582c0830c45717a0ca64ba0324df957f3813bdb169605655ea18ad348b8950b0bd6468533044e4bcb6f7032 SHA512 2edf232ac36f91e5ecefb313631f190334bbe2df19a5caaa704d8788b9e97ca3a9e041ac9bdc0acd6fe22f0170420a54aa2d9b404c75f176485225cbf76f80ce +EBUILD softmaker-office-2021.1060-r1.ebuild 10705 BLAKE2B af4aea5e79d2566ca7fbf76e3a57632cc9c894bdf8bf1fe8fb893f83542c0a480facf1c9fe1730c0e4528eb9b2bf34bb1b667129ca81ea9f918d27dddd1cdc1f SHA512 a6153275a10a5214dace286f9d6b7e9f1a9c2904309e417d2bc6d8bc947fae018d95934fd60ddcfca4491c370c3302fed078744eaf08cc74d188efdf4eb99054 +EBUILD softmaker-office-2021.1062-r1.ebuild 10705 BLAKE2B 1fedd031e464adb36ed03c5f142ee490fc6feffc92e2cf6cb49d87d2f5a1d587da0c2a15591ab55117da6dc4ebfa0223058e247192bb3bc67d05d25a38256fdc SHA512 51604b5b5efa223821164933eeb2c35b66edb7ebf22a26d561a0afb6f6c584e7141986d76b96981a34a4c0cad35335c5bf5197963aa9cb9dba9474d5de3f8544 +EBUILD softmaker-office-2021.1064.ebuild 10704 BLAKE2B 343492c9cb97e98bdf768337b3e494246db1d1415453d5b1fd3d37a4ac6dfae93cb66daaba723f090ed4bc72b211adcf6c49e819f7c58a412a0f323efd407b33 SHA512 368d5f4eb99c21efe65f265692526a9e19fc8f209ea467cce6abae18e999b33cf7d864fd62d88d4ee9dbb4f45d8282cb80c2d30afa682623218cf411c6022d8a diff -r c328bdc3e047 -r f8f6e50d5c79 app-office/softmaker-office/softmaker-office-2021.1034-r1.ebuild --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app-office/softmaker-office/softmaker-office-2021.1034-r1.ebuild Sun Jun 04 22:00:02 2023 +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" + +# .dep dependencies as of 20 Oct 2021, version 2021-1034: +# +# 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 ${EXTRACTED_INNER_ARCHIVE}/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 +} + diff -r c328bdc3e047 -r f8f6e50d5c79 app-office/softmaker-office/softmaker-office-2021.1034.ebuild --- a/app-office/softmaker-office/softmaker-office-2021.1034.ebuild Tue May 23 17:45:02 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,247 +0,0 @@ -# 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" - -# .dep dependencies as of 20 Oct 2021, version 2021-1034: -# -# 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 -} - diff -r c328bdc3e047 -r f8f6e50d5c79 app-office/softmaker-office/softmaker-office-2021.1060-r1.ebuild --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app-office/softmaker-office/softmaker-office-2021.1060-r1.ebuild Sun Jun 04 22:00:02 2023 +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 ${EXTRACTED_INNER_ARCHIVE}/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 +} + diff -r c328bdc3e047 -r f8f6e50d5c79 app-office/softmaker-office/softmaker-office-2021.1060.ebuild --- a/app-office/softmaker-office/softmaker-office-2021.1060.ebuild Tue May 23 17:45:02 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,247 +0,0 @@ -# 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 -} - diff -r c328bdc3e047 -r f8f6e50d5c79 app-office/softmaker-office/softmaker-office-2021.1062-r1.ebuild --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app-office/softmaker-office/softmaker-office-2021.1062-r1.ebuild Sun Jun 04 22:00:02 2023 +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 Dec 2022, version 2021-1062: +# +# 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 ${EXTRACTED_INNER_ARCHIVE}/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 +} + diff -r c328bdc3e047 -r f8f6e50d5c79 app-office/softmaker-office/softmaker-office-2021.1062.ebuild --- a/app-office/softmaker-office/softmaker-office-2021.1062.ebuild Tue May 23 17:45:02 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,247 +0,0 @@ -# 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-1062: -# -# 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 -} - diff -r c328bdc3e047 -r f8f6e50d5c79 app-office/softmaker-office/softmaker-office-2021.1064.ebuild --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app-office/softmaker-office/softmaker-office-2021.1064.ebuild Sun Jun 04 22:00:02 2023 +0000 @@ -0,0 +1,247 @@ +# Copyright 1999-2023 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 4 Jun 2023, version 2021-1064: +# +# 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 ${EXTRACTED_INNER_ARCHIVE}/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 +} +