summaryrefslogtreecommitdiffstats
path: root/arch/3.5.13/trinity-base/trinity-qt3/PKGBUILD
blob: 291fedd331834c1ff08d42247e13455571b56b90 (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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# Maintainer: Pawel 'l0ner' Soltys <pwslts@gmail.com>
# Contributor: Calvin Morrison <MutantTurkey@gmail.com>

pkgname=trinity-qt3
pkgver=3.8.8.d
pkgrel=5
pkgdesc="The Qt3 gui toolkit - with Trinity upstream"
arch=('i686' 'x86_64')
url="http://trinitydesktop.org"
license=('GPL')
groups=('trinity-base')
depends=('libpng' 'libjpeg' 'libxmu' 'libmng'
         'libxcursor' 'libxinerama' 'mesa' 'libxft' 'libxrandr')
makedepends=('libxi'
             'libmysqlclient' 'postgresql-libs' 'unixodbc' 'libcups')
             #'mysql' 'postgresql' 'sqlite3' 'unixodbc' 'libxi' 'cups')
             # cups - add for cups support
             # cups is enabled by default in ./configure
             # remove -no-cups if you want cups support in qt3
optdepends=('cups: The CUPS Printing System - for printing support'
            'postgresql: A sophisticated object-relational DBMS - databse support'
            'unixodbc: ODBC API for linux - databse support'
            'mysql: A fast SQL database server - databse support'
             #'libmysqlclient' 'postgresql-libs' 'unixodbc' 'cups')
provides=('qt3' 'qt3-enhanced')
replaces=('qt3-enhanced' 'qt3')
options=('libtool' '!emptydirs')
install='qt3.install'
source=('http://mirror.ets.kth.se/trinity/releases/3.5.13/dependencies/qt3-3.3.8.d.tar.gz' 
        'qt-patches.tar.bz2')
md5sums=('78dc675e84aed595375449818cbb589a'
         '4091a624930738779f76764f4cb6ac5f')

_prefix="/opt/qt3"

build() {
   cd $srcdir/qt3

   msg "Patching source code..."
   # apply qt patches from debian/gentoo and kde
   for patch in $srcdir/qt-patches/*.patch; do
      _p=`basename $patch`
      msg "Applying patch $_p.."
      patch -Np0 -i $patch
   done
   unset _p patch

   # Originally this was done in a patch but probably it's a bad idea
   # Besides we need the rpath, since we don't install qt in the default
   # system dirs. If we would install into default /usr hierarchy
   # we would uncomment this. See Beyond Linux From Scratch book
   # for more info.
   # sed -i '/QMAKE_RPATH/d' mkspecs/linux*/qmake.conf

   # These are probably arch-specific. They were present in old qt3 
   # PKGBULD, they were present in kdemod3 PKGBUILD, they are present
   # here.
   sed -i 's|-cp -P -f|-cp -L -f|' qmake/Makefile.unix
   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

   # auto license acceptance
   sed -i "s|read acceptance|acceptance=yes|" configure

   msg "Setting enviroment variables..."
   export QTDIR="${srcdir}/qt3/" 
   export PATH=${QTDIR}/bin:${PATH}
   export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH}
   export QMAKESPEC=$QTDIR/mkspecs/linux-g++

   if [ "$CARCH" = "x86_64" ]; then
      export ARCH="-64"
   else unset ARCH
   fi
   
   # Remove useless to us mkspecs
   rm -rf mkspecs/{*aix*,*bsd*,cygwin*,dgux*,darwin*,hpux*,hurd*,irix*,lynxos*,macx*,qnx*,reliant*,sco*,solaris*,tru64*,unixware*,win32*}

   msg "Starting configure..."
   ./configure \
      -prefix ${_prefix} \
      -sysconfdir /etc/qt \
      -I/usr/include/mysql \
      -I/usr/include/postgresql/server \
      -lpq \
      -lmysqlclient \
      -L/usr/lib/mysql \
      -qt-gif \
      -system-zlib \
      -system-libpng \
      -system-libjpeg \
      -system-libmng \
      -plugin-imgfmt-png \
      -plugin-imgfmt-jpeg \
      -plugin-imgfmt-mng \
      -plugin-sql-mysql \
      -plugin-sql-psql \
      -plugin-sql-sqlite \
      -plugin-sql-odbc \
      -platform linux-g++${ARCH} \
      -no-exceptions \
      -thread \
      -dlopen-opengl \
      -no-ipv6

   # 64bit fixes pulled from extras/qt3 PKGBUILD
   # this is Arch-specific
   # fix /opt/qt/lib path
   [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt3/src/Makefile
   [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt3/tools/designer/designer/Makefile
   [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt3/tools/designer/editor/Makefile
   [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt3/tools/assistant/lib/Makefile
   [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt3/tools/designer/uilib/Makefile

   msg "Building - $pkgname..."

   # build sql plugins
   # do we need this, I don't think so.
   #cd "${srcdir}"/qt3
   #make -C qmake
   #cd "${srcdir}"/qt3/plugins/src/sqldrivers/mysql
   #"${srcdir}"/qt3/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
   #cd "${srcdir}"/qt3/plugins/src/sqldrivers/psql
   #"${srcdir}"/qt3/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro

   cd "${srcdir}"/qt3

   # build rest, but without tutorials and examples
   # of you want them, remove sub-tools
   make sub-tools

}

package() {
   msg "Packaging - $pkgname-$pkgver"
   cd "$srcdir/qt3"

   make INSTALL_ROOT="$pkgdir" install

   # install qmake
   install -D -m755 qmake/qmake "${pkgdir}"$_prefix/bin/qmake

   # install doc pages which are missed by make install
   install -d -m755 "${pkgdir}"$_prefix/doc/
   cp -r "${srcdir}"/qt3/doc "${pkgdir}"$_prefix/doc

   # install link the apps provided by qt3 so we don't collide with
   # qt4 and can run them.
   ln -sf $_prefix/bin/assistant "${pkgdir}"$_prefix/bin/qt3assistant
   ln -sf $_prefix/bin/designer "${pkgdir}"$_prefix/bin/qt3designer
   ln -sf $_prefix/bin/linguist "${pkgdir}"$_prefix/bin/qt3linguist
   ln -sf $_prefix/bin/lrelease "${pkgdir}"$_prefix/bin/qt3lrelease
   ln -sf $_prefix/bin/lupdate "${pkgdir}"$_prefix/bin/qt3lupdate
   ln -sf $_prefix/bin/moc "${pkgdir}"$_prefix/bin/qt3moc
   ln -sf $_prefix/bin/qmake "${pkgdir}"$_prefix/bin/qt3qmake
   ln -sf $_prefix/bin/qtconfig "${pkgdir}"$_prefix/bin/qt3config

   # Build ld.so.conf file
   install -d -m755 ${pkgdir}/etc/ld.so.conf.d/
   echo "${_prefix}/lib" >> ${pkgdir}/etc/ld.so.conf.d/qt3.conf

   # Build and install qt.profile
   install -d -m755 ${pkgdir}/etc/profile.d/
   echo "export QTDIR=${_prefix}" > ${pkgdir}/etc/profile.d/qt3.sh
   echo "export QT_XFT=true" >> ${pkgdir}/etc/profile.d/qt3.sh
   echo "export PATH+=:${_prefix}/bin" >> ${pkgdir}/etc/profile.d/qt3.sh
   echo "export PKG_CONFIG_PATH+=:${_prefix}/pkgconfig" >> ${pkgdir}/etc/profile.d/qt3.sh

   msg "Cleaning package..."

   #rm -rf "${pkgdir}"$_prefix/{phrasebooks,templates,translations}
   
   # remove any link to the compiled libraries present in
   # $srcdir, which won't be present in non-building system.
   sed -i "s|-L${srcdir}/qt3/lib ||g" "${pkgdir}"$_prefix/lib/*.prl

   #rm -f "${pkgdir}"${_prefix}/mkspecs/linux-g++$ARCH/linux-g++$ARCH

   # Fix issues with GCC4
   sed -i 's/\(char\*\)/const char*/g' $pkgdir$_prefix/include/*.h
   # Fix the mess we did fixing issues with GCC4
   sed -i 's/const u char/const uchar/g' $pkgdir$_prefix/include/*.h
   sed -i 's/u const char/const uchar/g' $pkgdir$_prefix/include/*.h
   sed -i 's/const const/const/g' $pkgdir$_prefix/include/*.h
   sed -i 's/uconst/ unsigned /g' $pkgdir$_prefix/include/*.h

   # missing include "qglobal.h" in include/qtimer.h fix
   sed -ie 's/define QTIMER_H/&\n#include "qglobal.h"/g' $pkgdir$_prefix/include/qtimer.h

}