Opened 9 years ago

Closed 9 years ago

#49382 closed defect (fixed)

qt3: error: ranlib: file: /opt/local/lib/libqassistantclient.a is not writable (Operation not permitted)

Reported by: chiara.giroletti@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.3.4
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: qt3

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Hello, I tried to install gtkwave on Yosemite 10.10.5 but I had this error (also I have it with upgrade outdate)

sudo port install gtkwave
--->  Computing dependencies for gtkwave
--->  Cleaning gtkwave
--->  Scanning binaries for linking errors
--->  Found 21 broken file(s), matching files to ports   
--->  Found 1 broken port(s), determining rebuild order
--->  Rebuilding in order
     qt3 @3.3.8 
--->  Computing dependencies for qt3
--->  Cleaning qt3
--->  Scanning binaries for linking errors
--->  Found 21 broken file(s), matching files to ports   
--->  Found 1 broken port(s), determining rebuild order
--->  Rebuilding in order
     qt3 @3.3.8 
--->  Computing dependencies for qt3
--->  Fetching distfiles for qt3
--->  Verifying checksums for qt3
--->  Extracting qt3
--->  Configuring qt3
--->  Building qt3
Error: org.macports.build for port qt3 returned: command execution failed
Please see the log file for port qt3 for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_x11_qt3/qt3/main.log
Error: Unable to upgrade port: 1
Error rebuilding qt3
    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_revupgrade $action $portlist $opts"
    (procedure "action_target" line 96)
    invoked from within
"$action_proc $action $portlist [array get global_options]"
    (procedure "process_cmd" line 103)
    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 5268)

Attachments (3)

main.log (39.6 KB) - added by chiara.giroletti@… 9 years ago.
rev-upgrade.log (153.3 KB) - added by chiara.giroletti@… 9 years ago.
rev-upgrade.2.log (414 bytes) - added by chiara.giroletti@… 9 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: qt3 removed
Port: 1 removed
Type: enhancementdefect

Please attach the main.log file.

Changed 9 years ago by chiara.giroletti@…

Attachment: main.log added

comment:2 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added
Summary: qt3 and port 1qt3: error: ranlib: file: /opt/local/lib/libqassistantclient.a is not writable (Operation not permitted)

Thanks. The log says the problem is:

:debug:build Executing proc-pre-org.macports.build-build-1
:info:build error: ranlib: file: /opt/local/lib/libqassistantclient.a is not writable (Operation not permitted)

This happens because the portfile contains this block of code:

#workaround for upgrade problem.
pre-build {
    if {[file exists ${prefix}/lib/libqassistantclient.a]} {
        system "ranlib ${prefix}/lib/libqassistantclient.a"
    }
}

This was added in r16914, back in 2006. Since that time, MacPorts has changed, and no longer permits ports to modify files outside of their own work directory during a build, which is what this block is trying to do. I'm going to hope that whatever "upgrade problem" prompted the addition of this code (the commit message does not elaborate) no longer exists, so I've removed this block in r141611. Wait 30 minutes, then you can receive the fix by running:

sudo port selfupdate

The problem began for you when MacPorts determined that the qt3 port you have installed is broken, and tried to rebuild it. Ports should not be broken, so that might be a separate problem, and I'd like to know why MacPorts thinks qt3 is broken on your system. The following command will try again to rebuild qt3 and any other broken ports, which will hopefully succeed, and will generate a log file "rev-upgrade.log" on your desktop which you could please attach to this ticket; it might explain why the port was broken in the first place.

sudo port -d rev-upgrade 2>&1 | tee ~/Desktop/rev-upgrade.log

If the file is large, please compress it prior to attaching.

Changed 9 years ago by chiara.giroletti@…

Attachment: rev-upgrade.log added

comment:3 Changed 9 years ago by chiara.giroletti@…

Many thanks, unlucky it is not work

comment:4 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Thanks. The log says the reason qt3 is broken is:

Could not open /opt/local/lib/libGLU.1.dylib: Error opening or reading file (referenced from /opt/local/lib/qt3/bin/assistant)

libGLU used to be part of mesa (which qt3 declares a dependency on), but was separated out into its own port awhile ago. I added the libGLU dependency to the qt3 port in r141619. Please wait 30 minutes, then run "sudo port selfupdate" and then try again.

comment:5 Changed 9 years ago by chiara.giroletti@…

Here the file response

Changed 9 years ago by chiara.giroletti@…

Attachment: rev-upgrade.2.log added

comment:6 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed

Great, that log shows "No broken files found". I assume all of your issues relating to qt3 are now resolved?

Note: See TracTickets for help on using tickets.