json-c/json-c.spec

139 lines
4.3 KiB
RPMSpec

#
# spec file for package json-c
#
# Copyright (c) 2022 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#
%define libname libjson-c
%define libsoname %{libname}5
%define oldlibname libjson
%define version_date 20220414
Name: json-c
Version: 0.16
Release: 0
Summary: JSON implementation in C
License: MIT
Group: Development/Libraries/C and C++
URL: https://github.com/json-c/json-c
Source0: https://github.com/json-c/json-c/archive/json-c-%{version}-%{version_date}.tar.gz
Source1: baselibs.conf
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: libtool
BuildRequires: pkgconfig
%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 -n %{libsoname}
Summary: JSON-C shared library
Group: System/Libraries
%description -n %{libsoname}
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.
This package includes the JSON library.
%package -n %{libname}-devel
Summary: Development headers and libraries for json-c
Group: Development/Libraries/C and C++
Requires: %{libsoname} = %{version}
Provides: %{oldlibname}-devel = %{version}
Obsoletes: %{oldlibname}-devel < %{version}
%description -n %{libname}-devel
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.
This package includes header files and scripts needed for developers
using the json-c library
%package -n %{libname}-doc
Summary: Documentation files
Group: Documentation/Other
Provides: %{oldlibname}-doc = %{version}
Obsoletes: %{oldlibname}-doc < %{version}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description -n %{libname}-doc
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.
This package includes the json-c documentation.
%prep
%autosetup -p1 -n %{name}-json-c-%{version}-%{version_date}
%build
%if 0%{?suse_version} <= 1110
sed -i 's/-Werror //g' Makefile.am.inc
autoreconf -fiv
%endif
%cmake \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DCMAKE_INSTALL_LIBDIR=%{_libdir} \
-DCMAKE_C_FLAGS=-std=gnu99 \
-DENABLE_THREADING=ON \
-DENABLE_RDRAND=ON
%check
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
%ctest
%install
%cmake_install
find %{buildroot} -type f -name "*.la" -delete -print
# create a compatibilty pkg-config file for software needing it
(cd %{buildroot}%{_libdir}/pkgconfig && ln -s json-c.pc json.pc)
mkdir -p "%{buildroot}%{_docdir}/%{name}-doc"
cp -R doc/html "%{buildroot}%{_docdir}/%{name}-doc"
%fdupes %{buildroot}%{_docdir}
%post -n %{libsoname} -p /sbin/ldconfig
%postun -n %{libsoname} -p /sbin/ldconfig
%files -n %{libsoname}
%{_libdir}/%{libname}.so.*
%license COPYING
%files -n %{libname}-devel
%{_libdir}/%{libname}.so
%{_includedir}/json-c
%{_libdir}/pkgconfig/*.pc
%dir %{_libdir}/cmake/json-c
%{_libdir}/cmake/json-c/json-c-config.cmake
%{_libdir}/cmake/json-c/json-c-targets-none.cmake
%{_libdir}/cmake/json-c/json-c-targets.cmake
%files -n %{libname}-doc
%license COPYING
%doc AUTHORS ChangeLog README README.html
%doc %{_docdir}/%{name}-doc
%changelog