Initial import (perl-Cpanel-JSON-XS-2.3404-2)

This module converts Perl data structures to JSON and vice versa. Its
primary goal is to be correct and its secondary goal is to be fast. To
reach the latter goal it was written in C.
This commit is contained in:
Paul Howarth 2014-04-10 15:20:44 +01:00
parent 650eda05b4
commit f40360d120
4 changed files with 144 additions and 0 deletions

1
.gitignore vendored
View File

@ -0,0 +1 @@
/Cpanel-JSON-XS-[0-9.]*.tar.gz

View File

@ -0,0 +1,37 @@
diff -Naur old/bin/cpanel_json_xs new/bin/cpanel_json_xs
--- old/bin/cpanel_json_xs 2013-11-12 08:26:09.000000000 +1100
+++ new/bin/cpanel_json_xs 2014-04-10 18:02:15.694903565 +1000
@@ -40,8 +40,6 @@
=item bencode - use Convert::Bencode, if available (used by torrent files, among others)
-=item clzf - Compress::LZF format (requires that module to be installed)
-
=item eval - evaluate the given code as (non-utf-8) Perl, basically the reverse of "-t dump"
=item yaml - YAML (avoid at all costs, requires the YAML module :)
@@ -74,8 +72,6 @@
=item bencode - use Convert::Bencode, if available (used by torrent files, among others)
-=item clzf - Compress::LZF format
-
=item yaml - YAML
=item dump - Data::Dump
@@ -176,7 +172,6 @@
"storable" => sub { Storable::thaw $_ },
"storable-file" => sub { open my $fh, "<", \$_; Storable::fd_retrieve $fh },
"bencode" => sub { require Convert::Bencode; Convert::Bencode::bdecode ($_) },
- "clzf" => sub { require Compress::LZF; Compress::LZF::sthaw ($_) },
"yaml" => sub { require YAML; YAML::Load ($_) },
"eval" => sub { my $v = eval "no strict; no warnings; no utf8;\n#line 1 \"input\"\n$_"; die "$@" if $@; $v },
);
@@ -196,7 +191,6 @@
"storable-file" => sub { open my $fh, ">", \my $buf; Storable::nstore_fd $_, $fh; $buf },
"bencode" => sub { require Convert::Bencode; Convert::Bencode::bencode ($_) },
- "clzf" => sub { require Compress::LZF; Compress::LZF::sfreeze_cr ($_) },
"yaml" => sub { require YAML; YAML::Dump ($_) },
"dumper" => sub {
require Data::Dumper;

105
perl-Cpanel-JSON-XS.spec Normal file
View File

@ -0,0 +1,105 @@
# Note: Compress::LZF format support has been disabled until such
# time as the Compress::LZF module becomes available in Fedora (#1074129)
Name: perl-Cpanel-JSON-XS
Summary: JSON::XS for Cpanel, fast and correct serializing
Version: 2.3404
Release: 2%{?dist}
License: GPL+ or Artistic
URL: http://search.cpan.org/dist/Cpanel-JSON-XS/
Source0: http://search.cpan.org/CPAN/authors/id/R/RU/RURBAN/Cpanel-JSON-XS-%{version}.tar.gz
Patch0: Cpanel-JSON-XS-2.3404-no-clzf.patch
# Module Build
BuildRequires: perl
BuildRequires: perl(ExtUtils::MakeMaker)
# Module Runtime
BuildRequires: perl(Carp)
BuildRequires: perl(Exporter)
BuildRequires: perl(overload)
BuildRequires: perl(XSLoader)
# Script Runtime
#BuildRequires: perl(Compress::LZF)
BuildRequires: perl(Convert::Bencode)
BuildRequires: perl(Data::Dump)
BuildRequires: perl(YAML)
# Test Suite
BuildRequires: perl(common::sense) >= 3.5
BuildRequires: perl(Config)
BuildRequires: perl(Data::Dumper)
BuildRequires: perl(Encode) >= 1.9081
BuildRequires: perl(Hash::Util)
BuildRequires: perl(strict)
BuildRequires: perl(Test)
BuildRequires: perl(Test::More)
BuildRequires: perl(Tie::Array)
BuildRequires: perl(Tie::Hash)
BuildRequires: perl(utf8)
BuildRequires: perl(warnings)
# Maintainer Tests
BuildRequires: perl(File::Copy)
BuildRequires: perl(Perl::MinimumVersion) >= 1.20
BuildRequires: perl(Test::CPAN::Meta) >= 0.12
BuildRequires: perl(Test::Kwalitee)
BuildRequires: perl(Test::MinimumVersion) >= 0.008
BuildRequires: perl(Test::Pod) >= 1.00
BuildRequires: perl(Test::Pod::Coverage) >= 1.04
# Runtime
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
Requires: perl(Carp)
#Requires: perl(Compress::LZF)
Requires: perl(Convert::Bencode)
Requires: perl(Data::Dump)
Requires: perl(YAML)
# Avoid unwanted provides and dependencies
%{?perl_default_filter}
%description
This module converts Perl data structures to JSON and vice versa. Its
primary goal is to be correct and its secondary goal is to be fast. To
reach the latter goal it was written in C.
%prep
%setup -q -n Cpanel-JSON-XS-%{version}
# Drop CLZF support for now
%patch0 -p1
# Fix shellbangs
perl -pi -e 's|^#!/opt/bin/perl|#!/usr/bin/perl|' eg/*
# Make sure we don't try to do a signature check
rm SIGNATURE
perl -ni -e 'print unless /SIGNATURE/;' MANIFEST
%build
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
make %{?_smp_mflags}
%install
make pure_install DESTDIR=%{buildroot}
find %{buildroot} -type f -name .packlist -exec rm -f {} ';'
find %{buildroot} -type f -name '*.bs' -a -size 0 -exec rm -f {} ';'
%{_fixperms} %{buildroot}
%check
make test IS_MAINTAINER=1 RELEASE_TESTING=1
%files
%doc Changes COPYING README eg/
%{_bindir}/cpanel_json_xs
%{perl_vendorarch}/auto/Cpanel/
%{perl_vendorarch}/Cpanel/
%{_mandir}/man1/cpanel_json_xs.1*
%{_mandir}/man3/Cpanel::JSON::XS.3pm*
%{_mandir}/man3/Cpanel::JSON::XS::Boolean.3pm*
%changelog
* Thu Apr 10 2014 Paul Howarth <paul@city-fan.org> - 2.3404-2
- Incorporate feedback from package review (#1085975)
- Simplify %%summary
- Temporarily drop Compress::LZF format support from cpanel_json_xs client
- Add optional dependencies for module, tests and cpanel_json_xs client
* Wed Apr 9 2014 Paul Howarth <paul@city-fan.org> - 2.3404-1
- Initial RPM version

View File

@ -0,0 +1 @@
6fa33e4f6d5b16bcec62e3340c198437 Cpanel-JSON-XS-2.3404.tar.gz