File perl-JSON.spec of Package perl-JSON

#
# spec file for package perl-JSON
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           perl-JSON
Version:        2.90
Release:        0
%define cpan_name JSON
Summary:        JSON (JavaScript Object Notation) encoder/decoder
License:        Artistic-1.0 or GPL-1.0+
Group:          Development/Libraries/Perl
Url:            http://search.cpan.org/dist/JSON/
Source:         http://www.cpan.org/authors/id/M/MA/MAKAMAKA/%{cpan_name}-%{version}.tar.gz
BuildArch:      noarch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  perl
BuildRequires:  perl-macros
#BuildRequires: perl(JSON)
#BuildRequires: perl(JSON::backportPP)
#BuildRequires: perl(JSON::PP)
#BuildRequires: perl(JSON::XS)
#BuildRequires: perl(Tie::IxHash)
#BuildRequires: perl(_unicode_handling)
Recommends:     perl(JSON::XS) >= 2.34
%{perl_requires}

%description
 *************************** CAUTION **************************************
 *                                                                        *
 * INCOMPATIBLE CHANGE (JSON::XS version 2.90)                            *
 *                                                                        *
 * JSON.pm had patched JSON::XS::Boolean and JSON::PP::Boolean internally *
 * on loading time for making these modules inherit JSON::Boolean.        *
 * But since JSON::XS v3.0 it use Types::Serialiser as boolean class.     *
 * Then now JSON.pm breaks boolean classe overload features and           *
 * -support_by_pp if JSON::XS v3.0 or later is installed.                 *
 *                                                                        *
 * JSON::true and JSON::false returned JSON::Boolean objects.             *
 * For workaround, they return JSON::PP::Boolean objects in this version. *
 *                                                                        *
 *     isa_ok(JSON::true, 'JSON::PP::Boolean');                           *
 *                                                                        *
 * And it discards a feature:                                             *
 *                                                                        *
 *     ok(JSON::true eq 'true');                                          *
 *                                                                        *
 * In other word, JSON::PP::Boolean overload numeric only.                *
 *                                                                        *
 *     ok( JSON::true == 1 );                                             *
 *                                                                        *
 **************************************************************************

 ************************** CAUTION ********************************
 * This is 'JSON module version 2' and there are many differences  *
 * to version 1.xx                                                 *
 * Please check your applications using old version.              *
 *   See to 'INCOMPATIBLE CHANGES TO OLD VERSION'                  *
 *******************************************************************

JSON (JavaScript Object Notation) is a simple data format. See to the
http://www.json.org/ manpage and 'RFC4627'(the
http://www.ietf.org/rfc/rfc4627.txt manpage).

This module converts Perl data structures to JSON and vice versa using
either the JSON::XS manpage or the JSON::PP manpage.

JSON::XS is the fastest and most proper JSON module on CPAN which must be
compiled and installed in your environment. JSON::PP is a pure-Perl module
which is bundled in this distribution and has a strong compatibility to
JSON::XS.

This module try to use JSON::XS by default and fail to it, use JSON::PP
instead. So its features completely depend on JSON::XS or JSON::PP.

See to the BACKEND MODULE DECISION manpage.

To distinguish the module name 'JSON' and the format type JSON, the former
is quoted by C<> (its results vary with your using media), and the latter
is left just as it is.

Module name : 'JSON'

Format type : JSON

%prep
%setup -q -n %{cpan_name}-%{version}

%build
%{__perl} Makefile.PL INSTALLDIRS=vendor
%{__make} %{?_smp_mflags}

%check
%{__make} test

%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist

%files -f %{name}.files
%defattr(-,root,root,755)
%doc Changes README

%changelog
openSUSE Build Service is sponsored by