Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,7 @@ s3-data/
.ruff_cache/
# S3
data/

# Nix
result
.direnv/
61 changes: 61 additions & 0 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

98 changes: 98 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{
description = "InvenioRDM development environment";

inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};

outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
in
{
devShells.default = pkgs.mkShell {
name = "invenio-rdm";

packages = with pkgs; [
uv

nodejs_22
pnpm
corepack

gcc
gnumake
pkg-config
autoconf
automake
libtool

libxcrypt
libxml2
libxslt
xmlsec
cairo
openssl
zlib
libffi
readline
git
];

shellHook = ''
# Add needed C libraries to path
export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath [
pkgs.libxcrypt
pkgs.libxml2
pkgs.libxslt
pkgs.xmlsec
pkgs.cairo
pkgs.openssl
pkgs.zlib
pkgs.libffi
pkgs.readline
pkgs.stdenv.cc.cc.lib
]}''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

export LIBRARY_PATH="${pkgs.lib.makeLibraryPath [
pkgs.libxcrypt
pkgs.libxml2
pkgs.libxslt
pkgs.xmlsec
pkgs.cairo
pkgs.openssl
pkgs.zlib
pkgs.libffi
pkgs.readline
pkgs.stdenv.cc.cc.lib
]}''${LIBRARY_PATH:+:$LIBRARY_PATH}"

export C_INCLUDE_PATH="${pkgs.lib.makeSearchPathOutput "dev" "include" [
pkgs.libxcrypt
pkgs.libxml2
pkgs.libxslt
pkgs.xmlsec
pkgs.cairo
pkgs.openssl
pkgs.zlib
pkgs.libffi
pkgs.readline
]}''${C_INCLUDE_PATH:+:$C_INCLUDE_PATH}"

export PKG_CONFIG_PATH="${pkgs.lib.makeSearchPathOutput "dev" "lib/pkgconfig" [
pkgs.libxcrypt
pkgs.libxml2
pkgs.libxslt
pkgs.xmlsec
pkgs.cairo
pkgs.openssl
pkgs.zlib
pkgs.libffi
]}''${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
'';
};
}
);
}