-
Notifications
You must be signed in to change notification settings - Fork 37.7k
build: Avoid hardcoded libfaketime dir in gitian #17409
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
Conversation
faaaeef
to
fad5403
Compare
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsNo conflicts as of last run. |
cc6b337
to
fa61c79
Compare
-BEGIN VERIFY SCRIPT- sed -i -e "s|'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1'|\"export LD_PRELOAD='/usr/\\\\\$LIB/faketime/libfaketime.so.1'\"|g" $(git grep -l 'x86_64-linux-gnu/faketime') sed -i -e 's|"amd64"|"linux64"|g' $(git grep -l '"amd64"') -END VERIFY SCRIPT-
fa61c79
to
fab9850
Compare
Code review ACK fab9850 |
Note that this requires a gbuild that includes this patch: devrandom/gitian-builder#223 |
So should this get a mention in our docs somewhere, if you've bumped the minimum required version of gitian-builder? |
I don't think we have docs somewhere that document the minimum required version of gitian. Also, gitian is not versioned, and as long as the diff is applied to your local clone of gitian, the build should succeed. |
@fanquake We don't officially support versions that are not the latest version: https://github.com/bitcoin/bitcoin/blame/8021392b825c74312173f15eb937ba6d4aec3841/contrib/gitian-build.py#L245 So I think this is ready for merge (assuming DrahtBot and other peoples build succeed) |
I think the implicit requirement is to use the latest version of gitian-builder for new releases (I mean, latest commit). This is likely not documented anywhere,but it has always been the case |
Gitian builds
|
Ok. I feel like at one point we might have specified only a minimum bound, but I can't find any record of it. Upstream devrandom/gitian-builder#223 has now been merged. |
Gitian builds
|
The two above gitian builds don't seem to match 😢 |
What do you mean they don't match? The commit hashes are different, so all builds must differ as well. |
Oh, I thought you were trying to show determinism by running gitian-builder twice on the same commit. |
I ran it on the same commit as DrahtBot and got a match for osx: (linux and windows didn't compile due to #17323 )
|
Done |
ACK fab9850, ran two -linux builds and they match
same for windows
|
Compiled windows and it matches yours as well:
(except for res.yml, of course, which is expected) Same for linux:
|
3333629 doc: Explain $LIB in LD_PRELOAD in gitian descriptors (MarcoFalke) fab9850 scripted-diff: Avoid hardcoded libfaketime dir in gitian (MarcoFalke) Pull request description: Without this gitian prints warnings for me: ``` ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. ``` ``` $ ls /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1 /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1 ``` ACKs for top commit: laanwj: ACK 3333629 Tree-SHA512: 3e7c4471b69c2ae38c29d0cc0db8b9eae0912085299d7f5ac67eeb4b6a2fdc7eb23d806eeeae0b0c2da22d6d1ba82513cab23652876b97aada9928b2c7d38e7e
The build on my arm64 with a single thread just completed:
|
3333629 doc: Explain $LIB in LD_PRELOAD in gitian descriptors (MarcoFalke) fab9850 scripted-diff: Avoid hardcoded libfaketime dir in gitian (MarcoFalke) Pull request description: Without this gitian prints warnings for me: ``` ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. ``` ``` $ ls /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1 /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1 ``` ACKs for top commit: laanwj: ACK 3333629 Tree-SHA512: 3e7c4471b69c2ae38c29d0cc0db8b9eae0912085299d7f5ac67eeb4b6a2fdc7eb23d806eeeae0b0c2da22d6d1ba82513cab23652876b97aada9928b2c7d38e7e
Yes, they will need to be fixed up |
I guess this requires a new base image?
|
Ok, it might be better to just revert this pull request and give up on getting this run on non-amd64 |
No, it isn't necessary to generate a new image.
The LXC parameters should be kept the same, there is no architecture-independent release of ubuntu 😄 |
Yes, that works, but is clumsy. At the very least the instructions should be updated to include this step. |
Well, less clumsy than waiting half an hour to generate a new base image, but sure… |
I can confirm that a symlink helps. |
Yeah, either
|
fae7530 scripted-diff: Set gitian arch back to amd64 (MarcoFalke) Pull request description: This was required to allow gitian builds on non-amd64 architecture, however, it seems to break the current builds (with lxc), see #17409 (comment) Also, the gititan builds wouldn't be deterministic across arches anyway, see #17468 So instead of wasting more time on this, revert the change and hope that guix allows to compile on non-amd64 architectures. Top commit has no ACKs. Tree-SHA512: 801e9a30ae1b0882ef45d5eb3a3cf80f3ace3b99db046069dbd95b6162119e977e3cf3134287d1ac5d09483906206acc71e1ac34d6b74dbc533d46aaf73f5cc2
3333629 doc: Explain $LIB in LD_PRELOAD in gitian descriptors (MarcoFalke) fab9850 scripted-diff: Avoid hardcoded libfaketime dir in gitian (MarcoFalke) Pull request description: Without this gitian prints warnings for me: ``` ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. ``` ``` $ ls /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1 /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1 ``` ACKs for top commit: laanwj: ACK 3333629 Tree-SHA512: 3e7c4471b69c2ae38c29d0cc0db8b9eae0912085299d7f5ac67eeb4b6a2fdc7eb23d806eeeae0b0c2da22d6d1ba82513cab23652876b97aada9928b2c7d38e7e
3333629 doc: Explain $LIB in LD_PRELOAD in gitian descriptors (MarcoFalke) fab9850 scripted-diff: Avoid hardcoded libfaketime dir in gitian (MarcoFalke) Pull request description: Without this gitian prints warnings for me: ``` ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. ``` ``` $ ls /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1 /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1 ``` ACKs for top commit: laanwj: ACK 3333629 Tree-SHA512: 3e7c4471b69c2ae38c29d0cc0db8b9eae0912085299d7f5ac67eeb4b6a2fdc7eb23d806eeeae0b0c2da22d6d1ba82513cab23652876b97aada9928b2c7d38e7e
fae7530 scripted-diff: Set gitian arch back to amd64 (MarcoFalke) Pull request description: This was required to allow gitian builds on non-amd64 architecture, however, it seems to break the current builds (with lxc), see bitcoin#17409 (comment) Also, the gititan builds wouldn't be deterministic across arches anyway, see bitcoin#17468 So instead of wasting more time on this, revert the change and hope that guix allows to compile on non-amd64 architectures. Top commit has no ACKs. Tree-SHA512: 801e9a30ae1b0882ef45d5eb3a3cf80f3ace3b99db046069dbd95b6162119e977e3cf3134287d1ac5d09483906206acc71e1ac34d6b74dbc533d46aaf73f5cc2
3333629 doc: Explain $LIB in LD_PRELOAD in gitian descriptors (MarcoFalke) fab9850 scripted-diff: Avoid hardcoded libfaketime dir in gitian (MarcoFalke) Pull request description: Without this gitian prints warnings for me: ``` ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. ``` ``` $ ls /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1 /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1 ``` ACKs for top commit: laanwj: ACK 3333629 Tree-SHA512: 3e7c4471b69c2ae38c29d0cc0db8b9eae0912085299d7f5ac67eeb4b6a2fdc7eb23d806eeeae0b0c2da22d6d1ba82513cab23652876b97aada9928b2c7d38e7e
fae7530 scripted-diff: Set gitian arch back to amd64 (MarcoFalke) Pull request description: This was required to allow gitian builds on non-amd64 architecture, however, it seems to break the current builds (with lxc), see bitcoin#17409 (comment) Also, the gititan builds wouldn't be deterministic across arches anyway, see bitcoin#17468 So instead of wasting more time on this, revert the change and hope that guix allows to compile on non-amd64 architectures. Top commit has no ACKs. Tree-SHA512: 801e9a30ae1b0882ef45d5eb3a3cf80f3ace3b99db046069dbd95b6162119e977e3cf3134287d1ac5d09483906206acc71e1ac34d6b74dbc533d46aaf73f5cc2
Without this gitian prints warnings for me: