Index: Makefile =================================================================== RCS file: /cvs/ports/graphics/arcan/Makefile,v diff -u -p -u -p -r1.6 Makefile --- Makefile 8 Mar 2026 19:26:04 -0000 1.6 +++ Makefile 13 Jun 2026 15:10:00 -0000 @@ -7,12 +7,10 @@ SHARED_LIBS += arcan_shmif_intext SHARED_LIBS += arcan_shmif_server 0.0 # 0.15 SHARED_LIBS += arcan_tui 0.0 # 0.15 -DIST_TUPLE = codeberg letoram arcan 0.6.2 . +DIST_TUPLE = codeberg letoram arcan 0.7.1 . WRKDIST = ${WRKDIR}/arcan WRKSRC = ${WRKDIST}/src -REVISION = 2 - CATEGORIES = graphics devel HOMEPAGE = https://arcan-fe.com @@ -20,10 +18,11 @@ HOMEPAGE = https://arcan-fe.com PERMIT_PACKAGE = Yes # uses pledge() -WANTLIB += ${COMPILER_LIBCXX} EGL GL SDL2 archive avcodec avdevice -WANTLIB += avfilter avformat avutil bz2 c curl drm espeak-ng freetype -WANTLIB += gbm iconv ${MODLUA_WANTLIB} lzma m magic openal sqlite3 swresample -WANTLIB += swscale tesseract util vlc vncclient vncserver wayland-server +WANTLIB += ${COMPILER_LIBCXX} ${MODLUA_WANTLIB} EGL GL SDL2 archive +WANTLIB += avcodec avdevice avfilter avformat avutil bz2 c curl +WANTLIB += display-info drm espeak-ng freetype gbm hunspell-1.7 +WANTLIB += iconv lzma m magic openal sqlite3 swresample swscale +WANTLIB += tesseract util vlc vncclient vncserver wayland-server WANTLIB += xcb xcb-composite xcb-icccm xcb-util xcb-xfixes xkbcommon WANTLIB += z @@ -44,6 +43,8 @@ LIB_DEPENDS = archivers/bzip2 \ graphics/ffmpeg \ graphics/tesseract/tesseract \ net/libvncserver \ + sysutils/libdisplay-info \ + textproc/hunspell \ wayland/wayland \ x11/vlc \ x11/xkbcommon Index: distinfo =================================================================== RCS file: /cvs/ports/graphics/arcan/distinfo,v diff -u -p -u -p -r1.2 distinfo --- distinfo 8 Mar 2026 19:26:04 -0000 1.2 +++ distinfo 13 Jun 2026 15:10:00 -0000 @@ -1,2 +1,2 @@ -SHA256 (letoram-arcan-0.6.2.tar.gz) = P1wkvdLB38b8d17yfb1TBGChe8dkjgWTBc9KNxl2Gmg= -SIZE (letoram-arcan-0.6.2.tar.gz) = 11801875 +SHA256 (letoram-arcan-0.7.1.tar.gz) = sBXbqTel3D71JdCdB81Z+K7rgXPjei9RT/XRn3vB7Qw= +SIZE (letoram-arcan-0.7.1.tar.gz) = 13392556 Index: patches/patch-src_frameserver_encode_default_encode_ffmpeg_c =================================================================== RCS file: patches/patch-src_frameserver_encode_default_encode_ffmpeg_c diff -N patches/patch-src_frameserver_encode_default_encode_ffmpeg_c --- patches/patch-src_frameserver_encode_default_encode_ffmpeg_c 21 Oct 2025 12:53:43 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,74 +0,0 @@ -https://github.com/letoram/arcan/commit/e717c1b5833bdc2dea7dc6f64eeaf39c683ebd26 - -Index: src/frameserver/encode/default/encode_ffmpeg.c ---- src/frameserver/encode/default/encode_ffmpeg.c.orig -+++ src/frameserver/encode/default/encode_ffmpeg.c -@@ -22,6 +22,8 @@ - #include - #include - #include -+#include -+ - #include - #include - #include -@@ -70,7 +72,8 @@ static struct { - const AVCodec* acodec; - AVStream* astream; - AVPacket* apacket; -- int channel_layout; -+ int64_t anext_pts; -+ - int apts_ofs; /* used to roughly displace A/V - synchronisation in encoded frames */ - int silence_samples; /* used to dynamically drop or insert -@@ -218,18 +221,6 @@ static uint8_t* s16swrconv(int* size, int* nsamp) - static uint8_t** resamp_outbuf = NULL; - - if (!resampler){ -- resampler = -- swr_alloc_set_opts( -- NULL, -- AV_CH_LAYOUT_STEREO, -- recctx.acontext->sample_fmt, -- recctx.acontext->sample_rate, -- AV_CH_LAYOUT_STEREO, -- AV_SAMPLE_FMT_S16, -- ARCAN_SHMIF_SAMPLERATE, 0, NULL); -- --/* -- * This is intended to be the 'coming interface' versus the factory above.. - resampler = swr_alloc(); - av_opt_set_chlayout(resampler, "in_chlayout", &recctx.acontext->ch_layout, 0); - av_opt_set_int(resampler, "in_sample_rate", recctx.acontext->sample_rate, 0); -@@ -237,7 +228,6 @@ static uint8_t* s16swrconv(int* size, int* nsamp) - av_opt_set_chlayout(resampler, "out_chlayout", &recctx.acontext->ch_layout, 0); - av_opt_set_int(resampler, "out_sample_rate", recctx.acontext->sample_rate, 0); - av_opt_set_sample_fmt(resampler, "out_sample_fmt", recctx.acontext->sample_fmt, 0); -- */ - - resamp_outbuf = av_malloc(sizeof(uint8_t*) * ARCAN_SHMIF_ACHANNELS); - av_samples_alloc(resamp_outbuf, NULL, ARCAN_SHMIF_ACHANNELS, -@@ -312,7 +302,7 @@ static bool encode_audio(bool flush) - exit(EXIT_FAILURE); - } - -- frame->channel_layout = audio->channel_layout; -+ av_channel_layout_copy(&frame->ch_layout, &audio->ch_layout); - /* - * same as with setup above, this the direct assignment will be - * deprecated .. -@@ -400,10 +390,9 @@ void arcan_frameserver_stepframe() - /* interleave audio / video */ - if (recctx.astream && recctx.vstream){ - while(1){ -- apts = av_stream_get_end_pts(recctx.astream); -- vpts = av_stream_get_end_pts(recctx.vstream); -- -- if (apts < vpts){ -+ if (av_compare_ts( -+ recctx.aframe_ptscnt, recctx.acontext->time_base, -+ recctx.framecount, recctx.vcontext->time_base) <= 0){ - if (!encode_audio(false)) - break; - } Index: patches/patch-src_frameserver_encode_default_encode_presets_c =================================================================== RCS file: patches/patch-src_frameserver_encode_default_encode_presets_c diff -N patches/patch-src_frameserver_encode_default_encode_presets_c --- patches/patch-src_frameserver_encode_default_encode_presets_c 21 Oct 2025 12:53:43 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,52 +0,0 @@ -https://github.com/letoram/arcan/commit/e717c1b5833bdc2dea7dc6f64eeaf39c683ebd26 - -Index: src/frameserver/encode/default/encode_presets.c ---- src/frameserver/encode/default/encode_presets.c.orig -+++ src/frameserver/encode/default/encode_presets.c -@@ -63,7 +63,7 @@ static bool default_vcodec_setup(struct codec_ent* dst - dst->storage.video.codec, NULL) != 0){ - dst->storage.video.codec = NULL; - dst->storage.video.context = NULL; -- avcodec_close(dst->storage.video.context); -+ avcodec_free_context(&dst->storage.video.context); - return false; - } - -@@ -91,12 +91,18 @@ static bool default_acodec_setup( - - if (avcodec_open2( - dst->storage.audio.context, dst->storage.audio.codec, NULL) != 0){ -- avcodec_close(dst->storage.audio.context); -+ avcodec_free_context(&dst->storage.audio.context); - dst->storage.audio.context = NULL; - dst->storage.audio.codec = NULL; - return false; - } - -+ av_channel_layout_copy( -+ &ctx->ch_layout, -+ &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO); -+ -+/* should sweep codec and find best match for number of channels */ -+ - return true; - } - -@@ -175,7 +181,7 @@ static bool setup_cb_x264(struct codec_ent* dst, unsig - - if (avcodec_open2(dst->storage.video.context, - dst->storage.video.codec, &opts) != 0){ -- avcodec_close(dst->storage.video.context); -+ avcodec_free_context(&dst->storage.video.context); - dst->storage.video.context = NULL; - dst->storage.video.codec = NULL; - return false; -@@ -241,7 +247,7 @@ static bool setup_cb_vp8(struct codec_ent* dst, unsign - width, height, fps, vbr / 1024); - if (avcodec_open2(dst->storage.video.context, - dst->storage.video.codec, &opts) != 0){ -- avcodec_close(dst->storage.video.context); -+ avcodec_free_context(&dst->storage.video.context); - dst->storage.video.context = NULL; - dst->storage.video.codec = NULL; - return false; Index: patches/patch-src_frameserver_encode_default_encode_presets_h =================================================================== RCS file: patches/patch-src_frameserver_encode_default_encode_presets_h diff -N patches/patch-src_frameserver_encode_default_encode_presets_h --- patches/patch-src_frameserver_encode_default_encode_presets_h 21 Oct 2025 12:53:43 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -https://github.com/letoram/arcan/commit/e717c1b5833bdc2dea7dc6f64eeaf39c683ebd26 - -Index: src/frameserver/encode/default/encode_presets.h ---- src/frameserver/encode/default/encode_presets.h.orig -+++ src/frameserver/encode/default/encode_presets.h -@@ -29,7 +29,7 @@ struct codec_ent - } video, audio; - - struct { -- AVOutputFormat* format; -+ const AVOutputFormat* format; - AVFormatContext* context; - } container; - Index: patches/patch-src_shmif_arcan_shmif_interop_h =================================================================== RCS file: /cvs/ports/graphics/arcan/patches/patch-src_shmif_arcan_shmif_interop_h,v diff -u -p -u -p -r1.1 patch-src_shmif_arcan_shmif_interop_h --- patches/patch-src_shmif_arcan_shmif_interop_h 8 Mar 2026 19:10:37 -0000 1.1 +++ patches/patch-src_shmif_arcan_shmif_interop_h 13 Jun 2026 15:10:00 -0000 @@ -1,15 +1,12 @@ -no point pledging tmppath (which is no longer available) if also pledging -rpath wpath cpath - Index: src/shmif/arcan_shmif_interop.h --- src/shmif/arcan_shmif_interop.h.orig +++ src/shmif/arcan_shmif_interop.h -@@ -285,7 +285,7 @@ void arg_cleanup(struct arg_arr*); +@@ -294,7 +294,7 @@ char* arg_serialize(struct arg_arr* arr); * futex- only as the set now is too permissive to be comfortable */ #define SHMIF_PLEDGE_PREFIX \ -- "stdio unix sendfd recvfd proc ps rpath wpath cpath tmppath unveil video" -+ "stdio unix sendfd recvfd proc ps rpath wpath cpath unveil video" +- "stdio unix sendfd recvfd proc ps rpath wpath cpath tmppath video" ++ "stdio unix sendfd recvfd proc ps rpath wpath cpath video" /* * Attempt to reduce the exposed set of privileges and whitelist accessible Index: patches/patch-src_shmif_arcan_shmif_privsep_c =================================================================== RCS file: patches/patch-src_shmif_arcan_shmif_privsep_c diff -N patches/patch-src_shmif_arcan_shmif_privsep_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_shmif_arcan_shmif_privsep_c 13 Jun 2026 15:10:00 -0000 @@ -0,0 +1,11 @@ +Index: src/shmif/arcan_shmif_privsep.c +--- src/shmif/arcan_shmif_privsep.c.orig ++++ src/shmif/arcan_shmif_privsep.c +@@ -1,3 +1,7 @@ ++#ifdef __OpenBSD__ ++#include ++#endif ++ + #include + + #ifdef __OpenBSD__ Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/graphics/arcan/pkg/PLIST,v diff -u -p -u -p -r1.2 PLIST --- pkg/PLIST 30 Jul 2022 04:49:29 -0000 1.2 +++ pkg/PLIST 13 Jun 2026 15:10:00 -0000 @@ -7,6 +7,7 @@ @bin bin/afsrv_terminal @bin bin/arcan @bin bin/arcan-net +@bin bin/arcan-net-session @bin bin/arcan-wayland @bin bin/arcan_db @bin bin/arcan_frameserver @@ -37,6 +38,7 @@ include/arcan/shmif/arcan_shmif_sub.h @lib lib/libarcan_shmif_intext.so.${LIBarcan_shmif_intext_VERSION} @lib lib/libarcan_shmif_server.so.${LIBarcan_shmif_server_VERSION} @lib lib/libarcan_tui.so.${LIBarcan_tui_VERSION} +lib/pkgconfig/arcan-a12.pc lib/pkgconfig/arcan-shmif-ext.pc lib/pkgconfig/arcan-shmif-srv.pc lib/pkgconfig/arcan-shmif-tui.pc @@ -66,6 +68,7 @@ share/arcan/scripts/builtin/debug.lua share/arcan/scripts/builtin/decorator.lua share/arcan/scripts/builtin/json.lua share/arcan/scripts/builtin/keyboard.lua +share/arcan/scripts/builtin/legacy.lua share/arcan/scripts/builtin/mouse.lua share/arcan/scripts/builtin/osdkbd.lua share/arcan/scripts/builtin/string.lua @@ -79,3 +82,5 @@ share/arcan/scripts/hook/external_input. share/arcan/scripts/hook/shutdown.lua share/arcan/scripts/hook/timed_dump.lua share/arcan/scripts/hook/touch_simulator.lua +share/doc/arcan/ +share/doc/arcan/config.lua.example