uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
79
pkgs/development/interpreters/clojure/babashka.nix
Normal file
79
pkgs/development/interpreters/clojure/babashka.nix
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
{ lib, buildGraalvmNativeImage, fetchurl, writeScript }:
|
||||
|
||||
buildGraalvmNativeImage rec {
|
||||
pname = "babashka";
|
||||
version = "0.8.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
|
||||
sha256 = "sha256-rdA/pV2EGYPs1UuuTq4dIuce3i8haJOyyyTDAWpOeR8=";
|
||||
};
|
||||
|
||||
executable = "bb";
|
||||
|
||||
extraNativeImageBuildArgs = [
|
||||
"-H:+ReportExceptionStackTraces"
|
||||
"--no-fallback"
|
||||
"--native-image-info"
|
||||
];
|
||||
|
||||
installCheckPhase = ''
|
||||
$out/bin/bb --version | grep '${version}'
|
||||
$out/bin/bb '(+ 1 2)' | grep '3'
|
||||
$out/bin/bb '(vec (dedupe *input*))' <<< '[1 1 1 1 2]' | grep '[1 2]'
|
||||
'';
|
||||
|
||||
passthru.updateScript = writeScript "update-babashka" ''
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl common-updater-scripts jq
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
readonly latest_version="$(curl \
|
||||
''${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
|
||||
-s "https://api.github.com/repos/babashka/babashka/releases/latest" \
|
||||
| jq -r '.tag_name')"
|
||||
|
||||
# v0.6.2 -> 0.6.2
|
||||
update-source-version babashka "''${latest_version/v/}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Clojure babushka for the grey areas of Bash";
|
||||
longDescription = ''
|
||||
The main idea behind babashka is to leverage Clojure in places where you
|
||||
would be using bash otherwise.
|
||||
|
||||
As one user described it:
|
||||
|
||||
I’m quite at home in Bash most of the time, but there’s a substantial
|
||||
grey area of things that are too complicated to be simple in bash, but
|
||||
too simple to be worth writing a clj/s script for. Babashka really
|
||||
seems to hit the sweet spot for those cases.
|
||||
|
||||
Goals:
|
||||
|
||||
- Low latency Clojure scripting alternative to JVM Clojure.
|
||||
- Easy installation: grab the self-contained binary and run. No JVM needed.
|
||||
- Familiarity and portability:
|
||||
- Scripts should be compatible with JVM Clojure as much as possible
|
||||
- Scripts should be platform-independent as much as possible. Babashka
|
||||
offers support for linux, macOS and Windows.
|
||||
- Allow interop with commonly used classes like java.io.File and System
|
||||
- Multi-threading support (pmap, future, core.async)
|
||||
- Batteries included (tools.cli, cheshire, ...)
|
||||
- Library support via popular tools like the clojure CLI
|
||||
'';
|
||||
homepage = "https://github.com/babashka/babashka";
|
||||
changelog = "https://github.com/babashka/babashka/blob/v${version}/CHANGELOG.md";
|
||||
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
||||
license = licenses.epl10;
|
||||
maintainers = with maintainers; [
|
||||
bandresen
|
||||
bhougland
|
||||
DerGuteMoritz
|
||||
jlesquembre
|
||||
thiagokokada
|
||||
];
|
||||
};
|
||||
}
|
||||
30
pkgs/development/interpreters/clojure/clooj.nix
Normal file
30
pkgs/development/interpreters/clojure/clooj.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, stdenv, fetchurl, jre, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "clooj";
|
||||
version = "0.4.4";
|
||||
|
||||
jar = fetchurl {
|
||||
# mirrored as original mediafire.com source does not work without user interaction
|
||||
url = "https://archive.org/download/clooj-${version}-standalone/clooj-${version}-standalone.jar";
|
||||
sha256 = "0hbc29bg2a86rm3sx9kvj7h7db9j0kbnrb706wsfiyk3zi3bavnd";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/java
|
||||
ln -s $jar $out/share/java/clooj.jar
|
||||
makeWrapper ${jre}/bin/java $out/bin/clooj --add-flags "-jar $out/share/java/clooj.jar"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A lightweight IDE for Clojure";
|
||||
homepage = "https://github.com/arthuredelstein/clooj";
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
|
||||
license = lib.licenses.bsd3;
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
101
pkgs/development/interpreters/clojure/default.nix
Normal file
101
pkgs/development/interpreters/clojure/default.nix
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
{ lib, stdenv, fetchurl, installShellFiles, jdk, rlwrap, makeWrapper, writeScript }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "clojure";
|
||||
version = "1.11.1.1113";
|
||||
|
||||
src = fetchurl {
|
||||
# https://clojure.org/releases/tools
|
||||
url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
|
||||
sha256 = "sha256-DJVKVqBx8zueA5+KuQX4NypaYBoNFKMuDM8jDqdgaiI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
# See https://github.com/clojure/brew-install/blob/1.10.3/src/main/resources/clojure/install/linux-install.sh
|
||||
installPhase =
|
||||
let
|
||||
binPath = lib.makeBinPath [ rlwrap jdk ];
|
||||
in
|
||||
''
|
||||
runHook preInstall
|
||||
|
||||
clojure_lib_dir=$out
|
||||
bin_dir=$out/bin
|
||||
|
||||
echo "Installing libs into $clojure_lib_dir"
|
||||
install -Dm644 deps.edn "$clojure_lib_dir/deps.edn"
|
||||
install -Dm644 example-deps.edn "$clojure_lib_dir/example-deps.edn"
|
||||
install -Dm644 tools.edn "$clojure_lib_dir/tools.edn"
|
||||
install -Dm644 exec.jar "$clojure_lib_dir/libexec/exec.jar"
|
||||
install -Dm644 clojure-tools-${version}.jar "$clojure_lib_dir/libexec/clojure-tools-${version}.jar"
|
||||
|
||||
echo "Installing clojure and clj into $bin_dir"
|
||||
substituteInPlace clojure --replace PREFIX $out
|
||||
substituteInPlace clj --replace BINDIR $bin_dir
|
||||
install -Dm755 clojure "$bin_dir/clojure"
|
||||
install -Dm755 clj "$bin_dir/clj"
|
||||
|
||||
wrapProgram $bin_dir/clojure --prefix PATH : $out/bin:${binPath}
|
||||
wrapProgram $bin_dir/clj --prefix PATH : $out/bin:${binPath}
|
||||
|
||||
installManPage clj.1 clojure.1
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
installCheckPhase = ''
|
||||
CLJ_CONFIG=$TMPDIR CLJ_CACHE=$TMPDIR/.clj_cache $out/bin/clojure \
|
||||
-Spath \
|
||||
-Sverbose \
|
||||
-Scp $out/libexec/clojure-tools-${version}.jar
|
||||
'';
|
||||
|
||||
passthru.updateScript = writeScript "update-clojure" ''
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl common-updater-scripts jq
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# `jq -r '.[0].name'` results in `v0.0`
|
||||
readonly latest_version="$(curl \
|
||||
''${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
|
||||
-s "https://api.github.com/repos/clojure/brew-install/tags" \
|
||||
| jq -r '.[1].name')"
|
||||
|
||||
update-source-version clojure "$latest_version"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Lisp dialect for the JVM";
|
||||
homepage = "https://clojure.org/";
|
||||
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
||||
license = licenses.epl10;
|
||||
longDescription = ''
|
||||
Clojure is a dynamic programming language that targets the Java
|
||||
Virtual Machine. It is designed to be a general-purpose language,
|
||||
combining the approachability and interactive development of a
|
||||
scripting language with an efficient and robust infrastructure for
|
||||
multithreaded programming. Clojure is a compiled language - it
|
||||
compiles directly to JVM bytecode, yet remains completely
|
||||
dynamic. Every feature supported by Clojure is supported at
|
||||
runtime. Clojure provides easy access to the Java frameworks, with
|
||||
optional type hints and type inference, to ensure that calls to Java
|
||||
can avoid reflection.
|
||||
|
||||
Clojure is a dialect of Lisp, and shares with Lisp the code-as-data
|
||||
philosophy and a powerful macro system. Clojure is predominantly a
|
||||
functional programming language, and features a rich set of immutable,
|
||||
persistent data structures. When mutable state is needed, Clojure
|
||||
offers a software transactional memory system and reactive Agent
|
||||
system that ensure clean, correct, multithreaded designs.
|
||||
'';
|
||||
maintainers = with maintainers; [ jlesquembre thiagokokada ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
83
pkgs/development/interpreters/clojure/obb.nix
Normal file
83
pkgs/development/interpreters/clojure/obb.nix
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, babashka
|
||||
, cacert
|
||||
, clojure
|
||||
, git
|
||||
, jdk
|
||||
, obb
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
, runCommand }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "obb";
|
||||
version = "0.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "babashka";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1Gxh4IMtytQCuPS+BWOc5AgjEBxa43ebYfDsxLSPeY0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
buildInputs = [ babashka cacert git jdk ];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
mkdir -p .m2
|
||||
substituteInPlace deps.edn --replace ':paths' ':mvn/local-repo "./.m2" :paths'
|
||||
substituteInPlace bb.edn --replace ':paths' ':mvn/local-repo "./.m2" :paths'
|
||||
echo deps.edn
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
export DEPS_CLJ_TOOLS_DIR=${clojure}
|
||||
export DEPS_CLJ_TOOLS_VERSION=${clojure.version}
|
||||
mkdir -p .gitlibs
|
||||
mkdir -p .cpcache
|
||||
export GITLIBS=.gitlibs
|
||||
export CLJ_CACHE=.cpcache
|
||||
|
||||
bb build
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
ln -s /usr/bin/osascript $out/bin/osascript
|
||||
|
||||
install -Dm755 "out/bin/obb" "$out/bin/obb"
|
||||
wrapProgram $out/bin/obb --prefix PATH : $out/bin
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
simple = runCommand "${pname}-test" {} ''
|
||||
[ $(${obb}/bin/obb -e '(+ 1 2)') = '3' ]
|
||||
touch $out
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Ad-hoc ClojureScript scripting of Mac applications via Apple's Open Scripting Architecture";
|
||||
homepage = "https://github.com/babashka/obb";
|
||||
license = licenses.epl10;
|
||||
maintainers = with maintainers; [
|
||||
willcohen
|
||||
];
|
||||
platforms = platforms.darwin;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue