mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-27 05:10:36 +00:00
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/
This commit is contained in:
parent
1dfa2ad912
commit
07467d02fc
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=556446
@ -10,6 +10,7 @@
|
||||
SUBDIR += aegisub
|
||||
SUBDIR += aom
|
||||
SUBDIR += aravis
|
||||
SUBDIR += arcan
|
||||
SUBDIR += assimp
|
||||
SUBDIR += atomicparsley
|
||||
SUBDIR += audacious
|
||||
|
98
multimedia/arcan/Makefile
Normal file
98
multimedia/arcan/Makefile
Normal file
@ -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>
|
13
multimedia/arcan/distinfo
Normal file
13
multimedia/arcan/distinfo
Normal file
@ -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
|
67
multimedia/arcan/files/patch-system-libuvc
Normal file
67
multimedia/arcan/files/patch-system-libuvc
Normal file
@ -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},
|
10
multimedia/arcan/pkg-descr
Normal file
10
multimedia/arcan/pkg-descr
Normal file
@ -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/
|
73
multimedia/arcan/pkg-plist
Normal file
73
multimedia/arcan/pkg-plist
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user