Update, correct, improve build configuration and packaging logic.

Sun, 29 May 2011 16:29:06 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sun, 29 May 2011 16:29:06 +0200
changeset 344
e33c1efbd60f
parent 343
1bee42cde1f7
child 345
b7180006bcf1

Update, correct, improve build configuration and packaging logic.
Update to new version of vendor software, bump copyright date, remove implicit
gcc dependency, add comments for Trolltech bug tracking, correct enforced
dynamic library linkage, and install mysterious process stub binary.

qtcreator/qtcreator.spec file | annotate | diff | comparison | revisions
     1.1 --- a/qtcreator/qtcreator.spec	Sun May 29 16:25:02 2011 +0200
     1.2 +++ b/qtcreator/qtcreator.spec	Sun May 29 16:29:06 2011 +0200
     1.3 @@ -1,6 +1,6 @@
     1.4  ##
     1.5  ##  qtcreator.spec -- OpenPKG RPM Specification
     1.6 -##  Copyright (c) 2010 Michael Schloh von Bennewitz <michael@schloh.com>
     1.7 +##  Copyright (c) 2011 Michael Schloh von Bennewitz <michael@schloh.com>
     1.8  ##
     1.9  ##  Permission to use, copy, modify, and distribute this software for
    1.10  ##  any purpose with or without fee is hereby granted, provided that
    1.11 @@ -24,24 +24,24 @@
    1.12  #   package information
    1.13  Name:         qtcreator
    1.14  Summary:      Cross Platform Application Framework
    1.15 -URL:          http://qt.nokia.com/products/appdev/developer-tools/developer-tools
    1.16 +URL:          http://qt.nokia.com/developer/qt-creator
    1.17  Vendor:       Nokia Corporation
    1.18  Packager:     Michael Schloh von Bennewitz
    1.19  Distribution: MSvB Recherche Production
    1.20  Class:        EVAL
    1.21  Group:        Development
    1.22  License:      GPL
    1.23 -Version:      2.0.1
    1.24 -Release:      20101015
    1.25 +Version:      2.2.0
    1.26 +Release:      20110514
    1.27  
    1.28  #   list of sources
    1.29 -Source0:      ftp://ftp.qt.nokia.com/qtcreator/qt-creator-%{version}-src.tgz
    1.30 +Source0:      ftp://ftp.qt.nokia.com/qtcreator/qt-creator-%{version}-src.tar.gz
    1.31  
    1.32  #   build information
    1.33  Prefix:       %{l_prefix}
    1.34  BuildRoot:    %{l_buildroot}
    1.35 -BuildPreReq:  OpenPKG, openpkg >= 20050726, gcc
    1.36 -PreReq:       OpenPKG, openpkg >= 20050726
    1.37 +BuildPreReq:  OpenPKG, openpkg >= 20060823
    1.38 +PreReq:       OpenPKG, openpkg >= 20060823
    1.39  BuildPreReq:  qt, qt::with_shared = yes
    1.40  PreReq:       qt, qt::with_shared = yes
    1.41  AutoReq:      no
    1.42 @@ -68,19 +68,44 @@
    1.43          -e 's;\(QMAKE_RPATHDIR +=\);#\1;g' \
    1.44          -e 's;\(\$\$join(QMAKE_RPATHDIR, ":"\));\1, "%{l_prefix}/lib/qtcreator:");' \
    1.45          src/rpath.pri
    1.46 +    #   Trolltech Bug:
    1.47 +    #   Hardcoded paths not correct in every case
    1.48      %{l_shtool} subst \
    1.49          -e 's;\(share\)/\(doc\)/\(qtcreator\);\1/\3/\2;' \
    1.50          doc/doc.pri \
    1.51          qtcreator.pri \
    1.52          src/plugins/help/helpplugin.cpp
    1.53 +    #   Trolltech Bug:
    1.54 +    #   Redefined (simply copied from) Qt library source code
    1.55 +    %{l_shtool} subst \
    1.56 +        -e 's;\(qt_clean_filter_list\);l_\1;g' \
    1.57 +        -e 's;\(qt_file_dialog_filter_reg_exp\);l_\1;g' \
    1.58 +        src/plugins/qt4projectmanager/addlibrarywizard.cpp
    1.59 +    #   Trolltech Bug:
    1.60 +    #   Syntax error in qmake project file
    1.61 +    %{l_shtool} subst \
    1.62 +        -e 's;\(memcheckconfigwidget.ui\) \\$;\1;' \
    1.63 +        src/plugins/memcheck/memcheck.pro
    1.64      echo '' >>src/libs/3rdparty/botan/botan.pro
    1.65      for profil in `find . -name '*.pro' | grep -v '[	 ]'`; do
    1.66          echo 'CONFIG += shared' >>$profil
    1.67      done
    1.68  
    1.69  %build
    1.70 -    %{l_prefix}/bin/qmake qtcreator.pro
    1.71 -    %{l_make} %{l_mflags -O}
    1.72 +    #   Force linkage to Qt shared libraries due to
    1.73 +    #   Qt Creator static build incapable by design.
    1.74 +    l_pkgconfpath=%{l_prefix}/lib/qt/dynamic/pkgconfig
    1.75 +    l_qtdynlflags=`PKG_CONFIG_PATH=$l_pkgconfpath %{l_prefix}/bin/pkg-config --libs-only-L QtCore`
    1.76 +    l_qtdynlibdir=`echo $l_qtdynlflags | %{l_shtool} subst -e 's;\-L[\t ]*\([^\t ]*\);\1;g'`
    1.77 +    %{l_prefix}/bin/qmake qtcreator.pro QMAKE_LIBDIR="$l_qtdynlibdir"
    1.78 +    #   Trolltech Bug:
    1.79 +    #   (Proc 1) g++ -shared -o libCppEditor.so .obj/release-shared/cppplugin.o ... -lpthread ...
    1.80 +    #   (Proc 2) mv -f libCppEditor.so ../../../lib/qtcreator/plugins/Nokia/
    1.81 +    #   make[1]: *** [sub-plugins-make_default-ordered] Error 2
    1.82 +    #
    1.83 +    #   The implemented workaround is to disable parallel make,
    1.84 +    #     causing a nearly 100% deceleration in the build.
    1.85 +    %{l_make} %{l_mflags}
    1.86  
    1.87  %install
    1.88      rm -rf $RPM_BUILD_ROOT
    1.89 @@ -88,9 +113,6 @@
    1.90      #   carry out installation procedure
    1.91      %{l_make} %{l_mflags} install INSTALL_ROOT="$RPM_BUILD_ROOT%{l_prefix}"
    1.92  
    1.93 -    #   clean up installation
    1.94 -    rm $RPM_BUILD_ROOT/%{l_prefix}/bin/qtcreator_process_stub
    1.95 -
    1.96      #   determine internal file listing
    1.97      %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
    1.98  

mercurial