yaml/yaml.spec

Fri, 03 Aug 2012 20:11:53 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 03 Aug 2012 20:11:53 +0200
changeset 470
f8813e60f168
parent 356
14df3eec63f9
child 590
488716b6db75
permissions
-rw-r--r--

Neutralize buggy code causing OpenPKG to have 'fatal problems' in
spite of correct installation, configuration, and operation. An
administrator suffering from this failure is even unable to
uninstall the flawed software.

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