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
|
|
@ -0,0 +1,154 @@
|
|||
From d0136f350b82ae845d56029db43d153c91d5e494 Mon Sep 17 00:00:00 2001
|
||||
From: Keshav Kini <keshav.kini@gmail.com>
|
||||
Date: Sat, 30 May 2020 21:27:47 -0700
|
||||
Subject: [PATCH] Fix some paths for Nix build
|
||||
|
||||
---
|
||||
books/build/features.sh | 1 +
|
||||
.../ipasir/load-ipasir-sharedlib-raw.lsp | 6 +--
|
||||
books/projects/smtlink/config.lisp | 2 +-
|
||||
books/projects/smtlink/examples/examples.lisp | 4 +-
|
||||
books/projects/smtlink/smtlink-config | 2 +-
|
||||
.../cl+ssl-20200610-git/src/reload.lisp | 53 +------------------
|
||||
6 files changed, 8 insertions(+), 60 deletions(-)
|
||||
|
||||
diff --git a/books/build/features.sh b/books/build/features.sh
|
||||
index d45a7aa61..27256b7cd 100755
|
||||
--- a/books/build/features.sh
|
||||
+++ b/books/build/features.sh
|
||||
@@ -122,6 +122,7 @@ EOF
|
||||
fi
|
||||
|
||||
echo "Determining whether an ipasir shared library is installed" 1>&2
|
||||
+IPASIR_SHARED_LIBRARY=${IPASIR_SHARED_LIBRARY:-@libipasir@}
|
||||
if check_ipasir; then
|
||||
cat >> Makefile-features <<EOF
|
||||
export OS_HAS_IPASIR ?= 1
|
||||
diff --git a/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp b/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
|
||||
index 762e4ad4c..c9802cb58 100644
|
||||
--- a/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
|
||||
+++ b/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
|
||||
@@ -30,11 +30,7 @@
|
||||
|
||||
(er-let* ((libname (acl2::getenv$ "IPASIR_SHARED_LIBRARY" acl2::*the-live-state*)))
|
||||
(handler-case
|
||||
- (cffi::load-foreign-library
|
||||
- (or libname
|
||||
- (cw "WARNING: $IPASIR_SHARED_LIBRARY not specified, ~
|
||||
- defaulting to \"libipasirglucose4.so\"")
|
||||
- "libipasirglucose4.so"))
|
||||
+ (cffi::load-foreign-library (or libname "@libipasir@"))
|
||||
(error () (er hard? 'load-ipasir-shardlib-raw
|
||||
"Couldn't load ipasir shared library from ~s0."
|
||||
libname))))
|
||||
diff --git a/books/projects/smtlink/config.lisp b/books/projects/smtlink/config.lisp
|
||||
index c74073174..8d92355f7 100644
|
||||
--- a/books/projects/smtlink/config.lisp
|
||||
+++ b/books/projects/smtlink/config.lisp
|
||||
@@ -51,7 +51,7 @@ where the system books are."))
|
||||
(make-smtlink-config :interface-dir interface-dir
|
||||
:smt-module "ACL2_to_Z3"
|
||||
:smt-class "ACL22SMT"
|
||||
- :smt-cmd "/usr/bin/env python"
|
||||
+ :smt-cmd "python"
|
||||
:pythonpath "")))
|
||||
|
||||
;; -----------------------------------------------------------------
|
||||
diff --git a/books/projects/smtlink/examples/examples.lisp b/books/projects/smtlink/examples/examples.lisp
|
||||
index 90534892f..4ab98b2f0 100644
|
||||
--- a/books/projects/smtlink/examples/examples.lisp
|
||||
+++ b/books/projects/smtlink/examples/examples.lisp
|
||||
@@ -75,7 +75,7 @@ Subgoal 2
|
||||
Subgoal 2.2
|
||||
Subgoal 2.2'
|
||||
Using default SMT-trusted-cp...
|
||||
-; SMT solver: `/usr/bin/env python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
|
||||
+; SMT solver: `python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
|
||||
Proved!
|
||||
Subgoal 2.2''
|
||||
Subgoal 2.1
|
||||
@@ -139,7 +139,7 @@ read back into ACL2. Below are the outputs from this clause processor called
|
||||
|
||||
@({
|
||||
Using default SMT-trusted-cp...
|
||||
-; SMT solver: `/usr/bin/env python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
|
||||
+; SMT solver: `python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
|
||||
Proved!
|
||||
})
|
||||
|
||||
diff --git a/books/projects/smtlink/smtlink-config b/books/projects/smtlink/smtlink-config
|
||||
index 0d2703545..0f58904ea 100644
|
||||
--- a/books/projects/smtlink/smtlink-config
|
||||
+++ b/books/projects/smtlink/smtlink-config
|
||||
@@ -1 +1 @@
|
||||
-smt-cmd=/usr/bin/env python
|
||||
+smt-cmd=python
|
||||
diff --git a/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp b/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp
|
||||
index e5db28645..65eb818a1 100644
|
||||
--- a/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp
|
||||
+++ b/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp
|
||||
@@ -37,59 +37,10 @@
|
||||
;; These are 32-bit only.
|
||||
|
||||
(cffi:define-foreign-library libcrypto
|
||||
- (:windows (:or #+(and windows x86-64) "libcrypto-1_1-x64.dll"
|
||||
- #+(and windows x86) "libcrypto-1_1.dll"
|
||||
- "libeay32.dll"))
|
||||
- (:openbsd "libcrypto.so")
|
||||
- (:darwin (:or "/opt/local/lib/libcrypto.dylib" ;; MacPorts
|
||||
- "/sw/lib/libcrypto.dylib" ;; Fink
|
||||
- "/usr/local/opt/openssl/lib/libcrypto.dylib" ;; Homebrew
|
||||
- "/usr/local/lib/libcrypto.dylib" ;; personalized install
|
||||
- "libcrypto.dylib" ;; default system libcrypto, which may have insufficient crypto
|
||||
- "/usr/lib/libcrypto.dylib"))
|
||||
- (:cygwin (:or "cygcrypto-1.1.dll" "cygcrypto-1.0.0.dll")))
|
||||
+ (t "@libcrypto@"))
|
||||
|
||||
(cffi:define-foreign-library libssl
|
||||
- (:windows (:or #+(and windows x86-64) "libssl-1_1-x64.dll"
|
||||
- #+(and windows x86) "libssl-1_1.dll"
|
||||
- "libssl32.dll"
|
||||
- "ssleay32.dll"))
|
||||
- ;; The default OS-X libssl seems have had insufficient crypto algos
|
||||
- ;; (missing TLSv1_[1,2]_XXX methods,
|
||||
- ;; see https://github.com/cl-plus-ssl/cl-plus-ssl/issues/56)
|
||||
- ;; so first try to load possible custom installations of libssl
|
||||
- (:darwin (:or "/opt/local/lib/libssl.dylib" ;; MacPorts
|
||||
- "/sw/lib/libssl.dylib" ;; Fink
|
||||
- "/usr/local/opt/openssl/lib/libssl.dylib" ;; Homebrew
|
||||
- "/usr/local/lib/libssl.dylib" ;; personalized install
|
||||
- "libssl.dylib" ;; default system libssl, which may have insufficient crypto
|
||||
- "/usr/lib/libssl.dylib"))
|
||||
- (:solaris (:or "/lib/64/libssl.so"
|
||||
- "libssl.so.0.9.8" "libssl.so" "libssl.so.4"))
|
||||
- ;; Unlike some other systems, OpenBSD linker,
|
||||
- ;; when passed library name without versions at the end,
|
||||
- ;; will locate the library with highest macro.minor version,
|
||||
- ;; so we can just use just "libssl.so".
|
||||
- ;; More info at https://github.com/cl-plus-ssl/cl-plus-ssl/pull/2.
|
||||
- (:openbsd "libssl.so")
|
||||
- ((and :unix (not :cygwin)) (:or "libssl.so.1.1"
|
||||
- "libssl.so.1.0.2m"
|
||||
- "libssl.so.1.0.2k"
|
||||
- "libssl.so.1.0.2"
|
||||
- "libssl.so.1.0.1l"
|
||||
- "libssl.so.1.0.1j"
|
||||
- "libssl.so.1.0.1f"
|
||||
- "libssl.so.1.0.1e"
|
||||
- "libssl.so.1.0.1"
|
||||
- "libssl.so.1.0.0q"
|
||||
- "libssl.so.1.0.0"
|
||||
- "libssl.so.0.9.8ze"
|
||||
- "libssl.so.0.9.8"
|
||||
- "libssl.so.10"
|
||||
- "libssl.so.4"
|
||||
- "libssl.so"))
|
||||
- (:cygwin (:or "cygssl-1.1.dll" "cygssl-1.0.0.dll"))
|
||||
- (t (:default "libssl3")))
|
||||
+ (t "@libssl@"))
|
||||
|
||||
(unless (member :cl+ssl-foreign-libs-already-loaded
|
||||
*features*)
|
||||
--
|
||||
2.31.1
|
||||
|
||||
146
pkgs/development/interpreters/acl2/default.nix
Normal file
146
pkgs/development/interpreters/acl2/default.nix
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
{ lib, stdenv, callPackage, fetchFromGitHub, runCommandLocal, makeWrapper, substituteAll
|
||||
, sbcl, bash, which, perl, hostname
|
||||
, openssl, glucose, minisat, abc-verifier, z3, python2
|
||||
, certifyBooks ? true
|
||||
} @ args:
|
||||
|
||||
let
|
||||
# Disable immobile space so we don't run out of memory on large books, and
|
||||
# supply 2GB of dynamic space to avoid exhausting the heap while building the
|
||||
# ACL2 system itself; see
|
||||
# https://www.cs.utexas.edu/users/moore/acl2/current/HTML/installation/requirements.html#Obtaining-SBCL
|
||||
sbcl' = args.sbcl.override { disableImmobileSpace = true; };
|
||||
sbcl = runCommandLocal args.sbcl.name { buildInputs = [ makeWrapper ]; } ''
|
||||
makeWrapper ${sbcl'}/bin/sbcl $out/bin/sbcl \
|
||||
--add-flags "--dynamic-space-size 2000"
|
||||
'';
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "acl2";
|
||||
version = "8.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "acl2-devel";
|
||||
repo = "acl2-devel";
|
||||
rev = version;
|
||||
sha256 = "16rr9zqmd3y1sd6zxff2f9gdd84l99pr7mdp1sjwmh427h661c68";
|
||||
};
|
||||
|
||||
# You can swap this out with any other IPASIR implementation at
|
||||
# build time by using overrideAttrs (make sure the derivation you
|
||||
# use has a "libname" attribute so we can plug it into the patch
|
||||
# below). Or, you can override it at runtime by setting the
|
||||
# $IPASIR_SHARED_LIBRARY environment variable.
|
||||
libipasir = callPackage ./libipasirglucose4 { };
|
||||
|
||||
patches = [(substituteAll {
|
||||
src = ./0001-Fix-some-paths-for-Nix-build.patch;
|
||||
libipasir = "${libipasir}/lib/${libipasir.libname}";
|
||||
libssl = "${lib.getLib openssl}/lib/libssl${stdenv.hostPlatform.extensions.sharedLibrary}";
|
||||
libcrypto = "${lib.getLib openssl}/lib/libcrypto${stdenv.hostPlatform.extensions.sharedLibrary}";
|
||||
})];
|
||||
|
||||
buildInputs = [
|
||||
# ACL2 itself only needs a Common Lisp compiler/interpreter:
|
||||
sbcl
|
||||
] ++ lib.optionals certifyBooks [
|
||||
# To build community books, we need Perl and a couple of utilities:
|
||||
which perl hostname makeWrapper
|
||||
# Some of the books require one or more of these external tools:
|
||||
glucose minisat abc-verifier libipasir
|
||||
z3 (python2.withPackages (ps: [ ps.z3 ]))
|
||||
];
|
||||
|
||||
# NOTE: Parallel building can be memory-intensive depending on the number of
|
||||
# concurrent jobs. For example, this build has been seen to use >120GB of
|
||||
# RAM on an 85 core machine.
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
# When certifying books, ACL2 doesn't like $HOME not existing.
|
||||
export HOME=$(pwd)/fake-home
|
||||
'' + lib.optionalString certifyBooks ''
|
||||
# Some books also care about $USER being nonempty.
|
||||
export USER=nobody
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
# ACL2 and its books need to be built in place in the out directory because
|
||||
# the proof artifacts are not relocatable. Since ACL2 mostly expects
|
||||
# everything to exist in the original source tree layout, we put it in
|
||||
# $out/share/${pname} and create symlinks in $out/bin as necessary.
|
||||
mkdir -p $out/share/${pname}
|
||||
cp -pR . $out/share/${pname}
|
||||
cd $out/share/${pname}
|
||||
'';
|
||||
|
||||
preBuild = "mkdir -p $HOME";
|
||||
makeFlags = "LISP=${sbcl}/bin/sbcl ACL2_MAKE_LOG=NONE";
|
||||
|
||||
doCheck = true;
|
||||
checkTarget = "mini-proveall";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
ln -s $out/share/${pname}/saved_acl2 $out/bin/${pname}
|
||||
'' + lib.optionalString certifyBooks ''
|
||||
ln -s $out/share/${pname}/books/build/cert.pl $out/bin/${pname}-cert
|
||||
ln -s $out/share/${pname}/books/build/clean.pl $out/bin/${pname}-clean
|
||||
'';
|
||||
|
||||
preDistPhases = [ (if certifyBooks then "certifyBooksPhase" else "removeBooksPhase") ];
|
||||
|
||||
certifyBooksPhase = ''
|
||||
# Certify the community books
|
||||
pushd $out/share/${pname}/books
|
||||
makeFlags="ACL2=$out/share/${pname}/saved_acl2"
|
||||
buildFlags="all"
|
||||
buildPhase
|
||||
|
||||
# Clean up some stuff to save space
|
||||
find -name '*@useless-runes.lsp' -execdir rm {} + # saves ~1GB of space
|
||||
find -name '*.cert.out' -execdir gzip {} + # saves ~400MB of space
|
||||
|
||||
popd
|
||||
'';
|
||||
|
||||
removeBooksPhase = ''
|
||||
# Delete the community books
|
||||
rm -rf $out/share/${pname}/books
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "An interpreter and a prover for a Lisp dialect";
|
||||
longDescription = ''
|
||||
ACL2 is a logic and programming language in which you can model computer
|
||||
systems, together with a tool to help you prove properties of those
|
||||
models. "ACL2" denotes "A Computational Logic for Applicative Common
|
||||
Lisp".
|
||||
|
||||
ACL2 is part of the Boyer-Moore family of provers, for which its authors
|
||||
have received the 2005 ACM Software System Award.
|
||||
|
||||
This package installs the main ACL2 executable ${pname}, as well as the
|
||||
build tools cert.pl and clean.pl, renamed to ${pname}-cert and
|
||||
${pname}-clean.
|
||||
|
||||
'' + (if certifyBooks then ''
|
||||
The community books are also included and certified with the `make
|
||||
everything` target.
|
||||
'' else ''
|
||||
The community books are not included in this package.
|
||||
'');
|
||||
homepage = "https://www.cs.utexas.edu/users/moore/acl2/";
|
||||
downloadPage = "https://github.com/acl2-devel/acl2-devel/releases";
|
||||
license = with licenses; [
|
||||
# ACL2 itself is bsd3
|
||||
bsd3
|
||||
] ++ optionals certifyBooks [
|
||||
# The community books are mostly bsd3 or mit but with a few
|
||||
# other things thrown in.
|
||||
mit gpl2 llgpl21 cc0 publicDomain unfreeRedistributable
|
||||
];
|
||||
maintainers = with maintainers; [ kini raskin ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
From 0f48e046f44624f4d4d8255ac5bd26397a38f16c Mon Sep 17 00:00:00 2001
|
||||
From: Keshav Kini <keshav.kini@gmail.com>
|
||||
Date: Sun, 23 Feb 2020 14:09:30 -0800
|
||||
Subject: [PATCH] Support shared library build
|
||||
|
||||
Patch taken from [the ACL2 Books documentation][1].
|
||||
|
||||
- Add " -fPIC" to the CXXFLAGS to build position-independent code,
|
||||
required for shared libraries.
|
||||
|
||||
- Add the line "export CXXFLAGS" below the setting of CXXFLAGS, so that
|
||||
those flags apply to the recursive make of the core solver library.
|
||||
|
||||
- Fix a typo: replace the occurrence of "CXXLAGS" with "CXXFLAGS".
|
||||
|
||||
[1]: http://www.cs.utexas.edu/users/moore/acl2/v8-2/combined-manual/index.html?topic=IPASIR____BUILDING-AN-IPASIR-SOLVER-LIBRARY
|
||||
---
|
||||
makefile | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/makefile b/makefile
|
||||
index 07121de..4e85c4b 100755
|
||||
--- a/makefile
|
||||
+++ b/makefile
|
||||
@@ -29,7 +29,8 @@ TARGET=libipasir$(SIG).a
|
||||
|
||||
CXX=g++
|
||||
|
||||
-CXXFLAGS= -g -std=c++11 -Wall -DNDEBUG -O3
|
||||
+CXXFLAGS= -g -std=c++11 -Wall -DNDEBUG -O3 -fPIC
|
||||
+export CXXFLAGS
|
||||
|
||||
#-----------------------------------------------------------------------#
|
||||
#- REQUIRED TOP RULES --------------------------------------------------#
|
||||
@@ -67,7 +68,7 @@ libipasir$(SIG).a: .FORCE
|
||||
#-----------------------------------------------------------------------#
|
||||
|
||||
ipasir$(NAME)glue.o: ipasir$(NAME)glue.cc ipasir.h makefile
|
||||
- $(CXX) -g -std=c++11 $(CXXLAGS) \
|
||||
+ $(CXX) -g -std=c++11 $(CXXFLAGS) \
|
||||
-DVERSION=\"$(VERSION)\" \
|
||||
-I$(DIR) -I$(DIR)/core -c ipasir$(NAME)glue.cc
|
||||
|
||||
--
|
||||
2.23.1
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{ lib, stdenv, fetchurl, zlib, unzip }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libipasirglucose4";
|
||||
# This library has no version number AFAICT (beyond generally being based on
|
||||
# Glucose 4.x), but it was submitted to the 2017 SAT competition so let's use
|
||||
# that as the version number, I guess.
|
||||
version = "2017";
|
||||
|
||||
libname = pname + stdenv.targetPlatform.extensions.sharedLibrary;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://baldur.iti.kit.edu/sat-competition-2017/solvers/incremental/glucose-ipasir.zip";
|
||||
sha256 = "0xchgady9vwdh8frmc8swz6va53igp2wj1y9sshd0g7549n87wdj";
|
||||
};
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
||||
buildInputs = [ zlib ];
|
||||
|
||||
sourceRoot = "sat/glucose4";
|
||||
patches = [ ./0001-Support-shared-library-build.patch ];
|
||||
|
||||
makeFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ];
|
||||
|
||||
postBuild = ''
|
||||
$CXX -shared -o ${libname} \
|
||||
${if stdenv.cc.isClang then "" else "-Wl,-soname,${libname}"} \
|
||||
ipasirglucoseglue.o libipasirglucose4.a
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -D ${libname} $out/lib/${libname}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Shared library providing IPASIR interface to the Glucose SAT solver";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ kini ];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue