applied nixfmt (new version)
This commit is contained in:
@@ -1,15 +1,20 @@
|
||||
{ branch, qt6Packages, fetchFromGitHub, fetchurl }:
|
||||
{
|
||||
branch,
|
||||
qt6Packages,
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
}:
|
||||
|
||||
let
|
||||
# Fetched from https://api.citra-emu.org/gamedb
|
||||
# Please make sure to update this when updating citra!
|
||||
compat-list = fetchurl {
|
||||
name = "citra-compat-list";
|
||||
url =
|
||||
"https://web.archive.org/web/20230807103651/https://api.citra-emu.org/gamedb/";
|
||||
url = "https://web.archive.org/web/20230807103651/https://api.citra-emu.org/gamedb/";
|
||||
hash = "sha256-J+zqtWde5NgK2QROvGewtXGRAWUTNSKHNMG6iu9m1fU=";
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
nightly = qt6Packages.callPackage ./generic.nix rec {
|
||||
pname = "citra-nightly";
|
||||
version = "2104";
|
||||
@@ -24,4 +29,5 @@ in {
|
||||
|
||||
inherit branch compat-list;
|
||||
};
|
||||
}.${branch}
|
||||
}
|
||||
.${branch}
|
||||
|
||||
@@ -1,40 +1,83 @@
|
||||
{ pname, version, src, branch, compat-list, lib, stdenv, cmake, boost
|
||||
, pkg-config, libusb1, glslang, zstd, libressl, enableSdl2 ? true, SDL2
|
||||
, enableQt ? true, qtbase, qtmultimedia, wrapQtAppsHook
|
||||
, enableQtTranslation ? enableQt, qttools, enableWebService ? true
|
||||
, enableCubeb ? true, cubeb, enableFfmpegAudioDecoder ? true
|
||||
, enableFfmpegVideoDumper ? true, ffmpeg_4, useDiscordRichPresence ? true
|
||||
, rapidjson, enableFdk ? false, fdk_aac, python3 }:
|
||||
assert lib.assertMsg (!enableFfmpegAudioDecoder || !enableFdk)
|
||||
"Can't enable both enableFfmpegAudioDecoder and enableFdk";
|
||||
{
|
||||
pname,
|
||||
version,
|
||||
src,
|
||||
branch,
|
||||
compat-list,
|
||||
lib,
|
||||
stdenv,
|
||||
cmake,
|
||||
boost,
|
||||
pkg-config,
|
||||
libusb1,
|
||||
glslang,
|
||||
zstd,
|
||||
libressl,
|
||||
enableSdl2 ? true,
|
||||
SDL2,
|
||||
enableQt ? true,
|
||||
qtbase,
|
||||
qtmultimedia,
|
||||
wrapQtAppsHook,
|
||||
enableQtTranslation ? enableQt,
|
||||
qttools,
|
||||
enableWebService ? true,
|
||||
enableCubeb ? true,
|
||||
cubeb,
|
||||
enableFfmpegAudioDecoder ? true,
|
||||
enableFfmpegVideoDumper ? true,
|
||||
ffmpeg_4,
|
||||
useDiscordRichPresence ? true,
|
||||
rapidjson,
|
||||
enableFdk ? false,
|
||||
fdk_aac,
|
||||
python3,
|
||||
}:
|
||||
assert lib.assertMsg (
|
||||
!enableFfmpegAudioDecoder || !enableFdk
|
||||
) "Can't enable both enableFfmpegAudioDecoder and enableFdk";
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit pname version src;
|
||||
|
||||
nativeBuildInputs = [ cmake glslang pkg-config python3 ]
|
||||
++ lib.optionals enableQt [ wrapQtAppsHook ];
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
glslang
|
||||
pkg-config
|
||||
python3
|
||||
] ++ lib.optionals enableQt [ wrapQtAppsHook ];
|
||||
|
||||
buildInputs = [ boost libusb1 ]
|
||||
++ lib.optionals enableQt [ qtbase qtmultimedia ]
|
||||
++ lib.optional enableSdl2 SDL2 ++ lib.optional enableQtTranslation qttools
|
||||
buildInputs =
|
||||
[
|
||||
boost
|
||||
libusb1
|
||||
]
|
||||
++ lib.optionals enableQt [
|
||||
qtbase
|
||||
qtmultimedia
|
||||
]
|
||||
++ lib.optional enableSdl2 SDL2
|
||||
++ lib.optional enableQtTranslation qttools
|
||||
++ lib.optionals enableCubeb cubeb.passthru.backendLibs
|
||||
++ lib.optional (enableFfmpegAudioDecoder || enableFfmpegVideoDumper)
|
||||
ffmpeg_4 ++ lib.optional useDiscordRichPresence rapidjson
|
||||
++ lib.optional (enableFfmpegAudioDecoder || enableFfmpegVideoDumper) ffmpeg_4
|
||||
++ lib.optional useDiscordRichPresence rapidjson
|
||||
++ lib.optional enableFdk fdk_aac;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DUSE_SYSTEM_BOOST=ON"
|
||||
"-DCITRA_WARNINGS_AS_ERRORS=OFF"
|
||||
"-DCITRA_USE_BUNDLED_FFMPEG=OFF"
|
||||
"-DCITRA_USE_BUNDLED_QT=OFF"
|
||||
"-DUSE_SYSTEM_SDL2=ON"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
cmakeFlags =
|
||||
[
|
||||
"-DUSE_SYSTEM_BOOST=ON"
|
||||
"-DCITRA_WARNINGS_AS_ERRORS=OFF"
|
||||
"-DCITRA_USE_BUNDLED_FFMPEG=OFF"
|
||||
"-DCITRA_USE_BUNDLED_QT=OFF"
|
||||
"-DUSE_SYSTEM_SDL2=ON"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
|
||||
# We dont want to bother upstream with potentially outdated compat reports
|
||||
"-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON"
|
||||
"-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically
|
||||
] ++ lib.optional (!enableSdl2) "-DENABLE_SDL2=OFF"
|
||||
# We dont want to bother upstream with potentially outdated compat reports
|
||||
"-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON"
|
||||
"-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically
|
||||
]
|
||||
++ lib.optional (!enableSdl2) "-DENABLE_SDL2=OFF"
|
||||
++ lib.optional (!enableQt) "-DENABLE_QT=OFF"
|
||||
++ lib.optional enableQtTranslation "-DENABLE_QT_TRANSLATION=ON"
|
||||
++ lib.optional (!enableWebService) "-DENABLE_WEB_SERVICE=OFF"
|
||||
@@ -44,44 +87,42 @@ stdenv.mkDerivation rec {
|
||||
++ lib.optional useDiscordRichPresence "-DUSE_DISCORD_PRESENCE=ON"
|
||||
++ lib.optional enableFdk "-DENABLE_FDK=ON";
|
||||
|
||||
postPatch = let
|
||||
branchCaptialized = lib.toUpper (lib.substring 0 1 branch)
|
||||
+ lib.substring 1 (-1) branch;
|
||||
in ''
|
||||
# Fix file not found when looking in var/empty instead of opt
|
||||
mkdir externals/dynarmic/src/dynarmic/ir/var
|
||||
ln -s ../opt externals/dynarmic/src/dynarmic/ir/var/empty
|
||||
postPatch =
|
||||
let
|
||||
branchCaptialized = lib.toUpper (lib.substring 0 1 branch) + lib.substring 1 (-1) branch;
|
||||
in
|
||||
''
|
||||
# Fix file not found when looking in var/empty instead of opt
|
||||
mkdir externals/dynarmic/src/dynarmic/ir/var
|
||||
ln -s ../opt externals/dynarmic/src/dynarmic/ir/var/empty
|
||||
|
||||
# Prep compatibilitylist
|
||||
ln -s ${compat-list} ./dist/compatibility_list/compatibility_list.json
|
||||
# Prep compatibilitylist
|
||||
ln -s ${compat-list} ./dist/compatibility_list/compatibility_list.json
|
||||
|
||||
# We already know the submodules are present
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "check_submodules_present()" ""
|
||||
# We already know the submodules are present
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "check_submodules_present()" ""
|
||||
|
||||
# Add versions
|
||||
echo 'set(BUILD_FULLNAME "${branchCaptialized} ${version}")' >> CMakeModules/GenerateBuildInfo.cmake
|
||||
# Add versions
|
||||
echo 'set(BUILD_FULLNAME "${branchCaptialized} ${version}")' >> CMakeModules/GenerateBuildInfo.cmake
|
||||
|
||||
# Devendoring
|
||||
rm -rf externals/zstd externals/libressl
|
||||
cp -r ${zstd.src} externals/zstd
|
||||
tar xf ${libressl.src} -C externals/
|
||||
mv externals/${libressl.name} externals/libressl
|
||||
chmod -R a+w externals/zstd
|
||||
'';
|
||||
# Devendoring
|
||||
rm -rf externals/zstd externals/libressl
|
||||
cp -r ${zstd.src} externals/zstd
|
||||
tar xf ${libressl.src} -C externals/
|
||||
mv externals/${libressl.name} externals/libressl
|
||||
chmod -R a+w externals/zstd
|
||||
'';
|
||||
|
||||
# Fixes https://github.com/NixOS/nixpkgs/issues/171173
|
||||
postInstall = lib.optionalString (enableCubeb && enableSdl2) ''
|
||||
wrapProgram "$out/bin/citra" \
|
||||
--prefix LD_LIBRARY_PATH : ${
|
||||
lib.makeLibraryPath cubeb.passthru.backendLibs
|
||||
}
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath cubeb.passthru.backendLibs}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://citra-emu.org";
|
||||
description =
|
||||
"The ${branch} branch of an open-source emulator for the Ninteno 3DS";
|
||||
description = "The ${branch} branch of an open-source emulator for the Ninteno 3DS";
|
||||
longDescription = ''
|
||||
A Nintendo 3DS Emulator written in C++
|
||||
Using the nightly branch is recommended for general usage.
|
||||
@@ -91,6 +132,10 @@ stdenv.mkDerivation rec {
|
||||
mainProgram = if enableQt then "citra-qt" else "citra";
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ abbradar ashley ivar ];
|
||||
maintainers = with lib.maintainers; [
|
||||
abbradar
|
||||
ashley
|
||||
ivar
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
let cfg = config.programs.obs-studio;
|
||||
in {
|
||||
let
|
||||
cfg = config.programs.obs-studio;
|
||||
in
|
||||
{
|
||||
options.programs.obs-studio = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "obs-studio");
|
||||
|
||||
@@ -32,10 +39,9 @@ in {
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.obs-studio.finalPackage =
|
||||
pkgs.wrapOBS.override { obs-studio = cfg.package; } {
|
||||
plugins = cfg.plugins;
|
||||
};
|
||||
programs.obs-studio.finalPackage = pkgs.wrapOBS.override { obs-studio = cfg.package; } {
|
||||
plugins = cfg.plugins;
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.finalPackage ];
|
||||
|
||||
|
||||
@@ -1,139 +1,177 @@
|
||||
{ stdenv, lib, fetchFromGitHub, cmake, ninja, jdk17, ghc_filesystem, zlib, file
|
||||
, xorg, libpulseaudio, openal, qt6, glfw, pciutils, udev, glxinfo, qt6Packages
|
||||
, libGL, flite, addOpenGLRunpath, vulkan-loader, msaClientID ? null
|
||||
, extra-cmake-modules, makeWrapper, gamemode, mangohud, glfw-wayland-minecraft
|
||||
, writeShellScript }:
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
ninja,
|
||||
jdk17,
|
||||
ghc_filesystem,
|
||||
zlib,
|
||||
file,
|
||||
xorg,
|
||||
libpulseaudio,
|
||||
openal,
|
||||
qt6,
|
||||
glfw,
|
||||
pciutils,
|
||||
udev,
|
||||
glxinfo,
|
||||
qt6Packages,
|
||||
libGL,
|
||||
flite,
|
||||
addOpenGLRunpath,
|
||||
vulkan-loader,
|
||||
msaClientID ? null,
|
||||
extra-cmake-modules,
|
||||
makeWrapper,
|
||||
gamemode,
|
||||
mangohud,
|
||||
glfw-wayland-minecraft,
|
||||
writeShellScript,
|
||||
}:
|
||||
|
||||
let
|
||||
polymc = let
|
||||
binpath = lib.makeBinPath [ xorg.xrandr glxinfo pciutils ];
|
||||
polymc =
|
||||
let
|
||||
binpath = lib.makeBinPath [
|
||||
xorg.xrandr
|
||||
glxinfo
|
||||
pciutils
|
||||
];
|
||||
|
||||
libpath = lib.makeLibraryPath [
|
||||
xorg.libX11
|
||||
xorg.libXext
|
||||
xorg.libXcursor
|
||||
xorg.libXrandr
|
||||
xorg.libXxf86vm
|
||||
libpulseaudio
|
||||
libGL
|
||||
vulkan-loader
|
||||
glfw
|
||||
openal
|
||||
udev
|
||||
flite
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
libpath = lib.makeLibraryPath [
|
||||
xorg.libX11
|
||||
xorg.libXext
|
||||
xorg.libXcursor
|
||||
xorg.libXrandr
|
||||
xorg.libXxf86vm
|
||||
libpulseaudio
|
||||
libGL
|
||||
vulkan-loader
|
||||
glfw
|
||||
openal
|
||||
udev
|
||||
flite
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
gameLibraryPath = libpath + ":${addOpenGLRunpath.driverLink}/lib";
|
||||
gameLibraryPath = libpath + ":${addOpenGLRunpath.driverLink}/lib";
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "polymc"
|
||||
+ (lib.optionalString ((lib.versions.major qt6.qtbase.version) == "5")
|
||||
"-qt5");
|
||||
version = "6.1";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "polymc" + (lib.optionalString ((lib.versions.major qt6.qtbase.version) == "5") "-qt5");
|
||||
version = "6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PolyMC";
|
||||
repo = "PolyMC";
|
||||
rev = version;
|
||||
sha256 = "sha256-AOy13zAWQ0CtsX9z1M+fxH7Sh/QSFy7EdQ/fD9yUYc8=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
dontWrapQtApps = true;
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
ninja
|
||||
jdk17
|
||||
qt6.wrapQtAppsHook
|
||||
file
|
||||
ghc_filesystem
|
||||
];
|
||||
buildInputs = [
|
||||
qt6.qtbase
|
||||
qt6.qtsvg
|
||||
qt6.qtcharts
|
||||
qt6.qtwayland
|
||||
qt6Packages.quazip
|
||||
zlib
|
||||
];
|
||||
src = fetchFromGitHub {
|
||||
owner = "PolyMC";
|
||||
repo = "PolyMC";
|
||||
rev = version;
|
||||
sha256 = "sha256-AOy13zAWQ0CtsX9z1M+fxH7Sh/QSFy7EdQ/fD9yUYc8=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
dontWrapQtApps = true;
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
ninja
|
||||
jdk17
|
||||
qt6.wrapQtAppsHook
|
||||
file
|
||||
ghc_filesystem
|
||||
];
|
||||
buildInputs = [
|
||||
qt6.qtbase
|
||||
qt6.qtsvg
|
||||
qt6.qtcharts
|
||||
qt6.qtwayland
|
||||
qt6Packages.quazip
|
||||
zlib
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-GNinja"
|
||||
"-DLauncher_QT_VERSION_MAJOR=${lib.versions.major qt6.qtbase.version}"
|
||||
] ++ lib.optionals (msaClientID != null)
|
||||
[ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ];
|
||||
cmakeFlags = [
|
||||
"-GNinja"
|
||||
"-DLauncher_QT_VERSION_MAJOR=${lib.versions.major qt6.qtbase.version}"
|
||||
] ++ lib.optionals (msaClientID != null) [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ];
|
||||
|
||||
postPatch = ''
|
||||
# hardcode jdk paths
|
||||
substituteInPlace launcher/java/JavaUtils.cpp \
|
||||
--replace 'scanJavaDir("/usr/lib/jvm")' 'javas.append("${jdk17}/lib/openjdk/bin/java")'
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
|
||||
wrapQtApp $out/bin/polymc \
|
||||
--suffix LD_LIBRARY_PATH : "${gameLibraryPath}" \
|
||||
--suffix PATH : "${binpath}" \
|
||||
--set-default ALSOFT_DRIVERS "pulse"
|
||||
'';
|
||||
passthru = {
|
||||
|
||||
wrap = { extraJDKs ? [ ], extraPaths ? [ ], extraLibs ? [ ]
|
||||
, withWaylandGLFW ? false, withMangohud ? true, withGamemode ? true }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "${polymc.pname}-wrapped";
|
||||
inherit (polymc) version;
|
||||
libsPath = (lib.makeLibraryPath
|
||||
(extraLibs ++ lib.optional withGamemode gamemode.lib))
|
||||
+ lib.optionalString withMangohud "${mangohud + "/lib/mangohud"}";
|
||||
binsPath =
|
||||
lib.makeBinPath (extraPaths ++ lib.optional withMangohud mangohud);
|
||||
|
||||
waylandPreExec = writeShellScript "waylandGLFW" ''
|
||||
if [ -n "$WAYLAND_DISPLAY" ]; then
|
||||
export LD_LIBRARY_PATH=${
|
||||
lib.getLib glfw-wayland-minecraft
|
||||
}/lib:"$LD_LIBRARY_PATH"
|
||||
fi
|
||||
'';
|
||||
src = polymc;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
ln -s $src/bin/polymc $out/bin/polymc
|
||||
ln -s $src/share $out/share
|
||||
'';
|
||||
|
||||
postFixup = let javaPaths = lib.makeSearchPath "bin/java" extraJDKs;
|
||||
in ''
|
||||
wrapProgram $out/bin/polymc \
|
||||
--suffix LD_LIBRARY_PATH : "${libsPath}" \
|
||||
--suffix POLYMC_JAVA_PATHS : "${javaPaths}" \
|
||||
--suffix PATH : "${binsPath}" ${
|
||||
lib.optionalString withWaylandGLFW "--run ${waylandPreExec}"
|
||||
}
|
||||
|
||||
'';
|
||||
|
||||
preferLocalBuild = true;
|
||||
inherit (polymc) meta;
|
||||
|
||||
};
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://polymc.org/";
|
||||
downloadPage = "https://polymc.org/download/";
|
||||
changelog = "https://github.com/PolyMC/PolyMC/releases";
|
||||
description = "A free, open source launcher for Minecraft";
|
||||
longDescription = ''
|
||||
Allows you to have multiple, separate instances of Minecraft (each with
|
||||
their own mods, texture packs, saves, etc) and helps you manage them and
|
||||
their associated options with a simple interface.
|
||||
postPatch = ''
|
||||
# hardcode jdk paths
|
||||
substituteInPlace launcher/java/JavaUtils.cpp \
|
||||
--replace 'scanJavaDir("/usr/lib/jvm")' 'javas.append("${jdk17}/lib/openjdk/bin/java")'
|
||||
'';
|
||||
platforms = [ "x86_64-linux" ];
|
||||
license = licenses.gpl3Only;
|
||||
|
||||
postFixup = ''
|
||||
# xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
|
||||
wrapQtApp $out/bin/polymc \
|
||||
--suffix LD_LIBRARY_PATH : "${gameLibraryPath}" \
|
||||
--suffix PATH : "${binpath}" \
|
||||
--set-default ALSOFT_DRIVERS "pulse"
|
||||
'';
|
||||
passthru = {
|
||||
|
||||
wrap =
|
||||
{
|
||||
extraJDKs ? [ ],
|
||||
extraPaths ? [ ],
|
||||
extraLibs ? [ ],
|
||||
withWaylandGLFW ? false,
|
||||
withMangohud ? true,
|
||||
withGamemode ? true,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "${polymc.pname}-wrapped";
|
||||
inherit (polymc) version;
|
||||
libsPath =
|
||||
(lib.makeLibraryPath (extraLibs ++ lib.optional withGamemode gamemode.lib))
|
||||
+ lib.optionalString withMangohud "${mangohud + "/lib/mangohud"}";
|
||||
binsPath = lib.makeBinPath (extraPaths ++ lib.optional withMangohud mangohud);
|
||||
|
||||
waylandPreExec = writeShellScript "waylandGLFW" ''
|
||||
if [ -n "$WAYLAND_DISPLAY" ]; then
|
||||
export LD_LIBRARY_PATH=${lib.getLib glfw-wayland-minecraft}/lib:"$LD_LIBRARY_PATH"
|
||||
fi
|
||||
'';
|
||||
src = polymc;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
phases = [
|
||||
"installPhase"
|
||||
"fixupPhase"
|
||||
];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
ln -s $src/bin/polymc $out/bin/polymc
|
||||
ln -s $src/share $out/share
|
||||
'';
|
||||
|
||||
postFixup =
|
||||
let
|
||||
javaPaths = lib.makeSearchPath "bin/java" extraJDKs;
|
||||
in
|
||||
''
|
||||
wrapProgram $out/bin/polymc \
|
||||
--suffix LD_LIBRARY_PATH : "${libsPath}" \
|
||||
--suffix POLYMC_JAVA_PATHS : "${javaPaths}" \
|
||||
--suffix PATH : "${binsPath}" ${lib.optionalString withWaylandGLFW "--run ${waylandPreExec}"}
|
||||
|
||||
'';
|
||||
|
||||
preferLocalBuild = true;
|
||||
inherit (polymc) meta;
|
||||
|
||||
};
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://polymc.org/";
|
||||
downloadPage = "https://polymc.org/download/";
|
||||
changelog = "https://github.com/PolyMC/PolyMC/releases";
|
||||
description = "A free, open source launcher for Minecraft";
|
||||
longDescription = ''
|
||||
Allows you to have multiple, separate instances of Minecraft (each with
|
||||
their own mods, texture packs, saves, etc) and helps you manage them and
|
||||
their associated options with a simple interface.
|
||||
'';
|
||||
platforms = [ "x86_64-linux" ];
|
||||
license = licenses.gpl3Only;
|
||||
};
|
||||
};
|
||||
};
|
||||
in polymc
|
||||
in
|
||||
polymc
|
||||
|
||||
@@ -1,16 +1,30 @@
|
||||
{ lib, appimageTools, runCommand, curl, gnugrep, cacert }:
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
runCommand,
|
||||
curl,
|
||||
gnugrep,
|
||||
cacert,
|
||||
}:
|
||||
|
||||
appimageTools.wrapType1 rec {
|
||||
pname = "pureref";
|
||||
version = "2.0.0";
|
||||
|
||||
src = runCommand "PureRef-${version}_x64.Appimage" {
|
||||
nativeBuildInputs = [ curl gnugrep cacert ];
|
||||
outputHash = "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=";
|
||||
} ''
|
||||
key="$(curl "https://www.pureref.com/download.php" --silent | grep '%3D%3D' | cut -d '"' -f2)"
|
||||
curl "https://www.pureref.com/files/build.php?build=LINUX64.Appimage&version=${version}&downloadKey=$key" --output $out
|
||||
'';
|
||||
src =
|
||||
runCommand "PureRef-${version}_x64.Appimage"
|
||||
{
|
||||
nativeBuildInputs = [
|
||||
curl
|
||||
gnugrep
|
||||
cacert
|
||||
];
|
||||
outputHash = "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=";
|
||||
}
|
||||
''
|
||||
key="$(curl "https://www.pureref.com/download.php" --silent | grep '%3D%3D' | cut -d '"' -f2)"
|
||||
curl "https://www.pureref.com/files/build.php?build=LINUX64.Appimage&version=${version}&downloadKey=$key" --output $out
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Reference Image Viewer";
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let cfg = config.services.shiori;
|
||||
in {
|
||||
let
|
||||
cfg = config.services.shiori;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.shiori = {
|
||||
enable = lib.mkEnableOption "Shiori simple bookmarks manager";
|
||||
@@ -54,18 +61,16 @@ in {
|
||||
systemd.services.shiori = {
|
||||
description = "Shiori simple bookmarks manager";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "postgresql.service" "mysql.service" ];
|
||||
after = [
|
||||
"postgresql.service"
|
||||
"mysql.service"
|
||||
];
|
||||
environment = {
|
||||
SHIORI_DIR = "/var/lib/shiori";
|
||||
} // lib.optionalAttrs (cfg.databaseUrl != null) {
|
||||
SHIORI_DATABASE_URL = cfg.databaseUrl;
|
||||
};
|
||||
} // lib.optionalAttrs (cfg.databaseUrl != null) { SHIORI_DATABASE_URL = cfg.databaseUrl; };
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart =
|
||||
"${cfg.package}/bin/shiori server --address '${cfg.address}' --port '${
|
||||
toString cfg.port
|
||||
}' --webroot '${cfg.webRoot}'";
|
||||
ExecStart = "${cfg.package}/bin/shiori server --address '${cfg.address}' --port '${toString cfg.port}' --webroot '${cfg.webRoot}'";
|
||||
|
||||
DynamicUser = true;
|
||||
StateDirectory = "shiori";
|
||||
@@ -73,17 +78,20 @@ in {
|
||||
RuntimeDirectory = "shiori";
|
||||
|
||||
# Security options
|
||||
EnvironmentFile =
|
||||
lib.optional (cfg.environmentFile != null) cfg.environmentFile;
|
||||
BindReadOnlyPaths = [
|
||||
"/nix/store"
|
||||
EnvironmentFile = lib.optional (cfg.environmentFile != null) cfg.environmentFile;
|
||||
BindReadOnlyPaths =
|
||||
[
|
||||
"/nix/store"
|
||||
|
||||
# For SSL certificates, and the resolv.conf
|
||||
"/etc"
|
||||
] ++ lib.optional (lib.strings.hasInfix "postgres" cfg.databaseUrl
|
||||
&& config.services.postgresql.enable) "/run/postgresql"
|
||||
++ lib.optional (lib.strings.hasInfix "mysql" cfg.databaseUrl
|
||||
&& config.services.mysql.enable) "/var/run/mysqld";
|
||||
# For SSL certificates, and the resolv.conf
|
||||
"/etc"
|
||||
]
|
||||
++ lib.optional (
|
||||
lib.strings.hasInfix "postgres" cfg.databaseUrl && config.services.postgresql.enable
|
||||
) "/run/postgresql"
|
||||
++ lib.optional (
|
||||
lib.strings.hasInfix "mysql" cfg.databaseUrl && config.services.mysql.enable
|
||||
) "/var/run/mysqld";
|
||||
|
||||
CapabilityBoundingSet = "";
|
||||
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
|
||||
@@ -106,7 +114,11 @@ in {
|
||||
ProtectKernelTunables = true;
|
||||
|
||||
RestrictNamespaces = true;
|
||||
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
"AF_UNIX"
|
||||
];
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
|
||||
@@ -128,5 +140,8 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ minijackson CaptainJawZ ];
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
minijackson
|
||||
CaptainJawZ
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "shiori";
|
||||
@@ -30,6 +35,9 @@ buildGoModule rec {
|
||||
mainProgram = "shiori";
|
||||
homepage = "https://github.com/go-shiori/shiori";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ minijackson CaptainJawZ ];
|
||||
maintainers = with maintainers; [
|
||||
minijackson
|
||||
CaptainJawZ
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,11 +1,22 @@
|
||||
{ lib, fetchFromGitHub, buildNpmPackage, toml2json, nodejs, ffmpeg
|
||||
, substituteAll, makeWrapper, callPackage }:
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildNpmPackage,
|
||||
toml2json,
|
||||
nodejs,
|
||||
ffmpeg,
|
||||
substituteAll,
|
||||
makeWrapper,
|
||||
callPackage,
|
||||
}:
|
||||
|
||||
# This is an adaptation with buildNpmPackage based on https://github.com/milahu/nur-packages/commit/3022ffb3619182ffcd579194e1202e3978e4d55b
|
||||
|
||||
let filepicker = callPackage ./filepicker.nix { };
|
||||
let
|
||||
filepicker = callPackage ./filepicker.nix { };
|
||||
|
||||
in buildNpmPackage rec {
|
||||
in
|
||||
buildNpmPackage rec {
|
||||
pname = "vdhcoapp";
|
||||
version = "2.0.19";
|
||||
|
||||
@@ -20,7 +31,10 @@ in buildNpmPackage rec {
|
||||
npmDepsHash = "sha256-E032U2XZdyTER6ROkBosOTn7bweDXHl8voC3BQEz8Wg=";
|
||||
dontNpmBuild = true;
|
||||
|
||||
nativeBuildInputs = [ toml2json makeWrapper ];
|
||||
nativeBuildInputs = [
|
||||
toml2json
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
@@ -50,8 +64,7 @@ in buildNpmPackage rec {
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description =
|
||||
"Companion application for the Video DownloadHelper browser add-on";
|
||||
description = "Companion application for the Video DownloadHelper browser add-on";
|
||||
homepage = "https://www.downloadhelper.net/";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ wolfangaukang ];
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
{ lib, rustPlatform, fetchFromGitHub, pkg-config, atk, gtk3, glib }:
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
atk,
|
||||
gtk3,
|
||||
glib,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "filepicker";
|
||||
@@ -13,7 +21,11 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
cargoHash = "sha256-aal7ppFkCpNc+QTS4Qklsb9WfJ65QqG6p1eOskiX+/Q=";
|
||||
|
||||
buildInputs = [ atk gtk3 glib ];
|
||||
buildInputs = [
|
||||
atk
|
||||
gtk3
|
||||
glib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user