Opened 10 years ago

Last modified 21 months ago

#44068 assigned defect

serf1: building error on OSX 10.4 Server (PPC)

Reported by: macports-trac@… Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.3.0
Keywords: tiger Cc: cooljeanius (Eric Gallager)
Port: serf1

Description (last modified by mf2k (Frank Schima))

While building nmap dependencies:

Error: Failed to install serf1 ...
Error: The following dependencies were not installed: subversion serf1 ...
Error: Processing of port nmap failed

Mac OS X Server 10.4.11 PowerPC G5 MacPorts 2.3.0 MacPorts Apple GCC 4.2

Attachments (2)

serv1_building_error_log___main.log (31.3 KB) - added by macports-trac@… 10 years ago.
patch-SConstruct.diff (1.2 KB) - added by djlambe11@… 10 years ago.

Download all attachments as: .zip

Change History (9)

Changed 10 years ago by macports-trac@…

comment:1 Changed 10 years ago by mf2k (Frank Schima)

Description: modified (diff)
Keywords: tiger added
Owner: changed from macports-tickets@… to blair@…
Port: serf1 added

In the future, please use WikiFormatting, fill in the Port field and Cc the port maintainers (port info --maintainers serf1).

comment:2 Changed 10 years ago by blair (Blair Zajac)

It looks like serf1's cmake isn't designed to support 10.4 as this is the error:

:info:build MACOSX_DEPLOYMENT_TARGET=10.4 /opt/local/bin/gcc-apple-4.2 -o libserf-1.1.3.4.dylib -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc -Wl,-install_name,/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_www_serf1/serf1/work/serf-1.3.4/libserf-1.dylib -dynamiclib -current_version 1.3.4 -compatibility_version 1.3.4 -undefined dynamic_lookup context.os incoming.os outgoing.os ssltunnel.os buckets/aggregate_buckets.os buckets/allocator.os buckets/barrier_buckets.os buckets/buckets.os buckets/bwtp_buckets.os buckets/chunk_buckets.os buckets/dechunk_buckets.os buckets/deflate_buckets.os buckets/file_buckets.os buckets/headers_buckets.os buckets/iovec_buckets.os buckets/limit_buckets.os buckets/mmap_buckets.os buckets/request_buckets.os buckets/response_body_buckets.os buckets/response_buckets.os buckets/simple_buckets.os buckets/socket_buckets.os buckets/ssl_buckets.os auth/auth.os auth/auth_basic.os auth/auth_digest.os auth/auth_spnego.os auth/auth_spnego_gss.os auth/auth_spnego_sspi.os -L/opt/local/lib -L/opt/local/lib/db46 -L/opt/local/lib -lssl -lcrypto -lz -lapr-1 -lpthread -laprutil-1 -ldb-4.6 -lexpat -liconv
158	:info:build /usr/bin/ld: -i argument: nstall_name must have a ':' between its symbol names

I don't have 10.4 nor even if I did have time to look at it, so if you want to supply a patch that fixes the build on your OS, I would take it.

Alternatively, you could ask the developers on the serf mailing list for a suggestion:

https://groups.google.com/forum/#!forum/serf-dev

Blair

comment:3 in reply to:  2 Changed 10 years ago by macports-trac@…

Replying to blair@…:

Error seems to be connected with scons:

:info:build scons: `libserf-1.a' is up to date.
:info:build MACOSX_DEPLOYMENT_TARGET=10.4 /opt/local/bin/gcc-apple-4.2 -o libserf-1.1.3.4.dylib ...
...
:info:build scons: *** [libserf-1.1.3.4.dylib] File exists
:info:build scons: building terminated because of errors.

This looks very similar to https://trac.macports.org/ticket/40155:

scons: *** [libserf-1.3.0.0.dylib] Error 1
scons: building terminated because of errors.

With that ticket 40155 is a patch attachment to be installed by:

cd /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/www/serf1/
sudo patch <~/Downloads/serf1-portfile-40155-possible-fix-for-all-osx-versions.diff

That patch still works on the Portfile, but the included patch for the python file SConstruct in ...work/serf-1.3.4 is rejected.

That patch deleted two 'env.Append(LINKFLAGS='-Wl,...' lines that no longer exist in serf-1.3.4. It also inserted one new line:

env['SHLIBVERSION']='${%d}.0.0' % (MINOR+1,)

After 1) port sync, 2) port clean serf1, 3) port install serf1, I manually patched this line into SConstruct. This did change the error message to:

:info:build scons: *** [libserf-1.4.0.0.dylib] File exists
:info:build scons: building terminated because of errors.

When I directly change to the version used in Ticket 40155:

env['SHLIBVERSION']='3.0.0'

The result is:

:info:build scons: *** [libserf-1.3.0.0.dylib] File exists
:info:build scons: building terminated because of errors.

Strangely – none of these shared google libraries "libserf-1.x.x.x.dylib" actually "exist" in /opt/local/lib/.

Axel

comment:4 Changed 10 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

Changed 10 years ago by djlambe11@…

Attachment: patch-SConstruct.diff added

comment:5 Changed 10 years ago by djlambe11@…

My apologies if I'm going about this the wrong way; this is my first contribution to the MacPorts project.

I've attached a modified patch-SConstruct.diff that enables the build to complete on OS X 10.4.

The problem appears to be passing -Wl,-install_name -- from the ld man page:

...
-dylib_install_name name
        For dynamic shared library files, specifies the name of the file
        the library will be installed in for programs that use  it.   If
        this  is not specified, the name specified in the -o name option
        will  be  used.   This  option  is  used   as   the   libtool(1)
        -install_name name option when its -dynamic option is specified.
...

So the diff I attached changes -Wl,-install_name to -Wl,-dylib_install_name, on top of the changes applied by the original patch.

comment:6 Changed 5 years ago by mf2k (Frank Schima)

Owner: blair deleted
Status: newassigned

comment:7 Changed 21 months ago by rmottola (Riccardo)

have you tried forcing a macports compiler? at least gcc 4.8, better gcc 6, for example

Note: See TracTickets for help on using tickets.