refactor: update flake and remove several un-needed packages as well as disabled libvirt

This commit is contained in:
2026-10-20 11:38:48 -04:00
parent 657173e8db
commit efd3627519
18 changed files with 37 additions and 1546 deletions
-1
View File
@@ -35,7 +35,6 @@
discover discover
gwenview gwenview
okular okular
kmail
]; ];
sessionVariables = { sessionVariables = {
Generated
+37 -26
View File
@@ -390,11 +390,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1791909798, "lastModified": 1790500375,
"narHash": "sha256-VAhpCOmrun/KXimYfR8NM88bciKCui7CqHHhThSzgag=", "narHash": "sha256-XN3sDtn8TU9hAc9xqZ+SqRB/HHm2wjxM6aSWYLJU+oo=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "1ba1dbfe28738c9a71c266be6efa5b89e75491a9", "rev": "a0e4241b51206fbcbf52fd322eb5f0cd80f153c4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -449,11 +449,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1792098797, "lastModified": 1792495086,
"narHash": "sha256-u4DIIZgznEGzByxXrxWCXK19VcMtTBmi/M9gZ7Jk9bM=", "narHash": "sha256-TyoYH983Nsc++1scw0SoOEKshPSJWJDxK7tTmuZ974M=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "640725978b99076e18e069f6e7d2959124584f8f", "rev": "ec80131710bffcdf3b8498cf41f3a0579833b023",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -487,18 +487,16 @@
"millennium": { "millennium": {
"inputs": { "inputs": {
"millennium-src": "millennium-src", "millennium-src": "millennium-src",
"nixpkgs": [ "nixpkgs": "nixpkgs_3",
"nixpkgs"
],
"nixpkgs-bun": "nixpkgs-bun" "nixpkgs-bun": "nixpkgs-bun"
}, },
"locked": { "locked": {
"dir": "packages/nix", "dir": "packages/nix",
"lastModified": 1792022604, "lastModified": 1792357572,
"narHash": "sha256-xyl3KTB+j4W3dAxQVSolNJCQZOasDnCLB3Dr14adBmU=", "narHash": "sha256-2krnWSUcN06EYtUKqFxkbSIQP6NAfhMOrgnxZXB+dcc=",
"owner": "SteamClientHomebrew", "owner": "SteamClientHomebrew",
"repo": "Millennium", "repo": "Millennium",
"rev": "22af2f453777a925fb398a3dab60a407e66aa83f", "rev": "f7a356f6789bc7d23f44bfbcdd95c71f0385cc1a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -511,17 +509,17 @@
"millennium-src": { "millennium-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1791947497, "lastModified": 1792357406,
"narHash": "sha256-sNpoyJ+IjrTiDGfX2QiKVg4jkrJR7n9PdBeOYJSS4n8=", "narHash": "sha256-We8OIJP/5q0nv2RVHQYfjRaHK6ZQuSM88eKa9BezUPk=",
"owner": "SteamClientHomebrew", "owner": "SteamClientHomebrew",
"repo": "Millennium", "repo": "Millennium",
"rev": "401d532543a0fbff469653ccba802bdd7e45f861", "rev": "88fb7c16d04d162cb3e94beedb11a51705ec03fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "SteamClientHomebrew", "owner": "SteamClientHomebrew",
"repo": "Millennium", "repo": "Millennium",
"rev": "401d532543a0fbff469653ccba802bdd7e45f861", "rev": "88fb7c16d04d162cb3e94beedb11a51705ec03fb",
"type": "github" "type": "github"
} }
}, },
@@ -571,11 +569,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1792295076, "lastModified": 1792469825,
"narHash": "sha256-cI7nldj6D1f4QLN9y82sqCA7kERAcrwD7/F9i89PhmY=", "narHash": "sha256-yZzRSNogTrbYjLNHiRMphZGIVcTHbXWSID37oPBbrEw=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "8bfba80f57356cc26eba4e5d7b8a595e70e87a00", "rev": "0405c59de63e8b74d11dcc420f65ead938ea6ec6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -690,11 +688,11 @@
"treefmt-nix": "treefmt-nix_3" "treefmt-nix": "treefmt-nix_3"
}, },
"locked": { "locked": {
"lastModified": 1792311987, "lastModified": 1792380357,
"narHash": "sha256-qrt97Ymg2VgbESOXPnOOq+5+K39ywjNJGNNhJRFaV0w=", "narHash": "sha256-deMmYXMlf7BnA2qSDk3gFqVjBQeBnW8689/qG3aUPAc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs-xr", "repo": "nixpkgs-xr",
"rev": "de7fd08e9336c17a56d4363df1bfc8eb2003ca71", "rev": "8d169c67d1e73b8721711b3750ef75ba205e7fe1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -721,11 +719,24 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1792094642, "lastModified": 1792488032,
"narHash": "sha256-zp8ToDMnqZcu4o4IH9pdwXFXGp7yLm/M0dEnNWnyd7I=", "narHash": "sha256-jWdazKTNUOJQ3KE+9BAvpBOo6THrD0Qyb3S8F2GduUI=",
"rev": "e513db7b0a65def6f6e17bb55195dfe510871944",
"type": "tarball",
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1097569.e513db7b0a65/nixexprs.tar.zst"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.zst"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1792210252,
"narHash": "sha256-Mh0PUaIv4nFY+8wAGonaEh8iBzwsmdNlwjVHmFg1Biw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "fe13242281a67641c0102cdb1087f0ebe586c7df", "rev": "09063bd1f2b36fd9fd793c36dfade7bd40a93dfc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -850,7 +861,7 @@
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nix-gaming": "nix-gaming", "nix-gaming": "nix-gaming",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"nixpkgs-xr": "nixpkgs-xr", "nixpkgs-xr": "nixpkgs-xr",
"pi": "pi", "pi": "pi",
"scopebuddy": "scopebuddy", "scopebuddy": "scopebuddy",
-1
View File
@@ -14,7 +14,6 @@
millennium = { millennium = {
url = "github:SteamClientHomebrew/Millennium?dir=packages/nix"; url = "github:SteamClientHomebrew/Millennium?dir=packages/nix";
inputs.nixpkgs.follows = "nixpkgs";
}; };
scopebuddy = { scopebuddy = {
-1
View File
@@ -129,7 +129,6 @@
inputs.xivlauncher-rb.packages.${pkgs.stdenv.hostPlatform.system}.default inputs.xivlauncher-rb.packages.${pkgs.stdenv.hostPlatform.system}.default
(callPackage ../../packages/aseprite-thumbnailer-kde/package.nix { }) (callPackage ../../packages/aseprite-thumbnailer-kde/package.nix { })
(callPackage ../../packages/undertale-mod-tool/package.nix { })
]; ];
}; };
} }
-51
View File
@@ -1,5 +1,4 @@
{ {
config,
pkgs, pkgs,
lib, lib,
inputs, inputs,
@@ -16,24 +15,14 @@
consoleLogLevel = 3; consoleLogLevel = 3;
extraModulePackages = [ config.boot.kernelPackages.kvmfr ];
kernelParams = [ kernelParams = [
"quiet" "quiet"
"rd.udev.log_level=3" "rd.udev.log_level=3"
"rd.systemd.show_status=auto" "rd.systemd.show_status=auto"
"kvmfr.static_size_mb=256"
]; ];
initrd = { initrd = {
verbose = false; verbose = false;
kernelModules = [
"vfio"
"vfio_pci"
"vfio_iommu_type1"
"kvmfr"
];
}; };
kernelModules = [ kernelModules = [
@@ -55,19 +44,6 @@
}; };
services = { services = {
# Allow kvmfr module to be used by QEMU/KVM.
udev.packages = [
(pkgs.writeTextFile {
name = "kvmfr";
text = ''
SUBSYSTEM=="kvmfr", GROUP="kvm", MODE="0660", TAG+="uaccess"
'';
destination = "/etc/udev/rules.d/70-kvmfr.rules";
})
];
flatpak = { flatpak = {
packages = [ packages = [
{ {
@@ -261,8 +237,6 @@
}; };
}; };
virt-manager.enable = true;
ssh.startAgent = true; ssh.startAgent = true;
firefox.enable = true; firefox.enable = true;
@@ -301,28 +275,6 @@
virtualisation = { virtualisation = {
docker.enable = true; docker.enable = true;
spiceUSBRedirection.enable = true;
libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true;
verbatimConfig = ''
namespaces = []
cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
"/dev/rtc","/dev/hpet", "/dev/vfio/vfio",
"/dev/kvmfr0"
]
'';
};
};
}; };
users.users.frank = { users.users.frank = {
@@ -333,7 +285,6 @@
"networkmanager" "networkmanager"
"wheel" "wheel"
"moonshine" "moonshine"
"libvirtd"
"input" "input"
"video" "video"
"docker" "docker"
@@ -421,9 +372,7 @@
] ]
)) ))
(callPackage ../../packages/virtiofsd-looking-glass/package.nix { })
(callPackage ../../packages/heidisql/package.nix { }) (callPackage ../../packages/heidisql/package.nix { })
(callPackage ../../packages/looking-glass-client/package.nix { })
]; ];
shellAliases = import ../../features/aliases.nix { inherit pkgs; }; shellAliases = import ../../features/aliases.nix { inherit pkgs; };
-205
View File
@@ -1,205 +0,0 @@
{
clangStdenv,
cmake,
cmark,
curl,
fetchFromGitHub,
fmt,
fontconfig,
freetype,
giflib,
glib,
harfbuzzFull,
libicns,
lib,
libGL,
libjpeg,
libpng,
libwebp,
libx11,
libxcursor,
libxext,
libxi,
libxxf86vm,
libxcb,
libxrandr,
ninja,
pcre2,
pixman,
pkg-config,
skia-aseprite,
tinyxml-2,
zlib,
}:
clangStdenv.mkDerivation (finalAttrs: {
pname = "aseprite";
version = "1.3.18.3";
src = fetchFromGitHub {
owner = "aseprite";
repo = "aseprite";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-pMjBFJ1nhSNLITDS4oliD2DPMey6JBWplIqdcOtZfqM=";
};
asepriteStrings = fetchFromGitHub {
owner = "aseprite";
repo = "strings";
rev = "b43be33343efa40c1c4bda00f985b8cd83bddf2a";
hash = "sha256-JxNEtWnP3RtntXM3CmJLXyByW6dri98COp2O0A6ZwBA=";
};
# Translation files are copied without overwriting existing ones to preserve
# the potentially more up-to-date English file from the main source.
postUnpack = ''
cp --no-clobber ${finalAttrs.asepriteStrings}/* "$sourceRoot/data/strings"
'';
nativeBuildInputs = [
cmake
ninja
pkg-config
]
++ lib.optionals clangStdenv.hostPlatform.isDarwin [
libicns
];
buildInputs = [
cmark
curl
fmt
fontconfig
freetype
giflib
glib
harfbuzzFull
libGL
libjpeg
libpng
libwebp
libx11
libxcursor
libxext
libxi
libxxf86vm
libxcb
libxrandr
pcre2
pixman
skia-aseprite
tinyxml-2
zlib
];
patches = [
./patches/shared-fmt.patch
./patches/shared-libwebp.patch
./patches/shared-skia-deps.patch
./patches/shared-libjpeg-turbo.patch
];
postPatch = ''
substituteInPlace src/ver/CMakeLists.txt \
--replace-fail '"1.x-dev"' '"${finalAttrs.version}"'
# fmt 12.2 no longer exposes fmt::format through fmt/core.h.
substituteInPlace src/app/i18n/strings.h \
--replace-fail '"fmt/core.h"' '"fmt/format.h"'
# Fix build on Darwin with `-Werror=format-security`
# (NSLog requires a string-literal format)
substituteInPlace laf/os/osx/logger.mm \
--replace-fail 'NSLog([NSString stringWithUTF8String:error]);' 'NSLog(@"%@", [NSString stringWithUTF8String:error]);'
'';
cmakeFlags = [
"-DENABLE_DESKTOP_INTEGRATION=ON"
"-DENABLE_UPDATER=OFF"
"-DUSE_SHARED_CMARK=ON"
"-DUSE_SHARED_CURL=ON"
"-DUSE_SHARED_FMT=ON"
"-DUSE_SHARED_FREETYPE=ON"
"-DUSE_SHARED_GIFLIB=ON"
"-DUSE_SHARED_HARFBUZZ=ON"
"-DUSE_SHARED_LIBPNG=ON"
"-DUSE_SHARED_PIXMAN=ON"
"-DUSE_SHARED_TINYXML=OFF"
"-DUSE_SHARED_WEBP=ON"
"-DUSE_SHARED_ZLIB=ON"
# Disable libarchive programs.
"-DENABLE_CAT=OFF"
"-DENABLE_CPIO=OFF"
"-DENABLE_TAR=OFF"
# UI backend.
"-DLAF_BACKEND=skia"
"-DLAF_WITH_EXAMPLES=OFF"
"-DSKIA_DIR=${skia-aseprite}"
"-DSKIA_LIBRARY_DIR=${skia-aseprite}/lib"
];
# `libskia.a` is static, so its deps must be linked explicitly on Darwin
# (otherwise we hit undefined `_jpeg_*`/`_WebP*` symbols, e.g. in the thumbnailer).
env.NIX_LDFLAGS = lib.optionalString clangStdenv.hostPlatform.isDarwin "-ljpeg -lwebp -lwebpdemux -lwebpmux";
postInstall = ''
# Install desktop icons.
src="$out/share/aseprite/data/icons"
for size in 16 32 48 64 128 256; do
dst="$out"/share/icons/hicolor/"$size"x"$size"
install -Dm644 "$src"/ase"$size".png "$dst"/apps/aseprite.png
install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/image-x-aseprite.png
done
# Delete unneeded artifacts of bundled libraries.
rm -rf "$out"/{include,lib,man}
''
+ lib.optionalString clangStdenv.hostPlatform.isDarwin ''
install -d "$out/Applications"
if [ -d "$out/bin/aseprite.app" ]; then
rm -rf "$out/Applications/Aseprite.app"
mv "$out/bin/aseprite.app" "$out/Applications/Aseprite.app"
fi
# Generate the `.icns` files referenced by Info.plist from the shipped PNGs.
res="$out/Applications/Aseprite.app/Contents/Resources"
icons="$res/data/icons"
if [ -d "$icons" ] && command -v png2icns >/dev/null; then
for spec in "Aseprite ase" "Document doc" "Extension ext"; do
set -- $spec
name="$1"
prefix="$2"
png2icns "$res/$name.icns" \
"$icons/''${prefix}16.png" \
"$icons/''${prefix}32.png" \
"$icons/''${prefix}128.png" \
"$icons/''${prefix}256.png"
done
fi
# Keep $out/bin clean on Darwin; the bundle lives under $out/Applications.
rmdir "$out/bin" 2>/dev/null || true
'';
passthru.updateScript = ./update.sh;
meta = {
homepage = "https://www.aseprite.org/";
description = "Animated sprite editor & pixel art tool";
license = lib.licenses.unfree;
longDescription = ''
Aseprite is a program to create animated sprites. Its main features are:
- Sprites are composed by layers & frames (as separated concepts).
- Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
- Load/save sequence of PNG files and GIF animations (and FLC, FLI, JPG, BMP, PCX, TGA).
- Export/import animations to/from Sprite Sheets.
- Tiled drawing mode, useful to draw patterns and textures.
- Undo/Redo for every operation.
- Real-time animation preview.
- Multiple editors support.
- Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
- Onion skinning.
'';
maintainers = [ lib.maintainers.iamanaws ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
mainProgram = "aseprite";
};
})
@@ -1,79 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b1bd0189b..3fb7abffb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -66,6 +66,7 @@ enable_testing()
option(USE_SHARED_CMARK "Use your installed copy of cmark" off)
option(USE_SHARED_CURL "Use your installed copy of curl" off)
+option(USE_SHARED_FMT "Use your installed copy of fmt" off)
option(USE_SHARED_GIFLIB "Use your installed copy of giflib" off)
option(USE_SHARED_JPEGLIB "Use your installed copy of jpeglib" off)
option(USE_SHARED_ZLIB "Use your installed copy of zlib" off)
@@ -185,6 +186,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_PROFILE "${CMAKE_BINARY_DIR}/bin")
set(SOURCE_DATA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data)
set(CMARK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/cmark)
set(CURL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/curl)
+set(FMT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/fmt)
set(GIFLIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/giflib)
set(LIBJPEG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/jpeg)
set(LIBPNG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libpng)
@@ -225,6 +227,16 @@ if(NOT USE_SHARED_CURL)
set(CURL_STATICLIB ON BOOL)
endif()
+# fmt
+if(USE_SHARED_FMT)
+ find_package(FMT REQUIRED)
+ set(FMT_LIBRARIES fmt::fmt)
+else()
+ set(FMT_FOUND)
+ set(FMT_LIBRARIES fmt)
+ # No need to include extra directories, actually
+endif()
+
# zlib
if(USE_SHARED_ZLIB)
find_package(ZLIB REQUIRED)
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
index 9c67c0268..b19a3e412 100644
--- a/src/app/CMakeLists.txt
+++ b/src/app/CMakeLists.txt
@@ -754,7 +754,7 @@ target_link_libraries(app-lib
${ZLIB_LIBRARIES}
json11
archive_static
- fmt
+ ${FMT_LIBRARIES}
tinyexpr
qoi)
diff --git a/src/dio/CMakeLists.txt b/src/dio/CMakeLists.txt
index 55cb24de5..b253dca0b 100644
--- a/src/dio/CMakeLists.txt
+++ b/src/dio/CMakeLists.txt
@@ -16,7 +16,7 @@ endif()
target_link_libraries(dio-lib
${ZLIB_LIBRARIES}
- fmt
+ ${FMT_LIBRARIES}
flic-lib
laf-base
fixmath-lib
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
index 9d09a98c8..1973b134b 100644
--- a/third_party/CMakeLists.txt
+++ b/third_party/CMakeLists.txt
@@ -117,7 +117,10 @@ if(NOT USE_SHARED_HARFBUZZ AND NOT LAF_BACKEND STREQUAL "skia")
endif()
add_subdirectory(simpleini)
-add_subdirectory(fmt)
+
+if(NOT USE_SHARED_FMT)
+ add_subdirectory(fmt)
+endif()
# Add cmark without tests
if(NOT USE_SHARED_CMARK)
@@ -1,21 +0,0 @@
diff --git a/cmake/FindJpegTurbo.cmake b/cmake/FindJpegTurbo.cmake
index 33b5204..0407a6a 100644
--- a/cmake/FindJpegTurbo.cmake
+++ b/cmake/FindJpegTurbo.cmake
@@ -9,14 +9,11 @@
if(LAF_BACKEND STREQUAL "skia")
- find_library(LIBJPEG_TURBO_LIBRARY NAMES libjpeg jpeg
- HINTS "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
- set(LIBJPEG_TURBO_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/libjpeg-turbo")
+ find_library(LIBJPEG_TURBO_LIBRARY NAMES libjpeg jpeg)
add_library(libjpeg-turbo STATIC IMPORTED)
set_target_properties(libjpeg-turbo PROPERTIES
- IMPORTED_LOCATION "${LIBJPEG_TURBO_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES ${LIBJPEG_TURBO_INCLUDE_DIRS})
+ IMPORTED_LOCATION "${LIBJPEG_TURBO_LIBRARY}")
else()
@@ -1,47 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 87aed2f28f9c..498472ec2a60 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -76,6 +76,7 @@ option(USE_SHARED_TINYXML "Use your installed copy of tinyxml" off)
option(USE_SHARED_PIXMAN "Use your installed copy of pixman" off)
option(USE_SHARED_FREETYPE "Use shared FreeType library" off)
option(USE_SHARED_HARFBUZZ "Use shared HarfBuzz library" off)
+option(USE_SHARED_WEBP "Use your installed copy of webp" off)
option(ENABLE_ASEPRITE_EXE "Compile main Aseprite executable" on)
option(ENABLE_MEMLEAK "Enable memory-leaks detector (only for developers)" off)
option(ENABLE_NEWS "Enable the news in Home tab" on)
@@ -380,7 +381,20 @@ add_subdirectory(laf)
# libwebp
if(ENABLE_WEBP)
# Use libwebp from Skia
- if(LAF_BACKEND STREQUAL "skia")
+ if(USE_SHARED_WEBP)
+ find_library(WEBP_LIBRARY NAMES webp)
+ find_library(WEBPDEMUX_LIBRARY NAMES webpdemux)
+ find_library(WEBPMUX_LIBRARY NAMES webpmux)
+ set(WEBP_LIBRARIES ${WEBP_LIBRARY} ${WEBPDEMUX_LIBRARY} ${WEBPMUX_LIBRARY})
+ find_path(WEBP_INCLUDE_DIRS NAMES decode.h PATH_SUFFIXES webp)
+ find_path(WEBP_INCLUDE_DIRS NAMES decode.h PATH_SUFFIXES webp)
+ find_path(WEBP_INCLUDE_DIRS NAMES decode.h PATH_SUFFIXES webp)
+ if(WEBP_LIBRARIES)
+ set(WEBP_FOUND ON)
+ else()
+ set(WEBP_FOUND OFF)
+ endif()
+ elseif(LAF_BACKEND STREQUAL "skia")
find_library(WEBP_LIBRARIES webp
NAMES libwebp # required for Windows
PATHS "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
index 1973b134b9f8..f15dba5a7968 100644
--- a/third_party/CMakeLists.txt
+++ b/third_party/CMakeLists.txt
@@ -33,7 +33,7 @@ if(NOT USE_SHARED_GIFLIB)
add_subdirectory(giflib)
endif()
-if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia")
+if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia" AND NOT USE_SHARED_WEBP)
set(WEBP_BUILD_EXTRAS OFF CACHE BOOL "Build extras.")
set(WEBP_BUILD_ANIM_UTILS OFF CACHE BOOL "Build animation utilities.")
set(WEBP_BUILD_CWEBP OFF CACHE BOOL "Build the cwebp command line tool.")
@@ -1,21 +0,0 @@
--- src/laf/cmake/FindSkia.cmake.orig 2022-01-08 02:15:13.417619266 +0100
+++ src/laf/cmake/FindSkia.cmake 2022-01-08 02:15:43.603960491 +0100
@@ -32,14 +32,18 @@
# SkShaper module + freetype + harfbuzz
find_library(SKSHAPER_LIBRARY skshaper PATH "${SKIA_LIBRARY_DIR}")
+if(NOT USE_SHARED_FREETYPE)
set(FREETYPE_FOUND ON)
find_library(FREETYPE_LIBRARY freetype2 PATH "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
set(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY})
set(FREETYPE_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/freetype/include")
+endif()
+if(NOT USE_SHARED_HARFBUZZ)
find_library(HARFBUZZ_LIBRARY harfbuzz PATH "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
set(HARFBUZZ_LIBRARIES ${HARFBUZZ_LIBRARY})
set(HARFBUZZ_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/harfbuzz/src")
+endif()
set(SKIA_LIBRARIES
${SKIA_LIBRARY}
-148
View File
@@ -1,148 +0,0 @@
{
stdenv,
lib,
fetchurl,
pkg-config,
cmake,
freefont_ttf,
spice-protocol,
nettle,
libbfd,
fontconfig,
libffi,
expat,
libGL,
nanosvg,
fuse3,
libx11,
libxkbcommon,
libxext,
libxrandr,
libxi,
libxscrnsaver,
libxinerama,
libxcursor,
libxpresent,
libxdmcp,
libunwind,
elfutils,
wayland,
wayland-protocols,
wayland-scanner,
pipewire,
pulseaudio,
libsamplerate,
openGLSupport ? true,
xorgSupport ? true,
waylandSupport ? true,
pipewireSupport ? true,
pulseSupport ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "looking-glass-client";
version = "B7-782-7b059ad6";
src = fetchurl {
url = "https://looking-glass.io/artifact/bleeding/source";
sha256 = "sha256-YNcGe0+n9C1X/DG26FpIuqiGUvV9ZfpU3pjSBw/0eM4=";
name = "looking-glass-bleeding.tar.gz";
};
patches = [
#./patches/nanosvg-unvendor.diff
];
nativeBuildInputs = [
cmake
pkg-config
wayland-scanner
];
buildInputs = [
libx11
libGL
freefont_ttf
spice-protocol
expat
libbfd
nettle
fontconfig
libffi
nanosvg
libunwind
elfutils
fuse3
]
++ lib.optionals xorgSupport [
libxkbcommon
libxi
libxscrnsaver
libxinerama
libxcursor
libxpresent
libxext
libxrandr
libxdmcp
]
++ lib.optionals waylandSupport [
libxkbcommon
wayland
wayland-protocols
]
++ lib.optionals pipewireSupport [
pipewire
libsamplerate
]
++ lib.optionals pulseSupport [
pulseaudio
libsamplerate
];
cmakeFlags = [
"-DOPTIMIZE_FOR_NATIVE=OFF"
]
++ lib.optionals (!openGLSupport) [ "-DENABLE_OPENGL=no" ]
++ lib.optionals (!xorgSupport) [ "-DENABLE_X11=no" ]
++ lib.optionals (!waylandSupport) [ "-DENABLE_WAYLAND=no" ]
++ lib.optionals (!pulseSupport) [ "-DENABLE_PULSEAUDIO=no" ]
++ lib.optionals (!pipewireSupport) [ "-DENABLE_PIPEWIRE=no" ];
setSourceRoot = ''
sourceRoot=$(echo */)
'';
postUnpack = ''
echo ${finalAttrs.version} > VERSION
export projRoot=$sourceRoot
export sourceRoot="$sourceRoot/client"
'';
postInstall = ''
mkdir -p $out/share/pixmaps
#cp resources/lg-logo.png $out/share/pixmaps
'';
meta = {
description = "KVM Frame Relay (KVMFR) implementation";
longDescription = ''
Looking Glass is an open source application that allows the use of a KVM
(Kernel-based Virtual Machine) configured for VGA PCI Pass-through
without an attached physical monitor, keyboard or mouse. This is the final
step required to move away from dual booting with other operating systems
for legacy programs that require high performance graphics.
'';
homepage = "https://looking-glass.io/";
license = lib.licenses.gpl2Plus;
mainProgram = "looking-glass-client";
maintainers = with lib.maintainers; [
alexbakker
babbaj
j-brn
];
platforms = [ "x86_64-linux" ];
};
})
@@ -1,28 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3755adc..55e1eb3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,6 +25,7 @@ include(OptimizeForNative) # option(OPTIMIZE_FOR_NATIVE)
include(UninstallTarget)
find_package(PkgConfig)
+find_package(NanoSVG REQUIRED)
pkg_check_modules(FONTCONFIG REQUIRED IMPORTED_TARGET fontconfig)
option(ENABLE_OPENGL "Enable the OpenGL renderer" ON)
@@ -106,7 +107,6 @@ include_directories(
${PROJECT_SOURCE_DIR}/include
${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}/include
- ${PROJECT_TOP}/repos/nanosvg/src
)
link_libraries(
@@ -161,6 +161,7 @@ target_compile_definitions(looking-glass-client PRIVATE CIMGUI_DEFINE_ENUMS_AND_
target_link_libraries(looking-glass-client
${EXE_FLAGS}
PkgConfig::FONTCONFIG
+ NanoSVG::nanosvg
lg_resources
lg_common
displayservers
-312
View File
@@ -1,312 +0,0 @@
[
{
"pname": "Avalonia",
"version": "12.1.0",
"hash": "sha256-G824thlSx6grixZdFX0yonwGXQYequFLwFAyhEyuPzk="
},
{
"pname": "Avalonia.Angle.Windows.Natives",
"version": "2.1.27548.20260419",
"hash": "sha256-dtZ5AQl+kXPRVe/EwrfSyOMSLywuBBUCjrDIhHijhvk="
},
{
"pname": "Avalonia.AvaloniaEdit",
"version": "12.0.0",
"hash": "sha256-DDopKuyhufekxFDxV39vqjQSbldUKRTHiXTZ4woe2eE="
},
{
"pname": "Avalonia.BuildServices",
"version": "11.3.2",
"hash": "sha256-6wx06tjSKWQOlX2czdp6Wh0nuwVapx5qf/s8Qj5we40="
},
{
"pname": "Avalonia.Controls.ColorPicker",
"version": "12.1.0",
"hash": "sha256-oq1powrap87bypo0K2APlecS1AGxS/9s4MGAlyLLVpo="
},
{
"pname": "Avalonia.Controls.DataGrid",
"version": "12.1.0",
"hash": "sha256-ivrjda3meZJMpoCglss5cYXxeldsR8li76tILwNQO/g="
},
{
"pname": "Avalonia.Desktop",
"version": "12.1.0",
"hash": "sha256-bKqjBBIqTmFJ6qX4HHzHUM0B8qWOL6bQWX+FSkDEHI0="
},
{
"pname": "Avalonia.FreeDesktop",
"version": "12.1.0",
"hash": "sha256-ba4NDAxe4kp8TooGwws1HekMdF9MBezHbsYZb2Agjt4="
},
{
"pname": "Avalonia.FreeDesktop.AtSpi",
"version": "12.1.0",
"hash": "sha256-3CVUOuKLXjTvcEYozutyX/gLmjM5TsE69pSKM1CBaqE="
},
{
"pname": "Avalonia.HarfBuzz",
"version": "12.1.0",
"hash": "sha256-0uxtp+KmAFQz78Szvxa4hwo/vLNSkdgvcCynpaSeCjQ="
},
{
"pname": "Avalonia.Markup.Xaml.Loader",
"version": "12.1.0",
"hash": "sha256-P05Q1d4malCTuBqEHePfjcKFgqnz1SmmxjPzypshVDk="
},
{
"pname": "Avalonia.Native",
"version": "12.1.0",
"hash": "sha256-fshmU1Px5n8nRGmKKevLi0zPgyZJSNF3N0bqdiYQFPg="
},
{
"pname": "Avalonia.Remote.Protocol",
"version": "12.1.0",
"hash": "sha256-PXrrCyFLIdrcEnNUz2ZzjFjs65hVaxEm5h/ux8tOo0k="
},
{
"pname": "Avalonia.Skia",
"version": "12.1.0",
"hash": "sha256-6f/isIqnWUCEeWlfooN32tkbi78DKdBBuTka70br9U4="
},
{
"pname": "Avalonia.Themes.Fluent",
"version": "12.1.0",
"hash": "sha256-lvDXmhWLaB20IzRXKdrl6lTEF86nNd9MbZ7FspDK0wc="
},
{
"pname": "Avalonia.Win32",
"version": "12.1.0",
"hash": "sha256-eU0pezq/1PLB/iDGDt9NWn183uSr29P3Nr58vYsQztM="
},
{
"pname": "Avalonia.X11",
"version": "12.1.0",
"hash": "sha256-n2QWzUw5UsDtMEHI/MSkbPFucdStdz/1gLDqVR5zW/A="
},
{
"pname": "AvaloniaEdit.TextMate",
"version": "12.0.0",
"hash": "sha256-LEmuy0CF8zQiChzpv3kLJZMUhRQo4u7/+yu4ls0BkPk="
},
{
"pname": "CommunityToolkit.Mvvm",
"version": "8.4.2",
"hash": "sha256-jLS1vo6V+fHsJs80HYT77oJE6IEC68fIgkLpYODjWAU="
},
{
"pname": "Fody",
"version": "6.9.3",
"hash": "sha256-JLom3mbO4NCUXDHoU86l720QXlRx52+ROb5wBwcC5nM="
},
{
"pname": "HarfBuzzSharp",
"version": "8.3.1.3",
"hash": "sha256-/+ZEhjpOs8B4tMPw3vDyuQqGGZHJEWvy3WaKMaDwmrU="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Linux",
"version": "8.3.1.3",
"hash": "sha256-feWOna/8ncvmrq7CxnDczv1facV2poZV5R+OyCtocpU="
},
{
"pname": "HarfBuzzSharp.NativeAssets.macOS",
"version": "8.3.1.3",
"hash": "sha256-6WKsJ/jF9pHnaWcQvaezc5AV6flu3XsOxQs7i4BGYJs="
},
{
"pname": "HarfBuzzSharp.NativeAssets.WebAssembly",
"version": "8.3.1.3",
"hash": "sha256-arBiI82fXPjAqftqnG7Wc3BRzZ6+vKd7b58vQSWJVk0="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Win32",
"version": "8.3.1.3",
"hash": "sha256-WNUQmLWVFSwBKT9x7UdhSz9T2FA7wibvwjuPew/3yUM="
},
{
"pname": "Magick.NET-Q8-AnyCPU",
"version": "14.15.0",
"hash": "sha256-rzsySipyIu0sqGbRywGUoPly04ZkgWu1WHYJLdz/R8M="
},
{
"pname": "Magick.NET.Core",
"version": "14.15.0",
"hash": "sha256-ekZGCFewYrB7zzarJ4N51F+B+4xyPUXULc8EuNMu8y0="
},
{
"pname": "MicroCom.Runtime",
"version": "0.11.6",
"hash": "sha256-RTr200R3sZuyxi0XQ25ox2p1kVt5R1CbH/YBs21+eNg="
},
{
"pname": "Microsoft.Bcl.AsyncInterfaces",
"version": "10.0.9",
"hash": "sha256-grzyENbFc7Ct0dgmUgSn1Tr3ndM1fdlQGiSBLzYtC9c="
},
{
"pname": "Microsoft.CodeAnalysis.Analyzers",
"version": "5.3.0",
"hash": "sha256-eUjU7MDekcbDQxUButcWK7siHx6HmrgdDMLnpGYRVLM="
},
{
"pname": "Microsoft.CodeAnalysis.Common",
"version": "5.6.0",
"hash": "sha256-Q+34cKCUHLMUdigLSuCunqcpAzagynq7O6LJ09EPu6g="
},
{
"pname": "Microsoft.CodeAnalysis.CSharp",
"version": "5.6.0",
"hash": "sha256-nrzGZk9oLuCEvhDT+IS+XBVOuHVrwL8RGj0rZFP4SRo="
},
{
"pname": "Microsoft.CodeAnalysis.CSharp.Scripting",
"version": "5.6.0",
"hash": "sha256-p9JX0s8zY1+ZfBGHe/geWvMlNwCsOqWubs7nDXT6mmc="
},
{
"pname": "Microsoft.CodeAnalysis.Scripting.Common",
"version": "5.6.0",
"hash": "sha256-qbH8tUlbfRcaRD5xIPBfRHannv/9vibd/6VaRqhAaGw="
},
{
"pname": "Microsoft.Extensions.DependencyInjection",
"version": "10.0.10",
"hash": "sha256-SZDbEORdMQa+Zg9F29lP5By7jaT5b9XLj8LAx7j1EZA="
},
{
"pname": "Microsoft.Extensions.DependencyInjection.Abstractions",
"version": "10.0.10",
"hash": "sha256-2r+Qvd0u3zODfQ1NAL+qu+W5XGaqJjm31bG6SGJKZn0="
},
{
"pname": "NETStandard.Library.Ref",
"version": "2.1.0",
"hash": "sha256-Ruovy9EKgXaFuFr3zgw5fRKUS9yBIJ4nLeHgXv0zx4o="
},
{
"pname": "Onigwrap",
"version": "1.0.10",
"hash": "sha256-x1TJeOdANiWDdwgN+GsFznHMgPUnq/6iSN0BlIt0QJM="
},
{
"pname": "PropertyChanged.Fody",
"version": "4.1.0",
"hash": "sha256-SAId/w7y5RZqMnpnJ6nmMjaPXQIr2h6QsRKZ4yuoYYU="
},
{
"pname": "SDL3-CS",
"version": "3.4.12.3",
"hash": "sha256-9UT8oE8M3VTIA7uOtayZSNAvA+XI6fEW9mFkB9AMAds="
},
{
"pname": "SDL3-CS.Linux",
"version": "3.4.12.1",
"hash": "sha256-JimlbIjGhwBl1sMAJWSrezfchuRT8Ckod9YCpHuZIDQ="
},
{
"pname": "SDL3-CS.Linux.Mixer",
"version": "3.2.4.7",
"hash": "sha256-rC5wHSBtrULfSJJN1ADeJS0yfU4FQ+KkZPw1pDkMvhs="
},
{
"pname": "SDL3-CS.MacOS",
"version": "3.4.12.1",
"hash": "sha256-8DDNP7vV0CyF3zcyJu5zew5V/+yu7gVV3fXLhG0Lmog="
},
{
"pname": "SDL3-CS.MacOS.Mixer",
"version": "3.2.4.7",
"hash": "sha256-BfA5lAczIeFzlpnXSkn7U7yAYP14P86h2JnmieskKtI="
},
{
"pname": "SDL3-CS.Windows",
"version": "3.4.12.1",
"hash": "sha256-vxV9ugWZMRWx0rsnbzcW+CRNK0pTBFl88sy9PJoZrTM="
},
{
"pname": "SDL3-CS.Windows.Mixer",
"version": "3.2.4.7",
"hash": "sha256-AramqrgeWC7EHT7S23gZ23I7+6y4UbP4JTYB+7uOCLE="
},
{
"pname": "SharpZipLib",
"version": "1.4.2",
"hash": "sha256-/giVqikworG2XKqfN9uLyjUSXr35zBuZ2FX2r8X/WUY="
},
{
"pname": "SkiaSharp",
"version": "4.150.1",
"hash": "sha256-Kda85aDEECz51qD3JqUPOaG3Hthrp38Byn6zJWFa1KA="
},
{
"pname": "SkiaSharp.NativeAssets.Linux",
"version": "4.150.1",
"hash": "sha256-zIgOIv6PW+w6gr2NOqA5R6ruX4GB2nammKJf8TvBFRg="
},
{
"pname": "SkiaSharp.NativeAssets.macOS",
"version": "4.150.1",
"hash": "sha256-NYTJvHOfHAOjKqqwBiVSjsy1MiM2cm6NxXAnzcS09vg="
},
{
"pname": "SkiaSharp.NativeAssets.WebAssembly",
"version": "3.119.4",
"hash": "sha256-xLfsWBsFFpv5Qg79GIMi+5CM6YDfcg//oywNlB5Y3J0="
},
{
"pname": "SkiaSharp.NativeAssets.Win32",
"version": "4.150.1",
"hash": "sha256-HhcG5jO8CCTsybT2XLNe7chmsc21JyXp0/9NyQ1Fvvo="
},
{
"pname": "System.IO.Pipelines",
"version": "10.0.9",
"hash": "sha256-mOoa73lPXvGGA56igef9alNU/nc+nQEOHPJu44dHepc="
},
{
"pname": "System.Reactive",
"version": "5.0.0",
"hash": "sha256-M5Z8pw8rVb8ilbnTdaOptzk5VFd5DlKa7zzCpuytTtE="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "6.1.2",
"hash": "sha256-X2p/U680Zfkr622oc+vg5JYgbDEzE7mLre5DVaayWTc="
},
{
"pname": "System.Text.Encodings.Web",
"version": "10.0.9",
"hash": "sha256-YBpgyDvUYB44J84TtkIJkDh4c42grtn9fmxgV073FxQ="
},
{
"pname": "System.Text.Json",
"version": "10.0.9",
"hash": "sha256-7LNfBJ5Q/yxOuFa6d0mEIBNJEfO/UN5J13qbIFIo/5A="
},
{
"pname": "TextMateSharp",
"version": "2.0.3",
"hash": "sha256-mYZPeBWt2ek3I7oSRiXcOqcpQMjEbD6wR5CtHIHSLko="
},
{
"pname": "TextMateSharp.Grammars",
"version": "2.0.3",
"hash": "sha256-DiYxCPBg0jPcdlhduTMlCWOOY9Mc77Qt/aCGEPEgFEQ="
},
{
"pname": "Tmds.DBus.Protocol",
"version": "0.94.1",
"hash": "sha256-T3HQasQOcl/7zxt5hT3ZMhhpWoTyPTb6/IX0d6TJWA8="
},
{
"pname": "TreeDataGrid",
"version": "12.0.0",
"hash": "sha256-aaHSfvhaVik9XLYLpp0N9PxRe4GG1BTigWNMV3Qlc7g="
},
{
"pname": "Xaml.Behaviors",
"version": "12.0.5",
"hash": "sha256-bjX7WNXVabvB2ZYCLVp4rnVO5CKz+8NKtVvpAnDw97o="
}
]
-122
View File
@@ -1,122 +0,0 @@
{
lib,
buildDotnetModule,
fetchFromGitHub,
dotnetCorePackages,
autoPatchelfHook,
stdenv,
sdl3,
fontconfig,
libglvnd,
mesa,
sndio,
libGL,
libx11,
libice,
libsm,
libxcursor,
libxrandr,
libxft,
vulkan-headers,
vulkan-loader,
}:
let
rev = "eec5e7d07b63cb4caf82250914dba8ddd4044bbb";
buildDotnetModule' = buildDotnetModule.override {
addNuGetDeps = dotnetCorePackages.addNuGetDeps.override {
fetchNupkg =
let
baseOverrides = builtins.removeAttrs dotnetCorePackages.fetchNupkg.overrides or { } [ ];
in
dotnetCorePackages.fetchNupkg.override {
overrides = baseOverrides // {
"SkiaSharp.NativeAssets.Linux" =
package:
package.overrideAttrs (
old:
lib.optionalAttrs stdenv.hostPlatform.isLinux {
autoPatchelfIgnoreMissingDeps = (old.autoPatchelfIgnoreMissingDeps or [ ]) ++ [
"libc.musl-x86_64.so.1"
];
}
);
};
};
};
};
in
buildDotnetModule' {
pname = "undertale-mod-tool";
version = "8.9.10";
src = fetchFromGitHub {
owner = "luizzeroxis";
repo = "UndertaleModTool";
inherit rev;
hash = "sha256-QLQZC5C3o9U2PC+rZWfKFbul7BaIHxbu9u8AZaKFtmI=";
fetchSubmodules = true;
};
projectFile = "UndertaleModToolAvalonia/UndertaleModToolAvalonia.csproj";
nugetDeps = ./deps.json;
dotnet-sdk = dotnetCorePackages.sdk_10_0;
executables = [ "UndertaleModToolAvalonia" ];
autoPatchelfIgnoreMissingDeps = [
"libsteam_api.so"
"libGLES_CM.so.1"
];
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
stdenv.cc.cc.lib # provides libstdc++.so.6
fontconfig
sdl3
libx11
libglvnd
libGL
mesa
sndio
vulkan-headers
vulkan-loader
];
runtimeDependencies = [
stdenv.cc.cc.lib
libx11
sdl3
];
runtimeDeps = [
sdl3
libx11
libxcursor
libice
libsm
libxrandr
libxft
fontconfig
];
dotnetBuildFlags = [
"-p:BuildHash=${rev}"
"-p:PublishSingleFile=false"
"/p:RuntimeIdentifier="
"--no-self-contained"
];
postInstall = ''
# Disable this temporarily
#ln -s $out/bin/UndertaleModToolAvalonia $out/bin/undertalemodtool
'';
meta = with lib; {
description = "Avalonia cross-platform GUI port of UndertaleModTool";
homepage = "https://github.com/luizzeroxis/UndertaleModTool/tree/avalonia";
license = licenses.gpl3Only;
platforms = platforms.linux;
mainProgram = "undertalemodtool";
};
}
@@ -1,25 +0,0 @@
{
fetchFromGitHub,
rustPlatform,
libseccomp,
libcap_ng,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "virtiofsd";
version = "daea013daf5cdc0adc6ae14de92e3a48ac206eae";
src = fetchFromGitHub {
owner = "ELginas";
repo = "virtiofsd";
rev = "daea013daf5cdc0adc6ae14de92e3a48ac206eae";
hash = "sha256-3p9WoUInWh+fmUkiMCjl2Tygx2/reUyKX+3xvMsW26w=";
};
buildInputs = [
libseccomp
libcap_ng
];
cargoHash = "sha256-rKlm8TpCKc+Nzb9+H0FPs5GSNNjWs5/xNpSd0ZZuQt0=";
})
-292
View File
@@ -1,292 +0,0 @@
[
{
"pname": "Castle.Core",
"version": "4.4.1",
"hash": "sha256-J4NS8p9KqbuLl6JMmNwptsfccH37TfhAhPwX2mVQso0="
},
{
"pname": "CommandLineParser",
"version": "2.9.1",
"hash": "sha256-ApU9y1yX60daSjPk3KYDBeJ7XZByKW8hse9NRZGcjeo="
},
{
"pname": "Config.Net",
"version": "4.19.0",
"hash": "sha256-Nb4ftf+RREzgiVOpc+xSxd4b+PiLGmFQM3okA/wGO54="
},
{
"pname": "goaaats.Steamworks",
"version": "2.3.4",
"hash": "sha256-Wk9arQvVPPeMSgt8lL9rVRVkO1NrBNYzME4ZuOWcHc4="
},
{
"pname": "Hexa.NET.ImGui",
"version": "2.2.9",
"hash": "sha256-hprgiqfXjuQ+I1wMk4+ddFiQ5/r7S1KZNZShU6L5nG8="
},
{
"pname": "Hexa.NET.ImGui.Backends.SDL3",
"version": "1.0.18",
"hash": "sha256-ciEA775X+sjWVT1HAg+7OxThZOrnUKa2/eSfzQtG7GY="
},
{
"pname": "Hexa.NET.SDL3",
"version": "1.2.16",
"hash": "sha256-oSJkPJor4K4KPiN2CC67BCHVxgDXmiCf5GdS9b+JaII="
},
{
"pname": "Hexa.NET.SDL3.Image",
"version": "1.0.0",
"hash": "sha256-SPNwM1w6ksZeZYFrNvforIMvgDIvbj1nRcMDTOA9/Kc="
},
{
"pname": "HexaGen.Runtime",
"version": "1.1.18",
"hash": "sha256-eitF6L6LKuCV2nY2Y0i9kRV+FAiaCbSp6BvSSEpqMrA="
},
{
"pname": "HexaGen.Runtime",
"version": "1.1.21",
"hash": "sha256-OZdIwCjInJ6KAWmPcKs0VN/o4AcY2k427JdtOf9N9Mk="
},
{
"pname": "KeySharp",
"version": "1.0.5",
"hash": "sha256-pJWjjU3AFsnMMX6cUoLUy4wovyfPx4S44Y6coMAGgcU="
},
{
"pname": "Microsoft.CodeAnalysis.Analyzers",
"version": "3.3.3",
"hash": "sha256-pkZiggwLw8k+CVSXKTzsVGsT+K49LxXUS3VH5PNlpCY="
},
{
"pname": "Microsoft.CodeAnalysis.BannedApiAnalyzers",
"version": "3.3.4",
"hash": "sha256-YPTHTZ8xRPMLADdcVYRO/eq3O9uZjsD+OsGRZE+0+e8="
},
{
"pname": "Microsoft.CodeAnalysis.BannedApiAnalyzers",
"version": "4.14.0",
"hash": "sha256-f7svtnkq4xLTjGVj6kNZ1ZGFCV/RESsM+GJZmEpezh4="
},
{
"pname": "Microsoft.CodeAnalysis.Common",
"version": "4.0.1",
"hash": "sha256-SU1WPMlg2245w9BFhS3GHtEEbus+tVAYaemHCW3Ysis="
},
{
"pname": "Microsoft.CodeAnalysis.CSharp",
"version": "4.0.1",
"hash": "sha256-i6XtEcymf17CcDkiEFZ6zSuLJdlEt3aZ2oLf81x00sA="
},
{
"pname": "Microsoft.CodeAnalysis.NetAnalyzers",
"version": "10.0.101",
"hash": "sha256-7rrB4tBiF3t+yoHcg170KlypFS/Z7xAPOM9OQZOs1Yg="
},
{
"pname": "Microsoft.CodeAnalysis.NetAnalyzers",
"version": "9.0.0",
"hash": "sha256-UBTANXmzAS6KuCKDIGhi0MGphAI83FizpRCPebqJ9GE="
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "1.1.0",
"hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="
},
{
"pname": "Microsoft.Win32.Registry",
"version": "6.0.0-preview.5.21301.5",
"hash": "sha256-7Fu8oYHKsOxecDC7wT0aJR/GOPaq9W1k0SgKa5AW4Qg="
},
{
"pname": "Microsoft.Win32.SystemEvents",
"version": "6.0.0",
"hash": "sha256-N9EVZbl5w1VnMywGXyaVWzT9lh84iaJ3aD48hIBk1zA="
},
{
"pname": "NETStandard.Library",
"version": "1.6.1",
"hash": "sha256-iNan1ix7RtncGWC9AjAZ2sk70DoxOsmEOgQ10fXm4Pw="
},
{
"pname": "NETStandard.Library",
"version": "2.0.3",
"hash": "sha256-Prh2RPebz/s8AzHb2sPHg3Jl8s31inv9k+Qxd293ybo="
},
{
"pname": "Newtonsoft.Json",
"version": "13.0.3",
"hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc="
},
{
"pname": "PInvoke.Kernel32",
"version": "0.7.124",
"hash": "sha256-E65U364mp9V8SzkT2/oVg1f0Ts9Q1deRLeOUK3QhIlg="
},
{
"pname": "PInvoke.Windows.Core",
"version": "0.7.124",
"hash": "sha256-n/7Y6MkUVYr1bgT8OUkl0YpOd5AFgzHEUlEN+EKyE5s="
},
{
"pname": "Serilog",
"version": "4.0.0",
"hash": "sha256-j8hQ5TdL1TjfdGiBO9PyHJFMMPvATHWN1dtrrUZZlNw="
},
{
"pname": "Serilog",
"version": "4.1.0",
"hash": "sha256-r89nJ5JE5uZlsRrfB8QJQ1byVVfCWQbySKQ/m9PYj0k="
},
{
"pname": "Serilog",
"version": "4.2.0",
"hash": "sha256-7f3EpCsEbDxXgsuhE430KVI14p7oDUuCtwRpOCqtnbs="
},
{
"pname": "Serilog",
"version": "4.3.0",
"hash": "sha256-jyIy4BjsyFXge3aO4GRFAdnX4/rz1MHfBkBDIpCDsTw="
},
{
"pname": "Serilog.Enrichers.Sensitive",
"version": "1.7.3",
"hash": "sha256-1HnnaGEwTiDo11w5wWdjDxNxVO4WLFBnAggxmyZCYIg="
},
{
"pname": "Serilog.Enrichers.Thread",
"version": "4.0.0",
"hash": "sha256-lo+3ohNHKe/hTq9vGbk29p/OWcNlcyJToGL6EpCJQm8="
},
{
"pname": "Serilog.Sinks.Async",
"version": "2.1.0",
"hash": "sha256-LDoLpXkleD2MVPK2KBsLGRf5yqrwckBiAnYDbuIbaUM="
},
{
"pname": "Serilog.Sinks.Console",
"version": "6.0.0",
"hash": "sha256-QH8ykDkLssJ99Fgl+ZBFBr+RQRl0wRTkeccQuuGLyro="
},
{
"pname": "Serilog.Sinks.Debug",
"version": "3.0.0",
"hash": "sha256-7/LmoRF1rUDFhJ47bTRQQFRgSHnZDO8484r3sCGqYvE="
},
{
"pname": "Serilog.Sinks.File",
"version": "6.0.0",
"hash": "sha256-KQmlUpG9ovRpNqKhKe6rz3XMLUjkBqjyQhEm2hV5Sow="
},
{
"pname": "Serilog.Sinks.File",
"version": "7.0.0",
"hash": "sha256-LxZYUoUPkCjIIVarJilnXnqQiMrFNJtoRilmzTNtUjo="
},
{
"pname": "SharedMemory",
"version": "2.3.2",
"hash": "sha256-HFW3T9erIDZnjO7qldQx5eRbsib52MSYdOIiCZZSGB0="
},
{
"pname": "System.Buffers",
"version": "4.5.1",
"hash": "sha256-wws90sfi9M7kuCPWkv1CEYMJtCqx9QB/kj0ymlsNaxI="
},
{
"pname": "System.Collections.Immutable",
"version": "5.0.0",
"hash": "sha256-GdwSIjLMM0uVfE56VUSLVNgpW0B//oCeSFj8/hSlbM8="
},
{
"pname": "System.Configuration.ConfigurationManager",
"version": "6.0.0",
"hash": "sha256-fPV668Cfi+8pNWrvGAarF4fewdPVEDwlJWvJk0y+Cms="
},
{
"pname": "System.Drawing.Common",
"version": "6.0.0",
"hash": "sha256-/9EaAbEeOjELRSMZaImS1O8FmUe8j4WuFUw1VOrPyAo="
},
{
"pname": "System.Memory",
"version": "4.5.4",
"hash": "sha256-3sCEfzO4gj5CYGctl9ZXQRRhwAraMQfse7yzKoRe65E="
},
{
"pname": "System.Memory",
"version": "4.6.0",
"hash": "sha256-OhAEKzUM6eEaH99DcGaMz2pFLG/q/N4KVWqqiBYUOFo="
},
{
"pname": "System.Numerics.Vectors",
"version": "4.4.0",
"hash": "sha256-auXQK2flL/JpnB/rEcAcUm4vYMCYMEMiWOCAlIaqu2U="
},
{
"pname": "System.Reflection.Emit.Lightweight",
"version": "4.7.0",
"hash": "sha256-V0Wz/UUoNIHdTGS9e1TR89u58zJjo/wPUWw6VaVyclU="
},
{
"pname": "System.Reflection.Metadata",
"version": "5.0.0",
"hash": "sha256-Wo+MiqhcP9dQ6NuFGrQTw6hpbJORFwp+TBNTq2yhGp8="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "4.5.2",
"hash": "sha256-8eUXXGWO2LL7uATMZye2iCpQOETn2jCcjUhG6coR5O8="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "4.5.3",
"hash": "sha256-lnZMUqRO4RYRUeSO8HSJ9yBHqFHLVbmenwHWkIU20ak="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "5.0.0",
"hash": "sha256-neARSpLPUzPxEKhJRwoBzhPxK+cKIitLx7WBYncsYgo="
},
{
"pname": "System.Security.AccessControl",
"version": "6.0.0-preview.5.21301.5",
"hash": "sha256-/rXZ6FJNEN3EuqOsCgCuypBOpA0hQyYIQXbsGccfLow="
},
{
"pname": "System.Security.Cryptography.ProtectedData",
"version": "6.0.0",
"hash": "sha256-Wi9I9NbZlpQDXgS7Kl06RIFxY/9674S7hKiYw5EabRY="
},
{
"pname": "System.Security.Permissions",
"version": "6.0.0",
"hash": "sha256-/MMvtFWGN/vOQfjXdOhet1gsnMgh6lh5DCHimVsnVEs="
},
{
"pname": "System.Security.Principal.Windows",
"version": "6.0.0-preview.5.21301.5",
"hash": "sha256-p0ROK7zJPz4EmNdjgAz2eX8dOMVHhpvQLTU7JveMceA="
},
{
"pname": "System.Text.Encoding.CodePages",
"version": "4.5.1",
"hash": "sha256-PIhkv59IXjyiuefdhKxS9hQfEwO9YWRuNudpo53HQfw="
},
{
"pname": "System.Text.Json",
"version": "9.0.2",
"hash": "sha256-kftKUuGgZtF4APmp77U79ws76mEIi+R9+DSVGikA5y8="
},
{
"pname": "System.Threading.Tasks.Extensions",
"version": "4.5.4",
"hash": "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng="
},
{
"pname": "System.Windows.Extensions",
"version": "6.0.0",
"hash": "sha256-N+qg1E6FDJ9A9L50wmVt3xPQV8ZxlG1xeXgFuxO+yfM="
}
]
-140
View File
@@ -1,140 +0,0 @@
{
lib,
buildDotnetModule,
fetchFromGitHub,
dotnetCorePackages,
sdl3,
libdecor,
libsecret,
glib,
gnutls,
aria2,
steam,
gst_all_1,
copyDesktopItems,
makeDesktopItem,
makeWrapper,
useSteamRun ? true,
}:
let
rev = "1.4.0";
in
buildDotnetModule rec {
pname = "XIVLauncher";
version = rev;
src = fetchFromGitHub {
owner = "goatcorp";
repo = "XIVLauncher.Core";
inherit rev;
hash = "sha256-kEMqqwlp+ZHjrEz6K7nYXyi0L8VAy1rHW2bOHEk1F6M=";
fetchSubmodules = true;
};
patches = [ ./patches/no-check-wine64.patch ];
nativeBuildInputs = [
copyDesktopItems
makeWrapper
];
buildInputs = with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
gst-libav
];
projectFile = "src/XIVLauncher.Core/XIVLauncher.Core.csproj";
# File generated with `nix-build -A xivlauncher.passthru.fetch-deps`.
nugetDeps = ./deps.json;
# Please do not unpin these even if they match the defaults, xivlauncher is sensitive to .NET versions.
dotnet-sdk =
with dotnetCorePackages;
sdk_10_0
// {
inherit (sdk_9_0)
packages
targetPackages
;
};
dotnetFlags = [
"-p:BuildHash=${rev}"
"-p:PublishSingleFile=false"
];
postPatch = ''
substituteInPlace lib/FFXIVQuickLauncher/src/XIVLauncher.Common/Game/Patch/Acquisition/Aria/AriaPatchAcquisition.cs \
--replace-fail 'ariaPath = "aria2c"' 'ariaPath = "${aria2}/bin/aria2c"'
'';
postInstall = ''
mkdir -p $out/share/pixmaps
cp src/XIVLauncher.Core/Resources/logo.png $out/share/pixmaps/xivlauncher.png
'';
postFixup =
lib.optionalString useSteamRun (
let
steam-run =
(steam.override {
extraPkgs = pkgs: [ pkgs.libunwind ];
extraProfile = ''
unset TZ
'';
}).run;
in
''
substituteInPlace $out/bin/XIVLauncher.Core \
--replace-fail 'exec' 'exec ${steam-run}/bin/steam-run'
''
)
+ ''
wrapProgram $out/bin/XIVLauncher.Core --prefix GST_PLUGIN_SYSTEM_PATH_1_0 ":" "$GST_PLUGIN_SYSTEM_PATH_1_0"
# The reference to aria2 gets mangled as UTF-16LE and isn't detectable by nix: https://github.com/NixOS/nixpkgs/issues/220065
mkdir -p $out/nix-support
echo ${aria2} >> $out/nix-support/depends
'';
executables = [ "XIVLauncher.Core" ];
runtimeDeps = [
sdl3
libdecor
libsecret
glib
gnutls
];
desktopItems = [
(makeDesktopItem {
name = "xivlauncher";
exec = "XIVLauncher.Core";
icon = "xivlauncher";
desktopName = "XIVLauncher";
comment = meta.description;
categories = [ "Game" ];
startupWMClass = "XIVLauncher.Core";
})
];
meta = {
description = "Custom launcher for FFXIV";
homepage = "https://github.com/goatcorp/XIVLauncher.Core";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [
blooym
keysmashes
witchof0x20
];
platforms = [ "x86_64-linux" ];
mainProgram = "XIVLauncher.Core";
};
}
@@ -1,26 +0,0 @@
diff --git a/src/XIVLauncher.Common.Unix/Compatibility/CompatibilityTools.cs b/src/XIVLauncher.Common.Unix/Compatibility/CompatibilityTools.cs
index 864000f..510e4ff 100644
--- a/src/XIVLauncher.Common.Unix/Compatibility/CompatibilityTools.cs
+++ b/src/XIVLauncher.Common.Unix/Compatibility/CompatibilityTools.cs
@@ -28,7 +28,7 @@ public class CompatibilityTools
private string WineBinPath => Settings.StartupType == WineStartupType.Managed ?
Path.Combine(wineDirectory.FullName, Settings.Release.Name, "bin") :
Settings.CustomBinPath;
- private string Wine64Path => Path.Combine(WineBinPath, "wine64");
+ private string Wine64Path => Path.Combine(WineBinPath, "wine");
private string WineServerPath => Path.Combine(WineBinPath, "wineserver");
private readonly DxvkVersion dxvkVersion;
diff --git a/src/XIVLauncher.Core/Components/MainPage/MainPage.cs b/src/XIVLauncher.Core/Components/MainPage/MainPage.cs
index 3943c15..ee44782 100644
--- a/src/XIVLauncher.Core/Components/MainPage/MainPage.cs
+++ b/src/XIVLauncher.Core/Components/MainPage/MainPage.cs
@@ -688,7 +688,7 @@ public class MainPage : Page
else if (!Directory.Exists(App.Settings.WineBinaryPath))
throw new InvalidOperationException("Custom wine binary path is invalid: no such directory.\n" +
"Check path carefully for typos: " + App.Settings.WineBinaryPath);
- else if (!File.Exists(Path.Combine(App.Settings.WineBinaryPath, "wine64")))
+ else if (!File.Exists(Path.Combine(App.Settings.WineBinaryPath, "wine")))
throw new InvalidOperationException("Custom wine binary path is invalid: no wine64 found at that location.\n" +
"Check path carefully for typos: " + App.Settings.WineBinaryPath);