refactor: update flake and remove several un-needed packages as well as disabled libvirt
This commit is contained in:
@@ -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}
|
||||
@@ -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
|
||||
@@ -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="
|
||||
}
|
||||
]
|
||||
@@ -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=";
|
||||
})
|
||||
@@ -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="
|
||||
}
|
||||
]
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user