Opened 15 years ago

Closed 15 years ago

#20215 closed defect (fixed)

Universal build of fontconfig broken

Reported by: dbsgeo@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.7.1
Keywords: libfontconfig, universal Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), lvcargnini@…
Port: fontconfig

Description

With the latest Macports (1.7.1) on a fresh install, when trying to get a universal build of cairo/cairomm the build fails on fontconfig.

First it failed due to odd inability to install in some deep /Applications folder then (after doing a clean and re-install) due to the inability to create the right arch libraries.

First:

$ sudo port -d install cairomm +universal

[...snip..]

Making install in test
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Nothing to be done for `install-exec-am'.
test -z "/opt/local/etc/fonts" || /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/fontconfig-2.6.0-i386/install-sh -d "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts"
 /usr/bin/install -c -m 644 'fonts.dtd' '/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.dtd'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/fontconfig-2.6.0-i386/install-sh -d /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/var/cache/fontconfig
if [ -f /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.conf ]; then \
	  echo "backing up existing /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.conf"; \
	  mv /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.conf /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.conf.bak; \
	fi
backing up existing /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.conf
if [ -f ./fonts.conf ]; then \
	  echo " /usr/bin/install -c -m 644 ./fonts.conf /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.conf"; \
	  /usr/bin/install -c -m 644 ./fonts.conf /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.conf; \
	else if [ -f fonts.conf ]; then \
	  echo " /usr/bin/install -c -m 644 fonts.conf /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.conf"; \
	  /usr/bin/install -c -m 644 fonts.conf /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.conf; \
	fi; fi
 /usr/bin/install -c -m 644 ./fonts.conf /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/etc/fonts/fonts.conf
***
*** Warning: fonts.cache not built
***
*** Generate this file manually on host system using fc-cache
***
test -z "/opt/local/lib/pkgconfig" || /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/fontconfig-2.6.0-i386/install-sh -d "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/lib/pkgconfig"
 /usr/bin/install -c -m 644 'fontconfig.pc' '/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/opt/local/lib/pkgconfig/fontconfig.pc'
DEBUG: delete: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot
DEBUG: universal: merge: /Applications only exists in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-ppc
Error: Target org.macports.destroot returned: error copying "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-ppc//Applications" to "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-powerpc/Applications": file already exists
Warning: the following items did not execute (for fontconfig): org.macports.activate org.macports.destroot org.macports.install
Error: The following dependencies failed to build: cairo fontconfig libpixman libpng xrender xorg-libX11 xorg-bigreqsproto xorg-inputproto xorg-kbproto xorg-libXau xorg-xproto xorg-libXdmcp xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-renderproto libsigcxx2
Error: Status 1 encountered during processing.

Then after a clean and re-install:

[...snip...]
DEBUG: universal: merge: merging /opt/local/include/fontconfig/fontconfig.h from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386//opt/local/include/fontconfig/fontconfig.h -> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-intel//opt/local/include/fontconfig/fontconfig.h
DEBUG: universal: merge: /opt/local/include/fontconfig/fontconfig.h is identical in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64
DEBUG: universal: merge: merging /opt/local/lib from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64
xinstall: mkdir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-intel//opt/local/lib
DEBUG: universal: merge: merging /opt/local/lib/libfontconfig.1.3.0.dylib from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386//opt/local/lib/libfontconfig.1.3.0.dylib -> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-intel//opt/local/lib/libfontconfig.1.3.0.dylib
DEBUG: universal: merge: /opt/local/lib/libfontconfig.1.3.0.dylib is identical in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64
DEBUG: universal: merge: merging /opt/local/lib/libfontconfig.1.dylib from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64
DEBUG: universal: merge: /opt/local/lib/libfontconfig.1.dylib is a link
DEBUG: universal: merge: merging /opt/local/lib/libfontconfig.a from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386//opt/local/lib/libfontconfig.a /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64//opt/local/lib/libfontconfig.a differ: char 34, line 2
/usr/bin/lipo: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386//opt/local/lib/libfontconfig.a and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64//opt/local/lib/libfontconfig.a have the same architectures (i386) and can't be in the same fat output file
DEBUG: delete: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-intel//opt/local/lib/libfontconfig.a
Error: Target org.macports.destroot returned: Can not create /opt/local/lib/libfontconfig.a from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64
Warning: the following items did not execute (for fontconfig): org.macports.activate org.macports.destroot org.macports.install
Error: The following dependencies failed to build: cairo fontconfig libpixman libpng xrender xorg-libX11 xorg-bigreqsproto xorg-inputproto xorg-kbproto xorg-libXau xorg-xproto xorg-libXdmcp xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-renderproto libsigcxx2
Error: Status 1 encountered during processing.

Attachments (2)

fontconfig-muniversal-options.diff (1.0 KB) - added by jmroot (Joshua Root) 15 years ago.
Portfile.diff (353 bytes) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 15 years ago.

Download all attachments as: .zip

Change History (12)

comment:1 Changed 15 years ago by blb@…

Owner: changed from macports-tickets@… to ryandesign@…

comment:2 Changed 15 years ago by jmroot (Joshua Root)

Attaching a patch that seemed to work for me, note however that I do not understand the reasons behind the original approach.

Changed 15 years ago by jmroot (Joshua Root)

comment:3 Changed 15 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: mcalhoun@… added

Cc'ing the author of the original approach.

Note also that the port will be updated to 2.7.0 soon which might change things for universal again.

comment:4 Changed 15 years ago by dbsgeo@…

I just tried again after the update in #20192 but this did not seem to change anything:

--->  Staging fontconfig into destroot
--->  Staging fontconfig into destroot for architecture x86_64
--->  Staging fontconfig into destroot for architecture ppc
--->  Staging fontconfig into destroot for architecture i386
Error: Target org.macports.destroot returned: Can not create /opt/local/lib/libfontconfig.a from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-x86_64

comment:5 Changed 15 years ago by lvcargnini@…

I getting the following error:

sudo port install fontconfig
Password:
--->  Staging fontconfig into destroot
--->  Staging fontconfig into destroot for architecture i386

Error: Target org.macports.destroot returned: error copying "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot" to "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/destroot": file already exists
Error: Status 1 encountered during processing.

comment:6 in reply to:  5 Changed 15 years ago by lvcargnini@…

I forgot to say my universal_architecture is i386 x86_64
Replying to lvcargnini@…:

I getting the following error:
sudo port install fontconfig
Password:
---> Staging fontconfig into destroot
---> Staging fontconfig into destroot for architecture i386

Error: Target org.macports.destroot returned: error copying
"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot" to
"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_fontconfig/work/destroot-i386/destroot": file already exists
Error: Status 1 encountered during processing.

comment:7 Changed 15 years ago by lvcargnini@…

Cc: lvcargnini@… added

Cc Me!

Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: Portfile.diff added

comment:8 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

The default behavior of the muniversal PortGroup was changed in r53389.
The attached patch should fix the problem.

comment:9 Changed 15 years ago by lvcargnini@…

It seems to be working, for me with my two archs in the universal_arch :
sudo port install fontconfig

--->  Fetching fontconfig
--->  Verifying checksum(s) for fontconfig
--->  Extracting fontconfig
--->  Applying patches to fontconfig
--->  Configuring fontconfig
--->  Configuring fontconfig for architecture i386
--->  Configuring fontconfig for architecture x86_64
--->  Building fontconfig
--->  Building fontconfig for architecture i386
--->  Building fontconfig for architecture x86_64
--->  Staging fontconfig into destroot
--->  Staging fontconfig into destroot for architecture i386
--->  Staging fontconfig into destroot for architecture x86_64
--->  Installing fontconfig @2.7.0_0+macosx+universal
--->  Activating fontconfig @2.7.0_0+macosx+universal
--->  Cleaning fontconfig

comment:10 in reply to:  8 Changed 15 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed

Replying to mcalhoun@…:

The default behavior of the muniversal PortGroup was changed in r53389.

I figured it must have been one of those changes to the portgroup, since I haven't changed the fontconfig portfile, and I did have 2.6.0 installed 4-way universal before so it used to work.

The attached patch should fix the problem.

Works for me with 4-way universal on Leopard. Committed in r53607.

Note: See TracTickets for help on using tickets.