Mon, 10 Jan 2011 20:54:01 +0100
Import package vendor original specs for necessary manipulations.
1 ##
2 ## json.spec -- OpenPKG RPM Package Specification
3 ## Copyright (c) 2000-2009 OpenPKG Foundation e.V. <http://openpkg.net/>
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 ##
24 # package version
25 %define V_api_c 0.9
26 %define V_api_c2 1.1.0
27 %define V_api_c3 0.3
28 %define V_api_pl1 2.16
29 %define V_api_pl2 0.03
30 %define V_api_pl3 0.39
31 %define V_api_pl4 2.2311
32 %define V_api_pl5 0.011
33 %define V_api_js1 20090929
34 %define V_api_js2 20090929
36 # package information
37 Name: json
38 Summary: JavaScript Object Notation (JSON)
39 URL: http://www.json.org/
40 Vendor: D. Crockford et al.
41 Packager: OpenPKG Foundation e.V.
42 Distribution: OpenPKG Community
43 Class: PLUS
44 Group: Language
45 License: Open Source
46 Version: %{V_api_js2}
47 Release: 20091118
49 # list of sources
50 Source0: http://oss.metaparadigm.com/json-c/json-c-%{V_api_c}.tar.gz
51 Source1: http://switch.dl.sourceforge.net/zzjson/zzjson-%{V_api_c2}.tar.gz
52 Source2: http://projects.snarc.org/libjson/download/libjson-%{V_api_c3}.tar.bz2
53 Source3: http://www.cpan.org/authors/id/M/MA/MAKAMAKA/JSON-%{V_api_pl1}.tar.gz
54 Source4: http://www.cpan.org/authors/id/M/MA/MAKAMAKA/JSON-PC-%{V_api_pl2}.tar.gz
55 Source5: http://www.cpan.org/authors/id/D/DO/DOWENS/JSON-DWIW-%{V_api_pl3}.tar.gz
56 Source6: http://www.cpan.org/authors/id/M/ML/MLEHMANN/JSON-XS-%{V_api_pl4}.tar.gz
57 Source7: http://www.cpan.org/authors/id/P/PE/PERLER/JavaScript-Dumper-%{V_api_pl5}.tar.gz
58 Source8: ftp://ftp.openpkg.org/sources/CPY/VERSIONED/json/json-%{V_api_js1}.js
59 Source9: ftp://ftp.openpkg.org/sources/CPY/VERSIONED/json/json2-%{V_api_js2}.js
60 Source10: http://www.ietf.org/rfc/rfc4627.txt
61 Patch0: json.patch
63 # build information
64 Prefix: %{l_prefix}
65 BuildRoot: %{l_buildroot}
66 BuildPreReq: OpenPKG, openpkg >= 20040130, perl, perl-openpkg, make
67 PreReq: OpenPKG, openpkg >= 20040130, perl
68 AutoReq: no
69 AutoReqProv: no
71 %description
72 JSON (JavaScript Object Notation) is a lightweight data-interchange
73 format. It is easy for humans to read and write. It is easy for
74 machines to parse and generate. It is based on a subset of the
75 JavaScript Programming Language, Standard ECMA-262 3rd Edition.
76 JSON is a text format that is completely language independent but
77 uses conventions that are familiar to programmers of the C-family
78 of languages. These properties make JSON an ideal data-interchange
79 language.
81 %track
82 prog json:json-c = {
83 version = %{V_api_c}
84 url = http://oss.metaparadigm.com/json-c/
85 regex = json-c-(__VER__)\.tar\.gz
86 }
87 prog json:json-c2 = {
88 version = %{V_api_c2}
89 url = http://sourceforge.net/projects/zzjson/files/
90 regex = zzjson-(__VER__)\.tar\.gz
91 }
92 prog json:json-c3 = {
93 version = %{V_api_c3}
94 url = http://projects.snarc.org/libjson/download/
95 regex = libjson-(__VER__)\.tar\.bz2
96 }
97 prog json:json-pl1 = {
98 version = %{V_api_pl1}
99 url = http://www.cpan.org/authors/id/M/MA/MAKAMAKA/
100 regex = JSON-(__VER__)\.tar\.gz
101 }
102 prog json:json-pl2 = {
103 version = %{V_api_pl2}
104 url = http://www.cpan.org/authors/id/M/MA/MAKAMAKA/
105 regex = JSON-PC-(__VER__)\.tar\.gz
106 }
107 prog json:json-pl3 = {
108 version = %{V_api_pl3}
109 url = http://www.cpan.org/authors/id/D/DO/DOWENS/
110 regex = JSON-DWIW-(__VER__)\.tar\.gz
111 }
112 prog json:json-pl4 = {
113 version = %{V_api_pl4}
114 url = http://www.cpan.org/authors/id/M/ML/MLEHMANN/
115 regex = JSON-XS-(__VER__)\.tar\.gz
116 }
117 prog json:json-pl5 = {
118 version = %{V_api_pl5}
119 url = http://www.cpan.org/authors/id/P/PE/PERLER/
120 regex = JavaScript-Dumper-(__VER__)\.tar\.gz
121 }
122 prog json:json-js1 = {
123 version = %{V_api_js1}
124 url = ftp://ftp.openpkg.org/sources/CPY/VERSIONED/json/
125 regex = json-(__VER__)\.js
126 }
127 prog json:json-js2 = {
128 version = %{V_api_js2}
129 url = ftp://ftp.openpkg.org/sources/CPY/VERSIONED/json/
130 regex = json2-(__VER__)\.js
131 }
133 %prep
134 %setup -q -c
135 %setup -q -T -D -a 1
136 %setup -q -T -D -a 2
137 %setup -q -T -D -a 3
138 %setup -q -T -D -a 4
139 %setup -q -T -D -a 5
140 %setup -q -T -D -a 6
141 %setup -q -T -D -a 7
142 cp %{SOURCE json-%{V_api_js1}.js} json.js
143 cp %{SOURCE json2-%{V_api_js2}.js} json2.js
144 %patch -p0
146 %build
147 ( cd json-c-%{V_api_c}
148 CC="%{l_cc}" \
149 CFLAGS="%{l_cflags -O}" \
150 ./configure \
151 --prefix=%{l_prefix} \
152 --disable-shared
153 %{l_make} %{l_mflags -O}
154 ) || exit $?
155 ( cd zzjson-%{V_api_c2}
156 CC="%{l_cc}" \
157 %{l_bash} ./buildstatic.sh
158 ) || exit $?
159 ( cd libjson-%{V_api_c3}
160 %{l_make} %{l_mflags} \
161 CC="%{l_cc}" \
162 CFLAGS="%{l_cflags -O}" \
163 libjson.a
164 ) || exit $?
165 %{l_prefix}/bin/perl-openpkg prepare
166 %{l_prefix}/bin/perl-openpkg -d JSON-%{V_api_pl1} configure build
167 %{l_prefix}/bin/perl-openpkg -d JSON-PC-%{V_api_pl2} configure build
168 %{l_prefix}/bin/perl-openpkg -d JSON-DWIW-%{V_api_pl3} configure build
169 %{l_prefix}/bin/perl-openpkg -d JSON-XS-%{V_api_pl4} configure build
170 %{l_prefix}/bin/perl-openpkg -d JavaScript-Dumper-%{V_api_pl5} configure build
172 %install
173 rm -rf $RPM_BUILD_ROOT
174 ( cd json-c-%{V_api_c}
175 %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
176 ) || exit $?
177 ( cd zzjson-%{V_api_c2}
178 %{l_shtool} install -c -m 644 \
179 include/zzjson.h $RPM_BUILD_ROOT%{l_prefix}/include/
180 %{l_shtool} install -c -m 644 \
181 lib/libzzjson.a $RPM_BUILD_ROOT%{l_prefix}/lib/
182 ) || exit $?
183 ( cd libjson-%{V_api_c3}
184 %{l_shtool} install -c -m 644 \
185 json.h $RPM_BUILD_ROOT%{l_prefix}/include/
186 %{l_shtool} install -c -m 644 \
187 libjson.a $RPM_BUILD_ROOT%{l_prefix}/lib/
188 ) || exit $?
189 %{l_shtool} mkdir -f -p -m 755 \
190 $RPM_BUILD_ROOT%{l_prefix}/share/json
191 %{l_shtool} install -c -m 644 \
192 json.js json2.js $RPM_BUILD_ROOT%{l_prefix}/share/json/
193 %{l_shtool} install -c -m 644 \
194 %{SOURCE rfc4627.txt} $RPM_BUILD_ROOT%{l_prefix}/share/json/
195 %{l_shtool} mkdir -f -p -m 755 \
196 $RPM_BUILD_ROOT%{l_prefix}/etc/apache/apache.d
197 ( echo "Alias /openpkg-json/ %{l_prefix}/share/json/"
198 echo "<Directory %{l_prefix}/share/json/>"
199 echo " Options Indexes"
200 echo " AllowOverride none"
201 echo " Order allow,deny"
202 echo " Allow from all"
203 echo "</Directory>"
204 ) >json.conf
205 %{l_shtool} install -c -m 644 \
206 json.conf $RPM_BUILD_ROOT%{l_prefix}/etc/apache/apache.d/
207 %{l_prefix}/bin/perl-openpkg -d JSON-%{V_api_pl1} install
208 %{l_prefix}/bin/perl-openpkg -d JSON-PC-%{V_api_pl2} install
209 %{l_prefix}/bin/perl-openpkg -d JSON-DWIW-%{V_api_pl3} install
210 %{l_prefix}/bin/perl-openpkg -d JSON-XS-%{V_api_pl4} install
211 %{l_prefix}/bin/perl-openpkg -d JavaScript-Dumper-%{V_api_pl5} install
212 %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
213 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
214 %{l_files_std} `cat perl-openpkg-files` \
215 '%config %{l_prefix}/etc/apache/apache.d/*'
217 %files -f files
219 %clean
220 rm -rf $RPM_BUILD_ROOT