%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}

%define pkg_version	0.14
%define pkg_date	20200419

Summary:	A JSON implementation in C
Name:		json-c
Version:	%{pkg_version}
Release:	1%{?_dist_release}
Group:		System Environment/Libraries
Vendor:		Project Vine
Distribution:	Vine Linux


License:	MIT
URL:		https://github.com/json-c/json-c/wiki
Source0: 	https://github.com/json-c/json-c/archive/json-c-%{version}-%{pkg_date}.tar.gz
Patch1000:	CVE-2020-12762.patch

BuildRoot:	%{_tmppath}/%{name}-%{version}-root
BuildRequires:	cmake


%description
JSON-C implements a reference counting object model that allows you to easily
construct JSON objects in C, output them as JSON formatted strings and parse
JSON formatted strings back into the C representation of JSON objects.


%package devel
Summary:	Development files for json-c
Group:		Development/Libraries
Requires:	%{name} = %{version}-%{release}
Requires:	pkgconfig

%description devel
This package contains the libraries and header files that are needed
for writing applications that are using json-c.


%package doc
Summary:	Documentation for json-c
Group:		Documentation
Requires:	%{name} = %{version}-%{release}
BuildArch:	noarch

%description doc
This package contains documentation for json-c.


%package -n compat32-%{name}
Summary:	A JSON implementation in C
Group:		System Environment/Libraries
Requires:	%{name} = %{version}-%{release}

%description -n compat32-%{name}
JSON-C implements a reference counting object model that allows you to easily
construct JSON objects in C, output them as JSON formatted strings and parse
JSON formatted strings back into the C representation of JSON objects.

%package -n compat32-%{name}-devel
Summary:	Development files for json-c
Group:		Development/Libraries
Requires:	compat32-%{name} = %{version}-%{release}
Requires:	pkgconfig

%description -n compat32-%{name}-devel
This package contains the libraries and header files that are needed
for writing applications that are using json-c.


%prep
%setup -q -n json-c-json-c-%{version}-%{pkg_date}
%patch1000 -p1


%build
mkdir -p build
pushd build
%cmake \
	-DBUILD_SHARED_LIBS=ON \
	-DBUILD_STATIC_LIBS=OFF \
	-DENABLE_RDRAND=ON \
	../
make %{_smp_mflags}
popd


%install
%{__rm} -rf $RPM_BUILD_ROOT
pushd build
%{__make} install DESTDIR=$RPM_BUILD_ROOT

%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/*.la
popd


%check
pushd build
make %{_smp_mflags} test
popd


%clean
%{__rm} -rf $RPM_BUILD_ROOT


%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%post -n compat32-%{name} -p /sbin/ldconfig

%postun -n compat32-%{name} -p /sbin/ldconfig


%files
%defattr(-,root,root,-)
%license COPYING
%doc AUTHORS ChangeLog NEWS README*
%{_libdir}/libjson-c.so.*

%files devel
%defattr(-,root,root,-)
%dir %{_includedir}/json-c
%{_includedir}/json-c/*
%{_libdir}/libjson-c.so
%{_libdir}/pkgconfig/json-c.pc
%dir %{_libdir}/cmake/json-c
%{_libdir}/cmake/json-c/*.cmake

%files doc
%defattr(-,root,root,-)
%doc doc/html/*

%if %{build_compat32}
%files -n compat32-%{name}
%defattr(-,root,root,-)
%{_libdir}/libjson-c.so.*

%files -n compat32-%{name}-devel
%defattr(-,root,root,-)
%{_libdir}/libjson-c.so
%endif


%changelog
* Sat May 16 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 0.14-1
- updated to 0.14.
- added Patch1000 to fix CVE-2020-12762.

* Tue Jan 01 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 0.13.1-1
- updated to 0.13.1.

* Sat Jan 17 2015 Daisuke SUZUKI <daisuke@vinelinux.org> 0.11-1
- update to 0.11

* Wed Nov 28 2012 Daisuke SUZUKI <daisuke@linux.or.jp> 0.10-1
- update to 0.10
- update URL

* Sat Oct 08 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.9-2
- create compat32 sub packages

* Fri Oct 07 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.9-1
- initial build for Vine Linux