diff --git a/pkgs/development/octave-modules/control/default.nix b/pkgs/development/octave-modules/control/default.nix index 95ccaf3d0551..74df9fcda085 100644 --- a/pkgs/development/octave-modules/control/default.nix +++ b/pkgs/development/octave-modules/control/default.nix @@ -1,21 +1,37 @@ { buildOctavePackage , lib -, fetchurl +, fetchFromGitHub , gfortran , lapack, blas +, autoreconfHook }: buildOctavePackage rec { pname = "control"; - version = "3.5.1"; + version = "3.5.2"; - src = fetchurl { - url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz"; - sha256 = "sha256-U/o0RQoHdDhPP3xuiR9gCFb60CKrA30bpc/dH/ozDpg="; + src = fetchFromGitHub { + owner = "gnu-octave"; + repo = "pkg-control"; + rev = "${pname}-${version}"; + sha256 = "sha256-isUHovpknIFclspHjAtUxGLkrdxitdWSnQMED9n+R3s="; }; + # Running autoreconfHook inside the src directory fixes a compile issue about + # the config.h header for control missing. + # This is supposed to be handled by control's top-level Makefile, but does not + # appear to be working. This manually forces it instead. + preAutoreconf = '' + pushd src + ''; + + postAutoreconf = '' + popd + ''; + nativeBuildInputs = [ gfortran + autoreconfHook ]; buildInputs = [ @@ -23,7 +39,7 @@ buildOctavePackage rec { ]; meta = with lib; { - homepage = "https://octave.sourceforge.io/control/index.html"; + homepage = "https://gnu-octave.github.io/packages/control/"; license = licenses.gpl3Plus; maintainers = with maintainers; [ KarlJoad ]; description = "Computer-Aided Control System Design (CACSD) Tools for GNU Octave, based on the proven SLICOT Library";