From 797a4e8b37719798779cf71b9f56e4baa08f2cf7 Mon Sep 17 00:00:00 2001 From: Eduardo Robles Elvira Date: Thu, 27 Jul 2023 07:20:27 +0200 Subject: [PATCH 1/9] initial support for devcontainers --- .devcontainer/devcontainer.json | 43 +++++++++++++++++++++ .devcontainer/docker-compose.yml | 12 ++++++ devenv.nix | 29 +++++++++++++++ flake.lock | 64 ++++++++++++++++++++++++++++++++ flake.nix | 47 +++++++++++++++++++++++ 5 files changed, 195 insertions(+) create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml create mode 100644 devenv.nix create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..883c706 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,43 @@ +{ + "name": "mixnet", + "dockerComposeFile": "docker-compose.yml", + "service": "devcontainer", + "updateContentCommand": "devenv ci", + "workspaceFolder": "/workspace", + "features": { + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {} + }, + "customizations": { + "vscode": { + "extensions": [ + // run commands on save + // https://marketplace.visualstudio.com/items?itemName=fsevenm.run-it-on + "fsevenm.run-it-on", + + // Docker for Visual Studio Code + "ms-azuretools.vscode-docker", + + // direnv support + "mkhl.direnv", + + // Nix language support + "jnoortheen.nix-ide", + + // Markdown support and previsualization + "yzhang.markdown-all-in-one", + + // Debugging + "vadimcn.vscode-lldb", + + // Allows to use Alt+Q (or Option+Q in mac) to rewrap lines + "stkb.rewrap", + + // TOML support, for poetry + "tamasfe.even-better-toml", + + // For java support + "vscjava.vscode-java-pack" + ] + } + } +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 0000000..0f2a300 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3.6" +services: + devcontainer: + image: ghcr.io/cachix/devenv:latest + volumes: + # Update this to wherever you want VS Code to mount the folder of your project + - ..:/workspace:cached + # Required for ptrace-based debuggers like C++, Go, and Rust + cap_add: + - SYS_PTRACE + security_opt: + - label:disable diff --git a/devenv.nix b/devenv.nix new file mode 100644 index 0000000..fad1141 --- /dev/null +++ b/devenv.nix @@ -0,0 +1,29 @@ +{ pkgs, config, lib, ... }: + +{ + # https://devenv.sh/basics/ + env.GREET = "devenv"; + + # https://devenv.sh/packages/ + packages = [ + pkgs.git + pkgs.ack + + # to create containers + pkgs.docker + + pkgs.autotools + pkgs.libffi + ]; + + enterShell = '' + git --version + ''; + + # https://devenv.sh/languages/ + languages.nix.enable = true; + languages.java = { + enable = true; + jdk.package = pkgs.jdk8; + }; +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..4640da2 --- /dev/null +++ b/flake.lock @@ -0,0 +1,64 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1688466019, + "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1690272529, + "narHash": "sha256-MakzcKXEdv/I4qJUtq/k/eG+rVmyOZLnYNC2w1mB59Y=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ef99fa5c5ed624460217c31ac4271cfb5cb2502c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1688049487, + "narHash": "sha256-100g4iaKC9MalDjUW9iN6Jl/OocTDtXdeAj7pEGIRh4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4bc72cae107788bf3f24f30db2e2f685c9298dc9", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..37ea8e7 --- /dev/null +++ b/flake.nix @@ -0,0 +1,47 @@ +{ + description = "A simple flake for building and installing the mixnet."; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-parts.url = "github:hercules-ci/flake-parts"; + }; + outputs = inputs@{ flake-parts, ... }: + flake-parts.lib.mkFlake { inherit inputs; } { + imports = []; + systems = [ "x86_64-linux" ]; + + # Per-system attributes can be defined here. The self' and inputs' + # module parameters provide easy access to attributes of the same + # system. + perSystem = { config, self', inputs', pkgs, system, lib, ... }: + let + mixnet = pkgs.stdenv.mkDerivation rec { + pname = "mixnet"; + version = "9.0.0"; + src = ./.; + + nativeBuildInputs = [ pkgs.makeWrapper pkgs.autotools ]; + buildInputs = [ pkgs.jdk8 ]; + + configureFlags = []; # [ "--enable-jgmpmee" "--enable-jecn" ]; + + makeFlags = [ "JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8" ]; + + installPhase = '' + ls -lah $out + mkdir -p $out/bin + cp -r . $out/bin + wrapProgram $out/bin/mixnet \ + --set JAVA_TOOL_OPTIONS "-Dfile.encoding=UTF8" + ''; + + fixupPhase = '' + find $out/bin -type f -executable -exec patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" {} \; + ''; + }; + in { + packages.default = mixnet; + }; + flake = {}; + }; +} From 5f6d90b6a9fb8cf8296e57fd9446ad674bb43d00 Mon Sep 17 00:00:00 2001 From: Eduardo Robles Elvira Date: Thu, 27 Jul 2023 07:27:16 +0200 Subject: [PATCH 2/9] WIP --- devenv.lock | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++ devenv.nix | 1 - 2 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 devenv.lock diff --git a/devenv.lock b/devenv.lock new file mode 100644 index 0000000..befa23f --- /dev/null +++ b/devenv.lock @@ -0,0 +1,156 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1690413082, + "narHash": "sha256-CPR3WcnrrIiDZJiMo4RlyZB0M3576pHmtlTUnMUTugA=", + "owner": "cachix", + "repo": "devenv", + "rev": "148c4a21e50428728e97f3cdf59166b6007db8a7", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1690327932, + "narHash": "sha256-Fv7PYZxN4eo0K6zXhHG/vOc+e2iuqQ5ywDrh0yeRjP0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a9b47d85504bdd199e90846622c76aa0bfeabfac", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1689668210, + "narHash": "sha256-XAATwDkaUxH958yXLs1lcEOmU6pSEIkatY3qjqk8X0E=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "eb433bff05b285258be76513add6f6c57b441775", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devenv.nix b/devenv.nix index fad1141..c81c386 100644 --- a/devenv.nix +++ b/devenv.nix @@ -12,7 +12,6 @@ # to create containers pkgs.docker - pkgs.autotools pkgs.libffi ]; From 7f3c9fa77913ac57a4f8337e5b32fbaa5c75ff1e Mon Sep 17 00:00:00 2001 From: Eduardo Robles Date: Thu, 27 Jul 2023 06:17:08 +0000 Subject: [PATCH 3/9] flake now works --- .gitignore | 3 +++ flake.nix | 24 ++++++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b8cb5c9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.devenv +.devenv.flake.nix +result diff --git a/flake.nix b/flake.nix index 37ea8e7..30866ae 100644 --- a/flake.nix +++ b/flake.nix @@ -20,23 +20,27 @@ version = "9.0.0"; src = ./.; - nativeBuildInputs = [ pkgs.makeWrapper pkgs.autotools ]; - buildInputs = [ pkgs.jdk8 ]; + nativeBuildInputs = [ + pkgs.makeWrapper + pkgs.python3Minimal + pkgs.gnum4 + pkgs.tree + ]; + buildInputs = [ + pkgs.jdk8 + pkgs.gmp + ]; configureFlags = []; # [ "--enable-jgmpmee" "--enable-jecn" ]; makeFlags = [ "JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8" ]; installPhase = '' - ls -lah $out mkdir -p $out/bin - cp -r . $out/bin - wrapProgram $out/bin/mixnet \ - --set JAVA_TOOL_OPTIONS "-Dfile.encoding=UTF8" - ''; - - fixupPhase = '' - find $out/bin -type f -executable -exec patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" {} \; + mkdir -p $out/share/java + cp -r mixnet/bin/* $out/bin + find . -name "*.jar" -exec cp {} $out/share/java \; + tree $out ''; }; in { From ba3ecccb0047bcada2568799b26fc91f515704e3 Mon Sep 17 00:00:00 2001 From: Eduardo Robles Date: Thu, 27 Jul 2023 19:16:40 +0000 Subject: [PATCH 4/9] parametrizing jvmMemorySize --- flake.nix | 38 ++++++++------------------------------ mixnet-package.nix | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 30 deletions(-) create mode 100644 mixnet-package.nix diff --git a/flake.nix b/flake.nix index 30866ae..21a62d3 100644 --- a/flake.nix +++ b/flake.nix @@ -13,38 +13,16 @@ # Per-system attributes can be defined here. The self' and inputs' # module parameters provide easy access to attributes of the same # system. - perSystem = { config, self', inputs', pkgs, system, lib, ... }: + perSystem = perSystemInputs@{ config, self', inputs', pkgs, system, lib, ... }: let - mixnet = pkgs.stdenv.mkDerivation rec { - pname = "mixnet"; - version = "9.0.0"; - src = ./.; - - nativeBuildInputs = [ - pkgs.makeWrapper - pkgs.python3Minimal - pkgs.gnum4 - pkgs.tree - ]; - buildInputs = [ - pkgs.jdk8 - pkgs.gmp - ]; - - configureFlags = []; # [ "--enable-jgmpmee" "--enable-jecn" ]; - - makeFlags = [ "JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8" ]; - - installPhase = '' - mkdir -p $out/bin - mkdir -p $out/share/java - cp -r mixnet/bin/* $out/bin - find . -name "*.jar" -exec cp {} $out/share/java \; - tree $out - ''; - }; + mixnetModule = (import ./mixnet-package.nix); + mixnet = mixnetModule (perSystemInputs); in { - packages.default = mixnet; + packages = { + inherit mixnetModule; + inherit mixnet; + default = mixnet; + }; }; flake = {}; }; diff --git a/mixnet-package.nix b/mixnet-package.nix new file mode 100644 index 0000000..8b7214d --- /dev/null +++ b/mixnet-package.nix @@ -0,0 +1,34 @@ +{ pkgs, jvmMemorySize ? "-Xmx4000m", ... }: + pkgs.stdenv.mkDerivation rec { + pname = "mixnet"; + version = "9.0.0"; + src = ./.; + + nativeBuildInputs = [ + pkgs.python3Minimal + pkgs.gnum4 + pkgs.automake + pkgs.autoconf + ]; + buildInputs = [ + pkgs.jdk8 + pkgs.gmp + ]; + + configureFlags = [ + "--enable-jgmpmee" + "--enable-jecn" + ]; + + makeFlags = [ + "JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8" + "JVM_MEMORY_SIZE=${jvmMemorySize}" + ]; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/java + find mixnet/bin -type f -not -name '*.src' -exec cp {} $out/bin \; + find . -name "*.jar" -exec cp {} $out/share/java \; + ''; + } \ No newline at end of file From 87a01bf17b3309bf8f61110cc6a1a02271e76fd2 Mon Sep 17 00:00:00 2001 From: Eduardo Robles Date: Thu, 27 Jul 2023 19:42:46 +0000 Subject: [PATCH 5/9] WIP --- flake.nix | 16 +++++++--------- mixnet-package.nix => mixnet-module.nix | 0 2 files changed, 7 insertions(+), 9 deletions(-) rename mixnet-package.nix => mixnet-module.nix (100%) diff --git a/flake.nix b/flake.nix index 21a62d3..2a82a98 100644 --- a/flake.nix +++ b/flake.nix @@ -6,7 +6,9 @@ flake-parts.url = "github:hercules-ci/flake-parts"; }; outputs = inputs@{ flake-parts, ... }: - flake-parts.lib.mkFlake { inherit inputs; } { + flake-parts.lib.mkFlake { inherit inputs; } (let + mixnetModule = (import ./mixnet-module.nix); + in { imports = []; systems = [ "x86_64-linux" ]; @@ -14,16 +16,12 @@ # module parameters provide easy access to attributes of the same # system. perSystem = perSystemInputs@{ config, self', inputs', pkgs, system, lib, ... }: - let - mixnetModule = (import ./mixnet-package.nix); - mixnet = mixnetModule (perSystemInputs); - in { - packages = { - inherit mixnetModule; - inherit mixnet; + { + packages = rec { + mixnet = mixnetModule (perSystemInputs); default = mixnet; }; }; flake = {}; - }; + }); } diff --git a/mixnet-package.nix b/mixnet-module.nix similarity index 100% rename from mixnet-package.nix rename to mixnet-module.nix From 4076a8637f19f990732c51db605e7d71c6fd0862 Mon Sep 17 00:00:00 2001 From: Eduardo Robles Date: Fri, 28 Jul 2023 14:55:22 +0000 Subject: [PATCH 6/9] adding jre dep --- mixnet-module.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mixnet-module.nix b/mixnet-module.nix index 8b7214d..c27f6af 100644 --- a/mixnet-module.nix +++ b/mixnet-module.nix @@ -9,9 +9,10 @@ pkgs.gnum4 pkgs.automake pkgs.autoconf + pkgs.jdk8 ]; buildInputs = [ - pkgs.jdk8 + pkgs.jre8 pkgs.gmp ]; From 2dc1d5e59e065ccf63bde5caa0b4b37541384f04 Mon Sep 17 00:00:00 2001 From: Eduardo Robles Date: Fri, 28 Jul 2023 17:06:15 +0000 Subject: [PATCH 7/9] WIP --- mixnet/bin/vog.src | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/mixnet/bin/vog.src b/mixnet/bin/vog.src index 8f09ca0..81b4391 100644 --- a/mixnet/bin/vog.src +++ b/mixnet/bin/vog.src @@ -32,19 +32,15 @@ # 32-bit mode instead of 64-bit mode. It is not needed in Linux or # FreeBSD. +set -eux -o pipefail # Extract the name of this shell script without its path. COMMAND_NAME=$0 COMMAND_NAME=${COMMAND_NAME##*/} -if [ x${VFORK_RANDOM_SOURCE} = x ]; then - VFORK_RANDOM_SOURCE=~/.mixnet_random_source -fi +VFORK_RANDOM_SOURCE="${VFORK_RANDOM_SOURCE:-~/.mixnet_random_source}" +VFORK_RANDOM_SEED="${VFORK_RANDOM_SEED:-~/.mixnet_random_seed}" -if [ x${VFORK_RANDOM_SEED} = x ]; then - VFORK_RANDOM_SEED=~/.mixnet_random_seed -fi - # If you want to be able to list and generate instances of your own # classes, you should set VFORK_VOG to be a comma-separated list # of classnames. This allows this command to list and generate @@ -52,17 +48,15 @@ fi # implements the # mixnet.ui.gen.Generator-interface. Alternatively, you can use # the -pkgs switch of this command. -if [ x${VFORK_VOG} = x ]; then - VFORK_VOG= -fi +VFORK_VOG="${VFORK_VOG:-}" -VFORK_VOG=${VFORK_VOG}:VFORK_VOG_BUILTIN +VFORK_VOG="${VFORK_VOG}:VFORK_VOG_BUILTIN" java \ -JVM_DATAMODEL \ --Djava.security.egd=file:/dev/./urandom \ -mixnet.ui.gen.GeneratorTool \ -"$COMMAND_NAME" \ -"$VFORK_VOG" \ -"$VFORK_RANDOM_SOURCE" \ -"$VFORK_RANDOM_SEED" "$@" + JVM_DATAMODEL \ + -Djava.security.egd=file:/dev/./urandom \ + mixnet.ui.gen.GeneratorTool \ + "$COMMAND_NAME" \ + "$VFORK_VOG" \ + "$VFORK_RANDOM_SOURCE" \ + "$VFORK_RANDOM_SEED" "$@" From dbeb8d13b69df3873a9d788076a49c7eb43dec37 Mon Sep 17 00:00:00 2001 From: Eduardo Robles Date: Mon, 31 Jul 2023 06:26:44 +0000 Subject: [PATCH 8/9] WIP --- mixnet-module.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mixnet-module.nix b/mixnet-module.nix index c27f6af..a567c83 100644 --- a/mixnet-module.nix +++ b/mixnet-module.nix @@ -8,6 +8,8 @@ pkgs.python3Minimal pkgs.gnum4 pkgs.automake + pkgs.makeWrapper + pkgs.patchelf pkgs.autoconf pkgs.jdk8 ]; @@ -27,9 +29,24 @@ ]; installPhase = '' + echo "edu-install-phase: start" mkdir -p $out/bin mkdir -p $out/share/java + mkdir -p $out/lib find mixnet/bin -type f -not -name '*.src' -exec cp {} $out/bin \; find . -name "*.jar" -exec cp {} $out/share/java \; + find . -name "*.so" -exec cp {} $out/lib \; + patchelf --remove-rpath $out/lib/*.so; + for f in $(find $out/bin/ -type f); do + echo "wrapping '$f'" + wrapProgram "$f" \ + --prefix LD_LIBRARY_PATH $out/lib:${pkgs.gmp}/lib; + done + echo "edu-install-phase: stop" ''; + # TODO: + # - convert patchelf into a find -exec + # - add a find -exec wrapProgram to bins + # - nix flake update in eo + } \ No newline at end of file From 28e76dee1af8b82de2b13aa778f47645359ae79e Mon Sep 17 00:00:00 2001 From: Eduardo Robles Date: Mon, 31 Jul 2023 06:39:32 +0000 Subject: [PATCH 9/9] WIP --- mixnet-module.nix | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/mixnet-module.nix b/mixnet-module.nix index a567c83..5faabaa 100644 --- a/mixnet-module.nix +++ b/mixnet-module.nix @@ -35,13 +35,8 @@ mkdir -p $out/lib find mixnet/bin -type f -not -name '*.src' -exec cp {} $out/bin \; find . -name "*.jar" -exec cp {} $out/share/java \; - find . -name "*.so" -exec cp {} $out/lib \; - patchelf --remove-rpath $out/lib/*.so; - for f in $(find $out/bin/ -type f); do - echo "wrapping '$f'" - wrapProgram "$f" \ - --prefix LD_LIBRARY_PATH $out/lib:${pkgs.gmp}/lib; - done + find . -name "*.so*" -exec cp {} $out/lib \; + patchelf --remove-rpath $out/lib/*.so*; echo "edu-install-phase: stop" ''; # TODO: