libuv/libuv.spec

138 lines
3.9 KiB
RPMSpec

# Run the tests by default on Fedora
# Some of the network tests fail on RHEL/CentOS Stream due to the network
# configuration on the builders
%if 0%{?rhel}
%bcond tests 0
%else
%bcond tests 1
%endif
Name: libuv
Epoch: 1
Version: 1.47.0
Release: %autorelease
Summary: Platform layer for node.js
# Code is MIT
# Documentation is CC-BY-4.0
# src/inet.c is ISC
# include/uv/tree.h is BSD-2-Clause
License: MIT AND CC-BY-4.0 AND ISC AND BSD-2-Clause
URL: http://libuv.org/
Source0: http://dist.libuv.org/dist/v%{version}/libuv-v%{version}.tar.gz
Source1: https://dist.libuv.org/dist/v%{version}/%{name}-v%{version}.tar.gz.sign
# mkdir temp
# gpg --no-default-keyring --keyring temp/keyring.gpg --keyserver keyserver.ubuntu.com \
# --recv-keys D77B1E34243FBAF05F8E9CC34F55C8C846AB89B9 \
# FDF519364458319FA8233DC9410E5553AE9BC059 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
# 57353E0DBDAAA7E839B66A1AFF47D5E4AD8B4FDC AEAD0A4B686767751A0E4AEF34A25FB128246514 \
# CFBB9CA9A5BEAFD70E2B3C5A79A67C55A3679C8B C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
# 612F0EAD9401622379DF4402F28C3C8DA33C03BE \
# && gpg --no-default-keyring --keyring temp/keyring.gpg --output temp/keysuv.gpg --export
# cp temp/keysuv.gpg .
Source2: keysuv.gpg
Source3: libuv.abignore
# Test fix for IPv6 interfaces with a NULL ifa_addr
# https://github.com/libuv/libuv/pull/4218
Patch: 0001-unix-ignore-ifaddrs-with-NULL-ifa_addr-4218.patch
# test: check if ipv6 link-local traffic is routable
# https://github.com/libuv/libuv/pull/4220
Patch: 0002-test-check-if-ipv6-link-local-traffic-is-routable.patch
# test: Use unsigned comparison for fs_type
# https://github.com/libuv/libuv/pull/4227
Patch: 0003-test_fs.c-Fix-issue-on-32-bit-systems-using-btrfs.patch
BuildRequires: cmake
BuildRequires: gcc
BuildRequires: gnupg2
# Documentation
BuildRequires: make
BuildRequires: python3-sphinx
%description
libuv is a new platform layer for Node. Its purpose is to abstract IOCP on
Windows and libev on Unix systems. We intend to eventually contain all platform
differences in this library.
%package devel
Summary: Development libraries for libuv
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-static%{?_isa} = %{epoch}:%{version}-%{release}
%description devel
Development libraries for libuv
%package static
Summary: Platform layer for node.js - static library
Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release}
%description static
Static library (.a) version of libuv.
%prep
gpgv2 --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0}
%autosetup -n %{name}-v%{version} -p1
%build
%if %{with tests}
%cmake -DBUILD_TESTING=ON
%else
%cmake -DBUILD_TESTING=OFF
%endif
%cmake_build
# Build Documentation
cd docs
make man
cd ..
%install
%cmake_install
# install documentation
mkdir -p %{buildroot}/%{_mandir}/man1/
install -p -m 644 docs/build/man/libuv.1 %{buildroot}/%{_mandir}/man1/
mkdir -p %{buildroot}%{_libdir}/libuv/
install -Dm0644 -t %{buildroot}%{_libdir}/libuv/ %{SOURCE3}
# Remove packaged license files
rm %{buildroot}/%{_docdir}/libuv/LICENSE
rm %{buildroot}/%{_docdir}/libuv/LICENSE-extra
%check
%if %{with tests}
env UV_TEST_TIMEOUT_MULTIPLIER=10 ./%{__cmake_builddir}/uv_run_tests
env UV_TEST_TIMEOUT_MULTIPLIER=10 ./%{__cmake_builddir}/uv_run_tests_a
%endif
%files
%doc README.md AUTHORS CONTRIBUTING.md MAINTAINERS.md SUPPORTED_PLATFORMS.md
%doc ChangeLog
%license LICENSE LICENSE-docs LICENSE-extra
%{_libdir}/%{name}.so.1
%{_libdir}/%{name}.so.1.*
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/libuv.abignore
%{_mandir}/man1/%{name}.1*
%files devel
%{_includedir}/uv.h
%dir %{_includedir}/uv
%{_includedir}/uv/*.h
%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%dir %{_libdir}/cmake/%{name}
%{_libdir}/cmake/%{name}/*.cmake
%files static
%{_libdir}/%{name}.a
%{_libdir}/pkgconfig/%{name}-static.pc
%changelog
%autochangelog