diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 7178c8c0a1e..3b7329a8d79 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1640,6 +1640,11 @@ github = "hamhut1066"; name = "Hamish Hutchings"; }; + haslersn = { + email = "haslersn@fius.informatik.uni-stuttgart.de"; + github = "haslersn"; + name = "Sebastian Hasler"; + }; havvy = { email = "ryan.havvy@gmail.com"; github = "havvy"; diff --git a/pkgs/tools/filesystems/mkspiffs/default.nix b/pkgs/tools/filesystems/mkspiffs/default.nix new file mode 100644 index 00000000000..48f13925ab0 --- /dev/null +++ b/pkgs/tools/filesystems/mkspiffs/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, git }: + +# Changing the variables CPPFLAGS and BUILD_CONFIG_NAME can be done by +# overriding the same-named attributes. See ./presets.nix for examples. + +stdenv.mkDerivation rec { + name = "mkspiffs-${version}"; + version = "0.2.3"; + + src = fetchFromGitHub { + owner = "igrr"; + repo = "mkspiffs"; + rev = version; + fetchSubmodules = true; + sha256 = "1fgw1jqdlp83gv56mgnxpakky0q6i6f922niis4awvxjind8pbm1"; + }; + + nativeBuildInputs = [ git ]; + buildFlags = [ "dist" ]; + installPhase = '' + mkdir -p $out/bin + cp mkspiffs $out/bin + ''; + + meta = with stdenv.lib; { + description = "Tool to build and unpack SPIFFS images"; + license = licenses.mit; + homepage = https://github.com/igrr/mkspiffs; + maintainers = with maintainers; [ haslersn ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/filesystems/mkspiffs/presets.nix b/pkgs/tools/filesystems/mkspiffs/presets.nix new file mode 100644 index 00000000000..c0b74d9cf1b --- /dev/null +++ b/pkgs/tools/filesystems/mkspiffs/presets.nix @@ -0,0 +1,20 @@ +{ lib, mkspiffs }: + +# We provide the same presets as the upstream + +lib.mapAttrs ( + name: { CPPFLAGS }: + mkspiffs.overrideAttrs (drv: { + inherit CPPFLAGS; + BUILD_CONFIG_NAME = "-${name}"; + }) +) { + arduino-esp8266.CPPFLAGS = [ + "-DSPIFFS_USE_MAGIC_LENGTH=0" + "-DSPIFFS_ALIGNED_OBJECT_INDEX_TABLES=1" + ]; + + arduino-esp32.CPPFLAGS = [ "-DSPIFFS_OBJ_META_LEN=4" ]; + + esp-idf.CPPFLAGS = [ "-DSPIFFS_OBJ_META_LEN=4" ]; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 33a2b6455a2..e413e0dcf26 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1460,6 +1460,10 @@ with pkgs; metabase = callPackage ../servers/metabase { }; + mkspiffs = callPackage ../tools/filesystems/mkspiffs { }; + + mkspiffs-presets = recurseIntoAttrs (callPackages ../tools/filesystems/mkspiffs/presets.nix { }); + monetdb = callPackage ../servers/sql/monetdb { }; mp3blaster = callPackage ../applications/audio/mp3blaster { };