On 2019/07/04 19:26, ornx wrote: > First, I want to thank you all for your suggestions. They have been extremely > helpful and have helped me to understand much more about the porting process, > so > trust me the wall of text was very well-appreciated :P I have added all of > Kurt's changes, moved some of the dependencies to LIB_DEPENDS as per Stuart's > suggestion, and I've disabled WebKit and WebEngine support as in Caspar's > port. > I also added qca-qt5 as a dependency because USE_SSL is apparently not a > configure argument anymore and it was silently building it without any SSL > support at all without it (I would like to explicitly turn encryption support > on > but I don't see a configure argument for it...). I'm a bit unsure about adding > USE_KDE and the rest of the desktop environment dependencies, however - one of > the main uses of this software is to run the core program on a remote server, > which means that the dependencies to run just the core should be minimal. When
slight tidying in the diff at the bottom of this mail, - V isn't reused, so just set the version directly in DISTNAME - cmake MODULES already sets cmake in BUILD_DEPENDS - libexecinfo should be LIB_DEPENDS too (associated WANTLIB) - alphabetical order for dep's/CONFIGURE_ARGS - cmake MODULES already sets CMAKE_BUILD_TYPE - drop "based on" makefile comment (that sort of thing could go in cvs log, isn't usually included in the port) - don't disable ninja, seems ok, doesn't burn as much as cpu as gmake still to do that i can think of: various optional dependencies are picked up if present at configure time, these must either be disabled, or explicitly listed as dependencies. (there may be others, this is just based on what's installed on the system i'm building with at present). $ make port-lib-depends-check quassel-0.13.1(net/quassel): Missing lib: Qt5Multimedia.2 (/usr/local/bin/quasselclient) (NOT REACHABLE) Missing lib: dbusmenu-qt5.1 (/usr/local/bin/quasselclient) (NOT REACHABLE) Missing lib: lber-2.4.12 (/usr/local/bin/quasselcore) (NOT REACHABLE) Missing lib: ldap-2.4.13 (/usr/local/bin/quasselcore) (NOT REACHABLE) *** Error 1 in target 'port-lib-depends-check' (ignored) > using MULTI_PACKAGES, is it possible for different subpackages to have > different > dependencies, or is that only possible with flavors? I would love for this > port > to handle both the case of the minimally-dependent core and of the fully > desktop-integrated client with notifications and sound. > > Thanks, > ornx yes different subpackages can have different dep's. it depends on the upstream build system to only link required libraries to the relevant binaries. that *is* the case here - by pointing "objdump -p" at the various binaries and checking NEEDED lines I get: quassel: Qt5Core, Qt5DBus, Qt5Gui, Qt5Multimedia, Qt5Network, Qt5Script, Qt5Sql, Qt5Widgets, c/c++/m/pthread/z/execinfo, ldap libs, qca-qt5 quasselclient: Qt5Core, Qt5DBus, Qt5Gui, Qt5Multimedia, Qt5Network, Qt5Widgets, c/c++/m/pthread/z/execinfo quasselcore: Qt5Core, Qt5Network, Qt5Script, Qt5Sql, c/c++/m/pthread/z/execinfo, ldap libs, qca-qt5 i don't use quassel but from the quick description am guessing that "quassel" is a combination of both client+core, so you would either use quassel, or quasselclient+quasselcore. you'd need to think about which binaries would go in which subpackage, which files are shared, and which package those shared files would go in. i think the main thing you'd be wanting to avoid is probably requiring Qt5Multimedia for quasselcore, so perhaps put quasselcore + shared files in a "quasselcore" package, quassel+quasselclient in "quassel", and have the quassel package depend on quasselcore. (you _could_ have a separate package just for the shared files, but that's a bit more ugly). diff -uNp -x .git -r quassel.orig/Makefile quassel/Makefile --- quassel.orig/Makefile Thu Jul 4 19:46:41 2019 +++ quassel/Makefile Thu Jul 4 21:08:38 2019 @@ -1,10 +1,8 @@ # $OpenBSD: Makefile,v 1.1.1.1 2014/08/22 21:31:48 zhuk Exp $ -# based on the makefile originally posted by chuck burns to the openbsd ports -# mailing list: https://marc.info/?l=openbsd-ports&m=140875982720994&w=2 + COMMENT = distributed IRC client -V = 0.13.1 -DISTNAME = quassel-${V} +DISTNAME = quassel-0.13.1 CATEGORIES = net HOMEPAGE = https://quassel-irc.org @@ -22,25 +20,21 @@ MASTER_SITES = https://quassel-irc.org/pub/ EXTRACT_SUFX = .tar.bz2 -MODULES = devel/cmake x11/qt5 -BUILD_DEPENDS += devel/cmake -LIB_DEPENDS += x11/qt5/qtbase \ - x11/qt5/qtscript \ - security/qca-qt5 +MODULES = devel/cmake \ + x11/qt5 +LIB_DEPENDS += devel/libexecinfo \ + security/qca-qt5 \ + x11/qt5/qtbase \ + x11/qt5/qtscript RUN_DEPENDS += devel/desktop-file-utils \ - devel/libexecinfo \ x11/gtk+3,-guic CONFIGURE_ARGS += -DWANT_CORE=ON \ - -DWANT_QTCLIENT=ON \ -DWANT_MONO=ON \ + -DWANT_QTCLIENT=ON \ -DWITH_WEBENGINE=OFF \ - -DWITH_WEBKIT=OFF \ - -DCMAKE_BUILD_TYPE=Release + -DWITH_WEBKIT=OFF NO_TEST = Yes - -# Disable ninja build system, revert to Makefiles. -USE_NINJA=no .include <bsd.port.mk>
