[MacPorts] #49824: Cannot install octave-control due to missing symbols in slicot library

MacPorts noreply at macports.org
Sun Dec 13 16:02:40 PST 2015


#49824: Cannot install octave-control due to missing symbols in slicot library
---------------------------------+----------------------------
  Reporter:  rolf.lochbuehler@…  |      Owner:  mschamschula@…
      Type:  defect              |     Status:  new
  Priority:  Normal              |  Milestone:
 Component:  ports               |    Version:  2.3.4
Resolution:                      |   Keywords:
      Port:  octave-control      |
---------------------------------+----------------------------

Comment (by hraftery@…):

 I found a workaround: the slicot source package can be manually patched to
 replace the deprecated calls, and the octave-control will build just fine.

 After a failed {{{sudo port install octave-control}} execute the
 following:

 {{{
 $ cd `port dir octave-control`/work/
 $ sudo rmdir control/install/
 $ sudo rmdir control/
 $ sudo -u macports tar zxvf .tmp/control.tar.gz
 $ cd control/src
 $ sudo -u macports tar zxvf slicot.tar.gz
 $ sudo -u macports sed -i '.orig' 's/DGEGS/DGGES/g' slicot/src/SG03AD.f
 slicot/src/SG03BD.f
 $ sudo -u macports sed -i '.orig' 's/DLATZM/DORMRZ/g' slicot/src/AB08NX.f
 slicot/src/AG08BY.f slicot/src/SB01BY.f slicot/src/SB01FY.f
 $ sudo -u macports sed -i '.orig' '/tar -xzf slicot.tar.gz/d' Makefile
 $ cd ../../..
 $ sudo port install octave-control
 }}}

 I elected not to provide a patch file because un-tarring slicot makes for
 a 17MB diff.

 This is clearly just a workaround, as the non-deprecated versions are not
 guaranteed to be backwards compatible. In fact, now that I've signed up to
 download the latest slicot, I see that the call to DGEGS/DGGES now looks
 like this:

 {{{
 IF ( LDWORK .LT. MINGG ) THEN
 C
 C           Use DGEGS for backward compatibilty with LDWORK value.
 C           ( Workspace: >= MAX(1,4*N) )
 C
             CALL DGEGS( 'Vectors', 'Vectors', N, A, LDA, E, LDE, ALPHAR,
      $                  ALPHAI, BETA, Q, LDQ, Z, LDZ, DWORK, LDWORK,
      $                  INFO1 )
          ELSE
 C
 C           Use DGGES. The workspace is increased to avoid an error
 C           return, while it should not really be larger than above.
 C           ( Workspace: >= MAX(1,8*N+16) )
 C
             CALL DGGES( 'Vectors', 'Vectors', 'Not ordered', DELCTG, N,
      $                  A, LDA, E, LDE, I, ALPHAR, ALPHAI, BETA, Q, LDQ,
      $                  Z, LDZ, DWORK, LDWORK, BWORK, INFO1 )
          END IF
 }}}

 I was not able to get octave-control to compile with this latest version
 of slicot, so the workaround remains my best solution.

-- 
Ticket URL: <https://trac.macports.org/ticket/49824#comment:7>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list