git: c1e57b671c5d - main - finance/quba-viewer: New port
Date: Sat, 05 Oct 2024 10:23:56 UTC
The branch main has been updated by bofh: URL: https://cgit.FreeBSD.org/ports/commit/?id=c1e57b671c5d7f3765828d4e78ccc7c5f1cc6e25 commit c1e57b671c5d7f3765828d4e78ccc7c5f1cc6e25 Author: Muhammad Moinur Rahman <bofh@FreeBSD.org> AuthorDate: 2024-10-05 07:56:17 +0000 Commit: Muhammad Moinur Rahman <bofh@FreeBSD.org> CommitDate: 2024-10-05 10:23:42 +0000 finance/quba-viewer: New port Cross platform application to display hybrid electronic invoices Quba-Viewer is a cross platform open source application to display structured (i.e., XML) and hybrid (Factur-X/ZUGFeRD PDF) electronic invoices. WWW: https://www.quba-viewer.org/ Sponsored by: Nepustil --- finance/Makefile | 1 + finance/quba-viewer/Makefile | 95 ++++++++++++ finance/quba-viewer/distinfo | 5 + finance/quba-viewer/files/patch-package.json | 50 +++++++ finance/quba-viewer/files/quba-viewer.desktop | 8 + finance/quba-viewer/pkg-descr | 3 + finance/quba-viewer/pkg-plist | 203 ++++++++++++++++++++++++++ 7 files changed, 365 insertions(+) diff --git a/finance/Makefile b/finance/Makefile index e084a747132d..b6bf71352c0e 100644 --- a/finance/Makefile +++ b/finance/Makefile @@ -145,6 +145,7 @@ SUBDIR += py-ystockquote SUBDIR += qtbitcointrader SUBDIR += quantlib + SUBDIR += quba-viewer SUBDIR += quickfix SUBDIR += rubygem-money SUBDIR += skrooge diff --git a/finance/quba-viewer/Makefile b/finance/quba-viewer/Makefile new file mode 100644 index 000000000000..5da378888923 --- /dev/null +++ b/finance/quba-viewer/Makefile @@ -0,0 +1,95 @@ +PORTNAME= quba-viewer +DISTVERSIONPREFIX= v +DISTVERSION= 1.4.0 +CATEGORIES= finance deskutils +MASTER_SITES= LOCAL/pi/finance/${PORTNAME}/:npm +DISTFILES= ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npm + +MAINTAINER= pi@FreeBSD.org +COMMENT= Cross platform application to display hybrid electronic invoices +WWW= https://www.quba-viewer.org/ + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +ONLY_FOR_ARCHS= amd64 # Will need to be tested on aarch64 + +.if defined(MAINTAINER_MODE) +PATCH_DEPENDS= npm:www/npm-node20 +.endif +BUILD_DEPENDS= \ + app-builder>0:devel/app-builder \ + electron${ELECTRON_VER_MAJOR}:devel/electron${ELECTRON_VER_MAJOR} \ + npm:www/npm-node20 +LIB_DEPENDS= \ + libdrm.so:graphics/libdrm \ + libepoll-shim.so:devel/libepoll-shim \ + libffi.so:devel/libffi \ + libopus.so:audio/opus \ + libpci.so:devel/libpci + +USES= desktop-file-utils gettext-runtime gl nodejs xorg +USE_GITHUB= yes +GH_ACCOUNT= ZUGFeRD +USE_GL= gl +USE_XORG= x11 xcb xext xi + +MAKE_ENV+= ELECTRON_OVERRIDE_DIST_PATH=${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR} \ + HOME=${WRKDIR} \ + USE_SYSTEM_APP_BUILDER=true \ + SOURCE_DATE_EPOCH=${_BUILD_DATE} \ + PATH=${WRKSRC}/node_modules/.bin:${LOCALBASE}/bin:${PATH} + +_BUILD_DATE= $$(date +'%s') + +_ELECTRON_VERSION= 32 +.include <../../devel/electron${_ELECTRON_VERSION}/Makefile.version> + +NODE_ARCH= ${ARCH:S/aarch64/arm64/:S/amd64/x64/} +ELECTRON_DIST=${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR} +APP_OUT_DIR= linux-unpacked + +.include <bsd.port.pre.mk> + +post-patch: + ${REINPLACE_CMD} -e 's|%%ELECTRON_VERSION%%|${ELECTRON_VER}|; s|%%ELECTRON_DIST%%|${ELECTRON_DIST}|' \ + ${WRKSRC}/package.json + +do-build: + ${ECHO_CMD} offline=true >> ${WRKSRC}/.npmrc + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} npm config set cache ${WRKDIR}/node_modules + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} npm install --prefer-offline + ${CP} ${LOCALBASE}/bin/app-builder ${WRKSRC}/node_modules/app-builder-bin/linux/${NODE_ARCH}/app-builder + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} ${PACKAGE_ENV} npm run build + +do-install: + ${MKDIR} ${STAGEDIR}${DATADIR} + cd ${BUILD_WRKSRC}/release/${APP_OUT_DIR} && \ + ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR} + + ${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps + ${INSTALL_DATA} ${WRKSRC}/assets/img/logo_small_icon_only.png \ + ${STAGEDIR}${PREFIX}/share/pixmaps/quba-desktop.png + ${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.desktop \ + ${STAGEDIR}${PREFIX}/share/applications + + ${RLN} ${STAGEDIR}${DATADIR}/quba ${STAGEDIR}${PREFIX}/bin + +.if defined(MAINTAINER_MODE) +_make_npm-cache: extract patch post-patch + @${ECHO_MSG} "===> Creating npm cache tarball" + ${RM} -r ${WRKSRC}/node_modules + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm cache clean --force + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm config set cache ${WRKDIR}/node_modules + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm install + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm install --cache ${WRKDIR}/node_modules --prefer-offline + cd ${WRKDIR} && ${TAR} -czf \ + ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} -C ${WRKDIR} node_modules + scp ${WRKDIR}/${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} \ + pi@freefall.freebsd.org:public_distfiles/finance/${PORTNAME}/ +.endif + +.include <bsd.port.post.mk> diff --git a/finance/quba-viewer/distinfo b/finance/quba-viewer/distinfo new file mode 100644 index 000000000000..75a79ae71f54 --- /dev/null +++ b/finance/quba-viewer/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1728019691 +SHA256 (quba-viewer-npm-cache-1.4.0.tar.gz) = 5713cae1c02db81d66f1a3ca7816f66f842e0e5ce6b81c4fdfe9796449ca791c +SIZE (quba-viewer-npm-cache-1.4.0.tar.gz) = 146464701 +SHA256 (ZUGFeRD-quba-viewer-v1.4.0_GH0.tar.gz) = 3b1854feb2f644b16fdd27a963798d59826123d8bb4143352f1b57d4262959fe +SIZE (ZUGFeRD-quba-viewer-v1.4.0_GH0.tar.gz) = 17988268 diff --git a/finance/quba-viewer/files/patch-package.json b/finance/quba-viewer/files/patch-package.json new file mode 100644 index 000000000000..24ec3013d62a --- /dev/null +++ b/finance/quba-viewer/files/patch-package.json @@ -0,0 +1,50 @@ +--- package.json.orig 2024-01-12 15:03:14 UTC ++++ package.json +@@ -2,15 +2,18 @@ + "name": "Quba", + "version": "1.4.0", + "description": "Viewer", +- "author": "Quba", ++ "author": { ++ "name": "Quba", ++ "email": "pi@FreeBSD.org" ++ }, + "scripts": { + "serve": "vue-cli-service serve", +- "build": "vue-cli-service build && electron-builder build --win --publish never", ++ "build": "vue-cli-service build && electron-builder build --linux --publish never", + "i18n:report": "vue-cli-service i18n:report --src \"./src/**/*.?(js|vue)\" --locales \"./src/locales/**/*.json\"", + "pack": "npm run build && electron-builder build --publish=never", +- "start": "vue-cli-service build && electron .", ++ "start": "vue-cli-service build && %%ELECTRON_DIST%%/electron .", + "dist": "electron-builder", +- "publish": "electron-builder build --win --publish always" ++ "publish": "electron-builder build --linux --publish always" + }, + "main": "app/main.js", + "dependencies": { +@@ -41,17 +44,17 @@ + "@vue/cli-plugin-babel": "5.0.4", + "@vue/cli-service": "5.0.4", + "@vue/compiler-sfc": "3.2.36", +- "electron": "20.0.0", +- "electron-builder": "23.0.3", ++ "electron-builder": "^24.13.3", ++ "electron-forge": "^5.2.4", + "vue-cli-plugin-i18n": "2.3.1" + }, + "build": { + "appId": "org.quba-viewer.viewer", +- "mac": { +- "category": "Document", +- "icon": "./assets/img/logo_small_icon_only.png" +- }, +- "win": { ++ "electronDist": "%%ELECTRON_DIST%%", ++ "electronVersion": "%%ELECTRON_VERSION%%", ++ "linux": { ++ "target": [ "dir" ], ++ "executableName": "quba", + "icon": "./assets/img/logo_small_icon_only.png" + }, + "directories": { diff --git a/finance/quba-viewer/files/quba-viewer.desktop b/finance/quba-viewer/files/quba-viewer.desktop new file mode 100644 index 000000000000..07abecd5dff8 --- /dev/null +++ b/finance/quba-viewer/files/quba-viewer.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Quba Viewer +Comment=Quba - Invoice Viewer +Icon=quba-desktop +Exec=quba -- %u +Terminal=false +Categories=Utility; diff --git a/finance/quba-viewer/pkg-descr b/finance/quba-viewer/pkg-descr new file mode 100644 index 000000000000..02899048e86b --- /dev/null +++ b/finance/quba-viewer/pkg-descr @@ -0,0 +1,3 @@ +Quba-Viewer is a cross platform open source application to display +structured (i.e., XML) and hybrid (Factur-X/ZUGFeRD PDF) electronic +invoices. diff --git a/finance/quba-viewer/pkg-plist b/finance/quba-viewer/pkg-plist new file mode 100644 index 000000000000..c05dcbe58369 --- /dev/null +++ b/finance/quba-viewer/pkg-plist @@ -0,0 +1,203 @@ +bin/quba +share/applications/quba-viewer.desktop +share/pixmaps/quba-desktop.png +%%DATADIR%%/LICENSE.electron.txt +%%DATADIR%%/LICENSES.chromium.html +%%DATADIR%%/chrome_100_percent.pak +%%DATADIR%%/chrome_200_percent.pak +%%DATADIR%%/chromedriver +%%DATADIR%%/gen/electron/buildflags/buildflags.h +%%DATADIR%%/gen/v8/embedded.S +%%DATADIR%%/libEGL.so +%%DATADIR%%/libGLESv2.so +%%DATADIR%%/libffmpeg.so +%%DATADIR%%/libvk_swiftshader.so +%%DATADIR%%/libvulkan.so +%%DATADIR%%/locales/af.pak +%%DATADIR%%/locales/am.pak +%%DATADIR%%/locales/ar.pak +%%DATADIR%%/locales/bg.pak +%%DATADIR%%/locales/bn.pak +%%DATADIR%%/locales/ca.pak +%%DATADIR%%/locales/cs.pak +%%DATADIR%%/locales/da.pak +%%DATADIR%%/locales/de.pak +%%DATADIR%%/locales/el.pak +%%DATADIR%%/locales/en-GB.pak +%%DATADIR%%/locales/en-US.pak +%%DATADIR%%/locales/es-419.pak +%%DATADIR%%/locales/es.pak +%%DATADIR%%/locales/et.pak +%%DATADIR%%/locales/fa.pak +%%DATADIR%%/locales/fi.pak +%%DATADIR%%/locales/fil.pak +%%DATADIR%%/locales/fr.pak +%%DATADIR%%/locales/gu.pak +%%DATADIR%%/locales/he.pak +%%DATADIR%%/locales/hi.pak +%%DATADIR%%/locales/hr.pak +%%DATADIR%%/locales/hu.pak +%%DATADIR%%/locales/id.pak +%%DATADIR%%/locales/it.pak +%%DATADIR%%/locales/ja.pak +%%DATADIR%%/locales/kn.pak +%%DATADIR%%/locales/ko.pak +%%DATADIR%%/locales/lt.pak +%%DATADIR%%/locales/lv.pak +%%DATADIR%%/locales/ml.pak +%%DATADIR%%/locales/mr.pak +%%DATADIR%%/locales/ms.pak +%%DATADIR%%/locales/nb.pak +%%DATADIR%%/locales/nl.pak +%%DATADIR%%/locales/pl.pak +%%DATADIR%%/locales/pt-BR.pak +%%DATADIR%%/locales/pt-PT.pak +%%DATADIR%%/locales/ro.pak +%%DATADIR%%/locales/ru.pak +%%DATADIR%%/locales/sk.pak +%%DATADIR%%/locales/sl.pak +%%DATADIR%%/locales/sr.pak +%%DATADIR%%/locales/sv.pak +%%DATADIR%%/locales/sw.pak +%%DATADIR%%/locales/ta.pak +%%DATADIR%%/locales/te.pak +%%DATADIR%%/locales/th.pak +%%DATADIR%%/locales/tr.pak +%%DATADIR%%/locales/uk.pak +%%DATADIR%%/locales/ur.pak +%%DATADIR%%/locales/vi.pak +%%DATADIR%%/locales/zh-CN.pak +%%DATADIR%%/locales/zh-TW.pak +%%DATADIR%%/mksnapshot +%%DATADIR%%/node_headers/include/node/common.gypi +%%DATADIR%%/node_headers/include/node/config.gypi +%%DATADIR%%/node_headers/include/node/cppgc/allocation.h +%%DATADIR%%/node_headers/include/node/cppgc/common.h +%%DATADIR%%/node_headers/include/node/cppgc/cross-thread-persistent.h +%%DATADIR%%/node_headers/include/node/cppgc/custom-space.h +%%DATADIR%%/node_headers/include/node/cppgc/default-platform.h +%%DATADIR%%/node_headers/include/node/cppgc/ephemeron-pair.h +%%DATADIR%%/node_headers/include/node/cppgc/explicit-management.h +%%DATADIR%%/node_headers/include/node/cppgc/garbage-collected.h +%%DATADIR%%/node_headers/include/node/cppgc/heap-consistency.h +%%DATADIR%%/node_headers/include/node/cppgc/heap-handle.h +%%DATADIR%%/node_headers/include/node/cppgc/heap-state.h +%%DATADIR%%/node_headers/include/node/cppgc/heap-statistics.h +%%DATADIR%%/node_headers/include/node/cppgc/heap.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/api-constants.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/atomic-entry-flag.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/base-page-handle.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/caged-heap-local-data.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/caged-heap.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/compiler-specific.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/finalizer-trait.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/gc-info.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/logging.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/member-storage.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/name-trait.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/persistent-node.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/pointer-policies.h +%%DATADIR%%/node_headers/include/node/cppgc/internal/write-barrier.h +%%DATADIR%%/node_headers/include/node/cppgc/liveness-broker.h +%%DATADIR%%/node_headers/include/node/cppgc/macros.h +%%DATADIR%%/node_headers/include/node/cppgc/member.h +%%DATADIR%%/node_headers/include/node/cppgc/name-provider.h +%%DATADIR%%/node_headers/include/node/cppgc/object-size-trait.h +%%DATADIR%%/node_headers/include/node/cppgc/persistent.h +%%DATADIR%%/node_headers/include/node/cppgc/platform.h +%%DATADIR%%/node_headers/include/node/cppgc/prefinalizer.h +%%DATADIR%%/node_headers/include/node/cppgc/process-heap-statistics.h +%%DATADIR%%/node_headers/include/node/cppgc/sentinel-pointer.h +%%DATADIR%%/node_headers/include/node/cppgc/source-location.h +%%DATADIR%%/node_headers/include/node/cppgc/testing.h +%%DATADIR%%/node_headers/include/node/cppgc/trace-trait.h +%%DATADIR%%/node_headers/include/node/cppgc/type-traits.h +%%DATADIR%%/node_headers/include/node/cppgc/visitor.h +%%DATADIR%%/node_headers/include/node/js_native_api.h +%%DATADIR%%/node_headers/include/node/js_native_api_types.h +%%DATADIR%%/node_headers/include/node/libplatform/libplatform-export.h +%%DATADIR%%/node_headers/include/node/libplatform/libplatform.h +%%DATADIR%%/node_headers/include/node/libplatform/v8-tracing.h +%%DATADIR%%/node_headers/include/node/node.h +%%DATADIR%%/node_headers/include/node/node_api.h +%%DATADIR%%/node_headers/include/node/node_api_types.h +%%DATADIR%%/node_headers/include/node/node_buffer.h +%%DATADIR%%/node_headers/include/node/node_object_wrap.h +%%DATADIR%%/node_headers/include/node/node_version.h +%%DATADIR%%/node_headers/include/node/uv.h +%%DATADIR%%/node_headers/include/node/uv/aix.h +%%DATADIR%%/node_headers/include/node/uv/bsd.h +%%DATADIR%%/node_headers/include/node/uv/darwin.h +%%DATADIR%%/node_headers/include/node/uv/errno.h +%%DATADIR%%/node_headers/include/node/uv/linux.h +%%DATADIR%%/node_headers/include/node/uv/os390.h +%%DATADIR%%/node_headers/include/node/uv/posix.h +%%DATADIR%%/node_headers/include/node/uv/sunos.h +%%DATADIR%%/node_headers/include/node/uv/threadpool.h +%%DATADIR%%/node_headers/include/node/uv/tree.h +%%DATADIR%%/node_headers/include/node/uv/unix.h +%%DATADIR%%/node_headers/include/node/uv/version.h +%%DATADIR%%/node_headers/include/node/uv/win.h +%%DATADIR%%/node_headers/include/node/v8-array-buffer.h +%%DATADIR%%/node_headers/include/node/v8-callbacks.h +%%DATADIR%%/node_headers/include/node/v8-container.h +%%DATADIR%%/node_headers/include/node/v8-context.h +%%DATADIR%%/node_headers/include/node/v8-cppgc.h +%%DATADIR%%/node_headers/include/node/v8-data.h +%%DATADIR%%/node_headers/include/node/v8-date.h +%%DATADIR%%/node_headers/include/node/v8-debug.h +%%DATADIR%%/node_headers/include/node/v8-embedder-heap.h +%%DATADIR%%/node_headers/include/node/v8-embedder-state-scope.h +%%DATADIR%%/node_headers/include/node/v8-exception.h +%%DATADIR%%/node_headers/include/node/v8-extension.h +%%DATADIR%%/node_headers/include/node/v8-external.h +%%DATADIR%%/node_headers/include/node/v8-forward.h +%%DATADIR%%/node_headers/include/node/v8-function-callback.h +%%DATADIR%%/node_headers/include/node/v8-function.h +%%DATADIR%%/node_headers/include/node/v8-handle-base.h +%%DATADIR%%/node_headers/include/node/v8-initialization.h +%%DATADIR%%/node_headers/include/node/v8-internal.h +%%DATADIR%%/node_headers/include/node/v8-isolate.h +%%DATADIR%%/node_headers/include/node/v8-json.h +%%DATADIR%%/node_headers/include/node/v8-local-handle.h +%%DATADIR%%/node_headers/include/node/v8-locker.h +%%DATADIR%%/node_headers/include/node/v8-maybe.h +%%DATADIR%%/node_headers/include/node/v8-memory-span.h +%%DATADIR%%/node_headers/include/node/v8-message.h +%%DATADIR%%/node_headers/include/node/v8-microtask-queue.h +%%DATADIR%%/node_headers/include/node/v8-microtask.h +%%DATADIR%%/node_headers/include/node/v8-object.h +%%DATADIR%%/node_headers/include/node/v8-persistent-handle.h +%%DATADIR%%/node_headers/include/node/v8-platform.h +%%DATADIR%%/node_headers/include/node/v8-primitive-object.h +%%DATADIR%%/node_headers/include/node/v8-primitive.h +%%DATADIR%%/node_headers/include/node/v8-profiler.h +%%DATADIR%%/node_headers/include/node/v8-promise.h +%%DATADIR%%/node_headers/include/node/v8-proxy.h +%%DATADIR%%/node_headers/include/node/v8-regexp.h +%%DATADIR%%/node_headers/include/node/v8-sandbox.h +%%DATADIR%%/node_headers/include/node/v8-script.h +%%DATADIR%%/node_headers/include/node/v8-snapshot.h +%%DATADIR%%/node_headers/include/node/v8-source-location.h +%%DATADIR%%/node_headers/include/node/v8-statistics.h +%%DATADIR%%/node_headers/include/node/v8-template.h +%%DATADIR%%/node_headers/include/node/v8-traced-handle.h +%%DATADIR%%/node_headers/include/node/v8-typed-array.h +%%DATADIR%%/node_headers/include/node/v8-unwinder.h +%%DATADIR%%/node_headers/include/node/v8-value-serializer.h +%%DATADIR%%/node_headers/include/node/v8-value.h +%%DATADIR%%/node_headers/include/node/v8-version.h +%%DATADIR%%/node_headers/include/node/v8-wasm.h +%%DATADIR%%/node_headers/include/node/v8-weak-callback-info.h +%%DATADIR%%/node_headers/include/node/v8.h +%%DATADIR%%/node_headers/include/node/v8config.h +%%DATADIR%%/node_headers/include/node/zconf.h +%%DATADIR%%/node_headers/include/node/zlib.h +@(,,755) %%DATADIR%%/quba +%%DATADIR%%/resources.pak +%%DATADIR%%/resources/app-update.yml +%%DATADIR%%/resources/app.asar +%%DATADIR%%/snapshot_blob.bin +%%DATADIR%%/v8_context_snapshot.bin +%%DATADIR%%/v8_context_snapshot_generator +%%DATADIR%%/vk_swiftshader_icd.json