Creating a Portfile for BirdFont

Johan Mattsson johan.mattsson.m at gmail.com
Mon Feb 25 07:58:43 PST 2013


Hi
I have created a new portfile for BirdFont (http://birdfont.org). The
package works but it does not pass all tests.

The portfile can be downloaded here: http://birdfont.org/Portfile

I am new to mac and macports and would appreciate if some one could
tell me what mistakes I have made.

I know of one error but I have not been able to figure out how to get
get around it. I get this error message when I run "port install
birdfont":
...
Error: Port birdfont is still broken after rebuiling it more than 3 times.
Error: Please run port -d -y rev-upgrade and use the output to report a bug.
Port birdfont still broken after rebuilding 3 time(s)

johan-mattssons-macbook:birdfont johanmattsson$ port -d -y rev-upgrade
Warning: Error parsing file
/opt/local/libexec/dbus-daemon-launch-helper: Error opening or reading
file
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/bugpoint
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llc
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/lli
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-ar
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-as
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-bcanalyzer
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-cov
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-diff
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-dis
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-dwarfdump
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-extract
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-ld
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-link
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-mc
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-nm
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-objdump
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-prof
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-ranlib
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-readobj
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-rtdyld
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-size
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-stress
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/llvm-stub
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/macho-dump
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/llvm-3.1/bin/opt
DEBUG: Ignoring loadcommand containing @executable_path in
/opt/local/libexec/ld64/ld
DEBUG: skipping ppc64 in /opt/local/lib/libquartz-wm-ds.1.dylib since
this system can't run it anyway
--->  Scanning binaries for linking errors
Could not open /usr/local/lib/libbirdfont.dylib: Error opening or
reading file (referenced from /opt/local/bin/birdfont)
DEBUG: Marking /opt/local/bin/birdfont as broken
DEBUG: Marking /opt/local/bin/birdfont-export as broken

--->  Found 2 broken file(s), matching files to ports
--->  Found 1 broken port(s), determining rebuild order
DEBUG: Broken: birdfont
DEBUG: Processing port birdfont @0:0.15_1
--->  Rebuilding in order
     birdfont @0.15
DEBUG: epoch: in tree: 0 installed: 0
DEBUG: birdfont 0.12_1 exists in the ports tree
DEBUG: birdfont 0.15_1  is the latest installed
DEBUG: birdfont 0.15_1  is active
DEBUG: Merging existing variants '' into variants
DEBUG: new fully merged portvariants:
DEBUG: Changing to port directory: /Users/johanmattsson/ports/editor/birdfont
DEBUG: OS darwin/9.8.0 (Mac OS X 10.5) arch i386
DEBUG: Going to use alternate build prefix: /Users/johanmattsson/.macports
DEBUG: workpath =
/Users/johanmattsson/.macports/opt/local/var/macports/build/_Users_johanmattsson_ports_editor_birdfont/birdfont/work
DEBUG: org.macports.load registered provides 'load', a pre-existing
procedure. Target override will not be provided
DEBUG: org.macports.distfiles registered provides 'distfiles', a
pre-existing procedure. Target override will not be provided
DEBUG: adding the default universal variant
DEBUG: Reading variant descriptions from
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/_resources/port1.0/variant_descriptions.conf
DEBUG: rev-upgrade override ... upgrading!
DEBUG: Not following dependencies
Skipping deactivate birdfont @0.15_1 (dry run)
Skipping activate birdfont @0.15_1 (dry run)
DEBUG: Rebuilding port birdfont finished with status 0
Warning: If this was no dry run, rev-upgrade would now run the checks
again to find unresolved and newly created problems

This seems to happen because gcc for some reason links the executable
to /usr/local/lib/libbirdfont.dylib instead of
/opt/local/lib/libbirdfont.dylib.
The library is in the build directory during the linking step and i
link it with this command:

gcc build/birdfont/*.o ./build/bin/libbirdfont.dylib ... -o ./build/bin/birdfont

The port seems to work fine despite of this error message. The library
will be loaded from the correct location (/opt/local/lib/). Maybe some
one here knows how to make the package pass the test.

Cheers
Johan


More information about the macports-users mailing list