json/json.spec

Mon, 10 Jan 2011 20:54:01 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 10 Jan 2011 20:54:01 +0100
changeset 303
2bd9bf3f6f03
child 304
fbf6cb91be09
permissions
-rw-r--r--

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

mercurial