Hello,
I have been working on a Portfile for qt4-x11 4.5.2 and I have run into
some problems. I am able to compile and install the library, but when I
launch any qt applications none of the fonts work properly. They all
show up as squares instead of characters, and some applications, like
qtdemo-x11, end up creating directories in the current directory I am
in, and the directory names use a unicode character set (perhaps
Japanese or a Chinese language).
I tried changing to a few random fonts using qtconfig (I am not sure
which fonts I chose though since the names were spelled out using
squares), but it did not help.
I attached my current Portfile, it is based of the qt4-x11 4.4.3
portfile with a few tweaks. Note: qt4-x11 4.4.3 works fine on my system.
Thanks!
--Sam
# -*- coding: utf-8; mode: tcl; c-basic-offset: 4; indent-tabs-mode: nil;
tab-width: 4; truncate-lines: t -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4
# $Id: Portfile 46431 2009-02-04 22:15:24Z [email protected] $
PortSystem 1.0
name qt4-x11
version 4.5.2
revision 0
categories x11
maintainers mcalhoun
homepage http://www.trolltech.com/
platforms darwin
description Qt Tool Kit
long_description This is Qt, TrollTech's C++ toolkit for writing
cross-platform GUI applications.
master_sites ftp://ftp.trolltech.com/qt/source/ \
http://ftp.iasi.roedu.net/mirrors/ftp.trolltech.com/qt/source/ \
http://ftp.ntua.gr/pub/X11/Qt/qt/source/ \
http://wftp.tu-chemnitz.de/pub/Qt/qt/source/
distname qt-x11-opensource-src-${version}
checksums \
md5 d8bcc070a58db25c228b7729ffad4550 \
sha1 54b94d41adcabcedc7653de78657bcdd3cc0898c \
rmd160 9a136db317aca6168f0a0a76684db603c45ce8b3
depends_build port:pkgconfig
depends_lib \
port:zlib \
port:giflib \
port:tiff \
port:libpng \
port:libmng \
port:jpeg \
port:libiconv \
path:lib/pkgconfig/glib-2.0.pc:glib2 \
port:dbus \
port:unixODBC \
port:mysql5 \
port:postgresql83 \
port:openssl \
port:fontconfig \
port:gettext \
port:xrender \
port:xorg-libsm \
port:xorg-libXi \
port:xorg-libXrandr \
port:mesa \
port:gstreamer \
port:sqlite3
# port:gst-plugins-base \
patchfiles patch-compile.test.diff
# --prefix is not recognized
configure.pre_args-delete --prefix=${prefix}
# -I${prefix}/include and -L${prefix}/lib must be set in ${configure.args}
# or else some generated Makefiles will not seem them
configure.cppflags
configure.ldflags
configure.env-append \
OPENSOURCE_CXXFLAGS=-D__USE_WS_X11__
set qt_dir ${prefix}/libexec/${name}
# -I${prefix}/include should be set in ${configure.args}, but
# we instead patch -isystem ${prefix}/include into the configure
# script to avoid conflicts with other ports (e.g. iconv).
# See http://trac.macports.org/ticket/16862
#
# -dbus-linked prevends qt4 from trying to dynamically load libdbus-1,
# which it is not able to find in ${prefix}
# -openssl-linked ensures that the MacPorts openssl is used
configure.args \
-v \
-opensource \
-confirm-license \
-prefix ${qt_dir} \
-docdir ${prefix}/share/doc/${name} \
-examplesdir ${prefix}/share/${name}/examples \
-demosdir ${prefix}/share/${name}/demos \
-system-sqlite \
-openssl-linked \
-dbus-linked \
-I${prefix}/include/mysql5/mysql \
-I${prefix}/include/postgresql83 \
-L${prefix}/lib \
-L${prefix}/lib/mysql5/mysql \
-L${prefix}/lib/postgresql83 \
-liconv \
-lresolv \
-I${prefix}/include/gstreamer-0.10 \
-I${prefix}/include/glib-2.0 \
-I${prefix}/lib/glib-2.0/include \
-I${prefix}/include/libxml2
# default: -no-nas-sound
# default: -nomake demos -nomake examples
# default: -iconv -svg -webkit -phonon -phonon-backend -xmlpatterns
# default: -no-assistant-webkit
universal_variant no
build.target first
use_parallel_build yes
destroot.destdir INSTALL_ROOT="${destroot}"
platform darwin 7 {
depends_build-append port:cups-headers
}
post-patch {
reinplace -E "s|^I_FLAGS=\$|I_FLAGS=-isystem${prefix}/include|" \
${worksrcpath}/configure
# macosx seems to be a special architecture to accommodate universal
builds, but here is no
# ${worksrcpath}/include/QtCore/qatomic_macosx.h file, which causes an
error
reinplace "s|CFG_HOST_ARCH=macosx|CFG_HOST_ARCH=`uname -p`|g"
${worksrcpath}/configure
# Ensure the correct MacPorts X11 is used
reinplace "s|/usr/X11R6|${prefix}|g"
${worksrcpath}/mkspecs/darwin-g++/qmake.conf
# Avoid having to call "install_name_tool -change" after destroot.
reinplace \
"s|install_name\$\${LITERAL_WHITESPACE}|install_name\$\${LITERAL_WHITESPACE}\$\$\[QT_INSTALL_LIBS\]/|g"
\
${worksrcpath}/mkspecs/darwin-g++/qmake.conf
# ensure that MacPorts compilers are used
reinplace "s| cc\$| ${configure.cc}|"
${worksrcpath}/mkspecs/darwin-g++/qmake.conf
reinplace "s| c++\$| ${configure.cxx}|"
${worksrcpath}/mkspecs/darwin-g++/qmake.conf
# Q_OS_MAC, Q_OS_MACX, and Q_OS_DARWIN is set for all Mac systems.
# Q_WS_MAC is NOT set for the X11 version of QT.
# It is not clear why so many of these had to be changed.
#
# Excluded:
# ${worksrcpath}/src/corelib/global/qglobal.h
# ${worksrcpath}/src/network/kernel/qhostinfo_unix.cpp
foreach file {
qmake/generators/mac/pbuilder_pbx.cpp
src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
src/corelib/global/qglobal.cpp
src/corelib/io/qfile.cpp
src/corelib/io/qfsfileengine_unix.cpp
src/corelib/plugin/qlibrary.cpp
src/corelib/thread/qthread_unix.cpp
src/corelib/tools/qlocale.cpp
src/network/ssl/qsslsocket_openssl_symbols.cpp
tools/porting/src/qt3headers1.resource
tools/qvfb/qlock.cpp
src/gui/painting/qdrawhelper_p.h
} {
reinplace "s|Q_OS_DARWIN|Q_WS_MAC|g" ${worksrcpath}/${file}
}
# Excluded:
# ${worksrcpath}/src/corelib/global/qglobal.h
foreach file {
src/corelib/tools/qdumper.cpp
src/qt3support/other/q3accel.cpp
src/qt3support/other/q3process_unix.cpp
tools/porting/src/qt3headers1.resource
tools/porting/src/qt3headers3.resource
src/corelib/tools/qsharedpointer.cpp
} {
reinplace "s|Q_OS_MACX|Q_WS_MAC|g" ${worksrcpath}/${file}
}
# Edited from command:
# grep -rl "\(Q_OS_MAC\$\|Q_OS_MAC[^X]\)" * | grep -v \.resource\$ | grep
-v ^doc/ | grep -v src/corelib/global/qglobal.h
# Excluded:
# ${worksrcpath}/src/corelib/global/qglobal.h
#
${worksrcpath}/tools/assistant/lib/fulltextsearch/qclucene-config_p.h
# ${worksrcpath}/src/script/qscriptengine_p.cpp
# ${worksrcpath}/src/corelib/io/qprocess.cpp
# ${worksrcpath}/src/corelib/io/qfilesystemwatcher.cpp
# ${worksrcpath}/src/corelib/concurrent/qtconcurrentiteratekernel.cpp
foreach file {
demos/mediaplayer/mediaplayer.cpp
demos/qtdemo/colors.cpp
demos/qtdemo/menumanager.cpp
examples/dialogs/standarddialogs/dialog.cpp
examples/help/remotecontrol/remotecontrol.cpp
examples/help/simpletextviewer/assistant.cpp
examples/tools/echoplugin/echowindow/echowindow.cpp
examples/tools/plugandpaint/mainwindow.cpp
qmake/main.cpp
qmake/option.cpp
src/corelib/codecs/qiconvcodec.cpp
src/corelib/codecs/qiconvcodec_p.h
src/corelib/global/qglobal.cpp
src/corelib/global/qlibraryinfo.cpp
src/corelib/global/qnamespace.h
src/corelib/io/qdir.cpp
src/corelib/io/qfsfileengine_unix.cpp
src/corelib/io/qprocess_unix.cpp
src/corelib/io/qsettings.cpp
src/corelib/io/qsettings_p.h
src/corelib/kernel/qcoreapplication.cpp
src/corelib/kernel/qcoreapplication_p.h
src/corelib/plugin/qlibrary.cpp
src/corelib/plugin/qlibrary_unix.cpp
src/corelib/thread/qthread_unix.cpp
src/corelib/thread/qthread.cpp
src/corelib/tools/qlocale.cpp
src/corelib/tools/qpoint.h
src/corelib/tools/qrect.h
src/corelib/tools/qstring.cpp
src/corelib/xml/qxmlstream.h
src/gui/dialogs/qfilesystemmodel.cpp
src/gui/dialogs/qprintdialog.h
src/gui/itemviews/qdirmodel.cpp
src/gui/itemviews/qfileiconprovider.cpp
src/gui/kernel/qapplication.h
src/gui/kernel/qapplication_p.h
src/gui/text/qfont.cpp
src/gui/text/qfontdatabase.cpp
src/gui/widgets/qdockwidget.cpp
src/plugins/accessible/widgets/simplewidgets.cpp
src/qt3support/other/q3polygonscanner.cpp
src/qt3support/text/q3textedit.cpp
src/sql/drivers/odbc/qsql_odbc.h
src/tools/uic/cpp/cppwriteinitialization.cpp
src/tools/uic/cpp/cppwriteinitialization.h
tools/assistant/compat/lib/qassistantclient.cpp
tools/assistant/lib/qhelpsearchresultwidget.cpp
tools/assistant/tools/assistant/bookmarkmanager.cpp
tools/assistant/tools/assistant/centralwidget.cpp
tools/assistant/tools/assistant/indexwindow.cpp
tools/assistant/tools/assistant/mainwindow.cpp
tools/designer/src/designer/assistantclient.cpp
tools/designer/src/designer/qdesigner_actions.cpp
tools/designer/src/lib/uilib/abstractformbuilder.cpp
tools/linguist/shared/proparserutils.h
src/gui/util/qcompleter.cpp
tools/linguist/linguist/mainwindow.cpp
tools/shared/findwidget/abstractfindwidget.cpp
} {
reinplace "s|Q_OS_MAC|Q_WS_MAC|g" ${worksrcpath}/${file}
}
}
post-destroot {
foreach doc {INSTALL LICENSE.GPL3 README} {
xinstall -c -m 644 ${worksrcpath}/$doc
${destroot}${prefix}/share/doc/${name}
}
# create link in ${prefix}/bin to executable files in ${qt_dir}/bin
foreach bin [glob -type f -directory ${destroot}${qt_dir}/bin *] {
system "ln -s ${qt_dir}/bin/[file tail ${bin}] ${destroot}${prefix}/bin"
}
# append -x11 to links in ${prefix}/bin to avoid conflict with qt4-mac
foreach bin [glob ${destroot}${prefix}/bin/*] {
file rename ${bin} ${bin}-x11
}
# qtconfig is not installed by qt4-mac
file rename ${destroot}${prefix}/bin/qtconfig-x11
${destroot}${prefix}/bin/qtconfig
# Fix the .pc and .prl files by removing ${destroot}
foreach fixfile [glob -nocomplain -directory ${destroot}
${qt_dir}/lib/pkgconfig/*.pc ${qt_dir}/lib/*.prl
${prefix}/share/${name}/demos/shared/*.prl] {
reinplace \
"s|-L${worksrcpath}/lib|-L${qt_dir}/lib|g" \
${fixfile}
}
# install select file for qt4_select
xinstall -m 755 -d ${destroot}${prefix}/etc/select/qt4
xinstall -m 644 ${filespath}/${name} ${destroot}${prefix}/etc/select/qt4/
}
variant webkit description {Use WebKit as html rendering engine in Assistant} {
configure.args-append -assistant-webkit
}
livecheck.check regex
livecheck.url
http://trolltech.com/downloads/opensource/appdev/linux-x11-cpp
livecheck.regex "qt-x11-opensource-src-(4(?:\\.\\d+)*)${extract.suffix}"
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev