From d77e1a6daf19eeb2419187e6be4d1190c2a35d91 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Thu, 13 Apr 2023 12:16:58 -0500 Subject: [PATCH] octavePackages.control: update 3.5.1 -> 3.5.2 Also update to use the GitHub version of control, as development has moved there from SourceForge and 3.5.1 is no longer obtainable from SourceForge. Add autoreconfHook so that config.h header is generated for control by control. This seems to be a regression, as 3.5.1 and earlier should have been building fine without it? --- .../octave-modules/control/default.nix | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) 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";