Compare commits
46 Commits
main
...
wip/nixos-
| Author | SHA1 | Date |
|---|---|---|
|
|
4cbea3dc01 | |
|
|
7914014c1d | |
|
|
13548ea5ed | |
|
|
5fd38d270e | |
|
|
6d766dd63c | |
|
|
6bba7ab0c4 | |
|
|
6b6dd9c66f | |
|
|
292b3bdcec | |
|
|
fda38bd2cf | |
|
|
cf817800f5 | |
|
|
29532b3561 | |
|
|
219b736565 | |
|
|
d5835d211c | |
|
|
d67164126a | |
|
|
80299ca3d7 | |
|
|
7d914c78d2 | |
|
|
fd2baa1c23 | |
|
|
8fe88edc61 | |
|
|
f21591a29f | |
|
|
b420af3043 | |
|
|
533960accd | |
|
|
bf091ff8fe | |
|
|
55078cdb82 | |
|
|
6b8b667e48 | |
|
|
ac53b7145d | |
|
|
f1980a782f | |
|
|
567a47da23 | |
|
|
f71b45c677 | |
|
|
3b71438ff4 | |
|
|
49a730f641 | |
|
|
de53bfd455 | |
|
|
f71602bcff | |
|
|
1557fcbf00 | |
|
|
b157a5ca31 | |
|
|
83be7c5296 | |
|
|
d181eac6a3 | |
|
|
c1bd5b32d6 | |
|
|
76cbd04361 | |
|
|
6933e33e80 | |
|
|
9c6a46b398 | |
|
|
b33745acb8 | |
|
|
71af6415d2 | |
|
|
37050f846b | |
|
|
6223d67e8f | |
|
|
8674b22d5c | |
|
|
946bbc1522 |
17
README.md
17
README.md
|
|
@ -221,13 +221,6 @@ makeSquashFs {
|
||||||
create a packaged nix distribution with the given packages in it for weird HPC systems. go read the
|
create a packaged nix distribution with the given packages in it for weird HPC systems. go read the
|
||||||
source to find out what it does; i don't recommend using this if you're not me
|
source to find out what it does; i don't recommend using this if you're not me
|
||||||
|
|
||||||
### [`instrumentedFetch`](./overlay.nix)
|
|
||||||
|
|
||||||
overrides the given fetch derivation (eg `fetchzip` or `fetchgit`) and logs the hash of the result.
|
|
||||||
this enables automatically determining and filling in the hash value when initially developing the
|
|
||||||
nix expression for a package. the log will contain text in the format
|
|
||||||
`FETCH_HASH:<hash>:FETCH_HASH`.
|
|
||||||
|
|
||||||
### [`lib.licenses.fyptl`](./lib/licenses/fyptl.nix)
|
### [`lib.licenses.fyptl`](./lib/licenses/fyptl.nix)
|
||||||
|
|
||||||
The "Fuck You, Pirate This License" (FYPTL) is the author's version of a software non-license, which
|
The "Fuck You, Pirate This License" (FYPTL) is the author's version of a software non-license, which
|
||||||
|
|
@ -585,16 +578,6 @@ another ALSA plugin that lives in a separate package
|
||||||
export ALSA_PLUGIN_DIR=$(nix eval -f '<nixpkgs>' --raw pipewire)/lib/alsa-lib
|
export ALSA_PLUGIN_DIR=$(nix eval -f '<nixpkgs>' --raw pipewire)/lib/alsa-lib
|
||||||
```
|
```
|
||||||
|
|
||||||
### [`racket`, `racket-minimal`, `racketPackages`](./pkgs/racket)
|
|
||||||
|
|
||||||
dragnpkgs contains a slightly customized version of racket and racket-minimal (to include some minor
|
|
||||||
bugfixes that are pending upstream stable release).
|
|
||||||
|
|
||||||
additionally, a new scope `racketPackages` provides some packages from
|
|
||||||
<https://pkgs.racket-lang.org>, automatically converted from their catalog information and
|
|
||||||
`info.rkt` by [racket2nix](https://git.lain.faith/haskal/racket-nix). see the readme on that repo
|
|
||||||
for information on how to use `buildRacketPackage` and `makeRacketEnv`
|
|
||||||
|
|
||||||
### [`satisfactory-dedicated-server`](./pkgs/games/satisfactory-dedicated-server)
|
### [`satisfactory-dedicated-server`](./pkgs/games/satisfactory-dedicated-server)
|
||||||
|
|
||||||
The dedicated server for [Satisfactory](https://satisfactorygame.com), with packaging steps to make
|
The dedicated server for [Satisfactory](https://satisfactorygame.com), with packaging steps to make
|
||||||
|
|
|
||||||
11
flake.lock
11
flake.lock
|
|
@ -5,8 +5,9 @@
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756125859,
|
"lastModified": 1756125859,
|
||||||
"narHash": "sha256-6a+PWILmqHCs9B5eIBLg6HSZ8jYweZpgOWO8FlyVwYI=",
|
"narHash": "sha256-6a+PWILmqHCs9B5eIBLg6HSZ8jYweZpgOWO8FlyVwYI=",
|
||||||
|
"rev": "d3292125035b04df00d01549a26e948631fabe1e",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-2.tar.gz"
|
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/d3292125035b04df00d01549a26e948631fabe1e.tar.gz?rev=d3292125035b04df00d01549a26e948631fabe1e"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
|
|
@ -15,16 +16,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763283776,
|
"lastModified": 1756617294,
|
||||||
"narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=",
|
"narHash": "sha256-aGnd4AHIYCWQKChAkHPpX+YYCt7pA6y2LFFA/s8q0wQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a",
|
"rev": "b4c2c57c31e68544982226d07e4719a2d86302a8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-25.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
14
flake.nix
14
flake.nix
|
|
@ -2,7 +2,7 @@
|
||||||
description = "dragnpkgs together with nixpkgs and lix";
|
description = "dragnpkgs together with nixpkgs and lix";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||||
|
|
||||||
lix-module = {
|
lix-module = {
|
||||||
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-2.tar.gz";
|
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-2.tar.gz";
|
||||||
|
|
@ -28,18 +28,18 @@
|
||||||
# self reference in the registry to be downloadable by URL in case it makes it into a
|
# self reference in the registry to be downloadable by URL in case it makes it into a
|
||||||
# flake.lock
|
# flake.lock
|
||||||
meta.registry-entry = {
|
meta.registry-entry = {
|
||||||
from = { id = "dragnpkgs-unstable"; type = "indirect"; };
|
from = { id = "dragnpkgs"; type = "indirect"; };
|
||||||
to = {
|
to = {
|
||||||
type = "git";
|
type = "git";
|
||||||
url = "https://git.lain.faith/haskal/dragnpkgs.git";
|
url = "https://git.lain.faith/haskal/dragnpkgs.git";
|
||||||
ref = "main";
|
ref = "nixos-25.05";
|
||||||
} // self.lib.filterAttrs
|
} // self.lib.filterAttrs
|
||||||
(n: _: n == "lastModified" || n == "rev" || n == "revCount" || n == "narHash")
|
(n: _: n == "lastModified" || n == "rev" || n == "revCount" || n == "narHash")
|
||||||
self;
|
self;
|
||||||
};
|
};
|
||||||
|
|
||||||
# the nix path entry for self
|
# the nix path entry for self
|
||||||
meta.path-entry = "dragnpkgs-unstable=flake:dragnpkgs-unstable";
|
meta.path-entry = "dragnpkgs=flake:dragnpkgs";
|
||||||
|
|
||||||
lib = (lib-base.extend (import ./lib/overlay.nix)).extend (final: prev: {
|
lib = (lib-base.extend (import ./lib/overlay.nix)).extend (final: prev: {
|
||||||
# initializes regular upstream nixpkgs with the given arguments
|
# initializes regular upstream nixpkgs with the given arguments
|
||||||
|
|
@ -154,17 +154,17 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.nix.registry.dragnpkgs-unstable =
|
config.nix.registry.dragnpkgs =
|
||||||
lib.mkIf config.dragnpkgs.setFlakeRegistry self.meta.registry-entry;
|
lib.mkIf config.dragnpkgs.setFlakeRegistry self.meta.registry-entry;
|
||||||
|
|
||||||
config.nix.registry.nixpkgs = lib.mkIf config.dragnpkgs.setNixpkgsFlakeAlias {
|
config.nix.registry.nixpkgs = lib.mkIf config.dragnpkgs.setNixpkgsFlakeAlias {
|
||||||
from = { id = "nixpkgs"; type = "indirect"; };
|
from = { id = "nixpkgs"; type = "indirect"; };
|
||||||
to = { id = "dragnpkgs-unstable"; type = "indirect"; };
|
to = { id = "dragnpkgs"; type = "indirect"; };
|
||||||
};
|
};
|
||||||
|
|
||||||
config.nix.registry.templates = lib.mkIf config.dragnpkgs.setTemplatesFlakeAlias {
|
config.nix.registry.templates = lib.mkIf config.dragnpkgs.setTemplatesFlakeAlias {
|
||||||
from = { id = "templates"; type = "indirect"; };
|
from = { id = "templates"; type = "indirect"; };
|
||||||
to = { id = "dragnpkgs-unstable"; type = "indirect"; };
|
to = { id = "dragnpkgs"; type = "indirect"; };
|
||||||
};
|
};
|
||||||
|
|
||||||
config.nix.nixPath = lib.mkIf config.dragnpkgs.setNixPath [
|
config.nix.nixPath = lib.mkIf config.dragnpkgs.setNixPath [
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ let
|
||||||
base-container = runCommand "empty.sif.d" {
|
base-container = runCommand "empty.sif.d" {
|
||||||
buildInputs = [ coreutils ];
|
buildInputs = [ coreutils ];
|
||||||
} ''
|
} ''
|
||||||
mkdir -p "$out"
|
mkdir "$out"
|
||||||
cd "$out"
|
cd "$out"
|
||||||
mkdir -p proc sys dev nix etc bin usr/bin .singularity.d
|
mkdir -p proc sys dev nix etc bin usr/bin .singularity.d
|
||||||
ln -s /etc/sh bin/sh
|
ln -s /etc/sh bin/sh
|
||||||
|
|
@ -44,7 +44,6 @@ let
|
||||||
mkdir -p /var/lib/singularity/mnt/session
|
mkdir -p /var/lib/singularity/mnt/session
|
||||||
echo "root:x:0:0:System administrator:/root:/bin/sh" > /etc/passwd
|
echo "root:x:0:0:System administrator:/root:/bin/sh" > /etc/passwd
|
||||||
echo > /etc/resolv.conf
|
echo > /etc/resolv.conf
|
||||||
mkdir -p "$out"
|
|
||||||
${singularity}/bin/singularity build "$out/empty.sif" "container/"
|
${singularity}/bin/singularity build "$out/empty.sif" "container/"
|
||||||
'');
|
'');
|
||||||
|
|
||||||
|
|
@ -68,7 +67,7 @@ let
|
||||||
base-etc = runCommand "singularity-etc" {
|
base-etc = runCommand "singularity-etc" {
|
||||||
buildInputs = [ coreutils bash cacert ];
|
buildInputs = [ coreutils bash cacert ];
|
||||||
} ''
|
} ''
|
||||||
mkdir -p "$out"
|
mkdir "$out"
|
||||||
ln -s "${shell}/bin/startup.sh" "$out/runscript"
|
ln -s "${shell}/bin/startup.sh" "$out/runscript"
|
||||||
ln -s "${bash}/bin/bash" "$out/sh"
|
ln -s "${bash}/bin/bash" "$out/sh"
|
||||||
ln -s "${coreutils}/bin/env" "$out/env"
|
ln -s "${coreutils}/bin/env" "$out/env"
|
||||||
|
|
@ -82,15 +81,13 @@ let
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
squashfs = makeSquashFs { filename = "nix-store"; storeContents = [ shell ]; comp = "gzip"; };
|
squashfs = makeSquashFs { filename = "nix-store"; storeContents = [ shell ]; };
|
||||||
|
|
||||||
startCommand = writeText "run-container.sh" ''
|
startCommand = writeText "run-container.sh" ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
if ! which singularity &>/dev/null; then
|
module load singularity/3.10.3
|
||||||
module load singularity/3.10.3
|
|
||||||
fi
|
|
||||||
|
|
||||||
temp_dir="$(mktemp -d)"
|
temp_dir="$(mktemp -d)"
|
||||||
mkdir -p "''${TMPDIR:-/tmp}/empty"
|
mkdir -p "''${TMPDIR:-/tmp}/empty"
|
||||||
|
|
@ -110,15 +107,10 @@ let
|
||||||
cat /etc/localtime > $temp_dir/etc/localtime
|
cat /etc/localtime > $temp_dir/etc/localtime
|
||||||
cat /etc/resolv.conf > $temp_dir/etc/resolv.conf
|
cat /etc/resolv.conf > $temp_dir/etc/resolv.conf
|
||||||
|
|
||||||
workdir="/work"
|
singularity run -B "/work:/work,/scratch:/scratch,$temp_dir/nix-store.squashfs:/nix/store:image-src=/,$temp_dir/etc:/etc" --pid --uts --ipc container-base.sif
|
||||||
if [ ! -d "/work" ]; then
|
|
||||||
workdir="/projects"
|
|
||||||
fi
|
|
||||||
|
|
||||||
singularity run -B "/$workdir:/$workdir,/scratch:/scratch,$temp_dir/nix-store.squashfs:/nix/store:image-src=/,$temp_dir/etc:/etc" --pid --uts --ipc container-base.sif
|
|
||||||
'';
|
'';
|
||||||
in runCommand "hpc-files.d" {} ''
|
in runCommand "hpc-files.d" {} ''
|
||||||
mkdir -p "$out"
|
mkdir "$out"
|
||||||
cp "${squashfs}" "$out/nix-store.squashfs"
|
cp "${squashfs}" "$out/nix-store.squashfs"
|
||||||
cp -r "${base-etc}" "$out/etc"
|
cp -r "${base-etc}" "$out/etc"
|
||||||
cp "${container-image}/empty.sif" "$out/container-base.sif"
|
cp "${container-image}/empty.sif" "$out/container-base.sif"
|
||||||
|
|
|
||||||
|
|
@ -259,7 +259,6 @@ in {
|
||||||
# game state
|
# game state
|
||||||
|
|
||||||
PrivateTmp = true;
|
PrivateTmp = true;
|
||||||
CacheDirectory = "satisfactory";
|
|
||||||
|
|
||||||
TemporaryFileSystem = [
|
TemporaryFileSystem = [
|
||||||
"${cfg.directory}:ro"
|
"${cfg.directory}:ro"
|
||||||
|
|
@ -269,7 +268,7 @@ in {
|
||||||
];
|
];
|
||||||
BindPaths = [
|
BindPaths = [
|
||||||
"${cfg.directory}/saves:${cfg.directory}/.config/Epic"
|
"${cfg.directory}/saves:${cfg.directory}/.config/Epic"
|
||||||
"/var/cache/satisfactory:${cfg.directory}/server/FactoryGame/Intermediate"
|
"/var/tmp:${cfg.directory}/server/FactoryGame/Intermediate"
|
||||||
"${cfg.directory}/settings/game:${cfg.directory}/server/FactoryGame/Saved"
|
"${cfg.directory}/settings/game:${cfg.directory}/server/FactoryGame/Saved"
|
||||||
"${cfg.directory}/settings/engine:${cfg.directory}/server/Engine/Saved"
|
"${cfg.directory}/settings/engine:${cfg.directory}/server/Engine/Saved"
|
||||||
] ++ lib.optionals (cfg.useACMEHost != null) [
|
] ++ lib.optionals (cfg.useACMEHost != null) [
|
||||||
|
|
|
||||||
27
overlay.nix
27
overlay.nix
|
|
@ -7,14 +7,6 @@ final: prev: {
|
||||||
makeSquashFs = prev.callPackage ./lib/make-squashfs {};
|
makeSquashFs = prev.callPackage ./lib/make-squashfs {};
|
||||||
makeHpcDist = final.callPackage ./lib/make-hpc-dist {};
|
makeHpcDist = final.callPackage ./lib/make-hpc-dist {};
|
||||||
|
|
||||||
instrumentedFetch = drv: drv.overrideAttrs (afinal: aprev: {
|
|
||||||
postFetch = (aprev.postFetch or "") + ''
|
|
||||||
printf "FETCH_HASH:%s:FETCH_HASH" "$(\
|
|
||||||
${final.lib.getExe final.nix} --extra-experimental-features "nix-command" \
|
|
||||||
hash path --sri "$out")"
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
|
|
||||||
ghidra_headless = final.ghidra.lib;
|
ghidra_headless = final.ghidra.lib;
|
||||||
|
|
||||||
# stuff that tracks upstream
|
# stuff that tracks upstream
|
||||||
|
|
@ -54,6 +46,8 @@ final: prev: {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# temporary upgrade so we can actually download satisfactory
|
||||||
|
depotdownloader = prev.callPackage ./pkgs/temp/depotdownloader {};
|
||||||
outer-wilds-text-adventure = prev.callPackage ./pkgs/games/outer-wilds-text-adventure {};
|
outer-wilds-text-adventure = prev.callPackage ./pkgs/games/outer-wilds-text-adventure {};
|
||||||
satisfactory-dedicated-server = prev.callPackage ./pkgs/games/satisfactory-dedicated-server {};
|
satisfactory-dedicated-server = prev.callPackage ./pkgs/games/satisfactory-dedicated-server {};
|
||||||
|
|
||||||
|
|
@ -79,21 +73,4 @@ final: prev: {
|
||||||
texliveDragonPackages = {
|
texliveDragonPackages = {
|
||||||
moloch = prev.callPackage ./pkgs/tex/moloch {};
|
moloch = prev.callPackage ./pkgs/tex/moloch {};
|
||||||
};
|
};
|
||||||
|
|
||||||
racket-minimal = final.callPackage ./pkgs/racket/racket/minimal.nix {};
|
|
||||||
racket = final.callPackage ./pkgs/racket/racket/package.nix {};
|
|
||||||
racketPackages = let
|
|
||||||
names = builtins.readDir ./pkgs/racket/racket-catalog |> final.lib.attrNames;
|
|
||||||
byName = self:
|
|
||||||
final.lib.map (name: {
|
|
||||||
inherit name;
|
|
||||||
value = self.callPackage ./pkgs/racket/racket-catalog/${name} {};
|
|
||||||
}) names |>
|
|
||||||
final.lib.listToAttrs;
|
|
||||||
in final.lib.makeScope final.newScope (self: {
|
|
||||||
racketInstallHook = self.callPackage ./pkgs/racket/racket-install-hook.nix {};
|
|
||||||
buildRacketPackage = self.callPackage ./pkgs/racket/build-racket-package.nix {};
|
|
||||||
|
|
||||||
makeRacketEnv = self.callPackage ./pkgs/racket/make-racket-env.nix {};
|
|
||||||
} // (byName self));
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
racket,
|
|
||||||
racketInstallHook,
|
|
||||||
stdenv,
|
|
||||||
|
|
||||||
wrapGAppsHook3,
|
|
||||||
}: lib.extendMkDerivation {
|
|
||||||
constructDrv = stdenv.mkDerivation;
|
|
||||||
excludeDrvArgNames = [
|
|
||||||
"dependencies"
|
|
||||||
"tetheredInstallation"
|
|
||||||
"doMainSetup"
|
|
||||||
"buildDocs"
|
|
||||||
"gitSubpath"
|
|
||||||
];
|
|
||||||
extendDrvArgs = finalAttrs:
|
|
||||||
{
|
|
||||||
pname,
|
|
||||||
version,
|
|
||||||
nativeBuildInputs ? [],
|
|
||||||
propagatedBuildInputs ? [],
|
|
||||||
|
|
||||||
dependencies ? [],
|
|
||||||
|
|
||||||
tetheredInstallation ? false,
|
|
||||||
doMainSetup ? tetheredInstallation,
|
|
||||||
buildDocs ? tetheredInstallation,
|
|
||||||
gitSubpath ? ".",
|
|
||||||
...
|
|
||||||
} @ attrs: {
|
|
||||||
name = "racket${racket.version}-" + pname + "-" + version;
|
|
||||||
|
|
||||||
strictDeps = true;
|
|
||||||
|
|
||||||
dontConfigure = true;
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
racketTetheredInstallation = tetheredInstallation;
|
|
||||||
racketDoMainSetup = doMainSetup;
|
|
||||||
racketBuildDocs = buildDocs;
|
|
||||||
racketGitSubpath = gitSubpath;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
racket
|
|
||||||
racketInstallHook
|
|
||||||
|
|
||||||
wrapGAppsHook3
|
|
||||||
] ++ nativeBuildInputs;
|
|
||||||
|
|
||||||
propagatedBuildInputs = [racket] ++ dependencies ++ propagatedBuildInputs;
|
|
||||||
|
|
||||||
dontWrapGApps = true;
|
|
||||||
|
|
||||||
preFixup = ''
|
|
||||||
find $out/bin -type f -executable -print0 |
|
|
||||||
while IFS= read -r -d ''' f; do
|
|
||||||
if test "$(file --brief --mime-type "$f")" = application/x-executable; then
|
|
||||||
wrapGApp "$f"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
'' + (lib.optionalString (!tetheredInstallation) ''
|
|
||||||
find $out/bin -type f -executable -print0 |
|
|
||||||
while IFS= read -r -d ''' f; do
|
|
||||||
if test "$(file --brief --mime-type "$f")" = text/x-shellscript; then
|
|
||||||
substituteInPlace "$f" \
|
|
||||||
--replace-fail "\"\''${bindir}/racket\"" \
|
|
||||||
"\"\''${bindir}/racket\" --config $out/etc/racket/"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
'');
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
racket,
|
|
||||||
buildRacketPackage,
|
|
||||||
}: {
|
|
||||||
packages,
|
|
||||||
}: buildRacketPackage {
|
|
||||||
pname = "env";
|
|
||||||
version = "0";
|
|
||||||
|
|
||||||
unpackPhase = "touch nix-racket-env-only";
|
|
||||||
|
|
||||||
dependencies = packages;
|
|
||||||
tetheredInstallation = true;
|
|
||||||
|
|
||||||
racketEnvOnly = true;
|
|
||||||
}
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "ansi-color";
|
|
||||||
version = "0.2+20363d9";
|
|
||||||
dependencies = [];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "renatoathaydes";
|
|
||||||
repo = "ansi-color";
|
|
||||||
rev = "20363d90fcef9219580ec0d6a78eea834df39d21";
|
|
||||||
hash = "sha256-PdTF4KaDecp7hYHlUAXXmZEfuvEfSF6Gf9A558b6v/I=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["ansi-color/main.rkt" "ansi-color/display.rkt" "ansi-color/scribblings/ansi-color.scrbl" "ansi-color/demo.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "A library to make it easy to write colorized and styled output in terminals that support ANSI escape codes (most command lines).";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."LGPL-3.0-or-later")];
|
|
||||||
homepage = "https://github.com/renatoathaydes/ansi-color/tree/HEAD/README.md";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
fetchgit,
|
|
||||||
buildRacketPackage,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "br-parser-tools-lib";
|
|
||||||
version = "0.0+95b7c69";
|
|
||||||
dependencies = [];
|
|
||||||
src = fetchgit {
|
|
||||||
url = "https://gitlab.com/mbutterick/br-parser-tools.git";
|
|
||||||
rev = "95b7c69cf9d660a51abf4742378b9adb7100d25a";
|
|
||||||
hash = "sha256-and0y3rBjXwmgaEwwXzJOTgX/wCSY0uUfB3+U4JLTrk=";
|
|
||||||
};
|
|
||||||
gitSubpath = "br-parser-tools-lib";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["br-parser-tools/private-yacc/table.rkt" "br-parser-tools/private-lex/actions.rkt" "br-parser-tools/private-lex/stx.rkt" "br-parser-tools/private-yacc/yacc-helper.rkt" "br-parser-tools/private-lex/token-syntax.rkt" "br-parser-tools/examples/read.rkt" "br-parser-tools/yacc-to-scheme.rkt" "br-parser-tools/private-lex/token.rkt" "br-parser-tools/private-lex/unicode-chars.rkt" "br-parser-tools/private-yacc/input-file-parser.rkt" "br-parser-tools/private-lex/deriv.rkt" "br-parser-tools/lex.rkt" "br-parser-tools/private-yacc/lalr.rkt" "br-parser-tools/private-yacc/parser-builder.rkt" "br-parser-tools/private-yacc/graph.rkt" "br-parser-tools/private-yacc/lr0.rkt" "br-parser-tools/private-lex/error-tests.rkt" "br-parser-tools/cfg-parser.rkt" "br-parser-tools/private-lex/front.rkt" "br-parser-tools/yacc.rkt" "br-parser-tools/private-lex/re.rkt" "br-parser-tools/lex-sre.rkt" "br-parser-tools/private-yacc/parser-actions.rkt" "br-parser-tools/examples/calc.rkt" "br-parser-tools/lex-plt-v200.rkt" "br-parser-tools/private-yacc/grammar.rkt" "br-parser-tools/private-lex/util.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "fork of `parser-tools-lib` for Beautiful Racket";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."LGPL-3.0-or-later")];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
br-parser-tools-lib,
|
|
||||||
fetchgit,
|
|
||||||
buildRacketPackage,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "brag-lib";
|
|
||||||
version = "0.0+30cbf95";
|
|
||||||
dependencies = [br-parser-tools-lib];
|
|
||||||
src = fetchgit {
|
|
||||||
url = "https://gitlab.com/mbutterick/brag.git";
|
|
||||||
rev = "30cbf95e6a717e71fb8bda6b15a7253aed36115a";
|
|
||||||
hash = "sha256-NJctskWDoBNRdBMDklALkMAPKT4A7on8pu6X3Q6NheE=";
|
|
||||||
};
|
|
||||||
gitSubpath = "brag-lib";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["brag/test/test-cutter.rkt" "brag/rules/rule-structs.rkt" "brag/examples/simple-line-drawing/examples/letter-i.rkt" "brag/test/test-hide-and-splice.rkt" "brag/test/test-simple-arithmetic-grammar.rkt" "brag/codegen/reader.rkt" "brag/codegen/codegen.rkt" "brag/examples/whitespace.rkt" "brag/examples/0n1.rkt" "brag/test/test-wordy.rkt" "brag/private/internal-support.rkt" "brag/examples/top-level-cut-3.rkt" "brag/examples/simple-line-drawing/lexer.rkt" "brag/examples/simple-arithmetic-grammar.rkt" "brag/test/test-parser.rkt" "brag/test/test-start-and-atok.rkt" "brag/examples/simple-line-drawing.rkt" "brag/rules/parser.rkt" "brag/examples/top-level-cut-2.rkt" "brag/main.rkt" "brag/test/test-0n1n.rkt" "brag/examples/simple-line-drawing/grammar.rkt" "brag/examples/wordy.rkt" "brag/rules/lexer.rkt" "brag/test/test-cutter-another.rkt" "brag/private/indenter.rkt" "brag/examples/cutter.rkt" "brag/examples/empty-symbol.rkt" "brag/examples/01-equal.rkt" "brag/test/test-baby-json.rkt" "brag/test/test-0n1.rkt" "brag/examples/baby-json-hider.rkt" "brag/test/test-empty-symbol.rkt" "brag/rules/stx-types.rkt" "brag/test/test-make-rule-parser.rkt" "brag/examples/simple-line-drawing/lang/reader.rkt" "brag/examples/top-level-cut-1.rkt" "brag/test/test-weird-grammar.rkt" "brag/test/test-whitespace.rkt" "brag/codegen/satisfaction.rkt" "brag/examples/nested-repeats.rkt" "brag/examples/simple-line-drawing/interpret.rkt" "brag/test/test-flatten.rkt" "brag/test/weird-grammar.rkt" "brag/test/test-all.rkt" "brag/examples/baby-json-alt2.rkt" "brag/examples/baby-json.rkt" "brag/test/test-01-equal.rkt" "brag/examples/statlist-grammar.rkt" "brag/examples/simple-line-drawing/semantics.rkt" "brag/examples/subrule.rkt" "brag/examples/lua-parser.rkt" "brag/test/test-quotation-marks-and-backslashes.rkt" "brag/test/test-lexer.rkt" "brag/test/test-nested-repeats.rkt" "brag/test/test-baby-json-hider.rkt" "brag/examples/start-and-atok.rkt" "brag/rules/stx.rkt" "brag/examples/add-mult.rkt" "brag/test/test-old-token.rkt" "brag/examples/cutter-another.rkt" "brag/test/test-top-level-cut.rkt" "brag/examples/bnf.rkt" "brag/codegen/runtime.rkt" "brag/test/test-codepoints.rkt" "brag/examples/codepoints.rkt" "brag/test/test-simple-line-drawing.rkt" "brag/test/test-errors.rkt" "brag/examples/hide-and-splice.rkt" "brag/examples/curly-quantifier.rkt" "brag/examples/nested-word-list.rkt" "brag/codegen/expander.rkt" "brag/examples/0n1n.rkt" "brag/private/colorer.rkt" "brag/codegen/flatten.rkt" "brag/examples/quotation-marks-and-backslashes.rkt" "brag/support.rkt" "brag/test/test-curly-quantifier.rkt" "brag/examples/baby-json-alt.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."MIT")];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
cldr-core,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "cldr-bcp47";
|
|
||||||
version = "0.0+823fc1a";
|
|
||||||
dependencies = [cldr-core];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "97jaz";
|
|
||||||
repo = "cldr-bcp47";
|
|
||||||
rev = "823fc1a530f1a0ec4de59f5454c1a17f20c5a5d6";
|
|
||||||
hash = "sha256-YY5q44IQ1cNX4wk8Yt7B+z2uvfy+xMSl5tTDs+1RBlA=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["cldr/bcp47/timezone.rkt" "cldr/bcp47/scribblings/cldr-bcp47-timezone.scrbl"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "API for BCP47 extensions to CLDR";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."MIT") (((lib).licensesSpdx)."Unicode-TOU")];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
memoize-lib,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "cldr-core";
|
|
||||||
version = "0.0+c9b8077";
|
|
||||||
dependencies = [memoize-lib];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "97jaz";
|
|
||||||
repo = "cldr-core";
|
|
||||||
rev = "c9b80777c422c3b104bb85052d74a2dc1535a3c3";
|
|
||||||
hash = "sha256-Tpk6uYWz4//C+/n50wsLiD16rwOim85R/Ykrtcoa1+8=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["cldr/file.rkt" "cldr/likely-subtags.rkt" "cldr/core.rkt" "cldr/scribblings/cldr-core.scrbl"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "API for cldr-core data set";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."MIT") (((lib).licensesSpdx)."Unicode-TOU")];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
cldr-core,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "cldr-dates-modern";
|
|
||||||
version = "0.0+c362829";
|
|
||||||
dependencies = [cldr-core];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "97jaz";
|
|
||||||
repo = "cldr-dates-modern";
|
|
||||||
rev = "c36282917247f6a069e553535f4619007cd7b6e5";
|
|
||||||
hash = "sha256-byD2ubs543P9512lKD1JKB1ppyzjKzoWnuW8JPspa7M=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["cldr/dates-modern.rkt" "cldr/scribblings/cldr-dates-modern.scrbl"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "API for cldr-dates-modern data set";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."MIT") (((lib).licensesSpdx)."Unicode-TOU")];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
cldr-core,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "cldr-localenames-modern";
|
|
||||||
version = "0.0+f9f3e8d";
|
|
||||||
dependencies = [cldr-core];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "97jaz";
|
|
||||||
repo = "cldr-localenames-modern";
|
|
||||||
rev = "f9f3e8d9245764a309542816acf40fe147b473a3";
|
|
||||||
hash = "sha256-fZ1fnkslpZuicJgMh6/aLd4rPov7lvJr6ulDWpTMpKg=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["cldr/scribblings/cldr-localenames-modern.scrbl" "cldr/localenames-modern.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "API for cldr-localenames-modern data set";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."MIT") (((lib).licensesSpdx)."Unicode-TOU")];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
cldr-core,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "cldr-numbers-modern";
|
|
||||||
version = "0.0+6254280";
|
|
||||||
dependencies = [cldr-core];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "97jaz";
|
|
||||||
repo = "cldr-numbers-modern";
|
|
||||||
rev = "625428099b3f8cd264955a283dddc176a6080ba1";
|
|
||||||
hash = "sha256-RDa1d4sSyfyuNgz2dJdu2f1XGiO4cPOkaseZ7q2cLJU=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["cldr/scribblings/cldr-numbers-modern.scrbl" "cldr/numbers-modern.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "API for cldr-numbers-modern data set";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."MIT") (((lib).licensesSpdx)."Unicode-TOU")];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "fancy-app";
|
|
||||||
version = "1.1+f451852";
|
|
||||||
dependencies = [];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "samth";
|
|
||||||
repo = "fancy-app";
|
|
||||||
rev = "f451852164ee67e3e122f25b4bce45001a557045";
|
|
||||||
hash = "sha256-2DdngIyocn+CrLf4A4yO9+XJQjIxzKVpmvGiNuM7mTQ=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["fancy-app/main.scrbl" "fancy-app/main.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "Scala-style anonymous functions";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."MIT")];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
buildRacketPackage,
|
|
||||||
pretty-expressive,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "fmt";
|
|
||||||
version = "0.0.3+002818e";
|
|
||||||
dependencies = [pretty-expressive];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "sorawee";
|
|
||||||
repo = "fmt";
|
|
||||||
rev = "002818ec08ad6e5e01f79e6209b69203581d6adc";
|
|
||||||
hash = "sha256-/oLq5WPpK/OO3ED7PBKTMCjDxTBy8+ZjoL/WPPC1zlU=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["fmt/tests/test-cases/let-cc-ec.rkt" "fmt/read.rkt" "fmt/tests/test-cases/test-dot.rkt" "fmt/realign.rkt" "fmt/tests/test-cases/test-deinprogramm.rkt" "fmt/tests/test-cases/define-contract.rkt" "fmt/scribblings/kws.rkt" "fmt/tests/test-cases/define-match.rkt" "fmt/tests/test-cases/general.rkt" "fmt/for-profiling.rkt" "fmt/tests/test-cases/send.rkt" "fmt/tests/benchmarks/class-internal.rkt" "fmt/params.rkt" "fmt/tests/test-cases/test-quasisyntax.rkt" "fmt/tests/test-cases/large2.rkt" "fmt/tests/permission-test.rkt" "fmt/.fmt.rkt" "fmt/tests/test-cases/cr.rkt" "fmt/tests/test-cases/test-asl.rkt" "fmt/private/memoize.rkt" "fmt/tests/benchmarks/xform.rkt" "fmt/tests/test-cases/test-if.rkt" "fmt/version.rkt" "fmt/core.rkt" "fmt/tests/benchmarks/list.rkt" "fmt/tokenize.rkt" "fmt/raco.rkt" "fmt/conventions.rkt" "fmt/tests/test-cases/large.rkt" "fmt/tests/config-tests/file.rkt" "fmt/tests/test-cases/rackunit.rkt" "fmt/tests/benchmarks/hash.rkt" "fmt/tests/test-cases/test-hash-bang.rkt" "fmt/tests/test-cases/test-herestring.rkt" "fmt/tests/config-tests/config.rkt" "fmt/scribblings/fmt.scrbl" "fmt/record.rkt" "fmt/tests/test-cases/test-class.rkt" "fmt/common.rkt" "fmt/tests/test-cases/let-values.rkt" "fmt/tests/test-cases/test-lambda.rkt" "fmt/scribblings/examples/example.rkt" "fmt/tests/test-cases/delay.rkt" "fmt/main.rkt" "fmt/scribblings/util.rkt" "fmt/regen.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = ["fmt"];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "An extensible code formatter for Racket";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."Apache-2.0") (((lib).licensesSpdx)."MIT")];
|
|
||||||
homepage = "https://github.com/sorawee/fmt/tree/HEAD/README.md";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
fetchFromGitHub,
|
|
||||||
cldr-localenames-modern,
|
|
||||||
memoize-lib,
|
|
||||||
cldr-bcp47,
|
|
||||||
cldr-dates-modern,
|
|
||||||
lib,
|
|
||||||
cldr-core,
|
|
||||||
buildRacketPackage,
|
|
||||||
cldr-numbers-modern,
|
|
||||||
tzinfo,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "gregor-lib";
|
|
||||||
version = "0.0+f56215d";
|
|
||||||
dependencies = [memoize-lib tzinfo cldr-core cldr-bcp47 cldr-numbers-modern cldr-dates-modern cldr-localenames-modern];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "97jaz";
|
|
||||||
repo = "gregor";
|
|
||||||
rev = "f56215db229ef2e33670f55d08c0330d8f85de23";
|
|
||||||
hash = "sha256-4TIeinXk7ak7sbT2lwfWYdwIwFD9S7whBrR2KEajW30=";
|
|
||||||
};
|
|
||||||
gitSubpath = "gregor-lib";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["gregor/private/pattern/l10n/numbers.rkt" "gregor/private/period.rkt" "gregor/private/pattern/l10n/zone-util.rkt" "gregor/private/pattern/ast/era.rkt" "gregor/private/pattern/ast/second.rkt" "gregor/private/pattern/l10n/gmt-offset.rkt" "gregor/private/pattern/ast/hour.rkt" "gregor/private/pattern/ast/minute.rkt" "gregor/private/pattern/l10n/named-trie.rkt" "gregor/private/core/compare.rkt" "gregor/private/pattern/ast/week.rkt" "gregor/private/iso8601-parse.rkt" "gregor/main.rkt" "gregor/private/pattern/l10n/l10n-week.rkt" "gregor/private/pattern/l10n/iso-offset.rkt" "gregor/private/pattern/l10n/trie.rkt" "gregor/private/exn.rkt" "gregor/private/pattern/l10n/zone-id.rkt" "gregor/time.rkt" "gregor/private/pattern/lexer.rkt" "gregor/private/clock.rkt" "gregor/private/pattern/l10n/zone-loc.rkt" "gregor/private/pattern/ast.rkt" "gregor/private/pattern/l10n/symbols.rkt" "gregor/private/pattern/ast/year.rkt" "gregor/private/pattern/ast/zone.rkt" "gregor/private/pattern/parse-state.rkt" "gregor/private/pattern/ast/literal.rkt" "gregor/private/difference.rkt" "gregor/private/core/math.rkt" "gregor/private/pattern/ast/month.rkt" "gregor/private/time.rkt" "gregor/private/pattern/ast/period.rkt" "gregor/private/pattern/ast/weekday.rkt" "gregor/private/datetime.rkt" "gregor/private/moment-base.rkt" "gregor/private/pattern/ast/day.rkt" "gregor/private/parse.rkt" "gregor/private/date.rkt" "gregor/private/moment.rkt" "gregor/private/format.rkt" "gregor/private/pattern/l10n/zone-nonloc.rkt" "gregor/private/generics.rkt" "gregor/period.rkt" "gregor/private/pattern/ast/separator.rkt" "gregor/private/core/structs.rkt" "gregor/private/core/hmsn.rkt" "gregor/private/pattern/l10n/metazone.rkt" "gregor/private/pattern/ast/quarter.rkt" "gregor/private/core/ymd.rkt" "gregor/private/offset-resolvers.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "Code part of the gregor date and time library";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."MIT")];
|
|
||||||
homepage = "https://github.com/97jaz/gregor/tree/HEAD/README.md";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "guard";
|
|
||||||
version = "0.0+de93f4b";
|
|
||||||
dependencies = [];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "jackfirth";
|
|
||||||
repo = "guard";
|
|
||||||
rev = "de93f4b5f38f1086177a09a40583af2932759b75";
|
|
||||||
hash = "sha256-z5sUidOIadtOZqVRBPxjIAz/D71U9XiE06EE+DGZzBg=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["guard/private/scribble-evaluator-factory.rkt" "guard/scribblings/guard.scrbl" "guard/main.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "Macros similar to Swift's \"guard statements\".";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."Apache-2.0") (((lib).licensesSpdx)."MIT")];
|
|
||||||
homepage = "https://github.com/jackfirth/guard/tree/HEAD/README.md";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "memoize-lib";
|
|
||||||
version = "3.0+f373706";
|
|
||||||
dependencies = [];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "jbclements";
|
|
||||||
repo = "memoize";
|
|
||||||
rev = "f373706824145ce2a8247edb76278d6df139333c";
|
|
||||||
hash = "sha256-87a5nSpOZaal1/t5GMk5yFHX1daukabYQ/1J4L5LN4o=";
|
|
||||||
};
|
|
||||||
gitSubpath = "memoize-lib";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["memoize/main.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "core library for memoize";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."MIT")];
|
|
||||||
homepage = "https://github.com/jbclements/memoize/tree/master/README.md";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
gregor-lib,
|
|
||||||
buildRacketPackage,
|
|
||||||
lib,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "north";
|
|
||||||
version = "0.8+00e5221";
|
|
||||||
dependencies = [gregor-lib];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "Bogdanp";
|
|
||||||
repo = "racket-north";
|
|
||||||
rev = "00e52217081d421bcdd1c2248e309e0d92dd5314";
|
|
||||||
hash = "sha256-oSjrLNsQ53vUIFRF2spie7o/NSrlF29Dqw2et9Isf3o=";
|
|
||||||
};
|
|
||||||
gitSubpath = "north";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["north/main.rkt" "north/north.scrbl" "north/tool/syntax-color.rkt" "north/adapter/sqlite.rkt" "north/adapter/base.rkt" "north/migrate.rkt" "north/adapter/postgres.rkt" "north/lang/reader.rkt" "north/base.rkt" "north/cli.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = ["north"];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "A database migration tool.";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."BSD-3-Clause")];
|
|
||||||
homepage = "https://github.com/Bogdanp/racket-north/tree/HEAD/README.md";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "pretty-expressive";
|
|
||||||
version = "1.1+0984931";
|
|
||||||
dependencies = [];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "sorawee";
|
|
||||||
repo = "pretty-expressive";
|
|
||||||
rev = "0984931c6f8ff32921dd477c875127de7600dfd5";
|
|
||||||
hash = "sha256-5WokTHS90pYo5ltJEWX5MIMyUWr2AlRU/W2bznLQ74U=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["pretty-expressive/benchmarks/json.rkt" "pretty-expressive/core.rkt" "pretty-expressive/benchmarks/sexp-random.rkt" "pretty-expressive/benchmarks/sexp-full.rkt" "pretty-expressive/benchmarks/concat.rkt" "pretty-expressive/doc.rkt" "pretty-expressive/addons.rkt" "pretty-expressive/scribblings/pretty-expressive.scrbl" "pretty-expressive/benchmarks/fill-sep.rkt" "pretty-expressive/main.rkt" "pretty-expressive/benchtool.rkt" "pretty-expressive/benchmarks/flatten.rkt" "pretty-expressive/benchmarks/wadler-opt.rkt" "pretty-expressive/examples.rkt" "pretty-expressive/process.rkt" "pretty-expressive/promise.rkt"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "A pretty expressive printer";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."Apache-2.0") (((lib).licensesSpdx)."MIT")];
|
|
||||||
homepage = "https://github.com/sorawee/pretty-expressive/tree/main/README.md";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
cldr-core,
|
|
||||||
buildRacketPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}: (buildRacketPackage {
|
|
||||||
pname = "tzinfo";
|
|
||||||
version = "0.6+2f81228";
|
|
||||||
dependencies = [cldr-core];
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "97jaz";
|
|
||||||
repo = "tzinfo";
|
|
||||||
rev = "2f812283d9c90040aecb3c7e2ed2edf93a3720de";
|
|
||||||
hash = "sha256-vvb3EZHFysa/2OiTat+i8zuALxiCPHNNaWCGlyPF6gk=";
|
|
||||||
};
|
|
||||||
gitSubpath = ".";
|
|
||||||
passthru = {
|
|
||||||
racketModules = ["tzinfo/zoneinfo.rkt" "tzinfo/private/os/env.rkt" "tzinfo/private/os/unix.rkt" "tzinfo/private/tabfile-parser.rkt" "tzinfo/main.rkt" "tzinfo/source.rkt" "tzinfo/private/zoneinfo-search.rkt" "tzinfo/private/tzfile-parser.rkt" "tzinfo/private/os/windows.rkt" "tzinfo/private/zoneinfo.rkt" "tzinfo/private/structs.rkt" "tzinfo/test/zoneinfo.rkt" "tzinfo/private/os/windows-registry.rkt" "tzinfo/private/generics.rkt" "tzinfo/scribblings/tzinfo.scrbl"];
|
|
||||||
racketLaunchers = [];
|
|
||||||
racoCommands = [];
|
|
||||||
};
|
|
||||||
meta = {
|
|
||||||
description = "API for querying the IANA tz database";
|
|
||||||
sourceProvenance = [(((lib).sourceTypes).fromSource)];
|
|
||||||
broken = false;
|
|
||||||
license = [(((lib).licensesSpdx)."MIT")];
|
|
||||||
homepage = "https://github.com/97jaz/tzinfo/tree/HEAD/README.md";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
racket,
|
|
||||||
makeSetupHook,
|
|
||||||
}: makeSetupHook {
|
|
||||||
name = "racket-install-hook";
|
|
||||||
propagatedBuildInputs = [ racket ];
|
|
||||||
} ./racket-install-hook.sh
|
|
||||||
|
|
@ -1,159 +0,0 @@
|
||||||
echo "Sourcing racket-install-hook"
|
|
||||||
|
|
||||||
addRacketPath() {
|
|
||||||
if [ -f "$1/nix-support/racket-pkg" ]; then
|
|
||||||
addToSearchPathWithCustomDelimiter : NIX_RACKET_PKG_PATH $1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
racketInstallPhase() {
|
|
||||||
echo "Executing racketInstallPhase"
|
|
||||||
cd "$racketGitSubpath"
|
|
||||||
runHook preInstall
|
|
||||||
|
|
||||||
mkdir -p $out/{include,etc/racket,lib/racket,share/racket/pkgs,share/racket/collects,bin,share/applications,share/doc/racket,share/man}
|
|
||||||
|
|
||||||
mkdir -p $out/nix-support
|
|
||||||
touch $out/nix-support/racket-pkg
|
|
||||||
|
|
||||||
out="$out" tethered="$racketTetheredInstallation" \
|
|
||||||
racket --no-user-path -nl racket/base -f - <<EOF
|
|
||||||
(require racket/function racket/hash racket/list racket/pretty racket/string racket/match)
|
|
||||||
|
|
||||||
(define out (getenv "out"))
|
|
||||||
(define pkgs (path-list-string->path-list (or (getenv "NIX_RACKET_PKG_PATH") "") '()))
|
|
||||||
|
|
||||||
(define tethered? (equal? (getenv "tethered") "1"))
|
|
||||||
|
|
||||||
(define base-config (read-installation-configuration-table))
|
|
||||||
|
|
||||||
(define (add-to-search added-list search-list)
|
|
||||||
(match search-list
|
|
||||||
['() (error "no #f found in search list!")]
|
|
||||||
[(cons #f rst) (cons #f (append added-list rst))]
|
|
||||||
[(cons fst rst) (cons fst (add-to-search added-list rst))]))
|
|
||||||
|
|
||||||
(define (make-search-path* key list-key [pkgs-search '()])
|
|
||||||
(define old-search-list (hash-ref base-config list-key '(#f)))
|
|
||||||
(define old-value
|
|
||||||
(cond
|
|
||||||
[(hash-has-key? base-config key)
|
|
||||||
(list (hash-ref base-config key))]
|
|
||||||
[(eq? key 'links-file)
|
|
||||||
(list
|
|
||||||
(path->string
|
|
||||||
(build-path (hash-ref base-config 'share-dir) "links.rktd")))]
|
|
||||||
[else (error "no key" key)]))
|
|
||||||
(define added-list (append pkgs-search old-value))
|
|
||||||
(add-to-search added-list old-search-list))
|
|
||||||
|
|
||||||
(define (default-location pkg key)
|
|
||||||
(path->string
|
|
||||||
(match key
|
|
||||||
['include-dir (build-path pkg "include")]
|
|
||||||
['lib-dir (build-path pkg "lib/racket")]
|
|
||||||
['share-dir (build-path pkg "share/racket")]
|
|
||||||
['pkgs-dir (build-path pkg "share/racket/pkgs")]
|
|
||||||
['links-file (build-path pkg "share/racket/links.rktd")]
|
|
||||||
['bin-dir (build-path pkg "bin")]
|
|
||||||
['doc-dir (build-path pkg "share/doc/racket")]
|
|
||||||
['man-dir (build-path pkg "share/man")]
|
|
||||||
[_ (error "unexpected key:" key)])))
|
|
||||||
|
|
||||||
(define (make-search-path key list-key)
|
|
||||||
(define pkgs-search
|
|
||||||
(for/list ([pkg (in-list pkgs)])
|
|
||||||
(default-location pkg key)))
|
|
||||||
|
|
||||||
(make-search-path* key list-key pkgs-search))
|
|
||||||
|
|
||||||
(define (add-libs lib-path)
|
|
||||||
(define ldflags (string-split (getenv "NIX_LDFLAGS")))
|
|
||||||
(define libs
|
|
||||||
(for/list ([lib (in-list ldflags)] #:when (string-prefix? "-L" lib))
|
|
||||||
(string-trim "-L" #:right? #f)))
|
|
||||||
(remove-duplicates (append libs lib-path)))
|
|
||||||
|
|
||||||
(define config*
|
|
||||||
(hash
|
|
||||||
'absolute-installation? #t
|
|
||||||
'build-stamp ""
|
|
||||||
'catalogs (hash-ref base-config 'catalogs)
|
|
||||||
'compiled-file-roots (hash-ref base-config 'compiled-file-roots)
|
|
||||||
|
|
||||||
'apps-dir (path->string (build-path out "share/applications"))
|
|
||||||
|
|
||||||
'bin-dir (default-location out 'bin-dir)
|
|
||||||
'bin-search-dirs (make-search-path 'bin-dir 'bin-search-dirs)
|
|
||||||
|
|
||||||
'doc-dir (default-location out 'doc-dir)
|
|
||||||
'doc-search-dirs (make-search-path 'doc-dir 'doc-search-dirs)
|
|
||||||
'doc-search-url (hash-ref base-config 'doc-search-url)
|
|
||||||
|
|
||||||
'include-dir (default-location out 'include-dir)
|
|
||||||
'include-search-dirs (make-search-path 'include-dir 'include-search-dirs)
|
|
||||||
|
|
||||||
'lib-dir (default-location out 'lib-dir)
|
|
||||||
'lib-search-dirs (add-libs (make-search-path 'lib-dir 'lib-search-dirs))
|
|
||||||
|
|
||||||
'links-file (default-location out 'links-file)
|
|
||||||
'links-search-files (make-search-path 'links-file 'links-search-files)
|
|
||||||
|
|
||||||
'man-dir (default-location out 'man-dir)
|
|
||||||
'man-search-dirs (make-search-path 'man-dir 'man-search-dirs)
|
|
||||||
|
|
||||||
'pkgs-dir (default-location out 'pkgs-dir)
|
|
||||||
'pkgs-search-dirs (make-search-path 'pkgs-dir 'pkgs-search-dirs)
|
|
||||||
|
|
||||||
'share-dir (default-location out 'share-dir)
|
|
||||||
'share-search-dirs (make-search-path 'share-dir 'share-search-dirs)))
|
|
||||||
|
|
||||||
(define config
|
|
||||||
(if tethered?
|
|
||||||
(hash-union
|
|
||||||
config*
|
|
||||||
(hash
|
|
||||||
'config-tethered-console-bin-dir (hash-ref config* 'bin-dir)
|
|
||||||
'config-tethered-gui-bin-dir (hash-ref config* 'bin-dir)
|
|
||||||
'config-tethered-apps-dir (hash-ref config* 'apps-dir)))
|
|
||||||
config*))
|
|
||||||
|
|
||||||
(with-output-to-file (build-path out "etc/racket/config.rktd")
|
|
||||||
(curry pretty-write config))
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo Initializing installation layer
|
|
||||||
if [ "$racketTetheredInstallation" == "1" ]; then
|
|
||||||
racket --config $out/etc/racket/ --no-user-path -l- \
|
|
||||||
raco setup --no-zo
|
|
||||||
elif [ "$racketDoMainSetup" == "1" ]; then
|
|
||||||
racket --config $out/etc/racket/ --no-user-path -l- \
|
|
||||||
raco setup --no-zo --no-launcher
|
|
||||||
|
|
||||||
rm $out/bin/mzscheme # ????
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$racketEnvOnly" == "1" ]; then
|
|
||||||
echo Skipping raco pkg install
|
|
||||||
else
|
|
||||||
echo Running raco pkg install
|
|
||||||
racoflags=""
|
|
||||||
if [ "$racketBuildDocs" != "1" ]; then
|
|
||||||
racoflags="--no-docs"
|
|
||||||
fi
|
|
||||||
racket --config $out/etc/racket/ --no-user-path -l- \
|
|
||||||
raco pkg install --installation --deps fail --copy --name "$pname" $racoflags \
|
|
||||||
"$(readlink -e .)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
echo "Finished executing racketInstallPhase"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if [ -z "${dontUseRacketInstall-}" ] && [ -z "${installPhase-}" ]; then
|
|
||||||
echo "Adding racket env hook"
|
|
||||||
addEnvHooks "$targetOffset" addRacketPath
|
|
||||||
echo "Using racketInstallPhase"
|
|
||||||
installPhase=racketInstallPhase
|
|
||||||
fi
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
(require
|
|
||||||
racket/function
|
|
||||||
racket/list
|
|
||||||
racket/pretty
|
|
||||||
racket/string
|
|
||||||
setup/dirs
|
|
||||||
)
|
|
||||||
|
|
||||||
(define config-file (build-path (find-config-dir) "config.rktd"))
|
|
||||||
|
|
||||||
(define lib-paths
|
|
||||||
((compose remove-duplicates
|
|
||||||
(curry map (curryr string-trim "-L" #:right? #f))
|
|
||||||
(curry filter (curryr string-prefix? "-L"))
|
|
||||||
string-split)
|
|
||||||
(getenv "NIX_LDFLAGS")))
|
|
||||||
|
|
||||||
(define config
|
|
||||||
(let* ([prev-config (read-installation-configuration-table)]
|
|
||||||
[prev-lib-search-dirs (hash-ref prev-config 'lib-search-dirs '(#f))]
|
|
||||||
[lib-search-dirs (remove-duplicates (append lib-paths prev-lib-search-dirs))])
|
|
||||||
(hash-set prev-config 'lib-search-dirs lib-search-dirs)))
|
|
||||||
|
|
||||||
(call-with-output-file config-file
|
|
||||||
#:exists 'replace
|
|
||||||
(curry pretty-write config))
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
"version": "8.18",
|
|
||||||
"full": {
|
|
||||||
"filename": "racket-8.18-src.tgz",
|
|
||||||
"sha256": "65477c71ec1a978a6ee4db582b9b47b1a488029d7a42e358906de154a6e5905c"
|
|
||||||
},
|
|
||||||
"minimal": {
|
|
||||||
"filename": "racket-minimal-8.18-src.tgz",
|
|
||||||
"sha256": "24b9cf8365254b43bac308192c782edfbd86363df1322c4e063b797ed0f7db66"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,175 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
fetchurl,
|
|
||||||
|
|
||||||
libiconvReal,
|
|
||||||
libz,
|
|
||||||
lz4,
|
|
||||||
ncurses,
|
|
||||||
openssl,
|
|
||||||
sqlite,
|
|
||||||
|
|
||||||
disableDocs ? false,
|
|
||||||
|
|
||||||
callPackage,
|
|
||||||
writers,
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
manifest = lib.importJSON ./manifest.json;
|
|
||||||
|
|
||||||
inherit (stdenv.hostPlatform) isDarwin;
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
|
||||||
pname = "racket";
|
|
||||||
inherit (manifest) version;
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://mirror.racket-lang.org/installers/${manifest.version}/${manifest.minimal.filename}";
|
|
||||||
inherit (manifest.minimal) sha256;
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
libiconvReal
|
|
||||||
libz
|
|
||||||
lz4
|
|
||||||
ncurses
|
|
||||||
openssl
|
|
||||||
sqlite.out
|
|
||||||
];
|
|
||||||
|
|
||||||
patches = lib.optionals isDarwin [
|
|
||||||
/*
|
|
||||||
The entry point binary $out/bin/racket is codesigned at least once. The
|
|
||||||
following error is triggered as a result.
|
|
||||||
(error 'add-ad-hoc-signature "file already has a signature")
|
|
||||||
We always remove the existing signature then call add-ad-hoc-signature to
|
|
||||||
circumvent this error.
|
|
||||||
*/
|
|
||||||
./patches/force-remove-codesign-then-add.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
preConfigure =
|
|
||||||
/*
|
|
||||||
The configure script forces using `libtool -o` as AR on Darwin. But, the
|
|
||||||
`-o` option is only available from Apple libtool. GNU ar works here.
|
|
||||||
*/
|
|
||||||
lib.optionalString isDarwin ''
|
|
||||||
substituteInPlace src/ChezScheme/zlib/configure \
|
|
||||||
--replace-fail 'ARFLAGS="-o"' 'AR=ar; ARFLAGS="rc"'
|
|
||||||
''
|
|
||||||
+ ''
|
|
||||||
mkdir src/build
|
|
||||||
cd src/build
|
|
||||||
'';
|
|
||||||
|
|
||||||
configureScript = "../configure";
|
|
||||||
|
|
||||||
configureFlags = [
|
|
||||||
# > docs failure: ftype-ref: ftype mismatch for #<ftype-pointer>
|
|
||||||
# "--enable-check"
|
|
||||||
"--enable-csonly"
|
|
||||||
"--enable-liblz4"
|
|
||||||
"--enable-libz"
|
|
||||||
]
|
|
||||||
++ lib.optional disableDocs "--disable-docs"
|
|
||||||
++ lib.optionals (!(finalAttrs.dontDisableStatic or false)) [
|
|
||||||
# instead of `--disable-static` that `stdenv` assumes
|
|
||||||
"--disable-libs"
|
|
||||||
# "not currently supported" in `configure --help-cs` but still emphasized in README
|
|
||||||
"--enable-shared"
|
|
||||||
]
|
|
||||||
++ lib.optionals isDarwin [
|
|
||||||
"--disable-strip"
|
|
||||||
# "use Unix style (e.g., use Gtk) for Mac OS", which eliminates many problems
|
|
||||||
"--enable-xonx"
|
|
||||||
];
|
|
||||||
|
|
||||||
# The upstream script builds static libraries by default.
|
|
||||||
dontAddStaticConfigureFlags = true;
|
|
||||||
|
|
||||||
dontStrip = isDarwin;
|
|
||||||
|
|
||||||
postFixup =
|
|
||||||
let
|
|
||||||
configureInstallation = builtins.path {
|
|
||||||
name = "configure-installation.rkt";
|
|
||||||
path = ./configure-installation.rkt;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
''
|
|
||||||
$out/bin/racket -U -u ${configureInstallation}
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
# Functionalities #
|
|
||||||
updateScript = {
|
|
||||||
command = ./update.py;
|
|
||||||
attrPath = "racket";
|
|
||||||
supportedFeatures = [ "commit" ];
|
|
||||||
};
|
|
||||||
writeScript =
|
|
||||||
nameOrPath:
|
|
||||||
{
|
|
||||||
libraries ? [ ],
|
|
||||||
...
|
|
||||||
}@config:
|
|
||||||
assert lib.assertMsg (libraries == [ ]) "library integration for Racket has not been implemented";
|
|
||||||
writers.makeScriptWriter (
|
|
||||||
builtins.removeAttrs config [ "libraries" ]
|
|
||||||
// {
|
|
||||||
interpreter = "${lib.getExe finalAttrs.finalPackage}";
|
|
||||||
}
|
|
||||||
) nameOrPath;
|
|
||||||
writeScriptBin = name: finalAttrs.passthru.writeScript "/bin/${name}";
|
|
||||||
|
|
||||||
# Tests #
|
|
||||||
tests = builtins.mapAttrs (name: path: callPackage path { racket = finalAttrs.finalPackage; }) {
|
|
||||||
## Basic ##
|
|
||||||
write-greeting = ./tests/write-greeting.nix;
|
|
||||||
get-version-and-variant = ./tests/get-version-and-variant.nix;
|
|
||||||
load-openssl = ./tests/load-openssl.nix;
|
|
||||||
|
|
||||||
## Nixpkgs supports ##
|
|
||||||
nix-write-script = ./tests/nix-write-script.nix;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Programmable programming language (minimal distribution)";
|
|
||||||
longDescription = ''
|
|
||||||
Racket is a full-spectrum programming language. It goes beyond
|
|
||||||
Lisp and Scheme with dialects that support objects, types,
|
|
||||||
laziness, and more. Racket enables programmers to link
|
|
||||||
components written in different dialects, and it empowers
|
|
||||||
programmers to create new, project-specific dialects. Racket's
|
|
||||||
libraries support applications from web servers and databases to
|
|
||||||
GUIs and charts.
|
|
||||||
|
|
||||||
This minimal distribution includes just enough of Racket that you can
|
|
||||||
use `raco pkg` to install more.
|
|
||||||
'';
|
|
||||||
homepage = "https://racket-lang.org/";
|
|
||||||
changelog = "https://github.com/racket/racket/releases/tag/v${finalAttrs.version}";
|
|
||||||
/*
|
|
||||||
> Racket is distributed under the MIT license and the Apache version 2.0
|
|
||||||
> license, at your option.
|
|
||||||
|
|
||||||
> The Racket runtime system embeds Chez Scheme, which is distributed
|
|
||||||
> under the Apache version 2.0 license.
|
|
||||||
*/
|
|
||||||
license = with lib.licenses; [
|
|
||||||
asl20
|
|
||||||
mit
|
|
||||||
];
|
|
||||||
sourceProvenance = with lib.sourceTypes; [
|
|
||||||
fromSource
|
|
||||||
binaryBytecode
|
|
||||||
];
|
|
||||||
maintainers = with lib.maintainers; [ rc-zb ];
|
|
||||||
mainProgram = "racket";
|
|
||||||
platforms = lib.platforms.all;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -1,140 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
fetchurl,
|
|
||||||
racket-minimal,
|
|
||||||
|
|
||||||
cairo,
|
|
||||||
fontconfig,
|
|
||||||
glib,
|
|
||||||
glibcLocales,
|
|
||||||
gtk3,
|
|
||||||
libGL,
|
|
||||||
libiodbc,
|
|
||||||
libjpeg,
|
|
||||||
libpng,
|
|
||||||
makeFontsConf,
|
|
||||||
pango,
|
|
||||||
unixODBC,
|
|
||||||
wrapGAppsHook3,
|
|
||||||
|
|
||||||
disableDocs ? false,
|
|
||||||
|
|
||||||
callPackage,
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
minimal = racket-minimal.override { inherit disableDocs; };
|
|
||||||
|
|
||||||
manifest = lib.importJSON ./manifest.json;
|
|
||||||
inherit (stdenv.hostPlatform) isDarwin;
|
|
||||||
in
|
|
||||||
|
|
||||||
minimal.overrideAttrs (
|
|
||||||
finalAttrs: prevAttrs: {
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://mirror.racket-lang.org/installers/${manifest.version}/${manifest.full.filename}";
|
|
||||||
inherit (manifest.full) sha256;
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = prevAttrs.buildInputs ++ [
|
|
||||||
(if isDarwin then libiodbc else unixODBC)
|
|
||||||
cairo
|
|
||||||
fontconfig.lib
|
|
||||||
glib
|
|
||||||
gtk3
|
|
||||||
libGL
|
|
||||||
libjpeg
|
|
||||||
libpng
|
|
||||||
pango
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
wrapGAppsHook3
|
|
||||||
];
|
|
||||||
|
|
||||||
patches = prevAttrs.patches or [ ] ++ [
|
|
||||||
/*
|
|
||||||
Hardcode variant detection because nixpkgs wraps the Racket binary making it
|
|
||||||
fail to detect its variant at runtime.
|
|
||||||
https://github.com/NixOS/nixpkgs/issues/114993#issuecomment-812951247
|
|
||||||
*/
|
|
||||||
./patches/force-cs-variant.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
preBuild =
|
|
||||||
let
|
|
||||||
libPathsVar = if isDarwin then "DYLD_FALLBACK_LIBRARY_PATH" else "LD_LIBRARY_PATH";
|
|
||||||
in
|
|
||||||
/*
|
|
||||||
Makes FFIs available for setting up `main-distribution` and its
|
|
||||||
dependencies, which is integrated into the build process of Racket
|
|
||||||
*/
|
|
||||||
''
|
|
||||||
for lib_path in $( \
|
|
||||||
echo "$NIX_LDFLAGS" \
|
|
||||||
| tr ' ' '\n' \
|
|
||||||
| grep '^-L' \
|
|
||||||
| sed 's/^-L//' \
|
|
||||||
| awk '!seen[$0]++' \
|
|
||||||
); do
|
|
||||||
addToSearchPath ${libPathsVar} $lib_path
|
|
||||||
done
|
|
||||||
''
|
|
||||||
# Fixes Fontconfig errors
|
|
||||||
+ ''
|
|
||||||
export FONTCONFIG_FILE=${makeFontsConf { fontDirectories = [ ]; }}
|
|
||||||
export XDG_CACHE_HOME=$(mktemp -d)
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Disable automatic wrapping, and only wrap the ELF binaries:
|
|
||||||
#
|
|
||||||
# - bin/racket
|
|
||||||
# - lib/racket/gracket
|
|
||||||
# - bin/mred
|
|
||||||
# - bin/mzscheme
|
|
||||||
#
|
|
||||||
# This avoids effectively double-wrapping shell scripts generated by raco, because they will
|
|
||||||
# call into the wrapped ELF binaries
|
|
||||||
dontWrapGApps = true;
|
|
||||||
|
|
||||||
preFixup = (lib.optionalString (!isDarwin) ''
|
|
||||||
gappsWrapperArgs+=("--set" "LOCALE_ARCHIVE" "${glibcLocales}/lib/locale/locale-archive")
|
|
||||||
'') + ''
|
|
||||||
wrapProgram $out/bin/racket "''${gappsWrapperArgs[@]}"
|
|
||||||
wrapProgram $out/bin/mred "''${gappsWrapperArgs[@]}"
|
|
||||||
wrapProgram $out/bin/mzscheme "''${gappsWrapperArgs[@]}"
|
|
||||||
|
|
||||||
wrapProgram $out/lib/racket/gracket "''${gappsWrapperArgs[@]}"
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru =
|
|
||||||
let
|
|
||||||
notUpdated = x: !builtins.isAttrs x || lib.isDerivation x;
|
|
||||||
stopPred =
|
|
||||||
_: lhs: rhs:
|
|
||||||
notUpdated lhs || notUpdated rhs;
|
|
||||||
in
|
|
||||||
lib.recursiveUpdateUntil stopPred prevAttrs.passthru {
|
|
||||||
tests = builtins.mapAttrs (name: path: callPackage path { racket = finalAttrs.finalPackage; }) {
|
|
||||||
## `main-distribution` ##
|
|
||||||
draw-crossing = ./tests/draw-crossing.nix;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = prevAttrs.meta // {
|
|
||||||
description = "Programmable programming language";
|
|
||||||
longDescription = ''
|
|
||||||
Racket is a full-spectrum programming language. It goes beyond
|
|
||||||
Lisp and Scheme with dialects that support objects, types,
|
|
||||||
laziness, and more. Racket enables programmers to link
|
|
||||||
components written in different dialects, and it empowers
|
|
||||||
programmers to create new, project-specific dialects. Racket's
|
|
||||||
libraries support applications from web servers and databases to
|
|
||||||
GUIs and charts.
|
|
||||||
'';
|
|
||||||
platforms = lib.platforms.unix;
|
|
||||||
badPlatforms = lib.platforms.darwin;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
--- old/collects/setup/variant.rkt
|
|
||||||
+++ new/collects/setup/variant.rkt
|
|
||||||
@@ -7,7 +7,8 @@
|
|
||||||
(provide variant-suffix
|
|
||||||
script-variant?)
|
|
||||||
|
|
||||||
-(define plain-variant
|
|
||||||
+(define plain-variant 'cs)
|
|
||||||
+#;(define plain-variant
|
|
||||||
(delay/sync
|
|
||||||
(cond
|
|
||||||
[(cross-installation?)
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
--- old/src/mac/codesign.rkt
|
|
||||||
+++ new/src/mac/codesign.rkt
|
|
||||||
@@ -18,6 +18,6 @@
|
|
||||||
file))
|
|
||||||
|
|
||||||
(void
|
|
||||||
- (if remove?
|
|
||||||
+ (begin
|
|
||||||
(remove-signature file)
|
|
||||||
(add-ad-hoc-signature file)))
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
{ runCommandLocal, racket }:
|
|
||||||
|
|
||||||
runCommandLocal "racket-test-draw-crossing"
|
|
||||||
{
|
|
||||||
nativeBuildInputs = [ racket ];
|
|
||||||
}
|
|
||||||
''
|
|
||||||
racket -f - <<EOF
|
|
||||||
(require racket/draw)
|
|
||||||
|
|
||||||
(define target (make-bitmap 64 64))
|
|
||||||
(define dc (new bitmap-dc% [bitmap target]))
|
|
||||||
(send dc draw-line 0 0 64 64)
|
|
||||||
(send dc draw-line 0 64 64 0)
|
|
||||||
|
|
||||||
(send target save-file (getenv "out") 'png)
|
|
||||||
EOF
|
|
||||||
''
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
runCommandLocal,
|
|
||||||
racket,
|
|
||||||
}:
|
|
||||||
|
|
||||||
runCommandLocal "racket-test-get-version-and-variant"
|
|
||||||
{
|
|
||||||
nativeBuildInputs = [ racket ];
|
|
||||||
}
|
|
||||||
(
|
|
||||||
lib.concatLines (
|
|
||||||
builtins.map
|
|
||||||
(
|
|
||||||
{ expectation, output }:
|
|
||||||
''
|
|
||||||
expectation="${expectation}"
|
|
||||||
|
|
||||||
output="${output}"
|
|
||||||
|
|
||||||
if test "$output" != "$expectation"; then
|
|
||||||
echo "output mismatch: expected ''${expectation}, but got ''${output}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
''
|
|
||||||
)
|
|
||||||
[
|
|
||||||
{
|
|
||||||
expectation = racket.version;
|
|
||||||
output = "$(racket -e '(display (version))')";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
expectation = "cs";
|
|
||||||
output = "$(racket -e '(require launcher/launcher) (display (current-launcher-variant))')";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
expectation = "${lib.getExe racket}";
|
|
||||||
output = "$(racket -e '(require compiler/find-exe) (display (find-exe))')";
|
|
||||||
}
|
|
||||||
]
|
|
||||||
)
|
|
||||||
+ ''
|
|
||||||
touch $out
|
|
||||||
''
|
|
||||||
)
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
{ runCommandLocal, racket }:
|
|
||||||
|
|
||||||
runCommandLocal "racket-test-load-openssl"
|
|
||||||
{
|
|
||||||
nativeBuildInputs = [ racket ];
|
|
||||||
}
|
|
||||||
''
|
|
||||||
racket -f - <<EOF
|
|
||||||
(require openssl)
|
|
||||||
(unless ssl-available?
|
|
||||||
(raise ssl-load-fail-reason))
|
|
||||||
EOF
|
|
||||||
|
|
||||||
touch $out
|
|
||||||
''
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
{ runCommandLocal, racket }:
|
|
||||||
|
|
||||||
let
|
|
||||||
script = racket.writeScript "racket-test-nix-write-script-the-script" { } ''
|
|
||||||
#lang racket/base
|
|
||||||
(display "success")
|
|
||||||
(newline)
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
|
|
||||||
runCommandLocal "racket-test-nix-write-script"
|
|
||||||
{
|
|
||||||
nativeBuildInputs = [ racket ];
|
|
||||||
}
|
|
||||||
''
|
|
||||||
expectation="success"
|
|
||||||
|
|
||||||
output="$(${script})"
|
|
||||||
|
|
||||||
if test "$output" != "$expectation"; then
|
|
||||||
echo "output mismatch: expected ''${expectation}, but got ''${output}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
touch $out
|
|
||||||
''
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
{ runCommandLocal, racket }:
|
|
||||||
|
|
||||||
runCommandLocal "racket-test-write-greeting"
|
|
||||||
{
|
|
||||||
nativeBuildInputs = [ racket ];
|
|
||||||
}
|
|
||||||
''
|
|
||||||
expectation="Hello, world!"
|
|
||||||
|
|
||||||
racket -f - <<EOF
|
|
||||||
(with-output-to-file (getenv "out")
|
|
||||||
(lambda ()
|
|
||||||
(display "Hello, world!")
|
|
||||||
(newline)))
|
|
||||||
EOF
|
|
||||||
|
|
||||||
output="$(cat $out)"
|
|
||||||
|
|
||||||
if test "$output" != "$expectation"; then
|
|
||||||
echo "output mismatch: expected ''${expectation}, but got ''${output}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
''
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
#! /usr/bin/env nix-shell
|
|
||||||
#! nix-shell -i python3 --packages 'python3.withPackages (ps: with ps; [ requests beautifulsoup4 ])'
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import json
|
|
||||||
import requests
|
|
||||||
from bs4 import BeautifulSoup
|
|
||||||
|
|
||||||
SITE = "https://download.racket-lang.org"
|
|
||||||
MANIFEST_FILENAME = "manifest.json"
|
|
||||||
|
|
||||||
def find_info(table, group_name, subgroup_name):
|
|
||||||
group = table.find(
|
|
||||||
string=re.compile("^{}\\s*".format(group_name))
|
|
||||||
).find_parent("tr", class_="group")
|
|
||||||
subgroup = group.find_next(
|
|
||||||
string=re.compile("^{}\\s*".format(subgroup_name))
|
|
||||||
).find_parent(class_="subgroup")
|
|
||||||
link = subgroup.find_next(
|
|
||||||
"a",
|
|
||||||
class_="installer",
|
|
||||||
string="Source"
|
|
||||||
)
|
|
||||||
filename = link["href"].split("/")[1]
|
|
||||||
sha256 = link.find_next(class_="checksum").string
|
|
||||||
|
|
||||||
return {
|
|
||||||
"filename": filename,
|
|
||||||
"sha256": sha256,
|
|
||||||
}
|
|
||||||
|
|
||||||
os.chdir(os.path.dirname(os.path.abspath(__file__)))
|
|
||||||
|
|
||||||
prev_version = os.environ["UPDATE_NIX_OLD_VERSION"]
|
|
||||||
|
|
||||||
homepage = BeautifulSoup(requests.get(SITE).text, "html.parser")
|
|
||||||
|
|
||||||
version = homepage.find(
|
|
||||||
"h3",
|
|
||||||
string=re.compile("^Version \\d+\\.\\d+")
|
|
||||||
).string.split()[1]
|
|
||||||
if version == prev_version:
|
|
||||||
raise Exception("no newer version available")
|
|
||||||
|
|
||||||
down_page_path = homepage.find(
|
|
||||||
"a",
|
|
||||||
string="More Installers and Checksums"
|
|
||||||
)["href"]
|
|
||||||
down_page = BeautifulSoup(requests.get(SITE + "/" + down_page_path).text, "html.parser")
|
|
||||||
down_table = down_page.find(class_="download-table")
|
|
||||||
|
|
||||||
full = find_info(down_table, "Racket", "Unix")
|
|
||||||
minimal = find_info(down_table, "Minimal Racket", "All Platforms")
|
|
||||||
|
|
||||||
with open(MANIFEST_FILENAME, "w", encoding="utf-8") as f:
|
|
||||||
json.dump({
|
|
||||||
"version": version,
|
|
||||||
"full": full,
|
|
||||||
"minimal": minimal,
|
|
||||||
}, f, indent=2, ensure_ascii=False)
|
|
||||||
f.write("\n")
|
|
||||||
|
|
||||||
print(json.dumps(
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"attrPath": os.environ["UPDATE_NIX_ATTR_PATH"],
|
|
||||||
"oldVersion": prev_version,
|
|
||||||
"newVersion": version,
|
|
||||||
"files": [ os.path.abspath(MANIFEST_FILENAME) ],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
indent=2, ensure_ascii=False
|
|
||||||
))
|
|
||||||
|
|
@ -1,5 +1,18 @@
|
||||||
|
From be4c852769e260e3a9b516bb5626a6a6a68a2cd3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: roblabla <unfiltered@roblab.la>
|
||||||
|
Date: Wed, 31 Jan 2024 13:19:55 +0100
|
||||||
|
Subject: [PATCH] Use com.google.protobuf:protobuf-gradle-plugin
|
||||||
|
|
||||||
|
---
|
||||||
|
Ghidra/Debug/Debugger-isf/build.gradle | 8 +-
|
||||||
|
Ghidra/Debug/Debugger-rmi-trace/build.gradle | 16 ++--
|
||||||
|
build.gradle | 6 ++
|
||||||
|
gradle/hasProtobuf.gradle | 94 --------------------
|
||||||
|
4 files changed, 22 insertions(+), 102 deletions(-)
|
||||||
|
delete mode 100644 gradle/hasProtobuf.gradle
|
||||||
|
|
||||||
diff --git a/Ghidra/Debug/Debugger-isf/build.gradle b/Ghidra/Debug/Debugger-isf/build.gradle
|
diff --git a/Ghidra/Debug/Debugger-isf/build.gradle b/Ghidra/Debug/Debugger-isf/build.gradle
|
||||||
index 2db94ed67e..925f394cf0 100644
|
index f6c8464405..396b52d188 100644
|
||||||
--- a/Ghidra/Debug/Debugger-isf/build.gradle
|
--- a/Ghidra/Debug/Debugger-isf/build.gradle
|
||||||
+++ b/Ghidra/Debug/Debugger-isf/build.gradle
|
+++ b/Ghidra/Debug/Debugger-isf/build.gradle
|
||||||
@@ -18,11 +18,17 @@ apply from: "${rootProject.projectDir}/gradle/javaProject.gradle"
|
@@ -18,11 +18,17 @@ apply from: "${rootProject.projectDir}/gradle/javaProject.gradle"
|
||||||
|
|
@ -19,10 +32,10 @@ index 2db94ed67e..925f394cf0 100644
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
dependencies {
|
dependencies {
|
||||||
|
api project(':Framework-AsyncComm')
|
||||||
api project(':ProposedUtils')
|
api project(':ProposedUtils')
|
||||||
}
|
|
||||||
diff --git a/Ghidra/Debug/Debugger-rmi-trace/build.gradle b/Ghidra/Debug/Debugger-rmi-trace/build.gradle
|
diff --git a/Ghidra/Debug/Debugger-rmi-trace/build.gradle b/Ghidra/Debug/Debugger-rmi-trace/build.gradle
|
||||||
index 4fa3b9a539..2663aeaeb0 100644
|
index 8b6589f035..05da5a7a7e 100644
|
||||||
--- a/Ghidra/Debug/Debugger-rmi-trace/build.gradle
|
--- a/Ghidra/Debug/Debugger-rmi-trace/build.gradle
|
||||||
+++ b/Ghidra/Debug/Debugger-rmi-trace/build.gradle
|
+++ b/Ghidra/Debug/Debugger-rmi-trace/build.gradle
|
||||||
@@ -19,12 +19,17 @@ apply from: "${rootProject.projectDir}/gradle/helpProject.gradle"
|
@@ -19,12 +19,17 @@ apply from: "${rootProject.projectDir}/gradle/helpProject.gradle"
|
||||||
|
|
@ -43,27 +56,25 @@ index 4fa3b9a539..2663aeaeb0 100644
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
dependencies {
|
dependencies {
|
||||||
api project(':ProposedUtils')
|
|
||||||
api project(':Pty')
|
api project(':Pty')
|
||||||
@@ -37,13 +42,10 @@ dependencies {
|
api project(':Debugger')
|
||||||
}
|
@@ -44,12 +49,9 @@ task generateProtoPy {
|
||||||
|
ext.outdir = file("build/generated/source/proto/main/py")
|
||||||
task configureGenerateProtoPy {
|
outputs.dir(outdir)
|
||||||
|
inputs.files(src)
|
||||||
- dependsOn(configurations.protocArtifact)
|
- dependsOn(configurations.protocArtifact)
|
||||||
+ dependsOn(protobuf.generateProtoTasks.all())
|
+ dependsOn(protobuf.generateProtoTasks.all())
|
||||||
|
doLast {
|
||||||
- doLast {
|
|
||||||
- def exe = configurations.protocArtifact.first()
|
- def exe = configurations.protocArtifact.first()
|
||||||
- if (!isCurrentWindows()) {
|
- if (!isCurrentWindows()) {
|
||||||
- exe.setExecutable(true)
|
- exe.setExecutable(true)
|
||||||
- }
|
- }
|
||||||
+ doLast {
|
|
||||||
+ def exe = protobuf.tools.protoc.path
|
+ def exe = protobuf.tools.protoc.path
|
||||||
generateProtoPy.commandLine exe
|
exec {
|
||||||
generateProtoPy.args "--python_out=${generateProtoPy.outdir}"
|
commandLine exe, "--python_out=$outdir", "-I$srcdir"
|
||||||
generateProtoPy.args "--pyi_out=${generateProtoPy.stubsOutdir}"
|
args src
|
||||||
diff --git a/build.gradle b/build.gradle
|
diff --git a/build.gradle b/build.gradle
|
||||||
index 159eb7dd7b..ef4add1ad8 100644
|
index 2d75307a08..aa8f1d7604 100644
|
||||||
--- a/build.gradle
|
--- a/build.gradle
|
||||||
+++ b/build.gradle
|
+++ b/build.gradle
|
||||||
@@ -80,6 +80,12 @@ if (flatRepo.isDirectory()) {
|
@@ -80,6 +80,12 @@ if (flatRepo.isDirectory()) {
|
||||||
|
|
@ -81,10 +92,10 @@ index 159eb7dd7b..ef4add1ad8 100644
|
||||||
else {
|
else {
|
||||||
diff --git a/gradle/hasProtobuf.gradle b/gradle/hasProtobuf.gradle
|
diff --git a/gradle/hasProtobuf.gradle b/gradle/hasProtobuf.gradle
|
||||||
deleted file mode 100644
|
deleted file mode 100644
|
||||||
index a8c176bcbe..0000000000
|
index 23b4ce74bb..0000000000
|
||||||
--- a/gradle/hasProtobuf.gradle
|
--- a/gradle/hasProtobuf.gradle
|
||||||
+++ /dev/null
|
+++ /dev/null
|
||||||
@@ -1,98 +0,0 @@
|
@@ -1,94 +0,0 @@
|
||||||
-/* ###
|
-/* ###
|
||||||
- * IP: GHIDRA
|
- * IP: GHIDRA
|
||||||
- *
|
- *
|
||||||
|
|
@ -146,22 +157,7 @@ index a8c176bcbe..0000000000
|
||||||
- }
|
- }
|
||||||
-}*/
|
-}*/
|
||||||
-
|
-
|
||||||
-task configureGenerateProto {
|
-task generateProto {
|
||||||
- dependsOn(configurations.protocArtifact)
|
|
||||||
-
|
|
||||||
- doLast {
|
|
||||||
- def exe = configurations.protocArtifact.first()
|
|
||||||
- if (!isCurrentWindows()) {
|
|
||||||
- exe.setExecutable(true)
|
|
||||||
- }
|
|
||||||
- generateProto.commandLine exe, "--java_out=${generateProto.outdir}", "-I${generateProto.srcdir}"
|
|
||||||
- generateProto.args generateProto.src
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-// Can't use providers.exec, or else we see no output
|
|
||||||
-task generateProto(type:Exec) {
|
|
||||||
- dependsOn(configureGenerateProto)
|
|
||||||
- ext.srcdir = file("src/main/proto")
|
- ext.srcdir = file("src/main/proto")
|
||||||
- ext.src = fileTree(srcdir) {
|
- ext.src = fileTree(srcdir) {
|
||||||
- include "**/*.proto"
|
- include "**/*.proto"
|
||||||
|
|
@ -169,6 +165,17 @@ index a8c176bcbe..0000000000
|
||||||
- ext.outdir = file("build/generated/source/proto/main/java")
|
- ext.outdir = file("build/generated/source/proto/main/java")
|
||||||
- outputs.dir(outdir)
|
- outputs.dir(outdir)
|
||||||
- inputs.files(src)
|
- inputs.files(src)
|
||||||
|
- dependsOn(configurations.protocArtifact)
|
||||||
|
- doLast {
|
||||||
|
- def exe = configurations.protocArtifact.first()
|
||||||
|
- if (!isCurrentWindows()) {
|
||||||
|
- exe.setExecutable(true)
|
||||||
|
- }
|
||||||
|
- exec {
|
||||||
|
- commandLine exe, "--java_out=$outdir", "-I$srcdir"
|
||||||
|
- args src
|
||||||
|
- }
|
||||||
|
- }
|
||||||
-}
|
-}
|
||||||
-
|
-
|
||||||
-tasks.compileJava.dependsOn(tasks.generateProto)
|
-tasks.compileJava.dependsOn(tasks.generateProto)
|
||||||
|
|
@ -183,3 +190,6 @@ index a8c176bcbe..0000000000
|
||||||
- }
|
- }
|
||||||
-}
|
-}
|
||||||
-zipSourceSubproject.dependsOn generateProto
|
-zipSourceSubproject.dependsOn generateProto
|
||||||
|
--
|
||||||
|
2.47.0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,17 +21,16 @@ let
|
||||||
platforms = oldMeta.platforms or ghidra.meta.platforms;
|
platforms = oldMeta.platforms or ghidra.meta.platforms;
|
||||||
};
|
};
|
||||||
|
|
||||||
buildGhidraExtension = lib.extendMkDerivation {
|
buildGhidraExtension =
|
||||||
constructDrv = stdenv.mkDerivation;
|
{
|
||||||
extendDrvArgs =
|
pname,
|
||||||
finalAttrs:
|
nativeBuildInputs ? [ ],
|
||||||
{
|
meta ? { },
|
||||||
pname,
|
...
|
||||||
nativeBuildInputs ? [ ],
|
}@args:
|
||||||
meta ? { },
|
stdenv.mkDerivation (
|
||||||
...
|
args
|
||||||
}@args:
|
// {
|
||||||
{
|
|
||||||
nativeBuildInputs = nativeBuildInputs ++ [
|
nativeBuildInputs = nativeBuildInputs ++ [
|
||||||
unzip
|
unzip
|
||||||
jdk
|
jdk
|
||||||
|
|
@ -59,28 +58,22 @@ let
|
||||||
mkdir -p $out/lib/ghidra/Ghidra/Extensions
|
mkdir -p $out/lib/ghidra/Ghidra/Extensions
|
||||||
unzip -d $out/lib/ghidra/Ghidra/Extensions dist/*.zip
|
unzip -d $out/lib/ghidra/Ghidra/Extensions dist/*.zip
|
||||||
|
|
||||||
# Prevent attempted creation of plugin lock files in the Nix store.
|
|
||||||
for i in $out/lib/ghidra/Ghidra/Extensions/*; do
|
|
||||||
touch "$i/.dbDirLock"
|
|
||||||
done
|
|
||||||
|
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = metaCommon meta;
|
meta = metaCommon meta;
|
||||||
};
|
}
|
||||||
};
|
);
|
||||||
|
|
||||||
buildGhidraScripts = lib.extendMkDerivation {
|
buildGhidraScripts =
|
||||||
constructDrv = stdenv.mkDerivation;
|
{
|
||||||
extendDrvArgs =
|
pname,
|
||||||
finalAttrs:
|
meta ? { },
|
||||||
{
|
...
|
||||||
pname,
|
}@args:
|
||||||
meta ? { },
|
stdenv.mkDerivation (
|
||||||
...
|
args
|
||||||
}@args:
|
// {
|
||||||
{
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
|
|
@ -102,8 +95,8 @@ let
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = metaCommon meta;
|
meta = metaCommon meta;
|
||||||
};
|
}
|
||||||
};
|
);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit buildGhidraExtension buildGhidraScripts;
|
inherit buildGhidraExtension buildGhidraScripts;
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
pname = "ghidra";
|
pname = "ghidra";
|
||||||
version = "11.4.2";
|
version = "11.3.2";
|
||||||
|
|
||||||
isMacArm64 = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
|
isMacArm64 = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
|
||||||
|
|
||||||
|
|
@ -29,7 +29,7 @@ let
|
||||||
owner = "NationalSecurityAgency";
|
owner = "NationalSecurityAgency";
|
||||||
repo = "Ghidra";
|
repo = "Ghidra";
|
||||||
rev = "Ghidra_${version}_build";
|
rev = "Ghidra_${version}_build";
|
||||||
hash = "sha256-/veSp2WuGOF0cYwUC4QFJD6kaMae5NuKrQ5Au4LjDe8=";
|
hash = "sha256-EvIOC/VIUaEl7eneVzgEt2fhLSP9DaawMAutk4ouFp8=";
|
||||||
# populate values that require us to use git. By doing this in postFetch we
|
# populate values that require us to use git. By doing this in postFetch we
|
||||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||||
leaveDotGit = true;
|
leaveDotGit = true;
|
||||||
|
|
@ -251,6 +251,23 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
;
|
;
|
||||||
|
|
||||||
withExtensions = callPackage ./with-extensions.nix { ghidra = finalAttrs.finalPackage; };
|
withExtensions = callPackage ./with-extensions.nix { ghidra = finalAttrs.finalPackage; };
|
||||||
|
|
||||||
|
pythonPackages = rec {
|
||||||
|
ghidratrace = python3Packages.callPackage ./python/ghidratrace.nix {
|
||||||
|
ghidra = finalAttrs.finalPackage;
|
||||||
|
};
|
||||||
|
ghidragdb = python3Packages.callPackage ./python/ghidragdb.nix {
|
||||||
|
ghidra = finalAttrs.finalPackage;
|
||||||
|
inherit ghidratrace;
|
||||||
|
};
|
||||||
|
ghidralldb = python3Packages.callPackage ./python/ghidralldb.nix {
|
||||||
|
ghidra = finalAttrs.finalPackage;
|
||||||
|
inherit ghidratrace;
|
||||||
|
};
|
||||||
|
pyghidra = python3Packages.callPackage ./python/pyghidra.nix {
|
||||||
|
ghidra = finalAttrs.finalPackage;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
@ -269,10 +286,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
binaryBytecode # deps
|
binaryBytecode # deps
|
||||||
];
|
];
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [
|
|
||||||
roblabla
|
|
||||||
vringar
|
|
||||||
];
|
|
||||||
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64;
|
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -99,14 +99,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"https://ftp.postgresql.org": {
|
"https://ftp.postgresql.org": {
|
||||||
"pub/source/v15.13/postgresql-15.13": {
|
"pub/source/v15.10/postgresql-15.10": {
|
||||||
"tar.gz": "sha256-r9wisKblvse2VyN1a5DUTqkR5hsvewHE3FUkq4E7TYk="
|
"tar.gz": "sha256-FzNmYFJZqD3BicQyf/TDclSv7WW0+GbL2KXvLqRJ6PM="
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"https://github.com/NationalSecurityAgency/ghidra-data/raw/Ghidra_11.4.2": {
|
"https://github.com/NationalSecurityAgency/ghidra-data/raw/Ghidra_11.3.2": {
|
||||||
"Debugger/dbgmodel": {
|
|
||||||
"tlb": "sha256-jPXzouuBFgqjSQVqXKTCxyaxtumL8wl81BNRRxYzQ8c="
|
|
||||||
},
|
|
||||||
"FunctionID/vs2012_x64": {
|
"FunctionID/vs2012_x64": {
|
||||||
"fidb": "sha256-1OmKs/eQuDF5MhhDC7oNiySl+/TaZbDB/6jLDPvrDNw="
|
"fidb": "sha256-1OmKs/eQuDF5MhhDC7oNiySl+/TaZbDB/6jLDPvrDNw="
|
||||||
},
|
},
|
||||||
|
|
@ -286,10 +283,6 @@
|
||||||
"jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=",
|
"jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=",
|
||||||
"pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA="
|
"pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA="
|
||||||
},
|
},
|
||||||
"commons-codec#commons-codec/1.18.0": {
|
|
||||||
"jar": "sha256-ugBfMEzvkqPe3iSjitWsm4r8zw2PdYOdbBM4Y0z39uQ=",
|
|
||||||
"pom": "sha256-dLkW2ksDhMYZ5t1MGN7+iqQ4f3lSBSU8+0u7L0WM3c4="
|
|
||||||
},
|
|
||||||
"commons-collections#commons-collections/3.2.2": {
|
"commons-collections#commons-collections/3.2.2": {
|
||||||
"jar": "sha256-7urpF5FxRKaKdB1MDf9mqlxcX9hVk/8he87T/Iyng7g=",
|
"jar": "sha256-7urpF5FxRKaKdB1MDf9mqlxcX9hVk/8he87T/Iyng7g=",
|
||||||
"pom": "sha256-1dgfzCiMDYxxHDAgB8raSqmiJu0aES1LqmTLHWMiFws="
|
"pom": "sha256-1dgfzCiMDYxxHDAgB8raSqmiJu0aES1LqmTLHWMiFws="
|
||||||
|
|
@ -298,10 +291,6 @@
|
||||||
"jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=",
|
"jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=",
|
||||||
"pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k="
|
"pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k="
|
||||||
},
|
},
|
||||||
"commons-io#commons-io/2.19.0": {
|
|
||||||
"jar": "sha256-gkJokZtLYvn0DwjFQ4HeWZOwePWGZ+My0XNIrgGdcrk=",
|
|
||||||
"pom": "sha256-VCt6UC7WGVDRuDEStRsWF9NAfjpN9atWqY12Dg+MWVA="
|
|
||||||
},
|
|
||||||
"commons-lang#commons-lang/2.6": {
|
"commons-lang#commons-lang/2.6": {
|
||||||
"jar": "sha256-UPEbCfh3wpTVbyRGP0fSj5Kc9QRPZIZhwPDPuumi9Jw=",
|
"jar": "sha256-UPEbCfh3wpTVbyRGP0fSj5Kc9QRPZIZhwPDPuumi9Jw=",
|
||||||
"pom": "sha256-7Xa4iRwwtWYonHQ2Vvik1DWYaYJDjUDFZ8YmIzJH5xE="
|
"pom": "sha256-7Xa4iRwwtWYonHQ2Vvik1DWYaYJDjUDFZ8YmIzJH5xE="
|
||||||
|
|
@ -343,9 +332,9 @@
|
||||||
"jar": "sha256-/PSSLTj/hRhPHSMoMXu2CCbhTalIq9YG7j1bjGpw3r0=",
|
"jar": "sha256-/PSSLTj/hRhPHSMoMXu2CCbhTalIq9YG7j1bjGpw3r0=",
|
||||||
"pom": "sha256-uIEr4lGsoTl/S2pCO/Tt06KERONFOyIDtTSTNrmVgik="
|
"pom": "sha256-uIEr4lGsoTl/S2pCO/Tt06KERONFOyIDtTSTNrmVgik="
|
||||||
},
|
},
|
||||||
"junit#junit/4.13.2": {
|
"junit#junit/4.12": {
|
||||||
"jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
|
"jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=",
|
||||||
"pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
|
"pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
|
||||||
},
|
},
|
||||||
"kr/motd/maven#os-maven-plugin/1.7.0": {
|
"kr/motd/maven#os-maven-plugin/1.7.0": {
|
||||||
"jar": "sha256-lDBTUBpCnlPRxNYhUu7BJfo2Yg4NxmtzkKiVCXz96s4=",
|
"jar": "sha256-lDBTUBpCnlPRxNYhUu7BJfo2Yg4NxmtzkKiVCXz96s4=",
|
||||||
|
|
@ -443,9 +432,6 @@
|
||||||
"org/apache#apache/27": {
|
"org/apache#apache/27": {
|
||||||
"pom": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk="
|
"pom": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk="
|
||||||
},
|
},
|
||||||
"org/apache#apache/33": {
|
|
||||||
"pom": "sha256-14vYUkxfg4ChkKZSVoZimpXf5RLfIRETg6bYwJI6RBU="
|
|
||||||
},
|
|
||||||
"org/apache#apache/7": {
|
"org/apache#apache/7": {
|
||||||
"pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU="
|
"pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU="
|
||||||
},
|
},
|
||||||
|
|
@ -457,9 +443,9 @@
|
||||||
"jar": "sha256-Hfi5QwtcjtFD14FeQD4z71NxskAKrb6b2giDdi4IRtE=",
|
"jar": "sha256-Hfi5QwtcjtFD14FeQD4z71NxskAKrb6b2giDdi4IRtE=",
|
||||||
"pom": "sha256-JxvWc4Oa9G5zr/lX4pGNS/lvWsT2xs9NW+k/0fEnHE0="
|
"pom": "sha256-JxvWc4Oa9G5zr/lX4pGNS/lvWsT2xs9NW+k/0fEnHE0="
|
||||||
},
|
},
|
||||||
"org/apache/commons#commons-compress/1.27.1": {
|
"org/apache/commons#commons-compress/1.21": {
|
||||||
"jar": "sha256-KT2A9UtTa3QJXc1+o88KKbv8NAJRkoEzJJX0Qg03DRY=",
|
"jar": "sha256-auz9VFlyillWAc+gcljRMZcv/Dm0kutIvdWWV3ovJEo=",
|
||||||
"pom": "sha256-34zBqDh9TOhCNjtyCf3G0135djg5/T/KtVig+D+dhBw="
|
"pom": "sha256-Z1uwI8m+7d4yMpSZebl0Kl/qlGKApVobRi1Mp4AQiM0="
|
||||||
},
|
},
|
||||||
"org/apache/commons#commons-dbcp2/2.9.0": {
|
"org/apache/commons#commons-dbcp2/2.9.0": {
|
||||||
"jar": "sha256-iHcgkSxcu83/bg4h1QNJN1Vfj/xZc4Hv+Pp38zzm1k4=",
|
"jar": "sha256-iHcgkSxcu83/bg4h1QNJN1Vfj/xZc4Hv+Pp38zzm1k4=",
|
||||||
|
|
@ -468,9 +454,9 @@
|
||||||
"org/apache/commons#commons-lang3/3.11": {
|
"org/apache/commons#commons-lang3/3.11": {
|
||||||
"pom": "sha256-mA1mXYP+0EZlE08FeOUHRCoOdQaRBzeEORsKeYhySnU="
|
"pom": "sha256-mA1mXYP+0EZlE08FeOUHRCoOdQaRBzeEORsKeYhySnU="
|
||||||
},
|
},
|
||||||
"org/apache/commons#commons-lang3/3.17.0": {
|
"org/apache/commons#commons-lang3/3.12.0": {
|
||||||
"jar": "sha256-bucx31yOWil2ocoCO2uzIOqNNTn75kyKHVy3ZRJ8M7Q=",
|
"jar": "sha256-2RnZBEhsA3+NGTQS2gyS4iqfokIwudZ6V4VcXDHH6U4=",
|
||||||
"pom": "sha256-NRxuSUDpObHzMN9H9g8Tujg9uB7gCBga9UHzoqbSpWw="
|
"pom": "sha256-gtMfHcxFg+/9dE6XkWWxbaZL+GvKYj/F0bA+2U9FyFo="
|
||||||
},
|
},
|
||||||
"org/apache/commons#commons-lang3/3.9": {
|
"org/apache/commons#commons-lang3/3.9": {
|
||||||
"pom": "sha256-pAIkKbmEJbQwGBkVchJ5pS9hDzRki9rEh9TKy76N/rU="
|
"pom": "sha256-pAIkKbmEJbQwGBkVchJ5pS9hDzRki9rEh9TKy76N/rU="
|
||||||
|
|
@ -502,18 +488,6 @@
|
||||||
"org/apache/commons#commons-parent/54": {
|
"org/apache/commons#commons-parent/54": {
|
||||||
"pom": "sha256-AA2Bh5UrIjcC/eKW33mVY/Nd6CznKttOe/FXNCN4++M="
|
"pom": "sha256-AA2Bh5UrIjcC/eKW33mVY/Nd6CznKttOe/FXNCN4++M="
|
||||||
},
|
},
|
||||||
"org/apache/commons#commons-parent/72": {
|
|
||||||
"pom": "sha256-Q0Xev8dnsa6saKvdcvxn0YtSHUs5A3KhG2P/DFhrIyA="
|
|
||||||
},
|
|
||||||
"org/apache/commons#commons-parent/73": {
|
|
||||||
"pom": "sha256-TtRFYLB/hEhHnf0eg6Qiuk6D5gs25RsocaxQKm1cG+o="
|
|
||||||
},
|
|
||||||
"org/apache/commons#commons-parent/79": {
|
|
||||||
"pom": "sha256-Yo3zAUis08SRz8trc8euS1mJ5VJqsTovQo3qXUrRDXo="
|
|
||||||
},
|
|
||||||
"org/apache/commons#commons-parent/81": {
|
|
||||||
"pom": "sha256-NI1OfBMb5hFMhUpxnOekQwenw5vTZghJd7JP0prQ7bQ="
|
|
||||||
},
|
|
||||||
"org/apache/commons#commons-pool2/2.11.1": {
|
"org/apache/commons#commons-pool2/2.11.1": {
|
||||||
"jar": "sha256-6gUF7nUV5YsawOaG5NGl2ffYCOJRphvDcaoFlbmWP4M=",
|
"jar": "sha256-6gUF7nUV5YsawOaG5NGl2ffYCOJRphvDcaoFlbmWP4M=",
|
||||||
"pom": "sha256-wbsCmUpK34loDfepitujPFUnaDAUJy1liFuzA27NSMM="
|
"pom": "sha256-wbsCmUpK34loDfepitujPFUnaDAUJy1liFuzA27NSMM="
|
||||||
|
|
@ -549,17 +523,17 @@
|
||||||
"org/apache/logging/log4j#log4j/2.17.1": {
|
"org/apache/logging/log4j#log4j/2.17.1": {
|
||||||
"pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk="
|
"pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk="
|
||||||
},
|
},
|
||||||
"org/bouncycastle#bcpkix-jdk18on/1.80": {
|
"org/bouncycastle#bcpkix-jdk15on/1.69": {
|
||||||
"jar": "sha256-T0umqSYX6hncGD8PpdtJLu5Cb93ioKLWyUd3/9GvZBM=",
|
"jar": "sha256-QIN20Xqqh4nnrNBV/kBCiaEfozX9fGinUykEn7fSjtI=",
|
||||||
"pom": "sha256-pKEiETRntyjhjyb7DP1X8LGg18SlO4Zxis5wv4uG7Uc="
|
"pom": "sha256-WrvkytLCMJR0ZvsgmiJn48xqDTgKajGRWVnTqtm4F2w="
|
||||||
},
|
},
|
||||||
"org/bouncycastle#bcprov-jdk18on/1.80": {
|
"org/bouncycastle#bcprov-jdk15on/1.69": {
|
||||||
"jar": "sha256-6K0gn4xY0pGjfKl1Dp6frGBZaVbJg+Sd2Cgjgd2LMkk=",
|
"jar": "sha256-5Gm9Ofk2mZ8lYAJjEAP/AioilR2p1b2Xicer+pdjopI=",
|
||||||
"pom": "sha256-oKdcdtkcQh7qVtD2Bi+49j7ff6x+xyT9QgzNytcYHUM="
|
"pom": "sha256-/YHicUSVvOeeauazAp2s0kzyz/NAJB2lgQVYlae6eN4="
|
||||||
},
|
},
|
||||||
"org/bouncycastle#bcutil-jdk18on/1.80": {
|
"org/bouncycastle#bcutil-jdk15on/1.69": {
|
||||||
"jar": "sha256-Iuymh/eVVBH0Vq8z5uqOaPxzzYDLizKqX3qLGCfXxng=",
|
"jar": "sha256-KeQOJGbQQNgqbw6ZY10LwrujqUJRz3k5zwtpMhyu/Ak=",
|
||||||
"pom": "sha256-Qhp95L/rnFs4sfxHxCagh9kIeJVdQQf1t6gusde3R7Y="
|
"pom": "sha256-p2e8fzQtGTKJfso8i6zHAEygOAv6dSnyOpc0VJZcffw="
|
||||||
},
|
},
|
||||||
"org/checkerframework#checker-compat-qual/2.5.2": {
|
"org/checkerframework#checker-compat-qual/2.5.2": {
|
||||||
"pom": "sha256-da9ztewybj29yUayH9RoAtXafGEsO/Hlh1N0yY1+pP0="
|
"pom": "sha256-da9ztewybj29yUayH9RoAtXafGEsO/Hlh1N0yY1+pP0="
|
||||||
|
|
@ -573,10 +547,10 @@
|
||||||
"module": "sha256-clinadyqJrmBVNIp2FzHLls2ZrC8tjfS2vFuxJiVZjg=",
|
"module": "sha256-clinadyqJrmBVNIp2FzHLls2ZrC8tjfS2vFuxJiVZjg=",
|
||||||
"pom": "sha256-AjkvvUziGQH5RWFUcrHU1NNZGzqr3wExBfXJLsMstPA="
|
"pom": "sha256-AjkvvUziGQH5RWFUcrHU1NNZGzqr3wExBfXJLsMstPA="
|
||||||
},
|
},
|
||||||
"org/checkerframework#checker-qual/3.49.3": {
|
"org/checkerframework#checker-qual/3.42.0": {
|
||||||
"jar": "sha256-Nn7b8v6fYGwf21qLpuHJwnYlmT4f+VTjho3nC8xkFrc=",
|
"jar": "sha256-zK7dM68LeJTZ8vO2RPTRnkOSjjKQLmGsTRB3eDD1qsc=",
|
||||||
"module": "sha256-dv9CWNsfoaC8bOeur0coPfEGD9Q3oJvm7zxcMmnqWtM=",
|
"module": "sha256-4PpiK33mPq4RBH726RtMKtDx8OE8uQP/UggKR/V6V0Y=",
|
||||||
"pom": "sha256-i+QBdkYoXZFCx/sibPuARFwXfcfBNjsj2UH6bJuwXc8="
|
"pom": "sha256-v1/KqycvVMvPG753w72WPIIcmrrSBYcIvwvtPIdUlMo="
|
||||||
},
|
},
|
||||||
"org/codehaus#codehaus-parent/3": {
|
"org/codehaus#codehaus-parent/3": {
|
||||||
"pom": "sha256-UOslOs0LbuBI9DLZ/Do7NiZO+z2h/6f7B/bE1LeoyjE="
|
"pom": "sha256-UOslOs0LbuBI9DLZ/Do7NiZO+z2h/6f7B/bE1LeoyjE="
|
||||||
|
|
@ -605,10 +579,6 @@
|
||||||
"jar": "sha256-YwKKfV6V7sjibuBCSxQfh+nalccYTypaSbtD371TsQQ=",
|
"jar": "sha256-YwKKfV6V7sjibuBCSxQfh+nalccYTypaSbtD371TsQQ=",
|
||||||
"pom": "sha256-zMoEy/7Z60gzSM+6aexh9gvdyfPjwJJLZLsZ0cqy4s0="
|
"pom": "sha256-zMoEy/7Z60gzSM+6aexh9gvdyfPjwJJLZLsZ0cqy4s0="
|
||||||
},
|
},
|
||||||
"org/commonmark#commonmark-ext-gfm-tables/0.23.0": {
|
|
||||||
"jar": "sha256-WfO2Gthywhg7guygUn14GspFThF31xmMl5WydH0XC3s=",
|
|
||||||
"pom": "sha256-x6/bJCGgs9hFDewHWaPrfBHEqZfTlLd8VR3Bgi3S2Uk="
|
|
||||||
},
|
|
||||||
"org/commonmark#commonmark-ext-heading-anchor/0.23.0": {
|
"org/commonmark#commonmark-ext-heading-anchor/0.23.0": {
|
||||||
"jar": "sha256-7O27O1jbcgxhNXwb4boTKlweeczr4B8NPZo25VJCDL0=",
|
"jar": "sha256-7O27O1jbcgxhNXwb4boTKlweeczr4B8NPZo25VJCDL0=",
|
||||||
"pom": "sha256-95zHry5Zpgc70UwPNKezU0JDO5FxqhdLYzeHRaVuASw="
|
"pom": "sha256-95zHry5Zpgc70UwPNKezU0JDO5FxqhdLYzeHRaVuASw="
|
||||||
|
|
@ -699,17 +669,9 @@
|
||||||
"jar": "sha256-EhJRcOeVUZum3IAQwHC1PHaq6StIXB43Uw5Uq13QjUM=",
|
"jar": "sha256-EhJRcOeVUZum3IAQwHC1PHaq6StIXB43Uw5Uq13QjUM=",
|
||||||
"pom": "sha256-EMo7z1F48YUH8hCmOtljeJaFM0OtHBKRoBmhFvIWpUg="
|
"pom": "sha256-EMo7z1F48YUH8hCmOtljeJaFM0OtHBKRoBmhFvIWpUg="
|
||||||
},
|
},
|
||||||
"org/junit#junit-bom/5.11.0": {
|
"org/junit#junit-bom/5.7.1": {
|
||||||
"module": "sha256-9+2+Z/IgQnCMQQq8VHQI5cR29An1ViNqEXkiEnSi7S0=",
|
"module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=",
|
||||||
"pom": "sha256-5nRZ1IgkJKxjdPQNscj0ouiJRrNAugcsgL6TKivkZE0="
|
"pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q="
|
||||||
},
|
|
||||||
"org/junit#junit-bom/5.11.0-M2": {
|
|
||||||
"module": "sha256-hkd6vPSQ1soFmqmXPLEI0ipQb0nRpVabsyzGy/Q8LM4=",
|
|
||||||
"pom": "sha256-Sj/8Sk7c/sLLXWGZInBqlAcWF5hXGTn4VN/ac+ThfMg="
|
|
||||||
},
|
|
||||||
"org/junit#junit-bom/5.11.4": {
|
|
||||||
"module": "sha256-qaTye+lOmbnVcBYtJGqA9obSd9XTGutUgQR89R2vRuQ=",
|
|
||||||
"pom": "sha256-GdS3R7IEgFMltjNFUylvmGViJ3pKwcteWTpeTE9eQRU="
|
|
||||||
},
|
},
|
||||||
"org/junit#junit-bom/5.7.2": {
|
"org/junit#junit-bom/5.7.2": {
|
||||||
"module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=",
|
"module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=",
|
||||||
|
|
@ -773,9 +735,9 @@
|
||||||
"jar": "sha256-jK3UOsXrbQneBfrsyji5F6BAu5E5x+3rTMgcdAtxMoE=",
|
"jar": "sha256-jK3UOsXrbQneBfrsyji5F6BAu5E5x+3rTMgcdAtxMoE=",
|
||||||
"pom": "sha256-cimwOzCnPukQCActnkVppR2FR/roxQ9SeEGu9MGwuqg="
|
"pom": "sha256-cimwOzCnPukQCActnkVppR2FR/roxQ9SeEGu9MGwuqg="
|
||||||
},
|
},
|
||||||
"org/postgresql#postgresql/42.7.6": {
|
"org/postgresql#postgresql/42.7.3": {
|
||||||
"jar": "sha256-8qHMA1LdXlxvZdut/ye+4Awy5DLGrQMNB0R/ilmDxCo=",
|
"jar": "sha256-omRMv7obqhRf9+jI71gqbu16fsTKeS9/BUEivex1Ymg=",
|
||||||
"pom": "sha256-SfNzCJO2khPK99foymodjHaf9mhCHVJS3gBSvFVGp8c="
|
"pom": "sha256-wqy2hFfZlqjkntB3flklW3RlCXZSOVHxAa25QHXhWIU="
|
||||||
},
|
},
|
||||||
"org/python#jython-standalone/2.7.4": {
|
"org/python#jython-standalone/2.7.4": {
|
||||||
"jar": "sha256-H7oXae/8yLGfXhBDa8gnShWM6YhVnyV5J8JMc7sTfzw=",
|
"jar": "sha256-H7oXae/8yLGfXhBDa8gnShWM6YhVnyV5J8JMc7sTfzw=",
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,6 @@ lib.makeScope newScope (self: {
|
||||||
|
|
||||||
ghidra-delinker-extension = self.callPackage ./extensions/ghidra-delinker-extension { };
|
ghidra-delinker-extension = self.callPackage ./extensions/ghidra-delinker-extension { };
|
||||||
|
|
||||||
ghidra-firmware-utils = self.callPackage ./extensions/ghidra-firmware-utils { };
|
|
||||||
|
|
||||||
ghidra-golanganalyzerextension = self.callPackage ./extensions/ghidra-golanganalyzerextension { };
|
ghidra-golanganalyzerextension = self.callPackage ./extensions/ghidra-golanganalyzerextension { };
|
||||||
|
|
||||||
ghidraninja-ghidra-scripts = self.callPackage ./extensions/ghidraninja-ghidra-scripts { };
|
ghidraninja-ghidra-scripts = self.callPackage ./extensions/ghidraninja-ghidra-scripts { };
|
||||||
|
|
|
||||||
|
|
@ -3,23 +3,26 @@
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
buildGhidraExtension,
|
buildGhidraExtension,
|
||||||
}:
|
}:
|
||||||
buildGhidraExtension (finalAttrs: {
|
let
|
||||||
|
version = "3.0.5";
|
||||||
|
in
|
||||||
|
buildGhidraExtension {
|
||||||
pname = "findcrypt";
|
pname = "findcrypt";
|
||||||
version = "3.1.2";
|
inherit version;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "antoniovazquezblanco";
|
owner = "antoniovazquezblanco";
|
||||||
repo = "GhidraFindcrypt";
|
repo = "GhidraFindcrypt";
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-KP6Wx2U8O/37yEAcV3abKg/uWraHJJOIfb7kvcfejHA=";
|
hash = "sha256-gWVYy+PWpNXlcgD83jap4IFRv66qdhloOwvpQVU2TcI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Ghidra analysis plugin to locate cryptographic constants";
|
description = "Ghidra analysis plugin to locate cryptographic constants";
|
||||||
homepage = "https://github.com/antoniovazquezblanco/GhidraFindcrypt";
|
homepage = "https://github.com/antoniovazquezblanco/GhidraFindcrypt";
|
||||||
downloadPage = "https://github.com/antoniovazquezblanco/GhidraFindcrypt/releases/tag/v${finalAttrs.version}";
|
downloadPage = "https://github.com/antoniovazquezblanco/GhidraFindcrypt/releases/tag/v${version}";
|
||||||
changelog = "https://github.com/antoniovazquezblanco/GhidraFindcrypt/releases/tag/v${finalAttrs.version}";
|
changelog = "https://github.com/antoniovazquezblanco/GhidraFindcrypt/releases/tag/v${version}";
|
||||||
license = lib.licenses.gpl3;
|
license = lib.licenses.gpl3;
|
||||||
maintainers = [ lib.maintainers.BonusPlay ];
|
maintainers = [ lib.maintainers.BonusPlay ];
|
||||||
};
|
};
|
||||||
})
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,36 +4,40 @@
|
||||||
gradle,
|
gradle,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
}:
|
}:
|
||||||
buildGhidraExtension (finalAttrs: {
|
let
|
||||||
pname = "ghidra-delinker-extension";
|
|
||||||
version = "0.5.1";
|
version = "0.5.1";
|
||||||
|
self = buildGhidraExtension {
|
||||||
|
pname = "ghidra-delinker-extension";
|
||||||
|
inherit version;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "boricj";
|
owner = "boricj";
|
||||||
repo = "ghidra-delinker-extension";
|
repo = "ghidra-delinker-extension";
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-h6F50Z7S6tPOl9mIhChLKoFxHuAkq/n36ysUEFwWGxI=";
|
hash = "sha256-h6F50Z7S6tPOl9mIhChLKoFxHuAkq/n36ysUEFwWGxI=";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace build.gradle \
|
||||||
|
--replace-fail '"''${getGitHash()}"' '"v${version}"'
|
||||||
|
'';
|
||||||
|
|
||||||
|
gradleBuildTask = "buildExtension";
|
||||||
|
|
||||||
|
__darwinAllowLocalNetworking = true;
|
||||||
|
|
||||||
|
mitmCache = gradle.fetchDeps {
|
||||||
|
pkg = self;
|
||||||
|
data = ./deps.json;
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Ghidra extension for delinking executables back to object files";
|
||||||
|
homepage = "https://github.com/boricj/ghidra-delinker-extension";
|
||||||
|
license = lib.licenses.asl20;
|
||||||
|
maintainers = [ lib.maintainers.jchw ];
|
||||||
|
platforms = lib.platforms.unix;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
in
|
||||||
postPatch = ''
|
self
|
||||||
substituteInPlace build.gradle \
|
|
||||||
--replace-fail '"''${getGitHash()}"' '"v${finalAttrs.version}"'
|
|
||||||
'';
|
|
||||||
|
|
||||||
gradleBuildTask = "buildExtension";
|
|
||||||
|
|
||||||
__darwinAllowLocalNetworking = true;
|
|
||||||
|
|
||||||
mitmCache = gradle.fetchDeps {
|
|
||||||
pkg = finalAttrs.finalPackage;
|
|
||||||
data = ./deps.json;
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Ghidra extension for delinking executables back to object files";
|
|
||||||
homepage = "https://github.com/boricj/ghidra-delinker-extension";
|
|
||||||
license = lib.licenses.asl20;
|
|
||||||
maintainers = [ lib.maintainers.jchw ];
|
|
||||||
platforms = lib.platforms.unix;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
{
|
|
||||||
buildGhidraExtension,
|
|
||||||
fetchFromGitHub,
|
|
||||||
lib,
|
|
||||||
}:
|
|
||||||
buildGhidraExtension (finalAttrs: {
|
|
||||||
pname = "ghidra-firmware-utils";
|
|
||||||
version = "2024.04.20";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "al3xtjames";
|
|
||||||
repo = "ghidra-firmware-utils";
|
|
||||||
rev = finalAttrs.version;
|
|
||||||
hash = "sha256-BbPRSD1EzgMA3TCKHyNqLjzEgiOm67mLJuOeFOTvd0I=";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Ghidra utilities for analyzing PC firmware";
|
|
||||||
homepage = "https://github.com/al3xtjames/ghidra-firmware-utils";
|
|
||||||
downloadPage = "https://github.com/al3xtjames/ghidra-firmware-utils/releases/tag/${finalAttrs.version}";
|
|
||||||
license = lib.licenses.asl20;
|
|
||||||
maintainers = with lib.maintainers; [ timschumi ];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
@ -3,22 +3,22 @@
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
buildGhidraExtension,
|
buildGhidraExtension,
|
||||||
}:
|
}:
|
||||||
buildGhidraExtension (finalAttrs: {
|
buildGhidraExtension rec {
|
||||||
pname = "Ghidra-GolangAnalyzerExtension";
|
pname = "Ghidra-GolangAnalyzerExtension";
|
||||||
version = "1.2.4";
|
version = "1.2.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mooncat-greenpy";
|
owner = "mooncat-greenpy";
|
||||||
repo = "Ghidra_GolangAnalyzerExtension";
|
repo = "Ghidra_GolangAnalyzerExtension";
|
||||||
rev = finalAttrs.version;
|
rev = version;
|
||||||
hash = "sha256-uxozIJ+BLcP1vBnLOCZD9ueY10hd37fON/Miii3zabo=";
|
hash = "sha256-uxozIJ+BLcP1vBnLOCZD9ueY10hd37fON/Miii3zabo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Facilitates the analysis of Golang binaries using Ghidra";
|
description = "Facilitates the analysis of Golang binaries using Ghidra";
|
||||||
homepage = "https://github.com/mooncat-greenpy/Ghidra_GolangAnalyzerExtension";
|
homepage = "https://github.com/mooncat-greenpy/Ghidra_GolangAnalyzerExtension";
|
||||||
downloadPage = "https://github.com/mooncat-greenpy/Ghidra_GolangAnalyzerExtension/releases/tag/${finalAttrs.version}";
|
downloadPage = "https://github.com/mooncat-greenpy/Ghidra_GolangAnalyzerExtension/releases/tag/${version}";
|
||||||
license = lib.licenses.mit;
|
license = lib.licenses.mit;
|
||||||
maintainers = [ lib.maintainers.ivyfanchiang ];
|
maintainers = [ lib.maintainers.ivyfanchiang ];
|
||||||
};
|
};
|
||||||
})
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,7 @@ buildGhidraExtension {
|
||||||
bison
|
bison
|
||||||
texinfo
|
texinfo
|
||||||
perl
|
perl
|
||||||
]
|
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ];
|
||||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ];
|
|
||||||
|
|
||||||
buildInputs = [ zlib ];
|
buildInputs = [ zlib ];
|
||||||
gradleBuildTask = "assemble";
|
gradleBuildTask = "assemble";
|
||||||
|
|
|
||||||
|
|
@ -24,15 +24,15 @@ let
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
self = buildGhidraExtension (finalAttrs: {
|
self = buildGhidraExtension rec {
|
||||||
pname = "kaiju";
|
pname = "kaiju";
|
||||||
version = "250828";
|
version = "250417";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "CERTCC";
|
owner = "CERTCC";
|
||||||
repo = "kaiju";
|
repo = "kaiju";
|
||||||
rev = finalAttrs.version;
|
rev = version;
|
||||||
hash = "sha256-edsQIBoOTY+WxVBtH1bbM7TZZHhA0jgVb2iJKC66iVM=";
|
hash = "sha256-SSvCb3xnOh0mb3H24RJTi11UmN2ARgFgsiiKlZXyufM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|
@ -65,9 +65,9 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Java implementation of some features of the CERT Pharos Binary Analysis Framework for Ghidra";
|
description = "A Java implementation of some features of the CERT Pharos Binary Analysis Framework for Ghidra";
|
||||||
homepage = "https://github.com/CERTCC/kaiju";
|
homepage = "https://github.com/CERTCC/kaiju";
|
||||||
downloadPage = "https://github.com/CERTCC/kaiju/releases/tag/${finalAttrs.version}";
|
downloadPage = "https://github.com/CERTCC/kaiju/releases/tag/${version}";
|
||||||
license = lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
maintainers = [ lib.maintainers.ivyfanchiang ];
|
maintainers = [ lib.maintainers.ivyfanchiang ];
|
||||||
platforms = [
|
platforms = [
|
||||||
|
|
@ -77,6 +77,6 @@ let
|
||||||
"aarch64-darwin"
|
"aarch64-darwin"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
});
|
};
|
||||||
in
|
in
|
||||||
self
|
self
|
||||||
|
|
|
||||||
|
|
@ -3,22 +3,22 @@
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
buildGhidraExtension,
|
buildGhidraExtension,
|
||||||
}:
|
}:
|
||||||
buildGhidraExtension (finalAttrs: {
|
buildGhidraExtension rec {
|
||||||
pname = "lightkeeper";
|
pname = "lightkeeper";
|
||||||
version = "1.2.4";
|
version = "1.2.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "WorksButNotTested";
|
owner = "WorksButNotTested";
|
||||||
repo = "lightkeeper";
|
repo = "lightkeeper";
|
||||||
rev = finalAttrs.version;
|
rev = version;
|
||||||
hash = "sha256-aGMWg6VQleKH/txlxpSw19QOotWZSqeW5Ve2SpWGhgA=";
|
hash = "sha256-aGMWg6VQleKH/txlxpSw19QOotWZSqeW5Ve2SpWGhgA=";
|
||||||
};
|
};
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
cd lightkeeper
|
cd lightkeeper
|
||||||
'';
|
'';
|
||||||
meta = {
|
meta = {
|
||||||
description = "Port of the Lighthouse plugin to GHIDRA";
|
description = "A port of the Lighthouse plugin to GHIDRA.";
|
||||||
homepage = "https://github.com/WorksButNotTested/lightkeeper";
|
homepage = "https://github.com/WorksButNotTested/lightkeeper";
|
||||||
license = lib.licenses.asl20;
|
license = lib.licenses.asl20;
|
||||||
};
|
};
|
||||||
})
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,18 @@
|
||||||
ghidra,
|
ghidra,
|
||||||
ant,
|
ant,
|
||||||
}:
|
}:
|
||||||
buildGhidraExtension (finalAttrs: {
|
let
|
||||||
|
version = "2.3.1";
|
||||||
|
in
|
||||||
|
buildGhidraExtension {
|
||||||
pname = "wasm";
|
pname = "wasm";
|
||||||
version = "2.3.2";
|
inherit version;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nneonneo";
|
owner = "nneonneo";
|
||||||
repo = "ghidra-wasm-plugin";
|
repo = "ghidra-wasm-plugin";
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-JFUPhh4WUcfxYow3kLMyva1Ni/cQBIit983o/KbbKps=";
|
hash = "sha256-aoSMNzv+TgydiXM4CbvAyu/YsxmdZPvpkZkYEE3C+V4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ ant ];
|
nativeBuildInputs = [ ant ];
|
||||||
|
|
@ -32,9 +35,9 @@ buildGhidraExtension (finalAttrs: {
|
||||||
meta = {
|
meta = {
|
||||||
description = "Ghidra Wasm plugin with disassembly and decompilation support";
|
description = "Ghidra Wasm plugin with disassembly and decompilation support";
|
||||||
homepage = "https://github.com/nneonneo/ghidra-wasm-plugin";
|
homepage = "https://github.com/nneonneo/ghidra-wasm-plugin";
|
||||||
downloadPage = "https://github.com/nneonneo/ghidra-wasm-plugin/releases/tag/v${finalAttrs.version}";
|
downloadPage = "https://github.com/nneonneo/ghidra-wasm-plugin/releases/tag/v${version}";
|
||||||
changelog = "https://github.com/nneonneo/ghidra-wasm-plugin/releases/tag/v${finalAttrs.version}";
|
changelog = "https://github.com/nneonneo/ghidra-wasm-plugin/releases/tag/v${version}";
|
||||||
license = lib.licenses.gpl3;
|
license = lib.licenses.gpl3;
|
||||||
maintainers = [ lib.maintainers.BonusPlay ];
|
maintainers = [ lib.maintainers.BonusPlay ];
|
||||||
};
|
};
|
||||||
})
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
python,
|
||||||
|
buildPythonPackage,
|
||||||
|
|
||||||
|
ghidra,
|
||||||
|
|
||||||
|
setuptools,
|
||||||
|
|
||||||
|
psutil,
|
||||||
|
ghidratrace,
|
||||||
|
}: buildPythonPackage {
|
||||||
|
pname = "ghidragdb";
|
||||||
|
version = "11.3";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = "${ghidra.lib}/lib/ghidra/Ghidra/Debug/Debugger-agent-gdb/pypkg";
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
rm -rf dist
|
||||||
|
'';
|
||||||
|
|
||||||
|
build-system = [
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
ghidratrace
|
||||||
|
psutil
|
||||||
|
];
|
||||||
|
|
||||||
|
# can't import because gdb is missing
|
||||||
|
# pythonImportsCheck = [
|
||||||
|
# "ghidragdb"
|
||||||
|
# ];
|
||||||
|
|
||||||
|
meta = (lib.removeAttrs ghidra.meta ["description" "mainProgram"]) // {
|
||||||
|
description = "Ghidra's Plugin for gdb";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
python,
|
||||||
|
buildPythonPackage,
|
||||||
|
|
||||||
|
ghidra,
|
||||||
|
|
||||||
|
setuptools,
|
||||||
|
|
||||||
|
psutil,
|
||||||
|
ghidratrace,
|
||||||
|
}: buildPythonPackage {
|
||||||
|
pname = "ghidralldb";
|
||||||
|
version = "11.3";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = "${ghidra.lib}/lib/ghidra/Ghidra/Debug/Debugger-agent-lldb/pypkg";
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
rm -rf dist
|
||||||
|
'';
|
||||||
|
|
||||||
|
build-system = [
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
ghidratrace
|
||||||
|
psutil
|
||||||
|
];
|
||||||
|
|
||||||
|
# can't import because lldb is missing
|
||||||
|
# pythonImportsCheck = [
|
||||||
|
# "ghidralldb"
|
||||||
|
# ];
|
||||||
|
|
||||||
|
meta = (lib.removeAttrs ghidra.meta ["description" "mainProgram"]) // {
|
||||||
|
description = "Ghidra's Plugin for lldb";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
python,
|
||||||
|
buildPythonPackage,
|
||||||
|
pythonRelaxDepsHook,
|
||||||
|
|
||||||
|
ghidra,
|
||||||
|
|
||||||
|
setuptools,
|
||||||
|
|
||||||
|
protobuf,
|
||||||
|
}: buildPythonPackage {
|
||||||
|
pname = "ghidratrace";
|
||||||
|
version = "11.3";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = "${ghidra.lib}/lib/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg";
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
rm -rf dist
|
||||||
|
'';
|
||||||
|
|
||||||
|
build-system = [
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
protobuf
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pythonRelaxDepsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonRelaxDeps = [
|
||||||
|
"protobuf"
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"ghidratrace"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = (lib.removeAttrs ghidra.meta ["description" "mainProgram"]) // {
|
||||||
|
description = "Ghidra's TraceRmi for Python3";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
python,
|
||||||
|
buildPythonPackage,
|
||||||
|
|
||||||
|
ghidra,
|
||||||
|
|
||||||
|
setuptools,
|
||||||
|
|
||||||
|
jpype1,
|
||||||
|
}: buildPythonPackage {
|
||||||
|
pname = "pyghidra";
|
||||||
|
version = "2.1.0";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = "${ghidra.lib}/lib/ghidra/Ghidra/Features/PyGhidra/pypkg";
|
||||||
|
|
||||||
|
# TODO: make a more involved wrapper or patch this package to change the launch system
|
||||||
|
# TODO: support launching a ghidra-with-extensions package
|
||||||
|
makeWrapperArgs = [
|
||||||
|
"--set" "GHIDRA_INSTALL_DIR" "${ghidra.lib}/lib/ghidra"
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
rm -rf dist
|
||||||
|
'';
|
||||||
|
|
||||||
|
build-system = [
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
jpype1
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"pyghidra"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = (lib.removeAttrs ghidra.meta ["description" "mainProgram"]) // {
|
||||||
|
description = "Native CPython for Ghidra";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -29,10 +29,8 @@ let
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
makeBinaryWrapper
|
makeBinaryWrapper
|
||||||
] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
|
] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
|
||||||
postBuild = ''
|
postBuild =
|
||||||
# Prevent attempted creation of plugin lock files in the Nix store.
|
''
|
||||||
touch $out/lib/ghidra/Ghidra/.dbDirLock
|
|
||||||
|
|
||||||
makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \
|
makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \
|
||||||
--set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra"
|
--set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra"
|
||||||
makeWrapper '${ghidra}/bin/ghidra-analyzeHeadless' "$out/bin/ghidra-analyzeHeadless" \
|
makeWrapper '${ghidra}/bin/ghidra-analyzeHeadless' "$out/bin/ghidra-analyzeHeadless" \
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
buildDotnetModule,
|
||||||
|
fetchFromGitHub,
|
||||||
|
dotnetCorePackages,
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDotnetModule rec {
|
||||||
|
pname = "depotdownloader";
|
||||||
|
version = "3.4.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "SteamRE";
|
||||||
|
repo = "DepotDownloader";
|
||||||
|
rev = "DepotDownloader_${version}";
|
||||||
|
hash = "sha256-zduNWIQi+ItNSh9RfRfY0giIw/tMQIMRh9woUzQ5pJw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
projectFile = "DepotDownloader.sln";
|
||||||
|
nugetDeps = ./deps.json;
|
||||||
|
dotnet-sdk = dotnetCorePackages.sdk_9_0;
|
||||||
|
dotnet-runtime = dotnetCorePackages.runtime_9_0;
|
||||||
|
|
||||||
|
passthru.updateScript = ./update.sh;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Steam depot downloader utilizing the SteamKit2 library";
|
||||||
|
changelog = "https://github.com/SteamRE/DepotDownloader/releases/tag/DepotDownloader_${version}";
|
||||||
|
license = lib.licenses.gpl2Only;
|
||||||
|
maintainers = [ lib.maintainers.babbaj ];
|
||||||
|
platforms = [
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
"x86_64-darwin"
|
||||||
|
"aarch64-darwin"
|
||||||
|
];
|
||||||
|
mainProgram = "DepotDownloader";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.NETCore.Platforms",
|
||||||
|
"version": "5.0.0",
|
||||||
|
"hash": "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.Win32.Registry",
|
||||||
|
"version": "5.0.0",
|
||||||
|
"hash": "sha256-9kylPGfKZc58yFqNKa77stomcoNnMeERXozWJzDcUIA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.Windows.CsWin32",
|
||||||
|
"version": "0.3.183",
|
||||||
|
"hash": "sha256-bn0rHYoVLRTqiZqkkp6u3PMKtg0NNxA2F++1e/+3Jhw="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.Windows.SDK.Win32Docs",
|
||||||
|
"version": "0.1.42-alpha",
|
||||||
|
"hash": "sha256-6DvzmNzrGVfWmNJNqooj+Ya+7bAQlyeg7pmyKaUlIws="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.Windows.SDK.Win32Metadata",
|
||||||
|
"version": "61.0.15-preview",
|
||||||
|
"hash": "sha256-OB60ThIv8e7AMGaRRzJ8dWme5HjN+Q0HoUDquP2ejTg="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.Windows.WDK.Win32Metadata",
|
||||||
|
"version": "0.12.8-experimental",
|
||||||
|
"hash": "sha256-YaN6JlgnpIooLYu3NdFVHwoqFwZYTeePtekXCfTiLTo="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "protobuf-net",
|
||||||
|
"version": "3.2.52",
|
||||||
|
"hash": "sha256-phXeroBt5KbHYkApkkMa0mRCVkDY+dtOOXXNY+i50Ek="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "protobuf-net.Core",
|
||||||
|
"version": "3.2.52",
|
||||||
|
"hash": "sha256-/9Jj26tuSKeYJb9udwew5i5EVvaoeNu/vBCKS0VhSQQ="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "QRCoder",
|
||||||
|
"version": "1.6.0",
|
||||||
|
"hash": "sha256-2Ev/6d7PH6K4dVYQQHlZ+ZggkCnDtrlaGygs65mDo28="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "SteamKit2",
|
||||||
|
"version": "3.2.0",
|
||||||
|
"hash": "sha256-hB/36fP9kf+1mIx+hTELUMHe8ZkmSKxOK41ZzOaBa3E="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.IO.Hashing",
|
||||||
|
"version": "9.0.4",
|
||||||
|
"hash": "sha256-rbcQzEncB3VuUZIcsE1tq30suf5rvRE4HkE+0lR/skU="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Security.AccessControl",
|
||||||
|
"version": "5.0.0",
|
||||||
|
"hash": "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Security.Principal.Windows",
|
||||||
|
"version": "5.0.0",
|
||||||
|
"hash": "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "ZstdSharp.Port",
|
||||||
|
"version": "0.8.5",
|
||||||
|
"hash": "sha256-+UQFeU64md0LlSf9nMXif6hHnfYEKm+WRyYd0Vo2QvI="
|
||||||
|
}
|
||||||
|
]
|
||||||
Loading…
Reference in New Issue