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