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

rpm-ostree: 2018.5 → 2019.1 #50953

Merged
merged 2 commits into from Feb 1, 2019
Merged

rpm-ostree: 2018.5 → 2019.1 #50953

merged 2 commits into from Feb 1, 2019

Conversation

jtojnar
Copy link
Contributor

@jtojnar jtojnar commented Nov 23, 2018

Motivation for this change

Update.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • 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 nox --run "nox-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)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@jtojnar
Copy link
Contributor Author

jtojnar commented Nov 23, 2018

coreos/rpm-ostree#1683 added vendored deps. Apparently it is not enough:

cd ./rust && \
  export CARGO_TARGET_DIR=/build/rpm-ostree-2018.9/target && \
    target_subdir=/build/rpm-ostree-2018.9/target/release; \
  if test -d "${target_subdir}" && [ "$(stat -c '%u' ${target_subdir})" != "$(id -u)" ]; then echo "mismatched uids on build"; exit 1; fi && \
  /nix/store/s65vzzrmplsyjdvk3ajhc8c3sxxpdbwf-cargo-1.30.0/bin/cargo build  --release
    Updating git repository `https://github.com/jlebon/rust-systemd`
warning: spurious network error (2 tries remaining): [6] Couldn't resolve host name (Could not resolve host: github.com); class=Net (12)
warning: spurious network error (1 tries remaining): [6] Couldn't resolve host name (Could not resolve host: github.com); class=Net (12)
error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`

Caused by:
  failed to load source for a dependency on `systemd`

Caused by:
  Unable to update https://github.com/jlebon/rust-systemd?branch=pr/add-monotonic

Caused by:
  failed to clone into: /homeless-shelter/.cargo/git/db/rust-systemd-53d8a6c666c80052

Caused by:
  [6] Couldn't resolve host name (Could not resolve host: github.com); class=Net (12)
make[2]: *** [Makefile:5287: /build/rpm-ostree-2018.9/target/release/librpmostree_rust.a] Error 101
make[2]: Leaving directory '/build/rpm-ostree-2018.9'
make[1]: *** [Makefile:4237: all-recursive] Error 1
make[1]: Leaving directory '/build/rpm-ostree-2018.9'
make: *** [Makefile:1762: all] Error 2

@GrahamcOfBorg
Copy link

No attempt on x86_64-darwin (full log)

The following builds were skipped because they don't evaluate on x86_64-darwin: rpm-ostree

Partial log (click to expand)


a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.


@GrahamcOfBorg
Copy link

Failure on aarch64-linux (full log)

Attempted: rpm-ostree

Partial log (click to expand)


Caused by:
  Permission denied (os error 13)
make[2]: *** [Makefile:5287: /build/rpm-ostree-2018.9/target/release/librpmostree_rust.a] Error 101
make[2]: Leaving directory '/build/rpm-ostree-2018.9'
make[1]: *** [Makefile:4237: all-recursive] Error 1
make[1]: Leaving directory '/build/rpm-ostree-2018.9'
make: *** [Makefile:1762: all] Error 2
builder for '/nix/store/awsfy5q2br2v1a9sir79bq44qajg60k4-rpm-ostree-2018.9.drv' failed with exit code 2
error: build of '/nix/store/awsfy5q2br2v1a9sir79bq44qajg60k4-rpm-ostree-2018.9.drv' failed

@GrahamcOfBorg
Copy link

Failure on x86_64-linux (full log)

Attempted: rpm-ostree

Partial log (click to expand)


Caused by:
  Permission denied (os error 13)
make[2]: *** [Makefile:5287: /build/rpm-ostree-2018.9/target/release/librpmostree_rust.a] Error 101
make[2]: Leaving directory '/build/rpm-ostree-2018.9'
make[1]: *** [Makefile:4237: all-recursive] Error 1
make[1]: Leaving directory '/build/rpm-ostree-2018.9'
make: *** [Makefile:1762: all] Error 2
builder for '/nix/store/07gm6d9w3416qyjinhzgmj1n0rvpfwkh-rpm-ostree-2018.9.drv' failed with exit code 2
error: build of '/nix/store/07gm6d9w3416qyjinhzgmj1n0rvpfwkh-rpm-ostree-2018.9.drv' failed

@jlebon
Copy link

jlebon commented Nov 23, 2018

@GrahamcOfBorg
Copy link

No attempt on x86_64-darwin (full log)

The following builds were skipped because they don't evaluate on x86_64-darwin: rpm-ostree

Partial log (click to expand)


a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.


@GrahamcOfBorg
Copy link

Failure on x86_64-linux (full log)

Attempted: rpm-ostree

Partial log (click to expand)

./.libs/librpmostree-1.so: undefined reference to `curl_easy_strerror'
collect2: error: ld returned 1 exit status
linking of temporary binary failed: Command '[u'/nix/store/n2hjbpkf4c0m48945ivxs3lmsczzw2rg-bash-4.4-p23/bin/bash', u'./libtool', u'--mode=link', u'--tag=CC', u'--silent', 'gcc', u'-o', u'/build/rpm-ostree-2018.9/tmp-introspect_SAMcp/RpmOstree-1.0', u'-export-dynamic', '-g', '-O2', u'/build/rpm-ostree-2018.9/tmp-introspect_SAMcp/RpmOstree-1.0.o', '-L.', 'librpmostree-1.la', u'-L/nix/store/9vfvinsf2blx98nqxhxgs4csna3v88jn-glib-2.56.0/lib', u'-lgio-2.0', u'-lgobject-2.0', u'-Wl,--export-dynamic', u'-lgmodule-2.0', u'-pthread', u'-lglib-2.0']' returned non-zero exit status 1
make[2]: *** [/nix/store/24bczq311y6c3msd3bxidlcb07l56wdz-gobject-introspection-1.56.0/share/gobject-introspection-1.0/Makefile.introspection:160: RpmOstree-1.0.gir] Error 1
make[2]: Leaving directory '/build/rpm-ostree-2018.9'
make[1]: *** [Makefile:4237: all-recursive] Error 1
make[1]: Leaving directory '/build/rpm-ostree-2018.9'
make: *** [Makefile:1762: all] Error 2
builder for '/nix/store/zmrb6axn5ki8xyqszkm381pyfrrw3c44-rpm-ostree-2018.9.drv' failed with exit code 2
error: build of '/nix/store/zmrb6axn5ki8xyqszkm381pyfrrw3c44-rpm-ostree-2018.9.drv' failed

@jtojnar
Copy link
Contributor Author

jtojnar commented Nov 23, 2018

Thanks. Now some linking error.

@GrahamcOfBorg
Copy link

Failure on aarch64-linux (full log)

Attempted: rpm-ostree

Partial log (click to expand)

./.libs/librpmostree-1.so: undefined reference to `curl_easy_strerror'
collect2: error: ld returned 1 exit status
linking of temporary binary failed: Command '[u'/nix/store/n1kfdl37qpzh3xn6klbym1ay6xpxvmw1-bash-4.4-p23/bin/bash', u'./libtool', u'--mode=link', u'--tag=CC', u'--silent', 'gcc', u'-o', u'/build/rpm-ostree-2018.9/tmp-introspectKaicdH/RpmOstree-1.0', u'-export-dynamic', '-g', '-O2', u'/build/rpm-ostree-2018.9/tmp-introspectKaicdH/RpmOstree-1.0.o', '-L.', 'librpmostree-1.la', u'-L/nix/store/cy7z69bxi3csm790hmxpilihac6a4v2k-glib-2.56.0/lib', u'-lgio-2.0', u'-lgobject-2.0', u'-Wl,--export-dynamic', u'-lgmodule-2.0', u'-pthread', u'-lglib-2.0']' returned non-zero exit status 1
make[2]: *** [/nix/store/j7zrbhpy1hizag3xhbr61qkglk6bwgjp-gobject-introspection-1.56.0/share/gobject-introspection-1.0/Makefile.introspection:160: RpmOstree-1.0.gir] Error 1
make[2]: Leaving directory '/build/rpm-ostree-2018.9'
make[1]: *** [Makefile:4237: all-recursive] Error 1
make[1]: Leaving directory '/build/rpm-ostree-2018.9'
make: *** [Makefile:1762: all] Error 2
builder for '/nix/store/1jz5mvs6lpapzpdrilaksygnx5aza9f5-rpm-ostree-2018.9.drv' failed with exit code 2
error: build of '/nix/store/1jz5mvs6lpapzpdrilaksygnx5aza9f5-rpm-ostree-2018.9.drv' failed

@jtojnar
Copy link
Contributor Author

jtojnar commented Dec 24, 2018

2018.10 requires an unreleased ostree patch for coreos/rpm-ostree#1660.

The linking issue persists, @jlebon:

*** Warning: Linking the shared library librpmostree-1.la against the
*** static library /build/rpm-ostree-2018.10/target/release/librpmostree_rust.a is not portable!
  CC       src/daemon/librpmostreed_la-rpmostreed-daemon.lo
  CC       src/daemon/librpmostreed_la-rpmostreed-utils.lo
  CC       src/daemon/librpmostreed_la-rpmostreed-sysroot.lo
  CC       src/daemon/librpmostreed_la-rpmostree-sysroot-core.lo
  CC       src/daemon/librpmostreed_la-rpmostree-sysroot-upgrader.lo
  CC       src/daemon/librpmostreed_la-rpmostreed-errors.lo
  CC       src/daemon/librpmostreed_la-rpmostreed-deployment-utils.lo
  CC       src/daemon/librpmostreed_la-rpmostreed-transaction.lo
  CC       src/daemon/librpmostreed_la-rpmostreed-transaction-monitor.lo
  CC       src/daemon/librpmostreed_la-rpmostreed-transaction-types.lo
  CC       src/daemon/librpmostreed_la-rpmostreed-transaction-livefs.lo
  CC       src/daemon/librpmostreed_la-rpmostree-package-variants.lo
  CC       src/daemon/librpmostreed_la-rpmostreed-os.lo
  CC       src/daemon/librpmostreed_la-rpmostreed-os-experimental.lo
  CC       librpmostreed_la-rpm-ostreed-generated.lo
  CCLD     librpmostreed.la
ar: `u' modifier ignored since `D' is the default (see `U')
  CCLD     rpm-ostree
  CC       tests/common/libtest_la-libtest.lo
  CCLD     libtest.la
ar: `u' modifier ignored since `D' is the default (see `U')
sed -e 's,[@]libexecdir[@],/nix/store/lifpyp42l64vjknckk0pjp4h7vk68g8d-rpm-ostree-2018.10/libexec,g' -e 's,[@]primaryname[@],rpm-ostree,g' -e 's,[@]bindir[@],/nix/store/lifpyp42l64vjknckk0pjp4h7vk68g8d-rpm-ostree-2018.10/bin,g'  src/daemon/rpm-ostreed-stub.sh.in > rpm-ostreed.tmp && mv rpm-ostreed.tmp rpm-ostreed
  GEN      rpm-ostree.1
  GEN      rpm-ostreed.conf.5
  GEN      rpm-ostreed-automatic.service.8
  GISCAN   RpmOstree-1.0.gir
/nix/store/mhrgz6k0rhgfmv9gfbwin87whkr1s5vd-glib-2.58.1-dev/include/glib-2.0/gobject/gobject.h:725: syntax error, unexpected ')' in '    ((__typeof__(new_object)) (g_object_ref) (new_object));' at ')'
/nix/store/jdlb06c0kp6sms277xcclfr3gdl8pb9r-binutils-2.30/bin/ld: warning: libcurl.so.4, needed by ./.libs/librpmostree-1.so, not found (try using -rpath or -rpath-link)
/nix/store/5543l73ydvvhkzwsbdickzmwlibbxav7-librepo-1.9.2/lib/librepo.so: undefined reference to `curl_multi_info_read'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_unescape'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_reset'
./.libs/librpmostree-1.so: undefined reference to `curl_free'
./.libs/librpmostree-1.so: undefined reference to `curl_formadd'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_escape'
./.libs/librpmostree-1.so: undefined reference to `curl_slist_append'
/nix/store/5543l73ydvvhkzwsbdickzmwlibbxav7-librepo-1.9.2/lib/librepo.so: undefined reference to `curl_multi_add_handle'
./.libs/librpmostree-1.so: undefined reference to `curl_share_strerror'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_perform'
/nix/store/5543l73ydvvhkzwsbdickzmwlibbxav7-librepo-1.9.2/lib/librepo.so: undefined reference to `curl_multi_perform'
/nix/store/5543l73ydvvhkzwsbdickzmwlibbxav7-librepo-1.9.2/lib/librepo.so: undefined reference to `curl_multi_cleanup'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_init'
./.libs/librpmostree-1.so: undefined reference to `curl_formfree'
./.libs/librpmostree-1.so: undefined reference to `curl_global_init'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_cleanup'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_send'
/nix/store/5543l73ydvvhkzwsbdickzmwlibbxav7-librepo-1.9.2/lib/librepo.so: undefined reference to `curl_multi_timeout'
/nix/store/5543l73ydvvhkzwsbdickzmwlibbxav7-librepo-1.9.2/lib/librepo.so: undefined reference to `curl_multi_remove_handle'
./.libs/librpmostree-1.so: undefined reference to `curl_multi_strerror'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_pause'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_setopt'
/nix/store/5543l73ydvvhkzwsbdickzmwlibbxav7-librepo-1.9.2/lib/librepo.so: undefined reference to `curl_version'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_recv'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_getinfo'
/nix/store/5543l73ydvvhkzwsbdickzmwlibbxav7-librepo-1.9.2/lib/librepo.so: undefined reference to `curl_easy_duphandle'
./.libs/librpmostree-1.so: undefined reference to `curl_slist_free_all'
/nix/store/5543l73ydvvhkzwsbdickzmwlibbxav7-librepo-1.9.2/lib/librepo.so: undefined reference to `curl_multi_init'
/nix/store/5543l73ydvvhkzwsbdickzmwlibbxav7-librepo-1.9.2/lib/librepo.so: undefined reference to `curl_multi_fdset'
./.libs/librpmostree-1.so: undefined reference to `curl_easy_strerror'
collect2: error: ld returned 1 exit status
linking of temporary binary failed: Command '['/nix/store/can00lfiynqkbsdkkmgp6qg8p8w92cxa-bash-4.4-p23/bin/bash', './libtool', '--mode=link', '--tag=CC', '--silent', 'gcc', '-o', '/build/rpm-ostree-2018.10/tmp-introspectld1du685/RpmOstree-1.0', '-export-dynamic', '-g', '-O2', '/build/rpm-ostree-2018.10/tmp-introspectld1du685/RpmOstree-1.0.o', '-L.', 'librpmostree-1.la', '-L/nix/store/1m73xy2036f3lpyizgmsclab9si27lxj-glib-2.58.1/lib', '-lgio-2.0', '-lgobject-2.0', '-Wl,--export-dynamic', '-lgmodule-2.0', '-pthread', '-lglib-2.0']' returned non-zero exit status 1.
make[2]: *** [/nix/store/a1a7nkjs0962p14cr1fnxblj6nhpj7z8-gobject-introspection-1.58.1-dev/share/gobject-introspection-1.0/Makefile.introspection:156: RpmOstree-1.0.gir] Error 1
make[2]: Leaving directory '/build/rpm-ostree-2018.10'
make[1]: *** [Makefile:4270: all-recursive] Error 1
make[1]: Leaving directory '/build/rpm-ostree-2018.10'
make: *** [Makefile:1778: all] Error 2

@jtojnar jtojnar changed the title rpm-ostree: 2018.5 → 2018.9 rpm-ostree: 2018.5 → 2018.10 Dec 24, 2018
@jlebon
Copy link

jlebon commented Jan 7, 2019

Hmm, looks like this needs libcurl in the buildroot? We now directly use libcurl in rpm-ostree, though note that rpm-ostree previously already pulled it indirectly through libdnf -> librepo -> libcurl.

2018.10 requires an unreleased ostree patch for coreos/rpm-ostree#1660.

Yeah, sorry about that. In Fedora, I did https://src.fedoraproject.org/rpms/rpm-ostree/blob/97346cf78023c35149621246a419921b22b4824f/f/0001-Revert-compose-Print-devino-cache-hits-on-commit.patch. Will make sure we release a new OSTree soon.

@jtojnar
Copy link
Contributor Author

jtojnar commented Jan 8, 2019

@jlebon The issue only occurs when building introspection. Apparently g-i’s dumper.py also needs to link the temporary binary against curl but the flags are only passed to PKGDEP_RPMOSTREE_RS, not to RpmOstree_1_0_gir_CFLAGS. I fixed it with the following simple patch:

--- a/configure.ac
+++ b/configure.ac
@@ -103,7 +103,7 @@
 				     ostree-1 >= 2018.9
 				     libsystemd
 				     polkit-gobject-1
-				     rpm librepo libsolv
+				     rpm librepo libsolv libcurl
 				     libarchive])
 
 dnl -ldl: https://github.com/ostreedev/ostree/commit/1f832597fc83fda6cb8daf48c4495a9e1590774c

@jtojnar jtojnar changed the title rpm-ostree: 2018.5 → 2018.10 rpm-ostree: 2018.5 → 2019.1 Feb 1, 2019
@jtojnar jtojnar merged commit de708cf into NixOS:master Feb 1, 2019
@jtojnar jtojnar deleted the rpm-ostree branch March 5, 2019 23:15
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

3 participants