Merge pull request #337006 from adamcstephens/ovs/3.4.0

openvswitch: 3.3.0 -> 3.4.0, drop lts
This commit is contained in:
Adam C. Stephens 2024-08-25 09:55:15 -04:00 committed by GitHub
commit 8b567e538a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 159 additions and 208 deletions

View File

@ -1,168 +0,0 @@
{
version,
hash,
updateScriptArgs ? "",
}:
{
lib,
stdenv,
fetchurl,
autoconf,
automake,
installShellFiles,
iproute2,
kernel ? null,
libcap_ng,
libtool,
openssl,
perl,
pkg-config,
procps,
python3,
tcpdump,
sphinxHook,
util-linux,
which,
writeScript,
makeWrapper,
withDPDK ? false,
dpdk,
numactl,
libpcap,
}:
let
_kernel = kernel;
in
stdenv.mkDerivation rec {
pname = if withDPDK then "openvswitch-dpdk" else "openvswitch";
inherit version;
kernel = lib.optional (_kernel != null) _kernel.dev;
src = fetchurl {
url = "https://www.openvswitch.org/releases/openvswitch-${version}.tar.gz";
inherit hash;
};
outputs = [
"out"
"man"
];
patches = [
# 8: vsctl-bashcomp - argument completion FAILED (completion.at:664)
./patches/disable-bash-arg-completion-test.patch
# https://github.com/openvswitch/ovs/commit/9185793e75435d890f18d391eaaeab0ade6f1415
./patches/fix-python313.patch
];
nativeBuildInputs = [
autoconf
automake
installShellFiles
libtool
pkg-config
sphinxHook
makeWrapper
];
sphinxBuilders = [ "man" ];
sphinxRoot = "./Documentation";
buildInputs =
[
libcap_ng
openssl
perl
procps
python3
util-linux
which
]
++ (lib.optionals withDPDK [
dpdk
numactl
libpcap
]);
preConfigure = "./boot.sh";
configureFlags =
[
"--localstatedir=/var"
"--sharedstatedir=/var"
"--sbindir=$(out)/bin"
]
++ (lib.optionals (_kernel != null) [ "--with-linux" ])
++ (lib.optionals withDPDK [ "--with-dpdk=shared" ]);
# Leave /var out of this!
installFlags = [
"LOGDIR=$(TMPDIR)/dummy"
"RUNDIR=$(TMPDIR)/dummy"
"PKIDIR=$(TMPDIR)/dummy"
];
enableParallelBuilding = true;
postInstall = ''
installShellCompletion --bash utilities/ovs-appctl-bashcomp.bash
installShellCompletion --bash utilities/ovs-vsctl-bashcomp.bash
wrapProgram $out/bin/ovs-l3ping \
--prefix PYTHONPATH : $out/share/openvswitch/python
wrapProgram $out/bin/ovs-tcpdump \
--prefix PATH : ${lib.makeBinPath [ tcpdump ]} \
--prefix PYTHONPATH : $out/share/openvswitch/python
'';
doCheck = true;
preCheck = ''
export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
export RECHECK=yes
patchShebangs tests/
'';
nativeCheckInputs =
[ iproute2 ]
++ (with python3.pkgs; [
netaddr
pyparsing
pytest
setuptools
]);
passthru.updateScript = writeScript "ovs-update.nu" ''
${./update.nu} ${updateScriptArgs}
'';
meta = with lib; {
changelog = "https://www.openvswitch.org/releases/NEWS-${version}.txt";
description = "Multilayer virtual switch";
longDescription = ''
Open vSwitch is a production quality, multilayer virtual switch
licensed under the open source Apache 2.0 license. It is
designed to enable massive network automation through
programmatic extension, while still supporting standard
management interfaces and protocols (e.g. NetFlow, sFlow, SPAN,
RSPAN, CLI, LACP, 802.1ag). In addition, it is designed to
support distribution across multiple physical servers similar
to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.
'';
homepage = "https://www.openvswitch.org/";
license = licenses.asl20;
maintainers = with maintainers; [
adamcstephens
kmcopper
netixx
xddxdd
];
platforms = platforms.linux;
};
}

View File

@ -1,5 +0,0 @@
import ./generic.nix {
version = "2.17.9";
hash = "sha256-4bP6RyZ2YmhT8i1j+VnlrQYeG/V+G71ETQ7Yj5R++LE=";
updateScriptArgs = "--lts=true --regex '2\.17.*'";
}

View File

@ -1,4 +1,159 @@
import ./generic.nix {
version = "3.3.0";
hash = "sha256-Gvy4H7lHwL6IWGaZXWwIjmHfQ1YRFXiSBqKzP3vBsF8=";
{
lib,
stdenv,
fetchFromGitHub,
autoconf,
automake,
installShellFiles,
iproute2,
kernel ? null,
libcap_ng,
libtool,
nix-update-script,
openssl,
perl,
pkg-config,
procps,
python3,
tcpdump,
sphinxHook,
util-linux,
which,
makeWrapper,
withDPDK ? false,
dpdk,
numactl,
libpcap,
}:
let
_kernel = kernel;
in
stdenv.mkDerivation rec {
pname = if withDPDK then "openvswitch-dpdk" else "openvswitch";
version = "3.4.0";
kernel = lib.optional (_kernel != null) _kernel.dev;
src = fetchFromGitHub {
owner = "openvswitch";
repo = "ovs";
rev = "refs/tags/v${version}";
hash = "sha256-oe6RnSEaK/mFPzTLfsyyd7wijKbv2/tlNUlXZYrb+ko=";
};
outputs = [
"out"
"man"
];
patches = [
# 8: vsctl-bashcomp - argument completion FAILED (completion.at:664)
./patches/disable-bash-arg-completion-test.patch
];
nativeBuildInputs = [
autoconf
automake
installShellFiles
libtool
pkg-config
sphinxHook
makeWrapper
];
sphinxBuilders = [ "man" ];
sphinxRoot = "./Documentation";
buildInputs =
[
libcap_ng
openssl
perl
procps
python3
util-linux
which
]
++ (lib.optionals withDPDK [
dpdk
numactl
libpcap
]);
preConfigure = "./boot.sh";
configureFlags =
[
"--localstatedir=/var"
"--sharedstatedir=/var"
"--sbindir=$(out)/bin"
]
++ (lib.optionals (_kernel != null) [ "--with-linux" ])
++ (lib.optionals withDPDK [ "--with-dpdk=shared" ]);
# Leave /var out of this!
installFlags = [
"LOGDIR=$(TMPDIR)/dummy"
"RUNDIR=$(TMPDIR)/dummy"
"PKIDIR=$(TMPDIR)/dummy"
];
enableParallelBuilding = true;
postInstall = ''
installShellCompletion --bash utilities/ovs-appctl-bashcomp.bash
installShellCompletion --bash utilities/ovs-vsctl-bashcomp.bash
wrapProgram $out/bin/ovs-l3ping \
--prefix PYTHONPATH : $out/share/openvswitch/python
wrapProgram $out/bin/ovs-tcpdump \
--prefix PATH : ${lib.makeBinPath [ tcpdump ]} \
--prefix PYTHONPATH : $out/share/openvswitch/python
'';
doCheck = true;
preCheck = ''
export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
export RECHECK=yes
patchShebangs tests/
'';
nativeCheckInputs =
[ iproute2 ]
++ (with python3.pkgs; [
netaddr
pyparsing
pytest
setuptools
]);
passthru.updateScript = nix-update-script { };
meta = with lib; {
changelog = "https://www.openvswitch.org/releases/NEWS-${version}.txt";
description = "Multilayer virtual switch";
longDescription = ''
Open vSwitch is a production quality, multilayer virtual switch
licensed under the open source Apache 2.0 license. It is
designed to enable massive network automation through
programmatic extension, while still supporting standard
management interfaces and protocols (e.g. NetFlow, sFlow, SPAN,
RSPAN, CLI, LACP, 802.1ag). In addition, it is designed to
support distribution across multiple physical servers similar
to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.
'';
homepage = "https://www.openvswitch.org/";
license = licenses.asl20;
maintainers = with maintainers; [
adamcstephens
kmcopper
netixx
xddxdd
];
platforms = platforms.linux;
};
}

View File

@ -1,12 +0,0 @@
diff --git a/tests/vlog.at b/tests/vlog.at
index 785014956e7..efe91479a63 100644
--- a/tests/vlog.at
+++ b/tests/vlog.at
@@ -8,6 +8,7 @@ AT_CHECK([$PYTHON3 $srcdir/test-vlog.py --log-file log_file \
AT_CHECK([sed -e 's/.*-.*-.*T..:..:..Z |//' \
-e 's/File ".*", line [[0-9]][[0-9]]*,/File <name>, line <number>,/' \
+-e '/\^\+/d' \
stderr_log], [0], [dnl
0 | module_0 | EMER | emergency
1 | module_0 | ERR | error

View File

@ -1,19 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i nu -p nushell common-updater-scripts
def main [--lts = false, --regex: string] {
let tags = list-git-tags --url=https://github.com/openvswitch/ovs | lines | sort --natural | str replace v ''
let latest_tag = if $regex == null { $tags } else { $tags | find --regex $regex } | last
let current_version = nix eval --raw -f default.nix $"openvswitch(if $lts {"-lts"}).version" | str trim
if $latest_tag != $current_version {
if $lts {
update-source-version openvswitch-lts $latest_tag $"--file=(pwd)/pkgs/by-name/op/openvswitch/lts.nix"
} else {
update-source-version openvswitch $latest_tag $"--file=(pwd)/pkgs/by-name/op/openvswitch/default.nix"
}
}
{"lts?": $lts, before: $current_version, after: $latest_tag}
}

View File

@ -1126,6 +1126,7 @@ mapAliases ({
onlyoffice-bin_latest = onlyoffice-bin; # Added 2024-07-03
onlyoffice-bin_7_2 = throw "onlyoffice-bin_7_2 has been removed. Please use the latest version available under onlyoffice-bin"; # Added 2024-07-03
onlyoffice-bin_7_5 = throw "onlyoffice-bin_7_5 has been removed. Please use the latest version available under onlyoffice-bin"; # Added 2024-07-03
openvswitch-lts = throw "openvswitch-lts has been removed. Please use the latest version available under openvswitch"; # Added 2024-08-24
oroborus = throw "oroborus was removed, because it was abandoned years ago."; #Added 2023-09-10
osxfuse = macfuse-stubs; # Added 2021-03-20
ovn-lts = throw "ovn-lts has been removed. Please use the latest version available under ovn"; # Added 2024-08-24

View File

@ -11110,7 +11110,6 @@ with pkgs;
opentelemetry-collector = callPackage ../tools/misc/opentelemetry-collector { };
opentelemetry-collector-contrib = callPackage ../tools/misc/opentelemetry-collector/contrib.nix { };
openvswitch-lts = callPackage ../by-name/op/openvswitch/lts.nix { };
openvswitch-dpdk = callPackage ../by-name/op/openvswitch/package.nix { withDPDK = true; };
optifinePackages = callPackage ../tools/games/minecraft/optifine { };