aboutsummaryrefslogtreecommitdiff
path: root/x11/xpra/Makefile
blob: bdddab7e96900a54327dedfe6d41da0a6184f235 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
PORTNAME=	xpra
PORTVERSION=	6.4
PORTREVISION=	2
CATEGORIES=	x11
MASTER_SITES=	https://xpra.org/src/

MAINTAINER=	arrowd@FreeBSD.org
COMMENT=	Persistent remote applications for X
WWW=		https://xpra.org/

LICENSE=	GPLv2

BUILD_DEPENDS=	pandoc:textproc/hs-pandoc
LIB_DEPENDS=	libaom.so:multimedia/aom \
		libavcodec.so:multimedia/ffmpeg \
		libavif.so:graphics/libavif \
		libbrotlidec.so:archivers/brotli \
		libdrm.so:graphics/libdrm \
		libharfbuzz.so:print/harfbuzz \
		liblz4.so:archivers/liblz4 \
		libopenh264.so:multimedia/openh264 \
		libwebp.so:graphics/webp \
		libx264.so:multimedia/libx264 \
		libxxhash.so:devel/xxhash \
		libwayland-client.so:graphics/wayland
RUN_DEPENDS=	${PY_PILLOW} \
		${PYTHON_PKGNAMEPREFIX}bencode.py>1:converters/py-bencode.py@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}brotli>1:archivers/py-brotli@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}lz4>=0.7.0_1:archivers/py-lz4@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}netifaces>0:net/py-netifaces@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}paramiko>0:security/py-paramiko@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}pyinotify>0:devel/py-pyinotify@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}PyOpenGL-accelerate>=3.1.0:graphics/py-PyOpenGL-accelerate@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}PyOpenGL>=3.1.0:graphics/py-PyOpenGL@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}aioquic>=0:www/py-aioquic@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}rencode>1:converters/py-rencode@${PY_FLAVOR} \
		${PYTHON_PKGNAMEPREFIX}xdg>0:devel/py-xdg@${PY_FLAVOR} \
		setxkbmap:x11/setxkbmap \
		ssh-askpass:security/openssh-askpass \
		xauth:x11/xauth \
		xkbcomp:x11/xkbcomp \
		Xvfb:x11-servers/xorg-server@xvfb
TEST_DEPENDS=	bash:shells/bash \
		coverage:devel/py-coverage@${PY_FLAVOR}

USES=		desktop-file-utils gettext-runtime gnome localbase pkgconfig \
		python shared-mime-info shebangfix tar:xz xorg

USE_GNOME=	cairo gdkpixbuf gtk30 pygobject3
USE_PYTHON=	cryptography cython distutils noflavors
USE_XORG=	x11 xcomposite xcursor xdamage xext xfixes xi xkbfile xrandr \
		xres xtst
PLIST_SUB+=	PORTVERSION=${PORTVERSION} \
		PYTHON_SUFFIX=${PYTHON_SUFFIX} \
		PYTHON_VER=${PYTHON_VER}
SHEBANG_FILES=	fs/lib/cups/backend/xpraforwarder \
		fs/libexec/xpra/auth_dialog \
		fs/libexec/xpra/daemonizer \
		fs/libexec/xpra/gnome-open fs/libexec/xpra/gvfs-open \
		fs/libexec/xpra/xdg-open fs/libexec/xpra/xpra_signal_listener \
		fs/libexec/xpra/xpra_udev_product_version \
		tests/unittests/run

OPTIONS_DEFINE=		AVAHI CUPS DOCS GSTREAMER LIBYUV \
			WEBCAM
OPTIONS_DEFAULT=	AVAHI CUPS GSTREAMER
OPTIONS_SUB=		yes

AVCODEC_DESC=	Enable avcodec2 (FFmpeg) decoder
CUPS_DESC=	Enable CUPS for printer forwarding
FFMPEG_DESC=	Enable FFmpeg encoder
GSTREAMER_DESC=	Enable GStreamer for sound forwarding
LIBYUV_DESC=	Enable libyuv CSC module (fastest)
WEBCAM_DESC=	Enable webcam forwarding (client only)

AVAHI_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}avahi>0:net/py-avahi@${PY_FLAVOR}
AVAHI_VARS=			XPRA_OPTIONS+=mdns
CUPS_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}pycups>1:print/py-pycups@${PY_FLAVOR}
CUPS_VARS=			XPRA_OPTIONS+=printing
GSTREAMER_USES=			gstreamer
GSTREAMER_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gstreamer1>1:multimedia/py-gstreamer1@${PY_FLAVOR}
GSTREAMER_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}gstreamer1>1:multimedia/py-gstreamer1@${PY_FLAVOR}
GSTREAMER_USE=			GSTREAMER=flac,lame,mpg123,ogg,opus,pulse,vorbis,wavpack
GSTREAMER_VARS=			XPRA_OPTIONS+=gstreamer
LIBYUV_LIB_DEPENDS=		libyuv.so:graphics/libyuv
LIBYUV_VARS=			XPRA_OPTIONS+=csc_libyuv
WEBCAM_RUN_DEPENDS=		opencv>2:graphics/opencv
WEBCAM_VARS=			XPRA_OPTIONS+=webcam

PYDISTUTILS_PKGNAME=	xpra_all
XPRA_OPTIONS_ALL+=	${XPRA_OPTIONS_DISABLED} csc_libyuv \
			enc_x264 \
			mdns printing vpx webcam
XPRA_OPTIONS=		dec_avcodec2 enc_ffmpeg enc_x264
XPRA_OPTIONS_DISABLED=	pam strict uinput vpx Xdummy Xdummy_wrapper

.include <bsd.port.options.mk>

.for opt in ${XPRA_OPTIONS_ALL}
.if empty(XPRA_OPTIONS:M${opt})
PYDISTUTILS_ARGS+=	--without-${opt}
.else
PYDISTUTILS_ARGS+=	--with-${opt}
.endif
.endfor

.include <bsd.port.pre.mk>

PYDISTUTILS_BUILDARGS+=	${PYDISTUTILS_ARGS}
PYDISTUTILS_CONFIGUREARGS+=	${PYDISTUTILS_ARGS}
PYDISTUTILS_INSTALLARGS+=	${PYDISTUTILS_ARGS}
MY_TEST_ENV=		XDG_DATA_HOME=${WRKDIR}/test_home \
			XDG_CONFIG_HOME=${WRKDIR}/test_home \
			XDG_CACHE_HOME=${WRKDIR}/test_home/.cache \
			HOME=${WRKDIR}/test_home

post-patch:
	@${REINPLACE_CMD} -e 's|/usr/share|${LOCALBASE}/share|' \
	    ${WRKSRC}/xpra/platform/pycups_printing.py
	@${REINPLACE_CMD} -e 's|/usr/sbin|${LOCALBASE}/sbin|' \
	    ${WRKSRC}/fs/etc/xpra/conf.d/16_printing.conf.in

post-install:
	${MKDIR} ${STAGEDIR}${ETCDIR}
	${CP} -r ${STAGEDIR}/etc ${STAGEDIR}${PREFIX} && ${RM} -r ${STAGEDIR}/etc
	${MV} ${STAGEDIR}${ETCDIR}/xorg.conf \
	    ${STAGEDIR}${ETCDIR}/xorg.conf.sample
	${MV} ${STAGEDIR}${ETCDIR}/xpra.conf \
	    ${STAGEDIR}${ETCDIR}/xpra.conf.sample
	${CP} -r ${STAGEDIR}${PREFIX}/etc/dbus-1 ${STAGEDIR}${PREFIX}/share && ${RM} -r ${STAGEDIR}${PREFIX}/dbus-1
	${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME} -name '*.so' \
	    -exec ${STRIP_CMD} {} +

do-test:
	@${MKDIR} ${BINARY_LINKDIR}
	${RLN} ${PYTHON_CMD} ${BINARY_LINKDIR}/python3
	cd ${BUILD_WRKSRC}; ${SETENVI} ${WRK_ENV} ${TEST_ENV} ${MY_TEST_ENV} \
		${PYTHON_CMD} ${PYDISTUTILS_SETUP} unittests

.include <bsd.port.post.mk>