Bug 26191

Summary: Installing an octave package needs the octave-devel Mageia pkg, missing dependency
Product: Mageia Reporter: Jybz <j.biernacki+mga>
Component: RPM PackagesAssignee: All Packagers <pkg-bugs>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: Normal CC: eatdirt
Version: 7   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Source RPM: octave-5.1.0-7.1.mga7.src.rpm CVE:
Status comment:

Description Jybz 2020-02-13 14:26:21 CET
Hello !

I'm trying to design a butterworth filter with octave, a default installation of Octave (urpmi octave). For it, I need the package signal. I look on internet, and it seems, in order to install a package, the command is "pkg install -forge signal". So, tried, it complains something missing, I also tried, but it throw an error "Octave installation is incomplete".

> >> pkg install -forge signal
> error: the following dependencies were unsatisfied:
>    signal needs control >= 2.4
> >> pkg install -forge control
> pkg: unable to find the mkoctfile command, Octave installation is incomplete
> error: called from
>     __gripe_missing_component__ at line 53 column 3
>     configure_make at line 44 column 7
>     install at line 184 column 7
>     pkg at line 441 column 9
> >>

A quick search shows :
> [root@localhost Saleae]# urpmf mkoctfile
> octave:/usr/share/octave/5.1.0/m/miscellaneous/mkoctfile.m
> octave-devel:/usr/bin/mkoctfile
> octave-devel:/usr/bin/mkoctfile-5.1.0
> octave-devel:/usr/share/man/man1/mkoctfile.1.xz
> octave-doc:/usr/share/doc/octave-doc/interpreter/octave.html/XREFmkoctfile.html
> octave:/usr/share/octave/5.1.0/m/miscellaneous/mkoctfile.m                                                                                                             
> octave-devel:/usr/bin/mkoctfile
> octave-devel:/usr/bin/mkoctfile-5.1.0
> octave-devel:/usr/share/man/man1/mkoctfile.1.xz
> octave-doc:/usr/share/doc/octave-doc/interpreter/octave.html/XREFmkoctfile.html

after installing the -devel package, it seems we are able to install (compile) the control package. It shows millions line of error :
>f951: Avertissement: l'option de la ligne de commande « -Wformat=1 » est valable pour C/C++/ObjC/ObjC++ mais pas pour Fortran
>f951: Avertissement: « -Werror= » argument « -Werror=format-security » is not valid for Fortran
while compiling.

At the end, I'm able to use the command butter.

Is everything OK ? Is it a wished behaviour to install a -devel to use the tool ?
Is it possible to give this "under" packages (octave-control, octave-signal) as RPM instead having to compile it ?
Comment 1 Lewis Smith 2020-02-13 21:00:11 CET
Thank you for the report, and your diagnosis.

Start at the end:
> At the end, I'm able to use the command butter
Where did this come from? Just curious.

> Is it possible to give this "under" packages (octave-control,
> octave-signal) as RPM instead having to compile it
The site makes it clear that if you want to use these modules, you do what you did: "pkg install -forge <package name>" ; that is an Octave Forge pkg, not an rpm. So my guess answer to your question is 'No'.

 https://www.gnu.org/software/octave/     [an excellent site]
 Octave Forge
Octave Forge is a central location for development of packages for GNU Octave, ...To install a package, use the pkg command from the Octave prompt by typing:
 pkg install -forge package_name
 pkg load package_name

 https://octave.sourceforge.io/
 Individual package installation
You can find the list of packages by clicking on the Packages link at the top. To install a package, use the pkg command from the Octave prompt by typing: pkg install -forge package_name, where package_name is the name of the package you want to install.

 https://octave.sourceforge.io/packages.php
nicely lists available Forge Packages.
--------------------------------------
> >> pkg install -forge signal
> error: the following dependencies were unsatisfied:
>    signal needs control >= 2.4
[Both Octave pkgs]. Clear enough; all inside Octave, not Mageia's affair.

> >> pkg install -forge control
> pkg: unable to find the mkoctfile command, Octave installation is
> incomplete
This *does* look our affair. Repeating & confirming your:
 $ urpmf mkoctfile | sort -u
 octave-devel:/usr/bin/mkoctfile                                                
 octave-devel:/usr/bin/mkoctfile-5.1.0
 octave-devel:/usr/share/man/man1/mkoctfile.1.xz
 octave-doc:/usr/share/doc/octave-doc/interpreter/octave.html/XREFmkoctfile.html
 octave:/usr/share/octave/5.1.0/m/miscellaneous/mkoctfile.m
shows that basic 'octave' provides just the last item (whatever it is), the other 3 from the -devel pkg:
 $ urpmq -l octave-devel | grep mkoctfile | sort -u
 /usr/bin/mkoctfile
 /usr/bin/mkoctfile-5.1.0
 /usr/share/man/man1/mkoctfile.1.xz

If mkoctfile really is a basic requirement to use Octave, it does indeed look as if the whole lot (octave & -devel) could be in one pkg; and while it is not, octave-devel should be a requirement of octave. Agree with your proposition!
---
Assigning this globally, CC'ing Chris as having committed 'octave' several times.

Assignee: bugsquad => pkg-bugs
Source RPM: octave => octave-5.1.0-7.1.mga7.src.rpm
CC: (none) => eatdirt
Summary: Installing a package in octave need the octave-devel => Installing an octave package needs the octave-devel Mageia pkg, missing dependency

Comment 2 Chris Denice 2020-02-14 11:59:29 CET
I am not sure to understand the problem, mkoctfile.m is the source code of mkoctfile binary, it is provided for information only as far as I see. Maybe its place should be with the devel file indeed, but that won't change anything.

The octave package itself contains the octave binary and environment allowing you to use octave as it is.

When you develop, download, install additional packages for octave, that means you compile them. As any other packages, for this to work, you need the development files which are in octave-devel.

So there is no issue here, it seems to me that everything works as it should.

Cheers.

Resolution: (none) => WONTFIX
Status: NEW => RESOLVED