octavePackages: remove broken packages

Remove fem-fenics, level-set, parallel, sparsersb, tisean, vibes, and
vrml packages which have been marked broken since NixOS 24.05 and
remain unfixed.

Per RFC 180, packages broken for a full release cycle are subject
to removal.

https://github.com/NixOS/rfcs/pull/180
This commit is contained in:
Jörg Thalheim 2026-02-05 15:10:15 +01:00
parent 1590e21719
commit d7d4c51894
9 changed files with 12 additions and 313 deletions

View file

@ -1,6 +1,7 @@
{
stdenv,
pkgs,
config,
lib,
fetchurl,
gfortran,
@ -207,6 +208,7 @@ stdenv.mkDerivation (finalAttrs: {
octavePackages = import ../../../top-level/octave-packages.nix {
pkgs = allPkgs;
inherit
config
lib
stdenv
fetchurl

View file

@ -1,36 +0,0 @@
{
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 = {
homepage = "https://gnu-octave.github.io/packages/fem-fenics/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.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;
};
}

View file

@ -1,57 +0,0 @@
{
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...
postPatch = ''
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 = {
name = "Level Set";
homepage = "https://gnu-octave.github.io/packages/level-set/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ KarlJoad ];
description = "Routines for calculating the time-evolution of the level-set equation and extracting geometric information from the level-set function";
# Got broke with octave 8.x update, and wasn't updated since 2019
broken = true;
};
}

View file

@ -1,43 +0,0 @@
{
buildOctavePackage,
lib,
fetchurl,
struct,
gnutls,
pkg-config,
}:
buildOctavePackage rec {
pname = "parallel";
version = "4.0.1";
src = fetchurl {
url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
sha256 = "1h8vw2r42393px6dk10y3lhpxl168r9d197f9whz6lbk2rg571pa";
};
patches = [
../database/c_verror.patch
];
nativeBuildInputs = [
pkg-config
];
buildInputs = [
gnutls
];
requiredOctavePackages = [
struct
];
meta = {
homepage = "https://gnu-octave.github.io/packages/parallel/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ KarlJoad ];
description = "Parallel execution package";
# Although upstream has added an identical patch to that of ../database, it
# still won't build with octave>8.1
broken = true;
};
}

View file

@ -1,29 +0,0 @@
{
buildOctavePackage,
lib,
fetchurl,
librsb,
}:
buildOctavePackage rec {
pname = "sparsersb";
version = "1.0.9";
src = fetchurl {
url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
sha256 = "0jyy2m7wylzyjqj9n6mjizhj0ccq8xnxm2g6pdlrmncxq1401khd";
};
propagatedBuildInputs = [
librsb
];
meta = {
homepage = "https://gnu-octave.github.io/packages/sparsersb/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ KarlJoad ];
description = "Interface to the librsb package implementing the RSB sparse matrix format for fast shared-memory sparse matrix computations";
# Broken since octave>8.x
broken = true;
};
}

View file

@ -1,36 +0,0 @@
{
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 = {
homepage = "https://gnu-octave.github.io/packages/tisean/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ KarlJoad ];
description = "Port of TISEAN 3.0.1";
# Broken since octave 8.x update, and wasn't updated since 2021
broken = true;
};
}

View file

@ -1,43 +0,0 @@
{
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 = {
homepage = "https://gnu-octave.github.io/packages/vibes/";
license = with lib.licenses; [
gpl3Plus
mit
];
maintainers = with lib.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
separately. 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;
};
}

View file

@ -1,45 +0,0 @@
{
buildOctavePackage,
lib,
fetchurl,
# Octave dependencies
linear-algebra,
miscellaneous,
struct,
statistics,
# Runtime dependencies
freewrl,
}:
buildOctavePackage rec {
pname = "vrml";
version = "1.0.14";
src = fetchurl {
url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
sha256 = "sha256-Vfj0Q2CyOi7CrphZSl10Xv7QxTSvWdGk0Ya+SiewqV4=";
};
propagatedBuildInputs = [
freewrl
];
requiredOctavePackages = [
linear-algebra
miscellaneous
struct
statistics
];
meta = {
homepage = "https://gnu-octave.github.io/packages/vrml/";
license = with lib.licenses; [
gpl3Plus
fdl12Plus
];
maintainers = with lib.maintainers; [ KarlJoad ];
description = "3D graphics using VRML";
# Marked this way until KarlJoad gets freewrl as a runtime dependency.
broken = true;
};
}

View file

@ -13,6 +13,7 @@
# from outside, we can `inherit` them from `pkgs`.
{
pkgs,
config,
lib,
stdenv,
fetchurl,
@ -91,12 +92,6 @@ makeScope newScope (
econometrics = callPackage ../development/octave-modules/econometrics { };
fem-fenics = callPackage ../development/octave-modules/fem-fenics {
# PLACEHOLDER until KarlJoad gets dolfin packaged.
dolfin = null;
ffc = null;
};
fits = callPackage ../development/octave-modules/fits { };
financial = callPackage ../development/octave-modules/financial { };
@ -131,8 +126,6 @@ makeScope newScope (
interval = callPackage ../development/octave-modules/interval { };
level-set = callPackage ../development/octave-modules/level-set { };
linear-algebra = callPackage ../development/octave-modules/linear-algebra { };
lssa = callPackage ../development/octave-modules/lssa { };
@ -182,8 +175,6 @@ makeScope newScope (
optiminterp = callPackage ../development/octave-modules/optiminterp { };
parallel = callPackage ../development/octave-modules/parallel { };
quaternion = callPackage ../development/octave-modules/quaternion { };
queueing = callPackage ../development/octave-modules/queueing { };
@ -192,8 +183,6 @@ makeScope newScope (
sockets = callPackage ../development/octave-modules/sockets { };
sparsersb = callPackage ../development/octave-modules/sparsersb { };
stk = callPackage ../development/octave-modules/stk { };
splines = callPackage ../development/octave-modules/splines { };
@ -208,22 +197,10 @@ makeScope newScope (
inherit (octave) python;
};
tisean = callPackage ../development/octave-modules/tisean { };
tsa = callPackage ../development/octave-modules/tsa { };
vibes = callPackage ../development/octave-modules/vibes {
vibes = null;
# TODO: Need to package vibes:
# https://github.com/ENSTABretagneRobotics/VIBES
};
video = callPackage ../development/octave-modules/video { };
vrml = callPackage ../development/octave-modules/vrml {
freewrl = null;
};
windows = callPackage ../development/octave-modules/windows { };
zeromq = callPackage ../development/octave-modules/zeromq {
@ -231,4 +208,13 @@ makeScope newScope (
};
}
// lib.optionalAttrs config.allowAliases {
fem-fenics = throw "octavePackages.fem-fenics has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05
level-set = throw "octavePackages.level-set has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05
parallel = throw "octavePackages.parallel has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05
sparsersb = throw "octavePackages.sparsersb has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05
tisean = throw "octavePackages.tisean has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05
vibes = throw "octavePackages.vibes has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05
vrml = throw "octavePackages.vrml has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05
}
)