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:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,77 @@
{ lib
, meson
, ninja
, fetchFromGitHub
, appstream-glib
, desktop-file-utils
, gdk-pixbuf
, gettext
, glib
, gnome
, gobject-introspection
, gtk4
, libxml2
, pkg-config
, python3Packages
, wrapGAppsHook4 }:
python3Packages.buildPythonApplication rec {
pname = "bada-bib";
version = "0.6.2";
format = "other";
strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
src = fetchFromGitHub {
owner = "RogerCrocker";
repo = "BadaBib";
rev = "refs/tags/v${version}";
sha256 = "sha256-3dXtBwqEqiXLjntmqLYeuwLv0RDb774+yOXc7vdf8+Y=";
};
nativeBuildInputs = [
gettext
gobject-introspection
libxml2
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [
gdk-pixbuf
glib
gtk4
];
checkInputs = [
appstream-glib
desktop-file-utils
];
pythonPath = with python3Packages; [
bibtexparser
pygobject3
];
postPatch = ''
patchShebangs build-aux/meson/postinstall.py
'';
dontWrapGApps = true; # Needs python wrapper
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
postFixup = ''
wrapPythonProgramsIn "$out/libexec" "$out $pythonPath"
'';
meta = with lib; {
homepage = "https://github.com/RogerCrocker/BadaBib";
description = "A simple BibTeX Viewer and Editor";
maintainers = [ maintainers.Cogitri ];
license = licenses.gpl3Plus;
};
}

View file

@ -0,0 +1,55 @@
{ fetchFromGitHub, lib, stdenv, autoconf, automake, pkg-config, m4, curl,
libGLU, libGL, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK30, xcbutil,
sqlite, gtk2, patchelf, libXScrnSaver, libnotify, libX11, libxcb }:
let
majorVersion = "7.18";
minorVersion = "1";
in
stdenv.mkDerivation rec {
version = "${majorVersion}.${minorVersion}";
pname = "boinc";
src = fetchFromGitHub {
name = "${pname}-${version}-src";
owner = "BOINC";
repo = "boinc";
rev = "client_release/${majorVersion}/${version}";
sha256 = "sha256-ijkfWTFwwJXvh6f0P5hkzWODxU+Ugz6iQUK+5jEpWXQ=";
};
nativeBuildInputs = [ libtool automake autoconf m4 pkg-config ];
buildInputs = [
curl libGLU libGL libXmu libXi freeglut libjpeg wxGTK30 sqlite gtk2 libXScrnSaver
libnotify patchelf libX11 libxcb xcbutil
];
NIX_LDFLAGS = "-lX11";
preConfigure = ''
./_autosetup
configureFlags="$configureFlags --sysconfdir=$out/etc"
'';
enableParallelBuilding = true;
configureFlags = [ "--disable-server" ];
postInstall = ''
install --mode=444 -D 'client/scripts/boinc-client.service' "$out/etc/systemd/system/boinc.service"
'';
meta = with lib; {
description = "Free software for distributed and grid computing";
homepage = "https://boinc.berkeley.edu/";
license = licenses.lgpl2Plus;
platforms = platforms.linux; # arbitrary choice
# checking for gcc options needed to detect all undeclared functions... cannot detect
# configure: error: in `/build/boinc-7.18.1-src':
# configure: error: cannot make gcc report undeclared builtins
broken = stdenv.isAarch64;
maintainers = with maintainers; [ Luflosi ];
};
}

View file

@ -0,0 +1,53 @@
{ mkDerivation, lib, fetchFromGitHub, cmake, boost17x, ceres-solver, eigen,
freeimage, glog, libGLU, glew, qtbase,
cudaSupport ? false, cudaPackages }:
assert cudaSupport -> cudaPackages != { };
let
boost_static = boost17x.override { enableStatic = true; };
# TODO: migrate to redist packages
inherit (cudaPackages) cudatoolkit;
in
mkDerivation rec {
version = "3.7";
pname = "colmap";
src = fetchFromGitHub {
owner = "colmap";
repo = "colmap";
rev = version;
hash = "sha256-uVAw6qwhpgIpHkXgxttKupU9zU+vD0Za0maw2Iv4x+I=";
};
# TODO: rm once the gcc11 issue is closed, https://github.com/colmap/colmap/issues/1418#issuecomment-1049305256
cmakeFlags = lib.optionals cudaSupport [
"-DCUDA_ENABLED=ON"
"-DCUDA_NVCC_FLAGS=--std=c++14"
];
buildInputs = [
boost_static ceres-solver eigen
freeimage glog libGLU glew qtbase
] ++ lib.optionals cudaSupport [
cudatoolkit
];
nativeBuildInputs = [
cmake
] ++ lib.optionals cudaSupport [
cudaPackages.autoAddOpenGLRunpathHook
];
meta = with lib; {
description = "COLMAP - Structure-From-Motion and Multi-View Stereo pipeline";
longDescription = ''
COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline
with a graphical and command-line interface.
'';
homepage = "https://colmap.github.io/index.html";
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [ lebastr ];
};
}

View file

@ -0,0 +1,37 @@
{ lib, stdenv, fetchFromGitHub, python3, wrapQtAppsHook }:
let
inherit (python3.pkgs) wrapPython pyqt5;
in stdenv.mkDerivation rec {
pname = "convertall";
version = "0.8.0";
src = fetchFromGitHub {
owner = "doug-101";
repo = "ConvertAll";
rev = "v${version}";
sha256 = "02xxasgbjbivsbhyfpn3cpv52lscdx5kc95s6ns1dvnmdg0fpng0";
};
nativeBuildInputs = [ python3 wrapPython wrapQtAppsHook ];
propagatedBuildInputs = [ pyqt5 ];
installPhase = ''
python3 install.py -p $out -x
'';
postFixup = ''
buildPythonPath $out
patchPythonScript $out/share/convertall/convertall.py
makeQtWrapper $out/share/convertall/convertall.py $out/bin/convertall
'';
meta = with lib; {
homepage = "https://convertall.bellz.org/";
description = "Graphical unit converter";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ orivej ];
platforms = pyqt5.meta.platforms;
};
}

View file

@ -0,0 +1,76 @@
{ lib
, fetchFromGitHub
, git
, nodejs
, python3
}:
python3.pkgs.buildPythonApplication rec {
pname = "cwltool";
version = "3.1.20220224085855";
format = "setuptools";
src = fetchFromGitHub {
owner = "common-workflow-language";
repo = pname;
rev = version;
sha256 = "sha256-7+1xOV5Lodqtku0wX1urAEHsCcYKM3Vcd5RDg4DdVow=";
};
postPatch = ''
substituteInPlace setup.py \
--replace "ruamel.yaml >= 0.15, < 0.17.18" "ruamel.yaml" \
--replace "prov == 1.5.1" "prov" \
--replace "setup_requires=PYTEST_RUNNER," ""
'';
nativeBuildInputs = [
git
];
propagatedBuildInputs = with python3.pkgs; [
argcomplete
bagit
coloredlogs
mypy-extensions
prov
psutil
pydot
rdflib
requests
ruamel-yaml
schema-salad
shellescape
typing-extensions
];
checkInputs = with python3.pkgs; [
mock
nodejs
pytest-mock
pytest-xdist
pytestCheckHook
];
disabledTests = [
"test_content_types"
"test_env_filtering"
"test_http_path_mapping"
];
disabledTestPaths = [
"tests/test_udocker.py"
"tests/test_provenance.py"
];
pythonImportsCheck = [
"cwltool"
];
meta = with lib; {
description = "Common Workflow Language reference implementation";
homepage = "https://www.commonwl.org";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ veprbl ];
};
}

View file

@ -0,0 +1,44 @@
{ lib, stdenv, fetchurl, jre, makeWrapper, substituteAll, coreutils }:
stdenv.mkDerivation rec {
pname = "cytoscape";
version = "3.9.1";
src = fetchurl {
url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-unix-${version}.tar.gz";
sha256 = "sha256-I4C2yGiIygnFUkRBC4LBSQFgjZlVKCoQGRphynVpscw=";
};
patches = [
# By default, gen_vmoptions.sh tries to store custom options in $out/share
# at run time. This patch makes sure $HOME is used instead.
(substituteAll {
src = ./gen_vmoptions_to_homedir.patch;
inherit coreutils;
})
];
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ jre ];
installPhase = ''
mkdir -pv $out/{share,bin}
cp -Rv * $out/share/
ln -s $out/share/cytoscape.sh $out/bin/cytoscape
wrapProgram $out/share/cytoscape.sh \
--set JAVA_HOME "${jre}" \
--set JAVA "${jre}/bin/java"
chmod +x $out/bin/cytoscape
'';
meta = {
homepage = "http://www.cytoscape.org";
description = "A general platform for complex network analysis and visualization";
license = lib.licenses.lgpl21;
maintainers = [lib.maintainers.mimame];
platforms = lib.platforms.unix;
};
}

View file

@ -0,0 +1,19 @@
diff -Nur a/gen_vmoptions.sh b/gen_vmoptions.sh
--- a/gen_vmoptions.sh 2020-03-30 21:57:47.000000000 +0100
+++ b/gen_vmoptions.sh 2020-05-05 09:49:57.974989824 +0100
@@ -1,13 +1,10 @@
#!/bin/sh
# Generates the Cytoscape.vmoptions file
-script_path="$(dirname -- $0)"
-
-#vm_options_path="$HOME/.cytoscape"
-vm_options_path=$script_path
+vm_options_path="$HOME/.cytoscape"
if [ ! -e $vm_options_path ]; then
- /bin/mkdir $vm_options_path
+ @coreutils@/bin/mkdir $vm_options_path
fi
# Determine amount of physical memory present:

View file

@ -0,0 +1,29 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, wxGTK30, boost, lua, zlib, bzip2
, xylib, readline, gnuplot, swig3 }:
stdenv.mkDerivation rec {
pname = "fityk";
version = "1.3.1";
src = fetchFromGitHub {
owner = "wojdyr";
repo = "fityk";
rev = "v${version}";
sha256 = "0kmrjjjwrh6xgw590awcd52b86kksmv6rfgih75zvpiavr1ygwsi";
};
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ wxGTK30 boost lua zlib bzip2 xylib readline
gnuplot swig3 ];
NIX_CFLAGS_COMPILE = [
"-std=c++11"
];
meta = {
description = "Curve fitting and peak fitting software";
license = lib.licenses.gpl2;
homepage = "https://fityk.nieto.pl/";
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,59 @@
{ lib, stdenv
, autoPatchelfHook
, buildFHSUserEnv
, dpkg
, fetchurl
, gcc-unwrapped
, ocl-icd
, zlib
, extraPkgs ? []
}:
let
majMin = lib.versions.majorMinor version;
version = "7.6.13";
fahclient = stdenv.mkDerivation rec {
inherit version;
pname = "fahclient";
src = fetchurl {
url = "https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v${majMin}/fahclient_${version}_amd64.deb";
sha256 = "1j2cnsyassvifp6ymwd9kxwqw09hks24834gf7nljfncyy9g4g0i";
};
nativeBuildInputs = [
autoPatchelfHook
dpkg
];
buildInputs = [
gcc-unwrapped.lib
zlib
];
unpackPhase = "dpkg-deb -x ${src} ./";
installPhase = "cp -ar usr $out";
};
in
buildFHSUserEnv {
name = fahclient.name;
targetPkgs = pkgs': [
fahclient
ocl-icd
] ++ extraPkgs;
runScript = "/bin/FAHClient";
extraInstallCommands = ''
mv $out/bin/$name $out/bin/FAHClient
'';
meta = {
description = "Folding@home client";
homepage = "https://foldingathome.org/";
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.zimbatm ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,58 @@
{ lib, stdenv
, autoPatchelfHook
, dpkg
, fahviewer
, fetchurl
, makeWrapper
, python2
}:
let
majMin = lib.versions.majorMinor version;
version = "7.6.21";
python = python2.withPackages
(
ps: [
ps.pycairo
ps.pygobject2
ps.pygtk
]
);
in
stdenv.mkDerivation rec {
inherit version;
pname = "fahcontrol";
src = fetchurl {
url = "https://download.foldingathome.org/releases/public/release/fahcontrol/debian-stable-64bit/v${majMin}/fahcontrol_${version}-1_all.deb";
sha256 = "1vfrdqkrvdlyxaw3f6z92w5dllrv6810lmf8yhcmjcwmphipvf71";
};
nativeBuildInputs = [
dpkg
makeWrapper
];
buildInputs = [ fahviewer python ];
unpackPhase = ''
dpkg-deb -x ${src} ./
'';
installPhase = "cp -ar usr $out";
postFixup = ''
sed -e "s|/usr/bin|$out/bin|g" -i $out/share/applications/FAHControl.desktop
wrapProgram "$out/bin/FAHControl" \
--suffix PATH : "${fahviewer.outPath}/bin" \
--set PYTHONPATH "$out/lib/python2.7/dist-packages"
'';
meta = {
description = "Folding@home control";
homepage = "https://foldingathome.org/";
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.zimbatm ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,55 @@
{ lib, stdenv
, autoPatchelfHook
, dpkg
, fetchurl
, freeglut
, gcc-unwrapped
, libGL
, libGLU
, makeWrapper
, zlib
}:
let
majMin = lib.versions.majorMinor version;
version = "7.6.21";
in
stdenv.mkDerivation rec {
inherit version;
pname = "fahviewer";
src = fetchurl {
url = "https://download.foldingathome.org/releases/public/release/fahviewer/debian-stable-64bit/v${majMin}/fahviewer_${version}_amd64.deb";
sha256 = "00fd00pf6fcpplcaahvy9ir60mk69d9rcmwsyq3jrv9mxqm9aq7p";
};
nativeBuildInputs = [
autoPatchelfHook
dpkg
makeWrapper
];
buildInputs = [
freeglut
gcc-unwrapped.lib
libGL
libGLU
zlib
];
unpackPhase = ''
dpkg-deb -x ${src} ./
sed -e "s|/usr/bin|$out/bin|g" -i usr/share/applications/FAHViewer.desktop
'';
installPhase = ''
cp -ar usr $out
'';
meta = {
description = "Folding@home viewer";
homepage = "https://foldingathome.org/";
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.zimbatm ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,69 @@
{ lib, stdenv, fetchFromGitHub, jdk, maven, javaPackages }:
let
version = "0.9.2";
src = fetchFromGitHub {
owner = "gephi";
repo = "gephi";
rev = "v${version}";
sha256 = "0kqp2nvnsb55j1axb6hk0mlw5alyaiyb70z0mdybhpqqxyw2da2r";
};
# perform fake build to make a fixed-output derivation out of the files downloaded from maven central (120MB)
deps = stdenv.mkDerivation {
name = "gephi-${version}-deps";
inherit src;
buildInputs = [ jdk maven ];
buildPhase = ''
while mvn package -Dmaven.repo.local=$out/.m2 -Dmaven.wagon.rto=5000; [ $? = 1 ]; do
echo "timeout, restart maven to continue downloading"
done
'';
# keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
installPhase = ''find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "1p7yf97dn0nvr005cbs6vdk3i341s8fya4kfccj8qqad2qgxflif";
};
in
stdenv.mkDerivation {
pname = "gephi";
inherit version;
inherit src;
buildInputs = [ jdk maven ];
buildPhase = ''
# 'maven.repo.local' must be writable so copy it out of nix store
mvn package --offline -Dmaven.repo.local=$(cp -dpR ${deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
'';
installPhase = ''
cp -r modules/application/target/gephi $out
# remove garbage
find $out -type f -name .lastModified -delete
find $out -type f -regex '.+\.exe' -delete
# use self-compiled JOGL to avoid patchelf'ing .so inside jars
rm $out/gephi/modules/ext/org.gephi.visualization/org-jogamp-{jogl,gluegen}/*.jar
cp ${javaPackages.jogl_2_3_2}/share/java/jogl*.jar $out/gephi/modules/ext/org.gephi.visualization/org-jogamp-jogl/
cp ${javaPackages.jogl_2_3_2}/share/java/glue*.jar $out/gephi/modules/ext/org.gephi.visualization/org-jogamp-gluegen/
echo "jdkhome=${jdk}" >> $out/etc/gephi.conf
'';
meta = with lib; {
description = "A platform for visualizing and manipulating large graphs";
homepage = "https://gephi.org";
sourceProvenance = with sourceTypes; [
fromSource
binaryBytecode # deps
];
license = licenses.gpl3;
maintainers = [ maintainers.taeer ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,54 @@
{lib, stdenv, fetchurl, wxGTK, perl, python3, zlib, libGLU, libGL, libX11, SDL2}:
stdenv.mkDerivation rec {
pname = "golly";
version = "4.1";
src = fetchurl {
sha256 = "1j30dpzy6wh8fv1j2750hzc6wb0nhk83knl9fapccxgxw9n5lrbc";
url="mirror://sourceforge/project/golly/golly/golly-${version}/golly-${version}-src.tar.gz";
};
buildInputs = [
wxGTK perl python3 zlib libGLU libGL libX11 SDL2
];
setSourceRoot = ''
sourceRoot=$(echo */gui-wx/)
'';
postPatch = ''
sed -e '/gollydir =/agollydir += "/../share/golly/";' -i wxgolly.cpp
grep share/golly wxgolly.cpp
sed -e 's@PYTHON_SHLIB@${python3}/lib/libpython3.so@' -i wxprefs.cpp
sed -e 's@PERL_SHLIB@'"$(find "${perl}/lib/" -name libperl.so)"'@' -i wxprefs.cpp
! grep _SHLIB *.cpp
grep /lib/libpython wxprefs.cpp
grep /libperl wxprefs.cpp
'';
makeFlags=[
"-f" "makefile-gtk"
"ENABLE_SOUND=1" "ENABLE_PERL=1"
];
installPhase = ''
mkdir -p "$out/bin"
cp ../golly ../bgolly "$out/bin"
mkdir -p "$out/share/doc/golly/"
cp ../docs/* "$out/share/doc/golly/"
mkdir -p "$out/share/golly"
cp -r ../{Help,Patterns,Scripts,Rules} "$out/share/golly"
'';
meta = {
description = "Cellular automata simulation program";
license = lib.licenses.gpl2;
maintainers = [lib.maintainers.raskin];
platforms = lib.platforms.linux;
downloadPage = "https://sourceforge.net/projects/golly/files/golly";
};
}

View file

@ -0,0 +1,71 @@
{ lib
, stdenv
, mkDerivation
, fetchurl
, cmake
, doxygen
, graphviz
, boost
, cgal_5
, gdal
, glew
, gmp
, libGL
, libGLU
, mpfr
, proj
, python3
, qtxmlpatterns
, qwt
}:
let
python = python3.withPackages (ps: with ps; [
numpy
]);
boost' = boost.override {
enablePython = true;
inherit python;
};
cgal = cgal_5.override {
boost = boost';
};
in mkDerivation rec {
pname = "gplates";
version = "2.3.0";
src = fetchurl {
name = "gplates_${version}_src.tar.bz2";
url = "https://www.earthbyte.org/download/8421/?uid=b89bb31428";
sha256 = "0lrcmcxc924ixddii8cyglqlwwxvk7f00g4yzbss5i3fgcbh8n96";
};
nativeBuildInputs = [
cmake
doxygen
graphviz
];
buildInputs = [
boost'
cgal
gdal
glew
gmp
libGL
libGLU
mpfr
proj
python
qtxmlpatterns
qwt
];
meta = with lib; {
description = "Desktop software for the interactive visualisation of plate-tectonics";
homepage = "https://www.gplates.org";
license = licenses.gpl2Only;
platforms = platforms.all;
broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/gplates.x86_64-darwin
};
}

View file

@ -0,0 +1,35 @@
{ stdenv, lib, cmake, fetchFromGitHub
, wrapQtAppsHook, qtbase, qtquickcontrols2, qtgraphicaleffects
}:
stdenv.mkDerivation rec {
pname = "graphia";
version = "2.2";
src = fetchFromGitHub {
owner = "graphia-app";
repo = "graphia";
rev = version;
sha256 = "sha256:05givvvg743sawqy2vhljkfgn5v1s907sflsnsv11ddx6x51na1w";
};
nativeBuildInputs = [
cmake
wrapQtAppsHook
];
buildInputs = [
qtbase
qtquickcontrols2
qtgraphicaleffects
];
meta = with lib; {
# never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/graphia.x86_64-darwin
broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
description = "A visualisation tool for the creation and analysis of graphs.";
homepage = "https://graphia.app";
license = licenses.gpl3Only;
maintainers = [ maintainers.bgamari ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,47 @@
{ fetchurl, lib, stdenv, ocaml, makeWrapper, ncurses }:
let version = "0.92"; in
stdenv.mkDerivation {
pname = "megam";
inherit version;
src = fetchurl {
url = "http://hal3.name/megam/megam_src.tgz";
sha256 = "dc0e9f59ff8513449fe3bd40b260141f89c88a4edf6ddc8b8a394c758e49724e";
};
patches = [ ./ocaml-includes.patch ./ocaml-3.12.patch ];
buildInputs = [ ocaml ncurses ];
nativeBuildInputs = [ makeWrapper ];
makeFlags = [ "CAML_INCLUDES=${ocaml}/lib/ocaml/caml" ];
# see https://bugzilla.redhat.com/show_bug.cgi?id=435559
dontStrip = true;
installPhase = ''
mkdir -pv $out/bin
cp -Rv megam $out/bin
'';
meta = {
description = "MEGA Model Optimization Package";
longDescription =
'' The software here is an implementation of maximum likelihood
and maximum a posterior optimization of the parameters of
these models. The algorithms used are much more efficient
than the iterative scaling techniques used in almost every
other maxent package out there. '';
homepage = "http://www.umiacs.umd.edu/~hal/megam";
license = "non-commercial";
maintainers = [ ];
platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice
};
}

View file

@ -0,0 +1,12 @@
diff -ru megam_0.92/Makefile megam_0.92-b/Makefile
--- megam_0.92/Makefile 2007-10-08 18:06:04.000000000 +0100
+++ megam_0.92-b/Makefile 2013-11-25 10:14:20.000000000 +0000
@@ -59,7 +59,7 @@
WITHUNIX =unix.cma -cclib -lunix
-WITHSTR =str.cma -cclib -lstr
+WITHSTR =str.cma -cclib -lcamlstr
WITHBIGARRAY =bigarray.cma -cclib -lbigarray

View file

@ -0,0 +1,21 @@
diff -ru megam_0.92/Makefile megam_0.92-b/Makefile
--- megam_0.92/Makefile 2007-10-08 18:06:04.000000000 +0100
+++ megam_0.92-b/Makefile 2013-11-25 10:14:20.000000000 +0000
@@ -41,7 +41,7 @@
#
# The Caml compilers. #
# You may fix here the path to access the Caml compiler on your machine
-CAMLC = ocamlc -g
+CAMLC = ocamlc -g $(WITHCLIBS)
CAMLOPT = ocamlopt -unsafe -ccopt -O4 -ccopt -ffast-math -inline 99999
CAMLDEP = ocamldep
CAMLLEX = ocamllex
@@ -70,7 +70,7 @@
WITHDBM =dbm.cma -cclib -lmldbm -cclib -lndbm
#WITHCLIBS =-I /usr/lib/ocaml/3.09.2/caml
-WITHCLIBS =-I /usr/lib/ocaml/caml
+WITHCLIBS =-I $(CAML_INCLUDES)
################ End of user's variables #####################

View file

@ -0,0 +1,59 @@
{ jre, lib, stdenv, fetchurl, makeWrapper, makeDesktopItem }:
let
desktopItem = makeDesktopItem rec {
name = "netlogo";
exec = name;
icon = name;
comment = "A multi-agent programmable modeling environment";
desktopName = "NetLogo";
categories = [ "Science" ];
};
in
stdenv.mkDerivation rec {
pname = "netlogo";
version = "6.1.1";
src = fetchurl {
url = "https://ccl.northwestern.edu/netlogo/${version}/NetLogo-${version}-64.tgz";
sha256 = "1j08df68pgggxqkmpzd369w4h97q0pivmmljdb48hjghx7hacblp";
};
src1 = fetchurl {
name = "netlogo.png";
url = "https://netlogoweb.org/assets/images/desktopicon.png";
sha256 = "1i43lhr31lzva8d2r0dxpcgr58x496gb5vmb0h2da137ayvifar8";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
mkdir -pv $out/share/netlogo $out/share/icons/hicolor/256x256/apps $out/share/applications $out/share/doc
cp -rv app $out/share/netlogo
cp -v readme.md $out/share/doc/
# launcher with `cd` is required b/c otherwise the model library isn't usable
makeWrapper "${jre}/bin/java" "$out/bin/netlogo" \
--chdir "$out/share/netlogo/app" \
--add-flags "-jar netlogo-${version}.jar"
cp $src1 $out/share/icons/hicolor/256x256/apps/netlogo.png
cp ${desktopItem}/share/applications/* $out/share/applications
'';
meta = with lib; {
description = "A multi-agent programmable modeling environment";
longDescription = ''
NetLogo is a multi-agent programmable modeling environment. It is used by
many tens of thousands of students, teachers and researchers worldwide.
'';
homepage = "https://ccl.northwestern.edu/netlogo/index.shtml";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.gpl2;
maintainers = [ maintainers.dpaetzel ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,44 @@
{ lib
, fetchFromGitHub
, python3
}:
python3.pkgs.buildPythonApplication rec {
pname = "nextinspace";
version = "2.0.3";
format = "pyproject";
src = fetchFromGitHub {
owner = "not-stirred";
repo = pname;
rev = "v${version}";
hash = "sha256-Macx2pQglB95Bhc939TFVCHd1qvqJsco91EXKCIQLgg=";
};
nativeBuildInputs = with python3.pkgs; [
poetry-core
];
pythonPath = with python3.pkgs; [
requests
tzlocal
colorama
];
checkInputs = with python3.pkgs; [
pytest-lazy-fixture
pytestCheckHook
requests-mock
];
pythonImportsCheck = [
"nextinspace"
];
meta = with lib; {
description = "Print upcoming space-related events in your terminal";
homepage = "https://github.com/The-Kid-Gid/nextinspace";
license = licenses.gpl3Only;
maintainers = with maintainers; [ penguwin ];
};
}

View file

@ -0,0 +1,30 @@
{ stdenv, lib, openmodelica, symlinkJoin, gnumake, blas, lapack, makeWrapper }:
symlinkJoin {
name = "openmodelica-combined";
paths = with openmodelica; [
omcompiler
omsimulator
omplot
omparser
omedit
omlibrary
omshell
];
buildInputs = [ gnumake makeWrapper ];
postBuild = ''
wrapProgram $out/bin/OMEdit \
--prefix PATH : ${lib.makeBinPath [ gnumake stdenv.cc ]} \
--prefix LIBRARY_PATH : "${lib.makeLibraryPath [ blas lapack ]}" \
--set-default OPENMODELICALIBRARY "${openmodelica.omlibrary}/lib/omlibrary"
'';
meta = with lib; {
description = "An open-source Modelica-based modeling and simulation environment intended for industrial and academic usage";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,17 @@
{ lib, newScope, libsForQt5, clangStdenv }:
lib.makeScope newScope (self:
let
callPackage = self.newScope { stdenv = clangStdenv; };
callQtPackage = self.newScope (libsForQt5 // { stdenv = clangStdenv; });
in
{
mkOpenModelicaDerivation = callPackage ./mkderivation { };
omcompiler = callPackage ./omcompiler { };
omplot = callQtPackage ./omplot { };
omsimulator = callPackage ./omsimulator { };
omparser = callPackage ./omparser { };
omedit = callQtPackage ./omedit { };
omlibrary = callPackage ./omlibrary { };
omshell = callQtPackage ./omshell { };
combined = callPackage ./combined { };
})

View file

@ -0,0 +1,101 @@
# mkOpenModelicaDerivation is an mkDerivation function for packages
# from OpenModelica suite.
{ stdenv, lib, fetchgit, autoconf, automake, libtool, cmake, autoreconfHook, symlinkJoin }:
pkg:
let
inherit (builtins) hasAttr getAttr length elemAt;
inherit (lib) attrByPath concatStringsSep;
# A few helpers functions:
# getAttrDef is just a getAttr with default fallback
getAttrDef = attr: default: x: attrByPath [ attr ] default x;
# getAttr-like helper for optional append to string:
# "Hello" + appendByAttr "a" " " {a = "world";} = "Hello world"
# "Hello" + appendByAttr "a" " " {} = "Hello"
appendByAttr = attr: sep: x: if hasAttr attr x then sep + (getAttr attr x) else "";
# Are there any OM dependencies at all?
ifDeps = length pkg.omdeps != 0;
# Dependencies of current OpenModelica-target joined in one file tree.
# Return the dep itself in case it is a single one.
joinedDeps =
if length pkg.omdeps == 1
then elemAt pkg.omdeps 0
else
symlinkJoin {
name = pkg.pname + "-omhome";
paths = pkg.omdeps;
};
# Should we run ./configure for the target pkg?
omautoconf = getAttrDef "omautoconf" false pkg;
# Name of the make target
omtarget = getAttrDef "omtarget" pkg.pname pkg;
# Directory of target sources
omdir = getAttrDef "omdir" pkg.pname pkg;
# Simple to to m4 configuration scripts
postPatch = lib.optionalString ifDeps ''
sed -i ''$(find -name omhome.m4) -e 's|if test ! -z "$USINGPRESETBUILDDIR"|if test ! -z "$USINGPRESETBUILDDIR" -a -z "$OMHOME"|'
'' +
appendByAttr "postPatch" "\n" pkg;
# Update shebangs in the scripts before running configuration.
preAutoreconf = "patchShebangs --build common" +
appendByAttr "preAutoreconf" "\n" pkg;
# Tell OpenModelica where built dependencies are located.
configureFlags = lib.optional ifDeps "--with-openmodelicahome=${joinedDeps}" ++
getAttrDef "configureFlags" [ ] pkg;
# Our own configurePhase that accounts for omautoconf
configurePhase = ''
runHook preConfigure
export configureFlags="''${configureFlags} --with-ombuilddir=$PWD/build --prefix=$prefix"
./configure --no-recursion $configureFlags
${lib.optionalString omautoconf "(cd ${omdir}; ./configure $configureFlags)"}
runHook postConfigure
'';
# Targets that we want to build ourselves:
deptargets = lib.forEach pkg.omdeps (dep: dep.omtarget);
# ... so we ask openmodelica makefile to skip those targets.
preBuild = ''
for target in ${concatStringsSep " " deptargets}; do
touch ''${target}.skip;
done
'' +
appendByAttr "preBuild" "\n" pkg;
makeFlags = "${omtarget}" +
appendByAttr "makeFlags" " " pkg;
installFlags = "-i " +
appendByAttr "installFlags" " " pkg;
in
stdenv.mkDerivation (pkg // {
inherit omtarget postPatch preAutoreconf configureFlags configurePhase preBuild makeFlags installFlags;
src = fetchgit (import ./src-main.nix);
version = "1.18.0";
nativeBuildInputs = getAttrDef "nativeBuildInputs" [ ] pkg
++ [ autoconf automake libtool cmake autoreconfHook ];
buildInputs = getAttrDef "buildInputs" [ ] pkg
++ lib.optional ifDeps joinedDeps;
dontUseCmakeConfigure = true;
hardeningDisable = [ "format" ];
})

View file

@ -0,0 +1,7 @@
{
url = "https://github.com/OpenModelica/OpenModelica/";
rev = "49be4faa5a625a18efbbd74cc2f5be86aeea37bb";
sha256 = "0klqiy4sdizl1djb9hb0arcvfcjz2mmnakrjx81mmxcbr8yq2016";
fetchSubmodules = true;
}
# Update with: nix run -f ./nixpkgs/default.nix nix-prefetch-git -c nix-prefetch-git 'https://github.com/OpenModelica/OpenModelica/' 'v1.18.0' --fetch-submodules

View file

@ -0,0 +1,63 @@
{ stdenv
, lib
, gfortran
, flex
, bison
, jre8
, blas
, lapack
, curl
, readline
, expat
, pkg-config
, buildPackages
, targetPackages
, libffi
, binutils
, mkOpenModelicaDerivation
}:
let
isCross = stdenv.buildPlatform != stdenv.hostPlatform;
nativeOMCompiler = buildPackages.openmodelica.omcompiler;
in
mkOpenModelicaDerivation ({
pname = "omcompiler";
omtarget = "omc";
omdir = "OMCompiler";
omdeps = [ ];
omautoconf = true;
nativeBuildInputs = [
jre8
gfortran
flex
bison
pkg-config
] ++ lib.optional isCross nativeOMCompiler;
buildInputs = [ targetPackages.stdenv.cc.cc blas lapack curl readline expat libffi binutils ];
postPatch = ''
sed -i -e '/^\s*AR=ar$/ s/ar/${stdenv.cc.targetPrefix}ar/
/^\s*ar / s/ar /${stdenv.cc.targetPrefix}ar /
/^\s*ranlib/ s/ranlib /${stdenv.cc.targetPrefix}ranlib /' \
$(find ./OMCompiler -name 'Makefile*')
'';
preFixup = ''
for entry in $(find $out -name libipopt.so); do
patchelf --shrink-rpath --allowed-rpath-prefixes /nix/store $entry
patchelf --set-rpath '$ORIGIN':"$(patchelf --print-rpath $entry)" $entry
done
'';
meta = with lib; {
description = "Modelica compiler from OpenModelica suite";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
} // lib.optionalAttrs isCross {
configureFlags = [ "--with-omc=${nativeOMCompiler}/bin/omc" ];
})

View file

@ -0,0 +1,38 @@
{ lib
, jre8
, qmake
, qtbase
, qttools
, qtwebkit
, qtxmlpatterns
, binutils
, wrapQtAppsHook
, openmodelica
, mkOpenModelicaDerivation
}:
with openmodelica;
mkOpenModelicaDerivation rec {
pname = "omedit";
omdir = "OMEdit";
omdeps = [ omcompiler omplot omparser omsimulator ];
omautoconf = true;
nativeBuildInputs = [ jre8 qmake qtbase qttools wrapQtAppsHook ];
buildInputs = [ qtwebkit qtxmlpatterns binutils ];
postPatch = ''
sed -i ''$(find -name qmake.m4) -e '/^\s*LRELEASE=/ s|LRELEASE=.*$|LRELEASE=${lib.getDev qttools}/bin/lrelease|'
'';
dontUseQmakeConfigure = true;
QMAKESPEC = "linux-clang";
meta = with lib; {
description = "A Modelica connection editor for OpenModelica";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,37 @@
{ lib
, stdenv
, fetchgit
, bash
, pkg-config
, jre8
, libuuid
, openmodelica
, mkOpenModelicaDerivation
}:
let
fakegit = import ./fakegit.nix { inherit lib stdenv fetchgit bash; };
in
mkOpenModelicaDerivation {
pname = "omlibrary";
omdir = "libraries";
omtarget = "omlibrary-all";
omdeps = [ openmodelica.omcompiler ];
postPatch = ''
patchShebangs --build libraries
cp -fv ${fakegit}/bin/checkout-git.sh libraries/checkout-git.sh
# The EMOTH library is broken in OpenModelica 1.17.0
# Let's remove it from targets.
sed -i -e '/^OTHER_LIBS=/ s/EMOTH //' libraries/Makefile.libs
'';
meta = with lib; {
description = "A collection of Modelica libraries to use with OpenModelica,
including Modelica Standard Library";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,49 @@
{ lib, stdenv, fetchgit, bash }:
let
mkscript = path: text: ''
mkdir -pv `dirname ${path}`
cat > ${path} <<"EOF"
#!${bash}/bin/bash
ME=$(basename ${path})
${text}
EOF
sed -i "s@%out@$out@g" ${path}
chmod +x ${path}
'';
hashname = r:
let
rpl = lib.replaceChars [ ":" "/" ] [ "_" "_" ];
in
(rpl r.url) + "-" + (rpl r.rev);
in
stdenv.mkDerivation {
name = "fakegit";
buildCommand = ''
mkdir -pv $out/repos
${lib.concatMapStrings
(r: "cp -r ${fetchgit r} $out/repos/${hashname r}\n")
(import ./src-libs.nix)}
${mkscript "$out/bin/checkout-git.sh" ''
if test "$#" -ne 4; then
echo "Usage: $0 DESTINATION URL GITBRANCH HASH"
exit 1
fi
DEST=$1
URL=`echo $2 | tr :/ __`
GITBRANCH=$3
REVISION=$4
REVISION=`echo $REVISION | tr :/ __`
rm -rf $DEST
mkdir -pv $DEST
echo "FAKEGIT cp -r %out/repos/$URL-$REVISION $DEST" >&2
cp -r %out/repos/$URL-$REVISION/* $DEST
chmod u+w -R $DEST
''}
'';
}

View file

@ -0,0 +1,81 @@
[
{ url = "https://github.com/modelica-3rdparty/AdvancedNoise.git"; rev = "5ce57acd279dadd0d25b76a6b02d3f9e9d061246"; sha256 = "07jjbj0y6bak269md3xniqb5lgc33m92ar5qixqxj5yxdjaahfs2"; fetchSubmodules = true; }
{ url = "https://github.com/RWTH-EBC/AixLib.git"; rev = "65e49ddf5c935846888a61aa303e52c909619079"; sha256 = "18xn8j3x3j4x9bpjgqnq0b6p3yzzsg5n62fv1ldqbbjcmi0vimd5"; fetchSubmodules = true; }
{ url = "https://github.com/RWTH-EBC/AixLib.git"; rev = "v0.4.0"; sha256 = "0dw34mjq29n55xh51g1c9a9d0d8gbpn16gj309dfxn4v2hbnfvzx"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/AlgebraTestSuite.git"; rev = "b937e1a7f447138c59abec9b2092f84f16bf02e8"; sha256 = "0406inasx61dk7vcnziiyhxkna7g61a5hn0znnbxj817hz6q11zn"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/ApproxSpline.git"; rev = "28420f5c1a88c9cd069defbd8c05e4a78a090675"; sha256 = "07gpyi2brj5zpvrlsnflqjnhbrgxvpqbdshp8lp4lh9mnj5jv95d"; fetchSubmodules = true; }
{ url = "https://github.com/OpenModelica/BioChem.git"; rev = "v1.0.2"; sha256 = "037bvj2lqrslg8k5r0rjgdzccslj9bj25b55k4g440vabm5p05qm"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/BondGraph.git"; rev = "20c23e60d12989bd4668ccac47659d82d39d29cc"; sha256 = "0yrkk708v4bvf423xb4zgpmnaj8qhq5primdg758ayddgli23wa9"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/BrineProp.git"; rev = "834fb3519ca8f89efe268582d39d00a7c3991150"; sha256 = "1iwqh4kr36wgxc0gci63gdgbqln2sap1w4bkydk1vkss2s302lg4"; fetchSubmodules = true; }
{ url = "https://github.com/EDF-TREE/BuildSysPro.git"; rev = "v3.3.0"; sha256 = "1cvcany3q9p1xndarxa2d8mmqxdnqk22476q8l61nayz5qy25x61"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/BuildingControlLib.git"; rev = "v1.0.0"; sha256 = "0ckdxway0m755mbrl94k4458sijzgknlzsrf7xs5bjymxchm8r2m"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/BuildingSystems.git"; rev = "c3070d48015ee75c1577f349cb388a498bef7270"; sha256 = "0r876wm6f1xx4cli1lqlylpl3zgaddmy06hcafbnzry9j38vbz4y"; fetchSubmodules = true; }
{ url = "https://github.com/lbl-srg/modelica-buildings.git"; rev = "v6.0.0"; sha256 = "0rnnk1clji0myzr7adggki6knbl6v8381vwnqgiz8mkxbmzdwm4f"; fetchSubmodules = true; }
{ url = "https://github.com/lbl-srg/modelica-buildings.git"; rev = "v7.0.0"; sha256 = "04n04pp4zvyg8n8h7h79c3wyk7lmn940mh7qzs0lv76g1ybypnlz"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/Chemical.git"; rev = "5645573fced862430b7b598b4d7ec1a39c7aa0fa"; sha256 = "1kh7kpmjfz55pb8553srlnrh8l00nw21xf5mjzh7nx9b1rndnmyg"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/DeployStructLib.git"; rev = "v1.0"; sha256 = "1k4zw9lnd0javw4zigxc15l58yf7xdz36b7808g65qxy89w6ksr2"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/DisHeatLib.git"; rev = "b11f53379c122870a52f2da9b1705d2c911cd21d"; sha256 = "1vm96a4z0b40r0nisxrrzyvan4yphjdkx4ad655phva2636xb5rr"; fetchSubmodules = true; }
{ url = "https://github.com/AHaumer/DriveControl.git"; rev = "b7233fd97a92867bb4ec2c3647c7f7e888398644"; sha256 = "0nyp1n8wrkjzfypsmjjzac0g9p4wbc1cxxr040fj20bqdg9l3h1b"; fetchSubmodules = true; }
{ url = "https://github.com/christiankral/ElectroMechanicalDrives.git"; rev = "v2.2.0"; sha256 = "0012phmn1y9fgpph45lwbjk0yhm5czidf2z6khm8lddvk93wf31b"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/ExternData.git"; rev = "v2.5.0"; sha256 = "19dsyq1mk5vl54fqaffzqafm5w94l011cy7pg16c7i933dbqnkki"; fetchSubmodules = true; }
{ url = "https://github.com/modelica/ExternalMedia.git"; rev = "6138312c96142ff3c01190147e6277991bfa2fca"; sha256 = "1d9g2hbdvgz13j7kdi1kglkkllj9f00x3dwdp5piyypvs464jsn5"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/ExternalMemoryLib.git"; rev = "6488d5815bda23c665123baa916789e283e16d2c"; sha256 = "06y1i5w690b3b9x23nzls8y67fl7yd7bn4xl5j0dmyi4qx33aqda"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/FMITest.git"; rev = "a67a276083f4010b249802ad8fc70dc30c09adfd"; sha256 = "0mg8jlvlwql2nsjiy7c3rdibv73bkfk149ac0450d5pc0hfn9mln"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/FailureModes.git"; rev = "v1.2.1"; sha256 = "1z8bwrld1rkydgssab5gnrd76frrbky8qxi1lvlaf2jidj6bzn1l"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/FaultTriggering.git"; rev = "v0.6.6"; sha256 = "0a08yyrbg4a49s0bgqgyds6pidx9xr47yspvl9bdak1mq34qibip"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/FeedDriveLibrary.git"; rev = "1.0.1"; sha256 = "15fi9dj6zgl0fr90cwxqjbpphj0dwrrmk74hf25j6zd85w2ycqdz"; fetchSubmodules = true; }
{ url = "https://github.com/DLR-SR/FractionalOrder.git"; rev = "99918820e346c362c3ad52d782c8215e5deeac4c"; sha256 = "1pycss6fqh86frfdbdfffjhaz09fz1558f9azgckhf8drx6ry1qs"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/Greenhouses-Library.git"; rev = "89ae0e8097eb0751abce2013d304fa5f9c09b885"; sha256 = "1q77xj6aysqsn3d7kjmcq7dihbw18iqm35ifzdi75xgf3cgwla4f"; fetchSubmodules = true; }
{ url = "https://github.com/christiankral/HanserModelica.git"; rev = "v1.1.0"; sha256 = "0zwkrhg2y42m18p4z51izrickiv1vikgz0z7fpjia4dbppckav8i"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/HelmholtzMedia.git"; rev = "3b4a4bca94d388744b2d045344ea2f9b0b4d405b"; sha256 = "17fzpan89075vb5vbhw5ylgxcdsmj2vjnmmka7cgzh06izb69nvh"; fetchSubmodules = true; }
{ url = "https://github.com/ibpsa/modelica-ibpsa.git"; rev = "v3.0.0"; sha256 = "0xwgfndlw76zfmiiqadl85l9na9igsqlmfcawx526sdw2lhhgics"; fetchSubmodules = true; }
{ url = "https://github.com/open-ideas/IDEAS.git"; rev = "v2.1.0"; sha256 = "0xp0zg6ib5536d5vl361lsn5w5faqdf6djhcmfxns629wjima8rn"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/IndustrialControlSystems.git"; rev = "v1.1.0"; sha256 = "1nvgx94iy1pws0768anrl7ssjlzslb5mbp21j7xvf6wpqfmj0npc"; fetchSubmodules = true; }
{ url = "https://github.com/christiankral/KeyWordIO.git"; rev = "v0.9.0"; sha256 = "10kvj6zn2r6m3403ja8nkkxbfcchkz0pfk3g70ibr76zivxb5nim"; fetchSubmodules = true; }
{ url = "https://github.com/FishSim/LibRAS.git"; rev = "fca9de50a484a2213f3ca1b39e275c237c471688"; sha256 = "0w1c87sifq8klq0f2l70qxjrlvahyxy1cx9rln80rni4d427yc1k"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/LinearMPC.git"; rev = "v1.0"; sha256 = "1crj60i5f33l9pgip0xbv6ankcga7px0644cj7c2wnzn1fjmn2k8"; fetchSubmodules = true; }
{ url = "https://github.com/looms-polimi/MEV.git"; rev = "v1.0.1"; sha256 = "1a7ih9lc01wzaq8a8aznggpi4aqnczyzq49q5hc4fqvmfwl7l0j3"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/ModPowerSystems.git"; rev = "df3afce27d5e935c4111f392275744a655abe216"; sha256 = "1b1fikm92lv6gj82imka3hxbjwv04i4h33y69yhcxdpqa6z6hm4z"; fetchSubmodules = true; }
{ url = "https://github.com/OpenModelica/OpenModelica-ModelicaStandardLibrary.git"; rev = "4a91d52248b0f17415bba1d58881fc730bd94215"; sha256 = "19caxz6hvlrsls3b2387a24zwwnykbb138jpb42gwpy8jlh93yzi"; fetchSubmodules = true; }
{ url = "https://github.com/OpenModelica/OpenModelica-ModelicaStandardLibrary.git"; rev = "cab27240a4a3ed4ea137226f056bbc0d79543f7a"; sha256 = "06y911i2hs7hg4ykhb8wngvxhwnaww8rsakwa7ssd047a7glzsb0"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/Modelica-Arduino.git"; rev = "v0.1.0"; sha256 = "1n34dksqhrn1synv2mp2ifk4dxyhp15f5v1jb1b3dbw9n19951qb"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/Modelica-GNU_ScientificLibrary.git"; rev = "9235ab28bdd7f0fe3e7abba48af53d73332858ec"; sha256 = "168g9gg12lfa863ifs41bnx6yd0yyjnal6986dgpm51dj5arw6id"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/Modelica-MVEM.git"; rev = "v1.0.1"; sha256 = "1p68691dnl06lgwm4bl9g036brn4vl7m5x3gq4rxc291339frixk"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/ModelicaADS.git"; rev = "v1.0.1"; sha256 = "0fhxrl07d7v3wa79d30psm1gxydc0p7s2akfirdx6dai0633skp9"; fetchSubmodules = true; }
{ url = "https://github.com/xogeny/ModelicaBook.git"; rev = "v0.6.0"; sha256 = "0yqbll6p738yvpi1x11cjngpz2glda07mljrkjlm23p7l53x63dc"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-compliance/compliance.git"; rev = "8a91e75d8a26acc4de30fc0e5d5e9db83c970bd6"; sha256 = "1cym1wlgsvfrryq8zqzzrgs4wam1l7pc20q07hk3d615nhq21lg6"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/ModelicaDFR.git"; rev = "37a441934d05330cf3d13e9ec551954d27eca84c"; sha256 = "13rpcs8cl9x15vi655150zmhmg1iaxpzvxrl3rqif46zpl5dhlj2"; fetchSubmodules = true; }
{ url = "https://github.com/modelica/Modelica_DeviceDrivers.git"; rev = "v1.8.2"; sha256 = "16c0p9zn0qrraz59ivinibmikdd251plm1vqngznzhksjwvz6bja"; fetchSubmodules = true; }
{ url = "https://github.com/modelica/Modelica_LinearSystems2.git"; rev = "v2.3.5"; sha256 = "0rzicynqgayydxqynnairxk7ybg4alv1xnfz8cgkrpicl2g9bacg"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/Modelica_Requirements.git"; rev = "a427b5cb7997e9036c577d219e6b8a5d0c28389a"; sha256 = "1ihx46kifnfi9kw1g8nmd9sarl766whbzdk6a44alczsya4gg45k"; fetchSubmodules = true; }
{ url = "https://github.com/modelica/Modelica_Synchronous.git"; rev = "c8350276bfd945086962cf4150ba941b9c57ed13"; sha256 = "12ad7fpjy50ky3lvl65r9d5xvlzvw5yqdnbp4rsgl3qw7s3wrmja"; fetchSubmodules = true; }
{ url = "https://github.com/jwindahlModelon/MultiPhaseMixtureMedia.git"; rev = "0bda0c58af6384f8e0edf7aa7520afb369af3e38"; sha256 = "11bqm69504bh4h05dxlwdmjfxwls06mr49cz47kl8jmrygkfi4i2"; fetchSubmodules = true; }
{ url = "https://github.com/OpenIPSL/OpenIPSL.git"; rev = "v1.5.0"; sha256 = "09xrcz0rdxdy220ki5zyl7920y0a4lg24p0aibna4ad15vszhhwj"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/Optimisers.git"; rev = "e33c69edaad6dad8029167b0ca00533964a6fe37"; sha256 = "0hcxsrr2n4fzaxdjvgvqayz38kpfk86cclvg5pzcfmjc5bznb8bs"; fetchSubmodules = true; }
{ url = "https://github.com/lochel/PNlib.git"; rev = "059545d48dd9ceeccfa3b4e47689ec8dd334dcd8"; sha256 = "1a0hxkgsi4klw9c8zav1dy2p1c85ald29gx82hfacwv55xl9f127"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/PVSystems.git"; rev = "v0.6.2"; sha256 = "0vcgvdaqfbn46lpzk0kvsif3d55wf8yzhkbdpf5zv04kv7zw25w9"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/PhotoVoltaics.git"; rev = "v1.6.0"; sha256 = "0zqx77z217iln3vfxn2v3c2jl0jz5kgcd96ylvimjnwr30mxr09n"; fetchSubmodules = true; }
{ url = "https://github.com/MarekMatejak/Physiolibrary.git"; rev = "v2.3.1"; sha256 = "0nxfw63m278gaff18zz29n2s1vk4kwdbv2qvbjmcq86fl1i5b3bg"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/Physiomodel.git"; rev = "v1.0.0"; sha256 = "1sdhv5qgjqv3zdq57pkkrh04ainwv9n5zqd8mb9a3ybjmwdjf6f9"; fetchSubmodules = true; }
{ url = "https://github.com/dzimmer/PlanarMechanics.git"; rev = "55224a9e76de8aa7f708236bd4d7dee624ecba50"; sha256 = "0hf7vi44adss86x5ahk5if7bdjgw773d8mb3d8ianq12g8azycyd"; fetchSubmodules = true; }
{ url = "https://github.com/PowerGrids/PowerGrids.git"; rev = "v1.0.0"; sha256 = "06bx8mqvmizhfwg99djdfgh2mblc4wzmg0zq4ilrp586jwfninmz"; fetchSubmodules = true; }
{ url = "https://github.com/modelica/PowerSystems.git"; rev = "v1.0.0"; sha256 = "1xwhwich7gi6vl33zl2r78xdjklchgkjcnvww6390j20l1wjznkn"; fetchSubmodules = true; }
{ url = "https://github.com/modelica/PowerSystems.git"; rev = "f0721333f4875143565147a7d043bee1c300873b"; sha256 = "0gbvx0gzf3akb0w7yvdxfq2y4ps91cy5b93iwnvnw7652x716813"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/RealTimeCoordinationLibrary.git"; rev = "v1.0.2"; sha256 = "0ch4la04hm059ii5wzph9gsbvqhnfqrvvpqi57qn27bm10c4la0m"; fetchSubmodules = true; }
{ url = "https://github.com/casella/ScalableTestSuite.git"; rev = "v1.11.5"; sha256 = "0bhj1q9b8d29nrbr253zszy1w1yvyizvyr3law1pqjj6mhbqmg4i"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/Servomechanisms.git"; rev = "3bf82ba5d3f31b4a0ae05f99ae690037358e153e"; sha256 = "1swka7d58wkg5pqv59lqgfi7gv6rg5vra4j6r76pn9czx9ddal8w"; fetchSubmodules = true; }
{ url = "https://github.com/SolarTherm/SolarTherm.git"; rev = "203fb5af3b95c731c7fcbe2833d51fd420e80796"; sha256 = "1bh4y4igzd0k59xm8j14p52gnlbwkiwwy6bhhyarpr361yrchn33"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/Soltermica.git"; rev = "9f7224bd89335f95dffe1ccdaa094df5a3279fdf"; sha256 = "1bif3cnwjas6x7b8ahwkm7dbrqrfdqwwa26zmdc6zrpfncl3kqd0"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/SystemDynamics.git"; rev = "2f6bd9382c5aac2aff9148cd9113a418767734b6"; sha256 = "0ii2mj6ngwjir3gzyad8wsj86pvd6wzal91nz2y7gzwj1djchb3x"; fetchSubmodules = true; }
{ url = "https://github.com/thom-marx/ThermalSeparation.git"; rev = "ffa0495ba829ecab105be4bfb3b7652625ec9c03"; sha256 = "1czm97bcrpp2jv0a0kd31a929wqlrlzdhdxvyy4w499dn20jzv1l"; fetchSubmodules = true; }
{ url = "https://github.com/casella/ThermoPower.git"; rev = "650be2c8cbd5abc3535e92b865e509073afc8aeb"; sha256 = "08ijrx8xw43dadz5s3kiwa17ax9faq2wyq9gm0vlz9ddbkj0hcaq"; fetchSubmodules = true; }
{ url = "https://openmodelica.org/git/ThermoSysPro.git"; rev = "db81ae1b5a6a85f6c6c7693244cafa6087e18ff5"; sha256 = "12fsf0xxxc1ja6vmm9ff85f8j5sg1lb7w4g57s2w3fkf4d3a7d0c"; fetchSubmodules = true; }
{ url = "https://openmodelica.org/git/ThermoSysPro.git"; rev = "5cef9acb4dedf8af6f4638a4448f08a544ebd30b"; sha256 = "0ihnz1s4rs42yis9zym9nw29ia2lqz2yx2wblc50p6f221w7q78s"; fetchSubmodules = true; }
{ url = "https://github.com/lenaRB/VVDRlib.git"; rev = "eae4981674642eddffc7f2aa3690320fcaddee0e"; sha256 = "0qxxk2xlas5mqyc1h8ndic208qj1sm5mr5y8664kv3py7i8jdqi4"; fetchSubmodules = true; }
{ url = "https://github.com/modelica/VehicleInterfaces.git"; rev = "v1.2.5"; sha256 = "044k17cpc88wprrvw03p6crm6dy6x9a6xj5104d5nln71lqz5sdq"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/WasteWater.git"; rev = "v2.1.0"; sha256 = "1dxr4m9j7b5266daj4klbrhvnkqr73sximdw9bk9v5qf0s28li99"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/WindPowerPlants.git"; rev = "v1.2.0"; sha256 = "1lyrqwsb6sm1wc7vlj72zk5cpjhhzh27fviiqayddqy2b903xish"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/ipsl.git"; rev = "v1.1.1"; sha256 = "1w2iah8c5d8n01wmxydjk0rrcxh88g8yjy2zmv403azcccq7byzp"; fetchSubmodules = true; }
{ url = "https://github.com/modelica-3rdparty/netCDF-DataReader.git"; rev = "v2.5.0"; sha256 = "1pd5xf5bgz010lryv8bj6lvlfqn9p184csiffwj8icx7rycnlcqb"; fetchSubmodules = true; }
{ url = "https://github.com/joewa/open-bldc-modelica.git"; rev = "58a83b5b36f267613de4676c95163489b1ddc2e7"; sha256 = "0wf6dn64d2psv9b3xg5227vzpk109r3dqzi4m2wwhrilaxs3v004"; fetchSubmodules = true; }
]

View file

@ -0,0 +1,39 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p bash
CWD=$PWD
chko() {
(
T=`mktemp -d`
trap "rm -rf $T" EXIT INT PIPE
cd $T
cat >check.nix <<EOF
with import <nixpkgs> {};
fetchgit `cat $CWD/../mkderivation/src-main.nix`
EOF
nix-build check.nix
cat result/libraries/Makefile.libs
)
}
getsha256() {
URL=$(echo "$1" | sed 's/^"\(.*\)"$/\1/')
REV=$(echo "$2" | sed 's/^"\(.*\)"$/\1/')
SHA=$(nix run nixpkgs.nix-prefetch-git -c nix-prefetch-git --fetch-submodules "$URL" "$REV" 2>/dev/null | sed -n 's/.*"sha256": "\(.*\)",/\1/g p')
echo "{ url = $1; rev = $2; sha256 = \"$SHA\"; fetchSubmodules = true; }"
}
OUT=src-libs.nix
echo '[' > $OUT
chko |
grep checkout-git.sh |
tr \' \" |
while read NM TGT URL BR REV ; do
echo Trying $TGT $URL $REV >&2
getsha256 $URL $REV >> $OUT || exit 1
done
echo ']' >> $OUT

View file

@ -0,0 +1,22 @@
--- a/Makefile.in
+++ b/Makefile.in
@@ -23,7 +23,7 @@
omedit-testsuite: omedit-testsuite.skip
omedit-testsuite.skip: omedit.skip testsuite-depends
$(MAKE) -f $(defaultMakefileTarget) -C OMEdit/Testsuite
-omparser: omparser.skip
+omparser: build-dirs omparser.skip
omparser.skip:
test -f $@ || $(MAKE) -C OMParser OMBUILDDIR=@OMBUILDDIR@ "host_short=@host_short@" CC="@CC@" CXX="@CXX@" CFLAGS="@CFLAGS@" CPPFLAGS="@CPPFLAGS@" CXXFLAGS="@CXXFLAGS@"
omsimulator: omsimulator.skip
@@ -134,6 +134,10 @@
INSTALL_JAVADIR = ${DESTDIR}${datadir}/omc/java
INSTALL_LOCALEDIR = ${DESTDIR}${datadir}/locale
+build-dirs:
+ mkdir -p "@OMBUILDDIR@"/lib/@host_short@/omc
+ mkdir -p "@OMBUILDDIR@"/include/omc
+
install-dirs:
@test ! "${DESTDIR}/@prefix@" -ef "@OMBUILDDIR@" || (echo Error: Install and build dirs are the same && false)
if [ "@APP@" = ".app" ]; then mkdir -p ${INSTALL_APPDIR}; fi

View file

@ -0,0 +1,28 @@
{ lib
, pkg-config
, jre8
, libuuid
, openmodelica
, mkOpenModelicaDerivation
}:
mkOpenModelicaDerivation rec {
pname = "omparser";
omdir = "OMParser";
omdeps = [ openmodelica.omcompiler ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ jre8 libuuid ];
patches = [ ./Makefile.in.patch ];
meta = with lib; {
description = "An antlr4-based parser of Modelica files from OpenModelica
suite";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,34 @@
{ lib
, qtbase
, qttools
, qmake
, wrapQtAppsHook
, openmodelica
, mkOpenModelicaDerivation
}:
mkOpenModelicaDerivation rec {
pname = "omplot";
omdir = "OMPlot";
omdeps = [ openmodelica.omcompiler ];
omautoconf = true;
nativeBuildInputs = [ qtbase qttools qmake wrapQtAppsHook ];
postPatch = ''
sed -i OMPlot/Makefile.in -e 's|bindir = @includedir@|includedir = @includedir@|'
sed -i OMPlot/OMPlot/OMPlotGUI/*.pro -e '/INCLUDEPATH +=/s|$| ../../qwt/src|'
sed -i ''$(find -name qmake.m4) -e '/^\s*LRELEASE=/ s|LRELEASE=.*$|LRELEASE=${lib.getDev qttools}/bin/lrelease|'
'';
dontUseQmakeConfigure = true;
QMAKESPEC = "linux-clang";
meta = with lib; {
description = "Plotting tool for OpenModelica-generated results files";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,40 @@
{ lib, qttools, qmake, qtwebkit, wrapQtAppsHook, readline, openmodelica, mkOpenModelicaDerivation }:
mkOpenModelicaDerivation rec {
pname = "omshell";
omdir = "OMShell";
omdeps = [ openmodelica.omcompiler ];
omautoconf = true;
nativeBuildInputs = [ qmake wrapQtAppsHook ];
buildInputs = [ readline qtwebkit ];
postPatch = with openmodelica; ''
sed -i ''$(find -name qmake.m4) -e '/^\s*LRELEASE=/ s|LRELEASE=.*$|LRELEASE=${lib.getDev qttools}/bin/lrelease|'
sed -i OMShell/OMShell/OMShellGUI/*.pro -e '
s|\$\$\[QT_INSTALL_BINS\]/lrelease|${lib.getDev qttools}/bin/lrelease|
/^\s*OMCLIBS =/ s|\$\$(OMBUILDDIR)|${omcompiler}|
/^\s*OMCINC =/ s|\$\$(OMBUILDDIR)|${omcompiler}|
'
sed -i OMShell/OMShell/OMShellGUI/OMShell.config.in -e '
s|@OMBUILDDIR@|${omcompiler}|
s|@OPENMODELICAHOME@|${omcompiler}|
'
sed -i OMShell/mosh/src/Makefile.in -e '
/^CFLAGS =/ s|-I../../../build|-I${omcompiler}|
/^LIBS =/ s|-L@OMBUILDDIR@|-L${omcompiler}|
'
'';
dontUseQmakeConfigure = true;
QMAKESPEC = "linux-clang";
meta = with lib; {
description = "Interactive OpenModelica session shell";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,26 @@
{ lib
, pkg-config
, boost
, readline
, libxml2
, openmodelica
, mkOpenModelicaDerivation
}:
mkOpenModelicaDerivation rec {
pname = "omsimulator";
omdir = "OMSimulator";
omdeps = [ openmodelica.omcompiler ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ readline libxml2 boost ];
meta = with lib; {
description = "The OpenModelica FMI & SSP-based co-simulation environment";
homepage = "https://openmodelica.org";
license = licenses.gpl3Only;
maintainers = with maintainers; [ balodja smironov ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,50 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, cmake
, libjpeg ? null
, zlib ? null
, libpng ? null
, eigen ? null
, libtiff ? null
, enableExamples ? false
, enableDocs ? false }:
stdenv.mkDerivation rec {
version = "2.0";
pname = "openmvg";
src = fetchFromGitHub {
owner = "openmvg";
repo = "openmvg";
rev = "v${version}";
sha256 = "sha256-6F/xUgZpqY+v6CpwTBhIXI4JdT8HVB0P5JzOL66AVd8=";
fetchSubmodules = true;
};
buildInputs = [ libjpeg zlib libpng eigen libtiff ];
nativeBuildInputs = [ cmake pkg-config ];
cmakeFlags = [
"-DCMAKE_CXX_FLAGS=-std=c++11"
"-DOpenMVG_BUILD_EXAMPLES=${if enableExamples then "ON" else "OFF"}"
"-DOpenMVG_BUILD_DOC=${if enableDocs then "ON" else "OFF"}"
];
cmakeDir = "./src";
dontUseCmakeBuildDir = true;
# This can be enabled, but it will exhause virtual memory on most machines.
enableParallelBuilding = false;
# Without hardeningDisable, certain flags are passed to the compile that break the build (primarily string format errors)
hardeningDisable = [ "all" ];
meta = {
broken = (stdenv.isLinux && stdenv.isAarch64);
description = "A library for computer-vision scientists and targeted for the Multiple View Geometry community";
homepage = "https://openmvg.readthedocs.io/en/latest/";
license = lib.licenses.mpl20;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ mdaiter ];
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses
, libiconv, Security }:
rustPlatform.buildRustPackage rec {
version = "0.6.3";
pname = "rink";
src = fetchFromGitHub {
owner = "tiffany352";
repo = "rink-rs";
rev = "v${version}";
sha256 = "sha256-AhC3c6CpV0tlD6d/hFWt7hGj2UsXsOCeujkRSDlpvCM=";
};
cargoSha256 = "sha256-Xo5iYwL4Db+GWMl5UXbPmj0Y0PJYR4Q0aUGnYCd+NB8=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ ncurses ]
++ (if stdenv.isDarwin then [ libiconv Security ] else [ openssl ]);
# Some tests fail and/or attempt to use internet servers.
doCheck = false;
meta = with lib; {
description = "Unit-aware calculator";
homepage = "https://rinkcalc.app";
license = with licenses; [ mpl20 gpl3Plus ];
maintainers = with maintainers; [ sb0 Br1ght0ne ];
};
}

View file

@ -0,0 +1,149 @@
{ lib
, stdenv
, fetchurl
, fetchpatch
, cmake
, pcre
, pkg-config
, python2
, libX11
, libXpm
, libXft
, libXext
, libGLU
, libGL
, zlib
, libxml2
, lz4
, xz
, gsl_1
, xxHash
, Cocoa
, OpenGL
, noSplash ? false
}:
stdenv.mkDerivation rec {
pname = "root";
version = "5.34.38";
src = fetchurl {
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
sha256 = "1ln448lszw4d6jmbdphkr2plwxxlhmjkla48vmmq750xc1lxlfrc";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ pcre python2 zlib libxml2 lz4 xz gsl_1 xxHash ]
++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
;
patches = [
./sw_vers_root5.patch
# prevents rootcint from looking in /usr/includes and such
./purify_include_paths_root5.patch
# disable dictionary generation for stuff that includes libc headers
# our glibc requires a modern compiler
./disable_libc_dicts_root5.patch
(fetchpatch {
name = "root5-gcc9-fix.patch";
url = "https://github.com/root-project/root/commit/348f30a6a3b5905ef734a7bd318bc0ee8bca6dc9.diff";
sha256 = "0dvrsrkpacyn5z87374swpy7aciv9a8s6m61b4iqd7a956r67rn3";
})
(fetchpatch {
name = "root5-gcc10-fix.patch";
url = "https://github.com/root-project/root/commit/3c243b18768d3c3501faf3ca4e4acfc071021350.diff";
sha256 = "1hjmgnp4zx6im8ps78673x0rrhmfyy1nffhgxjlfl1r2z8cq210z";
})
];
preConfigure = ''
# binutils 2.37 fixes
fixupList=(
cint/demo/gl/make0
cint/demo/exception/Makefile
cint/demo/makecint/KRcc/Makefile
cint/demo/makecint/Stub2/Make2
cint/demo/makecint/Array/Makefile
cint/demo/makecint/DArray/Makefile
cint/demo/makecint/ReadFile/Makefile
cint/demo/makecint/stl/Makefile
cint/demo/makecint/Stub2/Make1
cint/cint/include/makemat
cint/cint/lib/WildCard/Makefile
cint/cint/include/make.arc
cint/cint/lib/qt/Makefile
cint/cint/lib/pthread/Makefile
graf2d/asimage/src/libAfterImage/Makefile.in
)
for toFix in "''${fixupList[@]}"; do
substituteInPlace "$toFix" --replace "clq" "cq"
done
patchShebangs build/unix/
ln -s ${lib.getDev stdenv.cc.libc}/include/AvailabilityMacros.h cint/cint/include/
# __malloc_hook is deprecated
substituteInPlace misc/memstat/src/TMemStatHook.cxx \
--replace "defined(R__GNU) && (defined(R__LINUX) || defined(__APPLE__))" \
"defined(R__GNU) && (defined(__APPLE__))"
''
# Fix CINTSYSDIR for "build" version of rootcint
# This is probably a bug that breaks out-of-source builds
+ ''
substituteInPlace cint/cint/src/loadfile.cxx\
--replace 'env = "cint";' 'env = "'`pwd`'/cint";'
'' + lib.optionalString noSplash ''
substituteInPlace rootx/src/rootx.cxx --replace "gNoLogo = false" "gNoLogo = true"
'';
cmakeFlags = [
"-Drpath=ON"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
"-DCMAKE_CXX_FLAGS=-std=c++11"
"-Dalien=OFF"
"-Dbonjour=OFF"
"-Dcastor=OFF"
"-Dchirp=OFF"
"-Ddavix=OFF"
"-Ddcache=OFF"
"-Dfftw3=OFF"
"-Dfitsio=OFF"
"-Dfortran=OFF"
"-Dgfal=OFF"
"-Dgsl_shared=ON"
"-Dgviz=OFF"
"-Dhdfs=OFF"
"-Dkrb5=OFF"
"-Dldap=OFF"
"-Dmathmore=ON"
"-Dmonalisa=OFF"
"-Dmysql=OFF"
"-Dodbc=OFF"
"-Dopengl=ON"
"-Doracle=OFF"
"-Dpgsql=OFF"
"-Dpythia6=OFF"
"-Dpythia8=OFF"
"-Drfio=OFF"
"-Dsqlite=OFF"
"-Dssl=OFF"
"-Dxml=ON"
"-Dxrootd=OFF"
]
++ lib.optional stdenv.isDarwin "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks";
setupHook = ./setup-hook.sh;
meta = with lib; {
homepage = "https://root.cern.ch/";
description = "A data analysis framework";
platforms = platforms.unix;
maintainers = with maintainers; [ veprbl ];
license = licenses.lgpl21;
};
}

View file

@ -0,0 +1,192 @@
{ stdenv
, lib
, fetchurl
, fetchpatch
, makeWrapper
, cmake
, git
, ftgl
, gl2ps
, glew
, gsl
, lapack
, libX11
, libXpm
, libXft
, libXext
, libGLU
, libGL
, libxml2
, llvm_9
, lz4
, xz
, openblas
, pcre
, nlohmann_json
, pkg-config
, python
, xxHash
, zlib
, zstd
, libAfterImage
, giflib
, libjpeg
, libtiff
, libpng
, tbb
, Cocoa
, CoreSymbolication
, OpenGL
, noSplash ? false
}:
stdenv.mkDerivation rec {
pname = "root";
version = "6.24.06";
src = fetchurl {
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
sha256 = "sha256-kH9p9LrKHk8w7rSXlZjKdZm2qoA8oEboDiW2u6oO9SI=";
};
nativeBuildInputs = [ makeWrapper cmake pkg-config git ];
buildInputs = [
ftgl
gl2ps
glew
pcre
zlib
zstd
lapack
libxml2
llvm_9
lz4
xz
gsl
openblas
xxHash
libAfterImage
giflib
libjpeg
libtiff
libpng
nlohmann_json
python.pkgs.numpy
tbb
]
++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
++ lib.optionals (stdenv.isDarwin) [ Cocoa CoreSymbolication OpenGL ]
;
patches = [
./sw_vers.patch
# Fix builtin_llvm=OFF support
(fetchpatch {
url = "https://github.com/root-project/root/commit/0cddef5d3562a89fe254e0036bb7d5ca8a5d34d2.diff";
excludes = [ "interpreter/cling/tools/plugins/clad/CMakeLists.txt" ];
sha256 = "sha256-VxWUbxRHB3O6tERFQdbGI7ypDAZD3sjSi+PYfu1OAbM=";
})
];
# Fix build against vanilla LLVM 9
postPatch = ''
sed \
-e '/#include "llvm.*RTDyldObjectLinkingLayer.h"/i#define private protected' \
-e '/#include "llvm.*RTDyldObjectLinkingLayer.h"/a#undef private' \
-i interpreter/cling/lib/Interpreter/IncrementalJIT.h
'';
preConfigure = ''
rm -rf builtins/*
substituteInPlace cmake/modules/SearchInstalledSoftware.cmake \
--replace 'set(lcgpackages ' '#set(lcgpackages '
# Don't require textutil on macOS
: > cmake/modules/RootCPack.cmake
# Hardcode path to fix use with cmake
sed -i cmake/scripts/ROOTConfig.cmake.in \
-e '1iset(nlohmann_json_DIR "${nlohmann_json}/lib/cmake/nlohmann_json/")'
patchShebangs build/unix/
'' + lib.optionalString noSplash ''
substituteInPlace rootx/src/rootx.cxx --replace "gNoLogo = false" "gNoLogo = true"
'' + lib.optionalString stdenv.isDarwin ''
# Eliminate impure reference to /System/Library/PrivateFrameworks
substituteInPlace core/CMakeLists.txt \
--replace "-F/System/Library/PrivateFrameworks" ""
'';
cmakeFlags = [
"-Drpath=ON"
"-DCMAKE_INSTALL_BINDIR=bin"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
"-Dbuiltin_llvm=OFF"
"-Dbuiltin_nlohmannjson=OFF"
"-Dbuiltin_openui5=OFF"
"-Dalien=OFF"
"-Dbonjour=OFF"
"-Dcastor=OFF"
"-Dchirp=OFF"
"-Dclad=OFF"
"-Ddavix=OFF"
"-Ddcache=OFF"
"-Dfail-on-missing=ON"
"-Dfftw3=OFF"
"-Dfitsio=OFF"
"-Dfortran=OFF"
"-Dimt=ON"
"-Dgfal=OFF"
"-Dgviz=OFF"
"-Dhdfs=OFF"
"-Dhttp=ON"
"-Dkrb5=OFF"
"-Dldap=OFF"
"-Dmonalisa=OFF"
"-Dmysql=OFF"
"-Dodbc=OFF"
"-Dopengl=ON"
"-Doracle=OFF"
"-Dpgsql=OFF"
"-Dpythia6=OFF"
"-Dpythia8=OFF"
"-Drfio=OFF"
"-Droot7=OFF"
"-Dsqlite=OFF"
"-Dssl=OFF"
"-Dtmva=ON"
"-Dvdt=OFF"
"-Dwebgui=OFF"
"-Dxml=ON"
"-Dxrootd=OFF"
]
++ lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${lib.getDev stdenv.cc.libc}/include"
++ lib.optionals stdenv.isDarwin [
"-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks"
"-DCMAKE_DISABLE_FIND_PACKAGE_Python2=TRUE"
# fatal error: module map file '/nix/store/<hash>-Libsystem-osx-10.12.6/include/module.modulemap' not found
# fatal error: could not build module '_Builtin_intrinsics'
"-Druntime_cxxmodules=OFF"
];
postInstall = ''
for prog in rootbrowse rootcp rooteventselector rootls rootmkdir rootmv rootprint rootrm rootslimtree; do
wrapProgram "$out/bin/$prog" \
--set PYTHONPATH "$out/lib" \
--set ${lib.optionalString stdenv.isDarwin "DY"}LD_LIBRARY_PATH "$out/lib"
done
'';
setupHook = ./setup-hook.sh;
meta = with lib; {
homepage = "https://root.cern.ch/";
description = "A data analysis framework";
platforms = platforms.unix;
maintainers = [ maintainers.veprbl ];
license = licenses.lgpl21;
};
}

View file

@ -0,0 +1,27 @@
diff --git a/cint/ROOT/CMakeLists.txt b/cint/ROOT/CMakeLists.txt
--- a/cint/ROOT/CMakeLists.txt
+++ b/cint/ROOT/CMakeLists.txt
@@ -47,21 +47,13 @@ set(CINTSTLDLLHEADERS
${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdcxxfunc.h
)
set(CINTINCDLLNAMES
- stdfunc
+# stdfunc
# stdcxxfunc
)
set(CINTINCDLLHEADERS
- ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdfunc.h
+# ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdfunc.h
# ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdcxxfunc.h
)
-if(NOT WIN32)
- set(CINTSTLDLLNAMES ${CINTSTLDLLNAMES} valarray)
- set(CINTSTLDLLHEADERS ${CINTSTLDLLHEADERS} ${CINTDLLDIR}/vary.h)
- set(CINTINCDLLNAMES ${CINTINCDLLNAMES} posix ipc)
- set(CINTINCDLLHEADERS ${CINTINCDLLHEADERS}
- ${CMAKE_SOURCE_DIR}/cint/cint/lib/posix/exten.h
- ${CMAKE_SOURCE_DIR}/cint/cint/lib/ipc/ipcif.h)
-endif()
set(CINTBUILDLOADER
vector

View file

@ -0,0 +1,204 @@
diff --git a/cint/cint/src/loadfile.cxx b/cint/cint/src/loadfile.cxx
--- a/cint/cint/src/loadfile.cxx
+++ b/cint/cint/src/loadfile.cxx
@@ -1365,92 +1365,6 @@ int G__statfilename(const char *filenamein, struct stat *statBuf,
}
}
#endif /* G__EDU_VERSION */
-
-#ifdef G__VISUAL
- /**********************************************
- * try /msdev/include
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- workname.Format("/msdev/include/%s%s",filename(),addpost[i2]);
- res = stat( workname, statBuf );
- if (res==0) {
- if (fullPath) fullPath->Swap(workname);
- return res;
- }
- }
-#endif /* G__VISUAL */
-
-#ifdef G__SYMANTEC
- /**********************************************
- * try /sc/include
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- workname.Format("/sc/include/%s%s",filename(),addpost[i2]);
- res = stat( workname, statBuf );
- if (res==0) {
- if (fullPath) fullPath->Swap(workname);
- return res;
- }
- }
-#endif // G__SYMANTEC
-
-#ifndef G__WIN32
- /**********************************************
- * try /usr/include/filename
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- workname.Format("/usr/include/%s%s",filename(),addpost[i2]);
- res = stat( workname, statBuf );
- if (res==0) {
- if (fullPath) fullPath->Swap(workname);
- return res;
- }
- }
-#endif
-
-#ifdef __GNUC__
- /**********************************************
- * try /usr/include/g++/filename
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- workname.Format("/usr/include/g++/%s%s",filename(),addpost[i2]);
- res = stat( workname, statBuf );
- if (res==0) {
- if (fullPath) fullPath->Swap(workname);
- return res;
- }
- }
-#endif /* __GNUC__ */
-
-#ifndef G__WIN32
- /* #ifdef __hpux */
- /**********************************************
- * try /usr/include/CC/filename
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- workname.Format("/usr/include/CC/%s%s",filename(),addpost[i2]);
- res = stat( workname, statBuf );
- if (res==0) {
- if (fullPath) fullPath->Swap(workname);
- return res;
- }
- }
-#endif
-
-#ifndef G__WIN32
- /**********************************************
- * try /usr/include/codelibs/filename
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- workname.Format("/usr/include/codelibs/%s%s"
- ,filename(),addpost[i2]);
- res = stat( workname, statBuf );
- if (res==0) {
- if (fullPath) fullPath->Swap(workname);
- return res;
- }
- }
-#endif
}
return -1;
}
@@ -1960,107 +1874,6 @@ int G__loadfile(const char *filenamein)
}
if(G__ifile.fp) break;
#endif /* G__EDU_VERSION */
-
-#ifdef G__VISUAL
- /**********************************************
- * try /msdev/include
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- G__snprintf(G__ifile.name,G__MAXFILENAME,"/msdev/include/%s%s",filename(),addpost[i2]);
-#ifndef G__WIN32
- G__ifile.fp = fopen(G__ifile.name,"r");
-#else
- G__ifile.fp = fopen(G__ifile.name,"rb");
-#endif
- G__globalcomp=G__store_globalcomp;
- }
- if(G__ifile.fp) break;
-#endif /* G__VISUAL */
-
-#ifdef G__SYMANTEC
- /**********************************************
- * try /sc/include
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- G__snprintf(G__ifile.name,G__MAXFILENAME,"/sc/include/%s%s",filename(),addpost[i2]);
-#ifndef G__WIN32
- G__ifile.fp = fopen(G__ifile.name,"r");
-#else
- G__ifile.fp = fopen(G__ifile.name,"rb");
-#endif
- G__globalcomp=G__store_globalcomp;
- }
- if(G__ifile.fp) break;
-#endif /* G__SYMANTEC */
-
-#ifndef G__WIN32
- /**********************************************
- * try /usr/include/filename
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/%s%s",filename(),addpost[i2]);
-#ifndef G__WIN32
- G__ifile.fp = fopen(G__ifile.name,"r");
-#else
- G__ifile.fp = fopen(G__ifile.name,"rb");
-#endif
- G__globalcomp=G__store_globalcomp;
- }
- if(G__ifile.fp) break;
-#endif
-
-#ifdef __GNUC__
- /**********************************************
- * try /usr/include/g++/filename
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/g++/%s%s",filename(),addpost[i2]);
-#ifndef G__WIN32
- G__ifile.fp = fopen(G__ifile.name,"r");
-#else
- G__ifile.fp = fopen(G__ifile.name,"rb");
-#endif
- G__globalcomp=G__store_globalcomp;
- }
- if(G__ifile.fp) break;
-#endif /* __GNUC__ */
-
-#ifndef G__WIN32
-/* #ifdef __hpux */
- /**********************************************
- * try /usr/include/CC/filename
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/CC/%s%s",filename(),addpost[i2]);
-#ifndef G__WIN32
- G__ifile.fp = fopen(G__ifile.name,"r");
-#else
- G__ifile.fp = fopen(G__ifile.name,"rb");
-#endif
- G__globalcomp=G__store_globalcomp;
- }
- if(G__ifile.fp) break;
-/* #endif __hpux */
-#endif
-
-#ifndef G__WIN32
-/* #ifdef __hpux */
- /**********************************************
- * try /usr/include/codelibs/filename
- **********************************************/
- if('\0'!=G__cintsysdir[0]) {
- G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/codelibs/%s%s"
- ,filename(),addpost[i2]);
-#ifndef G__WIN32
- G__ifile.fp = fopen(G__ifile.name,"r");
-#else
- G__ifile.fp = fopen(G__ifile.name,"rb");
-#endif
- G__globalcomp=G__store_globalcomp;
- }
- if(G__ifile.fp) break;
-/* #endif __hpux */
-#endif
}
}

View file

@ -0,0 +1,13 @@
thisroot () {
# Workaround thisroot.sh dependency on man
if [ -z "${MANPATH-}" ]; then
MANPATH=:
fi
local oldOpts="-u"
shopt -qo nounset || oldOpts="+u"
set +u
source @out@/bin/thisroot.sh
set "$oldOpts"
}
postHooks+=(thisroot)

View file

@ -0,0 +1,87 @@
diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
--- a/cmake/modules/SetUpMacOS.cmake
+++ b/cmake/modules/SetUpMacOS.cmake
@@ -28,17 +28,10 @@ if(CMAKE_VERSION VERSION_LESS 3.14.4)
endif()
if (CMAKE_SYSTEM_NAME MATCHES Darwin)
- EXECUTE_PROCESS(COMMAND sw_vers "-productVersion"
- COMMAND cut -d . -f 1-2
- OUTPUT_VARIABLE MACOSX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
-
MESSAGE(STATUS "Found a macOS system ${MACOSX_VERSION}")
- if(MACOSX_VERSION VERSION_GREATER 10.7 AND ${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
set(libcxx ON CACHE BOOL "Build using libc++" FORCE)
- endif()
- if(MACOSX_VERSION VERSION_GREATER 10.4)
#TODO: check haveconfig and rpath -> set rpath true
#TODO: check Thread, define link command
#TODO: more stuff check configure script
@@ -57,22 +50,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -m64")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
- else()
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
- SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -m32")
endif()
- endif()
-
- if(MACOSX_VERSION VERSION_GREATER 10.6)
- set(MACOSX_SSL_DEPRECATED ON)
- endif()
- if(MACOSX_VERSION VERSION_GREATER 10.7)
- set(MACOSX_ODBC_DEPRECATED ON)
- endif()
- if(MACOSX_VERSION VERSION_GREATER 10.8)
- set(MACOSX_GLU_DEPRECATED ON)
- endif()
if (CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -W -Wshadow -Wall -Woverloaded-virtual -fsigned-char -fno-common")
@@ -130,7 +108,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
endif()
#---Set Linker flags----------------------------------------------------------------------
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mmacosx-version-min=${MACOSX_VERSION}")
else (CMAKE_SYSTEM_NAME MATCHES Darwin)
MESSAGE(FATAL_ERROR "There is no setup for this this Apple system up to now. Don't know waht to do. Stop cmake at this point.")
endif (CMAKE_SYSTEM_NAME MATCHES Darwin)
diff a/config/root-config.in b/config/root-config.in
--- a/config/root-config.in
+++ b/config/root-config.in
@@ -312,12 +312,6 @@ macosxicc)
;;
macosx64|macosxarm64)
# MacOS X with gcc (GNU cc v4.x) in 64 bit mode
- macosx_major=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 1 | sed -e 's/^[[:space:]]*//'`
- macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
- # cannot find the one linked to libGraf if relocated after built
- if [ $macosx_major -eq 10 -a $macosx_minor -le 4 ]; then
- rootlibs="$rootlibs -lfreetype"
- fi
auxcflags="${cxxversionflag} -m64"
auxldflags="-m64"
auxlibs="-lm -ldl"
@@ -378,18 +372,11 @@ freebsd* | openbsd* | linux*)
done
;;
macosx*)
- if [ \( $macosx_major -eq 10 -a $macosx_minor -ge 5 \) -o $macosx_major -gt 10 ]; then
auxcflags="-pthread $auxcflags"
auxlibs="-lpthread $auxlibs"
- else
- auxcflags="-D_REENTRANT $auxcflags"
- auxlibs="-lpthread $auxlibs"
- fi
for f in $features ; do
if test "x$f" = "xrpath" ; then
- if [ \( $macosx_major -eq 10 -a $macosx_minor -ge 5 \) -o $macosx_major -gt 10 ]; then
auxlibs="-Wl,-rpath,$libdir $auxlibs"
- fi
fi
if test "x$f" = "xlibcxx" ; then
auxcflags="-stdlib=libc++ $auxcflags"

View file

@ -0,0 +1,104 @@
diff --git a/build/unix/compiledata.sh b/build/unix/compiledata.sh
--- a/build/unix/compiledata.sh
+++ b/build/unix/compiledata.sh
@@ -49,7 +49,7 @@ fi
if [ "$ARCH" = "macosx" ] || [ "$ARCH" = "macosx64" ] || \
[ "$ARCH" = "macosxicc" ]; then
- macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
+ macosx_minor=7
SOEXT="so"
if [ $macosx_minor -ge 5 ]; then
if [ "x`echo $SOFLAGS | grep -- '-install_name'`" != "x" ]; then
diff --git a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
--- a/cmake/modules/SetUpMacOS.cmake
+++ b/cmake/modules/SetUpMacOS.cmake
@@ -12,25 +12,11 @@ set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /usr/X11R6)
#---------------------------------------------------------------------------------------------------------
if (CMAKE_SYSTEM_NAME MATCHES Darwin)
- EXECUTE_PROCESS(COMMAND sw_vers "-productVersion"
- COMMAND cut -d . -f 1-2
- OUTPUT_VARIABLE MACOSX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
- MESSAGE(STATUS "Found a Mac OS X System ${MACOSX_VERSION}")
- EXECUTE_PROCESS(COMMAND sw_vers "-productVersion"
- COMMAND cut -d . -f 2
- OUTPUT_VARIABLE MACOSX_MINOR OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if(MACOSX_VERSION VERSION_GREATER 10.7 AND ${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
set(libcxx ON CACHE BOOL "Build using libc++" FORCE)
- endif()
- if(${MACOSX_MINOR} GREATER 4)
#TODO: check haveconfig and rpath -> set rpath true
#TODO: check Thread, define link command
#TODO: more stuff check configure script
- execute_process(COMMAND /usr/sbin/sysctl machdep.cpu.extfeatures OUTPUT_VARIABLE SYSCTL_OUTPUT)
- if(${SYSCTL_OUTPUT} MATCHES 64)
- MESSAGE(STATUS "Found a 64bit system")
set(ROOT_ARCHITECTURE macosx64)
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -m64")
@@ -38,28 +24,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
SET(CMAKE_FORTRAN_FLAGS "${CMAKE_FORTRAN_FLAGS} -m64")
- else(${SYSCTL_OUTPUT} MATCHES 64)
- MESSAGE(STATUS "Found a 32bit system")
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
- SET(CMAKE_FORTRAN_FLAGS "${CMAKE_FORTRAN_FLAGS} -m32")
- endif(${SYSCTL_OUTPUT} MATCHES 64)
- endif()
-
- if(MACOSX_VERSION VERSION_GREATER 10.6)
- set(MACOSX_SSL_DEPRECATED ON)
- endif()
- if(MACOSX_VERSION VERSION_GREATER 10.7)
- set(MACOSX_ODBC_DEPRECATED ON)
- endif()
- if(MACOSX_VERSION VERSION_GREATER 10.8)
- set(MACOSX_GLU_DEPRECATED ON)
- set(MACOSX_KRB5_DEPRECATED ON)
- set(MACOSX_TMPNAM_DEPRECATED ON)
- endif()
- if(MACOSX_VERSION VERSION_GREATER 10.9)
- set(MACOSX_LDAP_DEPRECATED ON)
- endif()
if (CMAKE_COMPILER_IS_GNUCXX)
message(STATUS "Found GNU compiler collection")
@@ -132,7 +96,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
endif()
#---Set Linker flags----------------------------------------------------------------------
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mmacosx-version-min=${MACOSX_VERSION} -Wl,-rpath,@loader_path/../lib")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,@loader_path/../lib")
else (CMAKE_SYSTEM_NAME MATCHES Darwin)
diff --git a/config/root-config.in b/config/root-config.in
--- a/config/root-config.in
+++ b/config/root-config.in
@@ -391,7 +391,7 @@ macosxicc)
;;
macosx64)
# MacOS X with gcc (GNU cc v4.x) in 64 bit mode
- macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
+ macosx_minor=7
# cannot find the one linked to libGraf if relocated after built
if [ $macosx_minor -le 4 ]; then
rootlibs="$rootlibs -lfreetype"
diff --git a/cint/ROOT/CMakeLists.txt b/cint/ROOT/CMakeLists.txt
--- a/cint/ROOT/CMakeLists.txt
+++ b/cint/ROOT/CMakeLists.txt
@@ -232,9 +232,7 @@ foreach(_name ${CINTINCDLLNAMES})
DEPENDS ${HEADER_OUTPUT_PATH}/systypes.h
)
- if(MACOSX_MINOR GREATER 4)
set(_ExtraFlag "-D__DARWIN_UNIX03")
- endif()
add_custom_command(OUTPUT ${OutFileName}
COMMAND cint_tmp -K -w1 -z${_name} -n${OutFileName} -D__MAKECINT__ -DG__MAKECINT ${_ExtraFlag} -c-2 -Z0 ${InFileName} ${AdditionalHeaderFiles} ${CMAKE_BINARY_DIR}/cint/cint/include/sys/types.h ${CMAKE_SOURCE_DIR}/cint/cint/lib/posix/posix.h

View file

@ -0,0 +1,62 @@
{ lib
, python3
, fetchFromGitHub
, which
, wrapQtAppsHook
}:
python3.pkgs.buildPythonApplication rec {
pname = "sasview";
version = "5.0.4";
src = fetchFromGitHub {
owner = "SasView";
repo = "sasview";
rev = "v${version}";
hash = "sha256-TjcchqA6GCvkr59ZgDuGglan2RxLp+aMjJk28XhvoiY=";
};
nativeBuildInputs = [
python3.pkgs.pyqt5
wrapQtAppsHook
];
propagatedBuildInputs = with python3.pkgs; [
bumps
h5py
lxml
periodictable
pillow
pyparsing
pyqt5
qt5reactor
sasmodels
scipy
setuptools
xhtml2pdf
];
postBuild = ''
${python3.interpreter} src/sas/qtgui/convertUI.py
'';
dontWrapQtApps = true;
makeWrapperArgs = [
"\${qtWrapperArgs[@]}"
];
checkInputs = with python3.pkgs; [
pytestCheckHook
unittest-xml-reporting
];
pytestFlagsArray = [ "test" ];
meta = with lib; {
homepage = "https://www.sasview.org";
description = "Fitting and data analysis for small angle scattering data";
maintainers = with maintainers; [ rprospero ];
license = licenses.bsd3;
};
}

View file

@ -0,0 +1,33 @@
{lib, fetchPypi, buildPythonPackage, html5lib, httplib2, nose, pillow, pypdf2, reportlab}:
let
#xhtml2pdf specifically requires version "1.0b10" of html5lib
html5 = html5lib.overrideAttrs( oldAttrs: rec {
name = "${oldAttrs.pname}-${version}";
version = "1.0b10";
src = oldAttrs.src.override {
inherit version;
sha256 = "1yd068a5c00wd0ajq0hqimv7fd82lhrw0w3s01vbhy9bbd6xapqd";
};
});
in
buildPythonPackage rec {
pname = "xhtml2pdf";
version = "0.2.1";
buildInputs = [html5];
propagatedBuildInputs = [httplib2 nose pillow pypdf2 reportlab html5];
src = fetchPypi {
inherit pname version;
sha256 = "1n9r8zdk9gc2x539fq60bhszmd421ipj8g78zmsn3njvma1az9k1";
};
meta = {
description = "A pdf converter for the ReportLab Toolkit";
homepage = "https://github.com/xhtml2pdf/xhtml2pdf";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ rprospero ];
};
}

View file

@ -0,0 +1,122 @@
{ stdenv, lib, fetchFromGitLab, cmake, perl, python3, boost
, fortranSupport ? false, gfortran
, buildDocumentation ? false, fig2dev, ghostscript, doxygen
, buildJavaBindings ? false, openjdk
, buildPythonBindings ? true, python3Packages
, modelCheckingSupport ? false, libunwind, libevent, elfutils # Inside elfutils: libelf and libdw
, bmfSupport ? true, eigen
, minimalBindings ? false
, debug ? false
, optimize ? (!debug)
, moreTests ? false
, withoutBin ? false
}:
with lib;
let
optionOnOff = option: if option then "on" else "off";
in
stdenv.mkDerivation rec {
pname = "simgrid";
version = "3.31";
src = fetchFromGitLab {
domain = "framagit.org";
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "sha256-K6YkkCMxc2lqxHIwyuLiwcp3m49sqbEtOlwZh4L1YJg=";
};
propagatedBuildInputs = [ boost ];
nativeBuildInputs = [ cmake perl python3 ]
++ optionals fortranSupport [ gfortran ]
++ optionals buildJavaBindings [ openjdk ]
++ optionals buildPythonBindings [ python3Packages.pybind11 ]
++ optionals buildDocumentation [ fig2dev ghostscript doxygen ]
++ optionals bmfSupport [ eigen ]
++ optionals modelCheckingSupport [ libunwind libevent elfutils ];
outputs = [ "out" ]
++ optionals buildPythonBindings [ "python" ];
# "Release" does not work. non-debug mode is Debug compiled with optimization
cmakeBuildType = "Debug";
cmakeFlags = [
"-Denable_documentation=${optionOnOff buildDocumentation}"
"-Denable_java=${optionOnOff buildJavaBindings}"
"-Denable_python=${optionOnOff buildPythonBindings}"
"-DSIMGRID_PYTHON_LIBDIR=./" # prevents CMake to install in ${python3} dir
"-Denable_msg=${optionOnOff buildJavaBindings}"
"-Denable_fortran=${optionOnOff fortranSupport}"
"-Denable_model-checking=${optionOnOff modelCheckingSupport}"
"-Denable_ns3=off"
"-Denable_lua=off"
"-Denable_lib_in_jar=off"
"-Denable_maintainer_mode=off"
"-Denable_mallocators=on"
"-Denable_debug=on"
"-Denable_smpi=on"
"-Dminimal-bindings=${optionOnOff minimalBindings}"
"-Denable_smpi_ISP_testsuite=${optionOnOff moreTests}"
"-Denable_smpi_MPICH3_testsuite=${optionOnOff moreTests}"
"-Denable_compile_warnings=off"
"-Denable_compile_optimizations=${optionOnOff optimize}"
"-Denable_lto=${optionOnOff optimize}"
];
makeFlags = optional debug "VERBOSE=1";
# needed to run tests and to ensure correct shabangs in output scripts
preBuild = ''
patchShebangs ..
'';
# needed by tests (so libsimgrid.so is found)
preConfigure = ''
export LD_LIBRARY_PATH="$PWD/build/lib"
'';
doCheck = true;
preCheck = ''
# prevent the execution of tests known to fail
cat <<EOW >CTestCustom.cmake
SET(CTEST_CUSTOM_TESTS_IGNORE smpi-replay-multiple)
EOW
# make sure tests are built in parallel (this can be long otherwise)
make tests -j $NIX_BUILD_CORES
'';
postInstall = lib.optionalString withoutBin ''
# remove bin from output if requested.
# having a specific bin output would be cleaner but it does not work currently (circular references)
rm -rf $out/bin
'' + lib.optionalString buildPythonBindings ''
# manually install the python binding if requested.
mkdir -p $python/lib/python${lib.versions.majorMinor python3.version}/site-packages/
cp ./lib/simgrid.cpython*.so $python/lib/python${lib.versions.majorMinor python3.version}/site-packages/
'';
# improve debuggability if requested
hardeningDisable = lib.optionals debug [ "fortify" ];
dontStrip = debug;
meta = {
description = "Framework for the simulation of distributed applications";
longDescription = ''
SimGrid is a toolkit that provides core functionalities for the
simulation of distributed applications in heterogeneous distributed
environments. The specific goal of the project is to facilitate
research in the area of distributed and parallel application
scheduling on distributed computing platforms ranging from simple
network of workstations to Computational Grids.
'';
homepage = "https://simgrid.org/";
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ mickours mpoquet ];
platforms = platforms.all;
broken = stdenv.isDarwin;
};
}

View file

@ -0,0 +1,85 @@
{ lib
, fetchFromGitHub
, python3
}:
python3.pkgs.buildPythonApplication rec {
pname = "snakemake";
version = "7.8.1";
format = "setuptools";
src = fetchFromGitHub {
owner = "snakemake";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-bb6bu4IiW3zaQ3PP/wgRuIwHihC5/6ZS4YSNRk3Tu4s=";
};
propagatedBuildInputs = with python3.pkgs; [
appdirs
configargparse
connection-pool
datrie
docutils
filelock
GitPython
jinja2
jsonschema
nbformat
networkx
psutil
pulp
pygraphviz
pyyaml
ratelimiter
requests
retry
smart-open
stopit
tabulate
toposort
wrapt
yte
];
# See
# https://github.com/snakemake/snakemake/blob/main/.github/workflows/main.yml#L99
# for the current basic test suite. Tibanna and Tes require extra
# setup.
checkInputs = with python3.pkgs; [
pandas
pytestCheckHook
requests-mock
];
disabledTestPaths = [
"tests/test_tes.py"
"tests/test_tibanna.py"
"tests/test_linting.py"
];
disabledTests = [
# Tests require network access
"test_github_issue1396"
"test_github_issue1460"
];
pythonImportsCheck = [
"snakemake"
];
meta = with lib; {
homepage = "https://snakemake.github.io";
license = licenses.mit;
description = "Python-based execution environment for make-like workflows";
longDescription = ''
Snakemake is a workflow management system that aims to reduce the complexity of
creating workflows by providing a fast and comfortable execution environment,
together with a clean and readable specification language in Python style. Snakemake
workflows are essentially Python scripts extended by declarative code to define
rules. Rules describe how to create output files from input files.
'';
maintainers = with maintainers; [ helkafen renatoGarcia veprbl ];
};
}

View file

@ -0,0 +1,46 @@
{ lib
, fetchFromGitHub
, python3
}:
python3.pkgs.buildPythonApplication rec {
pname = "toil";
version = "5.6.0";
format = "setuptools";
src = python3.pkgs.fetchPypi {
inherit pname version;
sha256 = "sha256-m6tzrRCCLULO+wB8htUlt0KESLm/vdIeTzBrihnAo/I=";
};
propagatedBuildInputs = with python3.pkgs; [
addict
docker
pytz
pyyaml
enlighten
psutil
py-tes
python-dateutil
dill
];
checkInputs = with python3.pkgs; [
pytestCheckHook
];
pytestFlagsArray = [
"src/toil/test"
];
pythonImportsCheck = [
"toil"
];
meta = with lib; {
description = "Workflow engine written in pure Python";
homepage = "https://toil.ucsc-cgl.org/";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ veprbl ];
};
}

View file

@ -0,0 +1,41 @@
{ fetchurl, lib, stdenv, libxml2, freetype, libGLU, libGL, glew
, qtbase, wrapQtAppsHook, python3
, cmake, libjpeg }:
stdenv.mkDerivation rec {
pname = "tulip";
version = "5.6.1";
src = fetchurl {
url = "mirror://sourceforge/auber/${pname}-${version}_src.tar.gz";
sha256 = "1fy3nvgxv3igwc1d23zailcgigj1d0f2kkh7a5j24c0dyqz5zxmw";
};
buildInputs = [ libxml2 freetype glew libGLU libGL libjpeg qtbase python3 ];
nativeBuildInputs = [ cmake wrapQtAppsHook ];
qtWrapperArgs = [ ''--prefix PATH : ${lib.makeBinPath [ python3 ]}'' ];
# FIXME: "make check" needs Docbook's DTD 4.4, among other things.
doCheck = false;
meta = {
broken = (stdenv.isLinux && stdenv.isAarch64);
description = "A visualization framework for the analysis and visualization of relational data";
longDescription =
'' Tulip is an information visualization framework dedicated to the
analysis and visualization of relational data. Tulip aims to
provide the developer with a complete library, supporting the design
of interactive information visualization applications for relational
data that can be tailored to the problems he or she is addressing.
'';
homepage = "http://tulip.labri.fr/";
license = lib.licenses.gpl3Plus;
maintainers = [ ];
platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice
};
}

View file

@ -0,0 +1,46 @@
{ fetchsvn, lib, stdenv, cmake, qt4, libGLU, libGL }:
# ViTE 1.1 has several bugs, so use the SVN version.
let
rev = "1543";
externals = fetchsvn {
url = "svn://scm.gforge.inria.fr/svn/vite/externals";
sha256 = "1a422n3dp72v4visq5b1i21cf8sj12903sgg5v2hah3sgk02dnyz";
inherit rev;
};
in
stdenv.mkDerivation {
pname = "vite";
version = "1.2pre${rev}";
src = fetchsvn {
url = "svn://scm.gforge.inria.fr/svn/vite/trunk";
sha256 = "02479dv96h29d0w0svp42mjjrxhmv8lkkqp30w7mlx5gr2g0v7lf";
inherit rev;
};
preConfigure = ''
rm -rv externals
ln -sv "${externals}" externals
'';
nativeBuildInputs = [ cmake ];
buildInputs = [ qt4 libGLU libGL ];
NIX_LDFLAGS = "-lGLU";
meta = {
description = "Visual Trace Explorer (ViTE), a tool to visualize execution traces";
longDescription = ''
ViTE is a trace explorer. It is a tool to visualize execution
traces in Pajé or OTF format for debugging and profiling
parallel or distributed applications.
'';
homepage = "http://vite.gforge.inria.fr/";
license = lib.licenses.cecill20;
maintainers = with lib.maintainers; [ ];
platforms = lib.platforms.linux;
};
}