forked from marko/svitak
update flake
This commit is contained in:
parent
41201ebb58
commit
3001f66d64
3 changed files with 97 additions and 81 deletions
8
flake.lock
generated
8
flake.lock
generated
|
|
@ -2,16 +2,16 @@
|
|||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1754923922,
|
||||
"narHash": "sha256-xRFTBIzOkHAyUJzWuGRoITGPvPTKYV+zedivG426Iqc=",
|
||||
"lastModified": 1771369470,
|
||||
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7b6142dae00643a9dfa37723a7bee73ffe54f8dc",
|
||||
"rev": "0182a361324364ae3f436a63005877674cf45efb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "7b6142dae006",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
|
|||
134
flake.nix
134
flake.nix
|
|
@ -2,97 +2,79 @@
|
|||
description = "svitak dev shell (GHC 9.12, GTK4, WebKit 6.0)";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/7b6142dae006";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs }: let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
|
||||
cLibs = with pkgs; [
|
||||
gtk4 webkitgtk_6_0 libsoup_3 glib
|
||||
atk pango cairo harfbuzz graphene gdk-pixbuf
|
||||
sysprof libsysprof-capture libadwaita
|
||||
|
||||
libpng freetype fontconfig pixman expat librsvg
|
||||
libjpeg libtiff libwebp libdeflate lcms2 woff2 jbigkit graphite2
|
||||
lerc libavif libheif openjpeg
|
||||
|
||||
bzip2 brotli zlib xz zstd lz4
|
||||
|
||||
wayland wayland-protocols libepoxy libGL libglvnd
|
||||
vulkan-headers vulkan-loader
|
||||
libx11 libxext libxrender libxi libxcursor
|
||||
libxfixes libxdamage libxcomposite libxrandr
|
||||
xorgproto libxcb libxkbcommon libdrm mesa
|
||||
libxau libxdmcp libxft libxinerama libxtst
|
||||
|
||||
gst_all_1.gstreamer gst_all_1.gst-plugins-base
|
||||
|
||||
libinput libevdev xkeyboard_config
|
||||
|
||||
fribidi libthai libdatrie icu pcre2 enchant shared-mime-info libxml2
|
||||
glibcLocales
|
||||
|
||||
libpsl nghttp2 gnutls libsecret libgcrypt libgpg-error libtasn1 p11-kit dbus
|
||||
|
||||
util-linux libselinux libsepol libffi sqlite
|
||||
];
|
||||
|
||||
allDeps = cLibs ++ [ pkgs.gobject-introspection ];
|
||||
|
||||
in {
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
|
||||
buildInputs = [
|
||||
# Haskell toolchain
|
||||
nativeBuildInputs = [
|
||||
pkgs.pkg-config
|
||||
pkgs.haskell.compiler.ghc912
|
||||
pkgs.cabal-install
|
||||
|
||||
# Build tools
|
||||
pkgs.pkg-config
|
||||
pkgs.zlib
|
||||
pkgs.libsysprof-capture
|
||||
pkgs.pcre2
|
||||
pkgs.libxdmcp
|
||||
pkgs.util-linux
|
||||
pkgs.libselinux
|
||||
pkgs.libsepol
|
||||
pkgs.libpsl
|
||||
pkgs.libnghttp2
|
||||
pkgs.libnghttp2_asio
|
||||
pkgs.nghttp2
|
||||
pkgs.fribidi
|
||||
pkgs.libthai
|
||||
pkgs.libdatrie
|
||||
pkgs.libdeflate
|
||||
pkgs.lerc
|
||||
pkgs.liblzma
|
||||
|
||||
# GTK stack
|
||||
pkgs.gtk4
|
||||
pkgs.webkitgtk_6_0
|
||||
pkgs.libsoup_3
|
||||
pkgs.glib
|
||||
pkgs.gobject-introspection
|
||||
pkgs.gdk-pixbuf
|
||||
pkgs.cairo
|
||||
pkgs.pango
|
||||
pkgs.atk
|
||||
|
||||
# X11 runtime
|
||||
pkgs.xorg.libX11
|
||||
pkgs.xorg.libXext
|
||||
pkgs.xorg.libXcursor
|
||||
pkgs.xorg.libXrandr
|
||||
pkgs.xorg.libXrender
|
||||
pkgs.xorg.libXfixes
|
||||
pkgs.xorg.libXcomposite
|
||||
pkgs.xorg.libXdamage
|
||||
pkgs.xorg.libXScrnSaver
|
||||
pkgs.xorg.libICE
|
||||
pkgs.xorg.libSM
|
||||
|
||||
# Optional but common
|
||||
pkgs.sqlite
|
||||
];
|
||||
|
||||
buildInputs = cLibs;
|
||||
|
||||
shellHook = ''
|
||||
echo "Entering svitak dev shell (GHC 9.12 + GTK4 + WebKit6)"
|
||||
unset GHC_PACKAGE_PATH
|
||||
|
||||
# Haskell GI needs pkg-config for gobject-introspection
|
||||
export PKG_CONFIG_PATH=${pkgs.gobject-introspection}/lib/pkgconfig
|
||||
export PKG_CONFIG_PATH="${pkgs.lib.makeSearchPathOutput "dev" "lib/pkgconfig" allDeps}:${pkgs.lib.makeSearchPath "lib/pkgconfig" allDeps}:${pkgs.lib.makeSearchPath "share/pkgconfig" allDeps}"
|
||||
|
||||
# Runtime libraries
|
||||
export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath [
|
||||
pkgs.webkitgtk_6_0
|
||||
pkgs.libsoup_3
|
||||
pkgs.gtk4
|
||||
pkgs.glib
|
||||
pkgs.gobject-introspection
|
||||
pkgs.gdk-pixbuf
|
||||
pkgs.cairo
|
||||
pkgs.pango
|
||||
pkgs.xorg.libX11
|
||||
pkgs.xorg.libXext
|
||||
pkgs.xorg.libXcursor
|
||||
pkgs.xorg.libXrandr
|
||||
pkgs.xorg.libXrender
|
||||
pkgs.xorg.libXfixes
|
||||
pkgs.xorg.libXcomposite
|
||||
pkgs.xorg.libXdamage
|
||||
pkgs.xorg.libXScrnSaver
|
||||
pkgs.xorg.libICE
|
||||
pkgs.xorg.libSM
|
||||
]}:$LD_LIBRARY_PATH
|
||||
export GI_TYPELIB_PATH="${pkgs.lib.makeSearchPathOutput "out" "lib/girepository-1.0" allDeps}:${pkgs.lib.makeSearchPath "lib/girepository-1.0" allDeps}"
|
||||
# play around with these if having trouble with the display:
|
||||
|
||||
# Fontconfig
|
||||
export FONTCONFIG_FILE="${pkgs.fontconfig.out}/etc/fonts/fonts.conf"
|
||||
|
||||
# # Force software rendering
|
||||
# export WEBKIT_DISABLE_DMABUF_RENDERER=1
|
||||
# export WEBKIT_DISABLE_COMPOSITING_MODE=1
|
||||
# export GSK_RENDERER=cairo
|
||||
|
||||
# export LOCALE_ARCHIVE="${pkgs.glibcLocales}/lib/locale/locale-archive"
|
||||
# export LC_ALL="en_US.UTF-8"
|
||||
|
||||
# Display fallback (Try Wayland first, then X11/Xwayland)
|
||||
# export XDG_RUNTIME_DIR="''${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"
|
||||
# export WAYLAND_DISPLAY="''${WAYLAND_DISPLAY:-wayland-0}"
|
||||
export GDK_BACKEND="wayland"
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
|
|
|||
34
manifest.scm
Normal file
34
manifest.scm
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
(use-modules (guix packages)
|
||||
(guix download)
|
||||
(guix build-system haskell)
|
||||
(gnu packages haskell-xyz)
|
||||
(gnu packages haskell-check)
|
||||
(gnu packages pkg-config)
|
||||
(gnu packages gtk)
|
||||
(gnu packages webkit)
|
||||
(gnu packages glib)
|
||||
(gnu packages xorg))
|
||||
|
||||
(package
|
||||
(name "svitak-dev-env")
|
||||
(version "0.1")
|
||||
(source #f) ; No source because this is just for a shell
|
||||
(build-system haskell-build-system)
|
||||
(inputs
|
||||
(list ghc
|
||||
cabal-install
|
||||
pkg-config
|
||||
;; The C libraries haskell-gi needs
|
||||
gtk
|
||||
webkitgtk
|
||||
glib
|
||||
at-spi2-core ; This replaces/provides the 'atk' pkg-config
|
||||
pango
|
||||
cairo
|
||||
gdk-pixbuf
|
||||
libx11
|
||||
zlib))
|
||||
(home-page #f)
|
||||
(synopsis "Development environment for svitak")
|
||||
(description "GHC, Cabal, and GTK4/WebKit dependencies.")
|
||||
(license #f))
|
||||
Loading…
Reference in a new issue