freecad linking errors

Mark Brethen mark.brethen at gmail.com
Sun Jul 13 21:05:03 PDT 2014


On Jul 13, 2014, at 9:49 PM, Mark Brethen <mark.brethen at gmail.com> wrote:

> 
> On Jul 13, 2014, at 8:18 PM, Mark Brethen <mark.brethen at gmail.com> wrote:
> 
>> Ran 'port -d rev-upgrade' for details:
>> 
>> make: Leaving directory `/Users/marbre/.macports/opt/local/var/macports/build/_Users_marbre_ports_cad_freecad/freecad/work/freecad-0.14.3692'DEBUG: Executing proc-post-org.macports.destroot-destroot-0
>> DEBUG: Executing portdestroot::destroot_finish
>> DEBUG: Fixing glibtool .la files in destroot for freecad
>> DEBUG: checking for mtree violations
>> DEBUG: Uninstalling freecad 0.14.3692_0+gcc48
>> DEBUG: Changing to port directory: /opt/local/var/macports/registry/portfiles/freecad-0.14.3692_0/286813f1a135575a18af6561655ae080f5c909b0220aeff5bf1a148e2b28cd89-3293
>> DEBUG: OS darwin/13.3.0 (Mac OS X 10.9) arch i386
>> DEBUG: Going to use alternate build prefix: /Users/marbre/.macports
>> DEBUG: workpath = /Users/marbre/.macports/opt/local/var/macports/build/_opt_local_var_macports_registry_portfiles_freecad-0.14.3692_0_286813f1a135575a18af6561655ae080f5c909b0220aeff5bf1a148e2b28cd89-3293/freecad/work
>> DEBUG: Sourcing PortGroup cmake 1.0 from /opt/local/var/macports/registry/portgroups/636464737c420ea283d4ad483ea35193d9da591588cba9f1d1d4e56d8ff6912e-6789/cmake-1.0.tcl
>> DEBUG: Sourcing PortGroup active_variants 1.1 from /opt/local/var/macports/registry/portgroups/1c88b447282fb971b03daac5623c69b5ed1a63897ee954a60fd0486076249f11-10054/active_variants-1.1.tcl
>> DEBUG: Sourcing PortGroup compilers 1.0 from /opt/local/var/macports/registry/portgroups/34dd8667079dbc5ffc8f220be7052e148f470e7bdf342d23c691035b18d382d4-18369/compilers-1.0.tcl
>> DEBUG: adding the default universal variant
>> DEBUG: Reading variant descriptions from /opt/local/var/macports/sources/rsync.macports.org/release/ports/_resources/port1.0/variant_descriptions.conf
>> DEBUG: Executing variant gcc48 provides gcc48
>> DEBUG: Running callback portconfigure::add_automatic_compiler_dependencies
>> DEBUG: Finished running callback portconfigure::add_automatic_compiler_dependencies
>> DEBUG: Running callback portbuild::add_automatic_buildsystem_dependencies
>> DEBUG: Finished running callback portbuild::add_automatic_buildsystem_dependencies
>> DEBUG: Executing org.macports.main (freecad)
>> DEBUG: uninstall phase started at Sun Jul 13 20:05:04 CDT 2014
>> Error: org.macports.uninstall for port freecad returned: MacPorts requires root privileges for this action
>> DEBUG: Error code: NONE
>> DEBUG: Backtrace: MacPorts requires root privileges for this action
>>   while executing
>> "elevateToRoot "uninstall""
>>   (procedure "portuninstall::uninstall_start" line 5)
>>   invoked from within
>> "[ditem_key $ditem prerun] $targetname"
>> Warning: targets not executed for freecad: org.macports.uninstall
>> DEBUG: @rpath in loadcommand
>>   while executing
>> "error "@rpath in loadcommand""
>>   (procedure "revupgrade_handle_special_paths" line 18)
>>   invoked from within
>> "revupgrade_handle_special_paths $bpath [$loadcommand cget -mlt_install_name]"
>> Warning: Failed to execute portfile from registry for freecad @0.14.3692_0+gcc48
>> DEBUG: Changing to port directory: /opt/local/var/macports/registry/portfiles/freecad-0.14.3692_0/286813f1a135575a18af6561655ae080f5c909b0220aeff5bf1a148e2b28cd89-3293
>> DEBUG: OS darwin/13.3.0 (Mac OS X 10.9) arch i386
>> DEBUG: Going to use alternate build prefix: /Users/marbre/.macports
>> DEBUG: workpath = /Users/marbre/.macports/opt/local/var/macports/build/_opt_local_var_macports_registry_portfiles_freecad-0.14.3692_0_286813f1a135575a18af6561655ae080f5c909b0220aeff5bf1a148e2b28cd89-3293/freecad/work
>> DEBUG: Sourcing PortGroup cmake 1.0 from /opt/local/var/macports/registry/portgroups/636464737c420ea283d4ad483ea35193d9da591588cba9f1d1d4e56d8ff6912e-6789/cmake-1.0.tcl
>> DEBUG: Sourcing PortGroup active_variants 1.1 from /opt/local/var/macports/registry/portgroups/1c88b447282fb971b03daac5623c69b5ed1a63897ee954a60fd0486076249f11-10054/active_variants-1.1.tcl
>> DEBUG: Sourcing PortGroup compilers 1.0 from /opt/local/var/macports/registry/portgroups/34dd8667079dbc5ffc8f220be7052e148f470e7bdf342d23c691035b18d382d4-18369/compilers-1.0.tcl
>> DEBUG: adding the default universal variant
>> DEBUG: Reading variant descriptions from /opt/local/var/macports/sources/rsync.macports.org/release/ports/_resources/port1.0/variant_descriptions.conf
>> DEBUG: Executing variant gcc48 provides gcc48
>> DEBUG: Running callback portconfigure::add_automatic_compiler_dependencies
>> DEBUG: Finished running callback portconfigure::add_automatic_compiler_dependencies
>> DEBUG: Running callback portbuild::add_automatic_buildsystem_dependencies
>> DEBUG: Finished running callback portbuild::add_automatic_buildsystem_dependencies
>> DEBUG: Executing org.macports.main (freecad)
>> DEBUG: deactivate phase started at Sun Jul 13 20:05:04 CDT 2014
>> Error: org.macports.deactivate for port freecad returned: MacPorts requires root privileges for this action
>> DEBUG: Error code: NONE
>> DEBUG: Backtrace: MacPorts requires root privileges for this action
>>   while executing
>> "elevateToRoot "deactivate""
>>   (procedure "portdeactivate::deactivate_start" line 5)
>>   invoked from within
>> "[ditem_key $ditem prerun] $targetname"
>> Warning: targets not executed for freecad: org.macports.deactivate
>> DEBUG: @rpath in loadcommand
>>   while executing
>> "error "@rpath in loadcommand""
>>   (procedure "revupgrade_handle_special_paths" line 18)
>>   invoked from within
>> "revupgrade_handle_special_paths $bpath [$loadcommand cget -mlt_install_name]"
>> Warning: Failed to execute portfile from registry for freecad @0.14.3692_0+gcc48
>> --->  Deactivating freecad @0.14.3692_0+gcc48
>> DEBUG: sqlite error: attempt to write a readonly database (8)
>>   while executing
>> "registry::write {
>>           $port deactivate $imagefiles
>>           foreach file $files {
>>               _deactivate_file $file
>>           }
>>   ..."
>>   (procedure "_deactivate_contents" line 37)
>>   invoked from within
>> "_deactivate_contents $requested [$requested files] $force"
>>   (procedure "portimage::deactivate" line 54)
>>   invoked from within
>> "portimage::deactivate $portname $version $revision $variants [array get options]"
>>   (procedure "registry_uninstall::uninstall" line 91)
>>   invoked from within
>> "registry_uninstall::uninstall $newname $version_in_tree $revision_in_tree $portinfo(canonical_active_variants) [array get options]"
>> Error: Uninstall freecad 0.14.3692_0+gcc48 failed: sqlite error: attempt to write a readonly database (8)
>> DEBUG: Rebuilding port freecad finished with status 1
>> Error rebuilding freecad
>>   while executing
>> "error "Error rebuilding $portname""
>>   (procedure "revupgrade_scanandrebuild" line 395)
>>   invoked from within
>> "revupgrade_scanandrebuild broken_port_counts $opts"
>>   (procedure "macports::revupgrade" line 5)
>>   invoked from within
>> "macports::revupgrade $opts"
>>   (procedure "action_revupgrade" line 2)
>>   invoked from within
>> "$action_proc $action $portlist [array get global_options]"
>>   (procedure "process_cmd" line 93)
>>   invoked from within
>> "process_cmd $remaining_args"
>>   invoked from within
>> "if { [llength $remaining_args] > 0 } {
>> 
>>   # If there are remaining arguments, process those as a command
>>   set exit_status [process_cmd $remaining..."
>>   (file "/opt/local/bin/port" line 5254)
>> 
>> 
>> 
>> Mark
>> 
>> 
>> 
>> 
> 
> Setting those cmake install variables causes linking errors, e.g.
> 
> Could not open /opt/local/lib/libFreeCADBase.so: Error opening or reading file (referenced from /opt/local/libexec/freecad/bin/FreeCAD)
> 
> I believe this is due to these cmake variables in the cmake portgroup:
> 
> -DCMAKE_INSTALL_RPATH=${prefix}/lib \
> -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib \
> 
> And the install variable in the portfile:
> 
> -DCMAKE_INSTALL_PREFIX=${prefix}/lib/${name} \
> 
> Can I override the ones in the portgroup with the configure.args-delete/-append or -replace keywords?
> 
> Mark
> 
> 
> 
> 

That was it. I now have in the portfile:

configure.args-delete   -DCMAKE_INSTALL_RPATH=${prefix}/lib \
                        -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib

configure.args-append   -DCMAKE_INSTALL_RPATH=${prefix}/libexec/${name}/lib \
                        -DCMAKE_INSTALL_NAME_DIR=${prefix}/libexec/${name}/lib \
                        -DCMAKE_INSTALL_PREFIX=${prefix}/libexec/${name} \
                        -DCMAKE_INSTALL_DATADIR=${prefix}/share/${name} \
                        -DCMAKE_INSTALL_DOCDIR=${prefix}/share/doc/${name} \
                        -DCMAKE_FRAMEWORK_PATH=${frameworks_dir}    

I was able to run FreeCAD and will build a simple model to make sure things are working properly.


Mark






More information about the macports-dev mailing list