Initialize for iproute2
This commit is contained in:
commit
2bc59a4444
8 changed files with 1913 additions and 0 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
iproute2-5.14.0.tar.sign
|
||||||
|
iproute2-5.14.0.tar.xz
|
||||||
|
patches.tar.xz
|
3
.iproute2.metadata
Normal file
3
.iproute2.metadata
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
5696302acb8e3888e0fbcfa6586187c2aa1b812b78296fd0b6fbf69f8f5ace4c iproute2-5.14.0.tar.sign
|
||||||
|
42ac300b5861606df3f2ddd388b752a4f856b099d8aa665ed44d048ea7636c6a iproute2-5.14.0.tar.xz
|
||||||
|
fed49c76637cc94ad5a3f63fedf822de189d7cf1f7bf104954d1da93e023eaa7 patches.tar.xz
|
12
apply-patches
Normal file
12
apply-patches
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Applying patches:"
|
||||||
|
|
||||||
|
while read p; do
|
||||||
|
if patch -p1 -s --no-backup-if-mismatch --fuzz=0 <patches/"$p"; then
|
||||||
|
echo -e "\t$p"
|
||||||
|
else
|
||||||
|
echo "*** Patch $p failed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
313
guards
Normal file
313
guards
Normal file
|
@ -0,0 +1,313 @@
|
||||||
|
#!/usr/bin/perl -w
|
||||||
|
#############################################################################
|
||||||
|
# Copyright (c) 2003-2007,2009 Novell, Inc.
|
||||||
|
# All Rights Reserved.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of version 2 of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, contact Novell, Inc.
|
||||||
|
#
|
||||||
|
# To contact Novell about this file by physical or electronic mail,
|
||||||
|
# you may find current contact information at www.novell.com
|
||||||
|
#############################################################################
|
||||||
|
#
|
||||||
|
# Guards:
|
||||||
|
#
|
||||||
|
# +xxx include if xxx is defined
|
||||||
|
# -xxx exclude if xxx is defined
|
||||||
|
# +!xxx include if xxx is not defined
|
||||||
|
# -!xxx exclude if xxx is not defined
|
||||||
|
#
|
||||||
|
|
||||||
|
use FileHandle;
|
||||||
|
use Getopt::Long;
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
# Prototypes
|
||||||
|
sub files_in($$);
|
||||||
|
sub parse($$);
|
||||||
|
sub help();
|
||||||
|
|
||||||
|
sub slashme($) {
|
||||||
|
my ($dir) = @_;
|
||||||
|
$dir =~ s#([^/])$#$&/#; # append a slash if necessary
|
||||||
|
if ($dir eq './') {
|
||||||
|
return '';
|
||||||
|
} else {
|
||||||
|
return $dir;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Generate a list of files in a directory
|
||||||
|
#
|
||||||
|
sub files_in($$) {
|
||||||
|
my ($dir, $path) = @_;
|
||||||
|
my $dh = new FileHandle;
|
||||||
|
my (@files, $file);
|
||||||
|
|
||||||
|
# @<file> syntax
|
||||||
|
if ($path =~ s/^@//) {
|
||||||
|
my $fh;
|
||||||
|
open($fh, '<', $path) or die "$path: $!\n";
|
||||||
|
@files = <$fh>;
|
||||||
|
close($fh);
|
||||||
|
chomp(@files);
|
||||||
|
s:^$dir:: for @files;
|
||||||
|
return @files;
|
||||||
|
}
|
||||||
|
|
||||||
|
$path = slashme($path);
|
||||||
|
opendir $dh, length("$dir$path") ? "$dir$path" : '.'
|
||||||
|
or die "$dir$path: $!\n";
|
||||||
|
while ($file = readdir($dh)) {
|
||||||
|
next if $file =~ /^(\.|\.\.|\.#.*|CVS|.*~)$/;
|
||||||
|
if (-d "$dir$path$file") {
|
||||||
|
@files = (@files, files_in($dir, "$path$file/"));
|
||||||
|
} else {
|
||||||
|
#print "[$path$file]\n";
|
||||||
|
push @files, "$path$file";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir $dh;
|
||||||
|
return @files;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Parse a configuration file
|
||||||
|
# Callback called with ($patch, @guards) arguments
|
||||||
|
#
|
||||||
|
sub parse($$) {
|
||||||
|
my ($fh, $callback) = @_;
|
||||||
|
|
||||||
|
my $line = "";
|
||||||
|
|
||||||
|
while (<$fh>) {
|
||||||
|
chomp;
|
||||||
|
s/(^|\s+)#.*//;
|
||||||
|
if (s/\\$/ /) {
|
||||||
|
$line .= $_;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
$line .= $_;
|
||||||
|
my @guards = ();
|
||||||
|
foreach my $token (split /[\s\t\n]+/, $line) {
|
||||||
|
next if $token eq "";
|
||||||
|
if ($token =~ /^[-+]/) {
|
||||||
|
push @guards, $token;
|
||||||
|
} else {
|
||||||
|
#print "[" . join(",", @guards) . "] $token\n";
|
||||||
|
&$callback($token, @guards);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$line = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Command line options
|
||||||
|
#
|
||||||
|
my ($dir, $config, $default, $check, $list, $invert_match, $with_guards) =
|
||||||
|
( '', '-', 1, 0, 0, 0, 0);
|
||||||
|
my @path;
|
||||||
|
|
||||||
|
# Help text
|
||||||
|
#
|
||||||
|
sub help() {
|
||||||
|
print "$0 - select from a list of files guarded by conditions\n";
|
||||||
|
print "SYNOPSIS: $0 [--prefix=dir] [--path=dir1:dir2:...]\n" .
|
||||||
|
" [--default=0|1] [--check|--list] [--invert-match]\n" .
|
||||||
|
" [--with-guards] [--config=file] symbol ...\n\n" .
|
||||||
|
" Defaults: --default=$default\n" .
|
||||||
|
" Use --path=\@<file> to read the list of entries from <file>\n";
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Parse command line options
|
||||||
|
#
|
||||||
|
Getopt::Long::Configure ("bundling");
|
||||||
|
eval {
|
||||||
|
unless (GetOptions (
|
||||||
|
'd|prefix=s' => \$dir,
|
||||||
|
'c|config=s' => \$config,
|
||||||
|
'C|check' => \$check,
|
||||||
|
'l|list' => \$list,
|
||||||
|
'w|with-guards' => \$with_guards,
|
||||||
|
'p|path=s' => \@path,
|
||||||
|
'D|default=i' => \$default,
|
||||||
|
'v|invert-match' => \$invert_match,
|
||||||
|
'h|help' => sub { help(); exit 0; })) {
|
||||||
|
help();
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if ($@) {
|
||||||
|
print "$@";
|
||||||
|
help();
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@path = ('.')
|
||||||
|
unless (@path);
|
||||||
|
@path = split(/:/, join(':', @path));
|
||||||
|
|
||||||
|
my $fh = ($config eq '-') ? \*STDIN : new FileHandle($config)
|
||||||
|
or die "$config: $!\n";
|
||||||
|
|
||||||
|
$dir = slashme($dir);
|
||||||
|
|
||||||
|
if ($check) {
|
||||||
|
# Check for duplicate files, or for files that are not referenced by
|
||||||
|
# the specification.
|
||||||
|
|
||||||
|
my $problems = 0;
|
||||||
|
my @files;
|
||||||
|
|
||||||
|
foreach (@path) {
|
||||||
|
@files = (@files, files_in($dir, $_));
|
||||||
|
}
|
||||||
|
my %files = map { $_ => 0 } @files;
|
||||||
|
|
||||||
|
parse($fh, sub {
|
||||||
|
my ($patch, @guards) = @_;
|
||||||
|
if (exists $files{$patch}) {
|
||||||
|
$files{$patch}++;
|
||||||
|
} else {
|
||||||
|
if ($config eq '-') {
|
||||||
|
print "Not found: $dir$patch\n";
|
||||||
|
} else {
|
||||||
|
print "In $config but not found: $dir$patch\n";
|
||||||
|
}
|
||||||
|
$problems++;
|
||||||
|
}});
|
||||||
|
|
||||||
|
$fh->close();
|
||||||
|
|
||||||
|
my ($file, $ref);
|
||||||
|
while (($file, $ref) = each %files) {
|
||||||
|
next if $ref == 1;
|
||||||
|
|
||||||
|
if ($ref == 0) {
|
||||||
|
if ($config eq '-') {
|
||||||
|
print "Unused: $file\n";
|
||||||
|
} else {
|
||||||
|
print "Not in $config: $file\n";
|
||||||
|
}
|
||||||
|
$problems++;
|
||||||
|
}
|
||||||
|
if ($ref > 1) {
|
||||||
|
print "Warning: multiple uses";
|
||||||
|
print " in $config" if $config ne '-';
|
||||||
|
print ": $file\n";
|
||||||
|
# This is not an error if the entries are mutually exclusive...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exit $problems ? 1 : 0;
|
||||||
|
|
||||||
|
} elsif ($list) {
|
||||||
|
parse($fh, sub {
|
||||||
|
my ($patch, @guards) = @_;
|
||||||
|
print join(' ', @guards), ' '
|
||||||
|
if (@guards && $with_guards);
|
||||||
|
print "$dir$patch\n";
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
# Generate a list of patches to apply.
|
||||||
|
|
||||||
|
my %symbols = map { $_ => 1 } @ARGV;
|
||||||
|
|
||||||
|
parse($fh, sub {
|
||||||
|
my ($patch, @guards) = @_;
|
||||||
|
|
||||||
|
my $selected;
|
||||||
|
if (@guards) {
|
||||||
|
# If the first guard is -xxx, the patch is included by default;
|
||||||
|
# if it is +xxx, the patch is excluded by default.
|
||||||
|
$selected = ($guards[0] =~ /^-/);
|
||||||
|
|
||||||
|
foreach (@guards) {
|
||||||
|
/^([-+])(!?)(.*)?/
|
||||||
|
or die "Bad guard '$_'\n";
|
||||||
|
|
||||||
|
# Check if the guard matches
|
||||||
|
if (($2 eq '!' && !exists $symbols{$3}) ||
|
||||||
|
($2 eq '' && ( $3 eq '' || exists $symbols{$3}))) {
|
||||||
|
# Include or exclude
|
||||||
|
$selected = ($1 eq '+');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
# If there are no guards, use the specified default result.
|
||||||
|
$selected = $default;
|
||||||
|
}
|
||||||
|
|
||||||
|
print "$dir$patch\n"
|
||||||
|
if $selected ^ $invert_match;
|
||||||
|
});
|
||||||
|
|
||||||
|
$fh->close();
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
__END__
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
guards - select from a list of files guarded by conditions
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
F<guards> [--prefix=F<dir>] [--path=F<dir1:dir2:...>] [--default=<0|1>]
|
||||||
|
[--check|--list] [--invert-match] [--with-guards] [--config=<file>]
|
||||||
|
I<symbol> ...
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
The script reads a configuration file that may contain so-called guards, file
|
||||||
|
names, and comments, and writes those file names that satisfy all guards to
|
||||||
|
standard output. The script takes a list of symbols as its arguments. Each line
|
||||||
|
in the configuration file is processed separately. Lines may start with a
|
||||||
|
number of guards. The following guards are defined:
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
+I<xxx> Include the file(s) on this line if the symbol I<xxx> is defined.
|
||||||
|
|
||||||
|
-I<xxx> Exclude the file(s) on this line if the symbol I<xxx> is defined.
|
||||||
|
|
||||||
|
+!I<xxx> Include the file(s) on this line if the symbol I<xxx> is not defined.
|
||||||
|
|
||||||
|
-!I<xxx> Exclude the file(s) on this line if the symbol I<xxx> is not defined.
|
||||||
|
|
||||||
|
- Exclude this file. Used to avoid spurious I<--check> messages.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
The guards are processed left to right. The last guard that matches determines
|
||||||
|
if the file is included. If no guard is specified, the I<--default>
|
||||||
|
setting determines if the file is included.
|
||||||
|
|
||||||
|
If no configuration file is specified, the script reads from standard input.
|
||||||
|
|
||||||
|
The I<--check> option is used to compare the specification file against the
|
||||||
|
file system. If files are referenced in the specification that do not exist, or
|
||||||
|
if files are not enlisted in the specification file warnings are printed. The
|
||||||
|
I<--path> option can be used to specify which directory or directories to scan.
|
||||||
|
Multiple directories are separated by a colon (C<:>) character. The
|
||||||
|
I<--prefix> option specifies the location of the files. Alternatively, the
|
||||||
|
I<--path=@E<lt>fileE<gt>> syntax can be used to specify a file from which the
|
||||||
|
file names will be read.
|
||||||
|
|
||||||
|
Use I<--list> to list all files independent of any rules. Use I<--invert-match>
|
||||||
|
to list only the excluded patches. Use I<--with-guards> to also include all
|
||||||
|
inclusion and exclusion rules.
|
||||||
|
|
||||||
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
Andreas Gruenbacher <agruen@suse.de>, SUSE Labs
|
1304
iproute2.changes
Normal file
1304
iproute2.changes
Normal file
File diff suppressed because it is too large
Load diff
97
iproute2.keyring
Normal file
97
iproute2.keyring
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
pub 4096R/95CDE47E 2011-10-03
|
||||||
|
uid Stephen Hemminger <stephen@networkplumber.org>
|
||||||
|
uid Stephen Hemminger <shemminger@vyatta.com>
|
||||||
|
uid Stephen Hemminger <stephen.hemminger@gmail.com>
|
||||||
|
uid Stephen Hemminger <stephen.hemminger@vyatta.com>
|
||||||
|
sub 4096R/C0728CDC 2011-10-03
|
||||||
|
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: GnuPG v2.0.19 (GNU/Linux)
|
||||||
|
|
||||||
|
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
|
||||||
|
hwS6em8JpQe0iIUzxQNr9CeacGT3sCvIorGtTslUL6ypEEOmjzoe+EZhpnx9Gzpj
|
||||||
|
BvPmq9fTtRA2cTG2LDcqLlhSL6VqF8MeNnfOsSTwzfpccrNRMTCIUbEhZgTVb5um
|
||||||
|
FJrY8hPS8N63RHCDoII1CyM7lxUOPQ7Hdbkiv8DpqEyuGFhtqLXsjMj/sOnu+t9H
|
||||||
|
Jgg7wFnyPmHG6sqbTSvTUBq1tL6AMoo990QvKA7NKZ6022XFjR2LmkJXRSgOLNEp
|
||||||
|
uPWID5w0h62CLIgu1CzE3mdsLCwBaVwEUjLJx64jgrQvU3RlcGhlbiBIZW1taW5n
|
||||||
|
ZXIgPHN0ZXBoZW4uaGVtbWluZ2VyQGdtYWlsLmNvbT6JAjcEEwEIACECGwMFCwkI
|
||||||
|
BwMFFQoJCAsFFgIDAQACHgECF4AFAk6TXpUACgkQgKd/YJXN5H7RkA/9FtU1acGl
|
||||||
|
lrG+V1KQmExxMy1o6/nsDonQFWCRhN6Y/pYQL9kxf337U4zst4IG5jyjvc7Z0oz/
|
||||||
|
VhVFkGsMIUboighMsFxLtmvZkfDl2Rh5UhV8v0vFk7OmdNPRMbhlp7hUhlq/0LFN
|
||||||
|
mP61mLGHyLQN7KChz5n7yMipFsc7TdTStB5QxMJYkLhXuKNJdpXEld+AhcLNTpMl
|
||||||
|
ZgJ7oZt/yz0aqJ8vx8NYsYHyNxmHF+uSkfeA5Vr/T5/BsWOA85eWP+0o5/mvL8Jl
|
||||||
|
3/fvYa/pqpj9RzbLiB3BILat35WzBAcGzgM83CfmikfLroXE/QpP9pMJgVjvqIwL
|
||||||
|
KuHKLIrE1r06LykYYzr+3BcYOCrHeoGSmX9FrpB5trBP2xirmsjyGgkPgvAVFGOu
|
||||||
|
CdJN3yxsxQnjbPV0LNmcfxpxxQb7oFbdT504vFbG5NUQ9/6Uj4+49Je+1lxa89KK
|
||||||
|
cb4+Q/DEpl+qShJMmqn5ShsUMj7tpJzsvjn0Caf7uEV/ltBnFffCBb/iwsqPgUCm
|
||||||
|
cJ2yXfOCAwSA2v8tpf9RWR6csvzYMF0cBEqJW3Tq/43NJncCIOM2VWtOE9ROjLnr
|
||||||
|
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
|
||||||
|
=3akb
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
164
iproute2.spec
Normal file
164
iproute2.spec
Normal file
|
@ -0,0 +1,164 @@
|
||||||
|
#
|
||||||
|
# spec file for package iproute2
|
||||||
|
#
|
||||||
|
# Copyright (c) 2022-2023 ZhuningOS
|
||||||
|
#
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# Contents of this package is exported from git repository; please submit
|
||||||
|
# your changes via https://gitlab.suse.de/mkubecek/iproute2-source or
|
||||||
|
# gitlab@gitlab.suse.de:mkubecek/iproute2-source.git rather than to IBS.
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
%define _buildshell /bin/bash
|
||||||
|
Name: iproute2
|
||||||
|
Version: 5.14
|
||||||
|
Release: 150400.1.8
|
||||||
|
Summary: Linux network configuration utilities
|
||||||
|
License: GPL-2.0-only
|
||||||
|
Group: Productivity/Networking/Routing
|
||||||
|
URL: https://wiki.linuxfoundation.org/networking/iproute2
|
||||||
|
# Using GPL-2.0 instead of GPL-2.0+ because of tc_skbedit.h and tc/q_multiq.c
|
||||||
|
|
||||||
|
#DL-URL: https://kernel.org/pub/linux/utils/net/iproute2/
|
||||||
|
#Git-Clone: https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/
|
||||||
|
Source: https://kernel.org/pub/linux/utils/net/iproute2/%name-%version.0.tar.xz
|
||||||
|
Source2: https://kernel.org/pub/linux/utils/net/iproute2/%name-%version.0.tar.sign
|
||||||
|
Source3: patches.tar.xz
|
||||||
|
Source4: series.conf
|
||||||
|
Source5: guards
|
||||||
|
Source6: apply-patches
|
||||||
|
Source9: %name.keyring
|
||||||
|
BuildRequires: bison
|
||||||
|
BuildRequires: db-devel
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: flex
|
||||||
|
BuildRequires: libelf-devel
|
||||||
|
BuildRequires: pkgconfig >= 0.21
|
||||||
|
BuildRequires: xz
|
||||||
|
BuildRequires: pkgconfig(libmnl)
|
||||||
|
BuildRequires: pkgconfig(libselinux)
|
||||||
|
BuildRequires: pkgconfig(xtables) >= 1.4.11
|
||||||
|
Provides: %name-doc = %version
|
||||||
|
Provides: iproute = %version-%release
|
||||||
|
Provides: %name(xfrm6_raw) = %version-%release
|
||||||
|
Obsoletes: %name-doc < 4.15.0
|
||||||
|
|
||||||
|
%description
|
||||||
|
iproute2 is a collection of user-space utilities to set up networking
|
||||||
|
under Linux from the command-line. It can inspect and configure,
|
||||||
|
among other things: interface paramters, IP addresses, routing,
|
||||||
|
tunnels, bridges, packet transformations (IPsec, etc.), and Quality
|
||||||
|
of Service.
|
||||||
|
|
||||||
|
%package -n libnetlink-devel
|
||||||
|
Summary: A Higher Level Interface to the Netlink Service
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
Provides: libnetlink = %version-%release
|
||||||
|
|
||||||
|
%description -n libnetlink-devel
|
||||||
|
libnetlink provides a higher-level interface to rtnetlink(7).
|
||||||
|
New programs should use libmnl-devel instead.
|
||||||
|
|
||||||
|
%package bash-completion
|
||||||
|
Summary: Bash completion for iproute
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
Group: System/Shells
|
||||||
|
Requires: bash-completion
|
||||||
|
|
||||||
|
%description bash-completion
|
||||||
|
bash command line completion support for iproute.
|
||||||
|
|
||||||
|
%package arpd
|
||||||
|
Summary: Userspace ARP daemon
|
||||||
|
License: GPL-2.0-only
|
||||||
|
Group: Productivity/Networking/Routing
|
||||||
|
Provides: iproute2:/usr/sbin/arpd
|
||||||
|
|
||||||
|
%description arpd
|
||||||
|
The arpd daemon collects gratuitous ARP information, saving it on
|
||||||
|
local disk and feeding it to the kernel on demand to avoid redundant
|
||||||
|
broadcasting due to limited standard size (512..1024 entries,
|
||||||
|
depending on type) of the kernel ARP cache.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -qn %name-%version.0 -a 3
|
||||||
|
chmod a+rx %{SOURCE5} %{SOURCE6}
|
||||||
|
%{SOURCE5} <%{SOURCE4} | %{SOURCE6} && rm -rf patches
|
||||||
|
|
||||||
|
%build
|
||||||
|
%global _lto_cflags %_lto_cflags -ffat-lto-objects
|
||||||
|
# build with -fPIC. For details see
|
||||||
|
# https://bugzilla.novell.com/show_bug.cgi?id=388021
|
||||||
|
xt_libdir="$(pkg-config xtables --variable=xtlibdir)"
|
||||||
|
xt_cflags="$(pkg-config xtables --cflags)"
|
||||||
|
%make_build CCOPTS="-D_GNU_SOURCE %optflags -Wstrict-prototypes -Wno-error -fPIC -DXT_LIB_DIR=\\\"$xt_libdir\\\" $xt_cflags"
|
||||||
|
|
||||||
|
%install
|
||||||
|
b="%buildroot"
|
||||||
|
mkdir -p "$b/usr/bin" "$b/usr/sbin" "$b/sbin"
|
||||||
|
%make_install MODDESTDIR="$b/%_libdir/tc"
|
||||||
|
|
||||||
|
# We have m_xt instead
|
||||||
|
rm -f "$b/%_libdir/tc/m_ipt.so"
|
||||||
|
|
||||||
|
install -pm0644 "lib/libnetlink.a" "$b/%_libdir/"
|
||||||
|
chmod -x "$b/%_libdir/libnetlink.a"
|
||||||
|
install -pm0644 "include/libnetlink.h" "$b/%_includedir/"
|
||||||
|
chmod -x "$b/%_includedir/libnetlink.h"
|
||||||
|
%if 0%{?usrmerged}
|
||||||
|
ln -sf "%_sbindir/ip" "$b/%_bindir/ip"
|
||||||
|
%else
|
||||||
|
ln -s "%_sbindir/ip" "$b/sbin/"
|
||||||
|
mkdir -p "$b/bin"
|
||||||
|
ln -sf "%_sbindir/ip" "$b/bin/ip"
|
||||||
|
%endif
|
||||||
|
for BIN in lnstat nstat routef routel ss; do
|
||||||
|
ln -sf "%_sbindir/$BIN" "$b/%_bindir/$BIN"
|
||||||
|
done
|
||||||
|
rm "$b/%_sbindir/ifcfg"
|
||||||
|
mkdir -p "$b/%_docdir/%name"
|
||||||
|
cp -an README* examples/bpf "$b/%_docdir/%name/"
|
||||||
|
%fdupes %buildroot/%_prefix
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%_bindir/lnstat
|
||||||
|
%_bindir/nstat
|
||||||
|
%_bindir/routef
|
||||||
|
%_bindir/routel
|
||||||
|
%_bindir/ss
|
||||||
|
%_sbindir/*
|
||||||
|
%exclude %_sbindir/arpd
|
||||||
|
%if 0%{?usrmerged}
|
||||||
|
%_bindir/ip
|
||||||
|
%else
|
||||||
|
/sbin/*
|
||||||
|
/bin/ip
|
||||||
|
%endif
|
||||||
|
%_mandir/man7/*
|
||||||
|
%_mandir/man8/*
|
||||||
|
%exclude %_mandir/man8/arpd.8*
|
||||||
|
%dir %_sysconfdir/iproute2
|
||||||
|
%config(noreplace) %_sysconfdir/iproute2/*
|
||||||
|
%_libdir/tc/
|
||||||
|
%_datadir/tc/
|
||||||
|
%_docdir/%name/
|
||||||
|
%license COPYING
|
||||||
|
|
||||||
|
%files -n libnetlink-devel
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%_includedir/*
|
||||||
|
%_mandir/man3/libnetlink*
|
||||||
|
%_libdir/lib*
|
||||||
|
|
||||||
|
%files bash-completion
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%_datadir/bash-completion/
|
||||||
|
|
||||||
|
%files arpd
|
||||||
|
%_sbindir/arpd
|
||||||
|
%_mandir/man8/arpd.8*
|
||||||
|
|
||||||
|
%changelog
|
17
series.conf
Normal file
17
series.conf
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# generated by scripts/import-patches
|
||||||
|
|
||||||
|
# upstream 5.15
|
||||||
|
tree-wide-fix-some-typos-found-by-Lintian.patch
|
||||||
|
configure-restore-backward-compatibility.patch
|
||||||
|
man-ip-link-remove-double-of.patch
|
||||||
|
iptuntap-fix-multi-queue-flag-display.patch
|
||||||
|
tc-f_flower-fix-port-range-parsing.patch
|
||||||
|
lib-bpf_legacy-fix-bpffs-mount-when-sys-fs-bpf-exist.patch
|
||||||
|
mptcp-unbreak-JSON-endpoint-list.patch
|
||||||
|
|
||||||
|
# out of tree patches
|
||||||
|
adjust-installation-directories-for-openSUSE-SLE.patch
|
||||||
|
use-sysconf-_SC_CLK_TCK-if-HZ-undefined.patch
|
||||||
|
add-explicit-typecast-to-avoid-gcc-warning.patch
|
||||||
|
xfrm-support-displaying-transformations-used-for-Mob.patch
|
||||||
|
split-link-and-compile-steps-for-binaries.patch
|
Loading…
Add table
Reference in a new issue