aboutsummaryrefslogtreecommitdiff
path: root/development/arcan
diff options
context:
space:
mode:
authorDamian Perticone <mjolnirdam@gmail.com>2022-05-28 01:28:06 +0100
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2022-05-28 09:11:39 +0700
commit5b7a1ef305bc9535ae43087cf33a4690f907c2cf (patch)
treef21ad6424019951fa377b9f8a4dd17f41f5a8ae5 /development/arcan
parent4e32808aa91e2f8a829fc8749315c8bf4ebe0837 (diff)
development/arcan: Added (Display Server, MM Framework, Game Engine)
Signed-off-by: Dave Woodfall <dave@slackbuilds.org> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'development/arcan')
-rw-r--r--development/arcan/README9
-rw-r--r--development/arcan/arcan.SlackBuild117
-rw-r--r--development/arcan/arcan.info10
-rw-r--r--development/arcan/gnu-install-dirs-3.diff324
-rw-r--r--development/arcan/slack-desc19
5 files changed, 479 insertions, 0 deletions
diff --git a/development/arcan/README b/development/arcan/README
new file mode 100644
index 0000000000000..3e4e832b4da31
--- /dev/null
+++ b/development/arcan/README
@@ -0,0 +1,9 @@
+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.
diff --git a/development/arcan/arcan.SlackBuild b/development/arcan/arcan.SlackBuild
new file mode 100644
index 0000000000000..14da55d29751e
--- /dev/null
+++ b/development/arcan/arcan.SlackBuild
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+# Slackware build script for arcan
+
+# Copyright 2022 Damian Perticone, Berisso, Argentina
+# All rights reserved.
+
+
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=arcan
+VERSION=${VERSION:-0.6.1.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+# patch for fix library and man path
+patch -p1 < $CWD/gnu-install-dirs-3.diff
+
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DCMAKE_INSTALL_MANDIR=/usr/man \
+ -DSTATIC_LIBUVC=OFF \
+ -DDISABLE_JIT=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DLUA_INCLUDE_DIR=/usr/include/lua5.1 \
+ -DVIDEO_PLATFORM=egl-dri \
+ -DSHMIF_TUI_ACCEL=ON \
+ -DENABLE_LWA=ON \
+ -DHYBRID_SDL=ON \
+ -DHYBRID_HEADLESS=ON \
+ src
+ make
+ make install/strip DESTDIR=$PKG
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGELOG.md COPYING HACKING.md README.md $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/development/arcan/arcan.info b/development/arcan/arcan.info
new file mode 100644
index 0000000000000..b310d00ebdd6a
--- /dev/null
+++ b/development/arcan/arcan.info
@@ -0,0 +1,10 @@
+PRGNAM="arcan"
+VERSION="0.6.1.1"
+HOMEPAGE="https://arcan-fe.com/"
+DOWNLOAD="https://github.com/letoram/arcan/archive/0.6.1.1/arcan-0.6.1.1.tar.gz"
+MD5SUM="2a6ba86c6902e01fcf6a4b9880a29003"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="lua tesseract"
+MAINTAINER="Damian Perticone"
+EMAIL="mjolnirdam@gmail.com"
diff --git a/development/arcan/gnu-install-dirs-3.diff b/development/arcan/gnu-install-dirs-3.diff
new file mode 100644
index 0000000000000..136a6eaae674d
--- /dev/null
+++ b/development/arcan/gnu-install-dirs-3.diff
@@ -0,0 +1,324 @@
+From 2aba9cf07aaed31f4411a5cbee096a569fd07edc Mon Sep 17 00:00:00 2001
+From: AndersonTorres <torres.anderson.85@protonmail.com>
+Date: Mon, 23 May 2022 22:54:28 -0300
+Subject: [PATCH] Cmake build system: implement GNU directory conventions
+
+With this patch, many hardcoded paths are now substituted by GNU conventions, as
+documented in the references below:
+
+https://cmake.org/cmake/help/v3.23/module/GNUInstallDirs.html
+https://www.gnu.org/prep/standards/html_node/Directory-Variables.html
+---
+ src/CMakeLists.txt | 6 +++---
+ src/a12/CMakeLists.txt | 6 +++---
+ src/a12/net/CMakeLists.txt | 2 +-
+ src/frameserver/CMakeLists.txt | 2 +-
+ src/frameserver/avfeed/CMakeLists.txt | 2 +-
+ src/frameserver/decode/CMakeLists.txt | 2 +-
+ src/frameserver/encode/CMakeLists.txt | 2 +-
+ src/frameserver/game/CMakeLists.txt | 2 +-
+ src/frameserver/net/CMakeLists.txt | 2 +-
+ src/frameserver/remoting/CMakeLists.txt | 2 +-
+ src/frameserver/terminal/CMakeLists.txt | 2 +-
+ src/platform/cmake/CMakeLists.LWA | 2 +-
+ src/platform/cmake/CMakeLists.Linux | 4 ++--
+ src/shmif/CMakeLists.txt | 10 ++++------
+ src/tools/acfgfs/CMakeLists.txt | 4 ++--
+ src/tools/aclip/CMakeLists.txt | 4 ++--
+ src/tools/aloadimage/CMakeLists.txt | 4 ++--
+ src/tools/shmmon/CMakeLists.txt | 2 +-
+ src/tools/vrbridge/CMakeLists.txt | 2 +-
+ src/wayland/CMakeLists.txt | 6 +++---
+ 20 files changed, 33 insertions(+), 35 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 8f1ff2a9..caf2faee 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -747,7 +747,7 @@ else()
+ #
+ if (VIDEO_PLATFORM STREQUAL "egl-dri")
+ amsg("${CL_YEL}egl-dri+privsep${CL_RST}\t${CL_GRN}installing SUID${CL_RST}")
+- install(TARGETS arcan DESTINATION bin
++ install(TARGETS arcan DESTINATION ${CMAKE_INSTALL_BINDIR}
+ PERMISSIONS
+ SETUID
+ OWNER_WRITE OWNER_READ OWNER_EXECUTE
+@@ -755,10 +755,10 @@ else()
+ WORLD_READ WORLD_EXECUTE
+ )
+ else()
+- install(TARGETS arcan DESTINATION bin)
++ install(TARGETS arcan DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+
+- install(TARGETS ${BIN_INSTALL} DESTINATION bin)
++ install(TARGETS ${BIN_INSTALL} DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ install(DIRECTORY ${CMAKE_SOURCE_DIR}/../data/appl
+ DESTINATION ${APPL_DEST}
+diff --git a/src/a12/CMakeLists.txt b/src/a12/CMakeLists.txt
+index 892565c6..2ede2266 100644
+--- a/src/a12/CMakeLists.txt
++++ b/src/a12/CMakeLists.txt
+@@ -97,8 +97,8 @@ target_link_libraries(arcan_a12 ${LIBRARIES})
+
+ set(A12_LIBRARIES arcan_a12 PARENT_SCOPE)
+ install(TARGETS arcan_a12
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+-install(FILES a12.h DESTINATION include/arcan)
++install(FILES a12.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/arcan)
+ add_subdirectory("net")
+diff --git a/src/a12/net/CMakeLists.txt b/src/a12/net/CMakeLists.txt
+index 2ba4ae9c..6f629d94 100644
+--- a/src/a12/net/CMakeLists.txt
++++ b/src/a12/net/CMakeLists.txt
+@@ -23,4 +23,4 @@ add_executable(arcan-net ${SOURCES})
+ add_sanitizers(arcan-net)
+ target_link_libraries(arcan-net PRIVATE arcan_a12 )
+ target_include_directories(arcan-net PRIVATE ${INCLUDE_DIRS})
+-install(TARGETS arcan-net DESTINATION bin)
++install(TARGETS arcan-net DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/src/frameserver/CMakeLists.txt b/src/frameserver/CMakeLists.txt
+index f8d2adee..a46ba3d0 100644
+--- a/src/frameserver/CMakeLists.txt
++++ b/src/frameserver/CMakeLists.txt
+@@ -69,6 +69,6 @@ endforeach()
+ add_executable(arcan_frameserver frameserver.c)
+ add_sanitizers(arcan_frameserver)
+ target_compile_definitions(arcan_frameserver PRIVATE AFSRV_CHAINLOADER)
+-install(TARGETS arcan_frameserver DESTINATION bin)
++install(TARGETS arcan_frameserver DESTINATION ${CMAKE_INSTALL_BINDIR})
+ amsg("${CL_YEL}frameservers\t${CL_GRN}${FRAMESERVER_MODESTRING}${CL_RST}")
+ set(FRAMESERVER_MODESTRING ${FRAMESERVER_MODESTRING} PARENT_SCOPE)
+diff --git a/src/frameserver/avfeed/CMakeLists.txt b/src/frameserver/avfeed/CMakeLists.txt
+index 7290336d..3daf0de3 100644
+--- a/src/frameserver/avfeed/CMakeLists.txt
++++ b/src/frameserver/avfeed/CMakeLists.txt
+@@ -18,5 +18,5 @@ if (AVFEED_SOURCES)
+ )
+ target_include_directories(afsrv_avfeed PRIVATE ${FSRV_ROOT} ${AVFEED_INCLUDE_DIRS})
+ target_link_libraries(afsrv_avfeed ${STDLIB} arcan_shmif_int ${AVFEED_LIBS})
+- install(TARGETS afsrv_avfeed DESTINATION bin)
++ install(TARGETS afsrv_avfeed DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+diff --git a/src/frameserver/decode/CMakeLists.txt b/src/frameserver/decode/CMakeLists.txt
+index 85f0d27a..6b515ab6 100644
+--- a/src/frameserver/decode/CMakeLists.txt
++++ b/src/frameserver/decode/CMakeLists.txt
+@@ -22,5 +22,5 @@ if (DECODE_SOURCES)
+ add_dependencies(afsrv_decode ${DECODE_DEPS})
+ endif()
+
+- install(TARGETS afsrv_decode DESTINATION bin)
++ install(TARGETS afsrv_decode DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+diff --git a/src/frameserver/encode/CMakeLists.txt b/src/frameserver/encode/CMakeLists.txt
+index 87ca659e..c2cb9c46 100644
+--- a/src/frameserver/encode/CMakeLists.txt
++++ b/src/frameserver/encode/CMakeLists.txt
+@@ -18,5 +18,5 @@ if (ENCODE_SOURCES)
+ )
+ target_include_directories(afsrv_encode PRIVATE ${FSRV_ROOT} ${ENCODE_INCLUDE_DIRS})
+ target_link_libraries(afsrv_encode ${STDLIB} arcan_shmif_int ${ENCODE_LIBS})
+- install(TARGETS afsrv_encode DESTINATION bin)
++ install(TARGETS afsrv_encode DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+diff --git a/src/frameserver/game/CMakeLists.txt b/src/frameserver/game/CMakeLists.txt
+index 88d4e5d4..a10890fc 100644
+--- a/src/frameserver/game/CMakeLists.txt
++++ b/src/frameserver/game/CMakeLists.txt
+@@ -28,5 +28,5 @@ if (GAME_SOURCES)
+ arcan_shmif_int
+ ${GAME_LIBS}
+ )
+- install(TARGETS afsrv_game DESTINATION bin)
++ install(TARGETS afsrv_game DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+diff --git a/src/frameserver/net/CMakeLists.txt b/src/frameserver/net/CMakeLists.txt
+index 93762287..ebeb0eb2 100644
+--- a/src/frameserver/net/CMakeLists.txt
++++ b/src/frameserver/net/CMakeLists.txt
+@@ -18,5 +18,5 @@ if (NET_SOURCES)
+ )
+ target_include_directories(afsrv_net PRIVATE ${FSRV_ROOT} ${NET_INCLUDE_DIRS})
+ target_link_libraries(afsrv_net ${STDLIB} arcan_shmif_int ${NET_LIBS})
+- install(TARGETS afsrv_net DESTINATION bin)
++ install(TARGETS afsrv_net DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+diff --git a/src/frameserver/remoting/CMakeLists.txt b/src/frameserver/remoting/CMakeLists.txt
+index ad5c0c8c..3e599d66 100644
+--- a/src/frameserver/remoting/CMakeLists.txt
++++ b/src/frameserver/remoting/CMakeLists.txt
+@@ -22,5 +22,5 @@ if (REMOTING_SOURCES)
+ ${REMOTING_INCLUDE_DIRS}
+ )
+ target_link_libraries(afsrv_remoting ${STDLIB} arcan_shmif_int ${REMOTING_LIBS})
+- install(TARGETS afsrv_remoting DESTINATION bin)
++ install(TARGETS afsrv_remoting DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+diff --git a/src/frameserver/terminal/CMakeLists.txt b/src/frameserver/terminal/CMakeLists.txt
+index 3b5ef4a1..e979bb9c 100644
+--- a/src/frameserver/terminal/CMakeLists.txt
++++ b/src/frameserver/terminal/CMakeLists.txt
+@@ -24,5 +24,5 @@ if (TERMINAL_SOURCES)
+ add_dependencies(afsrv_terminal ${TERMINAL_DEPENDENCIES})
+ endif()
+
+- install(TARGETS afsrv_terminal DESTINATION bin)
++ install(TARGETS afsrv_terminal DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+diff --git a/src/platform/cmake/CMakeLists.LWA b/src/platform/cmake/CMakeLists.LWA
+index 76711fc5..e3057ddc 100644
+--- a/src/platform/cmake/CMakeLists.LWA
++++ b/src/platform/cmake/CMakeLists.LWA
+@@ -111,4 +111,4 @@ target_compile_definitions(arcan_lwa PRIVATE
+ ARCAN_BUILDVERSION=\"${SOURCE_TAG}-${PLATFORM_BUILDTAG}-${CMAKE_SYSTEM_NAME}\"
+ )
+
+-install(TARGETS arcan_lwa DESTINATION bin)
++install(TARGETS arcan_lwa DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/src/platform/cmake/CMakeLists.Linux b/src/platform/cmake/CMakeLists.Linux
+index 9c8e6529..9be1e239 100644
+--- a/src/platform/cmake/CMakeLists.Linux
++++ b/src/platform/cmake/CMakeLists.Linux
+@@ -41,11 +41,11 @@ if (NOT RES_DEST)
+ endif()
+
+ if (NOT APIMAN_DEST)
+- set(APIMAN_DEST ${CMAKE_INSTALL_PREFIX}/share/man/man3)
++ set(APIMAN_DEST ${CMAKE_INSTALL_MANDIR}/man3)
+ endif()
+
+ if (NOT MAN_DEST)
+- set(MAN_DEST ${CMAKE_INSTALL_PREFIX}/share/man/man1)
++ set(MAN_DEST ${CMAKE_INSTALL_MANDIR}/man1)
+ endif()
+
+ set(ARCAN_PLATFORM
+diff --git a/src/shmif/CMakeLists.txt b/src/shmif/CMakeLists.txt
+index 06d34a21..e2cd95bb 100644
+--- a/src/shmif/CMakeLists.txt
++++ b/src/shmif/CMakeLists.txt
+@@ -31,8 +31,6 @@ else()
+ set(ASD ${CMAKE_CURRENT_SOURCE_DIR}/../)
+ endif()
+
+-set(ASHMIF_INSTPATH lib)
+-
+ set (TUI_HEADERS
+ ${ASD}/shmif/arcan_tui.h
+ ${ASD}/shmif/arcan_tuidefs.h
+@@ -273,9 +271,9 @@ target_include_directories(arcan_shmif_server PRIVATE ${ASD}/shmif)
+
+ if (NOT ARCAN_SOURCE_DIR)
+ install(TARGETS ${TARGET_LIST}
+- LIBRARY DESTINATION ${ASHMIF_INSTPATH}
+- ARCHIVE DESTINATION ${ASHMIF_INSTPATH}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+- install(FILES ${SHMIF_HEADERS} DESTINATION include/arcan/shmif)
+- install(FILES ${TUI_HEADERS} DESTINATION include/arcan)
++ install(FILES ${SHMIF_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/arcan/shmif)
++ install(FILES ${TUI_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/arcan)
+ endif()
+diff --git a/src/tools/acfgfs/CMakeLists.txt b/src/tools/acfgfs/CMakeLists.txt
+index 8a42f53c..8ca13dfd 100644
+--- a/src/tools/acfgfs/CMakeLists.txt
++++ b/src/tools/acfgfs/CMakeLists.txt
+@@ -38,11 +38,11 @@ set(SOURCES
+
+ add_executable(${PROJECT_NAME} ${SOURCES})
+ target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
+-install(TARGETS ${PROJECT_NAME} DESTINATION bin)
++install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ target_include_directories(${PROJECT_NAME} PUBLIC ${ARCAN_SHMIF_INCLUDE_DIR} ${FUSE3_INCLUDE_DIRS})
+
+ if (CMAKE_SYSTEM_NAME MATCHES "(DragonFly|FreeBSD|NetBSD|OpenBSD)")
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/arcan_cfgfs.1 DESTINATION man/man1)
+ else()
+-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/arcan_cfgfs.1 DESTINATION share/man/man1)
++install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/arcan_cfgfs.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+ endif()
+diff --git a/src/tools/aclip/CMakeLists.txt b/src/tools/aclip/CMakeLists.txt
+index 7ef47c58..436548bb 100644
+--- a/src/tools/aclip/CMakeLists.txt
++++ b/src/tools/aclip/CMakeLists.txt
+@@ -42,10 +42,10 @@ set(SOURCES
+
+ add_executable(${PROJECT_NAME} ${SOURCES})
+ target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
+-install(TARGETS ${PROJECT_NAME} DESTINATION bin)
++install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ if (CMAKE_SYSTEM_NAME MATCHES "(DragonFly|FreeBSD|NetBSD|OpenBSD)")
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/aclip.1 DESTINATION man/man1)
+ else()
+-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/aclip.1 DESTINATION share/man/man1)
++install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/aclip.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+ endif()
+diff --git a/src/tools/aloadimage/CMakeLists.txt b/src/tools/aloadimage/CMakeLists.txt
+index 0d948b6c..326c3fc8 100644
+--- a/src/tools/aloadimage/CMakeLists.txt
++++ b/src/tools/aloadimage/CMakeLists.txt
+@@ -64,11 +64,11 @@ SET(SOURCES
+
+ add_executable(${PROJECT_NAME} ${SOURCES})
+ target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
+-install(TARGETS ${PROJECT_NAME} DESTINATION bin)
++install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ add_sanitizers(${PROJECT_NAME})
+
+ if (CMAKE_SYSTEM_NAME MATCHES "(DragonFly|FreeBSD|NetBSD|OpenBSD)")
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/aloadimage.1 DESTINATION man/man1)
+ else()
+-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/aloadimage.1 DESTINATION share/man/man1)
++install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/aloadimage.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+ endif()
+diff --git a/src/tools/shmmon/CMakeLists.txt b/src/tools/shmmon/CMakeLists.txt
+index 736a0fa4..46758db9 100644
+--- a/src/tools/shmmon/CMakeLists.txt
++++ b/src/tools/shmmon/CMakeLists.txt
+@@ -44,4 +44,4 @@ set(SOURCES
+
+ add_executable(${PROJECT_NAME} ${SOURCES})
+ target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
+-install(TARGETS ${PROJECT_NAME} DESTINATION bin)
++install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/src/tools/vrbridge/CMakeLists.txt b/src/tools/vrbridge/CMakeLists.txt
+index 28488290..fc8eb0f8 100644
+--- a/src/tools/vrbridge/CMakeLists.txt
++++ b/src/tools/vrbridge/CMakeLists.txt
+@@ -111,4 +111,4 @@ endif()
+
+ target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
+
+-install(TARGETS ${PROJECT_NAME} DESTINATION bin)
++install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/src/wayland/CMakeLists.txt b/src/wayland/CMakeLists.txt
+index 1d6b8cc3..4cd44922 100644
+--- a/src/wayland/CMakeLists.txt
++++ b/src/wayland/CMakeLists.txt
+@@ -96,11 +96,11 @@ target_include_directories(arcan-wayland PRIVATE ${WAYBRIDGE_INCLUDES})
+ target_include_directories(arcan_xwm PRIVATE ${WAYBRIDGE_INCLUDES})
+
+ add_sanitizers(arcan-wayland)
+-install(TARGETS arcan-wayland DESTINATION bin)
+-install(TARGETS arcan_xwm DESTINATION bin)
++install(TARGETS arcan-wayland DESTINATION ${CMAKE_INSTALL_BINDIR})
++install(TARGETS arcan_xwm DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ if (CMAKE_SYSTEM_NAME MATCHES "(DragonFly|FreeBSD|NetBSD|OpenBSD)")
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/arcan-wayland.1 DESTINATION man/man1)
+ else()
+-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/arcan-wayland.1 DESTINATION share/man/man1)
++install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/arcan-wayland.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+ endif()#install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/arcan-wayland.1 DESTINATION man)
+--
+2.35.3
+
diff --git a/development/arcan/slack-desc b/development/arcan/slack-desc
new file mode 100644
index 0000000000000..0508f8ccb28bf
--- /dev/null
+++ b/development/arcan/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+arcan: arcan (Display Server, Multimedia Framework, Game Engine)
+arcan:
+arcan: Arcan is a powerful development framework for creating virtually
+arcan: anything from user interfaces for specialized embedded applications
+arcan: all the way to full-blown standalone desktop environments.
+arcan:
+arcan:
+arcan:
+arcan:
+arcan: Home: https://arcan-fe.com
+arcan: