summaryrefslogtreecommitdiff
path: root/extra/qt3/PKGBUILD
blob: 47ad18e131c5f2bb97e0f31c2d2d2dc8029eb827 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# $Id: PKGBUILD 123699 2011-05-12 15:47:03Z andrea $
# Maintainer:
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: John Proctor <jproctor@prium.net>

pkgname=qt3
pkgver=3.3.8
pkgrel=20
pkgdesc="The QT3 gui toolkit"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url="http://www.trolltech.com/products/qt/index.html"
pkgfqn=qt-x11-free-${pkgver}
install=qt.install
depends=('libpng' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' 'libxft'
         'libxrandr' 'libmng')
makedepends=('mysql' 'postgresql' 'unixodbc' 'sqlite3')
optdepends=('libmysqlclient' 'postgresql-libs' 'unixodbc')
source=("ftp://ftp.trolltech.com/qt/source/${pkgfqn}.tar.bz2"
        qt3-png14.patch
        qt.profile
        qt-copy-kde-patches.tar.bz2
        qt-patches.tar.bz2
        utf8-bug-qt3.diff
	    qt-font-default-subst.diff
        mysql.patch
        eastern_asian_languagues.diff
        qt-odbc.patch
        gcc-4.6.patch)
options=(!libtool)
md5sums=('cf3c43a7dfde5bfb76f8001102fe6e85'
         '1dc671df42b9030dbdf68bb61cd3375e'
         'f72d1eb4eb49b9a9467c1f6035194266'
         'f2a2dbdbfee9422c90efc3ef3f86197c'
         '2f00e5c0c1e2c2a23dddc982cd79f3e0'
         'f6b3b39040f2b8f19ba1cf1445468c28'
         '9370d82e85f2c799335ed0dcc1d53189'
         '7d40ed1bd40d33d8b9b27a2076a5d22a'
         '616f1f3029cf8375256ad6a406de3549'
         '2178ca88dfd75a230918593b30eb0dbe'
         '75177de5b08e1efd437c887c6e606c5b')

# qt-copy-kde-patches come from http://websvn.kde.org/trunk/qt-copy/patches/
# other qt-patches come from fedora and gentoo

build() {
  unset QMAKESPEC
  export QTDIR="${srcdir}"/$pkgfqn
  export PATH=${QTDIR}/bin:${PATH}
  export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH}
  export QMAKESPEC=$QTDIR/mkspecs/linux-g++
  cd "${srcdir}"/$pkgfqn
  # apply qt patches from kde.org
  for i in ../qt-copy-kde-patches/*; do
    patch -Np0 -i $i 
  done
  # apply other qt patches and one security fix from debian/gentoo
  for i in ../qt-patches/*; do
    patch -Np1 -i $i 
  done
  # fix utf8 bug
  patch -p0 -i "${srcdir}"/utf8-bug-qt3.diff 
  # fix asia fonts
  patch -p0 -i "${srcdir}"/qt-font-default-subst.diff 
  # fix segfaults on exit when using mysql DB driver
  patch -p0 -i "${srcdir}"/mysql.patch 
  # fix CJK font/chars select error (FS#11245)
  patch -p1 -i "${srcdir}"/eastern_asian_languagues.diff 
  # fix build problem against new unixODBC
  patch -p1 -i "${srcdir}"/qt-odbc.patch 
  # fix build with gcc 4.6.0
  patch -p1 -i "${srcdir}"/gcc-4.6.patch

  patch -p0 -i "${srcdir}"/qt3-png14.patch 
  # start compiling qt
  sed -i 's|-cp -P -f|-cp -L -f|' qmake/Makefile.unix
  rm -rf doc/html examples tutorial
  sed -i "s|sub-tutorial sub-examples||" Makefile
  sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++/qmake.conf
  sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-32/qmake.conf
  sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-64/qmake.conf
  sed -i "s|-I. |$CXXFLAGS -I. |" qmake/Makefile.unix
  sed -i "s|read acceptance|acceptance=yes|" configure

 # remove unwanted mkspecs
  rm -rf mkspecs/{*aix*,*bsd*,cygwin*,dgux*,darwin*,hpux*,hurd*,irix*,lynxos*,macx*,qnx*,reliant*,sco*,solaris*,tru64*,unixware*,win32*}

  if [ "$CARCH" = "x86_64" ]; then
      export ARCH="-64"	
    else unset ARCH
  fi

  ./configure -prefix /opt/qt \
    -platform linux-g++$ARCH \
    -system-zlib \
    -qt-gif \
    -release \
    -shared \
    -sm \
    -nis \
    -thread \
    -stl \
    -system-lib{png,jpeg,mng} \
    -no-g++-exceptions \
    -plugin-sql-{mysql,psql,sqlite,odbc}

  # fix /opt/qt/lib path
  [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/src/Makefile
  [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/designer/designer/Makefile
  [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/designer/editor/Makefile
  [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/assistant/lib/Makefile
  [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/designer/uilib/Makefile

  cd "${srcdir}"/$pkgfqn
  make -C qmake 
  cd "${srcdir}"/$pkgfqn/plugins/src/sqldrivers/mysql
  "${srcdir}"/$pkgfqn/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
  cd "${srcdir}"/$pkgfqn/plugins/src/sqldrivers/psql
  "${srcdir}"/$pkgfqn/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro

  cd "${srcdir}"/$pkgfqn
  # fix the broken makefiles
  #sed -i 's|[[:space:]]*strip.*doc/html.*$|#|g' src/Makefile
  make
}

package() {
  cd "${srcdir}"/$pkgfqn
  make INSTALL_ROOT="${pkgdir}" install
  rm -rf "${pkgdir}"/opt/qt/{phrasebooks,templates,translations}
  sed -i "s|-L${srcdir}/$pkgfqn/lib ||g" "${pkgdir}"/opt/qt/lib/*.prl
  install -D -m755 qmake/qmake "${pkgdir}"/opt/qt/bin/qmake
  install -D -m755 "${srcdir}"/qt.profile "${pkgdir}"/etc/profile.d/qt3.sh
  ln -sf /opt/qt/bin/qtconfig "${pkgdir}"/opt/qt/bin/qt3config 
  rm -f "${pkgdir}"/opt/qt/mkspecs/linux-g++$ARCH/linux-g++$ARCH

  # install man pages
  install -d -m755 "${pkgdir}"/opt/qt/man
  cp -r "${srcdir}"/$pkgfqn/doc/man/{man1,man3} "${pkgdir}"/opt/qt/man/

  install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/
  echo '/opt/qt/lib' > "${pkgdir}"/etc/ld.so.conf.d/qt3.conf
}