From 2c063fe250e019a44eba31e4f7857d0e35065b5b Mon Sep 17 00:00:00 2001 From: piegames Date: Wed, 8 Sep 2021 22:49:05 +0200 Subject: [PATCH 01/19] gnomeExtensions: add patch framework It's like Haskell's overlay system, but way more primitive. We simply pre-define some package overrides that are required for an automatically packaged extension to work. Ideally, all (or almost all) currently manually pacakged extensions will work this way. Since these are mostly just a few lines each, there is no need to split this up into a lot of small files. --- .../gnome/extensions/buildGnomeExtension.nix | 7 +++++-- pkgs/desktops/gnome/extensions/default.nix | 21 ++++++++++++------- .../gnome/extensions/extensionPatches.nix | 14 +++++++++++++ 3 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 pkgs/desktops/gnome/extensions/extensionPatches.nix diff --git a/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix b/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix index 3be7f5c8789a..d661c853bbc1 100644 --- a/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix +++ b/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix @@ -36,9 +36,12 @@ let echo "${metadata}" | base64 --decode > $out/metadata.json ''; }; - buildCommand = '' + dontBuild = true; + installPhase = '' + runHook preInstall mkdir -p $out/share/gnome-shell/extensions/ - cp -r -T $src $out/share/gnome-shell/extensions/${uuid} + cp -r -T . $out/share/gnome-shell/extensions/${uuid} + runHook postInstall ''; meta = { description = builtins.head (lib.splitString "\n" description); diff --git a/pkgs/desktops/gnome/extensions/default.nix b/pkgs/desktops/gnome/extensions/default.nix index f98e2fb4e67a..2e5e2ade43e2 100644 --- a/pkgs/desktops/gnome/extensions/default.nix +++ b/pkgs/desktops/gnome/extensions/default.nix @@ -60,17 +60,24 @@ in rec { gnome38Extensions = mapUuidNames (produceExtensionsList "38"); gnome40Extensions = mapUuidNames (produceExtensionsList "40"); - gnomeExtensions = lib.recurseIntoAttrs ( - (mapReadableNames - (lib.attrValues (gnome40Extensions // (callPackages ./manuallyPackaged.nix {}))) - ) - // lib.optionalAttrs (config.allowAliases or true) { + gnomeExtensions = lib.trivial.pipe gnome40Extensions [ + # Apply some custom patches for automatically packaged extensions + (callPackage ./extensionPatches.nix {}) + # Add all manually packaged extensions + (extensions: extensions // (callPackages ./manuallyPackaged.nix {})) + # Map the extension UUIDs to readable names + (lib.attrValues) + (mapReadableNames) + # Add some aliases + (extensions: extensions // lib.optionalAttrs (config.allowAliases or true) { unite-shell = gnomeExtensions.unite; # added 2021-01-19 arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14 nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks."; mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md"; remove-dropdown-arrows = throw "gnomeExtensions.remove-dropdown-arrows removed since 2021-05-25: The extensions has not seen an update sine GNOME 3.34. Furthermore, the functionality it provides is obsolete as of GNOME 40."; - } - ); + }) + # Make the set "public" + lib.recurseIntoAttrs + ]; } diff --git a/pkgs/desktops/gnome/extensions/extensionPatches.nix b/pkgs/desktops/gnome/extensions/extensionPatches.nix new file mode 100644 index 000000000000..21c75ebf1966 --- /dev/null +++ b/pkgs/desktops/gnome/extensions/extensionPatches.nix @@ -0,0 +1,14 @@ +{ + lib, + ddcutil, + gjs, +}: +# A set of overrides for automatically packaged extensions that require some small fixes. +# The input must be an attribute set with the extensions' UUIDs as keys and the extension +# derivations as values. Output is the same, but with patches applied. +# +# Note that all source patches refer to the built extension as published on extensions.gnome.org, and not +# the upstream repository's sources. +super: super // { + +} From 0ce4ae676a817d028af86931ccd4a23f4e9fb4eb Mon Sep 17 00:00:00 2001 From: piegames Date: Wed, 8 Sep 2021 22:52:32 +0200 Subject: [PATCH 02/19] gnomeExtensions.brightness-control-using-ddcutil: Fix paths Fixes #136111. --- pkgs/desktops/gnome/extensions/extensionPatches.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/desktops/gnome/extensions/extensionPatches.nix b/pkgs/desktops/gnome/extensions/extensionPatches.nix index 21c75ebf1966..2188e06d4338 100644 --- a/pkgs/desktops/gnome/extensions/extensionPatches.nix +++ b/pkgs/desktops/gnome/extensions/extensionPatches.nix @@ -11,4 +11,12 @@ # the upstream repository's sources. super: super // { + "display-brightness-ddcutil@themightydeity.github.com" = super."display-brightness-ddcutil@themightydeity.github.com".overrideAttrs (old: { + # Has a hard-coded path to a run-time dependency + # https://github.com/NixOS/nixpkgs/issues/136111 + postPatch = '' + substituteInPlace "extension.js" --replace "/usr/bin/ddcutil" "${ddcutil}/bin/ddcutil" + ''; + }); + } From 48064d95d944709a7eb679c0129c424c63c52371 Mon Sep 17 00:00:00 2001 From: piegames Date: Wed, 8 Sep 2021 22:52:58 +0200 Subject: [PATCH 03/19] gnomeExtensions.screenshot-tool: Fix paths Fixes #136112. --- pkgs/desktops/gnome/extensions/extensionPatches.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/desktops/gnome/extensions/extensionPatches.nix b/pkgs/desktops/gnome/extensions/extensionPatches.nix index 2188e06d4338..182bdf6ecdfb 100644 --- a/pkgs/desktops/gnome/extensions/extensionPatches.nix +++ b/pkgs/desktops/gnome/extensions/extensionPatches.nix @@ -19,4 +19,14 @@ super: super // { ''; }); + "gnome-shell-screenshot@ttll.de" = super."gnome-shell-screenshot@ttll.de".overrideAttrs (old: { + # Requires gjs + # https://github.com/NixOS/nixpkgs/issues/136112 + postPatch = '' + for file in *.js; do + substituteInPlace $file --replace "gjs" "${gjs}/bin/gjs" + done + ''; + }); + } From 2de33b718400ee76eba738cdec846fc25ca4287a Mon Sep 17 00:00:00 2001 From: piegames Date: Sat, 11 Sep 2021 01:18:07 +0200 Subject: [PATCH 04/19] gnomeExtensions.tilingGnome: remove unstable in pname We want the pname to match a potential automatic packaging (if the extension is updated to support a more recent GNOME version) as closely as possible. --- pkgs/desktops/gnome/extensions/tilingnome/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/desktops/gnome/extensions/tilingnome/default.nix b/pkgs/desktops/gnome/extensions/tilingnome/default.nix index 42c6467dba80..fbf89ffa19c9 100644 --- a/pkgs/desktops/gnome/extensions/tilingnome/default.nix +++ b/pkgs/desktops/gnome/extensions/tilingnome/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchFromGitHub, glib, gnome }: stdenv.mkDerivation rec { - pname = "gnome-shell-extension-tilingnome-unstable"; + pname = "gnome-shell-extension-tilingnome"; version = "unstable-2019-09-19"; src = fetchFromGitHub { From 49041cd82eeae4d8413c79a10e46d8a1d9e8c083 Mon Sep 17 00:00:00 2001 From: piegames Date: Fri, 24 Sep 2021 20:42:18 +0200 Subject: [PATCH 05/19] gnomeExtensions: rename extensionPatches.nix to extensionOverrides.nix --- pkgs/desktops/gnome/extensions/default.nix | 2 +- .../extensions/{extensionPatches.nix => extensionOverrides.nix} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename pkgs/desktops/gnome/extensions/{extensionPatches.nix => extensionOverrides.nix} (100%) diff --git a/pkgs/desktops/gnome/extensions/default.nix b/pkgs/desktops/gnome/extensions/default.nix index 2e5e2ade43e2..2937cf6ac798 100644 --- a/pkgs/desktops/gnome/extensions/default.nix +++ b/pkgs/desktops/gnome/extensions/default.nix @@ -62,7 +62,7 @@ in rec { gnomeExtensions = lib.trivial.pipe gnome40Extensions [ # Apply some custom patches for automatically packaged extensions - (callPackage ./extensionPatches.nix {}) + (callPackage ./extensionOverrides.nix {}) # Add all manually packaged extensions (extensions: extensions // (callPackages ./manuallyPackaged.nix {})) # Map the extension UUIDs to readable names diff --git a/pkgs/desktops/gnome/extensions/extensionPatches.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix similarity index 100% rename from pkgs/desktops/gnome/extensions/extensionPatches.nix rename to pkgs/desktops/gnome/extensions/extensionOverrides.nix From ec4a1591007265384c0f036e265e5e38eff83231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 27 Sep 2021 17:28:35 +0200 Subject: [PATCH 06/19] transmission: fixes to make one test work again Broken by 37134b607 (PR #134007). --- pkgs/applications/networking/p2p/transmission/default.nix | 3 ++- pkgs/tools/networking/miniupnpc/default.nix | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix index 6e1367a6b4e5..312023566b02 100644 --- a/pkgs/applications/networking/p2p/transmission/default.nix +++ b/pkgs/applications/networking/p2p/transmission/default.nix @@ -97,7 +97,7 @@ in stdenv.mkDerivation { include include include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([ - curl libevent openssl pcre zlib + curl libevent openssl pcre zlib libnatpmp miniupnpc ] ++ lib.optionals enableSystemd [ systemd ] ++ lib.optionals stdenv.isLinux [ inotify-tools ] )}" @@ -116,6 +116,7 @@ in stdenv.mkDerivation { ''; passthru.tests = { + apparmor = nixosTests.transmission; # starts the service with apparmor enabled smoke-test = nixosTests.bittorrent; }; diff --git a/pkgs/tools/networking/miniupnpc/default.nix b/pkgs/tools/networking/miniupnpc/default.nix index 9fe476906bc6..0182440a8eb7 100644 --- a/pkgs/tools/networking/miniupnpc/default.nix +++ b/pkgs/tools/networking/miniupnpc/default.nix @@ -19,6 +19,8 @@ let makeFlags = [ "PREFIX=$(out)" "INSTALLPREFIX=$(out)" ]; + postInstall = ''chmod +x "$out"/lib/libminiupnpc.so''; + meta = with lib; { homepage = "http://miniupnp.free.fr/"; description = "A client that implements the UPnP Internet Gateway Device (IGD) specification"; From a708db61348a43406ac240efc63c88fd00cfbd83 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 28 Sep 2021 15:44:05 +0200 Subject: [PATCH 07/19] python3Packages.asmog: init at 0.0.6 --- .../python-modules/asmog/default.nix | 38 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 40 insertions(+) create mode 100644 pkgs/development/python-modules/asmog/default.nix diff --git a/pkgs/development/python-modules/asmog/default.nix b/pkgs/development/python-modules/asmog/default.nix new file mode 100644 index 000000000000..a1d8c340ba68 --- /dev/null +++ b/pkgs/development/python-modules/asmog/default.nix @@ -0,0 +1,38 @@ +{ lib +, aiohttp +, async-timeout +, buildPythonPackage +, fetchPypi +, pythonOlder +}: + +buildPythonPackage rec { + pname = "asmog"; + version = "0.0.6"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; + + src = fetchPypi { + inherit pname version; + sha256 = "14b8hdxcks6qyrqpp4mm77fvzznbskqn7fw9qgwgcqx81pg45iwk"; + }; + + propagatedBuildInputs = [ + aiohttp + async-timeout + ]; + + # Project doesn't ship the tests + # https://github.com/kstaniek/python-ampio-smog-api/issues/2 + doCheck = false; + + pythonImportsCheck = [ "asmog" ]; + + meta = with lib; { + description = "Python module for Ampio Smog Sensors"; + homepage = "https://github.com/kstaniek/python-ampio-smog-api"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index bf39935714aa..eae0c58e7ef3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -579,6 +579,8 @@ in { asgiref = callPackage ../development/python-modules/asgiref { }; + asmog = callPackage ../development/python-modules/asmog { }; + asn1 = callPackage ../development/python-modules/asn1 { }; asn1ate = callPackage ../development/python-modules/asn1ate { }; From a02160a2817db56b47bb91ef3513c34572b5ac0f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 28 Sep 2021 15:46:45 +0200 Subject: [PATCH 08/19] home-assistant: update component-packages --- pkgs/servers/home-assistant/component-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index c9e77c914168..bb234a87dc7a 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -33,7 +33,7 @@ "ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ]; "ambient_station" = ps: with ps; [ aioambient ]; "amcrest" = ps: with ps; [ amcrest ha-ffmpeg ]; - "ampio" = ps: with ps; [ ]; # missing inputs: asmog + "ampio" = ps: with ps; [ asmog ]; "analytics" = ps: with ps; [ aiohttp-cors sqlalchemy ]; "android_ip_webcam" = ps: with ps; [ pydroid-ipcam ]; "androidtv" = ps: with ps; [ adb-shell androidtv pure-python-adb ]; From cc9e7f0b047cbf2d9928edc387754c0bccfc525c Mon Sep 17 00:00:00 2001 From: ajs124 Date: Wed, 29 Sep 2021 17:48:06 +0200 Subject: [PATCH 09/19] exim: 4.94.2 -> 4.95 --- pkgs/servers/mail/exim/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/mail/exim/default.nix b/pkgs/servers/mail/exim/default.nix index 702808f950a2..c69e699a3a76 100644 --- a/pkgs/servers/mail/exim/default.nix +++ b/pkgs/servers/mail/exim/default.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation rec { pname = "exim"; - version = "4.94.2"; + version = "4.95"; src = fetchurl { url = "https://ftp.exim.org/pub/exim/exim4/${pname}-${version}.tar.xz"; - sha256 = "0x4j698gsawm8a3bz531pf1k6izyxfvry4hj5wb0aqphi7y62605"; + sha256 = "0rzi0kc3qiiaw8vnv5qrpwdvvh4sr5chns026xy99spjzx9vd76c"; }; nativeBuildInputs = [ pkg-config ]; From 953566041065b510dfa83bfab5899a88ee07da79 Mon Sep 17 00:00:00 2001 From: Zhaofeng Li Date: Thu, 16 Sep 2021 18:10:20 -0700 Subject: [PATCH 10/19] bochs: Enable nogui display backend --- pkgs/applications/virtualization/bochs/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/virtualization/bochs/default.nix b/pkgs/applications/virtualization/bochs/default.nix index 41ab5ef2c990..1f02219c8314 100644 --- a/pkgs/applications/virtualization/bochs/default.nix +++ b/pkgs/applications/virtualization/bochs/default.nix @@ -53,6 +53,7 @@ stdenv.mkDerivation rec { "--with-rfb=no" "--with-vncsrv=no" + "--with-nogui" # These will always be "yes" on NixOS "--enable-ltdl-install=yes" From 2549800a1a83c7fa6f639e915545042667c98789 Mon Sep 17 00:00:00 2001 From: Josh Hoffer Date: Tue, 28 Sep 2021 13:29:06 -0600 Subject: [PATCH 11/19] compiler-rt: cont. remove from libsanitizer See commit 199b7c505b0390429b08edf68552e8a6ff4a08ce for the original issue. This patch is from the upstream rocm llvm repo: https://reviews.llvm.org/rG884040db086936107ec81656aa5b4c607235fb9a --- .../compilers/llvm/rocm/compiler-rt/default.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix b/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix index cd277f5149d9..65a45fdae635 100644 --- a/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, version, src, cmake, python3, llvm, libcxxabi }: +{ stdenv, lib, version, src, cmake, python3, llvm, libcxxabi, fetchpatch }: stdenv.mkDerivation rec { pname = "compiler-rt"; inherit version src; @@ -31,7 +31,13 @@ stdenv.mkDerivation rec { patches = [ ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory - ]; + (fetchpatch { + name = "libsanitizer-no-cyclades-rocm.patch"; + url = "https://reviews.llvm.org/file/data/nrhbpc5axblqwx2xyyzv/PHID-FILE-wwcpjvquusomoddmqcwo/file"; + sha256 = "sha256-PMMSLr2zHuNDn1OWqumqHwB74ktJSHxhJWkqEKB7Z64="; + stripLen = 1; + }) + ]; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks From e3b85ac8bc72b12670804962305ec4b3985bf29e Mon Sep 17 00:00:00 2001 From: David Morgan Date: Thu, 30 Sep 2021 16:15:59 +0100 Subject: [PATCH 12/19] clj-kondo: 2021.03.31 -> 2021.09.25 --- pkgs/development/tools/clj-kondo/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/clj-kondo/default.nix b/pkgs/development/tools/clj-kondo/default.nix index 5484652d384d..45348b562c1d 100644 --- a/pkgs/development/tools/clj-kondo/default.nix +++ b/pkgs/development/tools/clj-kondo/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { pname = "clj-kondo"; - version = "2021.03.31"; + version = "2021.09.25"; reflectionJson = fetchurl { name = "reflection.json"; @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar"; - sha256 = "sha256-XSs0u758wEuaqZvFIevBrL61YNPUJ9Sc1DS+O9agj94="; + sha256 = "sha256-kS6bwsYH/cbjJlIeiDAy6QsAw+D1uHp26d4NBLfStjg="; }; dontUnpack = true; From f848a875360ccf9bd72467879b8370119c88d5dd Mon Sep 17 00:00:00 2001 From: Pavel Borzenkov Date: Thu, 30 Sep 2021 18:06:43 +0200 Subject: [PATCH 13/19] tailscale: add support for Darwin Open source tailscale client is supported on Darwin and works just fine: https://github.com/tailscale/tailscale/wiki/Tailscaled-on-macOS --- pkgs/servers/tailscale/default.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix index 1a592494f154..67e18f104d74 100644 --- a/pkgs/servers/tailscale/default.nix +++ b/pkgs/servers/tailscale/default.nix @@ -1,4 +1,4 @@ -{ lib, buildGoModule, fetchFromGitHub, makeWrapper, iptables, iproute2, procps }: +{ lib, stdenv, buildGoModule, fetchFromGitHub, makeWrapper, iptables, iproute2, procps }: buildGoModule rec { pname = "tailscale"; @@ -11,7 +11,7 @@ buildGoModule rec { sha256 = "sha256-66akb1ru2JJe23Cr8q9mkMmmgqtezqh+Mc8aA+Rovb8="; }; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ]; CGO_ENABLED = 0; @@ -25,7 +25,7 @@ buildGoModule rec { ldflags = [ "-X tailscale.com/version.Long=${version}" "-X tailscale.com/version.Short=${version}" ]; - postInstall = '' + postInstall = lib.optionalString stdenv.isLinux '' wrapProgram $out/bin/tailscaled --prefix PATH : ${lib.makeBinPath [ iproute2 iptables ]} wrapProgram $out/bin/tailscale --suffix PATH : ${lib.makeBinPath [ procps ]} @@ -36,7 +36,6 @@ buildGoModule rec { meta = with lib; { homepage = "https://tailscale.com"; description = "The node agent for Tailscale, a mesh VPN built on WireGuard"; - platforms = platforms.linux; license = licenses.bsd3; maintainers = with maintainers; [ danderson mbaillie ]; }; From ad7eb5b4e60f2343142c52e272b112faa0feaa5e Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Thu, 30 Sep 2021 09:21:13 -0300 Subject: [PATCH 14/19] higan: 110 -> 115+unstable=2021-08-18 --- .../emulators/higan/0001-change-flags.diff | 25 --- .../emulators/higan/001-include-cmath.patch | 8 + .../higan/002-sips-to-png2icns.patch | 24 +++ pkgs/misc/emulators/higan/default.nix | 203 ++++++++++-------- pkgs/top-level/all-packages.nix | 1 - 5 files changed, 144 insertions(+), 117 deletions(-) delete mode 100644 pkgs/misc/emulators/higan/0001-change-flags.diff create mode 100644 pkgs/misc/emulators/higan/001-include-cmath.patch create mode 100644 pkgs/misc/emulators/higan/002-sips-to-png2icns.patch diff --git a/pkgs/misc/emulators/higan/0001-change-flags.diff b/pkgs/misc/emulators/higan/0001-change-flags.diff deleted file mode 100644 index 745bba5d518d..000000000000 --- a/pkgs/misc/emulators/higan/0001-change-flags.diff +++ /dev/null @@ -1,25 +0,0 @@ -diff -Naur higan-110-old/higan/GNUmakefile higan-110-new/higan/GNUmakefile ---- higan-110-old/higan/GNUmakefile 2020-04-15 11:06:00.279935557 -0300 -+++ higan-110-new/higan/GNUmakefile 2020-04-15 11:08:32.982417291 -0300 -@@ -11,7 +11,7 @@ - include $(nall.path)/GNUmakefile - - ifeq ($(platform),local) -- flags += -march=native -+ flags += - endif - - ifeq ($(platform),windows) -diff -Naur higan-110-old/nall/GNUmakefile higan-110-new/nall/GNUmakefile ---- higan-110-old/nall/GNUmakefile 2020-04-15 11:06:00.396935154 -0300 -+++ higan-110-new/nall/GNUmakefile 2020-04-15 11:10:37.738011488 -0300 -@@ -127,7 +127,8 @@ - - # linux settings - ifeq ($(platform),linux) -- options += -ldl -+ flags += $(CXXFLAGS) -+ options += $(LDFLAGS) -ldl - endif - - # bsd settings diff --git a/pkgs/misc/emulators/higan/001-include-cmath.patch b/pkgs/misc/emulators/higan/001-include-cmath.patch new file mode 100644 index 000000000000..67644e656aa7 --- /dev/null +++ b/pkgs/misc/emulators/higan/001-include-cmath.patch @@ -0,0 +1,8 @@ +diff -Naur source-old/higan/fc/ppu/ppu.cpp source-new/higan/fc/ppu/ppu.cpp +--- source-old/higan/fc/ppu/ppu.cpp 1969-12-31 21:00:01.000000000 -0300 ++++ source-new/higan/fc/ppu/ppu.cpp 2021-09-29 22:23:19.107527772 -0300 +@@ -1,3 +1,4 @@ ++#include + #include + + namespace higan::Famicom { diff --git a/pkgs/misc/emulators/higan/002-sips-to-png2icns.patch b/pkgs/misc/emulators/higan/002-sips-to-png2icns.patch new file mode 100644 index 000000000000..0585c8a38c72 --- /dev/null +++ b/pkgs/misc/emulators/higan/002-sips-to-png2icns.patch @@ -0,0 +1,24 @@ +diff -Naur source-old/higan-ui/GNUmakefile source-new/higan-ui/GNUmakefile +--- source-old/higan-ui/GNUmakefile 1969-12-31 21:00:01.000000000 -0300 ++++ source-new/higan-ui/GNUmakefile 2021-09-29 22:35:35.744721052 -0300 +@@ -61,7 +61,7 @@ + mkdir -p $(output.path)/$(name).app/Contents/Resources/ + mv $(output.path)/$(name) $(output.path)/$(name).app/Contents/MacOS/$(name) + cp resource/$(name).plist $(output.path)/$(name).app/Contents/Info.plist +- sips -s format icns resource/$(name).png --out $(output.path)/$(name).app/Contents/Resources/$(name).icns ++ png2icns $(output.path)/$(name).app/Contents/Resources/$(name).icns resource/$(name).png + endif + + verbose: nall.verbose ruby.verbose hiro.verbose all; +diff -Naur source-old/icarus/GNUmakefile source-new/icarus/GNUmakefile +--- source-old/icarus/GNUmakefile 1969-12-31 21:00:01.000000000 -0300 ++++ source-new/icarus/GNUmakefile 2021-09-29 22:35:53.639846113 -0300 +@@ -26,7 +26,7 @@ + mkdir -p $(output.path)/$(name).app/Contents/Resources/ + mv $(output.path)/$(name) $(output.path)/$(name).app/Contents/MacOS/$(name) + cp resource/$(name).plist $(output.path)/$(name).app/Contents/Info.plist +- sips -s format icns resource/$(name).png --out $(output.path)/$(name).app/Contents/Resources/$(name).icns ++ png2icns $(output.path)/$(name).app/Contents/Resources/$(name).icns resource/$(name).png + endif + + verbose: hiro.verbose nall.verbose all; diff --git a/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix index 8e10b7bb3154..558cb53c3d5d 100644 --- a/pkgs/misc/emulators/higan/default.nix +++ b/pkgs/misc/emulators/higan/default.nix @@ -1,135 +1,156 @@ -{ lib, stdenv, fetchFromGitHub -, pkg-config -, libX11, libXv -, udev -, libGLU, libGL, SDL2 -, libao, openal, libpulseaudio +{ lib +, stdenv +, fetchFromGitHub +, SDL2 , alsa-lib -, gtk2, gtksourceview +, gtk3 +, gtksourceview3 +, libGL +, libGLU +, libX11 +, libXv +, libao +, libpulseaudio +, openal +, pkg-config , runtimeShell +, udev # Darwin dependencies -, libicns, Carbon, Cocoa, OpenGL, OpenAL}: +, libicns +, Carbon +, Cocoa +, OpenAL +, OpenGL +}: -let - inherit (lib) optionals; -in stdenv.mkDerivation rec { - pname = "higan"; - version = "110"; + version = "115+unstable=2021-08-18"; src = fetchFromGitHub { owner = "higan-emu"; repo = "higan"; - rev = "v${version}"; - sha256 = "11rvm53c3p2f6zk8xbyv2j51xp8zmqnch7zravhj3fk590qrjrr2"; + rev = "9bf1b3314b2bcc73cbc11d344b369c31562aff10"; + hash = "sha256-HZItJ97x20OjFKv2OVbMja7g+c1ZXcgcaC/XDe3vMZM="; }; - patches = [ ./0001-change-flags.diff ]; - postPatch = '' - sed '1i#include ' -i higan/fc/ppu/ppu.cpp + nativeBuildInputs = [ + pkg-config + ] ++ lib.optionals stdenv.isDarwin [ + libicns + ]; - for file in icarus/GNUmakefile higan/target-higan/GNUmakefile; do - substituteInPlace "$file" \ - --replace 'sips -s format icns data/$(name).png --out out/$(name).app/Contents/Resources/$(name).icns' \ - 'png2icns out/$(name).app/Contents/Resources/$(name).icns data/$(name).png' - done - ''; + buildInputs = [ + SDL2 + libao + ] ++ lib.optionals stdenv.isLinux [ + alsa-lib + gtk3 + gtksourceview3 + libGL + libGLU + libX11 + libXv + libpulseaudio + openal + udev + ] ++ lib.optionals stdenv.isDarwin [ + Carbon + Cocoa + OpenAL + OpenGL + ]; - nativeBuildInputs = [ pkg-config ] - ++ optionals stdenv.isDarwin [ libicns ]; + patches = [ + # Includes cmath header + ./001-include-cmath.patch + # Uses png2icns instead of sips + ./002-sips-to-png2icns.patch + ]; - buildInputs = [ SDL2 libao ] - ++ optionals stdenv.isLinux [ alsa-lib udev libpulseaudio openal - gtk2 gtksourceview libX11 libXv - libGLU libGL ] - ++ optionals stdenv.isDarwin [ Carbon Cocoa OpenGL OpenAL ]; + dontConfigure = true; + + enableParallelBuilding = true; buildPhase = '' - make compiler=c++ -C higan openmp=true target=higan - make compiler=c++ -C genius openmp=true - make compiler=c++ -C icarus openmp=true + runHook preBuild + + make -j $NIX_BUILD_CORES compiler=${stdenv.cc.targetPrefix}c++ \ + platform=linux openmp=true hiro=gtk3 build=accuracy local=false \ + cores="cv fc gb gba md ms msx ngp pce sfc sg ws" -C higan-ui + make -j $NIX_BUILD_CORES compiler=${stdenv.cc.targetPrefix}c++ \ + platform=linux openmp=true hiro=gtk3 -C icarus + + runHook postBuild ''; - installPhase = (if stdenv.isDarwin then '' - mkdir "$out" - mv higan/out/higan.app "$out"/ - mv icarus/out/icarus.app "$out"/ - mv genius/out/genius.app "$out"/ + installPhase = '' + runHook preInstall + + '' + (if stdenv.isDarwin then '' + mkdir ${placeholder "out"} + mv higan/out/higan.app ${placeholder "out"}/ + mv icarus/out/icarus.app ${placeholder "out"}/ '' else '' - install -dm 755 "$out"/bin "$out"/share/applications "$out"/share/pixmaps + install -d ${placeholder "out"}/bin + install higan-ui/out/higan -t ${placeholder "out"}/bin/ + install icarus/out/icarus -t ${placeholder "out"}/bin/ - install -m 755 higan/out/higan -t "$out"/bin/ - install -m 644 higan/target-higan/resource/higan.desktop \ - -t $out/share/applications/ - install -m 644 higan/target-higan/resource/higan.svg \ - $out/share/pixmaps/higan-icon.svg - install -m 644 higan/target-higan/resource/higan.png \ - $out/share/pixmaps/higan-icon.png + install -d ${placeholder "out"}/share/applications + install higan-ui/resource/higan.desktop -t ${placeholder "out"}/share/applications/ + install icarus/resource/icarus.desktop -t ${placeholder "out"}/share/applications/ - install -m 755 icarus/out/icarus -t "$out"/bin/ - install -m 644 icarus/data/icarus.desktop -t $out/share/applications/ - install -m 644 icarus/data/icarus.svg $out/share/pixmaps/icarus-icon.svg - install -m 644 icarus/data/icarus.png $out/share/pixmaps/icarus-icon.png - - install -m 755 genius/out/genius -t "$out"/bin/ - install -m 644 genius/data/genius.desktop -t $out/share/applications/ - install -m 644 genius/data/genius.svg $out/share/pixmaps/genius-icon.svg - install -m 644 genius/data/genius.png $out/share/pixmaps/genius-icon.png + install -d ${placeholder "out"}/share/pixmaps + install higan/higan/resource/higan.svg ${placeholder "out"}/share/pixmaps/higan-icon.svg + install higan/higan/resource/logo.png ${placeholder "out"}/share/pixmaps/higan-icon.png + install icarus/resource/icarus.svg ${placeholder "out"}/share/pixmaps/icarus-icon.svg + install icarus/resource/icarus.png ${placeholder "out"}/share/pixmaps/icarus-icon.png '') + '' - mkdir -p "$out"/share/higan "$out"/share/icarus - cp --recursive --no-dereference --preserve='links' --no-preserve='ownership' \ - higan/System/ "$out"/share/higan/ - cp --recursive --no-dereference --preserve='links' --no-preserve='ownership' \ - icarus/Database icarus/Firmware $out/share/icarus/ - ''; + install -d ${placeholder "out"}/share/higan + cp -rd extras/ higan/System/ ${placeholder "out"}/share/higan/ - fixupPhase = let - dest = if stdenv.isDarwin - then "\\$HOME/Library/Application Support/higan" - else "\\$HOME/higan"; - in '' + install -d ${placeholder "out"}/share/icarus + cp -rd icarus/Database icarus/Firmware ${placeholder "out"}/share/icarus/ + '' + ( # A dirty workaround, suggested by @cpages: # we create a first-run script to populate # $HOME with all the stuff needed at runtime - - mkdir -p "$out"/bin - cat < $out/bin/higan-init.sh + let + dest = if stdenv.isDarwin + then "\\$HOME/Library/Application Support/higan" + else "\\$HOME/higan"; + in '' + mkdir -p ${placeholder "out"}/bin + cat < ${placeholder "out"}/bin/higan-init.sh #!${runtimeShell} - cp --recursive --update $out/share/higan/System/ "${dest}"/ + cp --recursive --update ${placeholder "out"}/share/higan/System/ "${dest}"/ EOF - chmod +x $out/bin/higan-init.sh + chmod +x ${placeholder "out"}/bin/higan-init.sh + '') + '' + + runHook postInstall ''; meta = with lib; { + homepage = "https://github.com/higan-emu/higan"; description = "An open-source, cycle-accurate multi-system emulator"; longDescription = '' - higan is a multi-system game console emulator. The purpose of higan is to - serve as hardware documentation in source code form: it is meant to be as - accurate and complete as possible, with code that is easy to read and - understand. + higan is a multi-system emulator, originally developed by Near, with an + uncompromising focus on accuracy and code readability. - It currently supports the following systems: - - Famicom + Famicom Disk System - - Super Famicom + Super Game Boy - - Game Boy + Game Boy Color - - Game Boy Advance + Game Boy Player - - SG-1000 + SC-3000 - - Master System + Game Gear - - Mega Drive + Mega CD - - PC Engine + SuperGrafx - - MSX + MSX2 - - ColecoVision - - Neo Geo Pocket + Neo Geo Pocket Color - - WonderSwan + WonderSwan Color + SwanCrystal + Pocket Challenge V2 + It currently emulates the following systems: Famicom, Famicom Disk System, + Super Famicom, Super Game Boy, Game Boy, Game Boy Color, Game Boy Advance, + Game Boy Player, SG-1000, SC-3000, Master System, Game Gear, Mega Drive, + Mega CD, PC Engine, SuperGrafx, MSX, MSX2, ColecoVision, Neo Geo Pocket, + Neo Geo Pocket Color, WonderSwan, WonderSwan Color, SwanCrystal, Pocket + Challenge V2. ''; - homepage = "https://byuu.org/higan/"; license = licenses.gpl3Plus; maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.unix; }; } -# TODO: Qt and GTK3+ support +# TODO: select between Qt, GTK2 and GTK3 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4f91cf812e3c..5bd4305a4fbd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -32571,7 +32571,6 @@ with pkgs; }; higan = callPackage ../misc/emulators/higan { - inherit (gnome2) gtksourceview; inherit (darwin.apple_sdk.frameworks) Carbon Cocoa OpenGL OpenAL; }; From 4725dfecf6e987d32d5035e93abb2299653bb72d Mon Sep 17 00:00:00 2001 From: Jon Roberts Date: Wed, 29 Sep 2021 22:57:05 -0500 Subject: [PATCH 15/19] google-java-format: fix for jdk 16 JDK 16 requires some extra flags to actually format code: https://github.com/google/google-java-format#jdk-16 --- .../tools/google-java-format/default.nix | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pkgs/development/tools/google-java-format/default.nix b/pkgs/development/tools/google-java-format/default.nix index 626a3b5271d0..0d939760760c 100644 --- a/pkgs/development/tools/google-java-format/default.nix +++ b/pkgs/development/tools/google-java-format/default.nix @@ -17,11 +17,17 @@ stdenv.mkDerivation rec { installPhase = '' runHook preInstall - mkdir -p $out/{bin,share/google-java-format} - install -D ${src} $out/share/google-java-format/google-java-format.jar + mkdir -p $out/{bin,share/${pname}} + install -D ${src} $out/share/${pname}/google-java-format-${version}-all-deps.jar - makeWrapper ${jre}/bin/java $out/bin/google-java-format \ - --add-flags "-jar $out/share/google-java-format/google-java-format.jar" + makeWrapper ${jre}/bin/java $out/bin/${pname} \ + --argv0 ${pname} \ + --add-flags "--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED" \ + --add-flags "--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED" \ + --add-flags "--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED" \ + --add-flags "--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED" \ + --add-flags "--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED" \ + --add-flags "-jar $out/share/${pname}/google-java-format-${version}-all-deps.jar" runHook postInstall ''; From e3066b5e9f649082456211782075b5044a68d30d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 30 Sep 2021 20:36:40 +0200 Subject: [PATCH 16/19] vmTools: fixup after adding the `img` package --- pkgs/top-level/all-packages.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fde403f4af89..05a5e2797357 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -707,7 +707,8 @@ with pkgs; inherit (darwin) signingUtils; }; - vmTools = callPackage ../build-support/vm { }; + # No callPackage. In particular, we don't want `img` *package* in parameters. + vmTools = makeOverridable (import ../build-support/vm) { inherit pkgs lib; }; releaseTools = callPackage ../build-support/release { }; From 073cc84c9b87157d2df46dbc3deaaddb6fe77e42 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Wed, 29 Sep 2021 09:43:48 -0600 Subject: [PATCH 17/19] ocamlformat-rpc-lib: init at 0.19.0 Signed-off-by: Rudi Grinberg --- .../ocamlformat-rpc-lib/default.nix | 23 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 pkgs/development/ocaml-modules/ocamlformat-rpc-lib/default.nix diff --git a/pkgs/development/ocaml-modules/ocamlformat-rpc-lib/default.nix b/pkgs/development/ocaml-modules/ocamlformat-rpc-lib/default.nix new file mode 100644 index 000000000000..9a1d26f21f0c --- /dev/null +++ b/pkgs/development/ocaml-modules/ocamlformat-rpc-lib/default.nix @@ -0,0 +1,23 @@ +{ lib, fetchurl, buildDunePackage, csexp, sexplib0 }: + +buildDunePackage rec { + pname = "ocamlformat-rpc-lib"; + version = "0.19.0"; + + src = fetchurl { + url = "https://github.com/ocaml-ppx/ocamlformat/releases/download/${version}/ocamlformat-${version}.tbz"; + sha256 = "sha256-YvxGqujwpKM85/jXcm1xCb/2Fepvy1DRSC8h0g7lD0Y="; + }; + + minimumOCamlVersion = "4.08"; + useDune2 = true; + + propagatedBuildInputs = [ csexp sexplib0 ]; + + meta = with lib; { + homepage = "https://github.com/ocaml-ppx/ocamlformat"; + description = "Auto-formatter for OCaml code (RPC mode)"; + license = licenses.mit; + maintainers = with maintainers; [ Zimmi48 marsam ]; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 1afd58ad6f8a..3d67ef92f5a2 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -847,6 +847,8 @@ let frontc = callPackage ../development/ocaml-modules/frontc { }; + ocamlformat-rpc-lib = callPackage ../development/ocaml-modules/ocamlformat-rpc-lib { }; + ocamlfuse = callPackage ../development/ocaml-modules/ocamlfuse { }; ocaml-freestanding = callPackage ../development/ocaml-modules/ocaml-freestanding { }; From f1132b0ff1e3b7f4fc3a8dfece06607854c7fbaa Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Wed, 29 Sep 2021 09:44:25 -0600 Subject: [PATCH 18/19] ocaml-lsp: 1.7.0 -> 1.8.3 Signed-off-by: Rudi Grinberg --- pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix | 4 ++-- pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix b/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix index a6867aac63ad..004b7854107e 100644 --- a/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix +++ b/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix @@ -12,8 +12,8 @@ let params = if lib.versionAtLeast ocaml.version "4.12" then { - version = "1.7.0"; - sha256 = "1va2zj41znsr94bdw485vak96zrcvqwcrqf1sy8zipb6hdhbchya"; + version = "1.8.3"; + sha256 = "sha256-WO9ap78XZxJCi04LEBX+r21nfL2UdPiCLRMrJSI7FOk="; } else { version = "1.4.1"; sha256 = "1ssyazc0yrdng98cypwa9m3nzfisdzpp7hqnx684rqj8f0g3gs6f"; diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix b/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix index 869e9f633540..cd01116b8209 100644 --- a/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix +++ b/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix @@ -13,6 +13,7 @@ , pp , csexp , cmdliner +, ocamlformat-rpc-lib }: buildDunePackage rec { @@ -35,7 +36,7 @@ buildDunePackage rec { buildInputs = if lib.versionAtLeast version "1.7.0" then - [ pp re ppx_yojson_conv_lib octavius dune-build-info omd cmdliner ] + [ pp re ppx_yojson_conv_lib octavius dune-build-info omd cmdliner ocamlformat-rpc-lib ] else [ cppo ppx_yojson_conv_lib From 48eba3e35c10d11b709af420f96a346022a6fc55 Mon Sep 17 00:00:00 2001 From: Delta Date: Mon, 27 Sep 2021 23:38:43 +0200 Subject: [PATCH 19/19] ocamlPackages.lustre-v6: init at 6.103.3 --- lib/licenses.nix | 5 +++ maintainers/maintainer-list.nix | 4 +++ .../ocaml-modules/lustre-v6/default.nix | 28 +++++++++++++++++ .../ocaml-modules/lutils/default.nix | 25 +++++++++++++++ .../ocaml-modules/rdbg/default.nix | 31 +++++++++++++++++++ pkgs/tools/misc/ledit/default.nix | 29 +++++++++++++++++ pkgs/top-level/all-packages.nix | 4 +++ pkgs/top-level/ocaml-packages.nix | 6 ++++ 8 files changed, 132 insertions(+) create mode 100644 pkgs/development/ocaml-modules/lustre-v6/default.nix create mode 100644 pkgs/development/ocaml-modules/lutils/default.nix create mode 100644 pkgs/development/ocaml-modules/rdbg/default.nix create mode 100644 pkgs/tools/misc/ledit/default.nix diff --git a/lib/licenses.nix b/lib/licenses.nix index 772985f9509d..bde2aaca2ee5 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -240,6 +240,11 @@ in mkLicense lset) ({ fullName = "CeCILL Free Software License Agreement v2.0"; }; + cecill21 = { + spdxId = "CECILL-2.1"; + fullName = "CeCILL Free Software License Agreement v2.1"; + }; + cecill-b = { spdxId = "CECILL-B"; fullName = "CeCILL-B Free Software License Agreement"; diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 13c23576dae6..0326ca7a9824 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2599,6 +2599,10 @@ githubId = 202798; name = "Pierre Bourdon"; }; + delta = { + email = "d4delta@outlook.fr"; + name = "Delta"; + }; deltaevo = { email = "deltaduartedavid@gmail.com"; github = "DeltaEvo"; diff --git a/pkgs/development/ocaml-modules/lustre-v6/default.nix b/pkgs/development/ocaml-modules/lustre-v6/default.nix new file mode 100644 index 000000000000..34feaf85c3f3 --- /dev/null +++ b/pkgs/development/ocaml-modules/lustre-v6/default.nix @@ -0,0 +1,28 @@ +{ lib, buildDunePackage, fetchurl, ocaml_extlib, lutils, rdbg }: + +buildDunePackage rec { + pname = "lustre-v6"; + version = "6.103.3"; + + useDune2 = true; + + minimalOCamlVersion = "4.05"; + + src = fetchurl { + url = "http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/pool/lustre-v6.6.103.3.tgz"; + sha512 = "8d452184ee68edda1b5a50717e6a5b13fb21f9204634fc5898280e27a1d79c97a6e7cc04424fc22f34cdd02ed3cc8774dca4f982faf342980b5f9fe0dc1a017d"; + }; + + propagatedBuildInputs = [ + ocaml_extlib + lutils + rdbg + ]; + + meta = with lib; { + homepage = "http://www-verimag.imag.fr/lustre-v6.html"; + description = "Lustre V6 compiler"; + license = lib.licenses.cecill21; + maintainers = [ lib.maintainers.delta ]; + }; +} diff --git a/pkgs/development/ocaml-modules/lutils/default.nix b/pkgs/development/ocaml-modules/lutils/default.nix new file mode 100644 index 000000000000..492a987dc9cc --- /dev/null +++ b/pkgs/development/ocaml-modules/lutils/default.nix @@ -0,0 +1,25 @@ +{ lib, buildDunePackage, fetchurl, num }: + +buildDunePackage rec { + pname = "lutils"; + version = "1.51.2"; + + useDune2 = true; + + minimalOCamlVersion = "4.02"; + + src = fetchurl { + url = "http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/pool/lutils.1.51.2.tgz"; + sha512 = "f94696be379c62e888410ec3d940c888ca4b607cf59c2e364e93a2a694da65ebe6d531107198b795e80eecc3c6865eedb02659c7e7c4e15c9b28d74aa35d09f8"; + }; + + propagatedBuildInputs = [ + num + ]; + + meta = with lib; { + homepage = "https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/lutils/"; + description = "Tools and libs shared by Verimag/synchronous tools (lustre, lutin, rdbg)"; + license = lib.licenses.cecill21; + }; +} diff --git a/pkgs/development/ocaml-modules/rdbg/default.nix b/pkgs/development/ocaml-modules/rdbg/default.nix new file mode 100644 index 000000000000..9b33678590d5 --- /dev/null +++ b/pkgs/development/ocaml-modules/rdbg/default.nix @@ -0,0 +1,31 @@ +{ lib, buildDunePackage, fetchurl, num, lutils, ounit}: + +buildDunePackage rec { + pname = "rdbg"; + version = "1.196.12"; + + useDune2 = true; + + minimalOCamlVersion = "4.07"; + + src = fetchurl { + url = "http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/pool/rdbg.1.196.12.tgz"; + sha512 = "8e88034b1eda8f1233b4990adc9746782148254c93d8d0c99c246c0d50f306eeb6aa4afcfca8834acb3e268860647f47a24cc6a2d29fb45cac11f098e2ede275"; + }; + + buildInputs = [ + num + ounit + ]; + + propagatedBuildInputs = [ + lutils + ]; + + meta = with lib; { + homepage = "https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/rdbg"; + description = "A programmable debugger that targets reactive programs for which a rdbg-plugin exists. Currently two plugins exist : one for Lustre, and one for Lutin (nb: both are synchronous programming languages)"; + license = lib.licenses.cecill21; + maintainers = [ lib.maintainers.delta ]; + }; +} diff --git a/pkgs/tools/misc/ledit/default.nix b/pkgs/tools/misc/ledit/default.nix new file mode 100644 index 000000000000..18efb8c95285 --- /dev/null +++ b/pkgs/tools/misc/ledit/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchzip, ocaml, camlp5}: + +stdenv.mkDerivation { + pname = "ledit"; + version = "2.04"; + + src = fetchzip { + url = "http://pauillac.inria.fr/~ddr/ledit/distrib/src/ledit-2.04.tgz"; + sha512 = "16vlv6rcsddwrvsqqiwxdfv5rxvblhrx0k84g7pjibi0an241yx8aqf8cj4f4sgl5xfs3frqrdf12zqwjf2h4jvk8jyhyar8n0nj3g0"; + }; + + preBuild = '' + mkdir -p $out/bin + substituteInPlace Makefile --replace /bin/rm rm --replace BINDIR=/usr/local/bin BINDIR=$out/bin + ''; + + buildInputs = [ + ocaml + camlp5 + ]; + + meta = with lib; { + homepage = "http://pauillac.inria.fr/~ddr/ledit/"; + description = "A line editor, allowing to use shell commands with control characters like in emacs"; + license = licenses.bsd3; + maintainers = [ maintainers.delta ]; + broken = lib.versionOlder ocaml.version "4.03"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 819108f9efc8..7fbbf150eee8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6919,6 +6919,10 @@ with pkgs; leatherman = callPackage ../development/libraries/leatherman { }; + ledit = callPackage ../tools/misc/ledit { + inherit (ocamlPackages) camlp5; + }; + ledmon = callPackage ../tools/system/ledmon { }; leela = callPackage ../tools/graphics/leela { }; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 3d67ef92f5a2..c9ab3fc2ab85 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -627,6 +627,10 @@ let lua-ml = callPackage ../development/ocaml-modules/lua-ml { }; + lustre-v6 = callPackage ../development/ocaml-modules/lustre-v6 { }; + + lutils = callPackage ../development/ocaml-modules/lutils { }; + luv = callPackage ../development/ocaml-modules/luv { inherit (pkgs) file; }; @@ -1182,6 +1186,8 @@ let randomconv = callPackage ../development/ocaml-modules/randomconv { }; + rdbg = callPackage ../development/ocaml-modules/rdbg { }; + re = callPackage ../development/ocaml-modules/re { }; react = callPackage ../development/ocaml-modules/react { };