commit: a6b8653d459ad23223a8c38b4fcf9e35880b3a81 Author: Huang Rui <vowstar <AT> gmail <DOT> com> AuthorDate: Mon Apr 3 12:46:37 2023 +0000 Commit: Florian Schmaus <flow <AT> gentoo <DOT> org> CommitDate: Mon Apr 3 12:46:37 2023 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=a6b8653d
media-gfx/zw3d: add 2023.0.3.1 Signed-off-by: Huang Rui <vowstar <AT> gmail.com> media-gfx/zw3d/Manifest | 1 + media-gfx/zw3d/zw3d-2023.0.3.1.ebuild | 163 ++++++++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+) diff --git a/media-gfx/zw3d/Manifest b/media-gfx/zw3d/Manifest index 996f78c91..0a0ae2334 100644 --- a/media-gfx/zw3d/Manifest +++ b/media-gfx/zw3d/Manifest @@ -1 +1,2 @@ DIST zw3d-2022.0.3.1.deb 830137436 BLAKE2B d2f5976ec8e00ab31f2e34b690b5f8e2c637500ea7a599d2409ebe07db2c36bb1bb0c98b17b3515672dbfe26d9ddf05e36f0f91a5c0a535a7b87ffaaf389fa6b SHA512 fba4aa4b3752895bbc644b77624a1548dbea0449c13f31ded12cb213feec26ba28b205c13b77fa99fce7cf93d082583865d67d12775b94e9e46585b71214f5f0 +DIST zw3d-2023.0.3.1.deb 502969732 BLAKE2B f20034be406e132ffbc17020f10ec53eadc9c816c80b19f63ab42a714b1acb4848f087ce4fde2d05472e61e5c9a8f79794bbd5018f283f987d85869f7afa19e7 SHA512 3719b758706546f255aedd5e407e054fb765c90d8f9b99cac200f0e482203de1384c12684178c257d3771085c22b185a8c4af10295f178d9518cac8b8a4adb27 diff --git a/media-gfx/zw3d/zw3d-2023.0.3.1.ebuild b/media-gfx/zw3d/zw3d-2023.0.3.1.ebuild new file mode 100644 index 000000000..ff1cdd0c6 --- /dev/null +++ b/media-gfx/zw3d/zw3d-2023.0.3.1.ebuild @@ -0,0 +1,163 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PGK_NAME="com.zwsoft.zw3dprofessional" +inherit unpacker xdg + +DESCRIPTION="CAD/CAM software for 3D design and processing" +HOMEPAGE="https://www.zwsoft.cn/product/zw3d/linux" +SRC_URI="https://home-store-packages.uniontech.com/appstore/pool/appstore/c/${MY_PGK_NAME}/${MY_PGK_NAME}_${PV}_amd64.deb -> ${P}.deb" + +LICENSE="all-rights-reserved" +SLOT="0" +KEYWORDS="-* ~amd64" + +RESTRICT="strip mirror bindist" + +RDEPEND=" + app-arch/bzip2 + app-arch/xz-utils + app-text/djvu + dev-db/sqlite:3 + dev-libs/glib:2 + dev-libs/libpcre + dev-libs/libxml2 + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtprintsupport:5 + dev-qt/qtsvg:5 + media-fonts/noto-cjk + media-gfx/imagemagick + media-libs/jbigkit + media-libs/libglvnd + media-libs/libpng + media-libs/opencollada + media-libs/tiff + media-libs/tiff-compat:4 + net-libs/zeromq + sys-libs/zlib + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/libX11 + x11-libs/libxcb + x11-libs/libXcomposite + x11-libs/libXext + x11-libs/libxkbcommon + x11-libs/libXmu + x11-libs/libXrender + x11-libs/libXt + x11-libs/pango +" + +DEPEND="${RDEPEND}" + +BDEPEND=" + dev-util/bbe + dev-util/patchelf +" + +S=${WORKDIR} + +QA_PREBUILT="*" + +src_compile() { + default + # Fix zw3d coredump when run +cat >> "${T}"/zw3d.c <<- EOF || die +#include <stdint.h> +extern int DiModuleEntryPoint(uint64_t argc, uint64_t argv, uint64_t envp); +int main(int argc, char* argv[], char* envp[]) +{ +return DiModuleEntryPoint((uint64_t)(uintptr_t)&argc, (uint64_t)(uintptr_t)argv, (uint64_t)(uintptr_t)envp); +} + EOF + +TAB=$'\t' +cat >> "${T}"/Makefile <<- EOF || die +.PHONY: all +all: +${TAB}\$(CC) \$(LDFLAGS) \ +-o "\$(S)/opt/apps/\$(MY_PGK_NAME)/files/zw3d" \ +zw3d.c \ +-L"\$(S)/opt/apps/\$(MY_PGK_NAME)/files/lib" \ +-lDrawingInstance \ +-lstdc++ \ +-lm \ +-lgcc_s \ +-Wl,--unresolved-symbols=ignore-all + EOF + + emake S="${S}" MY_PGK_NAME="${MY_PGK_NAME}" -C "${T}" || die +} + +src_install() { + # Install scalable icons, desktop files, mimes + mkdir -p "${S}"/usr/share || die + mv "${S}"/opt/apps/${MY_PGK_NAME}/entries/* "${S}"/usr/share || die + + # Set RPATH for preserve-libs handling + pushd "${S}"/opt/apps/${MY_PGK_NAME}/files || die + local x + for x in $(find) ; do + # Use \x7fELF header to separate ELF executables and libraries + [[ -f ${x} && $(od -t x1 -N 4 "${x}") == *"7f 45 4c 46"* ]] || continue + local RPATH_ROOT="/opt/apps/${MY_PGK_NAME}/files" + local RPATH_S="${RPATH_ROOT}/:${RPATH_ROOT}/lib/:${RPATH_ROOT}/lib/xlator/:${RPATH_ROOT}/lib/xlator/InterOp/:${RPATH_ROOT}/libqt/:${RPATH_ROOT}/libqt/plugins/designer/:${RPATH_ROOT}/lib3rd/:/usr/lib64/" + patchelf --set-rpath "${RPATH_S}" "${x}" || \ + die "patchelf failed on ${x}" + # patchelf --replace-needed libMagickCore-6.Q16.so.7 libMagickCore-7.Q16.so "${x}" || \ + # die "patchelf failed on ${x}" + patchelf --replace-needed libjbig.so.0 libjbig.so "${x}" || \ + die "patchelf failed on ${x}" + done + popd || die + + # Fix desktop files + sed -E -i 's/^Exec=.*$/Exec=zw3d %F/g' "${S}/usr/share/applications/${MY_PGK_NAME}.desktop" || die + sed -E -i 's/^Icon=.*$/Icon=ZW3Dprofessional/g' "${S}/usr/share/applications/${MY_PGK_NAME}.desktop" || die + sed -E -i 's/Application;//g' "${S}/usr/share/applications/${MY_PGK_NAME}.desktop" || die + + # Add zw3d command + mkdir -p "${S}"/usr/bin/ || die + + cat >> "${S}"/opt/apps/${MY_PGK_NAME}/zw3d <<- EOF || die +#!/bin/sh +sh /opt/apps/${MY_PGK_NAME}/files/zw3drun.sh \$* + EOF + + ln -s /opt/apps/${MY_PGK_NAME}/zw3d "${S}"/usr/bin/zw3d || die + + # Use system libraries + # rm -rf "${S}"/opt/apps/${MY_PGK_NAME}/files/lib3rd/libMagickCore* || die + # rm -rf "${S}"/opt/apps/${MY_PGK_NAME}/files/lib3rd/libjpeg* || die + + # Fix coredump while draw 2D sketch due to not find fonts + # media-fonts/noto-cjk is required + # and should use /usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc + local MY_FONT_PATH_OLD="/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc" + local MY_FONT_PATH_NEW="//////usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc" + bbe -e "s|${MY_FONT_PATH_OLD}|${MY_FONT_PATH_NEW}|" "${S}/opt/apps/${MY_PGK_NAME}/files/lib/libdisp.so" \ + > "${S}/opt/apps/${MY_PGK_NAME}/files/lib/libdisp.so.tmp" && \ + mv "${S}/opt/apps/${MY_PGK_NAME}/files/lib/libdisp.so.tmp" "${S}/opt/apps/${MY_PGK_NAME}/files/lib/libdisp.so" || die + + # Install package and fix permissions + insinto /opt/apps + doins -r opt/apps/${MY_PGK_NAME} + insinto /usr + doins -r usr/* + + fperms 0755 /opt/apps/${MY_PGK_NAME}/zw3d + + pushd "${S}" || die + for x in $(find "opt/apps/${MY_PGK_NAME}") ; do + # Fix shell script permissions + [[ "${x: -3}" == ".sh" ]] && fperms 0755 "/${x}" + # Use \x7fELF header to separate ELF executables and libraries + [[ -f ${x} && $(od -t x1 -N 4 "${x}") == *"7f 45 4c 46"* ]] && fperms 0755 "/${x}" + done + popd || die +}