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>

Reply via email to