[Momonga-devel.ja:01698] new qt.spec


西山と申します.

qtのSPECファイルですが,いくつか,誤りがみられたので,
書き直してみました.HEADのqt.specとの差分を添付します.
ご採用いただければ幸いに存じます.

差分をそのまま採用いただく意図ではありませんので,
適宜ご修正頂ければと思います.

なお,既存コメントと差をつけるため,コメントアウトは##としました.

もしかすると,KDEの挙動に乱れが発生するかもしれません.
この場合,KDEを作り直す必要があります.
先日リリースされたKDE-3.1.2が採用されると予想していますので,
よい機会なのではないかと思っています.

従来と違いを書きます.

従来,./configure -prefix /usr/lib/qt3 でコンパイルされ
/usr/lib/qt-%{version} に実体が存在しましたが,
/usr/lib/qt-%{version} に統一されます.
いずれが,Momonga的に正しいのかは判断しかねましたので,
御修正いただければと思います.

rawhide に用いられた方法で,Xft, freetype2, MySQL, postgresql の
ヘッダファイルを使用するよう ./configure に加えました.

従来,./configure -no-thread; make src-qmake src-moc sub-src を行い,
./configure -thread; make src-qmake src-moc sub-src sub-tools を
行っていましたが,いずれも,make src-qmake src-moc sub-src sub-tools
を行います.(無駄かもしれません)

make clean を行っても,lib 以下は削除されませんので,
cp -aR lib lib-bld関係はコメントアウトしました.

ファイルのインストールは,make INSTALL_ROOT=%{buildroot} install が
利用できるので,これを利用するよう変更しました.

examples, tutorial 以下のMakefileの修正に誤りがあったので
変更しました.
なお,2階層以上の探索は,すべてQTDIRに決め打ちして置換しているため
今後,コンパイルできない/動作しないexamples,tutorialが存在しうる
可能性があります.

%files をいくつか変更しました.
qt-desinger用と思われるファイルがインストールされていたので
加えました.

以上です.
-- 
Masahiro Nishiyama
--- qt.spec.orig	2003-05-20 04:59:54.000000000 +0900
+++ qt.spec	2003-05-20 06:40:44.000000000 +0900
@@ -158,54 +158,84 @@
 export QTDIR=`/bin/pwd`
 export LD_LIBRARY_PATH="$QTDIR/lib:$LD_LIBRARY_PATH"
 export PATH="$QTDIR/bin:$PATH"
+
+# Xft flags
+if pkg-config xft >& /dev/null ; then
+   export XFTFLAGS="`pkg-config --cflags xft`"
+fi
+
+# MySQL flag
+if mysql_config --cflags --libs >& /dev/null ; then
+   export MYSQLFLAGS="`mysql_config --cflags`"
+fi
+
+# PGSQL flag
+if pg_config --includedir --includedir-server >& /dev/null ; then
+   export PGFLAGS="-I`pg_config --includedir` -I`pg_config --includedir-server`"
+fi
+
 OPTFLAGS=`echo %{optflags} |sed -e s/-fno-rtti/-frtti/`
-OPTFLAGS="$OPTFLAGS `fontconfig-config --cflags`"
-perl -pi -e "s,-O2,-I/usr/include/freetype2 $OPTFLAGS -fno-exceptions,g" mkspecs/*/qmake.conf
+##OPTFLAGS="$OPTFLAGS `fontconfig-config --cflags`"
+OPTFLAGS="$OPTFLAGS $XFTFLAGS $MYSQLFLAGS $PGFLAGS"
+##perl -pi -e "s,-O2,-I/usr/include/freetype2 $OPTFLAGS -fno-exceptions,g" mkspecs/*/qmake.conf
+perl -pi -e "s,-O2,$OPTFLAGS -fno-exceptions,g" mkspecs/*/qmake.conf
 
 # build shared, nonthreaded libraries
-echo yes |./configure -prefix /usr/lib/qt3 -release -shared -qt-gif \
+echo yes |./configure -release -shared -qt-gif \
+  -prefix %{qtdir} -libdir  %{qtdir}/lib \
   -system-zlib -system-libpng -system-libmng -system-libjpeg \
   -no-g++-exceptions -enable-tools -enable-kernel -enable-widgets \
   -enable-dialogs -enable-iconview -enable-workspace -enable-network \
   -enable-canvas -enable-table -enable-xml -enable-sql -qt-style-motif \
+  -enable-codecs -enable-compat -enable-embedded \
+  -enable-moc -enable-opengl -enable-styles \
   -plugin-sql-mysql -plugin-sql-psql -plugin-sql-odbc -plugin-style-cde \
   -plugin-style-motifplus -plugin-style-platinum -plugin-style-sgi \
-  -plugin-style-windows -plugin-style-compact -plugin-style-interlace \
-  -plugin-style-common -qt-imgfmt-png -qt-imgfmt-jpeg -qt-imgfmt-mng \
+  -plugin-style-windows -plugin-style-compact \
+  -qt-imgfmt-png -qt-imgfmt-jpeg -qt-imgfmt-mng \
   -stl -no-thread \
 %if "%{with_cups}" == "0"
   -no-cups \
 %else
   -cups \
 %endif
-  -sm -xinerama -xrender -tablet -xft -xkb
-
-make src-qmake %{?_smp_mflags}
-cd plugins/src/sqldrivers/psql
-qmake -o Makefile "INCLUDEPATH+=/usr/include/pgsql /usr/include/pgsql/server /usr/include/pgsql/internal" "LIBS+=-lpq" psql.pro
-cd ../mysql
-qmake -o Makefile "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
-cd ../odbc
-qmake -o Makefile "LIBS+=-lodbc" odbc.pro
-cd ../../../..
-make CC="gcc -fPIC" CXX="g++ -fPIC" src-moc sub-src %{?_smp_mflags}
+  -sm -xinerama -xrender -tablet -xft -xkb \
+  $MYSQLFLAGS \
+  $PGFLAGS \
+  $XFTFLAGS
+
+make %{?_smp_mflags}
+##make src-qmake %{?_smp_mflags}
+##cd plugins/src/sqldrivers/psql
+##qmake -o Makefile "INCLUDEPATH+=/usr/include/pgsql /usr/include/pgsql/server /usr/include/pgsql/internal" "LIBS+=-lpq" psql.pro
+##cd ../mysql
+##qmake -o Makefile "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
+##cd ../odbc
+##qmake -o Makefile "LIBS+=-lodbc" odbc.pro
+##cd ../../../..
+##make CC="gcc -fPIC" CXX="g++ -fPIC" src-moc sub-src %{?_smp_mflags}
 
-cp -aR lib lib-bld
+##cp -aR lib lib-bld
 #cp -aR bin bin-bld
 make clean
-rm -rf lib
-mv lib-bld lib
+##rm -rf lib
+##mv lib-bld lib
 #mv bin-bld bin
 
+cp src/Makefile src/Makefile.nothread
+
 # build shared, threaded (default) libraries
-echo yes |./configure -prefix /usr/lib/qt3 -release -shared -qt-gif \
+echo yes |./configure -release -shared -qt-gif \
+  -prefix %{qtdir} -libdir  %{qtdir}/lib \
   -system-zlib -system-libpng -system-libmng -system-libjpeg \
   -no-g++-exceptions -enable-tools -enable-kernel -enable-widgets \
   -enable-dialogs -enable-iconview -enable-workspace -enable-network \
   -enable-canvas -enable-table -enable-xml -enable-sql -qt-style-motif \
+  -enable-codecs -enable-compat -enable-embedded \
+  -enable-moc -enable-opengl -enable-styles \
   -plugin-sql-mysql -plugin-sql-psql -plugin-sql-odbc -plugin-style-cde \
   -plugin-style-motifplus -plugin-style-platinum -plugin-style-sgi \
-  -plugin-style-windows -plugin-style-compact -plugin-style-interlace \
+  -plugin-style-windows -plugin-style-compact \
   -plugin-style-common -qt-imgfmt-png -qt-imgfmt-jpeg -qt-imgfmt-mng \
   -stl -thread \
 %if "%{with_cups}" == "0"
@@ -213,19 +243,23 @@
 %else
   -cups \
 %endif
-  -sm -xinerama -xrender -tablet -xft -xkb
-
-make src-qmake %{?_smp_mflags}
-cd plugins/src/sqldrivers/psql
-qmake -o Makefile "INCLUDEPATH+=/usr/include/pgsql /usr/include/pgsql/server /usr/include/pgsql/internal" "LIBS+=-lpq" psql.pro
-cd ../mysql
-qmake -o Makefile "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
-cd ../odbc
-qmake -o Makefile "LIBS+=-lodbc" odbc.pro
-cd ../../../..
-make %{?_smp_mflags} src-moc
-make CC="gcc -fPIC" CXX="g++ -fPIC" sub-src
-make %{?_smp_mflags} sub-tools
+  -sm -xinerama -xrender -tablet -xft -xkb \
+  $MYSQLFLAGS \
+  $PGFLAGS \
+  $XFTFLAGS 
+
+make %{?_smp_mflags}
+##make src-qmake %{?_smp_mflags}
+##cd plugins/src/sqldrivers/psql
+##qmake -o Makefile "INCLUDEPATH+=/usr/include/pgsql /usr/include/pgsql/server /usr/include/pgsql/internal" "LIBS+=-lpq" psql.pro
+##cd ../mysql
+##qmake -o Makefile "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
+##cd ../odbc
+##qmake -o Makefile "LIBS+=-lodbc" odbc.pro
+##cd ../../../..
+##make %{?_smp_mflags} src-moc
+##make CC="gcc -fPIC" CXX="g++ -fPIC" sub-src
+##make %{?_smp_mflags} sub-tools
 
 %install
 rm -rf %{buildroot}
@@ -236,6 +270,11 @@
 mkdir -p %{buildroot}%{qtdir}/{bin,include,lib}
 mkdir -p %{buildroot}%{_mandir}/{man1,man3}
 
+make INSTALL_ROOT=%{buildroot} install
+pushd src
+make -f Makefile.nothread INSTALL_ROOT=%{buildroot} install_target
+popd
+
 # strip binaries
 rm -f bin/*.bat
 #for i in bin/*; do
@@ -243,33 +282,33 @@
 #done
 
 # install tools and libraries
-rm bin/qmake
-cp -fL qmake/qmake bin
-for i in bin/*; do
-	cp -fL $i %{buildroot}/%{qtdir}/bin
-	chmod 0755 %{buildroot}/%{qtdir}/$i
-done
-cp -aR lib/* %{buildroot}/%{qtdir}/lib
-cp -aR plugins %{buildroot}/%{qtdir}
-
-ln -sf libqt.so.%{version} %{buildroot}%{qtdir}/lib/libqt.so.3.0
-ln -sf libqt.so.%{version} %{buildroot}%{qtdir}/lib/libqt.so.3
-ln -sf libqt.so.%{version} %{buildroot}%{qtdir}/lib/libqt.so
-ln -sf libqt-mt.so.%{version} %{buildroot}%{qtdir}/lib/libqt-mt.so.3.0
-ln -sf libqt-mt.so.%{version} %{buildroot}%{qtdir}/lib/libqt-mt.so.3
-ln -sf libqt-mt.so.%{version} %{buildroot}%{qtdir}/lib/libqt-mt.so
-ln -sf libqui.so.1.0.0 %{buildroot}%{qtdir}/lib/libqui.so.1.0
-ln -sf libqui.so.1.0.0 %{buildroot}%{qtdir}/lib/libqui.so.1
-ln -sf libqui.so.1.0.0 %{buildroot}%{qtdir}/lib/libqui.so
-ln -sf libeditor.so.1.0.0 %{buildroot}%{qtdir}/lib/libeditor.so.1.0
-ln -sf libeditor.so.1.0.0 %{buildroot}%{qtdir}/lib/libeditor.so.1
-ln -sf libeditor.so.1.0.0 %{buildroot}%{qtdir}/lib/libeditor.so
+##rm bin/qmake
+##cp -fL qmake/qmake bin
+##for i in bin/*; do
+##	cp -fL $i %{buildroot}/%{qtdir}/bin
+##	chmod 0755 %{buildroot}/%{qtdir}/$i
+##done
+##cp -aR lib/* %{buildroot}/%{qtdir}/lib
+##cp -aR plugins %{buildroot}/%{qtdir}
+
+##ln -sf libqt.so.%{version} %{buildroot}%{qtdir}/lib/libqt.so.3.0
+##ln -sf libqt.so.%{version} %{buildroot}%{qtdir}/lib/libqt.so.3
+##ln -sf libqt.so.%{version} %{buildroot}%{qtdir}/lib/libqt.so
+##ln -sf libqt-mt.so.%{version} %{buildroot}%{qtdir}/lib/libqt-mt.so.3.0
+##ln -sf libqt-mt.so.%{version} %{buildroot}%{qtdir}/lib/libqt-mt.so.3
+##ln -sf libqt-mt.so.%{version} %{buildroot}%{qtdir}/lib/libqt-mt.so
+##ln -sf libqui.so.1.0.0 %{buildroot}%{qtdir}/lib/libqui.so.1.0
+##ln -sf libqui.so.1.0.0 %{buildroot}%{qtdir}/lib/libqui.so.1
+##ln -sf libqui.so.1.0.0 %{buildroot}%{qtdir}/lib/libqui.so
+##ln -sf libeditor.so.1.0.0 %{buildroot}%{qtdir}/lib/libeditor.so.1.0
+##ln -sf libeditor.so.1.0.0 %{buildroot}%{qtdir}/lib/libeditor.so.1
+##ln -sf libeditor.so.1.0.0 %{buildroot}%{qtdir}/lib/libeditor.so
 #ln -sf libqxt.so.0.3.0 %{buildroot}%{qtdir}/lib/libqxt.so.0.3
 #ln -sf libqxt.so.0.3.0 %{buildroot}%{qtdir}/lib/libqxt.so.0
 #ln -sf libqxt.so.0.3.0 %{buildroot}%{qtdir}/lib/libqxt.so
-ln -sf libqassistantclient.so.1.0.0 %{buildroot}%{qtdir}/lib/libqassistantclient.so.1.0
-ln -sf libqassistantclient.so.1.0.0 %{buildroot}%{qtdir}/lib/libqassistantclient.so.1
-ln -sf libqassistantclient.so.1.0.0 %{buildroot}%{qtdir}/lib/libqassistantclient.so
+##ln -sf libqassistantclient.so.1.0.0 %{buildroot}%{qtdir}/lib/libqassistantclient.so.1.0
+##ln -sf libqassistantclient.so.1.0.0 %{buildroot}%{qtdir}/lib/libqassistantclient.so.1
+##ln -sf libqassistantclient.so.1.0.0 %{buildroot}%{qtdir}/lib/libqassistantclient.so
 
 # install man pages
 cp -fR doc/man/man1/* %{buildroot}%{_mandir}/man1
@@ -279,22 +318,30 @@
 # clean up
 make -C tutorial clean
 make -C examples clean
-find examples -name Makefile | xargs perl -pi -e 's|\.\./\.\.|\$\(QTDIR\)|g'
-find examples -name Makefile | xargs perl -pi -e 's|'$RPM_BUILD_DIR'/qt-x11-free-%{version}|\$\(QTDIR\)|g'
-find examples -name Makefile | xargs perl -pi -e 's|\.\./\.\./lib/libqt-mt\.prl||g'
-find examples -name Makefile | xargs perl -pi -e 's|\.\./\.qmake\.cache||g'
-find examples -name Makefile | xargs perl -pi -e 's|\.\./\.\./src/qt_professional\.pri||g'
-perl -p -i -e 's|\$\(QTDIR\)/src/qt_professional\.pri||g' examples/demo/Makefile
-perl -p -i -e 's|include\( \.\./\.\./src/qt_professional\.pri \)||g' examples/demo/demo.pro
-perl -p -i -e 's|\.\./||g' examples/*/*/Makefile
-perl -p -i -e 's|\$\(QTDIR\)/\$\(QTDIR\)/|\$\(QTDIR\)/|g' examples/network/clientserver/*/Makefile examples/network/infoprotocol/*/Makefile
+##find examples -name Makefile | xargs perl -pi -e 's|\.\./\.\.|\$\(QTDIR\)|g'
+##find examples -name Makefile | xargs perl -pi -e 's|'$RPM_BUILD_DIR'/qt-x11-free-%{version}|\$\(QTDIR\)|g'
+##find examples -name Makefile | xargs perl -pi -e 's|\.\./\.\./lib/libqt-mt\.prl||g'
+##find examples -name Makefile | xargs perl -pi -e 's|\.\./\.qmake\.cache||g'
+##find examples -name Makefile | xargs perl -pi -e 's|\.\./\.\./src/qt_professional\.pri||g'
+##perl -p -i -e 's|\$\(QTDIR\)/src/qt_professional\.pri||g' examples/demo/Makefile
+##perl -p -i -e 's|include\( \.\./\.\./src/qt_professional\.pri \)||g' examples/demo/demo.pro
+##perl -p -i -e 's|\.\./||g' examples/*/*/Makefile
+##perl -p -i -e 's|\$\(QTDIR\)/\$\(QTDIR\)/|\$\(QTDIR\)/|g' examples/network/clientserver/*/Makefile examples/network/infoprotocol/*/Makefile
+find examples tutorial -name Makefile | xargs perl -pi -e 's|'$RPM_BUILD_DIR'/qt-x11-free-%{version}|\$\(QTDIR\)|g'
+find examples tutorial -name Makefile | xargs perl -pi -e 's|[\./]*\.qmake\.cache||g'
+find examples tutorial -name Makefile | xargs perl -pi -e 's|[\./]*\./src/qt_professional\.pri||g'
+find examples tutorial -name Makefile | xargs perl -pi -e 's|[\./]*\./lib/libqt-mt\.prl||g'
+
+find examples tutorial -mindepth 2 -name Makefile | xargs perl -pi -e 's|\.\./[\./]*\.\.|\.\./\.\.|g'
+find examples tutorial -mindepth 2 -name Makefile | xargs perl -pi -e 's|\.\./\.\.|\$\(QTDIR\)|g'
+
 perl -p -i -e 's|-DQT_SHARED|-DQT_SHARED -DQT_NO_STYLE_WINDOWS|g' examples/themes/Makefile
 #find examples -type f -perm 755 | xargs strip -R .comment || :
-find tutorial -name Makefile | xargs perl -pi -e 's|\.\./\.\.|\$\(QTDIR\)|g'
-find tutorial -name Makefile | xargs perl -pi -e 's|'$RPM_BUILD_DIR'/qt-x11-free-%{version}|\$\(QTDIR\)|g'
-find tutorial -name Makefile | xargs perl -pi -e 's|\.\./\.\./lib/libqt-mt\.prl||g'
-find tutorial -name Makefile | xargs perl -pi -e 's|\.\./\.qmake.cache||g'
-find tutorial -name Makefile | xargs perl -pi -e 's|\.\./\.\./src/qt_professional\.pri||g'
+##find tutorial -name Makefile | xargs perl -pi -e 's|\.\./\.\.|\$\(QTDIR\)|g'
+##find tutorial -name Makefile | xargs perl -pi -e 's|'$RPM_BUILD_DIR'/qt-x11-free-%{version}|\$\(QTDIR\)|g'
+##find tutorial -name Makefile | xargs perl -pi -e 's|\.\./\.\./lib/libqt-mt\.prl||g'
+##find tutorial -name Makefile | xargs perl -pi -e 's|\.\./\.qmake.cache||g'
+##find tutorial -name Makefile | xargs perl -pi -e 's|\.\./\.\./src/qt_professional\.pri||g'
 #find tutorial -type f -perm 755 | xargs strip -R .comment || :
 
 for a in */*/Makefile ; do
@@ -303,24 +350,28 @@
 done
 
 # Get rid of windows or mac specific links
-for i in include/* include/*/*; do [ -e $i ] || rm $i; done
+##for i in include/* include/*/*; do [ -e $i ] || rm $i; done
 
-cp -frL include/* %{buildroot}%{qtdir}/include
-chmod a+r %{buildroot}%{qtdir}/lib/libqt.so*
+##cp -frL include/* %{buildroot}%{qtdir}/include
+##chmod a+r %{buildroot}%{qtdir}/lib/libqt.so*
 
 ln -s qt-%{version} %{buildroot}%{_libdir}/qt3
 
 mkdir -p %{buildroot}/usr/bin
+# forget
+install -m 755 bin/{findtr,qt20fix,qtrename140} %{buildroot}/%{qtdir}/bin
+
 for i in bin/*; do
 	ln -s ../lib/qt3/bin/`basename $i` %{buildroot}/%{_bindir}
 	ln -s `basename $i` %{buildroot}/usr/bin/`basename $i`3
 done
 
+rm -rf %{buildroot}%{qtdir}/doc
 # make symbolic link to qt docdir
 if echo %{_docdir} | grep  share >& /dev/null ; then
-  ln -s  ../../share/doc/%{name}-devel-%{version} %{buildroot}%{qtdir}/doc
+  ln -sf  ../../share/doc/%{name}-devel-%{version} %{buildroot}%{qtdir}/doc
 else
-  ln -s  ../../doc/%{name}-devel-%{version} %{buildroot}%{qtdir}/doc
+  ln -sf  ../../doc/%{name}-devel-%{version} %{buildroot}%{qtdir}/doc
 fi
 
 # Add desktop file
@@ -349,7 +400,7 @@
 EOF
 
 # Ship qmake stuff
-cp -aR mkspecs %{buildroot}%{qtdir}
+##cp -aR mkspecs %{buildroot}%{qtdir}
 
 %clean
 rm -rf %{buildroot}
@@ -379,10 +430,12 @@
 %dir %{qtdir}
 %dir %{qtdir}/bin
 %dir %{qtdir}/lib
+%{_libdir}/qt3
 %{qtdir}/bin/qtconfig
 %{_bindir}/qtconfig* 
 %{qtdir}/lib/libqt.so.*
 %{qtdir}/lib/libqt-mt.so.*
+%dir %{qtdir}/etc
 %{qtdir}/etc/settings/qtrc
 %dir %{qtdir}/plugins
 %{qtdir}/lib/libqui.so.*
@@ -392,14 +445,14 @@
 
 %files devel
 %defattr(-,root,root,-)
-%{_libdir}/qt3
+##%{_libdir}/qt3
 %{qtdir}/bin/assistant
 %{qtdir}/bin/findtr
 %{qtdir}/bin/moc
 %{qtdir}/bin/qm2ts
 %{qtdir}/bin/qmake
 %{qtdir}/bin/qt20fix
-%{qtdir}/bin/qtconfig
+##%{qtdir}/bin/qtconfig
 %{qtdir}/bin/qtrename140
 %{qtdir}/bin/uic
 %{qtdir}/include
@@ -411,8 +464,8 @@
 %{qtdir}/lib/libqt-mt.prl
 %{qtdir}/lib/libqui.so
 %{qtdir}/lib/libqui.prl
-#%{qtdir}/lib/libdesigner.so
-#%{qtdir}/lib/libdesigner.prl
+%{qtdir}/lib/libdesigner.so
+%{qtdir}/lib/libdesigner.prl
 %{qtdir}/lib/libqassistantclient.so
 %{qtdir}/lib/libqassistantclient.prl
 %{qtdir}/lib/libeditor.so
@@ -424,13 +477,15 @@
 %{_bindir}/findtr*
 %{_bindir}/qt20fix*
 %{_bindir}/qtrename140*
-%{_bindir}/qtconfig*
+##%{_bindir}/qtconfig*
 %{_bindir}/qmake*
 %{_bindir}/qm2ts*
 #%if %{pkg_config}
 #%{_libdir}/pkgconfig/*
 #%endif
-%doc doc/*
+##%doc doc/*
+%doc doc/*doc
+%doc doc/html
 %doc examples
 %doc tutorial
 
@@ -463,6 +518,10 @@
 %{qtdir}/bin/linguist
 %{qtdir}/bin/lrelease
 %{qtdir}/bin/lupdate
+%dir %{qtdir}/phrasebooks
+%{qtdir}/phrasebooks/*
+%dir %{qtdir}/templates
+%{qtdir}/templates/*
 %config /etc/X11/applnk/Development/designer.desktop
 
 %changelog