Replies: 1 comment
-
Okay, I kinda got most of the things with the current setup: {
lib,
stdenv,
autoPatchelfHook,
# runtime
geos,
opencv,
xercesc,
qt5,
libsForQt5,
}:
let
pname = "isis";
version = "8.3.0";
in
stdenv.mkDerivation {
inherit pname;
inherit version;
src = builtins.fetchTarball {
url = "https://anaconda.org/usgs-astrogeology/${pname}/${version}/download/linux-64/${pname}-${version}-0.tar.bz2";
sha256 = "sha256:0b0wlb9z9p5liws38bhbjvjpb2603355bwbkgv5x81p7pyf4wkdi"; # 8.3.0
};
buildInputs = [
xercesc
];
nativeBuildInputs = [
autoPatchelfHook
];
autoPatchelfIgnoreMissingDeps = [
# "libgeos.so.3.12.0"
# "libopencv_core.so.407"
# "libopencv_imgproc.so.407"
# "libqwt.so.6.2"
"libisis.so"
"libapollo.so"
"libcassini.so"
"libchandrayaan1.so"
"libclementine.so"
"libclipper.so"
"libcspice.so.67"
"libdawn.so"
"libgalileo.so"
"libhayabusa.so"
"libhayabusa2.so"
"libkaguya.so"
"liblo.so"
"liblro.so"
"libmer.so"
"libmessenger.so"
"libmex.so"
"libmgs.so"
"libmro.so"
"libnear.so"
"libnewhorizons.so"
"libodyssey.so"
"libosirisrex.so"
"librosetta.so"
"libtgo.so"
"libviking.so"
];
preBuild = ''
addAutoPatchelfSearchPath ${qt5.qtbase} ${libsForQt5.qwt}
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r . $out
ln -s ${geos}/lib/libgeos.so $out/lib/libgeos.so.3.12.0
ln -s ${opencv}/lib/libopencv_core.so $out/lib/libopencv_core.so.407
ln -s ${opencv}/lib/libopencv_imgproc.so $out/lib/libopencv_imgproc.so.407
'';
meta = with lib; {
homepage = "https://isis.astrogeology.usgs.gov";
description = "A digital image processing software package to manipulate imagery collected by current and past NASA and International planetary missions";
license = licenses.cc0;
platforms = platforms.linux;
maintainers = with maintainers; [ arunoruto ];
};
} The only thing which confuses me is the lack of the libraries listed in |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I am currently enjoying using NixOS on all of my devices and getting into packaging some applications. I thought maybe it would be a fun project to also package ISIS into nixpkgs and make it there available too! The main benefit would be to enable it to be installed anywhere you want, like it is a native CLI/GUI tool, but still keep the dependencies under control, i.e., no dependency hell like in arch.
Now, building via conda would not be feasible, since it isn't as reproducible as Nix needs it to be (solving the environment can get you different packages depending when you resolve them, or they are not found after a certain period of time). I was wondering if it would be possible to use the tarball found on anaconda to run it! I already tried to fetch and run it, but there are missing dependencies (mainly linking libraries). If someone is eager to see the beginning, here is a link to the
package.nix
file:https://github.com/arunoruto/flake/blob/5af036b25b3c4c30eb37e63154ab725a51ab71d9/pkgs/isis/package.nix (if I succeed in packaging it, I will probably move it to nixpkgs and it won't be in my repo anymore, thats the reason for the specific commit).
Hope to get some input or help on this!
Beta Was this translation helpful? Give feedback.
All reactions