Host: 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r319166 Build log: -- ===> Building for rust-1.17.0 gmake[1]: Entering directory '/usr/ports/lang/rust/work/rustc-1.17.0-src' "/usr/local/bin/python2.7" /usr/ports/lang/rust/work/rustc-1.17.0-src/src/bootstrap/bootstrap.py build -v extracting /usr/ports/lang/rust/work/rustc-1.17.0-src/build/cache/2017-03-11/rust-std-1.16.0-x86_64-unknown-freebsd.tar.gz extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/manifest.in extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libtest_shim-e9e644ac6099aad3.rlib extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_back-1db5ffe5d3d44f23.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_resolve-f2ed5fd112bf2c5f.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libproc_macro_plugin-135c3af400ad7590.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libserialize-3b62affddcd5165a.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_bitflags-89f51502140784f1.rlib extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libgraphviz-13e8a749ba2b16fe.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/liblog-71ce45abe80c2749.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_const_eval-3584ee68f734e0dc.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libsyntax-ca75c91abeb76878.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libstd-aef6cb139bd07bdc.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_data_structures-fd2a8f7669a977e8.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_errors-98749a4cb4b35bb4.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/liballoc_system-ac1619718cf415a9.rlib extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_i128-6da7b93eb298e3d3.rlib extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/liblog-71ce45abe80c2749.rlib extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libgetopts-f5b3efa3324ef4dd.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/liblibc-dcdd86b1ff8e9e88.rlib extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_incremental-0d01559d63257f9f.so extracting rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/GNUSparseFile.0/librustc_llvm-74a1be1110b5d4d0.so Traceback (most recent call last): File "/usr/ports/lang/rust/work/rustc-1.17.0-src/src/bootstrap/bootstrap.py", line 614, in <module> main() File "/usr/ports/lang/rust/work/rustc-1.17.0-src/src/bootstrap/bootstrap.py", line 602, in main bootstrap() File "/usr/ports/lang/rust/work/rustc-1.17.0-src/src/bootstrap/bootstrap.py", line 585, in bootstrap rb.download_stage0() File "/usr/ports/lang/rust/work/rustc-1.17.0-src/src/bootstrap/bootstrap.py", line 182, in download_stage0 verbose=self.verbose) File "/usr/ports/lang/rust/work/rustc-1.17.0-src/src/bootstrap/bootstrap.py", line 126, in unpack shutil.move(tp, fp) File "/usr/local/lib/python2.7/shutil.py", line 302, in move copy2(src, real_dst) File "/usr/local/lib/python2.7/shutil.py", line 130, in copy2 copyfile(src, dst) File "/usr/local/lib/python2.7/shutil.py", line 83, in copyfile with open(dst, 'wb') as fdst: IOError: [Errno 2] No such file or directory: '/usr/ports/lang/rust/work/rustc-1.17.0-src/build/x86_64-unknown-freebsd/stage0/lib/rustlib/x86_64-unknown-freebsd/lib/GNUSparseFile.0/librustc_llvm-74a1be1110b5d4d0.so' gmake[1]: *** [Makefile:24: all] Error 1 gmake[1]: Leaving directory '/usr/ports/lang/rust/work/rustc-1.17.0-src' ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 Stop. make: stopped in /usr/ports/lang/rust --
update: OSVERION=1200031 % file -s /bin/sh /bin/sh: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 12.0 (1200031), FreeBSD-style, stripped
Looks like some path is not correct, directory GNUSparseFile.0 placed in another location: % find /usr/ports/lang/rust/work/ -type d -name GNUSparseFile.0 /usr/ports/lang/rust/work/rustc-1.17.0-src/build/x86_64-unknown-freebsd/stage0/rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/GNUSparseFile.0 % ls -la /usr/ports/lang/rust/work/rustc-1.17.0-src/build/x86_64-unknown-freebsd/stage0/rust-std-1.16.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/GNUSparseFile.0 total 4354 drwxr-xr-x 2 root 999 3 Jun 7 17:25 . drwxr-xr-x 3 root 999 3 Jun 7 17:25 .. -rw-r--r-- 1 999 999 8009022 Jun 7 17:24 libstd-aef6cb139bd07bdc.rlib
Trying to reproduce. You don't happen to have a poudriere log?
Created attachment 183432 [details] poudriere log for rust on FreeBSD 12.0 poudriere log for rust on FreeBSD 12.0
(In reply to Thomas Zander from comment #3) Log uploaded. How to reproduce: 1) Have FreeBSD 12.0-HEAD/CURRENT 2) compile object base files 3) create poudriere jail: poudriere jail -c -v 12.0-CURRENT -a amd64 -j f12 -m src=/usr/src 4) Build: poudriere testport -i -j f12 -o lang/rust
Build should work again on HEAD. Could you double check whether this problem still exists after r443485 of the ports tree?
updated to r443487. I see rust bumped to 1.18.0. It's build successful on FreeBSD 11.0, but on 12-current still broken. -- ===> Building for rust-1.18.0 gmake[1]: Entering directory '/usr/ports/lang/rust/work/rustc-1.18.0-src' "/usr/local/bin/python2.7" /usr/ports/lang/rust/work/rustc-1.18.0-src/src/bootstrap/bootstrap.py build -v extracting /usr/ports/lang/rust/work/rustc-1.18.0-src/build/cache/2017-04-27/rust-std-1.17.0-x86_64-unknown-freebsd.tar.gz extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/manifest.in extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_const_math-d718ba439ded034a.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_passes-7f3820b276c2a092.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/liballoc-ca07b617414dd0fa.rlib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libsyntax_pos-8bc3103ab44fdd9d.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_resolve-e27e3277d8c7217e.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libstd_unicode-cfbd6648f7db2ee5.rlib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libfmt_macros-2e00b27375e33865.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_errors-8e8e2ef008e368ae.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_llvm-3aedc27cea629d08.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libcollections-532a3dbf317eff86.rlib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libterm-fa872424129019f5.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustdoc-886ab7b186b92542.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_incremental-b4ce2bea1d595ef3.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libpanic_abort-6800222f9a60165a.rlib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_const_eval-429e7a643b042de5.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_plugin-503f1facc22c55d4.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_typeck-ad206c419aaafe68.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libserialize-7af78762942a476f.rlib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/liblog-1e620df7ce600e56.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libcore-687e6a964d22cbb4.rlib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/liballoc_system-68e33a366943aef4.rlib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_bitflags-911366f3f3b45b60.rlib extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libflate-476b0d69133eba41.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/librustc_trans-8524c596fdbfd5aa.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libserialize-7af78762942a476f.so extracting rust-std-1.17.0-x86_64-unknown-freebsd/rust-std-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/GNUSparseFile.0/libstd-f4594d3e53dcb114.rlib Traceback (most recent call last): File "/usr/ports/lang/rust/work/rustc-1.18.0-src/src/bootstrap/bootstrap.py", line 611, in <module> main() File "/usr/ports/lang/rust/work/rustc-1.18.0-src/src/bootstrap/bootstrap.py", line 597, in main bootstrap() File "/usr/ports/lang/rust/work/rustc-1.18.0-src/src/bootstrap/bootstrap.py", line 579, in bootstrap rb.download_stage0() File "/usr/ports/lang/rust/work/rustc-1.18.0-src/src/bootstrap/bootstrap.py", line 180, in download_stage0 verbose=self.verbose) File "/usr/ports/lang/rust/work/rustc-1.18.0-src/src/bootstrap/bootstrap.py", line 126, in unpack shutil.move(tp, fp) File "/usr/local/lib/python2.7/shutil.py", line 302, in move copy2(src, real_dst) File "/usr/local/lib/python2.7/shutil.py", line 130, in copy2 copyfile(src, dst) File "/usr/local/lib/python2.7/shutil.py", line 83, in copyfile with open(dst, 'wb') as fdst: IOError: [Errno 2] No such file or directory: '/usr/ports/lang/rust/work/rustc-1.18.0-src/build/x86_64-unknown-freebsd/stage0/lib/rustlib/x86_64-unknown-freebsd/lib/GNUSparseFile.0/libstd-f4594d3e53dcb114.rlib' gmake[1]: *** [Makefile:24: all] Error 1 gmake[1]: Leaving directory '/usr/ports/lang/rust/work/rustc-1.18.0-src' ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 --
@dumbbell: Could you take a look at this? I am AFK for a couple of days, unfortunately.
Hi! Yes, this is a known issue with Python 2 which is the version required by the Rust build system. Python 2's tarfile module doesn't support sparse file entries in tar archives, but BSD tar tends to use them. And we use tar(1) to recreate the rust-std bootstrap on 12-CURRENT after the ino64 project commit. The solution is either to use GNU tar which doesn't produce sparse file entries in my tests, or better, pass --format=ustar to BSD tar as suggested by Tim Kientzle. I need to update my (growing) patch to lang/rust, especially that it conflicts with the 1.18.0 update now :) But I'm still under mentorship so I won't commit it before approval.
The fix is now part of the following larger patch: https://reviews.freebsd.org/D10857
A commit references this bug: Author: dumbbell Date: Sat Jun 17 14:44:30 UTC 2017 New revision: 443777 URL: https://svnweb.freebsd.org/changeset/ports/443777 Log: lang/rust: Enable on FreeBSD/aarch64 + various fixes This port now uses an unofficial bootstrap of Rust 1.17.0 and Cargo 0.18.0 for FreeBSD/aarch64. Here are my notes to create this boostrap: https://gist.github.com/dumbbell/b587da50ef014078da9e732a4331ebad The port's Makefile was changed to: - allow to override the versions and directories of the bootstrap archives; - patch the bootstrap script and manifest with those versions/directories. Beside changes to support FreeBSD/aarch64, the port received the following fixes: - Pass python path to the configure script. - Fix and simplify the extraction of rust-std bootstrap by re-using existing variables. - Make sure tar(1) doesn't produce sparse file entries when it recreates the rust-std bootstrap because Python 2's tarfile module doesn't support them (PR 219842). PR: 216143, 219842 Differential Revision: https://reviews.freebsd.org/D10857 Changes: head/lang/rust/Makefile head/lang/rust/distinfo head/lang/rust/files/extra-patch-ino64
The problem with sparse file entries should be fixed with the commit mentionned above. If you still see failures, please re-open this report!