File iputils.spec of Package iputils.38678

#
# spec file for package iputils
#
# Copyright (c) 2025 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/
#


Name:           iputils
BuildRequires:  docbook_3
BuildRequires:  iso_ent
BuildRequires:  libcap-devel
BuildRequires:  libopenssl-devel
BuildRequires:  opensp
BuildRequires:  perl-SGMLS
Summary:        IPv4 and IPv6 Networking Utilities
License:        BSD-3-Clause AND GPL-2.0-or-later
Group:          Productivity/Networking/Other
Version:        s20121221
Release:        0
URL:            http://www.skbuff.net/iputils
Source:         http://www.skbuff.net/iputils/iputils-%{version}.tar.bz2
# XXX: from linux/Documentation/networking/ifenslave.c
Source1:        ifenslave.c
Patch2:         iputils-traceroute6-stdint.diff
Patch3:         iputils-ifenslave.diff
Patch8:         iputils-s20101006-sec-ping-unblock.diff
Patch9:         iputils-s20101006-ping-interrupt.diff
# PATCH-FIX-UPSTREAM: bcs#1242300 CVE-2025-47268  integer overflow in RTT calculation can lead to undefine    d behavior
Patch10:        iputils-CVE-2025-47268.patch

BuildRoot:      %{_tmppath}/%{name}-%{version}-build
PreReq:         permissions

%description
This package contains some small network tools for IPv4 and IPv6 like
rdisc, ping6, traceroute6, tracepath, and tracepath6.

%prep
%setup -q
cp -a %SOURCE1 .
%patch -P 2 -p1
%patch -P 3 -p0
%patch -P 8 -p1
%patch -P 9 -p1
%patch -P 10 -p1

%build
make %{?_smp_mflags} KERNEL_INCLUDE=$PWD \
	CCOPT='%optflags -fno-strict-aliasing -fpie -D_GNU_SOURCE' \
	LDLIBS='-Wl,-z,relro,-z,now -pie -lcap -lresolv' \
	CAPABILITIES=1 LDFLAG_GNUTLS='-lcrypto -lssl'
gcc $RPM_OPT_FLAGS -o ifenslave ifenslave.c

make man

%install
mkdir -p $RPM_BUILD_ROOT/%_sbindir
mkdir -p $RPM_BUILD_ROOT/%_bindir
install arping		$RPM_BUILD_ROOT/%{_sbindir}
install ifenslave	$RPM_BUILD_ROOT/%{_sbindir}
install clockdiff	$RPM_BUILD_ROOT/%{_sbindir}
install rdisc		$RPM_BUILD_ROOT/%{_sbindir}/in.rdisc
install tracepath	$RPM_BUILD_ROOT/%{_sbindir}
install tracepath6	$RPM_BUILD_ROOT/%{_sbindir}
install ping		$RPM_BUILD_ROOT/%{_bindir}
install ping6		$RPM_BUILD_ROOT/%{_bindir}
install ipg			$RPM_BUILD_ROOT/%{_bindir}
#UsrMerge
mkdir -p $RPM_BUILD_ROOT/{bin,sbin}
ln -sf %{_sbindir}/arping		$RPM_BUILD_ROOT/sbin
ln -sf %{_sbindir}/ifenslave	$RPM_BUILD_ROOT/sbin
ln -sf %{_sbindir}/clockdiff	$RPM_BUILD_ROOT/sbin
ln -sf %{_sbindir}/in.rdisc		$RPM_BUILD_ROOT/sbin
ln -sf %{_sbindir}/tracepath	$RPM_BUILD_ROOT/sbin
ln -sf %{_sbindir}/tracepath6	$RPM_BUILD_ROOT/sbin
ln -sf %{_bindir}/ping			$RPM_BUILD_ROOT/bin
ln -sf %{_bindir}/ping6			$RPM_BUILD_ROOT/bin
ln -sf %{_bindir}/ipg			$RPM_BUILD_ROOT/bin
#EndUsrMerge
mkdir -p $RPM_BUILD_ROOT%_mandir/man8
install  -m 644 doc/arping.8		$RPM_BUILD_ROOT%_mandir/man8/
install  -m 644 doc/clockdiff.8		$RPM_BUILD_ROOT%_mandir/man8/
install  -m 644 doc/tracepath.8		$RPM_BUILD_ROOT%_mandir/man8/
install  -m 644 doc/ping.8		$RPM_BUILD_ROOT%_mandir/man8/
install  -m 644 doc/ping.8		$RPM_BUILD_ROOT%_mandir/man8/ping6.8
install  -m 644 doc/pg3.8		$RPM_BUILD_ROOT%_mandir/man8/
install  -m 644 doc/rdisc.8		$RPM_BUILD_ROOT%_mandir/man8/

%clean
rm -rf $RPM_BUILD_ROOT

%post
%set_permissions %{_bindir}/ping %{_bindir}/ping6

%verifyscript
%verify_permissions %{_bindir}/ping %{_bindir}/ping6

%files
%defattr(-,root,root)
%doc RELNOTES
%{_sbindir}/arping
%{_sbindir}/ifenslave
%{_sbindir}/clockdiff
%verify(not mode caps) %attr(4755,root,root) %{_bindir}/ping
%verify(not mode caps) %attr(4755,root,root) %{_bindir}/ping6
%{_bindir}/ipg
%{_sbindir}/tracepath
%{_sbindir}/tracepath6
%{_sbindir}/in.rdisc
#UsrMerge
/bin/*
/sbin/*
#EndUsrMerge
%attr(644,root,root) %_mandir/man8/*

%changelog
openSUSE Build Service is sponsored by