Changes between Version 2 and Version 3 of Ticket #63455, comment 14
- Timestamp:
- Jan 1, 2022, 1:37:39 AM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #63455, comment 14
v2 v3 2 2 > To avoid confusion, I proposed cleaning up the “allow newer libtool” patching: [https://github.com/macports/macports-ports/pull/13541] 3 3 4 There are many thousands of ports that build calling "{{{libtool "}}}.4 There are many thousands of ports that build calling "{{{libtool}}}". About the only port that specifically forces {{{/usr/bin/libtool}}} is {{{mysql*}}}, which it should never have done. 5 5 6 About the only port that specifically forces {{{/usr/bin/libtool}}} is {{{mysql*}}}, which it should never have done, as there is no possibly way that {{{mysql*}}}could know which libtool is the proper one to use on darwin. By doing this forcing, they were already breaking a bunch of builds.6 There is no possibly way that the {{{mysql*}}} dev team could know which libtool is the proper one to use on darwin. By doing this forcing, they were already breaking a bunch of builds. 7 7 8 So (IMHO) to avoid confusion, you might best revert your "cleanup" and put it back the way I fixed it, so that the first {{{libtool}}} in the path is used, not {{{/usr/bin/libtool}}}, which is the way the other 10,000 ports that use libtool on darwin are set up. Then our proper mechanisms work.8 So you might best revert your cleanup and put it back the way I fixed it, so that {{{/usr/bin/libtool}}} is not inappropriately forced. 9 9 10 Sure, it should be upstreamed to get them to take out {{{/usr/bin/libtool}}} and just use {{{libtool}}} like everyone else. No idea why someone at {{{mysql}}} thought it would be a good idea to force {{{/usr/bin/libtool}}} in the first place -- a misguided attempt to fix something, I suspect.11 10 12 There is no need to specifically patch mysql to use {{{${prefix}/bin/libtool}}}, as our proper mechanisms will work, and the other 10,000 ports that use libtool are not so patched. It won't break anything, of course, at least not immediately, but it is, in it's own way, as wrong as mysql forcing {{{/usr/bin/libtool}}}. Just use {{{libtool}}} and all will be well.11 It should be upstreamed to get them to take out {{{/usr/bin/libtool}}} and just use {{{libtool}}}. 13 12 14 > but that made no difference to this problem. 15 of course. 16 17 I only notice that it prevents trace mode from saying: 18 > 19 > {{{ 20 > Warning: The following existing files were hidden from the build system by trace mode: 21 > … 22 > /opt/local/bin/libtool 23 > }}} 24 25 As you would expect, if there is not a specified dep anywhere for cctools, then that file will be ignored. 13 There is no need to specifically patch mysql to use {{{${prefix}/bin/libtool}}}, as our proper mechanisms will work, and the other 10,000 ports that use libtool are not so patched. It won't break anything, at least not immediately, but it is, in it's own way, as wrong as mysql forcing {{{/usr/bin/libtool}}}. Just use {{{libtool}}} and all will be well. 26 14 27 15 28 16 > because [122fca8e4617/macports-ports] was done without specifying cctools as a build dependency, meaning that using trace mode defeats the purpose of that change. 29 17 30 That is not, in general, correct, although it may be correct now if we want to use cctools libtool on a system that doesn't use a macports-clang-* compiler. 31 32 All older systems that use macports-clang-* already have added a dep for cctools as part of the use of macports-clang=*, as you can see here: 18 That is not, in general, correct. All older systems that use macports-clang-* already have added a dep for cctools as part of the use of macports-clang=*, as you can see here: 33 19 34 20 https://ports.macports.org/port/clang-9.0/details/ 35 21 36 so the purpose of the change was not defeated in general. But it may now need to be extended .22 so the purpose of the change was not defeated in general. But it may now need to be extended, and a newer libtool may be needed specifically for mysql. In which case it will need a dep added on cctools. 37 23 38 24 39 25 > Similar patching is still done in e.g. mysql56 and mariadb; should those instead add cctools build dependency and patch to use `${prefix}/bin/libtool` on older systems? 40 26 41 This is not needed, see above, the dep to cctools is already added by the macports-clang-* ports. 42 43 https://ports.macports.org/port/clang-9.0/details/ 27 No, this is not needed, see above, the dep to cctools is already added by the macports-clang-* ports. 44 28 45 29 46 HOWEVER, there might now being something NEW going on. 30 What you may (or may not, we wait to see) have found here in this ticket appears to be that on some newer versions of macos (that are not presently using a macports-clang compiler to build mysql) the {{{/usr/bin/libtool}}} fails when building mysql, but the libtool provided by cctools at {{{${prefix}/bin/libtool}}} does build it. 47 31 48 What you may (or may not, we wait to see) have found here in this ticket appears to be that now some newer version of macos (that is not presently using a macports-clang compiler to build mysql) has a {{{/usr/bin/libtool}}} that fails when building mysql, but the libtool provided by cctools at {{{${prefix}/bin/libtool}}} does build it. Although above you say you don't agree that this is the case, it seems to be the case, and we await more information about whether it is or is not the case that the libtool from cctools works but the libtool at /usr/bin/libtool does not work. 49 50 So some newer systems might now need to be coerced to use this newer libtool as well as the older systems that were already using it. 51 52 That new information would mean adding a dep on cctools to such systems in mysql (which would be redundant for systems that build using a macports-clang compiler, but that's fine), and again putting back the fix to stop mysql from using the (always) wrong {{{/usr/bin/libtool}}}. 32 That new information might mean adding a dep on cctools to such systems in mysql (which would be redundant for systems that build using a macports-clang compiler, but that's fine), and again putting back the fix to stop mysql from forcing the use of {{{/usr/bin/libtool}}}.