Summary: | devel/root: Update to 6.30/06 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Erik Jensen <erik> | ||||||||||||||||
Component: | Individual Port(s) | Assignee: | Nuno Teixeira <eduardo> | ||||||||||||||||
Status: | Closed FIXED | ||||||||||||||||||
Severity: | Affects Some People | CC: | eduardo, mkrzewicki | ||||||||||||||||
Priority: | --- | Flags: | eduardo:
merge-quarterly+
|
||||||||||||||||
Version: | Latest | ||||||||||||||||||
Hardware: | Any | ||||||||||||||||||
OS: | Any | ||||||||||||||||||
URL: | https://root.cern/doc/v630/release-notes.html#release-6.3006 | ||||||||||||||||||
Attachments: |
|
Description
Erik Jensen
2024-04-01 17:16:04 UTC
Note: Note: ROOT now builds and packages successfully on FreeBSD 14.0 with the various port options both enabled and disabled. Hello! Could you take a look at build logs? Cheers Testport results: https://people.freebsd.org/~eduardo/logs/root/6.30.04/0000/132amd64_root-6.30.04.log https://people.freebsd.org/~eduardo/logs/root/6.30.04/0000/133amd64_root-6.30.04.log https://people.freebsd.org/~eduardo/logs/root/6.30.04/0000/140amd64_root-6.30.04.log https://people.freebsd.org/~eduardo/logs/root/6.30.04/0000/15amd64_root-6.30.04.log ==> 132amd64_root-6.30.04.log <== Stop. make: stopped in /usr/ports/devel/root =>> Error: check-plist failures detected build of devel/root | root-6.30.04 ended at Tue Apr 2 04:32:48 WEST 2024 build time: 00:30:03 !!! build failure encountered !!! ==> 133amd64_root-6.30.04.log <== Stop. make: stopped in /usr/ports/devel/root build of devel/root | root-6.30.04 ended at Tue Apr 2 02:51:16 WEST 2024 build time: 00:20:11 !!! build failure encountered !!! ==> 140amd64_root-6.30.04.log <== The operation will free 640 MiB. [140amd64-main] [1/1] Deinstalling root-6.30.04... [140amd64-main] [1/1] Deleting files for root-6.30.04: .......... done build of devel/root | root-6.30.04 ended at Tue Apr 2 01:23:50 WEST 2024 build time: 00:30:05 ==> 15amd64_root-6.30.04.log <== Stop. make: stopped in /usr/ports/devel/root build of devel/root | root-6.30.04 ended at Mon Apr 1 23:45:21 WEST 2024 build time: 00:26:08 !!! build failure encountered !!! Created attachment 249667 [details]
Modified patch for upgrade of devel/root
Hello!
I see two issues with the different builds:
Issue 1: Proper population of pkg-plist - this should be fixed in the newly
attached port patch, but a few more pkg-plist issues might sneak into some of
the other builds when issue 2 is fixed...
Issue 2: LLVM/Clang version 17 (which is the default on FBSD 13.3 and 15) is
conflicting with how ROOT declares its module maps. Currently, ROOT only
supports LLVM versions 14 to 16 in their production releases, so I have added
mininum and maximum version restrictions on LLVM in the port Makefile.
Could you try to run the builds again?
I expect a few pkg-plist issues to pop up, if I have actually managed to fix
"issue 2".
Thanks
(In reply to Erik Jensen from comment #4) Building it with PORTREVISION=1 so we can have separated logs. One doubt: Related to: USES=llvm:min=14,max=16 I can see that 15-CURRENT jail choosed llvm15 as it is already available at my repository: --- # pkg search llvm llvm15-15.0.7_10 LLVM and Clang 0% 3190/10276] /usr/local/llvm15/bin/clang++ --- This means that build could choose llvm 14, 15 or 16 at other situations, right? Any particular reason for using min and max instead of a fixed version? (In reply to Nuno Teixeira from comment #5) (...) And keep in mind that 'USES=llvm:min=14,max=16' means using llvm [14,16] from ports: # * environment # export: do export CC, CXX,... variables [default] <== # noexport: do not export CC,CXX,... variables And that means that all tested versions (15, 140, 133 and 132) will build chosen llvm versions from ports. Let's wait for results, I'm curious :) NOTE: To help me distinguish builds, always bump PORTREVISION, at this momment is at "1". https://people.freebsd.org/~eduardo/logs/root/root-6.30.04_1/ ==> 132amd64_root-6.30.04_1.log <== The operation will free 658 MiB. [132amd64-main] [1/1] Deinstalling root-6.30.04_1... [132amd64-main] [1/1] Deleting files for root-6.30.04_1: .......... done build of devel/root | root-6.30.04_1 ended at Wed Apr 3 00:52:37 WEST 2024 build time: 00:29:26 ==> 133amd64_root-6.30.04_1.log <== Stop. make: stopped in /usr/ports/devel/root build of devel/root | root-6.30.04_1 ended at Tue Apr 2 23:29:35 WEST 2024 build time: 00:21:07 !!! build failure encountered !!! ==> 140amd64_root-6.30.04_1.log <== The operation will free 641 MiB. [140amd64-main] [1/1] Deinstalling root-6.30.04_1... [140amd64-main] [1/1] Deleting files for root-6.30.04_1: .......... done build of devel/root | root-6.30.04_1 ended at Tue Apr 2 22:09:10 WEST 2024 build time: 00:32:24 ==> 15amd64_root-6.30.04_1.log <== Stop. make: stopped in /usr/ports/devel/root build of devel/root | root-6.30.04_1 ended at Tue Apr 2 19:39:16 WEST 2024 build time: 00:21:44 !!! build failure encountered !!! Created attachment 250724 [details]
Modified patch for upgrade of devel/root
Hi Nuno,
Thanks for waiting.
It turned out to be quite the challenge to fix building of ROOT, but I think
I managed it.
I now know much more about LLVM modulemaps than I ever intended to...
I attach a new patch here.
The same type of issue has been present on newer releases of OSX, and they
are partially accommodated in the newer stable release of ROOT v. 6.30/06.
So the patch is now an upgrade to v. 6.30/06, and I have updated the summary
of this PR accordingly.
ROOT v. 6.30/06 succesfully builds on my end on amd64 13.2R, 13.3R, 14.0R and
15.0C.
I have attempted to also enable bulding on i386.
Is it possible for you to check if this works?
There might be some pkg-plist population issues on both aarch64 and i386.
If you send the build logs my way, I can accommodate them in an updated patch.
Cheers from
Erik
(The reason why I mention i386 is because I have been getting some pkg-fallout emails e.g. for 140i386.) (In reply to Erik Jensen from comment #9) > (The reason why I mention i386 is because I have been getting > some pkg-fallout emails e.g. for 140i386.) CMake Error at cmake/modules/SetUpFreeBSD.cmake:29 (message): Unknown processor: i386 Does upstream provides support for 32bit arches? A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=a68970e0e109c1d1155851af8d2b2869522a1a68 commit a68970e0e109c1d1155851af8d2b2869522a1a68 Author: Erik Jensen <erik@tenku.dk> AuthorDate: 2024-05-18 10:26:06 +0000 Commit: Nuno Teixeira <eduardo@FreeBSD.org> CommitDate: 2024-05-18 10:28:23 +0000 devel/root: Update to 6.30/06 ChangeLog: https://root.cern/doc/v630/release-notes.html#release-6.3006 PR: 278110 devel/root/Makefile | 43 +- devel/root/distinfo | 6 +- ...ing-include-cling-std__fbsd13.2.modulemap (new) | 1097 ++++++++++ ...ing-include-cling-std__fbsd13.3.modulemap (new) | 2072 +++++++++++++++++++ ...ing-include-cling-std__fbsd14.0.modulemap (new) | 1729 ++++++++++++++++ ...ing-include-cling-std__fbsd15.0.modulemap (new) | 2087 ++++++++++++++++++++ .../patch-cmake_modules_SetUpFreeBSD.cmake (new) | 12 + .../patch-core_clingutils_CMakeLists.txt (new) | 23 + ...patch-core_clingutils_src_TClingUtils.cxx (new) | 18 + devel/root/files/patch-interpreter_CMakeLists.txt | 4 +- ...reter_cling_lib_Interpreter_CIFactory.cpp (new) | 14 + ...ter_cling_lib_Interpreter_Interpreter.cpp (new) | 13 + ...m-project_clang_lib_Serialization_ASTWriter.cpp | 15 +- devel/root/pkg-plist | 12 +- 14 files changed, 7121 insertions(+), 24 deletions(-) Hello Erik, I'm still waiting on aarch64 build results and I will do i386 tests. It seems that upstream supports 32bit but I didn't found any builds at https://repology.org/project/root/versions I will leave PR open just in case a plist fix is needed. Cheers (In reply to Nuno Teixeira from comment #12) (...) Build fails in 15aarch64: https://people.freebsd.org/~eduardo/logs/root/6.30.06/15aarch64_root-6.30.06.log Let's wait that you receive build failures from pkg-fallout and if a fix is not found we could put a broken on aarch64 arch. Will test i386 later and upload log. Cheers Hi Nuno, Can you provide a bit more context on the error message of comment #10? I told ROOT to treat the string constant "i386" the same as "i686" (worth a shot) in a configure file, but a bit more hackery might still be necessary. Generally, ROOT provides full support for the OS's and architectures which they release binary distributions for (https://root.cern/releases/release-63006/), but various other OS's and archs are also partially supported, and bug reports on these systems do get proper treatment upstream. It might not be worth it/of benefit to anyone that we actually make ROOT build on i386, though... Aarch64 would be nice to support, though. Are you running test builds only on 15.0C, or can you also run the test builds on 13.2R, 13.3R and 14.0R? I will have a look at the build log for 15.0C aarch64 of comment #13 now. I have not yet received any pkg-fallout emails for this new patch, but I will keep you posted. Cheers from Erik (In reply to Erik Jensen from comment #14) 140i386 build is fine: https://people.freebsd.org/~eduardo/logs/root/6.30.06/140i386_root-6.30.06.log Waiting on 140aarch64 build. (In reply to Nuno Teixeira from comment #15) (...) 140arch64 builds fine / plist error: ====> Checking for pkg-plist issues (check-plist) ===> Parsing plist ===> Checking for items in STAGEDIR missing from pkg-plist ===> Checking for items in pkg-plist which are not in STAGEDIR Error: Missing: %%AARCH64_PCM_PREFIX%%/root/%%AARCH64_PCM_PREFIX%%Netx.rootmap Error: Missing: %%AARCH64_PCM_PREFIX%%/root/std_config.pcm ===> Error: Plist issues found. *** Error code 1 Log: https://people.freebsd.org/~eduardo/logs/root/6.30.06/15aarch64_root-6.30.06.log Waiting on 133 build results Cheers :) Great to hear! :-) I may have a fix for aarch64 on 15.0C (tested on amd64), but this breaks the 13.2R, 13.3R and 14.0R amd64 builds. I will implement a conditional fix and report back. Note: I claimed that 15.0C on amd64 builds fine, but this was actually done on my 14.0R machine, so maybe the problem with 15.0C on aarch64 is also present on 15.0C on amd64? Created attachment 250832 [details] Modified patch for upgrade of devel/root I attach a new patch which fixes the pkg-plist issues of comment #16 and which implements the fix which I mentioned in comment #17. Does building on 150aarch64 succeed now? Cheers! (In reply to Nuno Teixeira from comment #16) (...) And finally 133aarch64 build ok with plist issues that slightly differs from 140: ===> Parsing plist ===> Checking for items in STAGEDIR missing from pkg-plist ===> Checking for items in pkg-plist which are not in STAGEDIR Error: Missing: %%AARCH64_PCM_PREFIX%%/root/%%AARCH64_PCM_PREFIX%%Netx.rootmap ===> Error: Plist issues found. Log: https://people.freebsd.org/~eduardo/logs/root/6.30.06/133aarch64_root-6.30.06.log Will not build on 132 since its almost EOLed. (In reply to Erik Jensen from comment #18) I will rebuild latest patch (port revision 3) tomorrow. Builds will be 15 (main), 140 and 133 Cheers (In reply to Erik Jensen from comment #18) Hello! Could you upload latest patch against current version (6.30.06)? -DISTVERSION= 6.30.02 -PORTREVISION= 1 +DISTVERSION= 6.30.06 +PORTREVISION= 3 Ready to test. Cheers Created attachment 250896 [details]
Patch of ROOT v. 6.30/06, port revision 1
Sorry, I forgot to do the patch on top of the zeroth port revision.
I attach it here
Cheers
(In reply to Erik Jensen from comment #22) Nice! Building at 15 (main). 140 and 133 build will be next. http://freebsdrpi4.hopto.org/build.html?mastername=15aarch64-main&build=2024-05-23_14h09m09s Cheers I see from the build log that the fix aimed at 15aarch64 did not take (seems like my conditional C macro was not applied as it should have been). I will see what I can do. This should not affect 140 and 133, however. Created attachment 250934 [details] Patch of ROOT v. 6.30/06, port revision 2 I attach a new attempt to fix building on 15aarch64. All that seems to be missing is an exception specification 'throw()' following the two strings "int atexit(void(*f)())" and "int at_quick_exit(void(*f)())" in lines 495 and 504 in this source file: https://github.com/root-project/root/blob/v6-30-06/interpreter/cling/lib/Interpreter/Interpreter.cpp#L495, making the strings read "int atexit(void(*f)()) throw()" and "int at_quick_exit(void(*f)()) throw()". This has to be a conditional addition, since it breaks building on 133 and 140, otherwise. Do you think there Is some way to check if my addition `#if defined(__FreeBSD__) && __FreeBSD_version > 1499999` of this patch actually returns true, as intended, on 15aarch64, without having to build 99% of the port first? Cheers (In reply to Erik Jensen from comment #25) > Do you think there Is some way to check if my addition > `#if defined(__FreeBSD__) && __FreeBSD_version > 1499999` > of this patch actually returns true, as intended, on > 15aarch64, without having to build 99% of the port first? The first thing that cames to my mind is to create a simple "Hello world" in C or C++ and use it to this kind of checks. Rebuilding with new patch. Cheers Hello Erik, With patch revision 2 we have good build results: amd64: OK: 15, 140, 133 aarch64: Fail: 15; OK: 140, 133 I think is good to proceed and commit it. We can also put a broken on 15 aarch64. Please tell me what your thoghts. (In reply to Erik Jensen from comment #25) > #if defined(__FreeBSD__) && __FreeBSD_version > 1499999 Does this work on C language? We could have this conditional on port Makefile and point it to a patch or sed, i.e., if conditional == current arch64, then apply extra patch X: https://docs.freebsd.org/en/books/porters-handbook/book/#slow-patch-extra Created attachment 251095 [details] Patch of ROOT v. 6.30/06, port revision 3 (In reply to Nuno Teixeira from comment #27) Nice to see that almost everything builds well now. (In reply to Nuno Teixeira from comment #28) -- and your suggested method is much more elegant (and should actually be supported), so I attach a patch here - hopefully it works now! I suggest we mark 15aarch64 as broken if this patch does not work (although it really should), as a new release of ROOT, version 6.32, has just been published. I'll start looking into making a patch for the new release and open a new issue. Cheers! (In reply to Erik Jensen from comment #29) Hopefully I will get all build results today and if it fails on current arm64, then I put a bronken message on it. With recent python default to 3.11 update on ports, some things have changed: (stage) /bin/rmdir /wrkdirs/usr/ports/devel/root/work/stage/usr/local/lib/root/__pycache__ rmdir: /wrkdirs/usr/ports/devel/root/work/stage/usr/local/lib/root/__pycache__: Directory not empty Workaround: (port Makefile): post-install: <snip> - ${RMDIR} ${STAGEDIR}${PREFIX}/lib/root/__pycache__ + ${RMDIR} -p ${STAGEDIR}${PREFIX}/lib/root/__pycache__ No need to upload a new patch. I will include it in commit. (In reply to Nuno Teixeira from comment #30) Correction: post-install: - ${RM} ${STAGEDIR}${PREFIX}/lib/root/__pycache__/cmdLineUtils.cpython-39.pyc - ${RM} ${STAGEDIR}${PREFIX}/lib/root/__pycache__/cmdLineUtils.cpython-39.opt-1.pyc - ${RMDIR} ${STAGEDIR}${PREFIX}/lib/root/__pycache__ + ${RM} -r ${STAGEDIR}${PREFIX}/lib/root/__pycache__ As it simplifies removal in any case. (In reply to Nuno Teixeira from comment #31) (...) And we need to adapt python version in plist by setting a new PYTHON var: VAR= ${PYTHON_VERSION:S/./_/:S/python//} to auto detect: e.g. lib/root/libJupyROOT3_11.so and lib/root/libJupyROOT3_9.so Regarding error: ====> Running Q/A tests (stage-qa) Warning: you may not need USES=desktop-file-utils Warning: you might not need LIB_DEPENDS on libpango-1.0.so ====> Checking for pkg-plist issues (check-plist) ===> Parsing plist ===> Checking for items in STAGEDIR missing from pkg-plist Error: Orphaned: lib/root/libJupyROOT3_11.so Error: Orphaned: lib/root/libJupyROOT3_11.so.%%SHLIB_SHVER%% Error: Orphaned: lib/root/libJupyROOT3_11.so.%%SHLIB_VER%% Error: Orphaned: lib/root/libROOTPythonizations3_11.so Error: Orphaned: lib/root/libROOTPythonizations3_11.so.%%SHLIB_SHVER%% Error: Orphaned: lib/root/libROOTPythonizations3_11.so.%%SHLIB_VER%% Error: Orphaned: lib/root/libcppyy3_11.so Error: Orphaned: lib/root/libcppyy3_11.so.%%SHLIB_SHVER%% Error: Orphaned: lib/root/libcppyy3_11.so.%%SHLIB_VER%% Error: Orphaned: lib/root/libcppyy_backend3_11.so Error: Orphaned: lib/root/libcppyy_backend3_11.so.%%SHLIB_SHVER%% Error: Orphaned: lib/root/libcppyy_backend3_11.so.%%SHLIB_VER%% ===> Checking for items in pkg-plist which are not in STAGEDIR Error: Missing: lib/root/libJupyROOT3_9.so Error: Missing: lib/root/libJupyROOT3_9.so.%%SHLIB_SHVER%% Error: Missing: lib/root/libJupyROOT3_9.so.%%SHLIB_VER%% Error: Missing: lib/root/libROOTPythonizations3_9.so Error: Missing: lib/root/libROOTPythonizations3_9.so.%%SHLIB_SHVER%% Error: Missing: lib/root/libROOTPythonizations3_9.so.%%SHLIB_VER%% Error: Missing: lib/root/libcppyy3_9.so Error: Missing: lib/root/libcppyy3_9.so.%%SHLIB_SHVER%% Error: Missing: lib/root/libcppyy3_9.so.%%SHLIB_VER%% Error: Missing: lib/root/libcppyy_backend3_9.so Error: Missing: lib/root/libcppyy_backend3_9.so.%%SHLIB_SHVER%% Error: Missing: lib/root/libcppyy_backend3_9.so.%%SHLIB_VER%% ===> Error: Plist issues found. (In reply to Nuno Teixeira from comment #32) (...) Using: +PLIST_SUB+= PYVER="${PYTHON_VER:S/./_/}" ... -%%PYROOT%%lib/root/libJupyROOT3_9.so +%%PYROOT%%lib/root/libJupyROOT%%PYVER%%.so ... And it should fix plist. Also, 15aarch64 builds fine! Maybe today I'll commit it. Very good! I have a working basic build of ROOT v. 6.32/00 on 140amd64 now. Proceeding to test on other releases and opening a new issue once it is ready. Cheers A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=05080690006ffaac3ae42518c240b05445dea57b commit 05080690006ffaac3ae42518c240b05445dea57b Author: Erik Jensen <erik@tenku.dk> AuthorDate: 2024-05-31 12:06:45 +0000 Commit: Nuno Teixeira <eduardo@FreeBSD.org> CommitDate: 2024-05-31 12:10:20 +0000 devel/root: Unbreak aarch64 and plist fixes - Unbreak aarch64 (tested on 15, 140, 133) - Fix plist related to python version used PR: 278110 devel/root/Makefile | 13 +++++++---- ...lib_Interpreter_Interpreter.cpp.15aarch64 (new) | 20 ++++++++++++++++ ...ter-cling-include-cling-std__fbsd14.0.modulemap | 2 +- ...ter-cling-include-cling-std__fbsd15.0.modulemap | 2 +- devel/root/pkg-plist | 27 +++++++++++----------- 5 files changed, 43 insertions(+), 21 deletions(-) Nice! Please use port revision 1 that was committed for new patch. Cheers A commit in branch 2024Q2 references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=ece19d789c14023ec1c7c82a239ae4935f0fe1bc commit ece19d789c14023ec1c7c82a239ae4935f0fe1bc Author: Erik Jensen <erik@tenku.dk> AuthorDate: 2024-05-31 12:06:45 +0000 Commit: Nuno Teixeira <eduardo@FreeBSD.org> CommitDate: 2024-06-22 17:52:12 +0000 devel/root: Unbreak aarch64 and plist fixes - Unbreak aarch64 (tested on 15, 140, 133) - Fix plist related to python version used PR: 278110 (cherry picked from commit 05080690006ffaac3ae42518c240b05445dea57b) devel/root/Makefile | 13 +++++++---- ...lib_Interpreter_Interpreter.cpp.15aarch64 (new) | 20 ++++++++++++++++ ...ter-cling-include-cling-std__fbsd14.0.modulemap | 2 +- ...ter-cling-include-cling-std__fbsd15.0.modulemap | 2 +- devel/root/pkg-plist | 27 +++++++++++----------- 5 files changed, 43 insertions(+), 21 deletions(-) A commit in branch 2024Q2 references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=8a773bd047a39d17789480a87bf391c49b4c3e43 commit 8a773bd047a39d17789480a87bf391c49b4c3e43 Author: Erik Jensen <erik@tenku.dk> AuthorDate: 2024-05-18 10:26:06 +0000 Commit: Nuno Teixeira <eduardo@FreeBSD.org> CommitDate: 2024-06-22 17:51:50 +0000 devel/root: Update to 6.30/06 ChangeLog: https://root.cern/doc/v630/release-notes.html#release-6.3006 PR: 278110 (cherry picked from commit a68970e0e109c1d1155851af8d2b2869522a1a68) devel/root/Makefile | 43 +- devel/root/distinfo | 6 +- ...ing-include-cling-std__fbsd13.2.modulemap (new) | 1097 ++++++++++ ...ing-include-cling-std__fbsd13.3.modulemap (new) | 2072 +++++++++++++++++++ ...ing-include-cling-std__fbsd14.0.modulemap (new) | 1729 ++++++++++++++++ ...ing-include-cling-std__fbsd15.0.modulemap (new) | 2087 ++++++++++++++++++++ .../patch-cmake_modules_SetUpFreeBSD.cmake (new) | 12 + .../patch-core_clingutils_CMakeLists.txt (new) | 23 + ...patch-core_clingutils_src_TClingUtils.cxx (new) | 18 + devel/root/files/patch-interpreter_CMakeLists.txt | 4 +- ...reter_cling_lib_Interpreter_CIFactory.cpp (new) | 14 + ...ter_cling_lib_Interpreter_Interpreter.cpp (new) | 13 + ...m-project_clang_lib_Serialization_ASTWriter.cpp | 15 +- devel/root/pkg-plist | 12 +- 14 files changed, 7121 insertions(+), 24 deletions(-) |