#1108716 octave-biosig: Package octave-biosig can not be loaded in Octave

Package:
octave-biosig
Source:
octave-biosig
Description:
Octave bindings for BioSig library
Submitter:
Alois Schlögl
Date:
2025-07-04 05:03:01 UTC
Severity:
normal
Tags:
#1108716#5
Date:
2025-07-03 19:20:28 UTC
From:
To:
Dear Maintainer,


   * What led up to the situation?

    I recently upgraded to trixie, and tried reinstalling octave-biosig with
        apt-get install octave-biosig
   does run and the package is installed, however
   when starting Octave, the package is not shown and can not be loaded with
        pkg list
        pkg load biosig

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

	apt-file list octave-biosig
     shows the files are installed in
	octave-biosig: /usr/lib/x86_64-linux-gnu/octave/site/oct/x86_64-pc-linux-gnu/biosig/mexSSAVE.mex
	...
	octave-biosig: /usr/share/octave/site/m/biosig/...
        ...
   * What was the outcome of this action?

     and when adding these directories, octave-biosig is usable.

     also when using the method from upstream, installing from source
         pkg install "https://sourceforge.net/projects/biosig/files/Biosig%20for%20Octave/biosig4octave-3.9.0.src.tar.gz"
     the octave-biosig package is installed (in my home directory) and usable.

   * What outcome did you expect instead?

     pkg list
        should list biosig
     pkg load biosig
	should provide the functions in each path, e.g.
     which sload
     which mexSLOAD
         should show the location of these functions.

#1108716#10
Date:
2025-07-03 20:45:44 UTC
From:
To:
Hi Alois,

I probably should leave that issue to someone fluent with octave
and probably won't be in position to put useful packaging work
to resolve the situation (help from someone having some
experience with octave would be welcome, thanks:), but let's see
if I can contribute something useful to the bug entry anyway…

Alois Schlögl, on 2025-07-03:

I'm under the impression that the dh-octave scripting is
supposed to capture and convert the scripting to something
compatible with octave's integrated package management system.
However the package is deployed in such manner that it end up
flat:

The sentence is unclear to me, when adding which directories
where?

Indeed:

	octave:1> pkg list
	no packages installed.
	octave:2> pkg load biosig
	error: package biosig is not installed
	error: called from
	    load_packages at line 47 column 7
	    pkg at line 639 column 7

On my end I have something different from what you describre:
the symbols are identified without loading the packages at all,
as if they are loaded immediately in the octave namespace:

	octave:1> which sload
	'sload' is a function from the file /usr/share/octave/site/m/biosig/t200_FileAccess/sload.m
	octave:2> which mexSLOAD
	'mexSLOAD' is a function from the file /usr/lib/x86_64-linux-gnu/octave/site/oct/x86_64-pc-linux-gnu/biosig/mexSLOAD.mex

Does that match your observation?

My current impression is that the package might simply need a
nudge to get octave-biosig shipped as an octave package, but as
I mentioned first, I'm not litterate with octave and it's
packaging at the moment, so I probably won't fix anything any
time soon.  I'm just trying to triage the bug.

Have a nice day,  :)

#1108716#17
Date:
2025-07-04 05:01:38 UTC
From:
To:
Am 7/3/25 um 10:45 PM schrieb Étienne Mollier:
Hi Etienne,

Thanks for your quick response. I'm not so fluent with debian package
management,
Your contribution would certainly be useful.
A contributing factor might be that the directory structure of biosig
sources file, is very different (not compliant) with standard directory
structure of typical octave packages, and so some of the assumptions in
the dh-octave scripts might not be fulfilled.

I noticed also that other octave packages (e.g. octave-signal) is
installed on
/usr/lib/x86_64-linux-gnu/octave/packages/signal-1.4.6/x86_64-pc-linux-gnu-api-v59/*.{mex,oct}
      /usr/share/octave/packages/signal-1.4.6/PKG_ADD

So, instead of
/usr/lib/x86_64-linux-gnu/octave/site/ /usr/share/octave/site/ Other
packages are installed in /usr/lib/x86_64-linux-gnu/octave/packages/
/usr/share/octave/packages/
Ops, I meant "unusable" ("usable" is a typo. ).

Within octave, you can do

     addpath('/usr/lib/x86_64-linux-gnu/octave/site/oct/x86_64-pc-linux-gnu/biosig/')

and than mexSLOAD, would be available, and one could do this for all the other directories with *.mex and *.m files.

The command "path" shows which directories are searched for any *.m,*.oct,*.mex command.
You are right, the package is actually usable. mexSLOAD, sload and all
the other functions are available. This seems to be the case,
independently of "pkg load". When checking from with Octave the "path",
it shows that the biosig-directories are already included.

So the error is about
- "pkg list" does not show the biosig package, and
- "pkg load biosig" and "pkg unload biosig" show an error, and do not
have any effect.
- "apt install octave-biosig" is putting biosig already into the path of
octave, and make it usable from within octave, put this is independent
of any "pkg .. "  command.

That's at least unexpected and could be confusing.
I'll look further into this, but dh-octave is obscure to me. So any help
is appreciated here.
Thanks, same to you.