mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 00:43:20 +00:00
8f55b011e0
* guix: add meta.changelog * zile: add meta.changelog * zoom: add meta.changelog * zotify: add meta.changelog * zpaqfranz: add meta.changelog * zunit: add meta.changelog * zxwing-cpp: add meta.changelog * zxpy: add meta.changelog * zydis: add meta.changelog * zziplib: add meta.changelog * j: add meta.changelog * kyua: add meta.changelog * json2ts: add meta.changelog * igir: add meta.changelog * ios-webkit-debug-proxy: add meta.changelog * gpaste: add meta.changelog * polkit_gnome: add meta.changelog * papers: add meta.changelog * libmsgraph: add meta.changelog * quadrapassel: add meta.changelog * gnome-nibbles: add meta.changelog * decibels: add meta.changelog * libgedit-amtk: add meta.changelog * simple-scan: add meta.changelog * gnome-klotski: add meta.changelog * gnome-sound-recorder: add meta.changelog * gnome-remote-desktop: add meta.changelog * gnome-robots: add meta.changelog * gnome-shell-extensions: add meta.changelog * gnome-panel: add meta.changelog * gnome-session: add meta.changelog * gnome-keyring: add meta.changelog * devhelp: add meta.changelog * libgnome-keyring: add meta.changelog * ghex: add meta.changelog * gnome-connections: add meta.changelog * lightsoff: add meta.changelog * gnome-flashback: add meta.changelog * livi: add meta.changelog * mutter: add meta.changelog * hitori: add meta.changelog * gnome-initial-setup: add meta.changelog * gnome-bluetooth: add meta.changelog * gnome-shell: add meta.changelog * gnome-sudoku: add meta.changelog * ideamaker: add meta.changelog * i2p: add meta.changelog * lms: add meta.changelog * adwaita-icon-theme: add meta.changelog * gnome-applets: add meta.changelog * flac123: add meta.changelog * flaca: add meta.changelog * flameshot: add meta.changelog * flaresolverr: add meta.changelog * a52dec: add meta.changelog * hexbinhex: add meta.changelog * dwl: add meta.changelog * msolve: add meta.changelog * jcli: add meta.changelog * nmap: add meta.changelog * nmapsi4: add meta.changelog * labctl: add meta.changelog * _1oom: add meta.changelog * libipuz: add meta.changelog * metacity: add meta.changelog * sushi: add meta.changelog * rygel: add meta.changelog * zenity: add meta.changelog * crosswords: add meta.changelog * gnome-mahjongg: add meta.changelog * alacarte: add meta.changelog * loupe: add meta.changelog * cheese: add meta.changelog * atomix: add meta.changelog * swell-foop: add meta.changelog * alfis: add meta.changelog * aperture: add meta.changelog * atomic-swap: add meta.changelog * besu: add meta.changelog * bisq: add meta.changelog * bitcoin-abc: add meta.changelog * bitcoin-knots: add meta.changelog * bitcd: add meta.changelog * btcdeb: add meta.changelog * btcpayserver: add meta.changelog * 86box: add meta.changelog * darling: add meta.changelog * dosbox: add meta.changelog * firebird-emu: add meta.changelog * maiko: add meta.changelog * accerciser: add meta.changelog * adwaita-icon-theme-legacy: add meta.changelog * dconf-editor: add meta.changelog * eog: add meta.changelog * evolution-data-server: add meta.changelog * file-roller: add meta.changelog * four-in-a-row: add meta.changelog * gdm: add meta.changelog * geary: add meta.changelog * gitg: add meta.changelog * gnome2048: add meta.changelog * gnome-backgrounds: add meta.changelog * gnome-text-editor: add meta.changelog * gnome-tour: add meta.changelog * gnome-user-share: add meta.changelog * gxml: add meta.changelog * tali: add meta.changelog * totem: add meta.changelog * mobile-broadband-provider-info: add meta.changelog * avr: add meta.changelog * brev-cli: add meta.changelog * juce: add meta.changelog * loc: add meta.changelog * resholve: add meta.changelog * rpiboot: add meta.changelog * gerbera: add meta.changelog * kdocker: add meta.changelog * pmenu: add meta.changelog * advancecomp: add meta.changelog * adriconf: add meta.changelog * interception-tools: add meta.changelog * nabi: add meta.changelog * gorilla-cli: add meta.changelog * heygpt: add meta.changelog * 6tunnel: add meta.changelog * aria2: add meta.changelog * logmein-hamachi: add meta.changelog * maphosts: add meta.changelog * qcal: add meta.changelog * adreaper: add meta.changelog * aflplusplus: add meta.changelog * aide: add meta.changelog * cameradar: add meta.changelog * wpscan: add meta.changelog * aha: add meta.changelog * xcat: add meta.changelog
153 lines
3.6 KiB
Nix
153 lines
3.6 KiB
Nix
{
|
|
stdenv,
|
|
darwin,
|
|
lib,
|
|
fetchFromGitHub,
|
|
cmake,
|
|
extra-cmake-modules,
|
|
pkg-config,
|
|
makeWrapper,
|
|
freetype,
|
|
SDL2,
|
|
glib,
|
|
pcre2,
|
|
openal,
|
|
rtmidi,
|
|
fluidsynth,
|
|
jack2,
|
|
alsa-lib,
|
|
qt5,
|
|
libvncserver,
|
|
discord-gamesdk,
|
|
libpcap,
|
|
libslirp,
|
|
wayland,
|
|
wayland-scanner,
|
|
libsndfile,
|
|
flac,
|
|
libogg,
|
|
libvorbis,
|
|
libopus,
|
|
libmpg123,
|
|
|
|
enableDynarec ? with stdenv.hostPlatform; isx86 || isAarch,
|
|
enableNewDynarec ? enableDynarec && stdenv.hostPlatform.isAarch,
|
|
enableVncRenderer ? false,
|
|
enableWayland ? stdenv.hostPlatform.isLinux,
|
|
unfreeEnableDiscord ? false,
|
|
unfreeEnableRoms ? false,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "86Box";
|
|
version = "4.2.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "86Box";
|
|
repo = "86Box";
|
|
rev = "v${finalAttrs.version}";
|
|
hash = "sha256-ue5Coy2MpP7Iwl81KJPQPC7eD53/Db5a0PGIR+DdPYI=";
|
|
};
|
|
|
|
patches = [ ./darwin.patch ];
|
|
|
|
postPatch = ''
|
|
substituteAllInPlace src/qt/qt_platform.cpp
|
|
'';
|
|
|
|
nativeBuildInputs =
|
|
[
|
|
cmake
|
|
pkg-config
|
|
makeWrapper
|
|
qt5.wrapQtAppsHook
|
|
]
|
|
++ lib.optionals enableWayland [
|
|
extra-cmake-modules
|
|
wayland-scanner
|
|
];
|
|
|
|
buildInputs =
|
|
[
|
|
freetype
|
|
fluidsynth
|
|
SDL2
|
|
glib
|
|
openal
|
|
rtmidi
|
|
pcre2
|
|
jack2
|
|
libpcap
|
|
libslirp
|
|
qt5.qtbase
|
|
qt5.qttools
|
|
libsndfile
|
|
flac.dev
|
|
libogg.dev
|
|
libvorbis.dev
|
|
libopus.dev
|
|
libmpg123.dev
|
|
]
|
|
++ lib.optional stdenv.hostPlatform.isLinux alsa-lib
|
|
++ lib.optional enableWayland wayland
|
|
++ lib.optional enableVncRenderer libvncserver
|
|
++ lib.optional stdenv.hostPlatform.isDarwin darwin.apple_sdk_11_0.libs.xpc;
|
|
|
|
cmakeFlags =
|
|
lib.optional stdenv.hostPlatform.isDarwin "-DCMAKE_MACOSX_BUNDLE=OFF"
|
|
++ lib.optional enableNewDynarec "-DNEW_DYNAREC=ON"
|
|
++ lib.optional enableVncRenderer "-DVNC=ON"
|
|
++ lib.optional (!enableDynarec) "-DDYNAREC=OFF"
|
|
++ lib.optional (!unfreeEnableDiscord) "-DDISCORD=OFF";
|
|
|
|
postInstall =
|
|
lib.optionalString stdenv.hostPlatform.isLinux ''
|
|
install -Dm644 -t $out/share/applications $src/src/unix/assets/net.86box.86Box.desktop
|
|
|
|
for size in 48 64 72 96 128 192 256 512; do
|
|
install -Dm644 -t $out/share/icons/hicolor/"$size"x"$size"/apps \
|
|
$src/src/unix/assets/"$size"x"$size"/net.86box.86Box.png
|
|
done;
|
|
''
|
|
+ lib.optionalString unfreeEnableRoms ''
|
|
mkdir -p $out/share/86Box
|
|
ln -s ${finalAttrs.passthru.roms} $out/share/86Box/roms
|
|
'';
|
|
|
|
passthru = {
|
|
roms = fetchFromGitHub {
|
|
owner = "86Box";
|
|
repo = "roms";
|
|
rev = "v${finalAttrs.version}";
|
|
hash = "sha256-p3djn950mTUIchFCEg56JbJtIsUuxmqRdYFRl50kI5Y=";
|
|
};
|
|
updateScript = ./update.sh;
|
|
};
|
|
|
|
# Some libraries are loaded dynamically, but QLibrary doesn't seem to search
|
|
# the runpath, so use a wrapper instead.
|
|
preFixup =
|
|
let
|
|
libPath = lib.makeLibraryPath ([ libpcap ] ++ lib.optional unfreeEnableDiscord discord-gamesdk);
|
|
libPathVar = if stdenv.hostPlatform.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
|
|
in
|
|
''
|
|
makeWrapperArgs+=(--prefix ${libPathVar} : "${libPath}")
|
|
'';
|
|
|
|
meta = {
|
|
description = "Emulator of x86-based machines based on PCem";
|
|
mainProgram = "86Box";
|
|
homepage = "https://86box.net/";
|
|
changelog = "https://github.com/86Box/86Box/releases/tag/v${finalAttrs.version}";
|
|
license =
|
|
with lib.licenses;
|
|
[ gpl2Only ] ++ lib.optional (unfreeEnableDiscord || unfreeEnableRoms) unfree;
|
|
maintainers = with lib.maintainers; [
|
|
jchw
|
|
matteopacini
|
|
];
|
|
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
|
};
|
|
})
|