mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-27 01:13:05 +00:00
arcan.arcan: init at 0.6.1pre1+unstable=2021-07-07
This commit is contained in:
parent
c23b5bd412
commit
09eacdb0df
157
pkgs/desktops/arcan/arcan.nix
Normal file
157
pkgs/desktops/arcan/arcan.nix
Normal file
@ -0,0 +1,157 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, SDL2
|
||||
, cmake
|
||||
, espeak
|
||||
, ffmpeg
|
||||
, file
|
||||
, freetype
|
||||
, harfbuzz
|
||||
, leptonica
|
||||
, libGL
|
||||
, libX11
|
||||
, libXau
|
||||
, libXcomposite
|
||||
, libXdmcp
|
||||
, libXfixes
|
||||
, libdrm
|
||||
, libffi
|
||||
, libusb1
|
||||
, libuvc
|
||||
, libvlc
|
||||
, libvncserver
|
||||
, libxcb
|
||||
, libxkbcommon
|
||||
, luajit
|
||||
, makeWrapper
|
||||
, mesa
|
||||
, openal
|
||||
, pkg-config
|
||||
, sqlite
|
||||
, tesseract
|
||||
, valgrind
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, xcbutil
|
||||
, xcbutilwm
|
||||
, xz
|
||||
, buildManPages ? true, ruby
|
||||
}:
|
||||
|
||||
let
|
||||
# TODO: investigate vendoring, especially OpenAL
|
||||
# WARN: vendoring of OpenAL is required for running arcan_lwa
|
||||
# INFO: maybe it needs leaveDotGit, but it is dangerous/impure
|
||||
letoram-openal-src = fetchFromGitHub {
|
||||
owner = "letoram";
|
||||
repo = "openal";
|
||||
rev = "1c7302c580964fee9ee9e1d89ff56d24f934bdef";
|
||||
hash = "sha256-InqU59J0zvwJ20a7KU54xTM7d76VoOlFbtj7KbFlnTU=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "arcan";
|
||||
version = "0.6.1pre1+unstable=2021-07-07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "letoram";
|
||||
repo = "arcan";
|
||||
rev = "f3341ab94b32d02f3d15c3b91a512b2614e950a5";
|
||||
hash = "sha256-YBtRA5uCk4tjX3Bsu5vMkaNaCLRlM6HVQ53sna3gDsY=";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
(
|
||||
cd $sourceRoot/external/git/
|
||||
cp -a ${letoram-openal-src}/ openal/
|
||||
chmod --recursive 744 openal/
|
||||
)
|
||||
'';
|
||||
|
||||
# TODO: work with upstream in order to get rid of these hardcoded paths
|
||||
postPatch = ''
|
||||
substituteInPlace ./src/platform/posix/paths.c \
|
||||
--replace "/usr/bin" "$out/bin" \
|
||||
--replace "/usr/share" "$out/share"
|
||||
|
||||
substituteInPlace ./src/CMakeLists.txt --replace "SETUID" "# SETUID"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
makeWrapper
|
||||
pkg-config
|
||||
] ++ lib.optionals buildManPages [
|
||||
ruby
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
SDL2
|
||||
espeak
|
||||
ffmpeg
|
||||
file
|
||||
freetype
|
||||
harfbuzz
|
||||
leptonica
|
||||
libGL
|
||||
libX11
|
||||
libXau
|
||||
libXcomposite
|
||||
libXdmcp
|
||||
libXfixes
|
||||
libdrm
|
||||
libffi
|
||||
libusb1
|
||||
libuvc
|
||||
libvlc
|
||||
libvncserver
|
||||
libxcb
|
||||
libxkbcommon
|
||||
luajit
|
||||
mesa
|
||||
openal
|
||||
sqlite
|
||||
tesseract
|
||||
valgrind
|
||||
wayland
|
||||
wayland-protocols
|
||||
xcbutil
|
||||
xcbutilwm
|
||||
xz
|
||||
];
|
||||
|
||||
# INFO: According to the source code, the manpages need to be generated before
|
||||
# the configure phase
|
||||
preConfigure = lib.optionalString buildManPages ''
|
||||
(cd doc; ruby docgen.rb mangen)
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_PRESET=everything"
|
||||
# The upstream project recommends tagging the distribution
|
||||
"-DDISTR_TAG=Nixpkgs"
|
||||
"-DENGINE_BUILDTAG=${version}"
|
||||
"-DHYBRID_SDL=on"
|
||||
"-DSTATIC_OPENAL=off"
|
||||
"../src"
|
||||
];
|
||||
|
||||
hardeningDisable = [
|
||||
"format"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://arcan-fe.com/";
|
||||
description = "Combined Display Server, Multimedia Framework, Game Engine";
|
||||
longDescription = ''
|
||||
Arcan is a portable and fast self-sufficient multimedia engine for
|
||||
advanced visualization and analysis work in a wide range of applications
|
||||
e.g. game development, real-time streaming video, monitoring and
|
||||
surveillance, up to and including desktop compositors and window managers.
|
||||
'';
|
||||
license = with licenses; [ bsd3 gpl2Plus lgpl2Plus ];
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
@ -1,4 +1,13 @@
|
||||
{ callPackage, lib, pkgs }:
|
||||
|
||||
rec {
|
||||
# Dependencies
|
||||
|
||||
espeak = pkgs.espeak-ng;
|
||||
ffmpeg = pkgs.ffmpeg-full;
|
||||
harfbuzz = pkgs.harfbuzzFull;
|
||||
|
||||
# Arcan
|
||||
|
||||
arcan = callPackage ./arcan.nix { };
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user