Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libvirt: 6.3.0 -> 6.6.0 #99043

Merged
merged 9 commits into from Oct 4, 2020
Merged

Conversation

basvandijk
Copy link
Member

This is #98937 targeted for staging.

Motivation for this change

https://github.com/libvirt/libvirt/blob/master/NEWS.rst#v660-2020-08-02

Things done

Also upgrades python3Packages.libvirt
and patches the rpcgen tool from Apple's developer_cmds package.

  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

Also upgrades `python3Packages.libvirt`
and patches the `rpcgen` tool from Apple's `developer_cmds` package.
Comment on lines -36 to -37
patches = [
./0001-Fix-build-with-libtirpc.patch
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to reviewers: this patch is in the 6.6.0 release.

];

nativeBuildInputs = [ makeWrapper pkgconfig docutils rpcsvc-proto ]
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to reviewers: I made including rpcsvc-proto conditional on !isDarwin since it's not needed on that platform.

buildInputs = [
libxml2 gnutls perl python2 readline gettext libtasn1 libgcrypt yajl
libxslt xhtml1 perlPackages.XMLXPath curl libpcap glib dbus libtirpc
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to reviewers: libtirpc is only needed on Linux so I moved it to the optionals stdenv.isLinux section below.

@ajs124
Copy link
Member

ajs124 commented Sep 28, 2020

The reason for going to 6.6.0 instead of 6.7.0 (which has been out for nearly a month) is that 6.7 uses meson, I assume?

Copy link
Member

@TredwellGit TredwellGit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please:

  • Update http://libvirt.org/ to https://libvirt.org/ and git://libvirt.org/libvirt.git to https://gitlab.com/libvirt/libvirt.git.
  • See if it works with NIX_CFLAGS_COMPILE = "-fno-stack-protector"; removed.
  • "--with-runstatedir=/run" # TODO: remove when autoconf 1.70 is released should say 2.70.
  • See [WIP] Improvements to libvirt #85562

@basvandijk
Copy link
Member Author

@TredwellGit

Done

and git://libvirt.org/libvirt.git to https://gitlab.com/libvirt/libvirt.git.

The official repo seems to be https://libvirt.org/git/libvirt.git so I changed it to that.

  • See if it works with NIX_CFLAGS_COMPILE = "-fno-stack-protector"; removed.

I removed it and can confirm it builds without it (I did test this on master and not on staging).

  • "--with-runstatedir=/run" # TODO: remove when autoconf 1.70 is released should say 2.70.

Done.

Thanks for the reference.

@basvandijk
Copy link
Member Author

@ajs124

The reason for going to 6.6.0 instead of 6.7.0 (which has been out for nearly a month) is that 6.7 uses meson, I assume?

Indeed. I have a need for libvirt-6.6.0 because I have a server running that version and I didn't want to go to the trouble figuring out how a build with meson works.

I might look into packaging 6.7.0 after this.

@TredwellGit
Copy link
Member

The official repo seems to be https://libvirt.org/git/libvirt.git so I changed it to that.

Go to https://libvirt.org/git/ and notice how it is a mirror of https://gitlab.com/libvirt/.

Please:

That seems to be the official repository now.
@basvandijk
Copy link
Member Author

@TredwellGit there doesn't seem to be a libvirt-6.6.0 release.

I just checked and perlPackages.SysVirt (6.3.0) does build correctly against libvirt-6.6.0. Their commits also indicate that the 6.3.0 perl bindings build against 6.6.0 and 6.7.0. So I think the best course of action is to remove:

assert version == pkgs.libvirt.version; 

SysVirt-6.3.0 should build correctly against libvirt-6.6.0 and also
libvirt-6.7.0 since their were no API changes.

Also note that because of this there's no SysVirt-6.6.0 release.

So this removes the `assert version == pkgs.libvirt.version` protection.
@@ -18419,10 +18419,9 @@ let
SysVirt = buildPerlModule rec {
pname = "Sys-Virt";
version = "6.3.0";
src = assert version == pkgs.libvirt.version; fetchgit {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to reviewers: Sys-Virt-6.3.0 builds correctly with libvirt-6.6.0 (and should also build with libvirt-6.7.0) because there were no API changes in those releases. Because of this reason there are no Sys-Virt-6.6.0 or Sys-Virt-6.7.0 releases.

@basvandijk basvandijk merged commit d1e26fd into NixOS:staging Oct 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants