summaryrefslogtreecommitdiff
path: root/librtr.spec
blob: e02d81e2c45b015c8c3e737f50c68d02e90f03de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
Name:           librtr
Version:        0.8.0
Release:        1%{?dist}
Summary:        Small extensible RPKI-RTR-Client C library
Group:          Development/Libraries
License:        MIT
URL:            http://rpki.realmv6.org/
Source0:        %{name}-%{version}.tar.gz
BuildRequires:  binutils gcc tar cmake libssh-devel >= 0.5.0 openssl-devel >= 1.0 doxygen
Requires:       libssh >= 0.5.0 openssl >= 1.0

# Fedora 33 and up changed cmake in rpm's
# See https://fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds
%if 0%{?fedora} >= 33 || 0%{?rhel} >= 9
    %global use_cmake_macros 1
%else
    %global use_cmake_macros 0
%endif

%description
RTRlib is an open-source C implementation of the RPKI/Router Protocol
client. The library allows one to fetch and store validated prefix origin
data from a RTR-cache and performs origin verification of prefixes. It also
allows validating and signing BGPsec AS paths. It supports different
types of transport sessions (e.g., SSH, unprotected TCP) and is easily
extendable.

%package devel
Summary:        Small extensible RPKI-RTR-Client C library. Development files
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release} libssh-devel >= 0.5.0 openssl-devel >= 1.0

%description devel
RTRlib is an open-source C implementation of the RPKI/Router Protocol
client. The library allows one to fetch and store validated prefix origin
data from a RTR-cache and performs origin verification of prefixes. It also
allows validating and signing BGPsec AS paths. It supports different
types of transport sessions (e.g., SSH, unprotected TCP) and is easily
extendable.
.
This package contains development files.

%package doc
Summary:        Small extensible RPKI-RTR-Client C library. Documentation
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}
BuildArch:      noarch

%description doc
RTRlib is an open-source C implementation of the RPKI/Router Protocol
client. The library allows one to fetch and store validated prefix origin
data from a RTR-cache and performs origin verification of prefixes. It also
allows validating and signing BGPsec AS paths. It supports different
types of transport sessions (e.g., SSH, unprotected TCP) and is easily
extendable.
.
This package contains documentation files.

%package -n rtr-tools
Summary:        RPKI-RTR command line tools
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}

%description -n rtr-tools
Tools for the RTRlib
Rtrclient is command line that connects to an RPKI-RTR server and prints
protocol information and information about the fetched ROAs to the console.
rpki-rov is a command line tool that connects to an RPKI-RTR server and
allows to validate given IP prefixes and origin ASes.

%prep
if [ ! -f %{SOURCE0} ]; then
  # Build Source Tarball first
  mkdir -p %{_topdir}/SOURCES
  pushd `dirname %_topdir`; tar czf %{SOURCE0} --exclude-vcs --exclude=redhat . ; popd
fi
mkdir -p %{_topdir}/BUILD
cd %{_topdir}/BUILD
rm -rf %{name}-%{version}
tar xzf %{SOURCE0}
/bin/chmod -Rf a+rX,u+w,g-w,o-w .

%build
%cmake -D CMAKE_BUILD_TYPE=Release .
%if %{use_cmake_macros}
    %cmake_build %{?_smp_mflags}
%else
    make %{?_smp_mflags}
%endif

%install
%if %{use_cmake_macros}
    %cmake_install
%else
    %make_install
%endif
strip $RPM_BUILD_ROOT/usr/lib64/librtr.so.%{version}
strip $RPM_BUILD_ROOT/usr/bin/rpki-rov
strip $RPM_BUILD_ROOT/usr/bin/rtrclient
cp %{_topdir}/BUILD/CHANGELOG %{buildroot}/%{_docdir}/rtrlib/
cp %{_topdir}/BUILD/LICENSE %{buildroot}/%{_docdir}/rtrlib/

%check
%if %{use_cmake_macros}
    export LD_LIBRARY_PATH=.; %cmake_build --target test
%else
    export LD_LIBRARY_PATH=.; make test
%endif

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%{_libdir}/lib*.so.0
%attr(755,root,root) %{_libdir}/lib*.so.0.*
%doc CHANGELOG
%doc LICENSE

%files devel
%{_libdir}/lib*.so
%attr(644,root,root) %{_libdir}/pkgconfig/rtrlib.pc
%{_includedir}/rtrlib
%doc CHANGELOG
%doc LICENSE

%files doc
%{_docdir}/rtrlib

%files -n rtr-tools
%attr(755,root,root) %{_bindir}/rtrclient
%attr(755,root,root) %{_bindir}/rpki-rov
%attr(644,root,root) %{_mandir}/man1/rtrclient.1.gz
%attr(644,root,root) %{_mandir}/man1/rpki-rov.1.gz
%doc CHANGELOG
%doc LICENSE

%changelog
* Mon Jan 17 2022 Martin Winter <mwinter@opensourcerouting.org> - %{version}-%{release}
- Use cmake macros for builds on Fedora 33 and up and RedHat 9 and up
- Fix missing SOURCES directory during rpmbuild on newer systems

* Sun Mar 15 2020 Martin Winter <mwinter@opensourcerouting.org> - 0.7.0
- Update RPM spec changelog to fix changelog error

* Thu Dec 14 2017 Martin Winter <mwinter@opensourcerouting.org> - 0.5.0
- RPM Packaging added