trofi / nix-guix-gentoo

Gentoo overlay for nix and guix functional package managers.
107 stars 9 forks source link

rapidcheck build error #35

Closed FyrN22 closed 1 year ago

FyrN22 commented 1 year ago

info.txt log.txt

trofi commented 1 year ago

Yeah, it's a gcc-13 incompatibility:

/var/tmp/portage/dev-cpp/rapidcheck-0_pre20230113/work/rapidcheck-0_pre20230113/include/rapidcheck/detail/Utility.h:6:1: note: 'uint64_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
    5 | #include <limits>
  +++ |+#include <cstdint>
    6 |

I pushed rapidcheck-0_pre20230416 yesterday as https://github.com/trofi/nix-guix-gentoo/commit/64edf8fe00c3fb3bcfc53aeb9287a4d3fb7cc882. If you sync the overlay updates does it work for you?

FyrN22 commented 1 year ago

I synced the overlay, and now it fails to emerge dev-cpp/rapidcheck:

ebuild.sh, line 136: Called src_compile

trofi commented 1 year ago

Can you post full log output? Looks like it's missing the actual error message and only prints the backtrace of error printer itself.

FyrN22 commented 1 year ago

log.txt

trofi commented 1 year ago

It is still trying to install an old version for you:

/var/tmp/portage/dev-cpp/rapidcheck-0_pre20230113/work/rapidcheck-0_pre20230113/include/rapidcheck/detail/Utility.h:6:1: note: 'uint64_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
    5 | #include <limits>
  +++ |+#include <cstdint>
    6 |

Double-check if your overlay checkout has up-to-date file versions that match https://github.com/trofi/nix-guix-gentoo/tree/master/dev-cpp/rapidcheck

FyrN22 commented 1 year ago

i have rapidcheck-0_pre20230113.ebuild, but not rapidcheck-0_pre20230416.ebuild, should i just copy the rapidcheck-0_pre20230416.ebuild to /var/db/repos/nix-guix/dev-cpp/rapidcheck/ ?

trofi commented 1 year ago

No, normally you would sync the overlay with emerge --sync to pull the updates (depending on how you installed it). That should copy all files automatically.

FyrN22 commented 1 year ago

i did emerge --sync, and this repo returned with the code = 0

trofi commented 1 year ago

Did it update the files? If not try to add an entry in /etc/portage/repos.conf like https://github.com/trofi/nix-guix-gentoo/#enabling-the-overlay specifies. That should be enough for emerge --sync to work.

FyrN22 commented 1 year ago

i added that already to the repos.conf, i also tired the eselect-repository, but still fails the build on rapidcheck

trofi commented 1 year ago

If you do # emaint sync -r nix-guix what is the full output?

FyrN22 commented 1 year ago

emaint sync -r nix-guix

Syncing repository 'nix-guix' into '/var/db/repos/nix-guix'... /usr/bin/git fetch origin --depth 1 remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 /usr/bin/git reset --merge refs/remotes/origin/master === Sync completed for nix-guix

Action: sync for repo: nix-guix, returned code = 0

trofi commented 1 year ago

Looks good. How about $ cd /var/db/repos/nix-guix && git log?

FyrN22 commented 1 year ago

commit d00abbc44841e876d5db47e60ad408cb1d1c322b (grafted, HEAD -> master, origin/master, origin/HEAD) Author: Repository mirror & CI repomirrorci@gentoo.org Date: Mon Apr 24 22:19:03 2023 +0000

trofi commented 1 year ago

Aha, you are using the gentoo's stale mirror. Double-check your repos.conf for a git repository path to point at https://github.com/trofi/nix-guix-gentoo.git

FyrN22 commented 1 year ago

i have the nix-guix.conf inside the repos.conf.

trofi commented 1 year ago

Can you post it's full content here?

FyrN22 commented 1 year ago

This is all i have inside the repos.conf eselect-repo.txt gentoo.txt nix-guix.txt

trofi commented 1 year ago

Hm, that looks correct. Though your emerge --info from the first comment contains the other repo link:

nix-guix
    location: /var/db/repos/nix-guix
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/nix-guix.git
    masters: gentoo
    volatile: False

Does your emerge --info still refer https://github.com/gentoo-mirror/nix-guix.git?

FyrN22 commented 1 year ago

i switched it to the right repo link after putting the emerge --info, so its refering to https://github.com/trofi/nix-guix-gentoo.git now

trofi commented 1 year ago

Aha. I did not quite get after which comment you have fixed the link: before or after you tried to sync.

Does emerge --sync pull from the correct repository now?

FyrN22 commented 1 year ago

No, its still the old one.

trofi commented 1 year ago

Aha. I wonder if emerge --sync does not update git repository paths after it was checked out once. What path do you see in cat /var/db/repos/nix-guix/.git/config?

If it's a stale on try to nuke it and refetch:

# rm -rfv /var/db/repos/nix-guix && emerge --sync
trofi commented 1 year ago

Meanwhile I filed https://bugs.gentoo.org/905869 to consider fixing emerge --sync's behavior to update git repository link.

FyrN22 commented 1 year ago

it was the stale, but now rapid build works but nix fails the build nixlog.txt

trofi commented 1 year ago

Yay, progress!

make: *** No rule to make target '/usr/bin/nix', needed by 'doc/manual/src/command-ref/new-cli'.  Stop.
make: *** Waiting for unfinished jobs....

I think it's a deficiency in DESTDIR patch. I'll try to reproduce it by uninstalling nix locally. I think it happens to work for me only because I had older version around.

trofi commented 1 year ago

Reproduced locally and pushed possible fix: https://github.com/trofi/nix-guix-gentoo/commit/35e42f68df621842c7cba5914dbfe1ed448bf2cd . Please try to sync the repo again and give it a try.

FyrN22 commented 1 year ago

It works now, thanks for helping!

trofi commented 1 year ago

Thank you for the report!