From 481e1d3a77e1933d82fc66b78f7b2b42fdce91d7 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Sun, 14 Feb 2021 00:27:17 -0600 Subject: [PATCH 01/68] octave.pkgs: init Heavily based on Python's packages set. --- .../interpreters/octave/build-env.nix | 83 +++++++ .../octave/build-octave-package.nix | 113 +++++++++ .../interpreters/octave/default.nix | 231 ++++++++++-------- .../interpreters/octave/hooks/default.nix | 13 + ...ave-write-required-octave-packages-hook.sh | 17 ++ .../write-required-octave-packages-hook.sh | 17 ++ .../interpreters/octave/with-packages.nix | 6 + .../interpreters/octave/wrap-octave.nix | 16 ++ pkgs/development/interpreters/octave/wrap.sh | 132 ++++++++++ pkgs/top-level/all-packages.nix | 2 + pkgs/top-level/octave-packages.nix | 115 +++++++++ 11 files changed, 646 insertions(+), 99 deletions(-) create mode 100644 pkgs/development/interpreters/octave/build-env.nix create mode 100644 pkgs/development/interpreters/octave/build-octave-package.nix create mode 100644 pkgs/development/interpreters/octave/hooks/default.nix create mode 100644 pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh create mode 100644 pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh create mode 100644 pkgs/development/interpreters/octave/with-packages.nix create mode 100644 pkgs/development/interpreters/octave/wrap-octave.nix create mode 100644 pkgs/development/interpreters/octave/wrap.sh create mode 100644 pkgs/top-level/octave-packages.nix diff --git a/pkgs/development/interpreters/octave/build-env.nix b/pkgs/development/interpreters/octave/build-env.nix new file mode 100644 index 0000000000000..8eb70c6289457 --- /dev/null +++ b/pkgs/development/interpreters/octave/build-env.nix @@ -0,0 +1,83 @@ +{ stdenv, octave, buildEnv +, makeWrapper, texinfo +, octavePackages +, wrapOctave +, computeRequiredOctavePackages +, extraLibs ? [] +, extraOutputsToInstall ? [] +, postBuild ? "" +, ignoreCollisions ? false +}: + +# Create an octave executable that knows about additional packages +let + packages = computeRequiredOctavePackages extraLibs; + +in buildEnv { + name = "${octave.name}-env"; + paths = extraLibs ++ [ octave ]; + + inherit ignoreCollisions; + extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; + + buildInputs = [ makeWrapper texinfo wrapOctave ]; + + # During "build" we must first unlink the /share symlink to octave's /share + # Then, we can re-symlink the all of octave/share, except for /share/octave + # in env/share/octave, re-symlink everything from octave/share/octave and then + # perform the pkg install. + postBuild = '' + . "${makeWrapper}/nix-support/setup-hook" + # The `makeWrapper` used here is the one defined in + # ${makeWrapper}/nix-support/setup-hook + + if [ -L "$out/bin" ]; then + unlink $out/bin + mkdir -p "$out/bin" + cd "${octave}/bin" + for prg in *; do + if [ -x $prg ]; then + makeWrapper "${octave}/bin/$prg" "$out/bin/$prg" --set OCTAVE_SITE_INITFILE "$out/share/octave/site/m/startup/octaverc" + fi + done + cd $out + fi + + # Remove symlinks to the input tarballs, they aren't needed. + rm $out/*.tar.gz + + createOctavePackagesPath $out ${octave} + + for path in ${stdenv.lib.concatStringsSep " " packages}; do + if [ -e $path/*.tar.gz ]; then + $out/bin/octave-cli --eval "pkg local_list $out/.octave_packages; \ + pkg prefix $out/${octave.octPkgsPath} $out/${octave.octPkgsPath}; \ + pfx = pkg (\"prefix\"); \ + pkg install -nodeps -local $path/*.tar.gz" + fi + done + + # Re-write the octave-wide startup file (share/octave/site/m/startup/octaverc) + # To point to the new local_list in $out + addPkgLocalList $out ${octave} + + wrapOctavePrograms "${stdenv.lib.concatStringsSep " " packages}" + '' + postBuild; + + inherit (octave) meta; + + passthru = octave.passthru // { + interpreter = "$out/bin/octave"; + inherit octave; + env = stdenv.mkDerivation { + name = "interactive-${octave.name}-environment"; + + buildCommand = '' + echo >&2 "" + echo >&2 "*** octave 'env' attributes are intended for interactive nix-shell sessions, not for building! ***" + echo >&2 "" + exit 1 + ''; + }; + }; +} diff --git a/pkgs/development/interpreters/octave/build-octave-package.nix b/pkgs/development/interpreters/octave/build-octave-package.nix new file mode 100644 index 0000000000000..73a67769d6a6e --- /dev/null +++ b/pkgs/development/interpreters/octave/build-octave-package.nix @@ -0,0 +1,113 @@ +# Generic builder for GNU Octave libraries. +# This is a file that contains nested functions. The first, outer, function +# is the library- and package-wide details, such as the nixpkgs library, any +# additional configuration provided, and the namePrefix to use (based on the +# pname and version of Octave), the octave package, etc. + +{ lib +, stdenv +, config +, octave +, texinfo +, computeRequiredOctavePackages +, writeRequiredOctavePackagesHook +}: + +# The inner function contains information required to build the individual +# libraries. +{ fullLibName ? "${attrs.pname}-${attrs.version}" + +, src + +, dontPatch ? false +, patches ? [] +, patchPhase ? "" + +, enableParallelBuilding ? true +# Build-time dependencies for the package, which were compiled for the system compiling this. +, nativeBuildInputs ? [] + +# Build-time dependencies for the package, which may not have been compiled for the system compiling this. +, buildInputs ? [] + +# Propagate build dependencies so in case we have A -> B -> C, +# C can import package A propagated by B +# Run-time dependencies for the package. +, propagatedBuildInputs ? [] + +# Octave packages that are required at runtime for this one. +# These behave similarly to propagatedBuildInputs, where if +# package A is needed by B, and C needs B, then C also requires A. +# The main difference between these and propagatedBuildInputs is +# during the package's installation into octave, where all +# requiredOctavePackages are ALSO installed into octave. +, requiredOctavePackages ? [] + +, preBuild ? "" + +, meta ? {} + +, passthru ? {} + +, ... } @ attrs: + +let + requiredOctavePackages' = computeRequiredOctavePackages requiredOctavePackages; + +in stdenv.mkDerivation { + packageName = "${fullLibName}"; + # The name of the octave package ends up being + # "octave-version-package-version" + name = "${octave.pname}-${octave.version}-${fullLibName}"; + + # This states that any package built with the function that this returns + # will be an octave package. This is used for ensuring other octave + # packages are installed into octave during the environment building phase. + isOctavePackage = true; + + OCTAVE_HISTFILE = "/dev/null"; + + inherit src; + + inherit dontPatch patches patchPhase; + + dontConfigure = true; + + enableParallelBuilding = enableParallelBuilding; + + requiredOctavePackages = requiredOctavePackages'; + + nativeBuildInputs = [ + octave + writeRequiredOctavePackagesHook + ] + ++ nativeBuildInputs; + + buildInputs = buildInputs ++ requiredOctavePackages'; + + propagatedBuildInputs = propagatedBuildInputs ++ [ texinfo ]; + + preBuild = if preBuild == "" then + '' + # This trickery is needed because Octave expects a single directory inside + # at the top-most level of the tarball. + tar --transform 's,^,${fullLibName}/,' -cz * -f ${fullLibName}.tar.gz + '' + else + preBuild; + + buildPhase = '' + runHook preBuild + + mkdir -p $out + octave-cli --eval "pkg build $out ${fullLibName}.tar.gz" + + runHook postBuild + ''; + + # We don't install here, because that's handled when we build the environment + # together with Octave. + dontInstall = true; + + inherit meta; +} diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix index 72f3dd552de6d..0a87c1ddcf07f 100644 --- a/pkgs/development/interpreters/octave/default.nix +++ b/pkgs/development/interpreters/octave/default.nix @@ -1,4 +1,5 @@ { stdenv +, pkgs , lib # Note: either stdenv.mkDerivation or, for octaveFull, the qt-5 mkDerivation # with wrapQtAppsHook (comes from libsForQt5.callPackage) @@ -45,6 +46,11 @@ , python ? null , overridePlatforms ? null , sundials ? null +# - Packages required for building extra packages. +, newScope +, callPackage +, makeSetupHook +, makeWrapper # - Build Octave Qt GUI: , enableQt ? false , qtbase ? null @@ -60,6 +66,7 @@ }: let + # Not always evaluated blas' = if use64BitIdx then blas.override { @@ -94,118 +101,144 @@ let else null ; -in mkDerivation rec { - version = "6.2.0"; - pname = "octave"; - src = fetchurl { - url = "mirror://gnu/octave/${pname}-${version}.tar.gz"; - sha256 = "sha256-RX0f2oY0qDni/Xz8VbmL1W82tq5z0xu530Pd4wEsqnw="; + octavePackages = import ../../../top-level/octave-packages.nix { + inherit pkgs; + inherit lib stdenv fetchurl newScope; + octave = self; }; - buildInputs = [ - readline - ncurses - perl - flex - qhull - graphicsmagick - pcre - fltk - zlib - curl - blas' - lapack' - libsndfile - fftw - fftwSinglePrec - portaudio - qrupdate' - arpack' - libwebp - gl2ps - ] - ++ lib.optionals enableQt [ - qtbase - qtsvg - qscintilla - ] - ++ lib.optionals (ghostscript != null) [ ghostscript ] - ++ lib.optionals (hdf5 != null) [ hdf5 ] - ++ lib.optionals (glpk != null) [ glpk ] - ++ lib.optionals (suitesparse != null) [ suitesparse' ] - ++ lib.optionals (enableJava) [ jdk ] - ++ lib.optionals (sundials != null) [ sundials ] - ++ lib.optionals (gnuplot != null) [ gnuplot ] - ++ lib.optionals (python != null) [ python ] - ++ lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ] - ++ lib.optionals stdenv.isDarwin [ - libiconv - darwin.apple_sdk.frameworks.Accelerate - darwin.apple_sdk.frameworks.Cocoa - ] - ; - nativeBuildInputs = [ - pkg-config - gfortran - # Listed here as well because it's outputs are split - fftw - fftwSinglePrec - texinfo - ] - ++ lib.optionals (sundials != null) [ sundials ] - ++ lib.optionals enableJIT [ llvm ] - ++ lib.optionals enableQt [ - qtscript - qttools - ] - ; + wrapOctave = callPackage ./wrap-octave.nix { + octave = self; + inherit (pkgs) makeSetupHook makeWrapper; + }; + + self = mkDerivation rec { + version = "6.2.0"; + pname = "octave"; + + src = fetchurl { + url = "mirror://gnu/octave/${pname}-${version}.tar.gz"; + sha256 = "sha256-RX0f2oY0qDni/Xz8VbmL1W82tq5z0xu530Pd4wEsqnw="; + }; + + buildInputs = [ + readline + ncurses + perl + flex + qhull + graphicsmagick + pcre + fltk + zlib + curl + blas' + lapack' + libsndfile + fftw + fftwSinglePrec + portaudio + qrupdate' + arpack' + libwebp + gl2ps + ] + ++ lib.optionals enableQt [ + qtbase + qtsvg + qscintilla + ] + ++ lib.optionals (ghostscript != null) [ ghostscript ] + ++ lib.optionals (hdf5 != null) [ hdf5 ] + ++ lib.optionals (glpk != null) [ glpk ] + ++ lib.optionals (suitesparse != null) [ suitesparse' ] + ++ lib.optionals (enableJava) [ jdk ] + ++ lib.optionals (sundials != null) [ sundials ] + ++ lib.optionals (gnuplot != null) [ gnuplot ] + ++ lib.optionals (python != null) [ python ] + ++ lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ] + ++ lib.optionals stdenv.isDarwin [ + libiconv + darwin.apple_sdk.frameworks.Accelerate + darwin.apple_sdk.frameworks.Cocoa + ] + ; + nativeBuildInputs = [ + pkg-config + gfortran + # Listed here as well because it's outputs are split + fftw + fftwSinglePrec + texinfo + ] + ++ lib.optionals (sundials != null) [ sundials ] + ++ lib.optionals enableJIT [ llvm ] + ++ lib.optionals enableQt [ + qtscript + qttools + ] + ; - doCheck = !stdenv.isDarwin; + doCheck = !stdenv.isDarwin; - enableParallelBuilding = true; + enableParallelBuilding = true; - # See https://savannah.gnu.org/bugs/?50339 - F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else ""; + # See https://savannah.gnu.org/bugs/?50339 + F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else ""; - configureFlags = [ - "--with-blas=blas" - "--with-lapack=lapack" - (if use64BitIdx then "--enable-64" else "--disable-64") - ] + configureFlags = [ + "--with-blas=blas" + "--with-lapack=lapack" + (if use64BitIdx then "--enable-64" else "--disable-64") + ] ++ lib.optionals stdenv.isDarwin [ "--enable-link-all-dependencies" ] ++ lib.optionals enableReadline [ "--enable-readline" ] ++ lib.optionals stdenv.isDarwin [ "--with-x=no" ] ++ lib.optionals enableQt [ "--with-qt=5" ] ++ lib.optionals enableJIT [ "--enable-jit" ] - ; + ; - # Keep a copy of the octave tests detailed results in the output - # derivation, because someone may care - postInstall = '' - cp test/fntests.log $out/share/octave/${pname}-${version}-fntests.log || true - ''; + # Keep a copy of the octave tests detailed results in the output + # derivation, because someone may care + postInstall = '' + cp test/fntests.log $out/share/octave/${pname}-${version}-fntests.log || true + ''; - passthru = { - sitePath = "share/octave/${version}/site"; - blas = blas'; - lapack = lapack'; - qrupdate = qrupdate'; - arpack = arpack'; - suitesparse = suitesparse'; - inherit python; - inherit enableQt enableJIT enableReadline enableJava; - }; + passthru = rec { + sitePath = "share/octave/${version}/site"; + octPkgsPath = "share/octave/octave_packages"; + blas = blas'; + lapack = lapack'; + qrupdate = qrupdate'; + arpack = arpack'; + suitesparse = suitesparse'; + inherit fftw fftwSinglePrec; + inherit portaudio; + inherit jdk; + inherit python; + inherit enableQt enableJIT enableReadline enableJava; + buildEnv = callPackage ./build-env.nix { + octave = self; + inherit octavePackages wrapOctave; + inherit (octavePackages) computeRequiredOctavePackages; + }; + withPackages = import ./with-packages.nix { inherit buildEnv octavePackages; }; + pkgs = octavePackages; + interpreter = "${self}/bin/octave"; + }; - meta = { - homepage = "https://www.gnu.org/software/octave/"; - license = lib.licenses.gpl3Plus; - maintainers = with lib.maintainers; [ raskin doronbehar ]; - description = "Scientific Pragramming Language"; - # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT - broken = enableJIT; - platforms = if overridePlatforms == null then - (lib.platforms.linux ++ lib.platforms.darwin) - else overridePlatforms; + meta = { + homepage = "https://www.gnu.org/software/octave/"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ raskin doronbehar ]; + description = "Scientific Pragramming Language"; + # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT + broken = enableJIT; + platforms = if overridePlatforms == null then + (lib.platforms.linux ++ lib.platforms.darwin) + else overridePlatforms; + }; }; -} + +in self diff --git a/pkgs/development/interpreters/octave/hooks/default.nix b/pkgs/development/interpreters/octave/hooks/default.nix new file mode 100644 index 0000000000000..f47560921af3c --- /dev/null +++ b/pkgs/development/interpreters/octave/hooks/default.nix @@ -0,0 +1,13 @@ +# Hooks for building Octave packages. +{ octave +, lib +, callPackage +, makeSetupHook +}: + +rec { + writeRequiredOctavePackagesHook = callPackage ({ }: + makeSetupHook { + name = "write-required-octave-packages-hook"; + } ./write-required-octave-packages-hook.sh) {}; +} diff --git a/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh b/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh new file mode 100644 index 0000000000000..64e87d68246f1 --- /dev/null +++ b/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh @@ -0,0 +1,17 @@ +# Setup hook for writing octave packages that are run-time dependencies for +# another package to a nix-support file. +# `echo`s the full path name to the package derivation that is required. +echo "Sourcing octave-write-required-octave-packages-hook.sh" + +octaveWriteRequiredOctavePackagesPhase() { + echo "Executing octaveWriteRequiredOctavePackagesPhase" + + mkdir -p $out/nix-support + echo ${requiredOctavePackages} > $out/nix-support/required-octave-packages +} + +# Yes its a bit long... +if [ -z "${dontWriteRequiredOctavePackagesPhase-}" ]; then + echo "Using octaveWriteRequiredOctavePackagesPhase" + preDistPhases+=" octaveWriteRequiredOctavePackagesPhase" +fi diff --git a/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh b/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh new file mode 100644 index 0000000000000..032ea398ac568 --- /dev/null +++ b/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh @@ -0,0 +1,17 @@ +# Setup hook for writing octave packages that are run-time dependencies for +# another package to a nix-support file. +# `echo`s the full path name to the package derivation that is required. +echo "Sourcing write-required-octave-packages-hook.sh" + +writeRequiredOctavePackagesPhase() { + echo "Executing writeRequiredOctavePackagesPhase" + + mkdir -p $out/nix-support + echo ${requiredOctavePackages} > $out/nix-support/required-octave-packages +} + +# Yes its a bit long... +if [ -z "${dontWriteRequiredOctavePackagesPhase-}" ]; then + echo "Using writeRequiredOctavePackagesPhase" + preDistPhases+=" writeRequiredOctavePackagesPhase" +fi diff --git a/pkgs/development/interpreters/octave/with-packages.nix b/pkgs/development/interpreters/octave/with-packages.nix new file mode 100644 index 0000000000000..f00befbb00d45 --- /dev/null +++ b/pkgs/development/interpreters/octave/with-packages.nix @@ -0,0 +1,6 @@ +{ buildEnv, octavePackages }: + +# Takes the buildEnv defined for Octave and the set of octavePackages, and returns +# a function, which when given a function whose return value is a list of extra +# packages to install, builds and returns that environment. +f: let packages = f octavePackages; in buildEnv.override { extraLibs = packages; } diff --git a/pkgs/development/interpreters/octave/wrap-octave.nix b/pkgs/development/interpreters/octave/wrap-octave.nix new file mode 100644 index 0000000000000..1e4616136a1b9 --- /dev/null +++ b/pkgs/development/interpreters/octave/wrap-octave.nix @@ -0,0 +1,16 @@ +{ lib +, octave +, makeSetupHook +, makeWrapper +}: + +# Defined in trivial-builders.nix +# Imported as wrapOctave in octave/default.nix and passed to octave's buildEnv +# as nativeBuildInput +# Each of the substitutions is available in the wrap.sh script as @thingSubstituted@ +makeSetupHook { + name = "${octave.name}-pkgs-setup-hook"; + deps = makeWrapper; + substitutions.executable = octave.interpreter; + substitutions.octave = octave; +} ./wrap.sh diff --git a/pkgs/development/interpreters/octave/wrap.sh b/pkgs/development/interpreters/octave/wrap.sh new file mode 100644 index 0000000000000..a5969fca2a96e --- /dev/null +++ b/pkgs/development/interpreters/octave/wrap.sh @@ -0,0 +1,132 @@ +# Unlinks a directory (given as the first argument), and re-creates that +# directory as an actual directory. Then descends into the directory of +# the same name in the origin (arg_2/arg_3) and symlinks the contents of +# that directory into the passed end-location. +unlinkDirReSymlinkContents() { + local dirToUnlink="$1" + local origin="$2" + local contentsLocation="$3" + + unlink $dirToUnlink/$contentsLocation + mkdir -p $dirToUnlink/$contentsLocation + for f in $origin/$contentsLocation/*; do + ln -s -t "$dirToUnlink/$contentsLocation" "$f" + done +} + +# Using unlinkDirReSymlinkContents, un-symlinks directories down to +# $out/share/octave, and then creates the octave_packages directory. +createOctavePackagesPath() { + local desiredOut=$1 + local origin=$2 + + if [ -L "$out/share" ]; then + unlinkDirReSymlinkContents "$desiredOut" "$origin" "share" + fi + + if [ -L "$out/share/octave" ]; then + unlinkDirReSymlinkContents "$desiredOut" "$origin" "share/octave" + fi + + # Now that octave_packages has a path rather than symlinks, create the + # octave_packages directory for installed packages. + mkdir -p "$desiredOut/share/octave/octave_packages" +} + +# First, descends down to $out/share/octave/site/m/startup/octaverc, and +# copies that start-up file. Once done, it performs a `chmod` to allow +# writing. Lastly, it `echo`s the location of the locally installed packages +# to the startup file, allowing octave to discover installed packages. +addPkgLocalList() { + local desiredOut=$1 + local origin=$2 + local octaveSite="share/octave/site" + local octaveSiteM="$octaveSite/m" + local octaveSiteStartup="$octaveSiteM/startup" + local siteOctavercStartup="$octaveSiteStartup/octaverc" + + unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSite" + unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSiteM" + unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSiteStartup" + + unlink "$out/$siteOctavercStartup" + cp "$origin/$siteOctavercStartup" "$desiredOut/$siteOctavercStartup" + chmod u+w "$desiredOut/$siteOctavercStartup" + echo "pkg local_list $out/.octave_packages" >> "$desiredOut/$siteOctavercStartup" +} + +# Wrapper function for wrapOctaveProgramsIn. Takes one argument, a +# space-delimited string of packages' paths that will be installed. +wrapOctavePrograms() { + wrapOctaveProgramsIn "$out/bin" "$out" "$@" +} + +# Wraps all octave programs in $out/bin with all the propagated inputs that +# a particular package requires. $1 is the directory to look for binaries in +# to wrap. $2 is the path to the octave ENVIRONMENT. $3 is the space-delimited +# string of packages. +wrapOctaveProgramsIn() { + local dir="$1" + local octavePath="$2" + local pkgs="$3" + local f + + buildOctavePath "$octavePath" "$pkgs" + + # Find all regular files in the output directory that are executable. + if [ -d "$dir" ]; then + find "$dir" -type f -perm -0100 -print0 | while read -d "" f; do + echo "wrapping \`$f'..." + local -a wrap_args=("$f" + --prefix PATH ':' "$program_PATH" + ) + local -a wrapProgramArgs=("${wrap_args[@]}") + wrapProgram "${wrapProgramArgs[@]}" + done + fi +} + +# Build the PATH environment variable by walking through the closure of +# dependencies. Starts by constructing the `program_PATH` variable with the +# environment's path, then adding the original octave's location, and marking +# them in `octavePathsSeen`. +buildOctavePath() { + local octavePath="$1" + local packages="$2" + + local pathsToSearch="$octavePath $packages" + + # Create an empty table of Octave paths. + declare -A octavePathsSeen=() + program_PATH= + octavePathsSeen["$out"]=1 + octavePathsSeen["@octave@"]=1 + addToSearchPath program_PATH "$out/bin" + addToSearchPath program_PATH "@octave@/bin" + echo "program_PATH to change to is: $program_PATH" + for path in $pathsToSearch; do + echo "Recurse to propagated-build-input: $path" + _addToOctavePath $path + done +} + +# Adds the bin directories to the program_PATH variable. +# Recurses on any paths declared in `propagated-build-inputs`, while avoiding +# duplicating paths by flagging the directires it has seen in `octavePathsSeen`. +_addToOctavePath() { + local dir="$1" + # Stop if we've already visited this path. + if [ -n "${octavePathsSeen[$dir]}" ]; then return; fi + octavePathsSeen[$dir]=1 + # addToSearchPath is defined in stdenv/generic/setup.sh. It has the effect + # of calling `export X=$dir/...:$X`. + addToSearchPath program_PATH $dir/bin + + # Inspect the propagated inputs (if they exist) and recur on them. + local prop="$dir/nix-support/propagated-build-inputs" + if [ -e $prop ]; then + for new_path in $(cat $prop); do + _addToOctavePath $new_path + done + fi +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 761a5faaecf27..c50b6cdf0636e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11346,6 +11346,8 @@ in overridePlatforms = ["x86_64-linux" "x86_64-darwin"]; }; + octavePackages = recurseIntoAttrs octave.pkgs; + ocropus = callPackage ../applications/misc/ocropus { }; pachyderm = callPackage ../applications/networking/cluster/pachyderm { }; diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix new file mode 100644 index 0000000000000..ef5d83b67919f --- /dev/null +++ b/pkgs/top-level/octave-packages.nix @@ -0,0 +1,115 @@ +# This file contains the GNU Octave add-on packages set. +# Each attribute is an Octave library. +# Expressions for the Octave libraries are supposed to be in `pkgs/development/octave-modules//default.nix`. + +# When contributing a new package, if that package has a dependency on another +# octave package, then you DO NOT need to explicitly list it as such when +# performing the callPackage. It will be passed implicitly. +# In addition, try to use the same dependencies as the ones octave needs, which +# should ensure greater compatibility between Octave itself and its packages. + +# Like python-packages.nix, packages from top-level.nix are not in the scope +# of the `callPackage` used for packages here. So, when we do need packages +# from outside, we can `inherit` them from `pkgs`. +{ pkgs +, lib +, stdenv +, fetchurl +, newScope +, octave +}: + +with lib; + +makeScope newScope (self: + let + inherit (octave) blas lapack gfortran python texinfo gnuplot; + + callPackage = self.callPackage; + + buildOctavePackage = callPackage ../development/interpreters/octave/build-octave-package.nix { + inherit lib stdenv; + inherit octave; + inherit computeRequiredOctavePackages; + }; + + wrapOctave = callPackage ../development/interpreters/octave/wrap-octave.nix { + inherit octave; + inherit (pkgs) makeSetupHook makeWrapper; + }; + + # Given a list of required Octave package derivations, get a list of + # ALL required Octave packages needed for the ones specified to run. + computeRequiredOctavePackages = drvs: let + # Check whether a derivation is an octave package + hasOctavePackage = drv: drv?isOctavePackage; + packages = filter hasOctavePackage drvs; + in unique (packages ++ concatLists (catAttrs "requiredOctavePackages" packages)); + + in { + + inherit callPackage buildOctavePackage computeRequiredOctavePackages; + + inherit (callPackage ../development/interpreters/octave/hooks { }) + writeRequiredOctavePackagesHook; + + arduino = callPackage ../development/octave-modules/arduino { + inherit (pkgs) arduino; + # Full arduino right now. Might be able to use pkgs.arduino-core + # Needs arduinoIDE as a runtime dependency. + }; + + audio = callPackage ../development/octave-modules/audio { + rtmidi = pkgs.rtmidi; + }; + + bim = callPackage ../development/octave-modules/bim { }; + + bsltl = callPackage ../development/octave-modules/bsltl { }; + + cgi = callPackage ../development/octave-modules/cgi { }; + + communications = callPackage ../development/octave-modules/communications { + hdf5 = pkgs.hdf5; + }; + + control = callPackage ../development/octave-modules/control { }; + + io = callPackage ../development/octave-modules/io { + unzip = pkgs.unzip; + }; + + level-set = callPackage ../development/octave-modules/level-set { }; + + linear-algebra = callPackage ../development/octave-modules/linear-algebra { }; + + ltfat = callPackage ../development/octave-modules/ltfat { + fftw = pkgs.fftw; + fftwSinglePrec = pkgs.fftwSinglePrec; + fftwFloat = pkgs.fftwFloat; + fftwLongDouble = pkgs.fftwLongDouble; + portaudio = pkgs.portaudio; + jre = pkgs.jre; + }; + + signal = callPackage ../development/octave-modules/signal { }; + + symbolic = callPackage ../development/octave-modules/symbolic { + # Need to use sympy 1.5.1 for https://github.com/cbm755/octsympy/issues/1023 + # It has been addressed, but not merged yet. + pythonEnv = (let + overridenPython = let + packageOverrides = self: super: { + sympy = super.sympy.overridePythonAttrs (old: rec { + version = pkgs.python2Packages.sympy.version; + src = pkgs.python2Packages.sympy.src; + }); + }; + in python.override {inherit packageOverrides; self = overridenPython; }; + in overridenPython.withPackages (ps: [ + ps.sympy + ps.mpmath + ])); + }; + + }) From 572ecd589609d4252585085d91f1a75cab4337f0 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Sat, 12 Dec 2020 23:03:52 -0600 Subject: [PATCH 02/68] octave.pkgs.signal: init at 1.4.1 As of this commit, this matches the output that OpenSuSe's zypper produces when installing the octave-forge-signal package. --- .../octave-modules/signal/default.nix | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 pkgs/development/octave-modules/signal/default.nix diff --git a/pkgs/development/octave-modules/signal/default.nix b/pkgs/development/octave-modules/signal/default.nix new file mode 100644 index 0000000000000..ae1339ca274a4 --- /dev/null +++ b/pkgs/development/octave-modules/signal/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +, control +}: + +buildOctavePackage rec { + pname = "signal"; + version = "1.4.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1amfh7ifjqxz2kr34hgq2mq8ygmd5j3cjdk1k2dk6qcgic7n0y6r"; + }; + + requiredOctavePackages = [ + control + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/signal/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Signal processing tools, including filtering, windowing and display functions"; + }; +} From c45d56ab7e6e5b3af94f5e496aa45d0ac30a4b8b Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Sat, 12 Dec 2020 18:25:18 -0600 Subject: [PATCH 03/68] octave.pkgs.symbolic: init at 2.9.0 --- .../octave-modules/symbolic/default.nix | 46 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 16 +------ 2 files changed, 47 insertions(+), 15 deletions(-) create mode 100644 pkgs/development/octave-modules/symbolic/default.nix diff --git a/pkgs/development/octave-modules/symbolic/default.nix b/pkgs/development/octave-modules/symbolic/default.nix new file mode 100644 index 0000000000000..e40d27e7c3857 --- /dev/null +++ b/pkgs/development/octave-modules/symbolic/default.nix @@ -0,0 +1,46 @@ +{ buildOctavePackage +, lib +, fetchurl +# Octave's Python (Python 3) +, python +# Needed only to get the correct version of sympy needed +, python2Packages +}: + +let + # Need to use sympy 1.5.1 for https://github.com/cbm755/octsympy/issues/1023 + # It has been addressed, but not merged yet. + # In the meantime, we create a Python environment with Python 3, its mpmath + # version and sympy 1.5 from python2Packages. + pythonEnv = (let + overridenPython = let + packageOverrides = self: super: { + sympy = super.sympy.overridePythonAttrs (old: rec { + version = python2Packages.sympy.version; + src = python2Packages.sympy.src; + }); + }; + in python.override {inherit packageOverrides; self = overridenPython; }; + in overridenPython.withPackages (ps: [ + ps.sympy + ps.mpmath + ])); + +in buildOctavePackage rec { + pname = "symbolic"; + version = "2.9.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1jr3kg9q6r4r4h3hiwq9fli6wsns73rqfzkrg25plha9195c97h8"; + }; + + propagatedBuildInputs = [ pythonEnv ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/symbolic/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Adds symbolic calculation features to GNU Octave"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index ef5d83b67919f..73d514bcb0f2f 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -95,21 +95,7 @@ makeScope newScope (self: signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { - # Need to use sympy 1.5.1 for https://github.com/cbm755/octsympy/issues/1023 - # It has been addressed, but not merged yet. - pythonEnv = (let - overridenPython = let - packageOverrides = self: super: { - sympy = super.sympy.overridePythonAttrs (old: rec { - version = pkgs.python2Packages.sympy.version; - src = pkgs.python2Packages.sympy.src; - }); - }; - in python.override {inherit packageOverrides; self = overridenPython; }; - in overridenPython.withPackages (ps: [ - ps.sympy - ps.mpmath - ])); + inherit (octave) python; }; }) From 77fdefa2a8a5d831de4a0a1ab0e377a3dabbd438 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Sat, 12 Dec 2020 18:25:49 -0600 Subject: [PATCH 04/68] octave.pkgs.linear-algebra: init at 2.2.3 --- .../octave-modules/linear-algebra/default.nix | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 pkgs/development/octave-modules/linear-algebra/default.nix diff --git a/pkgs/development/octave-modules/linear-algebra/default.nix b/pkgs/development/octave-modules/linear-algebra/default.nix new file mode 100644 index 0000000000000..18818c1db6064 --- /dev/null +++ b/pkgs/development/octave-modules/linear-algebra/default.nix @@ -0,0 +1,22 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "linear-algebra"; + version = "2.2.3"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1wwjpxp9vjc6lszh0z3kgy4hyzpib8rvvh6b74ijh9qk9r9nmvjk"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/linear-algebra/index.html"; + license = with licenses; [ gpl3Plus lgpl3Plus ]; + # They claim to have a FreeBSD license, but none of their code seems to have it. + maintainers = with maintainers; [ KarlJoad ]; + description = "Additional linear algebra code, including matrix functions"; + }; +} From 6bb3161645dd255af246b42a5a35e7e97f55bee1 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 16 Dec 2020 13:12:15 -0600 Subject: [PATCH 05/68] octave.pkgs.io: init at 2.6.3 --- .../development/octave-modules/io/default.nix | 32 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/octave-modules/io/default.nix diff --git a/pkgs/development/octave-modules/io/default.nix b/pkgs/development/octave-modules/io/default.nix new file mode 100644 index 0000000000000..57058c5f95de5 --- /dev/null +++ b/pkgs/development/octave-modules/io/default.nix @@ -0,0 +1,32 @@ +{ buildOctavePackage +, lib +, fetchurl +, enableJava +, jdk +, unzip +}: + +buildOctavePackage rec { + pname = "io"; + version = "2.6.3"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "044y8lfp93fx0592mv6x2ss0nvjkjgvlci3c3ahav76pk1j3rikb"; + }; + + buildInputs = [ + (lib.optional enableJava jdk) + ]; + + propagatedBuildInputs = [ + unzip + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/io/index.html"; + license = with licenses; [ gpl3Plus bsd2 ]; + maintainers = with maintainers; [ KarlJoad ]; + description = "Input/Output in external formats"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 73d514bcb0f2f..897cd99e92709 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -76,7 +76,7 @@ makeScope newScope (self: control = callPackage ../development/octave-modules/control { }; io = callPackage ../development/octave-modules/io { - unzip = pkgs.unzip; + inherit (octave) enableJava; }; level-set = callPackage ../development/octave-modules/level-set { }; From 76bcbfce467328cb502e8e593aec256e634c2ed7 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Thu, 17 Dec 2020 20:16:01 -0600 Subject: [PATCH 06/68] octave.pkgs.general: init at version 2.1.1 --- .../octave-modules/general/default.nix | 31 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 8 ++--- 2 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 pkgs/development/octave-modules/general/default.nix diff --git a/pkgs/development/octave-modules/general/default.nix b/pkgs/development/octave-modules/general/default.nix new file mode 100644 index 0000000000000..52ad9af93b0f4 --- /dev/null +++ b/pkgs/development/octave-modules/general/default.nix @@ -0,0 +1,31 @@ +{ buildOctavePackage +, lib +, fetchurl +, pkg-config +, nettle +}: + +buildOctavePackage rec { + pname = "general"; + version = "2.1.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0jmvczssqz1aa665v9h8k9cchb7mg3n9af6b5kh9b2qcjl4r9l7v"; + }; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + nettle + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/general/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "General tools for Octave"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 897cd99e92709..05d8637b02775 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -84,12 +84,8 @@ makeScope newScope (self: linear-algebra = callPackage ../development/octave-modules/linear-algebra { }; ltfat = callPackage ../development/octave-modules/ltfat { - fftw = pkgs.fftw; - fftwSinglePrec = pkgs.fftwSinglePrec; - fftwFloat = pkgs.fftwFloat; - fftwLongDouble = pkgs.fftwLongDouble; - portaudio = pkgs.portaudio; - jre = pkgs.jre; + inherit (octave) fftw fftwSinglePrec portaudio jdk; + inherit (pkgs) fftwFloat fftwLongDouble; }; signal = callPackage ../development/octave-modules/signal { }; From 88f20f352a0e95edc61089438df41842a60c9955 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:34:49 -0600 Subject: [PATCH 07/68] octave.pkgs.arduino: init at 0.6.0 --- .../octave-modules/arduino/default.nix | 33 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 -- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/octave-modules/arduino/default.nix diff --git a/pkgs/development/octave-modules/arduino/default.nix b/pkgs/development/octave-modules/arduino/default.nix new file mode 100644 index 0000000000000..f6536108e6cc3 --- /dev/null +++ b/pkgs/development/octave-modules/arduino/default.nix @@ -0,0 +1,33 @@ +{ buildOctavePackage +, lib +, fetchurl +, instrument-control +, arduino +}: + +buildOctavePackage rec { + pname = "arduino"; + version = "0.6.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0fnfk206n31s7diijaylmqhxnr88z6l3l3vsxq4z8gcp9ylm9nkj"; + }; + + requiredOctavePackages = [ + instrument-control + ]; + + # Might be able to use pkgs.arduino-core + propagatedBuildInputs = [ + arduino + ]; + + meta = with lib; { + name = "Octave Arduino Toolkit"; + homepage = "https://octave.sourceforge.io/arduino/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Basic Octave implementation of the matlab arduino extension, allowing communication to a programmed arduino board to control its hardware"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 05d8637b02775..0790e6cc0b5a2 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -55,8 +55,6 @@ makeScope newScope (self: arduino = callPackage ../development/octave-modules/arduino { inherit (pkgs) arduino; - # Full arduino right now. Might be able to use pkgs.arduino-core - # Needs arduinoIDE as a runtime dependency. }; audio = callPackage ../development/octave-modules/audio { From 035879d9a59d13ff331888aa85309416a351fc7e Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:40:57 -0600 Subject: [PATCH 08/68] octave.pkgs.audio: init at 2.0.2 http://www.music.mcgill.ca/~gary/rtmidi/index.html#compiling contains instructions for Mac OSX. The dependencies for Mac are: CoreMIDI, CoreAudio, CoreFoundation --- .../octave-modules/audio/default.nix | 36 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 4 +-- 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/octave-modules/audio/default.nix diff --git a/pkgs/development/octave-modules/audio/default.nix b/pkgs/development/octave-modules/audio/default.nix new file mode 100644 index 0000000000000..4fafefd6f75de --- /dev/null +++ b/pkgs/development/octave-modules/audio/default.nix @@ -0,0 +1,36 @@ +{ buildOctavePackage +, lib +, fetchurl +, jack2 +, alsaLib +, rtmidi +, pkg-config +}: + +buildOctavePackage rec { + pname = "audio"; + version = "2.0.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "18lyvwmdy4b9pcv5sm7g17n3is32q23daw8fcsalkf4rj6cc6qdk"; + }; + + nativeBuildInputs = [ + pkg-config + ]; + + propagatedBuildInputs = [ + jack2 + alsaLib + rtmidi + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/audio/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Audio and MIDI Toolbox for GNU Octave"; + platforms = platforms.linux; # Because of run-time dependency on jack2 and alsaLib + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 0790e6cc0b5a2..d289877b487ed 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -57,9 +57,7 @@ makeScope newScope (self: inherit (pkgs) arduino; }; - audio = callPackage ../development/octave-modules/audio { - rtmidi = pkgs.rtmidi; - }; + audio = callPackage ../development/octave-modules/audio { }; bim = callPackage ../development/octave-modules/bim { }; From 3cf6bd0e7011fafa0068be9e30f350298521f367 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:42:24 -0600 Subject: [PATCH 09/68] octave.pkgs.bim: init at 1.1.5 --- .../octave-modules/bim/default.nix | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 pkgs/development/octave-modules/bim/default.nix diff --git a/pkgs/development/octave-modules/bim/default.nix b/pkgs/development/octave-modules/bim/default.nix new file mode 100644 index 0000000000000..5dc8ca88710d6 --- /dev/null +++ b/pkgs/development/octave-modules/bim/default.nix @@ -0,0 +1,28 @@ +{ buildOctavePackage +, lib +, fetchurl +, fpl +, msh +}: + +buildOctavePackage rec { + pname = "bim"; + version = "1.1.5"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0y70w8mj80c5yns1j7nwngwwrxp1pa87kyz2n2yvmc3zdigcd6g8"; + }; + + requiredOctavePackages = [ + fpl + msh + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/bim/index.html"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Package for solving Diffusion Advection Reaction (DAR) Partial Differential Equations"; + }; +} From c4765ca49e3b1b6c5b6fc3fd5226de21db263559 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:43:21 -0600 Subject: [PATCH 10/68] octave.pkgs.bsltl: init at 1.3.1 --- .../octave-modules/bsltl/default.nix | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 pkgs/development/octave-modules/bsltl/default.nix diff --git a/pkgs/development/octave-modules/bsltl/default.nix b/pkgs/development/octave-modules/bsltl/default.nix new file mode 100644 index 0000000000000..aefe543b097d2 --- /dev/null +++ b/pkgs/development/octave-modules/bsltl/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "bsltl"; + version = "1.3.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0i8ry347y5f5db3702nhpsmfys9v18ks2fsmpdqpy3fcvrwaxdsb"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/bsltl/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Free collection of OCTAVE/MATLAB routines for working with the biospeckle laser technique"; + }; +} From cd3928a7aa30b757a45dfbcb0489f48b24099d5e Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:44:23 -0600 Subject: [PATCH 11/68] octave.pkgs.cgi: init at 0.1.2 --- .../octave-modules/cgi/default.nix | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 pkgs/development/octave-modules/cgi/default.nix diff --git a/pkgs/development/octave-modules/cgi/default.nix b/pkgs/development/octave-modules/cgi/default.nix new file mode 100644 index 0000000000000..4686881251afa --- /dev/null +++ b/pkgs/development/octave-modules/cgi/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "cgi"; + version = "0.1.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0hygj7cpwrs2w9bfb7qrvv7gq410bfiddqvza8smg766pqmfp1s1"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/cgi/index.html"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Common Gateway Interface for Octave"; + }; +} From 27f86a13de169fe26707926df8ef2553be2d3da6 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:45:33 -0600 Subject: [PATCH 12/68] octave.pkgs.communications: init at 1.2.2 --- .../octave-modules/communications/default.nix | 31 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 4 +-- 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/octave-modules/communications/default.nix diff --git a/pkgs/development/octave-modules/communications/default.nix b/pkgs/development/octave-modules/communications/default.nix new file mode 100644 index 0000000000000..492c837255f78 --- /dev/null +++ b/pkgs/development/octave-modules/communications/default.nix @@ -0,0 +1,31 @@ +{ buildOctavePackage +, lib +, fetchurl +, signal +, hdf5 +}: + +buildOctavePackage rec { + pname = "communications"; + version = "1.2.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1xay2vjyadv3ja8dmqqzm2his8s0rvidz23nq1c2yl3xh1gavyck"; + }; + + buildInputs = [ + hdf5 + ]; + + requiredOctavePackages = [ + signal + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/communications/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = " Digital Communications, Error Correcting Codes (Channel Code), Source Code functions, Modulation and Galois Fields"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index d289877b487ed..a6d3844fd25aa 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -65,9 +65,7 @@ makeScope newScope (self: cgi = callPackage ../development/octave-modules/cgi { }; - communications = callPackage ../development/octave-modules/communications { - hdf5 = pkgs.hdf5; - }; + communications = callPackage ../development/octave-modules/communications { }; control = callPackage ../development/octave-modules/control { }; From 0abd2425c7f7f4a68604f3b5984dbfefc6140d9f Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Sat, 12 Dec 2020 18:25:37 -0600 Subject: [PATCH 13/68] octave.pkgs.control: init at 3.2.0 --- .../octave-modules/control/default.nix | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 pkgs/development/octave-modules/control/default.nix diff --git a/pkgs/development/octave-modules/control/default.nix b/pkgs/development/octave-modules/control/default.nix new file mode 100644 index 0000000000000..2d61e30cc60cd --- /dev/null +++ b/pkgs/development/octave-modules/control/default.nix @@ -0,0 +1,31 @@ +{ buildOctavePackage +, lib +, fetchurl +, gfortran +, lapack, blas +}: + +buildOctavePackage rec { + pname = "control"; + version = "3.2.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0gjyjsxs01x0nyc4cgn3d5af17l3lzs8h4hsm57nxd3as48dbwgs"; + }; + + nativeBuildInputs = [ + gfortran + ]; + + buildInputs = [ + lapack blas + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/control/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Computer-Aided Control System Design (CACSD) Tools for GNU Octave, based on the proven SLICOT Library"; + }; +} From f4298212c05910655d57a64277f45afa708126b6 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:46:10 -0600 Subject: [PATCH 14/68] octave.pkgs.data-smoothing: init at 1.3.0 --- .../octave-modules/data-smoothing/default.nix | 26 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 6 +++++ 2 files changed, 32 insertions(+) create mode 100644 pkgs/development/octave-modules/data-smoothing/default.nix diff --git a/pkgs/development/octave-modules/data-smoothing/default.nix b/pkgs/development/octave-modules/data-smoothing/default.nix new file mode 100644 index 0000000000000..551582a77703e --- /dev/null +++ b/pkgs/development/octave-modules/data-smoothing/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +, optim +}: + +buildOctavePackage rec { + pname = "data-smoothing"; + version = "1.3.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0q0vqdmp8ygyfhk296xbxcpsh5wvpa2kfgv4v0rys68nd2lxfaq1"; + }; + + requiredOctavePackages = [ + optim + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/data-smoothing/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Algorithms for smoothing noisy data"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index a6d3844fd25aa..ccbc3ad78fe2d 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -69,6 +69,12 @@ makeScope newScope (self: control = callPackage ../development/octave-modules/control { }; + data-smoothing = callPackage ../development/octave-modules/data-smoothing { }; + + general = callPackage ../development/octave-modules/general { + nettle = pkgs.nettle; + }; + io = callPackage ../development/octave-modules/io { inherit (octave) enableJava; }; From abd0c2290a3defe14957cb4347430275604e2898 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:48:35 -0600 Subject: [PATCH 15/68] octave.pkgs.database: init at 2.4.4 --- .../octave-modules/database/default.nix | 31 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/development/octave-modules/database/default.nix diff --git a/pkgs/development/octave-modules/database/default.nix b/pkgs/development/octave-modules/database/default.nix new file mode 100644 index 0000000000000..3e1fe863276cd --- /dev/null +++ b/pkgs/development/octave-modules/database/default.nix @@ -0,0 +1,31 @@ +{ buildOctavePackage +, lib +, fetchurl +, struct +, postgresql +}: + +buildOctavePackage rec { + pname = "database"; + version = "2.4.4"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1c0n76adi0jw6bx62s04vjyda6kb6ca8lzz2vam43vdy10prcq9p"; + }; + + propagatedBuildInputs = [ + postgresql + ]; + + requiredOctavePackages = [ + struct + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/database/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Interface to SQL databases, currently only postgresql using libpq"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index ccbc3ad78fe2d..d5b4e450e31d8 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -71,6 +71,8 @@ makeScope newScope (self: data-smoothing = callPackage ../development/octave-modules/data-smoothing { }; + database = callPackage ../development/octave-modules/database { }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From a2365751bc0b61d10b109839c9cc32eb7ef252aa Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:49:38 -0600 Subject: [PATCH 16/68] octave.pkgs.dataframe: init at 1.2.0 --- .../octave-modules/dataframe/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/dataframe/default.nix diff --git a/pkgs/development/octave-modules/dataframe/default.nix b/pkgs/development/octave-modules/dataframe/default.nix new file mode 100644 index 0000000000000..8f145f0d510c2 --- /dev/null +++ b/pkgs/development/octave-modules/dataframe/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "dataframe"; + version = "1.2.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "10ara084gkb7d5vxv9qv7zpj8b4mm5y06nccrdy3skw5nfbb4djx"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/dataframe/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Data manipulation toolbox similar to R data.frame"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index d5b4e450e31d8..075ab9e425597 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -73,6 +73,8 @@ makeScope newScope (self: database = callPackage ../development/octave-modules/database { }; + dataframe = callPackage ../development/octave-modules/dataframe { }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From 0de6cfa38ab6930d3876eeb4d011f1252347e05b Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:50:23 -0600 Subject: [PATCH 17/68] octave.pkgs.dicom: init at 0.4.0 --- .../octave-modules/dicom/default.nix | 33 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/development/octave-modules/dicom/default.nix diff --git a/pkgs/development/octave-modules/dicom/default.nix b/pkgs/development/octave-modules/dicom/default.nix new file mode 100644 index 0000000000000..e16b6447805ea --- /dev/null +++ b/pkgs/development/octave-modules/dicom/default.nix @@ -0,0 +1,33 @@ +{ buildOctavePackage +, lib +, fetchurl +, gdcm +, cmake +}: + +buildOctavePackage rec { + pname = "dicom"; + version = "0.4.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "131wn6mrv20np10plirvqia8dlpz3g0aqi3mmn2wyl7r95p3dnza"; + }; + + nativeBuildInputs = [ + cmake + ]; + + dontUseCmakeConfigure = true; + + propagatedBuildInputs = [ + gdcm + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/dicom/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Digital communications in medicine (DICOM) file io"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 075ab9e425597..3d6dc98a22589 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -75,6 +75,8 @@ makeScope newScope (self: dataframe = callPackage ../development/octave-modules/dataframe { }; + dicom = callPackage ../development/octave-modules/dicom { }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From 74944461e8e0df2cc66d7f1b236e15bd841e9d78 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:50:59 -0600 Subject: [PATCH 18/68] octave.pkgs.divand: init at 1.1.2 --- .../octave-modules/divand/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/divand/default.nix diff --git a/pkgs/development/octave-modules/divand/default.nix b/pkgs/development/octave-modules/divand/default.nix new file mode 100644 index 0000000000000..ac8de9060680a --- /dev/null +++ b/pkgs/development/octave-modules/divand/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "divand"; + version = "1.1.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0nmaz5j37dflz7p4a4lmwzkh7g1gghdh7ccvkbyy0fpgv9lr1amg"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/divand/index.html"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Performs an n-dimensional variational analysis (interpolation) of arbitrarily located observations"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 3d6dc98a22589..832f08ba969e7 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -77,6 +77,8 @@ makeScope newScope (self: dicom = callPackage ../development/octave-modules/dicom { }; + divand = callPackage ../development/octave-modules/divand { }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From 4e3c4288c9d41ca5aa6568eebe2631ca4ad8f94f Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:51:36 -0600 Subject: [PATCH 19/68] octave.pkgs.doctest: init at 0.7.0 --- .../octave-modules/doctest/default.nix | 28 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/development/octave-modules/doctest/default.nix diff --git a/pkgs/development/octave-modules/doctest/default.nix b/pkgs/development/octave-modules/doctest/default.nix new file mode 100644 index 0000000000000..3c02a20cdad15 --- /dev/null +++ b/pkgs/development/octave-modules/doctest/default.nix @@ -0,0 +1,28 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "doctest"; + version = "0.7.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0hh9izj9ds69bmrvmmj16fd1c4z7733h50c7isl8f714srw26kf4"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/doctest/index.html"; + license = licenses.bsd3; + maintainers = with maintainers; [ KarlJoad ]; + description = "Find and run example code within documentation"; + longDescription = '' + Find and run example code within documentation. Formatted blocks + of example code are extracted from documentation files and executed + to confirm their output is correct. This can be part of a testing + framework or simply to ensure that documentation stays up-to-date + during software development. + ''; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 832f08ba969e7..b8ff9a87b0211 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -79,6 +79,8 @@ makeScope newScope (self: divand = callPackage ../development/octave-modules/divand { }; + doctest = callPackage ../development/octave-modules/doctest { }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From 726a17cf88630d90c6769c428d6a6b4fedfe2d2a Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:52:41 -0600 Subject: [PATCH 20/68] octave.pkgs.econometrics: init at 1.1.2 --- .../octave-modules/econometrics/default.nix | 26 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/development/octave-modules/econometrics/default.nix diff --git a/pkgs/development/octave-modules/econometrics/default.nix b/pkgs/development/octave-modules/econometrics/default.nix new file mode 100644 index 0000000000000..0aa795959ab6b --- /dev/null +++ b/pkgs/development/octave-modules/econometrics/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +, optim +}: + +buildOctavePackage rec { + pname = "econometrics"; + version = "1.1.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1srx78k90ycla7yisa9h593n9l8br31lsdxlspra8sxiyq0sbk72"; + }; + + requiredOctavePackages = [ + optim + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/econometrics/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Econometrics functions including MLE and GMM based techniques"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index b8ff9a87b0211..c5a82516c06d2 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -81,6 +81,8 @@ makeScope newScope (self: doctest = callPackage ../development/octave-modules/doctest { }; + econometrics = callPackage ../development/octave-modules/econometrics { }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From 4296286a50112be9bdd7029fef4740feb1e26fd2 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:55:24 -0600 Subject: [PATCH 21/68] octave.pkgs.fem-fenics: init at 0.0.5 --- .../octave-modules/fem-fenics/default.nix | 35 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 6 ++++ 2 files changed, 41 insertions(+) create mode 100644 pkgs/development/octave-modules/fem-fenics/default.nix diff --git a/pkgs/development/octave-modules/fem-fenics/default.nix b/pkgs/development/octave-modules/fem-fenics/default.nix new file mode 100644 index 0000000000000..300dfd758774e --- /dev/null +++ b/pkgs/development/octave-modules/fem-fenics/default.nix @@ -0,0 +1,35 @@ +{ buildOctavePackage +, lib +, fetchurl +, dolfin +, ffc +, pkg-config +}: + +buildOctavePackage rec { + pname = "fem-fenics"; + version = "0.0.5"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1xd80nnkschldvrqx0wvrg3fzbf8sck8bvq24phr5x49xs7b8x78"; + }; + + nativeBuildInputs = [ + pkg-config + ]; + + propagatedBuildInputs = [ + dolfin + ffc + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/fem-fenics/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Package for the resolution of partial differential equations based on fenics"; + # Lots of compilation errors for newer octave versions and syntax errors + broken = true; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index c5a82516c06d2..838448ccbe8b0 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -83,6 +83,12 @@ makeScope newScope (self: econometrics = callPackage ../development/octave-modules/econometrics { }; + fem-fenics = callPackage ../development/octave-modules/fem-fenics { + # PLACEHOLDER until KarlJoad gets dolfin packaged. + dolfin = null; + ffc = null; + }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From 6ad87c34ddce64dab64fcd9e05e376be650a3483 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:56:20 -0600 Subject: [PATCH 22/68] octave.pkgs.financial: init at 0.5.3 --- .../octave-modules/financial/default.nix | 23 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 pkgs/development/octave-modules/financial/default.nix diff --git a/pkgs/development/octave-modules/financial/default.nix b/pkgs/development/octave-modules/financial/default.nix new file mode 100644 index 0000000000000..5fb6a00df78b0 --- /dev/null +++ b/pkgs/development/octave-modules/financial/default.nix @@ -0,0 +1,23 @@ +{ buildOctavePackage +, lib +, fetchurl +, io +, statistics +}: + +buildOctavePackage rec { + pname = "financial"; + version = "0.5.3"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0f963yg6pwvrdk5fg7b71ny47gzy48nqxdzj2ngcfrvmb5az4vmf"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/financial/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Monte Carlo simulation, options pricing routines, financial manipulation, plotting functions and additional date manipulation tools"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 838448ccbe8b0..c1fef7aca05a1 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -89,6 +89,8 @@ makeScope newScope (self: ffc = null; }; + financial = callPackage ../development/octave-modules/financial { }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From df13f16837694910e1b86bbc51da5306e89efe84 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:57:06 -0600 Subject: [PATCH 23/68] octave.pkgs.fits: init at 1.0.7 --- .../octave-modules/fits/default.nix | 41 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/octave-modules/fits/default.nix diff --git a/pkgs/development/octave-modules/fits/default.nix b/pkgs/development/octave-modules/fits/default.nix new file mode 100644 index 0000000000000..9d236cb9f1fa5 --- /dev/null +++ b/pkgs/development/octave-modules/fits/default.nix @@ -0,0 +1,41 @@ +{ buildOctavePackage +, lib +, fetchurl +, cfitsio +, hdf5 +, pkg-config +}: + +buildOctavePackage rec { + pname = "fits"; + version = "1.0.7"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0jab5wmrpifqphmrfkqcyrlpc0h4y4m735yc3avqqjajz1rl24lm"; + }; + + # Found here: https://build.opensuse.org/package/view_file/science/octave-forge-fits/octave-forge-fits.spec?expand=1 + patchPhase = '' + sed -i -s -e 's/D_NINT/octave::math::x_nint/g' src/*.cc + ''; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + hdf5 + ]; + + propagatedBuildInputs = [ + cfitsio + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/fits/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Functions for reading, and writing FITS (Flexible Image Transport System) files using cfitsio"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index c1fef7aca05a1..ab631e88de2bf 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -89,6 +89,8 @@ makeScope newScope (self: ffc = null; }; + fits = callPackage ../development/octave-modules/fits { }; + financial = callPackage ../development/octave-modules/financial { }; general = callPackage ../development/octave-modules/general { From ddabcd3b3aa8897837fb6dbe9c08d3cbf270ad5e Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 10:57:52 -0600 Subject: [PATCH 24/68] octave.pkgs.fpl: init at 1.3.5 --- .../octave-modules/fpl/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/fpl/default.nix diff --git a/pkgs/development/octave-modules/fpl/default.nix b/pkgs/development/octave-modules/fpl/default.nix new file mode 100644 index 0000000000000..e5b276c0c20de --- /dev/null +++ b/pkgs/development/octave-modules/fpl/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "fpl"; + version = "1.3.5"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0cbpahn9flrv9ppp5xakhwh8vyyy7wzlsz22i3s93yqg9q2bh4ys"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/fpl/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Collection of routines to export data produced by Finite Elements or Finite Volume Simulations in formats used by some visualization programs"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index ab631e88de2bf..ba522a7825cee 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -93,6 +93,8 @@ makeScope newScope (self: financial = callPackage ../development/octave-modules/financial { }; + fpl = callPackage ../development/octave-modules/fpl { }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From 187ae71fd9ce31017a21f467e10b54fc34101d4d Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:00:25 -0600 Subject: [PATCH 25/68] octave.pkgs.fuzzy-logic-toolkit: init at 0.4.5 --- .../fuzzy-logic-toolkit/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix diff --git a/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix b/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix new file mode 100644 index 0000000000000..5cb567b2bb85d --- /dev/null +++ b/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "fuzzy-logic-toolkit"; + version = "0.4.5"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0cs1xh594h1psdinicxrsvm27gzax5jja7bjk4sl3kk2hv24mhml"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/fuzzy-logic-toolkit/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "A mostly MATLAB-compatible fuzzy logic toolkit for Octave"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index ba522a7825cee..cf187ab9816af 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -95,6 +95,8 @@ makeScope newScope (self: fpl = callPackage ../development/octave-modules/fpl { }; + fuzzy-logic-toolkit = callPackage ../development/octave-modules/fuzzy-logic-toolkit { }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From 0b1f57bb9eb3fef668d71fb11cf650f1c38d3f25 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:01:13 -0600 Subject: [PATCH 26/68] octave.pkgs.ga: init at 0.10.2 --- .../development/octave-modules/ga/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/ga/default.nix diff --git a/pkgs/development/octave-modules/ga/default.nix b/pkgs/development/octave-modules/ga/default.nix new file mode 100644 index 0000000000000..a5265a4ce4505 --- /dev/null +++ b/pkgs/development/octave-modules/ga/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "ga"; + version = "0.10.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0s5azn4n174avlmh5gw21zfqfkyxkzn4v09q4l9swv7ldmg3mirv"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/ga/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Genetic optimization code"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index cf187ab9816af..6c7b263789bb0 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -97,6 +97,8 @@ makeScope newScope (self: fuzzy-logic-toolkit = callPackage ../development/octave-modules/fuzzy-logic-toolkit { }; + ga = callPackage ../development/octave-modules/ga { }; + general = callPackage ../development/octave-modules/general { nettle = pkgs.nettle; }; From 099a55dc0a3bccea9fb006a6e60ea06c87695887 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:05:02 -0600 Subject: [PATCH 27/68] octave.pkgs.generate_html: init at 0.3.2 --- .../octave-modules/generate_html/default.nix | 27 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 29 insertions(+) create mode 100644 pkgs/development/octave-modules/generate_html/default.nix diff --git a/pkgs/development/octave-modules/generate_html/default.nix b/pkgs/development/octave-modules/generate_html/default.nix new file mode 100644 index 0000000000000..83f3a65bedc23 --- /dev/null +++ b/pkgs/development/octave-modules/generate_html/default.nix @@ -0,0 +1,27 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "generate_html"; + version = "0.3.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1ai4h7jf9fqi7w565iprzylsh94pg4rhyf51hfj9kfdgdpb1abfs"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/generate_html/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Provides functions for generating HTML pages that contain the help texts for a set of functions"; + longDescription = '' + This package provides functions for generating HTML pages that contain + the help texts for a set of functions. The package is designed to be as + general as possible, but also contains convenience functions for generating + a set of pages for entire packages. + ''; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 6c7b263789bb0..af9dd4ab84911 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -103,6 +103,8 @@ makeScope newScope (self: nettle = pkgs.nettle; }; + generate_html = callPackage ../development/octave-modules/generate_html { }; + io = callPackage ../development/octave-modules/io { inherit (octave) enableJava; }; From 33cc927ed786c7d4213f31320399c86033ed19d5 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:05:43 -0600 Subject: [PATCH 28/68] octave.pkgs.geometry: init at 4.0.0 --- .../octave-modules/geometry/default.nix | 26 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/development/octave-modules/geometry/default.nix diff --git a/pkgs/development/octave-modules/geometry/default.nix b/pkgs/development/octave-modules/geometry/default.nix new file mode 100644 index 0000000000000..b4bf57262faec --- /dev/null +++ b/pkgs/development/octave-modules/geometry/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +, matgeom +}: + +buildOctavePackage rec { + pname = "geometry"; + version = "4.0.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1zmd97xir62fr5v57xifh2cvna5fg67h9yb7bp2vm3ll04y41lhs"; + }; + + requiredOctavePackages = [ + matgeom + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/geometry/index.html"; + license = with licenses; [ gpl3Plus boost ]; + maintainers = with maintainers; [ KarlJoad ]; + description = "Library for extending MatGeom functionality"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index af9dd4ab84911..ba6e1550b4145 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -105,6 +105,8 @@ makeScope newScope (self: generate_html = callPackage ../development/octave-modules/generate_html { }; + geometry = callPackage ../development/octave-modules/geometry { }; + io = callPackage ../development/octave-modules/io { inherit (octave) enableJava; }; From 4777d9123a25e0fb3e6d5681c2c2323b2b182a33 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:10:26 -0600 Subject: [PATCH 29/68] octave.pkgs.gsl: init at 2.1.1 --- .../octave-modules/gsl/default.nix | 26 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 4 +++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/development/octave-modules/gsl/default.nix diff --git a/pkgs/development/octave-modules/gsl/default.nix b/pkgs/development/octave-modules/gsl/default.nix new file mode 100644 index 0000000000000..5922c015dbdf0 --- /dev/null +++ b/pkgs/development/octave-modules/gsl/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +, gsl +}: + +buildOctavePackage rec { + pname = "gsl"; + version = "2.1.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1lvfxbqmw8h1nlrxmvrl6j4xffmbzxfhdpxz3vrc6lg2g4jwaa6h"; + }; + + buildInputs = [ + gsl + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/gsl/index.html"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Octave bindings to the GNU Scientific Library"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index ba6e1550b4145..e55124a3f6bba 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -107,6 +107,10 @@ makeScope newScope (self: geometry = callPackage ../development/octave-modules/geometry { }; + gsl = callPackage ../development/octave-modules/gsl { + inherit (pkgs) gsl; + }; + io = callPackage ../development/octave-modules/io { inherit (octave) enableJava; }; From 6cce7e8ef56d1efe114037864e06b3defd15182c Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:11:25 -0600 Subject: [PATCH 30/68] octave.pkgs.image: init at 2.12.0 --- .../octave-modules/image/default.nix | 27 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 29 insertions(+) create mode 100644 pkgs/development/octave-modules/image/default.nix diff --git a/pkgs/development/octave-modules/image/default.nix b/pkgs/development/octave-modules/image/default.nix new file mode 100644 index 0000000000000..8bff55fadc64f --- /dev/null +++ b/pkgs/development/octave-modules/image/default.nix @@ -0,0 +1,27 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "image"; + version = "2.12.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1d3kqhbkq9acc29k42fcilfmykk9a0r321mvk46l5iibc7nqrmg7"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/image/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Functions for processing images"; + longDescription = '' + The Octave-forge Image package provides functions for processing + images. The package also provides functions for feature extraction, + image statistics, spatial and geometric transformations, morphological + operations, linear filtering, and much more. + ''; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index e55124a3f6bba..1c878135f2fe6 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -111,6 +111,8 @@ makeScope newScope (self: inherit (pkgs) gsl; }; + image = callPackage ../development/octave-modules/image { }; + io = callPackage ../development/octave-modules/io { inherit (octave) enableJava; }; From bb3295b87e69de4b2bef949d8379c22b5ba39458 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:12:33 -0600 Subject: [PATCH 31/68] octave.pkgs.image-acquisition: init at 0.2.2 --- .../image-acquisition/default.nix | 32 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/development/octave-modules/image-acquisition/default.nix diff --git a/pkgs/development/octave-modules/image-acquisition/default.nix b/pkgs/development/octave-modules/image-acquisition/default.nix new file mode 100644 index 0000000000000..08c4305999b36 --- /dev/null +++ b/pkgs/development/octave-modules/image-acquisition/default.nix @@ -0,0 +1,32 @@ +{ buildOctavePackage +, lib +, fetchurl +, libv4l +, fltk +}: + +buildOctavePackage rec { + pname = "image-acquisition"; + version = "0.2.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1amp6npkddnnz2i5rm6gvn65qrbn0nxzl2cja3dvc2xqg396wrhh"; + }; + + buildInputs = [ + libv4l + fltk + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/image-acquisition/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Functions to capture images from connected devices"; + longDescription = '' + The Octave-forge Image Aquisition package provides functions to + capture images from connected devices. Currently only v4l2 is supported. + ''; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 1c878135f2fe6..ef2f9e4d3db67 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -113,6 +113,8 @@ makeScope newScope (self: image = callPackage ../development/octave-modules/image { }; + image-acquisition = callPackage ../development/octave-modules/image-acquisition { }; + io = callPackage ../development/octave-modules/io { inherit (octave) enableJava; }; From b9bdc30807e5eaa76cecd9a1efccecddfd0da742 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:14:06 -0600 Subject: [PATCH 32/68] octave.pkgs.instrument-control: init at 0.6.0 --- .../instrument-control/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/instrument-control/default.nix diff --git a/pkgs/development/octave-modules/instrument-control/default.nix b/pkgs/development/octave-modules/instrument-control/default.nix new file mode 100644 index 0000000000000..51c8f300cc592 --- /dev/null +++ b/pkgs/development/octave-modules/instrument-control/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "instrument-control"; + version = "0.6.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0vckax6rx5v3fq5j6kb6n39a5zas9i24x4wvmjlhc8xbykkg5nkk"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/instrument-control/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Low level I/O functions for serial, i2c, spi, parallel, tcp, gpib, vxi11, udp and usbtmc interfaces"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index ef2f9e4d3db67..6094771842e4e 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -115,6 +115,8 @@ makeScope newScope (self: image-acquisition = callPackage ../development/octave-modules/image-acquisition { }; + instrument-control = callPackage ../development/octave-modules/instrument-control { }; + io = callPackage ../development/octave-modules/io { inherit (octave) enableJava; }; From 8ec29ea849c9b416ce3fd0f84f47d9bc9fc6a004 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:15:38 -0600 Subject: [PATCH 33/68] octave.pkgs.interval: init at 3.2.0 --- .../octave-modules/interval/default.nix | 39 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 + 2 files changed, 41 insertions(+) create mode 100644 pkgs/development/octave-modules/interval/default.nix diff --git a/pkgs/development/octave-modules/interval/default.nix b/pkgs/development/octave-modules/interval/default.nix new file mode 100644 index 0000000000000..0891a6143852d --- /dev/null +++ b/pkgs/development/octave-modules/interval/default.nix @@ -0,0 +1,39 @@ +{ buildOctavePackage +, lib +, fetchurl +, mpfr +}: + +buildOctavePackage rec { + pname = "interval"; + version = "3.2.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0a0sz7b4y53qgk1xr4pannn4w7xiin2pf74x7r54hrr1wf4abp20"; + }; + + propagatedBuildInputs = [ + mpfr + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/interval/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Interval arithmetic to evaluate functions over subsets of their domain"; + longDescription = '' + The interval package for real-valued interval arithmetic allows one to + evaluate functions over subsets of their domain. All results are verified, + because interval computations automatically keep track of any errors. + + These concepts can be used to handle uncertainties, estimate arithmetic + errors and produce reliable results. Also it can be applied to + computer-assisted proofs, constraint programming, and verified computing. + + The implementation is based on interval boundaries represented by + binary64 numbers and is conforming to IEEE Std 1788-2015, IEEE standard + for interval arithmetic. + ''; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 6094771842e4e..61783fed750aa 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -121,6 +121,8 @@ makeScope newScope (self: inherit (octave) enableJava; }; + interval = callPackage ../development/octave-modules/interval { }; + level-set = callPackage ../development/octave-modules/level-set { }; linear-algebra = callPackage ../development/octave-modules/linear-algebra { }; From 31c13c07d2f67fe18f7a6ffa9753dd90bb92be8c Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 01:00:36 -0600 Subject: [PATCH 34/68] octave.pkgs.level-set: init at 2019-04-13 1) Version 0.3.0 has numerous bugs due to not being updated for nearly 5 years. So, I had to use fetchgit instead, grabbing HEAD of master. 2) level-set uses a non-standard layout for its files (no MAKEFILE in the root of the package for octave to use), but instead has a build.sh script to run. This script *JUST* generates a tarball that can THEN be used for `pkg build`. `patchPhase` performs some substitutions on this to make it generate the tarball in a way we expect it to. This tarball ends up in the /build directory we have available to us. 2.5) This script NEEDS automake, autoconf, and autoconf-archive to be available. This is unnecessary for other packages because Octave has a well-defined Makefile scheme that developers are supposed to follow that allows Octave to handle the building of packages. But this package breaks the mold. 3) With the tarball we use to build being available, we need to then `cd` back to the previous location (as the script takes us from `/build` to `/tmp`. So we go back using `cd -`. 4) Lastly, we can now use the standard `buildPhase` defined for `buildOctavePackage` and complete the building of level-set. Hopefully, this will be fixed in a later release, so it is easier to maintain. 10/260 tests FAIL, where most of those 10 are due to improper usage of the parallel package. Overall, I believe this is a reasonable amount of passing tests to allow this to be marked as working. --- .../octave-modules/level-set/default.nix | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 pkgs/development/octave-modules/level-set/default.nix diff --git a/pkgs/development/octave-modules/level-set/default.nix b/pkgs/development/octave-modules/level-set/default.nix new file mode 100644 index 0000000000000..d1f882904d598 --- /dev/null +++ b/pkgs/development/octave-modules/level-set/default.nix @@ -0,0 +1,54 @@ +{ buildOctavePackage +, lib +, fetchgit +, automake +, autoconf +, autoconf-archive +, parallel +}: + +buildOctavePackage rec { + pname = "level-set"; + version = "2019-04-13"; + + src = fetchgit { + url = "https://git.code.sf.net/p/octave/${pname}"; + rev = "dbf46228a7582eef4fe5470fd00bc5b421dd33a5"; + sha256 = "14qwa4j24m2j7njw8gbagkgmp040h6k0h7kyrrzgb9y0jm087qkl"; + fetchSubmodules = false; + }; + + # The monstrosity of a regex below is to ensure that only error() calls are + # corrected to have a %s format specifier. However, logic_error() also + # exists, (a simple regex also matches that), but logic_error() doesn't + # require a format specifier. So, this regex was born to handle that... + patchPhase = '' + substituteInPlace build.sh --replace "level-set-0.3.1" "${pname}-${version}" \ + --replace "\`pwd\`" '/build' + sed -i -E 's#[^[:graph:]]error \(# error \(\"%s\", #g' src/*.cpp + ''; + + nativeBuildInputs = [ + automake + autoconf + autoconf-archive + ]; + + requiredOctavePackages = [ + parallel + ]; + + preBuild = '' + mkdir -p $out + source ./build.sh + cd - + ''; + + meta = with lib; { + name = "Level Set"; + homepage = "https://octave.sourceforge.io/level-set/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Routines for calculating the time-evolution of the level-set equation and extracting geometric information from the level-set function"; + }; +} From 0b7b03d62cf013f8ebb0c134f9d992f28640dd24 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:18:18 -0600 Subject: [PATCH 35/68] octave.pkgs.lssa: init at 0.1.4 --- .../octave-modules/lssa/default.nix | 27 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 29 insertions(+) create mode 100644 pkgs/development/octave-modules/lssa/default.nix diff --git a/pkgs/development/octave-modules/lssa/default.nix b/pkgs/development/octave-modules/lssa/default.nix new file mode 100644 index 0000000000000..f737c104f3021 --- /dev/null +++ b/pkgs/development/octave-modules/lssa/default.nix @@ -0,0 +1,27 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "lssa"; + version = "0.1.4"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "10h9lzsi7pqh93i7y50b618g05fnbw9n0i505bz5kz4avfa990zh"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/lssa/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Tools to compute spectral decompositions of irregularly-spaced time series"; + longDescription = '' + A package implementing tools to compute spectral decompositions of + irregularly-spaced time series. Currently includes functions based off + the Lomb-Scargle periodogram and Adolf Mathias' implementation for R + and C. + ''; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 61783fed750aa..a021f4f1a44d5 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -127,6 +127,8 @@ makeScope newScope (self: linear-algebra = callPackage ../development/octave-modules/linear-algebra { }; + lssa = callPackage ../development/octave-modules/lssa { }; + ltfat = callPackage ../development/octave-modules/ltfat { inherit (octave) fftw fftwSinglePrec portaudio jdk; inherit (pkgs) fftwFloat fftwLongDouble; From bc8d72e32f70b73a4f068c98e380167904a7808b Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 00:58:32 -0600 Subject: [PATCH 36/68] octave.pkgs.ltfat: init at 2.3.1 --- .../octave-modules/ltfat/default.nix | 54 +++++++++++++++++++ .../octave-modules/ltfat/syntax-error.patch | 15 ++++++ 2 files changed, 69 insertions(+) create mode 100644 pkgs/development/octave-modules/ltfat/default.nix create mode 100644 pkgs/development/octave-modules/ltfat/syntax-error.patch diff --git a/pkgs/development/octave-modules/ltfat/default.nix b/pkgs/development/octave-modules/ltfat/default.nix new file mode 100644 index 0000000000000..505670f6298b1 --- /dev/null +++ b/pkgs/development/octave-modules/ltfat/default.nix @@ -0,0 +1,54 @@ +{ buildOctavePackage +, lib +, fetchurl +, fftw +, fftwSinglePrec +, fftwFloat +, fftwLongDouble +, lapack +, blas +, portaudio +, jdk +}: + +buildOctavePackage rec { + pname = "ltfat"; + version = "2.3.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0gghh5a4w649ff776wvidfvqas87m0n7rqs960pid1d11bnyqqrh"; + }; + + patches = [ + # Fixes a syntax error with performing multiplication. + ./syntax-error.patch + ]; + + buildInputs = [ + fftw + fftwSinglePrec + fftwFloat + fftwLongDouble + lapack + blas + portaudio + jdk + ]; + + meta = with lib; { + name = "The Large Time-Frequency Analysis Toolbox"; + homepage = "https://octave.sourceforge.io/ltfat/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Toolbox for working with time-frequency analysis, wavelets and signal processing"; + longDescription = '' + The Large Time/Frequency Analysis Toolbox (LTFAT) is a Matlab/Octave + toolbox for working with time-frequency analysis, wavelets and signal + processing. It is intended both as an educational and a computational + tool. The toolbox provides a large number of linear transforms including + Gabor and wavelet transforms along with routines for constructing windows + (filter prototypes) and routines for manipulating coefficients. + ''; + }; +} diff --git a/pkgs/development/octave-modules/ltfat/syntax-error.patch b/pkgs/development/octave-modules/ltfat/syntax-error.patch new file mode 100644 index 0000000000000..732030b704342 --- /dev/null +++ b/pkgs/development/octave-modules/ltfat/syntax-error.patch @@ -0,0 +1,15 @@ +diff --git a/inst/nonstatgab/nsdgt.m b/inst/nonstatgab/nsdgt.m +index ac53963..81656cb 100644 +--- a/inst/nonstatgab/nsdgt.m ++++ b/inst/nonstatgab/nsdgt.m +@@ -149,8 +149,8 @@ for ii = 1:N + col = ceil(Lg/M(ii)); + + temp = zeros(col*M(ii),W,assert_classname(f,g{1})); +- temp([end-floor(Lg/2)+1:end,1:ceil(Lg/2)],:) = bsxfun(@ ... +- times,f(win_range,:),g{ii}(idx)); ++ temp([end-floor(Lg/2)+1:end,1:ceil(Lg/2)],:) = bsxfun(@times, ... ++ f(win_range,:),g{ii}(idx)); + + temp = reshape(temp,M(ii),col,W); + X = squeeze(fft(sum(temp,2))); From c45836b1bb3346c814cb4d9804bca48305a8a332 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:19:17 -0600 Subject: [PATCH 37/68] octave.pkgs.mapping: init at 1.4.1 --- .../octave-modules/mapping/default.nix | 28 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/development/octave-modules/mapping/default.nix diff --git a/pkgs/development/octave-modules/mapping/default.nix b/pkgs/development/octave-modules/mapping/default.nix new file mode 100644 index 0000000000000..26cea27a7253d --- /dev/null +++ b/pkgs/development/octave-modules/mapping/default.nix @@ -0,0 +1,28 @@ +{ buildOctavePackage +, lib +, fetchurl +, io # >= 2.2.7 +, geometry # >= 4.0.0 +}: + +buildOctavePackage rec { + pname = "mapping"; + version = "1.4.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0wj0q1rkrqs4qgpjh4vn9kcpdh94pzr6v4jc1vcrjwkp87yjv8c0"; + }; + + requiredOctavePackages = [ + io + geometry + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/mapping/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Simple mapping and GIS .shp .dxf and raster file functions"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index a021f4f1a44d5..8c1bbb76ee32d 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -134,6 +134,8 @@ makeScope newScope (self: inherit (pkgs) fftwFloat fftwLongDouble; }; + mapping = callPackage ../development/octave-modules/mapping { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From a6314f43965e63b6e9590bc6fddaf1aeffb8b5e9 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:22:06 -0600 Subject: [PATCH 38/68] octave.pkgs.matgeom: init at 1.2.2 --- .../octave-modules/matgeom/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/matgeom/default.nix diff --git a/pkgs/development/octave-modules/matgeom/default.nix b/pkgs/development/octave-modules/matgeom/default.nix new file mode 100644 index 0000000000000..b8607cf5dff93 --- /dev/null +++ b/pkgs/development/octave-modules/matgeom/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "matgeom"; + version = "1.2.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "05xfmlh1k3mhq8yag7gr8q1ysl1s43vm46fr1i3gcg9b1kkwi8by"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/matgeom/index.html"; + license = with licenses; [ bsd2 gpl3Plus ]; + maintainers = with maintainers; [ KarlJoad ]; + description = "Geometry toolbox for 2D/3D geometric computing"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 8c1bbb76ee32d..119fe94202307 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -136,6 +136,8 @@ makeScope newScope (self: mapping = callPackage ../development/octave-modules/mapping { }; + matgeom = callPackage ../development/octave-modules/matgeom { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 29b9735f91c4ab756e8b389362586e6060aadf56 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:22:59 -0600 Subject: [PATCH 39/68] octave.pkgs.miscellaneous: init at 1.3.0 --- .../octave-modules/miscellaneous/default.nix | 34 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/development/octave-modules/miscellaneous/default.nix diff --git a/pkgs/development/octave-modules/miscellaneous/default.nix b/pkgs/development/octave-modules/miscellaneous/default.nix new file mode 100644 index 0000000000000..74c3879aa9efa --- /dev/null +++ b/pkgs/development/octave-modules/miscellaneous/default.nix @@ -0,0 +1,34 @@ +{ buildOctavePackage +, lib +, fetchurl +# Build-time dependencies +, mlterm +, ncurses # >= 5 +, units +}: + +buildOctavePackage rec { + pname = "miscellaneous"; + version = "1.3.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "10n107njz24ln7v9a1l3dkh7s7vd6qwgbinrj1nl4wflxsir4l9k"; + }; + + buildInputs = [ + mlterm + ncurses + ]; + + propagatedBuildInputs = [ + units + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/miscellaneous/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Miscellaneous tools that don't fit somewhere else"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 119fe94202307..723b380821165 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -138,6 +138,8 @@ makeScope newScope (self: matgeom = callPackage ../development/octave-modules/matgeom { }; + miscellaneous = callPackage ../development/octave-modules/miscellaneous { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 7a4dc7af1aa61e02411579246216fca19d5b2484 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:24:14 -0600 Subject: [PATCH 40/68] octave.pkgs.msh: init at 1.0.10 --- .../octave-modules/msh/default.nix | 56 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 5 ++ 2 files changed, 61 insertions(+) create mode 100644 pkgs/development/octave-modules/msh/default.nix diff --git a/pkgs/development/octave-modules/msh/default.nix b/pkgs/development/octave-modules/msh/default.nix new file mode 100644 index 0000000000000..a4e876c8128f8 --- /dev/null +++ b/pkgs/development/octave-modules/msh/default.nix @@ -0,0 +1,56 @@ +{ buildOctavePackage +, lib +, fetchurl +# Octave Dependencies +, splines +# Other Dependencies +, gmsh +, gawk +, pkg-config +, dolfin +, autoconf, automake +}: + +buildOctavePackage rec { + pname = "msh"; + version = "1.0.10"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1mb5qrp9y1w1cbzrd9v84430ldy57ca843yspnrgbcqpxyyxbgfz"; + }; + + nativeBuildInputs = [ + pkg-config + autoconf automake + dolfin + ]; + + buildInputs = [ + dolfin + ]; + + propagatedBuildInputs = [ + gmsh + gawk + dolfin + ]; + + requiredOctavePackages = [ + splines + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/msh/index.html"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Create and manage triangular and tetrahedral meshes for Finite Element or Finite Volume PDE solvers"; + longDescription = '' + Create and manage triangular and tetrahedral meshes for Finite Element or + Finite Volume PDE solvers. Use a mesh data structure compatible with + PDEtool. Rely on gmsh for unstructured mesh generation. + ''; + # Not technically broken, but missing some functionality. + # dolfin needs to be its own stand-alone library for the last tests to pass. + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 723b380821165..e568807ea0add 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -140,6 +140,11 @@ makeScope newScope (self: miscellaneous = callPackage ../development/octave-modules/miscellaneous { }; + msh = callPackage ../development/octave-modules/msh { + # PLACEHOLDER until KarlJoad gets dolfin packaged. + dolfin = null; + }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 3c945d5ea34adb6270984f19a42e19b86eb0d2c9 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:25:04 -0600 Subject: [PATCH 41/68] octave.pkgs.mvn: init at 1.1.0 --- .../octave-modules/mvn/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/mvn/default.nix diff --git a/pkgs/development/octave-modules/mvn/default.nix b/pkgs/development/octave-modules/mvn/default.nix new file mode 100644 index 0000000000000..06fd1905604dd --- /dev/null +++ b/pkgs/development/octave-modules/mvn/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "mvn"; + version = "1.1.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "00w69hxqnqdm3744z6p7gvzci44a3gy228x6bgq3xf5n3jwicnmg"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/mvn/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Multivariate normal distribution clustering and utility functions"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index e568807ea0add..b19a2897e0da6 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -145,6 +145,8 @@ makeScope newScope (self: dolfin = null; }; + mvn = callPackage ../development/octave-modules/mvn { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From e59d49eb32cfe7c07e8df09b0236b1fa9dfb2fd8 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:27:31 -0600 Subject: [PATCH 42/68] octave.pkgs.nan: init at 3.5.2 --- .../octave-modules/nan/default.nix | 26 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/development/octave-modules/nan/default.nix diff --git a/pkgs/development/octave-modules/nan/default.nix b/pkgs/development/octave-modules/nan/default.nix new file mode 100644 index 0000000000000..a0517db714bda --- /dev/null +++ b/pkgs/development/octave-modules/nan/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +, blas +}: + +buildOctavePackage rec { + pname = "nan"; + version = "3.5.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0bp8zl50f8qj5sivl88kjdswm035v4li33fiq3v1gmh0pvgbcw7a"; + }; + + buildInputs = [ + blas + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/nan/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "A statistics and machine learning toolbox for data with and w/o missing values"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index b19a2897e0da6..2542d0d655196 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -147,6 +147,8 @@ makeScope newScope (self: mvn = callPackage ../development/octave-modules/mvn { }; + nan = callPackage ../development/octave-modules/nan { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 7321def414a4d04711d780dddbc6e6031eeef297 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:29:00 -0600 Subject: [PATCH 43/68] octave.pkgs.ncarray: init at 1.0.4 --- .../octave-modules/ncarray/default.nix | 31 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/development/octave-modules/ncarray/default.nix diff --git a/pkgs/development/octave-modules/ncarray/default.nix b/pkgs/development/octave-modules/ncarray/default.nix new file mode 100644 index 0000000000000..10db554c87fcd --- /dev/null +++ b/pkgs/development/octave-modules/ncarray/default.nix @@ -0,0 +1,31 @@ +{ buildOctavePackage +, lib +, fetchurl +, netcdf +, statistics +}: + +buildOctavePackage rec { + pname = "ncarray"; + version = "1.0.4"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0v96iziikvq2v7hczhbfs9zmk49v99kn6z3lgibqqpwam175yqgd"; + }; + + buildInputs = [ + netcdf + ]; + + requiredOctavePackages = [ + statistics + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/ncarray/index.html"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Access a single or a collection of NetCDF files as a multi-dimensional array"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 2542d0d655196..ff3255b849abd 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -149,6 +149,8 @@ makeScope newScope (self: nan = callPackage ../development/octave-modules/nan { }; + ncarray = callPackage ../development/octave-modules/ncarray { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 3af68674490af89ac7fe846893a28a386f729c3c Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:30:09 -0600 Subject: [PATCH 44/68] octave.pkgs.netcdf: init at 1.0.14 --- .../octave-modules/netcdf/default.nix | 26 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 4 +++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/development/octave-modules/netcdf/default.nix diff --git a/pkgs/development/octave-modules/netcdf/default.nix b/pkgs/development/octave-modules/netcdf/default.nix new file mode 100644 index 0000000000000..9292da6918cd5 --- /dev/null +++ b/pkgs/development/octave-modules/netcdf/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +, netcdf +}: + +buildOctavePackage rec { + pname = "netcdf"; + version = "1.0.14"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1wdwl76zgcg7kkdxjfjgf23ylzb0x4dyfliffylyl40g6cjym9lf"; + }; + + buildInputs = [ + netcdf + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/netcdf/index.html"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "A NetCDF interface for Octave"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index ff3255b849abd..fff2323be3e18 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -151,6 +151,10 @@ makeScope newScope (self: ncarray = callPackage ../development/octave-modules/ncarray { }; + netcdf = callPackage ../development/octave-modules/netcdf { + inherit (pkgs) netcdf; + }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From bfd539942dafd3a4a2a3779bec5fb6b1bd11518d Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:32:56 -0600 Subject: [PATCH 45/68] octave.pkgs.nurbs: init at 1.3.13 --- .../octave-modules/nurbs/default.nix | 30 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 32 insertions(+) create mode 100644 pkgs/development/octave-modules/nurbs/default.nix diff --git a/pkgs/development/octave-modules/nurbs/default.nix b/pkgs/development/octave-modules/nurbs/default.nix new file mode 100644 index 0000000000000..e5e26d7bb952f --- /dev/null +++ b/pkgs/development/octave-modules/nurbs/default.nix @@ -0,0 +1,30 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "nurbs"; + version = "1.3.13"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0zkyldm63pc3pcal3yvj6af24cvpjvv9qfhf0ihhwcsh4w3yggyv"; + }; + + # Has been fixed in more recent commits, but has not been pushed out as a + # new version yet. + # The sed changes allow nurbs to compile. + patchPhase = '' + sed -i s/feval/octave::feval/g src/*.cc + sed -i s/is_real_type/isreal/g src/*.cc + sed -i s/is_cell/iscell/g src/*.cc + ''; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/nurbs/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Collection of routines for the creation, and manipulation of Non-Uniform Rational B-Splines (NURBS), based on the NURBS toolbox by Mark Spink"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index fff2323be3e18..1def78745abb0 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -155,6 +155,8 @@ makeScope newScope (self: inherit (pkgs) netcdf; }; + nurbs = callPackage ../development/octave-modules/nurbs { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 656fbc8b4cfd342b9b509ff3ffe82f52488be563 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:34:51 -0600 Subject: [PATCH 46/68] octave.pkgs.ocl: init at 1.1.1 --- .../octave-modules/ocl/default.nix | 26 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/development/octave-modules/ocl/default.nix diff --git a/pkgs/development/octave-modules/ocl/default.nix b/pkgs/development/octave-modules/ocl/default.nix new file mode 100644 index 0000000000000..0e47160ad0ea4 --- /dev/null +++ b/pkgs/development/octave-modules/ocl/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "ocl"; + version = "1.1.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0ayi5x9zk9p4zm0qsr3i94lyp5468c9d1a7mqrqjqpdvkhrw0xnm"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/ocl/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Use OpenCL for parallelization"; + longDescription = '' + Package using OpenCL for parallelization, mostly suitable to + Single-Instruction-Multiple-Data (SIMD) computations, selectively + using available OpenCL hardware and drivers. + ''; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 1def78745abb0..b7492fcb1f34f 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -157,6 +157,8 @@ makeScope newScope (self: nurbs = callPackage ../development/octave-modules/nurbs { }; + ocl = callPackage ../development/octave-modules/ocl { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 8919d9886254d6d9d01d844906bcdf905a129862 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:42:25 -0600 Subject: [PATCH 47/68] octave.pkgs.octclip: init at 2.0.1 --- .../octave-modules/octclip/default.nix | 29 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/development/octave-modules/octclip/default.nix diff --git a/pkgs/development/octave-modules/octclip/default.nix b/pkgs/development/octave-modules/octclip/default.nix new file mode 100644 index 0000000000000..43bcfcd7d849b --- /dev/null +++ b/pkgs/development/octave-modules/octclip/default.nix @@ -0,0 +1,29 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "octclip"; + version = "2.0.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "05ijh3izgfaan84n6zp690nap9vnz0zicjd0cgvd1c6askm7vxql"; + }; + + # The only compilation problem is that no formatting specifier was provided + # for the error function. Because errorText is a string, I provide such a + # formatting specifier. + patchPhase = '' + sed -i s/"error(errorText)"/"error(\"%s\", errorText)"/g src/*.cc + ''; + + meta = with lib; { + name = "GNU Octave Clipping Polygons Tool"; + homepage = "https://octave.sourceforge.io/octclip/index.html"; + license = with licenses; [ gpl3Plus ]; # modified BSD? + maintainers = with maintainers; [ KarlJoad ]; + description = "Perform boolean operations with polygons using the Greiner-Hormann algorithm"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index b7492fcb1f34f..a806f6c650ef3 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -159,6 +159,8 @@ makeScope newScope (self: ocl = callPackage ../development/octave-modules/ocl { }; + octclip = callPackage ../development/octave-modules/octclip { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 7913c41c719ac01bd93f5dc87038b2b60ca14f3a Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:45:14 -0600 Subject: [PATCH 48/68] octave.pkgs.octproj: init at 2.0.1 --- .../octave-modules/octproj/default.nix | 32 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/development/octave-modules/octproj/default.nix diff --git a/pkgs/development/octave-modules/octproj/default.nix b/pkgs/development/octave-modules/octproj/default.nix new file mode 100644 index 0000000000000..74596c015f856 --- /dev/null +++ b/pkgs/development/octave-modules/octproj/default.nix @@ -0,0 +1,32 @@ +{ buildOctavePackage +, lib +, fetchurl +, proj # >= 6.3.0 +}: + +buildOctavePackage rec { + pname = "octproj"; + version = "2.0.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1mb8gb0r8kky47ap85h9qqdvs40mjp3ya0nkh45gqhy67ml06paq"; + }; + + # The sed changes below allow for the package to be compiled. + patchPhase = '' + sed -i s/"error(errorText)"/"error(\"%s\", errorText)"/g src/*.cc + sed -i s/"warning(errorText)"/"warning(\"%s\", errorText)"/g src/*.cc + ''; + + propagatedBuildInputs = [ + proj + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/octproj/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "GNU Octave bindings to PROJ library for cartographic projections and CRS transformations"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index a806f6c650ef3..1f1625c4a07df 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -161,6 +161,8 @@ makeScope newScope (self: octclip = callPackage ../development/octave-modules/octclip { }; + octproj = callPackage ../development/octave-modules/octproj { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 25b1e33707256e5737156b5964662b5e8f4634d4 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:45:58 -0600 Subject: [PATCH 49/68] octave.pkgs.optics: init at 0.1.4 --- .../octave-modules/optics/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/optics/default.nix diff --git a/pkgs/development/octave-modules/optics/default.nix b/pkgs/development/octave-modules/optics/default.nix new file mode 100644 index 0000000000000..1324c6cd4ba33 --- /dev/null +++ b/pkgs/development/octave-modules/optics/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "optics"; + version = "0.1.4"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1d9z82241a1zmr8m1vgw10pyk81vn0q4dcyx7d05pigfn5gykrgc"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/optics/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Functions covering various aspects of optics"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 1f1625c4a07df..7ce9447586aff 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -163,6 +163,8 @@ makeScope newScope (self: octproj = callPackage ../development/octave-modules/octproj { }; + optics = callPackage ../development/octave-modules/optics { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 686dc5c60d9de7bfccc46875ca0f621ef29a3913 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:47:13 -0600 Subject: [PATCH 50/68] octave.pkgs.optim: init at 1.6.0 --- .../octave-modules/optim/default.nix | 36 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/development/octave-modules/optim/default.nix diff --git a/pkgs/development/octave-modules/optim/default.nix b/pkgs/development/octave-modules/optim/default.nix new file mode 100644 index 0000000000000..b9561faafb127 --- /dev/null +++ b/pkgs/development/octave-modules/optim/default.nix @@ -0,0 +1,36 @@ +{ buildOctavePackage +, lib +, fetchurl +, struct +, statistics +, lapack +, blas +}: + +buildOctavePackage rec { + pname = "optim"; + version = "1.6.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1z2h8gy99glxh5qi3r22am2vdirlbklkq0lx4r8jrx1ak7awh47r"; + }; + + buildInputs = [ + lapack + blas + ]; + + requiredOctavePackages = [ + struct + statistics + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/optim/index.html"; + license = with licenses; [ gpl3Plus publicDomain ]; + # Modified BSD code seems removed + maintainers = with maintainers; [ KarlJoad ]; + description = "Non-linear optimization toolkit"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 7ce9447586aff..d78f66bca76dc 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -165,6 +165,8 @@ makeScope newScope (self: optics = callPackage ../development/octave-modules/optics { }; + optim = callPackage ../development/octave-modules/optim { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 36695031c3e12e3c0804d82854196be1a2482f8b Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:48:47 -0600 Subject: [PATCH 51/68] octave.pkgs.optiminterp: init at 0.3.6 --- .../octave-modules/optiminterp/default.nix | 31 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/development/octave-modules/optiminterp/default.nix diff --git a/pkgs/development/octave-modules/optiminterp/default.nix b/pkgs/development/octave-modules/optiminterp/default.nix new file mode 100644 index 0000000000000..8409a10104e6a --- /dev/null +++ b/pkgs/development/octave-modules/optiminterp/default.nix @@ -0,0 +1,31 @@ +{ buildOctavePackage +, lib +, fetchurl +, gfortran +}: + +buildOctavePackage rec { + pname = "optiminterp"; + version = "0.3.6"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "05nzj2jmrczbnsr64w2a7kww19s6yialdqnsbg797v11ii7aiylc"; + }; + + nativeBuildInputs = [ + gfortran + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/optiminterp/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "An optimal interpolation toolbox for octave"; + longDescription = '' + An optimal interpolation toolbox for octave. This package provides + functions to perform a n-dimensional optimal interpolations of + arbitrarily distributed data points. + ''; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index d78f66bca76dc..17ed4fe221096 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -167,6 +167,8 @@ makeScope newScope (self: optim = callPackage ../development/octave-modules/optim { }; + optiminterp = callPackage ../development/octave-modules/optiminterp { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 68f2862b36cc9be298ce23a6bc31acba749f26e0 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:50:05 -0600 Subject: [PATCH 52/68] octave.pkgs.parallel: init at 4.0.0 --- .../octave-modules/parallel/default.nix | 36 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/development/octave-modules/parallel/default.nix diff --git a/pkgs/development/octave-modules/parallel/default.nix b/pkgs/development/octave-modules/parallel/default.nix new file mode 100644 index 0000000000000..0ea1d4d9df234 --- /dev/null +++ b/pkgs/development/octave-modules/parallel/default.nix @@ -0,0 +1,36 @@ +{ buildOctavePackage +, lib +, fetchurl +, struct +, gnutls +, pkg-config +}: + +buildOctavePackage rec { + pname = "parallel"; + version = "4.0.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0wmpak01rsccrnb8is7fsjdlxw15157sqyf9s2fabr16yykfmvi8"; + }; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + gnutls + ]; + + requiredOctavePackages = [ + struct + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/parallel/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Parallel execution package"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 17ed4fe221096..9b319c06ae088 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -169,6 +169,8 @@ makeScope newScope (self: optiminterp = callPackage ../development/octave-modules/optiminterp { }; + parallel = callPackage ../development/octave-modules/parallel { }; + signal = callPackage ../development/octave-modules/signal { }; symbolic = callPackage ../development/octave-modules/symbolic { From 00a723b8b373dd5b331d520815dd4949a88ac758 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:52:08 -0600 Subject: [PATCH 53/68] octave.pkgs.struct: init at 1.0.16 --- .../octave-modules/struct/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/struct/default.nix diff --git a/pkgs/development/octave-modules/struct/default.nix b/pkgs/development/octave-modules/struct/default.nix new file mode 100644 index 0000000000000..a69a8e4b6e227 --- /dev/null +++ b/pkgs/development/octave-modules/struct/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "struct"; + version = "1.0.16"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0gx20r126f0ccl4yflp823xi77p8fh4acx1fv0mmcsglmx4c4vgm"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/struct/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Additional structure manipulation functions"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 9b319c06ae088..be0cfa56c395e 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -173,6 +173,8 @@ makeScope newScope (self: signal = callPackage ../development/octave-modules/signal { }; + struct = callPackage ../development/octave-modules/struct { }; + symbolic = callPackage ../development/octave-modules/symbolic { inherit (octave) python; }; From d8612d65983236f4cfa2d246366736e742ec7121 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:55:29 -0600 Subject: [PATCH 54/68] octave.pkgs.quaternion: init at 2.4.0 --- .../octave-modules/quaternion/default.nix | 29 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/development/octave-modules/quaternion/default.nix diff --git a/pkgs/development/octave-modules/quaternion/default.nix b/pkgs/development/octave-modules/quaternion/default.nix new file mode 100644 index 0000000000000..4681b699684c4 --- /dev/null +++ b/pkgs/development/octave-modules/quaternion/default.nix @@ -0,0 +1,29 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "quaternion"; + version = "2.4.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "040ncksf0xz32qmi4484xs3q01nappxrsvwwa60g04yjy7c4sbac"; + }; + + # Octave replaced many of the is_thing_type check function with isthing. + # The patch changes the occurrences of the old functions. + patchPhase = '' + sed -i s/is_numeric_type/isnumeric/g src/*.cc + sed -i s/is_real_type/isreal/g src/*.cc + sed -i s/is_bool_type/islogical/g src/*.cc + ''; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/quaternion/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Quaternion package for GNU Octave, includes a quaternion class with overloaded operators"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index be0cfa56c395e..bfef539d08ea6 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -171,6 +171,8 @@ makeScope newScope (self: parallel = callPackage ../development/octave-modules/parallel { }; + quaternion = callPackage ../development/octave-modules/quaternion { }; + signal = callPackage ../development/octave-modules/signal { }; struct = callPackage ../development/octave-modules/struct { }; From 5c3b1a000c936917da8dc70319221256d6447cc9 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 11:56:32 -0600 Subject: [PATCH 55/68] octave.pkgs.queueing: init at 1.2.7 --- .../octave-modules/queueing/default.nix | 32 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/development/octave-modules/queueing/default.nix diff --git a/pkgs/development/octave-modules/queueing/default.nix b/pkgs/development/octave-modules/queueing/default.nix new file mode 100644 index 0000000000000..75b3e67e35369 --- /dev/null +++ b/pkgs/development/octave-modules/queueing/default.nix @@ -0,0 +1,32 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "queueing"; + version = "1.2.7"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1yhw277i1qgmddf6wbfb6a4zrfhvplkmfr20q1l15z4xi8afnm6d"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/queueing/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Provides functions for queueing networks and Markov chains analysis"; + longDescription = '' + The queueing package provides functions for queueing networks and Markov + chains analysis. This package can be used to compute steady-state + performance measures for open, closed and mixed networks with single or + multiple job classes. Mean Value Analysis (MVA), convolution, and various + bounding techniques are implemented. Furthermore, several transient and + steady-state performance measures for Markov chains can be computed, such + as state occupancy probabilities, mean time to absorption, time-averaged + sojourn times and so forth. Discrete- and continuous-time Markov chains + are supported. + ''; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index bfef539d08ea6..e27fd20a4b8fd 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -173,6 +173,8 @@ makeScope newScope (self: quaternion = callPackage ../development/octave-modules/quaternion { }; + queueing = callPackage ../development/octave-modules/queueing { }; + signal = callPackage ../development/octave-modules/signal { }; struct = callPackage ../development/octave-modules/struct { }; From b1fb1a3ee7849fe3d8d7ad606a57e18b80828476 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:00:46 -0600 Subject: [PATCH 56/68] octave.pkgs.sockets: init at 1.2.1 --- .../octave-modules/sockets/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/sockets/default.nix diff --git a/pkgs/development/octave-modules/sockets/default.nix b/pkgs/development/octave-modules/sockets/default.nix new file mode 100644 index 0000000000000..688bd6a0e9291 --- /dev/null +++ b/pkgs/development/octave-modules/sockets/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "sockets"; + version = "1.2.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "18f1zpqcf6h9b4fb0x2c5nvc3mvgj1141f1s8d9gnlhlrjlq8vqg"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/sockets/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Socket functions for networking from within octave"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index e27fd20a4b8fd..eb8770dc3f6d1 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -177,6 +177,8 @@ makeScope newScope (self: signal = callPackage ../development/octave-modules/signal { }; + sockets = callPackage ../development/octave-modules/sockets { }; + struct = callPackage ../development/octave-modules/struct { }; symbolic = callPackage ../development/octave-modules/symbolic { From c968c7a8aafdc846e251d536d1ba3f47eeb82ea8 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:02:29 -0600 Subject: [PATCH 57/68] octave.pkgs.stk: init at 2.6.1 --- .../octave-modules/stk/default.nix | 32 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/development/octave-modules/stk/default.nix diff --git a/pkgs/development/octave-modules/stk/default.nix b/pkgs/development/octave-modules/stk/default.nix new file mode 100644 index 0000000000000..16ac7b7d03dcb --- /dev/null +++ b/pkgs/development/octave-modules/stk/default.nix @@ -0,0 +1,32 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "stk"; + version = "2.6.1"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1rqndfankwlwm4igw3xqpnrrl749zz1d5pjzh1qbfns7ixwrm19a"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/stk/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "STK is a (not so) Small Toolbox for Kriging"; + longDescription = '' + The STK is a (not so) Small Toolbox for Kriging. Its primary focus is on + the interpolation/regression technique known as kriging, which is very + closely related to Splines and Radial Basis Functions, and can be + interpreted as a non-parametric Bayesian method using a Gaussian Process + (GP) prior. The STK also provides tools for the sequential and non-sequential + design of experiments. Even though it is, currently, mostly geared towards + the Design and Analysis of Computer Experiments (DACE), the STK can be + useful for other applications areas (such as Geostatistics, Machine + Learning, Non-parametric Regression, etc.). + ''; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index eb8770dc3f6d1..9df74bd2b3da4 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -179,6 +179,8 @@ makeScope newScope (self: sockets = callPackage ../development/octave-modules/sockets { }; + stk = callPackage ../development/octave-modules/stk { }; + struct = callPackage ../development/octave-modules/struct { }; symbolic = callPackage ../development/octave-modules/symbolic { From 75918e10fae803aa46fc40f3475f75e91dab846a Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:05:39 -0600 Subject: [PATCH 58/68] octave.pkgs.sparsersb: init at 1.0.8 --- .../octave-modules/sparsersb/default.nix | 28 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 6 ++++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/development/octave-modules/sparsersb/default.nix diff --git a/pkgs/development/octave-modules/sparsersb/default.nix b/pkgs/development/octave-modules/sparsersb/default.nix new file mode 100644 index 0000000000000..b8147f8d2815d --- /dev/null +++ b/pkgs/development/octave-modules/sparsersb/default.nix @@ -0,0 +1,28 @@ +{ buildOctavePackage +, lib +, fetchurl +, librsb +}: + +buildOctavePackage rec { + pname = "sparsersb"; + version = "1.0.8"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0nl7qppa1cm51188hqhbfswlih9hmy1yz7v0f5i07z0g0kbd62xw"; + }; + + buildInputs = [ + librsb + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/sparsersb/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Interface to the librsb package implementing the RSB sparse matrix format for fast shared-memory sparse matrix computations"; + # Mark this way until KarlJoad builds librsb specifically for this package. + broken = true; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 9df74bd2b3da4..f0f40213682ad 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -179,6 +179,12 @@ makeScope newScope (self: sockets = callPackage ../development/octave-modules/sockets { }; + sparsersb = callPackage ../development/octave-modules/sparsersb { + librsb = null; + # TODO: Package the librsb library to build this package. + # http://librsb.sourceforge.net/ + }; + stk = callPackage ../development/octave-modules/stk { }; struct = callPackage ../development/octave-modules/struct { }; From 545804e2e0d928f818be8c0f25333ded7e9af594 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:06:36 -0600 Subject: [PATCH 59/68] octave.pkgs.splines: init at 1.3.3 --- .../octave-modules/splines/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/splines/default.nix diff --git a/pkgs/development/octave-modules/splines/default.nix b/pkgs/development/octave-modules/splines/default.nix new file mode 100644 index 0000000000000..69d5e46147d6c --- /dev/null +++ b/pkgs/development/octave-modules/splines/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "splines"; + version = "1.3.3"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "16wisph8axc5xci0h51zj0y0x2wj6c9zybi2sjpb9v8z9dagjjqa"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/splines/index.html"; + license = with licenses; [ gpl3Plus publicDomain ]; + maintainers = with maintainers; [ KarlJoad ]; + description = "Additional spline functions"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index f0f40213682ad..7bee9e1f5cd0f 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -187,6 +187,8 @@ makeScope newScope (self: stk = callPackage ../development/octave-modules/stk { }; + splines = callPackage ../development/octave-modules/splines { }; + struct = callPackage ../development/octave-modules/struct { }; symbolic = callPackage ../development/octave-modules/symbolic { From 57c891908343c467ea595b7641353952b1eded65 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:07:32 -0600 Subject: [PATCH 60/68] octave.pkgs.statistics: init at 1.4.2 --- .../octave-modules/statistics/default.nix | 26 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/development/octave-modules/statistics/default.nix diff --git a/pkgs/development/octave-modules/statistics/default.nix b/pkgs/development/octave-modules/statistics/default.nix new file mode 100644 index 0000000000000..61133ec49e540 --- /dev/null +++ b/pkgs/development/octave-modules/statistics/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +, io +}: + +buildOctavePackage rec { + pname = "statistics"; + version = "1.4.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0iv2hw3zp7h69n8ncfjfgm29xaihdl5gp2slcw1yf23mhd7q2xkr"; + }; + + requiredOctavePackages = [ + io + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/statistics/index.html"; + license = with licenses; [ gpl3Plus publicDomain ]; + maintainers = with maintainers; [ KarlJoad ]; + description = "Additional statistics functions for Octave"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 7bee9e1f5cd0f..d346a7d1e7571 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -189,6 +189,8 @@ makeScope newScope (self: splines = callPackage ../development/octave-modules/splines { }; + statistics = callPackage ../development/octave-modules/statistics { }; + struct = callPackage ../development/octave-modules/struct { }; symbolic = callPackage ../development/octave-modules/symbolic { From 49d3aacfee83ea51b772ab9a8f3a97e7accbee5c Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:08:51 -0600 Subject: [PATCH 61/68] octave.pkgs.strings: init at 1.2.0 --- .../octave-modules/strings/default.nix | 37 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 + 2 files changed, 39 insertions(+) create mode 100644 pkgs/development/octave-modules/strings/default.nix diff --git a/pkgs/development/octave-modules/strings/default.nix b/pkgs/development/octave-modules/strings/default.nix new file mode 100644 index 0000000000000..7b556272f5da5 --- /dev/null +++ b/pkgs/development/octave-modules/strings/default.nix @@ -0,0 +1,37 @@ +{ buildOctavePackage +, lib +, fetchurl +, pcre +}: + +buildOctavePackage rec { + pname = "strings"; + version = "1.2.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1b0ravfvq3bxd0w3axjfsx13mmmkifmqz6pfdgyf2s8vkqnp1qng"; + }; + + buildInputs = [ + pcre + ]; + + # The gripes library no longer exists. + # https://build.opensuse.org/package/view_file/openSUSE:Backports:SLE-15-SP3/octave-forge-strings/octave-forge-strings.spec + # toascii is a deprecated function. Has been fixed in recent commits, but has + # not been released yet. + # https://sourceforge.net/p/octave/strings/ci/2db1dbb75557eef94605cb4ac682783ab78ac8d8/ + patchPhase = '' + sed -i -s -e 's/gripes.h/errwarn.h/' -e 's/gripe_/err_/g' src/*.cc + sed -i s/toascii/double/g inst/*.m + ''; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/strings/index.html"; + license = licenses.gpl3Plus; + # Claims to have a freebsd license, but I found none. + maintainers = with maintainers; [ KarlJoad ]; + description = "Additional functions for manipulation and analysis of strings"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index d346a7d1e7571..dd7f1879871e5 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -191,6 +191,8 @@ makeScope newScope (self: statistics = callPackage ../development/octave-modules/statistics { }; + strings = callPackage ../development/octave-modules/strings { }; + struct = callPackage ../development/octave-modules/struct { }; symbolic = callPackage ../development/octave-modules/symbolic { From 609223ec63f1b07f3b1bd0561dad4b7b8e1b55fa Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:11:15 -0600 Subject: [PATCH 62/68] octave.pkgs.tisean: init at 0.2.3 --- .../octave-modules/tisean/default.nix | 33 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/development/octave-modules/tisean/default.nix diff --git a/pkgs/development/octave-modules/tisean/default.nix b/pkgs/development/octave-modules/tisean/default.nix new file mode 100644 index 0000000000000..b21ef0a5f56ac --- /dev/null +++ b/pkgs/development/octave-modules/tisean/default.nix @@ -0,0 +1,33 @@ +{ buildOctavePackage +, lib +, fetchurl +# Octave dependencies +, signal # >= 1.3.0 +# Build dependencies +, gfortran +}: + +buildOctavePackage rec { + pname = "tisean"; + version = "0.2.3"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0nc2d9h91glxzmpizxdrc2dablw4bqhqhzs37a394c36myk4xjdv"; + }; + + nativeBuildInputs = [ + gfortran + ]; + + requiredOctavePackages = [ + signal + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/tisean/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Port of TISEAN 3.0.1"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index dd7f1879871e5..ad81a48e68085 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -199,4 +199,6 @@ makeScope newScope (self: inherit (octave) python; }; + tisean = callPackage ../development/octave-modules/tisean { }; + }) From 455befa3784d8cceb431a5e9cd8ce06b102513b0 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:12:25 -0600 Subject: [PATCH 63/68] octave.pkgs.tsa: init at 4.6.2 --- .../octave-modules/tsa/default.nix | 26 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/development/octave-modules/tsa/default.nix diff --git a/pkgs/development/octave-modules/tsa/default.nix b/pkgs/development/octave-modules/tsa/default.nix new file mode 100644 index 0000000000000..a6320f0fc01c2 --- /dev/null +++ b/pkgs/development/octave-modules/tsa/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +, nan # > 3.0.0 +}: + +buildOctavePackage rec { + pname = "tsa"; + version = "4.6.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0p2cjszzjwhp4ih3q3r67qnikgxc0fwxc12p3727jbdvzq2h10mn"; + }; + + requiredOctavePackages = [ + nan + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/tsa/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Stochastic concepts and maximum entropy methods for time series analysis"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index ad81a48e68085..d6ffd7b374637 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -201,4 +201,6 @@ makeScope newScope (self: tisean = callPackage ../development/octave-modules/tisean { }; + tsa = callPackage ../development/octave-modules/tsa { }; + }) From 2c9224cd8f4a227936589508833ab4f5b0398151 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:13:10 -0600 Subject: [PATCH 64/68] octave.pkgs.vibes: init at 0.2.0 --- .../octave-modules/vibes/default.nix | 39 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 6 +++ 2 files changed, 45 insertions(+) create mode 100644 pkgs/development/octave-modules/vibes/default.nix diff --git a/pkgs/development/octave-modules/vibes/default.nix b/pkgs/development/octave-modules/vibes/default.nix new file mode 100644 index 0000000000000..f60a5d7339a08 --- /dev/null +++ b/pkgs/development/octave-modules/vibes/default.nix @@ -0,0 +1,39 @@ +{ buildOctavePackage +, lib +, fetchurl +, vibes +}: + +buildOctavePackage rec { + pname = "vibes"; + version = "0.2.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1zn86rcsjkqg67hphz5inxc5xkgr18sby8za68zhppc2z7pd91ng"; + }; + + buildInputs = [ + vibes + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/vibes/index.html"; + license = with licenses; [ gpl3Plus mit ]; + maintainers = with maintainers; [ KarlJoad ]; + description = "Easily display results (boxes, pavings) from interval methods"; + longDescription = '' + The VIBes API allows one to easily display results (boxes, pavings) from + interval methods. VIBes consists in two parts: (1) the VIBes application + that features viewing, annotating and exporting figures, and (2) the + VIBes API that enables your program to communicate with the viewer in order + to draw figures. This package integrates the VIBes API into Octave. The + VIBes application is required for operation and must be installed + seperately. Data types from third-party interval arithmetic libraries for + Octave are also supported. + ''; + # Marked this way until KarlJoad gets around to packaging the vibes program. + # https://github.com/ENSTABretagneRobotics/VIBES + broken = true; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index d6ffd7b374637..27db2aa5d2c80 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -203,4 +203,10 @@ makeScope newScope (self: tsa = callPackage ../development/octave-modules/tsa { }; + vibes = callPackage ../development/octave-modules/vibes { + vibes = null; + # TODO: Need to package vibes: + # https://github.com/ENSTABretagneRobotics/VIBES + }; + }) From 97ac699883f575385b086cf10c2584d92854b64a Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:14:44 -0600 Subject: [PATCH 65/68] octave.pkgs.video: init at 2.0.0 --- .../octave-modules/video/default.nix | 31 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/development/octave-modules/video/default.nix diff --git a/pkgs/development/octave-modules/video/default.nix b/pkgs/development/octave-modules/video/default.nix new file mode 100644 index 0000000000000..8467da98be99e --- /dev/null +++ b/pkgs/development/octave-modules/video/default.nix @@ -0,0 +1,31 @@ +{ buildOctavePackage +, lib +, fetchurl +, pkg-config +, ffmpeg +}: + +buildOctavePackage rec { + pname = "video"; + version = "2.0.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "0s6j3c4dh5nsbh84s7vnd2ajcayy1gn07b4fcyrcynch3wl28mrv"; + }; + + nativeBuildInputs = [ + pkg-config + ]; + + propagatedBuildInputs = [ + ffmpeg + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/video/index.html"; + license = with licenses; [ gpl3Plus bsd3 ]; + maintainers = with maintainers; [ KarlJoad ]; + description = "Wrapper for OpenCV's CvCapture_FFMPEG and CvVideoWriter_FFMPEG"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 27db2aa5d2c80..f8fc6151c828c 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -209,4 +209,6 @@ makeScope newScope (self: # https://github.com/ENSTABretagneRobotics/VIBES }; + video = callPackage ../development/octave-modules/video { }; + }) From 487f5ba20d275a10fe707605916dc3e1bd410201 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:15:44 -0600 Subject: [PATCH 66/68] octave.pkgs.vrml: init at 1.0.13 --- .../octave-modules/vrml/default.nix | 41 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 4 ++ 2 files changed, 45 insertions(+) create mode 100644 pkgs/development/octave-modules/vrml/default.nix diff --git a/pkgs/development/octave-modules/vrml/default.nix b/pkgs/development/octave-modules/vrml/default.nix new file mode 100644 index 0000000000000..e46e621b80d9a --- /dev/null +++ b/pkgs/development/octave-modules/vrml/default.nix @@ -0,0 +1,41 @@ +{ buildOctavePackage +, lib +, fetchurl +# Octave dependencies +, linear-algebra +, miscellaneous +, struct +, statistics +# Runtime dependencies +, freewrl +}: + +buildOctavePackage rec { + pname = "vrml"; + version = "1.0.13"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "1mx93k150agd27mbzvds13v9z0x36j68hwpdvlvjmcl2fga5fly4"; + }; + + propagatedBuildInputs = [ + freewrl + ]; + + requiredOctavePackages = [ + linear-algebra + miscellaneous + struct + statistics + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/vrml/index.html"; + license = with licenses; [ gpl3Plus fdl12Plus ]; + maintainers = with maintainers; [ KarlJoad ]; + description = "3D graphics using VRML"; + # Marked this way until KarlJoad gets freewrl as a runtime dependency. + broken = true; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index f8fc6151c828c..253f081318c5e 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -211,4 +211,8 @@ makeScope newScope (self: video = callPackage ../development/octave-modules/video { }; + vrml = callPackage ../development/octave-modules/vrml { + freewrl = null; + }; + }) From 04129d34074fcac16ba9f5d0086e0f9e7c0e2b99 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:16:44 -0600 Subject: [PATCH 67/68] octave.pkgs.windows: init at 1.5.0 --- .../octave-modules/windows/default.nix | 21 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/octave-modules/windows/default.nix diff --git a/pkgs/development/octave-modules/windows/default.nix b/pkgs/development/octave-modules/windows/default.nix new file mode 100644 index 0000000000000..274ba1e3b7dd6 --- /dev/null +++ b/pkgs/development/octave-modules/windows/default.nix @@ -0,0 +1,21 @@ +{ buildOctavePackage +, lib +, fetchurl +}: + +buildOctavePackage rec { + pname = "windows"; + version = "1.5.0"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "05bsf3q816b9vwgmjdm761ybhmk8raq6dzxqvd11brma0granx3a"; + }; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/windows/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "Provides COM interface and additional functionality on Windows"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 253f081318c5e..895b7bd75e52f 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -215,4 +215,6 @@ makeScope newScope (self: freewrl = null; }; + windows = callPackage ../development/octave-modules/windows { }; + }) From 64bacd1be6e9d0ac4b027287e8a06319b6da4879 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 6 Jan 2021 12:19:42 -0600 Subject: [PATCH 68/68] octave.pkgs.zeromq: init at 1.5.2 --- .../octave-modules/zeromq/default.nix | 26 +++++++++++++++++++ pkgs/top-level/octave-packages.nix | 4 +++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/development/octave-modules/zeromq/default.nix diff --git a/pkgs/development/octave-modules/zeromq/default.nix b/pkgs/development/octave-modules/zeromq/default.nix new file mode 100644 index 0000000000000..7a8f7f6d16a15 --- /dev/null +++ b/pkgs/development/octave-modules/zeromq/default.nix @@ -0,0 +1,26 @@ +{ buildOctavePackage +, lib +, fetchurl +, zeromq +}: + +buildOctavePackage rec { + pname = "zeromq"; + version = "1.5.2"; + + src = fetchurl { + url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; + sha256 = "18h1039ri7dr37jv20cvj5vhw7b57frrda0hhbvlgixinbqmn9j7"; + }; + + propagatedBuildInputs = [ + zeromq + ]; + + meta = with lib; { + homepage = "https://octave.sourceforge.io/zeromq/index.html"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ KarlJoad ]; + description = "ZeroMQ bindings for GNU Octave"; + }; +} diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 895b7bd75e52f..6278a7042e1bd 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -217,4 +217,8 @@ makeScope newScope (self: windows = callPackage ../development/octave-modules/windows { }; + zeromq = callPackage ../development/octave-modules/zeromq { + inherit (pkgs) zeromq; + }; + })