Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Nov 2020 17:41:57 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r556446 - in head/multimedia: . arcan arcan/files
Message-ID:  <202011271741.0ARHfv2l013781@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Fri Nov 27 17:41:57 2020
New Revision: 556446
URL: https://svnweb.freebsd.org/changeset/ports/556446

Log:
  multimedia/arcan: add new port
  
  Arcan is a powerful development framework for creating virtually anything from
  user interfaces for specialized embedded applications all the way to full-blown
  standalone desktop environments.
  
  At its heart lies a robust and portable multimedia engine, with a well-tested
  and well-documented Lua scripting interface. The development emphasizes
  security, debuggability and performance -- guided by a principle of least
  surprise in terms of API design.
  
  WWW: https://arcan-fe.com/

Added:
  head/multimedia/arcan/
  head/multimedia/arcan/Makefile   (contents, props changed)
  head/multimedia/arcan/distinfo   (contents, props changed)
  head/multimedia/arcan/files/
  head/multimedia/arcan/files/patch-system-libuvc   (contents, props changed)
  head/multimedia/arcan/pkg-descr   (contents, props changed)
  head/multimedia/arcan/pkg-plist   (contents, props changed)
Modified:
  head/multimedia/Makefile   (contents, props changed)

Modified: head/multimedia/Makefile
==============================================================================
--- head/multimedia/Makefile	Fri Nov 27 17:05:22 2020	(r556445)
+++ head/multimedia/Makefile	Fri Nov 27 17:41:57 2020	(r556446)
@@ -10,6 +10,7 @@
     SUBDIR += aegisub
     SUBDIR += aom
     SUBDIR += aravis
+    SUBDIR += arcan
     SUBDIR += assimp
     SUBDIR += atomicparsley
     SUBDIR += audacious

Added: head/multimedia/arcan/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/arcan/Makefile	Fri Nov 27 17:41:57 2020	(r556446)
@@ -0,0 +1,98 @@
+# $FreeBSD$
+
+PORTNAME=	arcan
+DISTVERSION=	0.6.0
+CATEGORIES=	multimedia
+
+PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES+=	7cf3d1066faf.patch:-p2 # https://github.com/letoram/arcan/pull/205
+PATCHFILES+=	f40395b6755d.patch:-p2 # https://github.com/letoram/arcan/pull/205
+PATCHFILES+=	b519eb023e20.patch:-p2 # https://github.com/letoram/arcan/pull/205
+PATCHFILES+=	d6b52b1b3601.patch:-p2 # https://github.com/letoram/arcan/pull/205
+PATCHFILES+=	d8a262d6d19a.patch:-p2 # https://github.com/letoram/arcan/pull/205
+
+MAINTAINER=	jbeich@FreeBSD.org
+COMMENT=	Display Server, Multimedia Framework, Game Engine
+
+LICENSE=	BSD3CLAUSE GPLv2+ LGPL21
+LICENSE_COMB=	multi
+LICENSE_FILE_BSD3CLAUSE=${WRKSRC:H}/data/distr/LICENSE.BSD
+LICENSE_FILE_GPLv2+ =	${WRKSRC:H}/data/distr/LICENSE.GPL
+LICENSE_FILE_LGPL21+ =	${WRKSRC:H}/data/distr/LICENSE.LGPL
+
+LIB_DEPENDS=	libdrm.so:graphics/libdrm \
+		libfreetype.so:print/freetype2
+RUN_DEPENDS=	mesa-dri>0:graphics/mesa-dri
+
+USES=		cmake gl iconv openal pkgconfig sqlite
+USE_GITHUB=	yes
+USE_GL=		egl gbm gl
+USE_LDCONFIG=	yes
+GH_ACCOUNT=	letoram
+WRKSRC_SUBDIR=	src
+CMAKE_ON=	HYBRID_HEADLESS
+CMAKE_ARGS=	-DENGINE_BUILDTAG:STRING="${DISTVERSIONFULL}"
+LDFLAGS+=	-Wl,--as-needed # bzip2, ffmpeg, librt, libutil, lzma, zlib
+
+OPTIONS_DEFINE=	ESPEAK FFMPEG LUAJIT SDL TESSERACT UVC VLC VNC WAYLAND
+OPTIONS_DEFAULT=ESPEAK FFMPEG LUAJIT SDL TESSERACT UVC VLC VNC WAYLAND
+OPTIONS_EXCLUDE_aarch64=	LUAJIT # bug 225342
+OPTIONS_EXCLUDE_powerpc64=	LUAJIT
+OPTIONS_EXCLUDE_FreeBSD_11=	VLC # no Qt5
+OPTIONS_SUB=	yes
+
+ESPEAK_DESC=		Text to speech via eSpeak
+ESPEAK_LIB_DEPENDS=	libespeak.so:audio/espeak
+
+FFMPEG_LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg
+
+LUAJIT_DESC=		Use LuaJIT instead of standard Lua
+LUAJIT_LIB_DEPENDS=	libluajit-5.1.so:lang/luajit
+LUAJIT_USES_OFF=	lua:51
+LUAJIT_CMAKE_BOOL_OFF=	DISABLE_JIT
+
+SDL_USES=		sdl
+SDL_USE=		SDL=sdl2
+SDL_CMAKE_BOOL=		HYBRID_SDL
+
+TESSERACT_DESC=		Optical Character Recognition via Tesseract
+TESSERACT_LIB_DEPENDS=	libtesseract.so:graphics/tesseract
+
+VLC_DESC=		Video decode via libvlc
+VLC_LIB_DEPENDS=	libvlc.so:multimedia/vlc
+
+UVC_DESC=		USB video cameras via libuvc
+UVC_LIB_DEPENDS=	libuvc.so:multimedia/libuvc
+UVC_CMAKE_BOOL=		FSRV_DECODE_UVC
+
+VNC_DESC=		VNC client/server support
+VNC_LIB_DEPENDS=	libvncserver.so:net/libvncserver
+
+WAYLAND_BUILD_DEPENDS=	wayland-protocols>0:graphics/wayland-protocols
+WAYLAND_LIB_DEPENDS=	libwayland-server.so:graphics/wayland \
+			libxcb-icccm.so:x11/xcb-util-wm \
+			libxkbcommon.so:x11/libxkbcommon
+WAYLAND_USES=		xorg
+WAYLAND_USE=		XORG=xcb
+WAYLAND_CMAKE_BOOL_OFF=	DISABLE_WAYLAND
+
+post-patch-ESPEAK-off:
+	@${REINPLACE_CMD} -i.noespeak '/find.*Espeak/d' \
+		${WRKSRC}/frameserver/decode/default/CMakeLists.txt
+
+post-patch-FFMPEG-off:
+	@${REINPLACE_CMD} -i.noffmpeg '/pkg.*FFMPEG/d' \
+		${WRKSRC}/a12/CMakeLists.txt \
+		${WRKSRC}/frameserver/decode/default/CMakeLists.txt \
+		${WRKSRC}/frameserver/encode/default/CMakeLists.txt
+
+post-patch-TESSERACT-off:
+	@${REINPLACE_CMD} -i.notesseract '/pkg.*tesseract/d' \
+		${WRKSRC}/frameserver/encode/default/CMakeLists.txt
+
+post-patch-VNC-off:
+	@${REINPLACE_CMD} -i.novnc '/pkg.*libvnc/d' \
+		${WRKSRC}/frameserver/encode/default/CMakeLists.txt \
+		${WRKSRC}/frameserver/remoting/default/CMakeLists.txt
+
+.include <bsd.port.mk>

Added: head/multimedia/arcan/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/arcan/distinfo	Fri Nov 27 17:41:57 2020	(r556446)
@@ -0,0 +1,13 @@
+TIMESTAMP = 1606252529
+SHA256 (letoram-arcan-0.6.0_GH0.tar.gz) = 7b7aeb0fa6b89b7e3779d2e078b626566bdfa86c756d7ea1cc4f84b9e60d16a0
+SIZE (letoram-arcan-0.6.0_GH0.tar.gz) = 11216362
+SHA256 (7cf3d1066faf.patch) = f6a03026c263bb0f5e98c094925f75c0300c960079b5b0e0740fcb0e804d548c
+SIZE (7cf3d1066faf.patch) = 1078
+SHA256 (f40395b6755d.patch) = b8e5d7ec724a0cec7045d50aaf2a673dbb23ecdaba233503b0de194bfcdb2ef5
+SIZE (f40395b6755d.patch) = 920
+SHA256 (b519eb023e20.patch) = ca8b0bd0adf98ada72be83ea20e797fc191c0f66e83bc7edeb95be327bd67ba7
+SIZE (b519eb023e20.patch) = 2333
+SHA256 (d6b52b1b3601.patch) = e6a54c79de294668ee64a4b13f366257bfcd7856510540fe5f59079f6296382e
+SIZE (d6b52b1b3601.patch) = 1270
+SHA256 (d8a262d6d19a.patch) = 82b04de15212726d33fab17c87600fa0c78e44ea28ee9da764d840ef8f0e1ebf
+SIZE (d8a262d6d19a.patch) = 804

Added: head/multimedia/arcan/files/patch-system-libuvc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/arcan/files/patch-system-libuvc	Fri Nov 27 17:41:57 2020	(r556446)
@@ -0,0 +1,67 @@
+- Git cannot be used as poudriere disables network access during build
+- ExternalProject_Add fails to build with Ninja
+- https://github.com/letoram/arcan/commit/66efdebb236c requires newer libuvc, so guard
+
+--- frameserver/decode/default/CMakeLists.txt.orig	2020-11-27 15:29:00 UTC
++++ frameserver/decode/default/CMakeLists.txt
+@@ -52,31 +52,18 @@ if (LIBVLC_FOUND)
+ 			${DECODE_DEFS}
+ 		)
+ 
+-		pkg_check_modules(LIBUSB_1 REQUIRED libusb-1.0)
+ 		pkg_check_modules(FFMPEG REQUIRED libavcodec libavdevice libavfilter libavformat libavutil libswresample libswscale)
++		pkg_check_modules(LIBUVC libuvc)
+ 
+-		ExternalProject_Add(libuvc
+-			SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/frameserver/decode/libuvc"
+-			BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libuvc_static"
+-			UPDATE_COMMAND ""
+-			GIT_REPOSITORY "${EXTERNAL_SRC_DIR}/git/libuvc"
+-			${EXTERNAL_DEFS}
+-			${CMAKE_EXTERNAL_DEFS}
+-			-DBUILD_UVC_STATIC=ON
+-		)
+-
+-	set(DECODE_DEPS libuvc)
+ 		set(DECODE_INCLUDE_DIRS
+ 			${DECODE_INCLUDE_DIRS}
+-			${LIBUSB_1_INCLUDE_DIRS}
+ 			${FFMPEG_INCLUDE_DIRS}
+-			${CMAKE_CURRENT_BINARY_DIR}/libuvc_static/include
++			${LIBUVC_INCLUDE_DIRS}
+ 			${CMAKE_CURRENT_BINARY_DIR}/../../../include)
+ 		set(DECODE_LIBS
+ 			${FFMPEG_LINK_LIBRARIES}
+ 			${DECODE_LIBS}
+-			${LIBUSB_1_LINK_LIBRARIES}
+-			${CMAKE_CURRENT_BINARY_DIR}/libuvc_static/libuvc.a
++			${LIBUVC_LINK_LIBRARIES}
+ 		)
+ 		set(DECODE_SOURCES
+ 			${DECODE_SOURCES}
+--- frameserver/decode/default/uvc_support.c.orig	2020-11-24 21:15:29 UTC
++++ frameserver/decode/default/uvc_support.c
+@@ -145,7 +145,9 @@ static void callback(uvc_frame_t* frame, void* tag)
+  * though at least the capture devices I have used this one had the
+  * YUYV frame format have the same output as NV12 /facepalm */
+ 	case UVC_FRAME_FORMAT_YUYV:
++#ifdef UVC_COLOR_FORMAT_NV12
+ 	case UVC_FRAME_FORMAT_NV12:
++#endif
+ 		run_swscale(frame, cont, 2, AV_PIX_FMT_NV12);
+ 	break;
+ 	case UVC_FRAME_FORMAT_UYVY:
+@@ -185,11 +187,13 @@ static int fmt_score(const uint8_t fourcc[static 4], i
+ 			.enumv = UVC_FRAME_FORMAT_GRAY8,
+ 			.score = 1
+ 		},
++#ifdef UVC_COLOR_FORMAT_NV12
+ 		{
+       .fourcc = {'N',  'V',  '1',  '2'},
+ 			.enumv = UVC_FRAME_FORMAT_NV12,
+ 			.score = 3
+ 		},
++#endif
+ /* this does not seem to have the 'right' fourcc? */
+ 		{
+ 			.fourcc = {0x7d, 0xeb, 0x36, 0xe4},

Added: head/multimedia/arcan/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/arcan/pkg-descr	Fri Nov 27 17:41:57 2020	(r556446)
@@ -0,0 +1,10 @@
+Arcan is a powerful development framework for creating virtually anything from
+user interfaces for specialized embedded applications all the way to full-blown
+standalone desktop environments.
+
+At its heart lies a robust and portable multimedia engine, with a well-tested
+and well-documented Lua scripting interface. The development emphasizes
+security, debuggability and performance -- guided by a principle of least
+surprise in terms of API design.
+
+WWW: https://arcan-fe.com/

Added: head/multimedia/arcan/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/arcan/pkg-plist	Fri Nov 27 17:41:57 2020	(r556446)
@@ -0,0 +1,73 @@
+bin/afsrv_avfeed
+%%VLC%%bin/afsrv_decode
+%%FFMPEG%%bin/afsrv_encode
+bin/afsrv_game
+bin/afsrv_net
+bin/afsrv_remoting
+bin/afsrv_terminal
+bin/arcan
+bin/arcan-net
+%%WAYLAND%%bin/arcan-wayland
+bin/arcan_db
+bin/arcan_frameserver
+bin/arcan_headless
+%%SDL%%bin/arcan_sdl
+%%WAYLAND%%bin/arcan_xwm
+include/arcan/a12.h
+include/arcan/arcan_tui.h
+include/arcan/arcan_tui_bufferwnd.h
+include/arcan/arcan_tui_linewnd.h
+include/arcan/arcan_tui_listwnd.h
+include/arcan/arcan_tui_readline.h
+include/arcan/arcan_tuidefs.h
+include/arcan/arcan_tuisym.h
+include/arcan/shmif/arcan_shmif.h
+include/arcan/shmif/arcan_shmif_control.h
+include/arcan/shmif/arcan_shmif_defs.h
+include/arcan/shmif/arcan_shmif_event.h
+include/arcan/shmif/arcan_shmif_interop.h
+include/arcan/shmif/arcan_shmif_server.h
+include/arcan/shmif/arcan_shmif_sub.h
+lib/libarcan_a12.so
+lib/libarcan_a12.so.0.1
+lib/libarcan_shmif.a
+lib/libarcan_shmif.so
+lib/libarcan_shmif.so.0.13
+lib/libarcan_shmif_ext.so
+lib/libarcan_shmif_ext.so.0.13
+lib/libarcan_shmif_intext.so
+lib/libarcan_shmif_intext.so.0.13
+lib/libarcan_shmif_server.so
+lib/libarcan_shmif_server.so.0.13
+lib/libarcan_tui.so
+lib/libarcan_tui.so.0.13
+libdata/pkgconfig/arcan-shmif-ext.pc
+libdata/pkgconfig/arcan-shmif-srv.pc
+libdata/pkgconfig/arcan-shmif-tui.pc
+libdata/pkgconfig/arcan-shmif.pc
+%%WAYLAND%%man/man1/arcan-wayland.1.gz
+man/man1/arcan.1.gz
+man/man1/arcan_db.1.gz
+%%DATADIR%%/appl/console/console.lua
+%%DATADIR%%/appl/console/console_osdkbd.lua
+%%DATADIR%%/appl/console/cursor.png
+%%DATADIR%%/appl/console/wayland_client.lua
+%%DATADIR%%/appl/welcome/welcome.lua
+%%DATADIR%%/resources/fonts/default.ttf
+%%DATADIR%%/resources/images/icons/arcanicon.png
+%%DATADIR%%/resources/images/icons/arcanicon.svg
+%%DATADIR%%/scripts/builtin/debug.lua
+%%DATADIR%%/scripts/builtin/decorator.lua
+%%DATADIR%%/scripts/builtin/json.lua
+%%DATADIR%%/scripts/builtin/keyboard.lua
+%%DATADIR%%/scripts/builtin/mouse.lua
+%%DATADIR%%/scripts/builtin/osdkbd.lua
+%%DATADIR%%/scripts/builtin/string.lua
+%%DATADIR%%/scripts/builtin/table.lua
+%%DATADIR%%/scripts/builtin/wayland.lua
+%%DATADIR%%/scripts/builtin/wmsupport.lua
+%%DATADIR%%/scripts/hook/debugstall.lua
+%%DATADIR%%/scripts/hook/external_input.lua
+%%DATADIR%%/scripts/hook/shutdown.lua
+%%DATADIR%%/scripts/hook/timed_dump.lua
+%%DATADIR%%/scripts/hook/touch_simulator.lua



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011271741.0ARHfv2l013781>