yaml/yaml.spec

Sun, 05 Aug 2012 13:19:25 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sun, 05 Aug 2012 13:19:25 +0200
changeset 476
184f388d7241
parent 356
14df3eec63f9
child 590
488716b6db75
permissions
-rw-r--r--

Properly unpack sources to avoid leaving behind build residue.

michael@356 1 ##
michael@356 2 ## yaml.spec -- OpenPKG RPM Package Specification
michael@356 3 ## Copyright (c) 2000-2011 OpenPKG Foundation e.V. <http://openpkg.net/>
michael@356 4 ##
michael@356 5 ## Permission to use, copy, modify, and distribute this software for
michael@356 6 ## any purpose with or without fee is hereby granted, provided that
michael@356 7 ## the above copyright notice and this permission notice appear in all
michael@356 8 ## copies.
michael@356 9 ##
michael@356 10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@356 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@356 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@356 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@356 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@356 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@356 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@356 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@356 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@356 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@356 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@356 21 ## SUCH DAMAGE.
michael@356 22 ##
michael@356 23
michael@356 24 # package version
michael@356 25 %define V_libsyck 0.70
michael@356 26 %define V_libyaml 0.1.4
michael@356 27 %define V_perl_yaml 0.73
michael@356 28 %define V_perl_yaml_syck 1.17
michael@356 29 %define V_perl_yaml_tiny 1.50
michael@356 30 %define V_perl_yaml_appconfig 0.16
michael@356 31 %define V_perl_yaml_libyaml 0.35
michael@356 32 %define V_perl_yaml_active 1.100810
michael@356 33 %define V_perl_yaml_object 0.04
michael@356 34 %define V_perl_io_yaml 0.08
michael@356 35 %define V_yaml_javascript 0.03
michael@356 36 %define V_yaml_spec 2004-12-28
michael@356 37 %define V_java_jvyaml 0.2.1
michael@356 38 %define V_java_jyaml 1.3
michael@356 39 %define V_php_syck 0.9.3
michael@356 40 %define V_php_yaml 1.0.1
michael@356 41
michael@356 42 # package information
michael@356 43 Name: yaml
michael@356 44 Summary: YAML Ain't Markup Language (YAML)
michael@356 45 URL: http://yaml.org/
michael@356 46 Vendor: B. Ingerson, C. Evans, O. Ben-Kiki et al.
michael@356 47 Packager: OpenPKG Foundation e.V.
michael@356 48 Distribution: OpenPKG Community
michael@356 49 Class: PLUS
michael@356 50 Group: Language
michael@356 51 License: BSD/Artistic
michael@356 52 Version: 0
michael@357 53 Release: 20110914
michael@356 54
michael@356 55 # package options
michael@356 56 %option with_perl no
michael@356 57 %option with_php no
michael@356 58 %option with_ruby no
michael@356 59 %option with_java no
michael@356 60
michael@356 61 # list of sources
michael@356 62 Source0: http://cloud.github.com/downloads/indeyets/syck/syck-%{V_libsyck}.tar.gz
michael@356 63 Source1: http://pyyaml.org/download/libyaml/yaml-%{V_libyaml}.tar.gz
michael@356 64 Source2: http://www.cpan.org/modules/by-module/YAML/YAML-%{V_perl_yaml}.tar.gz
michael@356 65 Source3: http://www.cpan.org/modules/by-module/YAML/YAML-Syck-%{V_perl_yaml_syck}.tar.gz
michael@356 66 Source4: http://www.cpan.org/modules/by-module/YAML/YAML-Tiny-%{V_perl_yaml_tiny}.tar.gz
michael@356 67 Source5: http://www.cpan.org/modules/by-module/YAML/YAML-AppConfig-%{V_perl_yaml_appconfig}.tar.gz
michael@356 68 Source6: http://www.cpan.org/modules/by-module/YAML/YAML-LibYAML-%{V_perl_yaml_libyaml}.tar.gz
michael@356 69 Source7: http://www.cpan.org/modules/by-module/YAML/YAML-Active-%{V_perl_yaml_active}.tar.gz
michael@356 70 Source8: http://www.cpan.org/authors/id/N/NK/NKUITSE/IO-YAML-%{V_perl_io_yaml}.tar.gz
michael@356 71 Source9: http://osdn.dl.sourceforge.net/yaml-javascript/yaml-javascript-%{V_yaml_javascript}.tar.gz
michael@356 72 Source10: https://jvyaml.dev.java.net/files/documents/5215/41455/jvyaml-src-%{V_java_jvyaml}.tar.gz
michael@356 73 Source11: http://switch.dl.sourceforge.net/jyaml/jyaml-src-%{V_java_jyaml}.tgz
michael@356 74 Source12: http://www.cpan.org/authors/id/E/EI/EIDOLON/YAML-Object-%{V_perl_yaml_object}.tar.gz
michael@356 75 Source13: http://pecl.php.net/get/syck-%{V_php_syck}.tgz
michael@356 76 Source14: http://pecl.php.net/get/yaml-%{V_php_yaml}.tgz
michael@357 77 Source15: http://yaml.org/spec/history/%{V_yaml_spec}/%{V_yaml_spec}.pdf
michael@357 78 Source16: yaml.yml
michael@356 79 Patch0: yaml.patch
michael@356 80
michael@356 81 # build information
michael@357 82 Prefix: %{l_prefix}
michael@357 83 BuildRoot: %{l_buildroot}
michael@357 84 BuildPreReq: OpenPKG, openpkg >= 20060823, make, bison
michael@357 85 PreReq: OpenPKG, openpkg >= 20060823
michael@356 86 %if "%{with_perl}" == "yes"
michael@356 87 BuildPreReq: perl, perl-openpkg, perl-module
michael@356 88 PreReq: perl
michael@356 89 %endif
michael@356 90 %if "%{with_php}" == "yes"
michael@356 91 BuildPreReq: php, autoconf
michael@356 92 PreReq: php
michael@356 93 %endif
michael@356 94 %if "%{with_ruby}" == "yes"
michael@356 95 BuildPreReq: ruby
michael@356 96 PreReq: ruby
michael@356 97 %endif
michael@356 98 %if "%{with_java}" == "yes"
michael@356 99 BuildPreReq: java, JAVA-JDK, ant
michael@356 100 PreReq: java, JAVA-JDK
michael@356 101 %endif
michael@357 102 AutoReq: no
michael@357 103 AutoReqProv: no
michael@356 104
michael@356 105 %description
michael@356 106 YAML Ain't Markup Language (YAML) is an international collaboration
michael@356 107 to make a sophisticated data serialization language which is both
michael@356 108 human readable and computationally powerful. This OpenPKG package
michael@356 109 provides C, and JavaScript plus optionally Perl, PHP, and Ruby APIs
michael@356 110 for the generation and parsing of YAML.
michael@356 111
michael@356 112 %track
michael@356 113 prog yaml:libsyck = {
michael@356 114 version = %{V_libsyck}
michael@356 115 url = http://github.com/indeyets/syck/downloads
michael@356 116 regex = syck-(__VER__)\.tar\.gz
michael@356 117 }
michael@356 118 prog yaml:libyaml = {
michael@356 119 version = %{V_libyaml}
michael@356 120 url = http://pyyaml.org/download/libyaml/
michael@356 121 regex = yaml-(__VER__)\.tar\.gz
michael@356 122 }
michael@356 123 prog yaml:YAML = {
michael@356 124 version = %{V_perl_yaml}
michael@356 125 url = http://www.cpan.org/modules/by-module/YAML/
michael@356 126 regex = YAML-(__VER__)\.tar\.gz
michael@356 127 }
michael@356 128 prog yaml:YAML-Syck = {
michael@356 129 version = %{V_perl_yaml_syck}
michael@356 130 url = http://www.cpan.org/modules/by-module/YAML/
michael@356 131 regex = YAML-Syck-(__VER__)\.tar\.gz
michael@356 132 }
michael@356 133 prog yaml:YAML-Tiny = {
michael@356 134 version = %{V_perl_yaml_tiny}
michael@356 135 url = http://www.cpan.org/modules/by-module/YAML/
michael@356 136 regex = YAML-Tiny-(__VER__)\.tar\.gz
michael@356 137 }
michael@356 138 prog yaml:YAML-AppConfig = {
michael@356 139 version = %{V_perl_yaml_appconfig}
michael@356 140 url = http://www.cpan.org/modules/by-module/YAML/
michael@356 141 regex = YAML-AppConfig-(__VER__)\.tar\.gz
michael@356 142 }
michael@356 143 prog yaml:YAML-LibYAML = {
michael@356 144 version = %{V_perl_yaml_libyaml}
michael@356 145 url = http://www.cpan.org/modules/by-module/YAML/
michael@356 146 regex = YAML-LibYAML-(__VER__)\.tar\.gz
michael@356 147 }
michael@356 148 prog yaml:YAML-Active = {
michael@356 149 comment = "rse: 1.08 requires Class::Accessor::Complex and this too many others"
michael@356 150 version = %{V_perl_yaml_active}
michael@356 151 url = http://www.cpan.org/modules/by-module/YAML/
michael@356 152 regex = YAML-Active-(__VER__)\.tar\.gz
michael@356 153 }
michael@356 154 prog yaml:IO-YAML = {
michael@356 155 version = %{V_perl_io_yaml}
michael@356 156 url = http://www.cpan.org/authors/id/N/NK/NKUITSE/
michael@356 157 regex = IO-YAML-(__VER__)\.tar\.gz
michael@356 158 }
michael@356 159 prog yaml:yaml-javascript = {
michael@356 160 version = %{V_yaml_javascript}
michael@356 161 url = http://sourceforge.net/projects/yaml-javascript/files/
michael@356 162 regex = yaml-javascript-(__VER__)\.tar\.gz
michael@356 163 }
michael@356 164 prog yaml:yaml-spec = {
michael@356 165 disabled
michael@356 166 comment = "rse: website references not existing 2004-12-30 and no updates since recently anyway"
michael@356 167 version = %{V_yaml_spec}
michael@356 168 url = http://yaml.org/spec/
michael@356 169 regex = (\d{4}-\d{2}-\d{2})\.pdf
michael@356 170 }
michael@356 171 prog yaml:java-jvyaml = {
michael@356 172 version = %{V_java_jvyaml}
michael@356 173 url = http://jvyaml.dev.java.net/servlets/ProjectDocumentList
michael@356 174 regex = jvyaml-src-(__VER__)\.tar\.gz
michael@356 175 }
michael@356 176 prog yaml:java-jyaml = {
michael@356 177 version = %{V_java_jyaml}
michael@356 178 url = http://sourceforge.net/projects/jyaml/files/
michael@356 179 regex = jyaml-src-(__VER__)\.tgz
michael@356 180 }
michael@356 181 prog yaml:YAML-Object = {
michael@356 182 version = %{V_perl_yaml_object}
michael@356 183 url = http://www.cpan.org/authors/id/E/EI/EIDOLON/
michael@356 184 regex = YAML-Object-(__VER__)\.tar\.gz
michael@356 185 }
michael@356 186 prog yaml:PHP-Syck = {
michael@356 187 version = %{V_php_syck}
michael@356 188 url = http://pecl.php.net/package/syck
michael@356 189 regex = syck-(__VER__)\.tgz
michael@356 190 }
michael@356 191 prog yaml:PHP-YAML = {
michael@356 192 version = %{V_php_yaml}
michael@356 193 url = http://pecl.php.net/package/yaml
michael@356 194 regex = yaml-(__VER__)\.tgz
michael@356 195 }
michael@356 196
michael@356 197 %prep
michael@356 198 %setup -q -c
michael@356 199 %setup -q -T -D -a 1
michael@356 200 %setup -q -T -D -a 2
michael@356 201 %setup -q -T -D -a 3
michael@356 202 %setup -q -T -D -a 4
michael@356 203 %setup -q -T -D -a 5
michael@356 204 %setup -q -T -D -a 6
michael@356 205 %setup -q -T -D -a 7
michael@356 206 %setup -q -T -D -a 8
michael@356 207 %setup -q -T -D -a 9
michael@356 208 %setup -q -T -D -a 10
michael@356 209 %setup -q -T -D -a 11
michael@356 210 %setup -q -T -D -a 12
michael@356 211 %setup -q -T -D -a 13
michael@356 212 %setup -q -T -D -a 14
michael@356 213 %patch -p0
michael@356 214
michael@356 215 %build
michael@356 216 # build YAML C API
michael@356 217 ( cd yaml-%{V_libyaml}
michael@356 218 CC="%{l_cc}" \
michael@356 219 CFLAGS="%{l_cflags -O}" \
michael@356 220 ./configure \
michael@356 221 --prefix=%{l_prefix} \
michael@356 222 --disable-shared
michael@356 223 %{l_make} %{l_mflags -O}
michael@356 224 ) || exit $?
michael@356 225
michael@356 226 # build Syck C API
michael@356 227 ( cd syck-%{V_libsyck}
michael@356 228 CC="%{l_cc}" \
michael@356 229 CFLAGS="%{l_cflags -O}" \
michael@356 230 ./configure \
michael@356 231 --prefix=%{l_prefix} \
michael@356 232 --disable-shared
michael@356 233 %{l_make} %{l_mflags}
michael@356 234 ) || exit $?
michael@356 235
michael@356 236 # build PHP API
michael@356 237 %if "%{with_php}" == "yes"
michael@356 238 ( cd syck-%{V_php_syck}
michael@356 239 %{l_prefix}/bin/phpize
michael@356 240 CC="%{l_cc}" \
michael@356 241 CFLAGS="%{l_cflags -O}" \
michael@356 242 CPPFLAGS="-I`pwd`/../syck-%{V_libsyck}/lib" \
michael@356 243 LDFLAGS="-L`pwd`/../syck-%{V_libsyck}/lib" \
michael@356 244 ./configure \
michael@356 245 --with-syck=`pwd`/../syck-%{V_libsyck}
michael@356 246 %{l_make} %{l_mflags}
michael@356 247 ) || exit $?
michael@356 248 ( cd yaml-%{V_php_yaml}
michael@356 249 %{l_prefix}/bin/phpize
michael@356 250 CC="%{l_cc}" \
michael@356 251 CFLAGS="%{l_cflags -O}" \
michael@356 252 CPPFLAGS="-I`pwd`/../yaml-%{V_libyaml}/include" \
michael@356 253 LDFLAGS="-L`pwd`/../yaml-%{V_libyaml}/src/.libs" \
michael@356 254 ./configure \
michael@356 255 --with-yaml=`pwd`/../yaml-%{V_libyaml}
michael@356 256 %{l_make} %{l_mflags}
michael@356 257 ) || exit $?
michael@356 258 %endif
michael@356 259
michael@356 260 # build Ruby API
michael@356 261 %if "%{with_ruby}" == "yes"
michael@356 262 ( cd syck-%{V_libsyck}/ext/ruby
michael@356 263 %{l_prefix}/bin/ruby install.rb config --prefix=%{l_prefix}
michael@356 264 %{l_prefix}/bin/ruby install.rb setup
michael@356 265 ) || exit $?
michael@356 266 %endif
michael@356 267
michael@356 268 # build Perl API
michael@356 269 %if "%{with_perl}" == "yes"
michael@356 270 %{l_prefix}/bin/perl-openpkg prepare
michael@356 271 %{l_prefix}/bin/perl-openpkg -d YAML-%{V_perl_yaml} configure build
michael@356 272 %{l_prefix}/bin/perl-openpkg -d YAML-Syck-%{V_perl_yaml_syck} configure build
michael@356 273 %{l_prefix}/bin/perl-openpkg -d YAML-Tiny-%{V_perl_yaml_tiny} configure build
michael@356 274 %{l_prefix}/bin/perl-openpkg -d YAML-AppConfig-%{V_perl_yaml_appconfig} configure build
michael@356 275 %{l_prefix}/bin/perl-openpkg -d YAML-LibYAML-%{V_perl_yaml_libyaml} configure build
michael@356 276 %{l_prefix}/bin/perl-openpkg -d YAML-Active-%{V_perl_yaml_active} configure build
michael@356 277 %{l_prefix}/bin/perl-openpkg -d YAML-Object-%{V_perl_yaml_object} configure build
michael@356 278 %{l_prefix}/bin/perl-openpkg -d IO-YAML-%{V_perl_io_yaml} configure build
michael@356 279 %endif
michael@356 280
michael@356 281 # build Java API
michael@356 282 %if "%{with_java}" == "yes"
michael@356 283 ( cd jvyaml-%{V_java_jvyaml}
michael@356 284 %{l_prefix}/bin/ant
michael@356 285 ) || exit $?
michael@356 286 ( cd jyaml
michael@356 287 %{l_prefix}/bin/ant
michael@356 288 ) || exit $?
michael@356 289 %endif
michael@356 290
michael@356 291 %install
michael@357 292 rm -rf $RPM_BUILD_ROOT
michael@356 293
michael@356 294 # install YAML C API
michael@356 295 ( cd yaml-%{V_libyaml}
michael@356 296 %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
michael@356 297 ) || exit $?
michael@356 298
michael@356 299 # install Syck C API
michael@356 300 ( cd syck-%{V_libsyck}
michael@356 301 %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
michael@356 302 ) || exit $?
michael@356 303
michael@356 304 # install PHP API
michael@356 305 %if "%{with_php}" == "yes"
michael@356 306 ( cd syck-%{V_php_syck}
michael@356 307 %{l_make} %{l_mflags} install INSTALL_ROOT=$RPM_BUILD_ROOT
michael@356 308 ) || exit $?
michael@356 309 ( cd yaml-%{V_php_yaml}
michael@356 310 %{l_make} %{l_mflags} install INSTALL_ROOT=$RPM_BUILD_ROOT
michael@356 311 ) || exit $?
michael@356 312 %endif
michael@356 313
michael@356 314 # install Ruby API
michael@356 315 %if "%{with_ruby}" == "yes"
michael@356 316 ( cd syck-%{V_libsyck}/ext/ruby
michael@356 317 %{l_prefix}/bin/ruby install.rb install --prefix=$RPM_BUILD_ROOT
michael@356 318 ) || exit $?
michael@356 319 %endif
michael@356 320
michael@356 321 # install Perl API
michael@356 322 %if "%{with_perl}" == "yes"
michael@356 323 %{l_prefix}/bin/perl-openpkg -d YAML-%{V_perl_yaml} install
michael@356 324 %{l_prefix}/bin/perl-openpkg -d YAML-Syck-%{V_perl_yaml_syck} install
michael@356 325 %{l_prefix}/bin/perl-openpkg -d YAML-Tiny-%{V_perl_yaml_tiny} install
michael@356 326 %{l_prefix}/bin/perl-openpkg -d YAML-AppConfig-%{V_perl_yaml_appconfig} install
michael@356 327 %{l_prefix}/bin/perl-openpkg -d YAML-LibYAML-%{V_perl_yaml_libyaml} install
michael@356 328 %{l_prefix}/bin/perl-openpkg -d YAML-Active-%{V_perl_yaml_active} install
michael@356 329 %{l_prefix}/bin/perl-openpkg -d YAML-Object-%{V_perl_yaml_object} install
michael@356 330 %{l_prefix}/bin/perl-openpkg -d IO-YAML-%{V_perl_io_yaml} install
michael@356 331 %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
michael@356 332 %else
michael@356 333 >perl-openpkg-files
michael@356 334 %endif
michael@356 335
michael@356 336 # install Java API
michael@356 337 %if "%{with_java}" == "yes"
michael@356 338 %{l_shtool} mkdir -f -p -m 755 \
michael@356 339 $RPM_BUILD_ROOT%{l_prefix}/lib/yaml
michael@356 340 %{l_shtool} install -c -m 644 \
michael@356 341 jvyaml-%{V_java_jvyaml}/lib/jvyaml.jar \
michael@356 342 $RPM_BUILD_ROOT%{l_prefix}/lib/yaml/
michael@356 343 %{l_shtool} install -c -m 644 \
michael@356 344 jyaml/dist/jyaml-*.jar \
michael@356 345 $RPM_BUILD_ROOT%{l_prefix}/lib/yaml/jyaml.jar
michael@356 346 %endif
michael@356 347
michael@356 348 # install JavaScript API
michael@356 349 %{l_shtool} mkdir -f -p -m 755 \
michael@356 350 $RPM_BUILD_ROOT%{l_prefix}/share/yaml
michael@356 351 %{l_shtool} install -c -m 644 \
michael@356 352 yaml-javascript-%{V_yaml_javascript}/yaml_dumper.js \
michael@356 353 $RPM_BUILD_ROOT%{l_prefix}/share/yaml/
michael@356 354
michael@356 355 # install YAML specification and quick reference
michael@356 356 %{l_shtool} install -c -m 644 \
michael@356 357 %{SOURCE %{V_yaml_spec}.pdf} \
michael@356 358 $RPM_BUILD_ROOT%{l_prefix}/share/yaml/yaml.pdf
michael@356 359 %{l_shtool} install -c -m 644 \
michael@356 360 %{SOURCE yaml.yml} \
michael@356 361 $RPM_BUILD_ROOT%{l_prefix}/share/yaml/
michael@356 362
michael@356 363 # determine installation files
michael@356 364 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@356 365 %{l_files_std} `cat perl-openpkg-files`
michael@356 366
michael@356 367 %files -f files
michael@356 368
michael@356 369 %clean
michael@357 370 rm -rf $RPM_BUILD_ROOT
michael@356 371

mercurial