On 2022/12/22 09:03, Omar Polo wrote:
> On 2022/12/22 00:27:59 +0000, Yifei Zhan <openbsd@zhan.science> wrote:
> > MULTI_PACKAGES=     -main -server -client
> > 
> > ...cut...
> > 
> > .if ${BUILD_PACKAGES:M-main}
> > ALL_TARGET= ./proxy/
> > .endif
> > 
> > .if ${BUILD_PACKAGES:M-client}
> > ALL_TARGET=     ./client/
> > .endif
> > 
> > .if ${BUILD_PACKAGES:M-server}
> > ALL_TARGET= ./server/
> > .endif
> 
> I've not looked at the tarball but glancing at this it looks wrong.
> 
> MULTI_PACKAGES is a way to do a *single* build and generate multiple
> packages.  So, what you are doing here is just setting ALL_TARGET to
> ./proxy/, you're just building the -main subpackage. (this due to how
> make handles multiple definition of the same variable)

Exactly.

> `ALL_TARGET+= ./foo/' *may* work (again, i haven't downloaded the
> tarball), but it gives the idea.
> 
> Also, I'm not sure how much it buys to have all these
> 
>       .if ${BUILD_PACKAGES:M-XXX}
> 
> if all the three packages are always built.  It may be useful to do
> that when you need to disable the building of some parts for reasons
> (for e.g. look at x11/wxWidgets where one subpackage can't be built on
> all architectures -- but then you'll likely need to use PSEUDO_FLAVORS
> as well.)

Also where there's a port providing a main package plus many plugins,
some with heavy dependencies (and especially in cases where you might
actually need to build it from ports rather than packages).

> (at the cost of being annoying) remember:
> 
>  - flavors => multiple builds, one per combination
>  - multipackage- => one build split in sub packages

and having separate ports using the same distfile is totally ok too -
either fully separate, or a ports/category/basename/{server,client} type
of arrangement with shared parts.

Don't overthink things though, there's really no need to split this
up, a single package is fine (and maybe preferable in this case, as it
stops a passive observer from figuring out whether you downloaded
the proxy or server or client parts).

Index: Makefile
===================================================================
RCS file: /cvs/ports/net/snowflake_proxy/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- Makefile    6 Oct 2022 17:05:25 -0000       1.7
+++ Makefile    22 Dec 2022 08:15:38 -0000
@@ -1,7 +1,8 @@
-COMMENT=       proxy providing Tor access to others with censored net
+COMMENT=       proxy daemon and pluggable transports for Tor access with 
censored net
 
 MODGO_MODNAME= git.torproject.org/pluggable-transports/snowflake.git/v2
 V=             2.3.1
+REVISION=      0
 MODGO_VERSION= v$V
 
 DISTNAME=      snowflake.git-${MODGO_VERSION}
@@ -17,7 +18,7 @@ PERMIT_PACKAGE= Yes
 WANTLIB += c pthread
 
 MODULES=       lang/go
-ALL_TARGET=     ./proxy/
+ALL_TARGET=     ./proxy/ ./client/ ./server/
 
 # done as a sed instead of patch because the path includes the version number
 post-extract:
@@ -25,7 +26,9 @@ post-extract:
            ${WRKSRC}/proxy/lib/pt_event_logger.go
 
 post-install:
-       cd ${PREFIX}/bin && mv proxy snowflake_proxy
+.for i in proxy client server
+       mv ${PREFIX}/bin/$i ${PREFIX}/bin/snowflake_$i
+.endfor
 
 .include "modules.inc"
 .include <bsd.port.mk>
Index: pkg/DESCR
===================================================================
RCS file: /cvs/ports/net/snowflake_proxy/pkg/DESCR,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 DESCR
--- pkg/DESCR   28 Feb 2022 16:54:13 -0000      1.1.1.1
+++ pkg/DESCR   22 Dec 2022 08:15:38 -0000
@@ -12,5 +12,6 @@ e.g. by configuring it in Tor Browser.
 Technical information is in
 
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/wikis/Technical%20Overview
 
-This package provides a proxy, for those who would like to use their
-internet connection to provide access to others via this protocol.
+This package provides a standalone proxy, for those who would like to use
+their internet connection to provide access to others via this protocol,
+and pluggable transports for Tor to allow using snowflake proxies. 
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/net/snowflake_proxy/pkg/PLIST,v
retrieving revision 1.3
diff -u -p -r1.3 PLIST
--- pkg/PLIST   4 Mar 2022 10:46:34 -0000       1.3
+++ pkg/PLIST   22 Dec 2022 08:15:38 -0000
@@ -1,6 +1,8 @@
 @newgroup _snowflakeproxy:874
 @newuser _snowflakeproxy:874:_snowflakeproxy::snowflake_proxy 
user:/nonexistent:/sbin/nologin
 @rcscript ${RCDIR}/snowflake_proxy
+@bin bin/snowflake_client
 @bin bin/snowflake_proxy
+@bin bin/snowflake_server
 share/examples/login.conf.d/snowflake_proxy
 @sample ${SYSCONFDIR}/login.conf.d/snowflake_proxy

Reply via email to