[MacPorts] #20002: bugs in vtk-devel Portfile on Tiger

MacPorts noreply at macports.org
Mon Jun 29 11:21:14 PDT 2009


#20002: bugs in vtk-devel Portfile on Tiger
-------------------------------+--------------------------------------------
 Reporter:  jjstickel@…        |       Owner:  dweber@…           
     Type:  defect             |      Status:  assigned           
 Priority:  Normal             |   Milestone:                     
Component:  ports              |     Version:  1.7.1              
 Keywords:  Tiger darwin_8     |        Port:  vtk-devel          
-------------------------------+--------------------------------------------

Comment(by dweber@…):

 I think the line in question is in the doc variant, where we have:

 {{{
 system "ln -Fhs ${vtkDocPath} ${destroot}/${vtkDocPathLink}"
 }}}

 So this is a system ln command (not a tcl ln command, as in some other
 variants).


 On my leopard system, `man ln` contains the following:

 {{{
  1 LN(1)             BSD General Commands Manual            LN(1)
 ...
 20      -F    If the target file already exists and is a directory, then
 remove it so that the link may occur.
 21        The -F option should be used with either -f or -i options.  If
 none is specified, -f is implied.
 22        The -F option is a no-op unless -s option is specified.
 ...
 24      -h    If the target_file or target_dir is a symbolic link, do not
 follow it.  This is most useful with
 25        the -f option, to replace a symlink which may point to a
 directory.
 ...
 37      -s    Create a symbolic link.
 }}}

 As I read this, it will create a symbolic link for a directory, replacing
 the symlink if it exists already.

 Are we reading different man pages?

 Suggestion.  Take a look at the other variants where a tcl ln command is
 used.  I don't recall exactly why this doc variant uses a system ln
 command, but I do recall that the symlinks created in ${prefix}/share/doc
 are not exactly what I want.

 What I really want is this:

 {{{
 /opt/local/share/doc/vtk-5.4 -> /opt/local/share/vtk-5.4/doc
 }}}

 This is what I get:

 {{{
 /opt/local/share/doc/vtk-5.4/doc -> /opt/local/share/vtk-5.4/doc/
 }}}


 This is how it is defined, in a nutshell (after consolidating a few things
 from the Portfile):

 {{{
 set vtkDocPath     ${prefix}/share/${distname}/doc
 set vtkDocPathLink ${prefix}/share/doc/${distname}
 system "ln -Fhs ${vtkDocPath} ${destroot}/${vtkDocPathLink}"
 }}}

 I have no idea why the vtkDocPathLink actually becomes
 ${prefix}/share/doc/${distname}/doc

 Best,
 Darren

-- 
Ticket URL: <http://trac.macports.org/ticket/20002#comment:6>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list