bugGNU Octave - Bugs: bug #54842, [octave forge]...

 
 

bug #54842: [octave forge] (instrument-control) installation error on macOS with 'rpcgen -M'

Submitter:  Xavier <xavier_mtb>
Submitted:  Mon 15 Oct 2018 04:46:18 PM UTC
   
 
Category:  Octave Package Severity:  3 - Normal
Priority:  3 - Low Item Group:  Installation Failure
Status:  Fixed Assigned to:  lostbard
Originator Name:  Open/Closed:  * Closed
Release:  * 4.4.1 Operating System:  * Mac OS
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Sun 25 Oct 2020 02:26:35 PM UTC, comment #9: 

No activity, and 2 releases since then so assuming that changes fixed the issue - closing as fixed

John Donoghue <lostbard>
Group Member
Thu 20 Feb 2020 03:08:26 PM UTC, comment #8: 

Some changes have been added for vxi11 detection and rpcgen checks which may  have fixed this issue - anypone with macos that can verify ?

John Donoghue <lostbard>
Group Member
Fri 22 Feb 2019 06:12:04 PM UTC, comment #7: 

Someone else with a mac machine tried using the generated files, and they do not appear to work either, which does make sense, as the logfile in comment #3 for using rpcgen-mt fails in files that are not part of the generated files but rather looks like incompatibilities between the implemented rpc libraries on the mac vs Linux.

John Donoghue <lostbard>
Group Member
Tue 16 Oct 2018 09:00:54 PM UTC, comment #6: 

Here are the generated files from my system, if you want to try adding them yo your package to see if it will compile

(file #45213)

John Donoghue <lostbard>
Group Member
Tue 16 Oct 2018 08:17:23 PM UTC, comment #5: 

The code doesn't seem to compile without the '-M' option because the generated API is different. With GNU rpcgen, I get errors like the following if I try to build without '-M'


vxi11_class.cc: In member function ‘int octave_vxi11::read(char*, unsigned int)’:
vxi11_class.cc:151:37: error: cannot convert ‘Device_ReadResp*’ to ‘CLIENT*’
       if(device_read_1(&read_parms, &read_resp, client) != RPC_SUCCESS)
                                     ^~~~~~~~~~


So the code that uses the rpcgen API is bound to the '-M' option.

The errors in the log file using the BSD 'rpcgen-mt' program (file #45207) seem to indicate that the generated code is very different from what is expected with GNU rpcgen. It seems to me that 'rpcgen' is not really a portable standard. Maybe the program should be run on the maintainer's system and the generated source files included in the release (similar to what Octave does with bison and flex generated sources).

Mike Miller <mtmiller>
Group Member
Tue 16 Oct 2018 02:00:02 PM UTC, comment #4: 

For trying without the -M option,

in the vxi11/Makefile.in, trying adding -D_REENTRANT to the CFLAGS      = @DEFS@ line



John Donoghue <lostbard>
Group Member
Tue 16 Oct 2018 01:29:56 PM UTC, comment #3: 

Thanks for the fast replay and the indications. By modifying the corresponding 'Makefile'(s), I tried:

  1. A new 'rpcgen' which included the '-M' option (see 'rpcgen-mt' here and here).
  2. Remove the '-M' option.
  3. Skip the vxi11/ directory.


(see entire outputs in the attached log files).

The first and the second actions were not successful at installing the instrument-control package. With the third action I was finally able, but I might need soon or later the VXI-11 interface. Any suggestions on how to fix this issue?

After the third option I obtained the following warnings (see entire output in the attached log file):


warning: autoload: 'vxi11.oct' is not an absolute filename
warning: autoload: 'vxi11.oct' is not an absolute filename
warning: autoload: 'vxi11.oct' is not an absolute filename
warning: autoload: 'vxi11.oct' is not an absolute filename
For information about changes from previous versions of the instrument-control package, run 'news instrument-control'.


Inside Octave, the command


> pkg list


shows now:


Package Name        | Version | Installation directory
--------------------+---------+-----------------------
           control  |   3.1.0 | /Users/Xavi/octave/control-3.1.0
instrument-control  |   0.3.1 | /Users/Xavi/octave/instrument-control-0.3.1
            signal  |   1.4.0 | /Users/Xavi/octave/signal-1.4.0
          symbolic  |   2.7.1 | /Users/Xavi/octave/symbolic-2.7.1





For the record:

The modified 'Makefile'(s) where:

In 1 (new 'rpcgen'):

instrument-control-0.3.1⁩/src⁩/vxi11/Makefile.in

=> 'rpcgen' in line 7 changed to 'rpcgen-mt'

In 2 (removal of '-M' option):

instrument-control-0.3.1⁩/src⁩/vxi11/Makefile.in

=> Remove '-M' in line 32

In 3 (skip the vxi11/ directory):

instrument-control-0.3.1⁩/src⁩/Makefile.in

=> Remove 'vxi11' in line 2

The procedure to modify the 'Makefile'(s) and install the package was:

  1. Open the desired 'Makefile' with a text editor
  2. Modify and save changes
  3. Generate the new 'instrument-control-0.3.1.tar.gz' file:


$ tar -czf instrument-control-0.3.1.tar.gz instrument-control-0.3.1/

  1. Inside Octave (while in the same directory of the above file) run:


> pkg install instrument-control-0.3.1.tar.gz -verbose


(file #45207, file #45208, file #45209)

Xavier <xavier_mtb>
Mon 15 Oct 2018 08:02:29 PM UTC, comment #2: 

Related ticket from macports for updated rpcgen

https://trac.macports.org/ticket/47801


John Donoghue <lostbard>
Group Member
Mon 15 Oct 2018 06:14:42 PM UTC, comment #1: 

Thanks for the detailed installation log. The error in the log shows that the failure is most likely due to the 'rpcgen' program on your system. On a GNU/Linux system 'rpcgen' is provided by GNU libc, on your system it looks like it is provided by clang.

The instrument control package tries to call 'rpcgen -M <filename>' as part of its build procedure. The '-M' option says 'generate MT-safe code' on my GNU/Linux system, but it looks like it's not a supported option on your system. Is there another version of 'rpcgen' installed on your system that you can arrange to be called instead of this one?

That's the error and the explanation for why installation fails. I can't say whether this is a bug, whether you need to do something on your system to use a different version of rpcgen, or how important the '-M' option is. You can certainly modify the makefile yourself and try using the package with the '-M' option removed. Or you can modify the top level makefile to bypass building the vxi11 directory altogether, if you don't care about the VXI-11 interface.

Mike Miller <mtmiller>
Group Member
Mon 15 Oct 2018 04:46:18 PM UTC, original submission:  

I'm running Octave 4.4.1 on macOSX Mojave. When I try to install the instrument-control package using:


> pkg install -forge instrument-control -verbos


I obtain the following error (see entire output in the attached log file):


pkg: error running `make' for the instrument-control package.
error: called from
    configure_make at line 99 column 9
    install at line 184 column 7
    pkg at line 437 column 9


I have successfully installed other packages (e.g. control, signal, symbolic), but I am not being able to install the instrument-control package. Could this be a compatibility issue?

(This issue has also been reported in StackOverflow by an anonymous user.)

Xavier <xavier_mtb>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #45213:  vxi11-files.tgz added by lostbard (5KiB - application/x-gzip-compressed)
file #45207:  install_20181016_1402_rpcgen-mt.log added by xavier_mtb (52KiB - application/octet-stream)
file #45208:  install_20181016_1427_skip_vxi11.log added by xavier_mtb (38KiB - application/octet-stream)
file #45209:  install_20181016_1427_-M_removed.log added by xavier_mtb (91KiB - application/octet-stream)
file #45203:  install_20181015_1820.log added by xavier_mtb (36KiB - application/octet-stream - instrument-control package verbose installation output.)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by lostbard (Posted a comment)
  • -email is unavailable- added by xavier_mtb (Submitted the item)
  • -email is unavailable- added by xavier_mtb
  • -email is unavailable- added by xavier_mtb
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 15 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2020-10-25 lostbard StatusNeed Info Fixed
        Assigned toNone lostbard
        Open/ClosedOpen Closed
    2018-10-16 lostbard Attached File- Added vxi11-files.tgz, #45213
    2018-10-16 xavier_mtb Attached File- Added install_20181016_1402_rpcgen-mt.log, #45207
        Attached File- Added install_20181016_1427_skip_vxi11.log, #45208
        Attached File- Added install_20181016_1427_-M_removed.log, #45209
    2018-10-15 mtmiller Summarymake error when installing instrument-control package [octave forge] (instrument-control) installation error on macOS with 'rpcgen -M'
    2018-10-15 mtmiller Priority5 - Normal 3 - Low
        StatusNone Need Info
    2018-10-15 mtmiller Carbon-CopyRemoved mtmiller -
    2018-10-15 xavier_mtb Attached File- Added install_20181015_1820.log, #45203
        Carbon-Copy- Added mtmiller
        Carbon-Copy- Added sschoeps
        Carbon-Copy- Added

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code