Fri, 16 Jan 2009 10:58:21 +0100
Correct and improve code logic, buildconf, and packaging. In particular:
1. Use descriptive variable names <var>libs instead of just <var>.
2. Although Nokia states in all Qt builds that 'NOTE: When linking
against OpenSSL, you can override the default library names
through OPENSSL_LIBS.' and even gives an example, their own
configuration logic rejects such an attempt. Correct this by
hard coding the OpenSSL library string in the configure script.
3. Consistently use the whitespace substitution [\t ] throughout.
4. Patch the buggy INCPATH of SQL plugin Qmake project files.
5. Add the 'x11' configuration variable to the qtconfig Qmake
project using the src/gui/gui.pro file as a model. This is
needed for qtconfig although not in other tools, because
the qtconfig buildconf indirectly includes qt_x11_p.h which
is dependent on X11 headers.
6. Avoid 'ld.so: fatal: hardware capability unsupported: SSE2 AMD_3DNow'
on platforms for which the config.tests/unix/[3dnow|sse2] succeed
although unsopported at run time by testing for the x86-64
instruction set at build time and regulating hardware capabilities.
7. Correctly install the desinger plugin by explicitly building it.
8. Remove custom plugin installation logic which is unnecessary.
9. Correct removal of temporary paths from shared object files.
1 ##
2 ## taglib.spec -- OpenPKG RPM Specification
3 ## Copyright (c) 2009 Michael Schloh von Bennewitz <michael@schloh.com>
4 ##
5 ## Permission to use, copy, modify, and distribute this software for
6 ## any purpose with or without fee is hereby granted, provided that
7 ## the above copyright notice and this permission notice appear in all
8 ## copies.
9 ##
10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
21 ## SUCH DAMAGE.
22 ##
25 # package information
26 Name: taglib
27 Summary: Audio Metadata Manipulation Utility
28 URL: http://developer.kde.org/~wheeler/taglib.html
29 Vendor: Scott Wheeler
30 Packager: Michael Schloh von Bennewitz
31 Distribution: Michael Schloh von Bennewitz
32 Class: EVAL
33 Group: Audio
34 License: LGPL
35 Version: 1.5
36 Release: 20090106
38 # list of sources
39 Source0: http://developer.kde.org/~wheeler/files/src/taglib-%{version}.tar.gz
41 # build information
42 Prefix: %{l_prefix}
43 BuildRoot: %{l_buildroot}
44 BuildPreReq: OpenPKG, openpkg >= 20040130, make, gcc, gcc::with_cxx = yes
45 PreReq: OpenPKG, openpkg >= 20040130
46 AutoReq: no
47 AutoReqProv: no
49 %description
50 TagLib is a library for reading and editing the metadata of several
51 popular audio formats. Currently it supports both ID3v1 and ID3v2
52 for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments
53 in FLAC files as well as MPC.
55 %track
56 prog taglib = {
57 version = %{version}
58 url = http://developer.kde.org/~wheeler/files/src/
59 regex = taglib-(__VER__)\.tar\.gz
60 }
62 %prep
63 # unpack sources
64 %setup -q
66 # correct build configuration
67 %{l_shtool} subst \
68 -e 's;\(if\) test \! \-f \$libstdcpp;\1 false;' \
69 configure
70 chmod +x admin/install-sh
72 %build
73 # prepare configuration
74 CC="%{l_cc}" \
75 CXX="%{l_cxx}" \
76 CFLAGS="%{l_cflags -O}" \
77 CXXFLAGS="%{l_cflags -O}" \
78 CPPFLAGS="%{l_cppflags}" \
79 LDFLAGS="%{l_ldflags}" \
80 GREP=grep \
81 ./configure \
82 --prefix=%{l_prefix} \
83 --disable-shared
85 # build using parallel make
86 %{l_make} %{l_mflags -O}
88 %install
89 # remove previously existing installations
90 rm -rf $RPM_BUILD_ROOT
92 # run the native installation logic
93 %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
95 # determine installation files
96 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
98 %files -f files
100 %clean
101 rm -rf $RPM_BUILD_ROOT