diff --git a/GIDs b/GIDs --- a/GIDs +++ b/GIDs @@ -335,7 +335,7 @@ dirsrv:*:391: _turnserver:*:392: immich:*:393: -# free: 394 +coolwsd:*:394: # free: 395 # free: 396 rtorrent:*:397: diff --git a/UIDs b/UIDs --- a/UIDs +++ b/UIDs @@ -340,7 +340,7 @@ dirsrv:*:391:391::0:0:389 Directory Server:/usr/local/share/dirsrv:/usr/sbin/nologin _turnserver:*:392:392::0:0:Coturn Turnserver Daemon:/nonexistent:/usr/sbin/nologin immich:*:393:393::0:0:Immich Daemon:/nonexistent:/usr/sbin/nologin -# free: 394 +coolwsd:*:394:394::0:0:Collabora Online:/usr/local/share/cool:/usr/sbin/nologin # free: 395 # free: 396 rtorrent:*:397:397::0:0:rtorrent Daemon User:/nonexistent:/usr/sbin/nologin diff --git a/net/Makefile b/net/Makefile --- a/net/Makefile +++ b/net/Makefile @@ -94,6 +94,8 @@ SUBDIR += clusterit SUBDIR += cnd SUBDIR += containernetworking-plugins + SUBDIR += coolwsd + SUBDIR += coolwsd-engine SUBDIR += corkscrew SUBDIR += corosync2 SUBDIR += corosync3 diff --git a/net/coolwsd-engine/Makefile b/net/coolwsd-engine/Makefile new file mode 100644 --- /dev/null +++ b/net/coolwsd-engine/Makefile @@ -0,0 +1,227 @@ +PORTNAME= coolwsd-engine +DISTVERSIONPREFIX=cp- +DISTVERSION= 26.04.3-1 +CATEGORIES= net +MASTER_SITES= https://dev-www.libreoffice.org/src/:src \ + https://pocoproject.org/releases/poco-1.15.3/:pocosrc \ + https://dev-www.libreoffice.org/extern/:src1 \ + LOCAL/jsm:local + +DIST_SUBDIR= coolwsd + +DISTFILES= dictionaries-refs_heads_distro_collabora_co-26.04.tar.gz:local \ + translations-a0b00e9e5e0f50965d0ecda4a558300a7e4a453a.tar.gz:local \ + zxcvbn-c-2.6.tar.gz:src \ + pdfium-7988.tar.bz2:src \ + dragonbox-1.1.3.tar.gz:src \ + f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf:src1 \ + poco-1.15.3-all.tar.bz2:pocosrc +EXTRACT_ONLY= CollaboraOnline-online.mirror-${DISTVERSIONFULL}_GH0.tar.gz +MAINTAINER= jsm@FreeBSD.org +COMMENT= LibreOffice flavor for online collaboration +WWW= https://collaboraonline.github.io/ + +LICENSE= GPLv3 LGPL3 MPL20 +LICENSE_COMB= multi +BINARY_ALIAS= sed=gsed +USE_GITHUB= yes +GH_ACCOUNT= CollaboraOnline +GH_PROJECT= online.mirror +MDDS_VERSION= 3.1 + +BUILD_DEPENDS= autoconf>=2.72:devel/autoconf \ + automake:devel/automake \ + libtoolize:devel/libtool \ + automake>=1.17:devel/automake \ + bash>=5.3.3:shells/bash \ + nasm>=2.16.0.3:devel/nasm \ + fontconfig>=2.12:x11-fonts/fontconfig \ + gsed:textproc/gsed \ + gperf>=3.2.1:devel/gperf \ + patch>=2.7.6:devel/patch \ + cppunit-config:devel/cppunit \ + ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}afdko>0:x11-fonts/py-afdko@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \ + zip>=3.0:archivers/zip \ + mdds>=${MDDS_VERSION}:devel/mdds \ + frozen>=1.2.0:devel/frozen \ + png>=1.6.58:graphics/png \ + ${LOCALBASE}/include/glm/glm.hpp:math/glm \ + ${LOCALBASE}/include/fast_float/fast_float.h:math/fast_float \ + ${LOCALBASE}/include/sqlext.h:databases/unixODBC \ + ${LOCALBASE}/include/sane/sane.h:graphics/sane-backends + + + +LIB_DEPENDS= libboost_date_time.so:devel/boost-libs \ + libnss3.so:security/nss \ + libsmime3.so:security/nss \ + libssl3.so:security/nss \ + libnssutil3.so:security/nss \ + libplds4.so:devel/nspr \ + libplc4.so:devel/nspr \ + libnspr4.so:devel/nspr \ + liblangtag.so:devel/liblangtag \ + libexpat.so:textproc/expat2 \ + libraptor2.so:textproc/raptor2 \ + liblcms2.so:graphics/lcms2 \ + liblcms2_fast_float.so:graphics/lcms2 \ + liblcms2_threaded.so:graphics/lcms2 \ + libtiff.so:graphics/tiff \ + libwebp.so:graphics/webp \ + libfontconfig.so:x11-fonts/fontconfig \ + libfreetype.so:print/freetype2 \ + libltdl.so:devel/libltdl \ + libCbcSolver.so:math/cbc \ + libCbc.so:math/cbc \ + libnauty.so:math/nauty \ + libCgl.so:math/cgl \ + libOsi.so:math/osi \ + libOsiClp.so:math/clp \ + libClpSolver.so:math/clp \ + libClp.so:math/clp \ + libCoinUtils.so:math/coinutils \ + libcoinasl.so:math/asl \ + libcoinmumps.so:math/coin-or-mumps \ + libicuuc.so:devel/icu \ + libcurl.so:ftp/curl \ + libopenblas.so:math/openblas \ + libcmis-0.6.so:net/libcmis \ + libmd4c.so.0:textproc/md4c \ + libjpeg.so.8:graphics/jpeg-turbo \ + libclucene-core.so:textproc/clucene \ + libxmlsec1-nss.so:security/xmlsec1 \ + liborcus-0.21.so:devel/liborcus \ + librevenge-0.0.so:textproc/librevenge \ + libodfgen-0.1.so:textproc/libodfgen01 \ + libepubgen-0.1.so:textproc/libepubgen \ + libwpd-0.10.so:textproc/libwpd010 \ + libwpg-0.3.so:graphics/libwpg03 \ + libwps-0.4.so:textproc/libwps \ + libvisio-0.1.so:textproc/libvisio01 \ + libcdr-0.1.so:graphics/libcdr01 \ + libmspub-0.1.so:print/libmspub01 \ + libmwaw-0.3.so:textproc/libmwaw03 \ + libetonyek-0.1.so:graphics/libetonyek01 \ + libfreehand-0.1.so:graphics/libfreehand \ + libe-book-0.1.so:textproc/libe-book \ + libabw-0.1.so:textproc/libabw \ + libpagemaker-0.0.so:print/libpagemaker \ + libqxp-0.0.so:textproc/libqxp \ + libzmf-0.0.so:graphics/libzmf \ + libstaroffice-0.0.so:textproc/libstaroffice \ + libgraphite2.so:graphics/graphite2 \ + libharfbuzz.so:print/harfbuzz \ + libharfbuzz-icu.so:print/harfbuzz-icu \ + libharfbuzz.so:print/harfbuzz \ + libargon2.so:security/libargon2 \ + librdf.so:textproc/redland \ + libhunspell-1.7.so:textproc/hunspell \ + libZXing.so:textproc/zxing-cpp \ + libbox2d.so:misc/box2d \ + libhyphen.so:textproc/hyphen \ + libmythes-1.2.so:textproc/mythes \ + libCoinMP.so:math/coinmp \ + libexttextcat-2.0.so:textproc/libexttextcat \ + libnumbertext-1.0.so:textproc/libnumbertext \ + +CONFIGURE_ENV+= CFLAGS="-I${LOCALBASE}/include" \ + LDFLAGS"=-L${LOCALBASE}/lib" \ + CXXFLAGS="-I${LOCALBASE}/include" +MAKE_ENV+= ${CONFIGURE_ENV} \ + GNUSED=${LOCALBASE}/bin/gsed +WRKSRC_SUBDIR = engine +USES= bison gmake perl5 pkgconfig gnome python gettext ldap localbase:ldflags ssl +USE_LDCONFIG= ${PREFIX}/share/${PORTNAME}/instdir/program +USE_GNOME= libxml2 libxslt cairo +GNU_CONFIGURE= no +CC= cc +CXX= c++ +ALL_TARGET= "" + +CONFIGURE_ARGS= --disable-dependency-tracking \ + --with-system-libs \ + --with-system-abseil=no \ + --disable-dbgutil \ + --enable-hardening-flags \ + --disable-mpl-subset \ + --with-system-dicts \ + --with-system-nss \ + --with-myspell-dicts \ + --without-system-openjpeg \ + --with-system-libs \ + --with-system-boost \ + --with-boost=${LOCALBASE} \ + --with-system-mdds \ + --with-system-argon2 \ + --with-system-cppunit \ + --with-system-curl \ + --with-system-expat \ + --with-system-icu \ + --with-system-fast-float \ + --with-system-dragonbox=no \ + --with-system-frozen \ + --with-system-libtiff \ + --with-system-libxml \ + --with-system-nss \ + --with-system-liblangtag \ + --with-system-zlib \ + --with-system-zxcvbn=no \ + --with-system-zxing \ + --with-system-libfixmath=no \ + --with-system-libpng \ + --enable-mergelibs \ + --without-java \ + --without-junit \ + --without-help \ + --with-linker-hash-style=both \ + --without-fonts \ + --with-galleries=no \ + --with-theme="colibre colibre_svg" \ + --disable-dbus \ + --disable-gtk3 \ + --disable-evolution2 \ + --disable-gio \ + --disable-gui \ + --disable-sdremote \ + --disable-sdremote-bluetooth \ + --disable-randr \ + --disable-epm \ + --enable-python=system \ + --disable-dconf \ + --without-package-format \ + --with-lang="ar bg ca cs cy da de el en-US en-GB eo es eu fi fr ga gl he hr hu hy id is it ja kk ko lo nb nl oc pl pt pt-BR ro ru sk sl sq sv tr uk vi zh-CN zh-TW" \ + --with-external-thes-dir=${LOCALBASE}/share/mythes \ + --with-external-hyph-dir=${LOCALBASE}/share/hyphen \ + --with-external-dict-dir=${LOCALBASE}/share/hunspell \ + --enable-sal-log \ + --without-templates \ + --with-buildconfig-recorded \ + --with-gnu-patch=/usr/local/bin/gpatch \ + --disable-fetch-external \ + --with-external-tar=${DISTDIR}/${DIST_SUBDIR} +post-extract: + @${MKDIR} ${WRKSRC}/dictionaries ${WRKSRC}/translations + @tar -C ${WRKSRC}/dictionaries -xf ${DISTDIR}/${DIST_SUBDIR}/dictionaries-refs_heads_distro_collabora_co-26.04.tar.gz + @tar -C ${WRKSRC}/translations -xf ${DISTDIR}/${DIST_SUBDIR}/translations-a0b00e9e5e0f50965d0ecda4a558300a7e4a453a.tar.gz + +post-patch: + @${REINPLACE_CMD} -e 's|mdds-3.0|mdds-${MDDS_VERSION}|g' ${WRKSRC}/configure.ac +do-configure: + cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./autogen.sh CC=${CC} CXX=${CXX} ${CONFIGURE_ARGS} +do-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/include/${PORTNAME}/include + ${MKDIR} ${STAGEDIR}${PREFIX}/share/${PORTNAME} + ${CP} -a ${WRKSRC}/instdir ${STAGEDIR}${PREFIX}/share/${PORTNAME} + ${CP} -a ${WRKSRC}/include/COKit ${STAGEDIR}${PREFIX}/include/${PORTNAME}/include + ${CP} ${WRKSRC}/config_host.mk ${WRKSRC}/config_host_lang.mk ${STAGEDIR}${PREFIX}/share/${PORTNAME} +post-install: + @cd ${STAGEDIR}${PREFIX} && \ + ${FIND} -s share/${PORTNAME}/instdir include/${PORTNAME}/include -type d -empty \ + -exec ${ECHO_CMD} "@dir {}" \; >> ${TMPPLIST} + @cd ${STAGEDIR}${PREFIX} && \ + ${FIND} -s share/${PORTNAME}/instdir include/${PORTNAME}/include -not -type d >> ${TMPPLIST} + @${ECHO} share/${PORTNAME}/config_host.mk >> ${TMPPLIST} + @${ECHO} share/${PORTNAME}/config_host_lang.mk >> ${TMPPLIST} +.include diff --git a/net/coolwsd-engine/distinfo b/net/coolwsd-engine/distinfo new file mode 100644 --- /dev/null +++ b/net/coolwsd-engine/distinfo @@ -0,0 +1,17 @@ +TIMESTAMP = 1786193658 +SHA256 (coolwsd/dictionaries-refs_heads_distro_collabora_co-26.04.tar.gz) = d19fb2f516d08dbdc15144298948a16915ad92711a376746f0b6e8685e7eccaf +SIZE (coolwsd/dictionaries-refs_heads_distro_collabora_co-26.04.tar.gz) = 117729292 +SHA256 (coolwsd/translations-a0b00e9e5e0f50965d0ecda4a558300a7e4a453a.tar.gz) = c5108d68e032a41dd545afe8416bc186f1cf38ec6a52a62380cd92e9a9fef456 +SIZE (coolwsd/translations-a0b00e9e5e0f50965d0ecda4a558300a7e4a453a.tar.gz) = 359825256 +SHA256 (coolwsd/zxcvbn-c-2.6.tar.gz) = 11e39f6776f9c82c68b2acb94336e32697d4ab6cdb4ac16f9583ccbdd735113a +SIZE (coolwsd/zxcvbn-c-2.6.tar.gz) = 1405136 +SHA256 (coolwsd/pdfium-7988.tar.bz2) = 0340b2fca57cecdf6e2e0366129a3340f6764c132cb090f57db96d9f0f349855 +SIZE (coolwsd/pdfium-7988.tar.bz2) = 16399580 +SHA256 (coolwsd/dragonbox-1.1.3.tar.gz) = 09d63b05e9c594ec423778ab59b7a5aa1d76fdd71d25c7048b0258c4ec9c3384 +SIZE (coolwsd/dragonbox-1.1.3.tar.gz) = 4337233 +SHA256 (coolwsd/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf) = f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140 +SIZE (coolwsd/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf) = 207992 +SHA256 (coolwsd/poco-1.15.3-all.tar.bz2) = 562a1ba1a6db4665f81091c35e997b73f87e1b45e2ab2854cd720d2349518abc +SIZE (coolwsd/poco-1.15.3-all.tar.bz2) = 7365479 +SHA256 (coolwsd/CollaboraOnline-online.mirror-cp-26.04.3-1_GH0.tar.gz) = dc0795fbb8de90abc2d7b4795a6f7416000edc0ecd294db1f496552ad98768a1 +SIZE (coolwsd/CollaboraOnline-online.mirror-cp-26.04.3-1_GH0.tar.gz) = 499755172 diff --git a/net/coolwsd-engine/files/patch-Makefile.in b/net/coolwsd-engine/files/patch-Makefile.in new file mode 100644 --- /dev/null +++ b/net/coolwsd-engine/files/patch-Makefile.in @@ -0,0 +1,20 @@ +--- Makefile.in.orig 2026-08-08 13:52:34 UTC ++++ Makefile.in +@@ -9,7 +9,7 @@ gb_Top_MODULE_CHECK_TARGETS := slowcheck unitcheck sub + + gb_Top_MODULE_CHECK_TARGETS := slowcheck unitcheck subsequentcheck perfcheck uicheck screenshot + +-.PHONY : check-if-root check-makefile-version bootstrap gbuild build build-non-l10n-only build-l10n-only check clean clean-build clean-host test-install distclean distro-pack-install docs download etags fetch fetch-repos id install install-gdb-printers install-strip tags debugrun help showmodules translations packageinfo coverage internal.clean $(gb_Top_MODULE_CHECK_TARGETS) ++.PHONY : check-makefile-version bootstrap gbuild build build-non-l10n-only build-l10n-only check clean clean-build clean-host test-install distclean distro-pack-install docs download etags fetch fetch-repos id install install-gdb-printers install-strip tags debugrun help showmodules translations packageinfo coverage internal.clean $(gb_Top_MODULE_CHECK_TARGETS) + + DISABLE_GUI := @DISABLE_GUI@ + +@@ -305,7 +305,7 @@ endif + # + # Bootstrap + # +-bootstrap: check-if-root check-makefile-version compilerplugins ++bootstrap: check-makefile-version compilerplugins + + # + # Build diff --git a/net/coolwsd-engine/files/patch-configure.ac b/net/coolwsd-engine/files/patch-configure.ac new file mode 100644 --- /dev/null +++ b/net/coolwsd-engine/files/patch-configure.ac @@ -0,0 +1,11 @@ +--- configure.ac.orig 2025-11-10 20:36:45 UTC ++++ configure.ac +@@ -11897,7 +11897,7 @@ else + save_CXXFLAGS=$CXXFLAGS + save_IFS=$IFS + IFS=$P_SEP +- for i in $CPLUS_INCLUDE_PATH /usr/include; do ++ for i in $CPLUS_INCLUDE_PATH /usr/local/include; do + dnl Reset IFS as soon as possible, to avoid unexpected side effects (and the + dnl "/usr/include" fallback makes sure we get here at least once; resetting rather than + dnl unsetting follows the advice at 0:devel/py-lxml@${PY_FLAVOR} \ + autoconf>=2.72:devel/autoconf \ + automake:devel/automake \ + libtoolize:devel/libtool \ + automake>=1.17:devel/automake \ + bash>=5.3.3:shells/bash \ + nasm>=2.16.0.3:devel/nasm \ + fontconfig>=2.12:x11-fonts/fontconfig \ + gsed:textproc/gsed \ + gperf>=3.2.1:devel/gperf \ + patch>=2.7.6:devel/patch \ + cppunit-config:devel/cppunit \ + ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}afdko>0:x11-fonts/py-afdko@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \ + zip>=3.0:archivers/zip \ + mdds>=${MDDS_VERSION}:devel/mdds \ + frozen>=1.2.0:devel/frozen \ + png>=1.6.58:graphics/png \ + ${LOCALBASE}/include/glm/glm.hpp:math/glm \ + ${LOCALBASE}/include/fast_float/fast_float.h:math/fast_float \ + ${LOCALBASE}/include/sqlext.h:databases/unixODBC \ + ${LOCALBASE}/include/sane/sane.h:graphics/sane-backends \ + npm:www/npm-node${NODEJS_VERSION} \ + rsync:net/rsync \ + ${LOCALBASE}/lib/libcppunit.so:devel/cppunit \ + bash:shells/bash \ + grealpath:sysutils/coreutils +LIB_DEPENDS= libzstd.so:archivers/zstd \ + libpng16.so:graphics/png \ + libexpat.so:textproc/expat2 +RUN_DEPENDS= grealpath:sysutils/coreutils \ + bash:shells/bash \ + ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss \ + fc-cache:x11-fonts/fontconfig \ + liberation-fonts-ttf>0:x11-fonts/liberation-fonts-ttf \ + ${LOCALBASE}/share/coolwsd-engine/instdir/program/libmergedlo.so:net/coolwsd-engine + +USES= autoreconf bison iconv:wchar_t gmake libtool localbase nodejs perl5 pkgconfig python ssl +USES_PERL5= build + +USE_RC_SUBR= coolwsd +USE_GITHUB= yes +GH_ACCOUNT= CollaboraOnline +GH_PROJECT= online.mirror +SUB_FILES= pkg-message + +USERS= coolwsd +GROUPS= coolwsd +CC=cc +CXX=c++ +CPPFLAGS+=-DKIT_LOADLIB_GLOBAL +MDDS_VERSION=3.1 +ENGINE_CONFIGURE_ENV+= CFLAGS="-I${LOCALBASE}/include" \ + LDFLAGS"=-L${LOCALBASE}/lib" \ + CXXFLAGS="-I${LOCALBASE}/include" +ENGINE_CONFIGURE_ARGS= --disable-dependency-tracking \ + --with-system-libs \ + --with-system-abseil=no \ + --disable-dbgutil \ + --enable-hardening-flags \ + --disable-mpl-subset \ + --with-system-dicts \ + --with-system-nss \ + --with-myspell-dicts \ + --without-system-openjpeg \ + --with-system-libs \ + --with-system-boost \ + --with-boost=${LOCALBASE} \ + --with-system-mdds \ + --with-system-argon2 \ + --with-system-cppunit \ + --with-system-curl \ + --with-system-expat \ + --with-system-icu \ + --with-system-fast-float \ + --with-system-dragonbox=no \ + --with-system-frozen \ + --with-system-libtiff \ + --with-system-libxml \ + --with-system-nss \ + --with-system-liblangtag \ + --with-system-zlib \ + --with-system-zxcvbn=no \ + --with-system-zxing \ + --with-system-libfixmath=no \ + --with-system-libpng \ + --enable-mergelibs \ + --without-java \ + --without-junit \ + --without-help \ + --with-linker-hash-style=both \ + --without-fonts \ + --with-galleries=no \ + --with-theme="colibre colibre_svg" \ + --disable-dbus \ + --disable-gtk3 \ + --disable-evolution2 \ + --disable-gio \ + --disable-gui \ + --disable-sdremote \ + --disable-sdremote-bluetooth \ + --disable-randr \ + --disable-epm \ + --enable-python=system \ + --disable-dconf \ + --without-package-format \ + --with-lang="ar bg ca cs cy da de el en-US en-GB eo es eu fi fr ga gl he hr hu hy id is it ja kk ko lo nb nl oc pl pt pt-BR ro ru sk sl sq sv tr uk vi zh-CN zh-TW" \ + --with-external-thes-dir=${LOCALBASE}/share/mythes \ + --with-external-hyph-dir=${LOCALBASE}/share/hyphen \ + --with-external-dict-dir=${LOCALBASE}/share/hunspell \ + --enable-sal-log \ + --without-templates \ + --with-buildconfig-recorded \ + --with-gnu-patch=/usr/local/bin/gpatch \ + --disable-fetch-external \ + --with-external-tar=${DISTDIR}/${DIST_SUBDIR} +CONFIGURE_ARGS= --prefix=${LOCALBASE} --sysconfdir=${LOCALBASE}/etc \ + --localstatedir=/var \ + --enable-silent-rules \ + --with-lokit-path=${LOCALBASE}/include/coolwsd-engine/include \ + --disable-seccomp \ + --disable-tests \ + --disable-dependency-tracking \ + --with-lo-builddir=${WRKSRC}/engine \ + --with-lo-path=${LOCALBASE}/share/coolwsd-engine/instdir \ + --with-dictionaries="ar bg ca cs da de el en eo es eu fi fr gl he hr hu hy id is it ja ko lo nb nl oc pl pt pt-BR sq ru sk sl sv tr uk vi zh-CN zh-TW" \ + --with-user-id=coolwsd \ + --disable-tests + +GNU_CONFIGURE= yes +pre-configure: + ${CP} ${FILESDIR}/dist_git_hash ${WRKSRC}/dist_git_hash + cd ${WRKSRC}/engine && ${SETENV} ${ENGINE_CONFIGURE_ENV} ./autogen.sh CC=${CC} CXX=${CXX} ${ENGINE_CONFIGURE_ARGS} && cd ${WRKSRC}/engine/external/poco && gmake -j ${MAKE_JOBS_NUMBER} +post-extract: + ${TAR} -C ${WRKSRC}/browser -xvzf ${DISTDIR}/${DIST_SUBDIR}/node-modules-${PORTNAME}-${DISTVERSIONFULL}.tar.xz +post-patch: + ${REINPLACE_CMD} -e 's|mdds-3.0|mdds-${MDDS_VERSION}|g' ${WRKSRC}/engine/configure.ac + @${REINPLACE_CMD} s/python3/${PYTHON_VERSION}/g ${WRKSRC}/scripts/create-sbom.py \ + ${WRKSRC}/configure.ac \ + ${WRKSRC}/Makefile.am \ + ${WRKSRC}/browser/util/po2json.py \ + ${WRKSRC}/browser/util/appendwelcome.py \ + ${WRKSRC}/scripts/unocommands.py \ + ${WRKSRC}/scripts/unoshortcuts.py \ + ${WRKSRC}/scripts/genlangmaps.py +post-install: + ${CHMOD} 4755 ${STAGEDIR}${PREFIX}/bin/coolmount + ${CHMOD} 4755 ${STAGEDIR}${PREFIX}/bin/coolforkit-caps + ${INSTALL_DATA} ${STAGEDIR}${PREFIX}/etc/coolwsd/coolwsd.xml ${STAGEDIR}${PREFIX}/etc/coolwsd/coolwsd.xml.sample + +.include diff --git a/net/coolwsd/distinfo b/net/coolwsd/distinfo new file mode 100644 --- /dev/null +++ b/net/coolwsd/distinfo @@ -0,0 +1,9 @@ +TIMESTAMP = 1787179765 +SHA256 (coolwsd/node-modules-coolwsd-cp-26.04.3-1.tar.xz) = 09e7fa41a7c4f4951ed581b817b4fd11fc68e65e5faf42279ae19e0b7c8c2c5f +SIZE (coolwsd/node-modules-coolwsd-cp-26.04.3-1.tar.xz) = 26997448 +SHA256 (coolwsd/poco-1.15.3-all.tar.bz2) = 562a1ba1a6db4665f81091c35e997b73f87e1b45e2ab2854cd720d2349518abc +SIZE (coolwsd/poco-1.15.3-all.tar.bz2) = 7365479 +SHA256 (coolwsd/CollaboraOnline-online.mirror-cp-26.04.3-1_GH0.tar.gz) = dc0795fbb8de90abc2d7b4795a6f7416000edc0ecd294db1f496552ad98768a1 +SIZE (coolwsd/CollaboraOnline-online.mirror-cp-26.04.3-1_GH0.tar.gz) = 499755172 +SHA256 (coolwsd/patch?download&raw) = 627e271d40412e5aa758f5d48f82bf688ce3716b55c7b13a97621f0014b1586f +SIZE (coolwsd/patch?download&raw) = 20651 diff --git a/net/coolwsd/files/coolwsd.in b/net/coolwsd/files/coolwsd.in new file mode 100644 --- /dev/null +++ b/net/coolwsd/files/coolwsd.in @@ -0,0 +1,26 @@ +#!/bin/sh + +# PROVIDE: coolwsd +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf to enable the pxe daemon: +# +# coolwsd_enable="YES" + +. /etc/rc.subr + +name=coolwsd +rcvar=coolwsd_enable + +pidfile="/var/run/${name}.pid" + +logfile="/var/log/$name.log" +coolwsd_chdir="%%PREFIX%%/share/cool" +user="coolwsd" +procname="%%PREFIX%%/bin/coolwsd" +command="/usr/sbin/daemon" +load_rc_config $name +command_args="--child-pidfile $pidfile --output-file $logfile --user $user %%LOCALBASE%%/bin/coolwsd ${coolwsd_cli_options}" + +run_rc_command "$1" diff --git a/net/coolwsd/files/dist_git_hash b/net/coolwsd/files/dist_git_hash new file mode 100644 --- /dev/null +++ b/net/coolwsd/files/dist_git_hash @@ -0,0 +1 @@ +1ec9f2b9e7 \ No newline at end of file diff --git a/net/coolwsd/files/patch-Makefile.am b/net/coolwsd/files/patch-Makefile.am new file mode 100644 --- /dev/null +++ b/net/coolwsd/files/patch-Makefile.am @@ -0,0 +1,25 @@ +--- Makefile.am.orig 2026-08-08 20:11:50.285940000 +0200 ++++ Makefile.am +@@ -561,7 +561,6 @@ if HAVE_LO_PATH + FORCE: + + if HAVE_LO_PATH +- + SYSTEM_STAMP = @SYSTEMPLATE_PATH@/system_stamp + RUN_GDB = $(if $(GDB_FRONTEND),$(GDB_FRONTEND),gdb --tui --args) + TEST_APPARMOR=$(shell if test 1 -eq `cat /proc/sys/kernel/apparmor_restrict_unprivileged_userns 2> /dev/null || echo 0`; then echo "enabled"; fi) +@@ -763,10 +762,12 @@ endif + else + ALL_LOCAL_DEPS=coolwsd + endif +- ++if FREEBSD ++all-local: $(ALL_LOCAL_DEPS) ++else + all-local: $(ALL_LOCAL_DEPS) @JAILS_PATH@ @CACHE_PATH@ $(SYSTEM_STAMP) + @abs_srcdir='$(abs_top_srcdir)' $(abs_top_srcdir)/scripts/refresh-git-hooks +- ++endif + # just run the build without any tests + build-nocheck: all-am + diff --git a/net/coolwsd/files/patch-browser_Makefile.am b/net/coolwsd/files/patch-browser_Makefile.am new file mode 100644 --- /dev/null +++ b/net/coolwsd/files/patch-browser_Makefile.am @@ -0,0 +1,11 @@ +--- browser/Makefile.am.orig 2026-07-10 23:09:29.566898000 +0200 ++++ browser/Makefile.am +@@ -845,7 +845,7 @@ SPACE := $(EMPTY) $(EMPTY) + COMMA := , + EMPTY := + SPACE := $(EMPTY) $(EMPTY) +-COOL_VERSION = $(shell cd $(srcdir) && git log -1 --format=%h --abbrev=10) ++COOL_VERSION = $(shell cd $(srcdir) && cat git_dist_hash) + INTERMEDIATE_DIR ?= $(if $(IS_SEPARATE),$(abs_builddir)/debug,$(abs_builddir)/release) + + # Don't use EXTRA_DIST with $(shell find) as it causes "Argument list too long" errors diff --git a/net/coolwsd/files/patch-common_Util.hpp b/net/coolwsd/files/patch-common_Util.hpp new file mode 100644 --- /dev/null +++ b/net/coolwsd/files/patch-common_Util.hpp @@ -0,0 +1,18 @@ +--- common/Util.hpp.orig 2026-08-08 18:55:52.228090000 +0200 ++++ common/Util.hpp 2026-08-08 18:58:37.764114000 +0200 +@@ -632,9 +632,15 @@ + #ifdef EBFONT + case EBFONT: return "EBFONT"; + #endif ++#ifdef ENOSTR + case ENOSTR: return "ENOSTR"; ++#endif ++#ifdef ENODATA + case ENODATA: return "ENODATA"; ++#endif ++#ifdef ETIME + case ETIME: return "ETIME"; ++#endif + case ENOSR: return "ENOSR"; + #ifdef ENONET + case ENONET: return "ENONET"; diff --git a/net/coolwsd/files/patch-configure.ac b/net/coolwsd/files/patch-configure.ac new file mode 100644 --- /dev/null +++ b/net/coolwsd/files/patch-configure.ac @@ -0,0 +1,10 @@ +--- configure.ac.orig 2026-08-08 20:11:04.453759000 +0200 ++++ configure.ac +@@ -76,6 +76,7 @@ AM_CONDITIONAL([X86], [test "$host_cpu" = x86 || test + AC_CONFIG_HEADERS([config_unused.h]) + + AM_CONDITIONAL([X86], [test "$host_cpu" = x86 || test "$host_cpu" = x86_64]) ++AM_CONDITIONAL([FREEBSD], [test `uname -s` = FreeBSD]) + + # Checks for programs. + AC_PROG_CXX diff --git a/net/coolwsd/files/patch-engine-configure.ac b/net/coolwsd/files/patch-engine-configure.ac new file mode 100644 --- /dev/null +++ b/net/coolwsd/files/patch-engine-configure.ac @@ -0,0 +1,11 @@ +--- engine/configure.ac.orig 2025-11-10 20:36:45 UTC ++++ engine/configure.ac +@@ -11897,7 +11897,7 @@ else + save_CXXFLAGS=$CXXFLAGS + save_IFS=$IFS + IFS=$P_SEP +- for i in $CPLUS_INCLUDE_PATH /usr/include; do ++ for i in $CPLUS_INCLUDE_PATH /usr/local/include; do + dnl Reset IFS as soon as possible, to avoid unexpected side effects (and the + dnl "/usr/include" fallback makes sure we get here at least once; resetting rather than + dnl unsetting follows the advice at