Opened 7 weeks ago

Last modified 2 weeks ago

#60506 new defect

Can't install grass7

Reported by: dershow Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: Veence (Vincent), nilason
Port: grass7

Description

I just migrated to 10.15 and I can't get grass7 7.8.3_1 to install.

$ sudo port install grass7 +gui
--->  Computing dependencies for grass7
--->  Fetching archive for grass7
--->  Attempting to fetch grass7-7.8.3_1+gui+postgresql12+proj6+python38.darwin_19.x86_64.tbz2 from https://packages.macports.org/grass7
--->  Attempting to fetch grass7-7.8.3_1+gui+postgresql12+proj6+python38.darwin_19.x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/grass7
--->  Attempting to fetch grass7-7.8.3_1+gui+postgresql12+proj6+python38.darwin_19.x86_64.tbz2 from http://aus.us.packages.macports.org/macports/packages/grass7
--->  Fetching distfiles for grass7
--->  Verifying checksums for grass7
--->  Extracting grass7
--->  Applying patches to grass7
--->  Configuring grass7
--->  Building grass7
Error: Failed to build grass7: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port grass7 failed

Attachments (2)

main.log (7.7 MB) - added by dershow 7 weeks ago.
10.14.main.log.zip (1.0 MB) - added by nilason 6 weeks ago.
Log of successful 10.14 build, for comparison.

Change History (41)

Changed 7 weeks ago by dershow

Attachment: main.log added

comment:1 Changed 7 weeks ago by mf2k (Frank Schima)

Port: grass7 added

comment:2 Changed 7 weeks ago by ryandesign (Ryan Schmidt)

I see a lot of this sort of thing in the log:

:info:build dyld: Library not loaded: /opt/local/share/grass78/lib/libgrass_gis.7.8.dylib
:info:build   Referenced from: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/bin/g.gisenv
:info:build   Reason: image not found
:info:build dyld: Library not loaded: /opt/local/share/grass78/lib/libgrass_manage.7.8.dylib
:info:build   Referenced from: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/bin/g.remove
:info:build   Reason: image not found

This suggests that the build system is not properly setting DYLD_LIBRARY_PATH to the path where the just-built-but-not-yet-intsalled libraries like libgrass_gis.7.8.dylib and libgrass_manage.7.8.dylib are located.

comment:3 Changed 7 weeks ago by ryandesign (Ryan Schmidt)

Cc: Veence added

Vincent, though you're not the maintainer of grass7, you've done many commits in the port so maybe you want to have a look at this.

comment:4 Changed 6 weeks ago by nilason

This is strange. What could possibly be the reason this doesn't work on 10.15? At present I have no 10.15 machine available to test on, but comparing log files with successful build on 10.14 I can see no difference. DYLD_LIBRARY_PATH is the same.

By the way, is this a general problem for 10.15? Anyone succeeded installing grass7 on 10.15?

@dershow Just to be sure it doesn't relate to python (although log file doesn't imply so, see comments on commit:6c65924), what do port select --list python3 tell you?

$ ls -l /opt/local/share/grass78/lib/
ls: /opt/local/share/grass78/lib/: No such file or directory
$ sudo port -k install grass7 +gui
...
--->  Activating grass7 @7.8.3_1+gui+postgresql12+proj6+python38
--->  Scanning binaries for linking errors
--->  No broken files found.                             
--->  No broken ports found.
$ otool -L /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin18.7.0/bin/g.gisenv
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin18.7.0/bin/g.gisenv:
	/opt/local/share/grass78/lib/libgrass_gis.7.8.dylib (compatibility version 7.8.0, current version 7.8.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1)
$ ls -l /opt/local/share/grass78/lib/libgrass_gis.7.8.dylib
-rwxr-xr-x  1 macports  wheel  278576 May 23 18:10 /opt/local/share/grass78/lib/libgrass_gis.7.8.dylib
$ otool -L /opt/local/share/grass78/bin/g.gisenv 
/opt/local/share/grass78/bin/g.gisenv:
	/opt/local/share/grass78/lib/libgrass_gis.7.8.dylib (compatibility version 7.8.0, current version 7.8.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1)

Successful build on 10.14:

DYLD_LIBRARY_PATH="
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin18.7.0/bin
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin18.7.0/bin
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin18.7.0/scripts
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin18.7.0/lib
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin18.7.0/lib
"

Failed 10.15 build:

DYLD_LIBRARY_PATH="
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/bin
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/bin
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/scripts
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/lib
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/lib
"
Last edited 5 weeks ago by ryandesign (Ryan Schmidt) (previous) (diff)

Changed 6 weeks ago by nilason

Attachment: 10.14.main.log.zip added

Log of successful 10.14 build, for comparison.

comment:5 Changed 6 weeks ago by nilason

Cc: nilason added

comment:6 Changed 6 weeks ago by dershow

$ port select --list python3
Available versions for python3:
	none (active)
	python36
	python37
	python38

comment:7 Changed 6 weeks ago by nilason

@dershow And if you do sudo port select --set python3 python38, will it work?

comment:8 Changed 6 weeks ago by dershow

I just tried and it still failed to build. I had thought that "select" wouldn't matter, as the build system should use the correct version of things. So, I really don't know what is different about this between 10.14 and 10.15. I also had it working with 10.14. I then moved did the full migration (so cleared out all the ports) and most of my ports have built and installed fine, but grass7 won't. And gqis3 and saga depend on it, so they won't build either.

comment:9 Changed 6 weeks ago by nilason

The python part is a really new portfile thing introduced with previously mentioned commit. But your log file didn’t indicate that was the problem. Just to be sure, please check port select --list python as well.

comment:10 Changed 6 weeks ago by Veence (Vincent)

The problem is this: g.gisenv (and other utilities) are called by the build system. It depends on the libgrass_gis library.

But when the lib grass_gis library is built, the linking process records the installation path (/opt/local/share/grass78/…) of the library within its header. Then g.gisenv is compiled and linked against it, and the linking process does not reference the real location of the libraries an executable is built against, but the location as specified in the library header (in this case, the installation path).

So when g.gisenv is called within the build process, it looks for /opt/local/share/grass78/libgrass_gis.dylib, rather than using the temporary place the library is stored in until the build finishes.

comment:11 Changed 6 weeks ago by Veence (Vincent)

Could you please type "man ld" and tell me what's explained under the "DYLD_LIBRARY_PATH" paragraph? Maybe this has changed between 10.14 and 10.15. Thanks!

comment:12 in reply to:  10 Changed 6 weeks ago by nilason

Replying to Veence:

The problem is this: g.gisenv (and other utilities) are called by the build system. It depends on the libgrass_gis library.

But when the lib grass_gis library is built, the linking process records the installation path (/opt/local/share/grass78/…) of the library within its header. Then g.gisenv is compiled and linked against it, and the linking process does not reference the real location of the libraries an executable is built against, but the location as specified in the library header (in this case, the installation path).

So when g.gisenv is called within the build process, it looks for /opt/local/share/grass78/libgrass_gis.dylib, rather than using the temporary place the library is stored in until the build finishes.

Yes, I realised that while comparing the log files. The strange thing seems to be that it worked this far -- even for 10.15!! See e.g. https://build.macports.org/builders/ports-10.15_x86_64-builder/builds/29988.

comment:13 Changed 6 weeks ago by nilason

The reason I still believe it might be related to the python is that the executables in build are all (I think) python files starting with #!/usr/bin/env python3. E.g. tools/thumbnails.py calls g.remove in library.

comment:14 Changed 6 weeks ago by Veence (Vincent)

Sure, but the problem is with g.remove, not with thumbnails.py!

comment:15 Changed 5 weeks ago by dershow

$ port select --list python
Available versions for python:
	none
	python27 (active)
	python27-apple
	python36
	python37
	python38

I don't see an explicit "DYLD_LIBRARY_PATH" paragraph from man ld. Although dyld appears a bunch.

comment:16 Changed 5 weeks ago by nilason

Will sudo port select --set python python38 make any difference?

comment:17 Changed 5 weeks ago by Veence (Vincent)

Sorry, it’s man dyld, precisely. My bad.

comment:18 Changed 5 weeks ago by dershow

$man dyld
...

       DYLD_LIBRARY_PATH
              This is a colon separated list of directories that contain  libraries.  The  dynamic
              linker  searches  these  directories  before  it  searches the default locations for
              libraries. It allows you to test new versions of existing libraries.

              For each dylib that a program uses, the dynamic linker looks for its  leaf  name  in
              each directory in DYLD_LIBRARY_PATH.

              Use  the  -L option to otool(1) to discover the frameworks and shared libraries that
              the executable is linked against.
...

comment:19 in reply to:  16 Changed 5 weeks ago by dershow

Replying to nilason:

Will sudo port select --set python python38 make any difference?

I just tried and it didn't seem to make a difference.

comment:20 Changed 5 weeks ago by nilason

Thanks, ruled that one out then.

comment:21 Changed 5 weeks ago by Veence (Vincent)

Ok, so DYLD_LIBRARY_PATH seems to work the same way. Next thing, check the paths to see if they jibe.

comment:22 Changed 5 weeks ago by Veence (Vincent)

When the builds stops, could you give us the contents of the /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/lib directory with a ls -l?

comment:23 in reply to:  21 Changed 5 weeks ago by dershow

Replying to Veence:

Ok, so DYLD_LIBRARY_PATH seems to work the same way. Next thing, check the paths to see if they jibe.

I'm not sure which paths you mean. Just environment?

$ printenv
TERM_PROGRAM=Apple_Terminal
TERM=xterm-256color
SHELL=/bin/bash
TMPDIR=/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/
FDSNETWORK=
TERM_PROGRAM_VERSION=433
TERM_SESSION_ID=66AA6C5E-757B-43DA-BDD3-F28039BC750D
MPIDIST_ETH=
MPIDIST_FDS=/Applications/FDS/FDS6/bin/openmpi_64
USER=xxxx
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.SmK9Dr2GLL/Listeners
PATH=/Applications/FDS/FDS6/bin/bin:/Applications/FDS/FDS6/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/MacGPG2/bin:/opt/X11/bin:/Library/Apple/usr/bin
LaunchInstanceID=68CE0C75-AB9B-409D-A62F-B878E49549E0
PWD=/Users/xxxx/Documents/Fink Ports etc
LANG=en_US.UTF-8
XPC_FLAGS=0x0
MPIDIST_IB=
XPC_SERVICE_NAME=0
FDSBINDIR=/Applications/FDS/FDS6/bin
HOME=/Users/xxxx
SHLVL=1
LOGNAME=xxxx
OMP_NUM_THREADS=4
DISPLAY=/private/tmp/com.apple.launchd.EFbaTjaIor/org.macosforge.xquartz:0
MPIDIST=/Applications/FDS/FDS6/bin
SECURITYSESSIONID=186a8
_=/usr/bin/printenv

(note that I took out some name ID info above)

comment:24 in reply to:  22 Changed 5 weeks ago by dershow

Replying to Veence:

When the builds stops, could you give us the contents of the /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/lib directory with a ls -l?

$ ls -l /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/
total 344
-rw-r--r--    1 macports  wheel  16316 May 17 11:42 AUTHORS
-rw-r--r--    1 macports  wheel   1301 May 17 11:42 CHANGES
-rw-r--r--    1 macports  wheel   1645 May 17 11:42 CITING
-rw-r--r--    1 macports  wheel   1410 May 17 11:42 COPYING
-rw-r--r--    1 macports  wheel  17987 May 17 11:42 GPL.TXT
-rw-r--r--    1 macports  wheel   9385 May 17 11:42 INSTALL
-rw-r--r--    1 macports  wheel   9247 May 17 11:42 REQUIREMENTS.html
drwxr-xr-x  390 macports  wheel  12480 May 17 11:42 bin
-rw-r--r--    1 macports  wheel   3918 May 17 11:42 contributors.csv
-rw-r--r--    1 macports  wheel   2753 May 17 11:42 contributors_extra.csv
drwxr-xr-x    4 macports  wheel    128 May 17 11:40 demolocation
drwxr-xr-x    4 macports  wheel    128 May 17 11:40 docs
drwxr-xr-x    3 macports  wheel     96 May 17 11:40 driver
drwxr-xr-x   29 macports  wheel    928 May 17 11:41 etc
drwxr-xr-x   25 macports  wheel    800 May 17 11:40 fonts
-rw-r--r--    1 macports  wheel  85672 May 17 11:40 grass78.tmp
drwxr-xr-x    7 macports  wheel    224 May 17 11:41 gui
drwxr-xr-x    4 macports  wheel    128 May 17 11:40 include
drwxr-xr-x  107 macports  wheel   3424 May 17 11:41 lib
drwxr-xr-x  142 macports  wheel   4544 May 17 11:42 scripts
drwxr-xr-x    5 macports  wheel    160 May 17 11:41 share
drwxr-xr-x    8 macports  wheel    256 May 17 11:40 tools
-rw-r--r--    1 macports  wheel   4341 May 17 11:42 translators.csv

comment:25 Changed 5 weeks ago by Veence (Vincent)

You forgot the /libat the end! :)

comment:26 Changed 5 weeks ago by dershow

oops:

ls -l /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/lib
total 6696
-rwxr-xr-x  1 macports  wheel   21588 May 17 11:40 libgrass_arraystats.7.8.dylib
lrwxr-xr-x  1 macports  wheel      29 May 17 11:40 libgrass_arraystats.dylib -> libgrass_arraystats.7.8.dylib
-rwxr-xr-x  1 macports  wheel   18092 May 17 11:40 libgrass_bitmap.7.8.dylib
lrwxr-xr-x  1 macports  wheel      25 May 17 11:40 libgrass_bitmap.dylib -> libgrass_bitmap.7.8.dylib
-rwxr-xr-x  1 macports  wheel   16972 May 17 11:40 libgrass_btree.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_btree.dylib -> libgrass_btree.7.8.dylib
-rwxr-xr-x  1 macports  wheel   31224 May 17 11:40 libgrass_btree2.7.8.dylib
lrwxr-xr-x  1 macports  wheel      25 May 17 11:40 libgrass_btree2.dylib -> libgrass_btree2.7.8.dylib
-rwxr-xr-x  1 macports  wheel   51488 May 17 11:40 libgrass_cairodriver.7.8.dylib
lrwxr-xr-x  1 macports  wheel      30 May 17 11:40 libgrass_cairodriver.dylib -> libgrass_cairodriver.7.8.dylib
-rwxr-xr-x  1 macports  wheel   45988 May 17 11:40 libgrass_calc.7.8.dylib
lrwxr-xr-x  1 macports  wheel      23 May 17 11:40 libgrass_calc.dylib -> libgrass_calc.7.8.dylib
-rwxr-xr-x  1 macports  wheel   52292 May 17 11:40 libgrass_ccmath.7.8.dylib
lrwxr-xr-x  1 macports  wheel      25 May 17 11:40 libgrass_ccmath.dylib -> libgrass_ccmath.7.8.dylib
-rwxr-xr-x  1 macports  wheel   49460 May 17 11:40 libgrass_cdhc.7.8.dylib
lrwxr-xr-x  1 macports  wheel      23 May 17 11:40 libgrass_cdhc.dylib -> libgrass_cdhc.7.8.dylib
-rwxr-xr-x  1 macports  wheel   26476 May 17 11:40 libgrass_cluster.7.8.dylib
lrwxr-xr-x  1 macports  wheel      26 May 17 11:40 libgrass_cluster.dylib -> libgrass_cluster.7.8.dylib
-rwxr-xr-x  1 macports  wheel   33472 May 17 11:40 libgrass_datetime.7.8.dylib
lrwxr-xr-x  1 macports  wheel      27 May 17 11:40 libgrass_datetime.dylib -> libgrass_datetime.7.8.dylib
-rwxr-xr-x  1 macports  wheel   61980 May 17 11:40 libgrass_dbmibase.7.8.dylib
lrwxr-xr-x  1 macports  wheel      27 May 17 11:40 libgrass_dbmibase.dylib -> libgrass_dbmibase.7.8.dylib
-rwxr-xr-x  1 macports  wheel   45424 May 17 11:40 libgrass_dbmiclient.7.8.dylib
lrwxr-xr-x  1 macports  wheel      29 May 17 11:40 libgrass_dbmiclient.dylib -> libgrass_dbmiclient.7.8.dylib
-rwxr-xr-x  1 macports  wheel   37752 May 17 11:40 libgrass_dbmidriver.7.8.dylib
lrwxr-xr-x  1 macports  wheel      29 May 17 11:40 libgrass_dbmidriver.dylib -> libgrass_dbmidriver.7.8.dylib
-rwxr-xr-x  1 macports  wheel   18580 May 17 11:40 libgrass_dbstubs.7.8.dylib
lrwxr-xr-x  1 macports  wheel      26 May 17 11:40 libgrass_dbstubs.dylib -> libgrass_dbstubs.7.8.dylib
-rwxr-xr-x  1 macports  wheel   81904 May 17 11:40 libgrass_dgl.7.8.dylib
lrwxr-xr-x  1 macports  wheel      22 May 17 11:40 libgrass_dgl.dylib -> libgrass_dgl.7.8.dylib
-rwxr-xr-x  1 macports  wheel   88884 May 17 11:40 libgrass_dig2.7.8.dylib
lrwxr-xr-x  1 macports  wheel      23 May 17 11:40 libgrass_dig2.dylib -> libgrass_dig2.7.8.dylib
-rwxr-xr-x  1 macports  wheel   49876 May 17 11:40 libgrass_display.7.8.dylib
lrwxr-xr-x  1 macports  wheel      26 May 17 11:40 libgrass_display.dylib -> libgrass_display.7.8.dylib
-rwxr-xr-x  1 macports  wheel   31224 May 17 11:40 libgrass_driver.7.8.dylib
lrwxr-xr-x  1 macports  wheel      25 May 17 11:40 libgrass_driver.dylib -> libgrass_driver.7.8.dylib
-rwxr-xr-x  1 macports  wheel   75156 May 17 11:40 libgrass_dspf.7.8.dylib
lrwxr-xr-x  1 macports  wheel      23 May 17 11:40 libgrass_dspf.dylib -> libgrass_dspf.7.8.dylib
-rwxr-xr-x  1 macports  wheel  119104 May 17 11:40 libgrass_g3d.7.8.dylib
lrwxr-xr-x  1 macports  wheel      22 May 17 11:40 libgrass_g3d.dylib -> libgrass_g3d.7.8.dylib
-rwxr-xr-x  1 macports  wheel  282856 May 17 11:40 libgrass_gis.7.8.dylib
lrwxr-xr-x  1 macports  wheel      22 May 17 11:40 libgrass_gis.dylib -> libgrass_gis.7.8.dylib
-rwxr-xr-x  1 macports  wheel   49860 May 17 11:40 libgrass_gmath.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_gmath.dylib -> libgrass_gmath.7.8.dylib
-rwxr-xr-x  1 macports  wheel   91808 May 17 11:40 libgrass_gpde.7.8.dylib
lrwxr-xr-x  1 macports  wheel      23 May 17 11:40 libgrass_gpde.dylib -> libgrass_gpde.7.8.dylib
-rwxr-xr-x  1 macports  wheel   57524 May 17 11:40 libgrass_gproj.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_gproj.dylib -> libgrass_gproj.7.8.dylib
-rwxr-xr-x  1 macports  wheel   22564 May 17 11:40 libgrass_htmldriver.7.8.dylib
lrwxr-xr-x  1 macports  wheel      29 May 17 11:40 libgrass_htmldriver.dylib -> libgrass_htmldriver.7.8.dylib
-rwxr-xr-x  1 macports  wheel   71568 May 17 11:40 libgrass_imagery.7.8.dylib
lrwxr-xr-x  1 macports  wheel      26 May 17 11:40 libgrass_imagery.dylib -> libgrass_imagery.7.8.dylib
-rwxr-xr-x  1 macports  wheel   17152 May 17 11:40 libgrass_interpdata.7.8.dylib
lrwxr-xr-x  1 macports  wheel      29 May 17 11:40 libgrass_interpdata.dylib -> libgrass_interpdata.7.8.dylib
-rwxr-xr-x  1 macports  wheel   70796 May 17 11:40 libgrass_interpfl.7.8.dylib
lrwxr-xr-x  1 macports  wheel      27 May 17 11:40 libgrass_interpfl.dylib -> libgrass_interpfl.7.8.dylib
-rwxr-xr-x  1 macports  wheel   42324 May 17 11:41 libgrass_iortho.7.8.dylib
lrwxr-xr-x  1 macports  wheel      25 May 17 11:41 libgrass_iortho.dylib -> libgrass_iortho.7.8.dylib
-rw-r--r--  1 macports  wheel   31240 May 17 11:40 libgrass_iostream.7.8.a
-rwxr-xr-x  1 macports  wheel   42608 May 17 11:40 libgrass_lidar.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_lidar.dylib -> libgrass_lidar.7.8.dylib
-rwxr-xr-x  1 macports  wheel   17296 May 17 11:40 libgrass_linkm.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_linkm.dylib -> libgrass_linkm.7.8.dylib
-rwxr-xr-x  1 macports  wheel   26272 May 17 11:41 libgrass_lrs.7.8.dylib
lrwxr-xr-x  1 macports  wheel      22 May 17 11:41 libgrass_lrs.dylib -> libgrass_lrs.7.8.dylib
-rwxr-xr-x  1 macports  wheel   28500 May 17 11:40 libgrass_manage.7.8.dylib
lrwxr-xr-x  1 macports  wheel      25 May 17 11:40 libgrass_manage.dylib -> libgrass_manage.7.8.dylib
-rwxr-xr-x  1 macports  wheel   48352 May 17 11:40 libgrass_neta.7.8.dylib
lrwxr-xr-x  1 macports  wheel      23 May 17 11:40 libgrass_neta.dylib -> libgrass_neta.7.8.dylib
-rwxr-xr-x  1 macports  wheel   46704 May 17 11:40 libgrass_nviz.7.8.dylib
lrwxr-xr-x  1 macports  wheel      23 May 17 11:40 libgrass_nviz.dylib -> libgrass_nviz.7.8.dylib
-rwxr-xr-x  1 macports  wheel  375628 May 17 11:40 libgrass_ogsf.7.8.dylib
lrwxr-xr-x  1 macports  wheel      23 May 17 11:40 libgrass_ogsf.dylib -> libgrass_ogsf.7.8.dylib
-rwxr-xr-x  1 macports  wheel   39272 May 17 11:40 libgrass_pngdriver.7.8.dylib
lrwxr-xr-x  1 macports  wheel      28 May 17 11:40 libgrass_pngdriver.dylib -> libgrass_pngdriver.7.8.dylib
-rwxr-xr-x  1 macports  wheel   23256 May 17 11:40 libgrass_psdriver.7.8.dylib
lrwxr-xr-x  1 macports  wheel      27 May 17 11:40 libgrass_psdriver.dylib -> libgrass_psdriver.7.8.dylib
-rwxr-xr-x  1 macports  wheel   16976 May 17 11:40 libgrass_qtree.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_qtree.dylib -> libgrass_qtree.7.8.dylib
-rwxr-xr-x  1 macports  wheel  149296 May 17 11:40 libgrass_raster.7.8.dylib
lrwxr-xr-x  1 macports  wheel      25 May 17 11:40 libgrass_raster.dylib -> libgrass_raster.7.8.dylib
-rwxr-xr-x  1 macports  wheel   34444 May 17 11:40 libgrass_rli.7.8.dylib
lrwxr-xr-x  1 macports  wheel      22 May 17 11:40 libgrass_rli.dylib -> libgrass_rli.7.8.dylib
-rwxr-xr-x  1 macports  wheel   17060 May 17 11:40 libgrass_rowio.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_rowio.dylib -> libgrass_rowio.7.8.dylib
-rwxr-xr-x  1 macports  wheel   43708 May 17 11:40 libgrass_rtree.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_rtree.dylib -> libgrass_rtree.7.8.dylib
-rwxr-xr-x  1 macports  wheel   27040 May 17 11:40 libgrass_segment.7.8.dylib
lrwxr-xr-x  1 macports  wheel      26 May 17 11:40 libgrass_segment.dylib -> libgrass_segment.7.8.dylib
-rwxr-xr-x  1 macports  wheel   46852 May 17 11:40 libgrass_shape.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_shape.dylib -> libgrass_shape.7.8.dylib
-rwxr-xr-x  1 macports  wheel   54828 May 17 11:41 libgrass_sim.7.8.dylib
lrwxr-xr-x  1 macports  wheel      22 May 17 11:41 libgrass_sim.dylib -> libgrass_sim.7.8.dylib
-rwxr-xr-x  1 macports  wheel   38308 May 17 11:40 libgrass_sqlp.7.8.dylib
lrwxr-xr-x  1 macports  wheel      23 May 17 11:40 libgrass_sqlp.dylib -> libgrass_sqlp.7.8.dylib
-rwxr-xr-x  1 macports  wheel   22844 May 17 11:40 libgrass_stats.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_stats.dylib -> libgrass_stats.7.8.dylib
-rwxr-xr-x  1 macports  wheel   22528 May 17 11:40 libgrass_symb.7.8.dylib
lrwxr-xr-x  1 macports  wheel      23 May 17 11:40 libgrass_symb.dylib -> libgrass_symb.7.8.dylib
-rwxr-xr-x  1 macports  wheel   22808 May 17 11:40 libgrass_temporal.7.8.dylib
lrwxr-xr-x  1 macports  wheel      27 May 17 11:40 libgrass_temporal.dylib -> libgrass_temporal.7.8.dylib
-rwxr-xr-x  1 macports  wheel  416352 May 17 11:40 libgrass_vector.7.8.dylib
lrwxr-xr-x  1 macports  wheel      25 May 17 11:40 libgrass_vector.dylib -> libgrass_vector.7.8.dylib
-rwxr-xr-x  1 macports  wheel   47808 May 17 11:40 libgrass_vedit.7.8.dylib
lrwxr-xr-x  1 macports  wheel      24 May 17 11:40 libgrass_vedit.dylib -> libgrass_vedit.7.8.dylib

comment:27 Changed 5 weeks ago by Veence (Vincent)

Thanks. So the library is in the right place. This is really darn peculiar. Let me think further.

comment:28 Changed 5 weeks ago by Veence (Vincent)

Try out this kludge:

Copy the contents of /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_grass7/grass7/work/grass-7.8.3/dist.x86_64-apple-darwin19.4.0/lib into /opt/local/share/grass78/lib

Build grass7. DON’T INSTALL IT. BUILD ONLY.

If the build works, then remove every file from /opt/local/share/grass78/lib.

Then install the port.

comment:29 Changed 5 weeks ago by dershow

I needed a few minor changes from what you suggested. First, I had to create /opt/local/share/grass78 and /opt/local/share/grass78/lib as they didn't exist. The path to copy from was dist.x86_64-apple-darwin19.5.0 ( not 19.4....I assume because I'm on 10.15). Is this hardcoded somewhere and the cause of the problem?!?

I then was able to build, remove the share directory and install successfully!

comment:30 Changed 5 weeks ago by ryandesign (Ryan Schmidt)

Maybe Apple has introduced additional restrictions on the use of DYLD_ environment variables in 10.15. It had already introduced some restrictions on them in 10.11.

I don't know if this is relevant, but 10.15 introduced the hardened runtime, and it sounds like apps that use the hardened runtime have to request the com.apple.security.cs.allow-dyld-environment-variables entitlement if they want DYLD_ environment variables to be able to affect them. Of course we're not talking about an app here; we're talking about a command line program being run as part of a build process. It seems unlikely that Apple would have altered how that works, since that would break tons of build systems. I don't know whether the hardened runtime could possibly be being used in this instance or what the criteria are for when it is used.

comment:31 in reply to:  29 Changed 5 weeks ago by ryandesign (Ryan Schmidt)

Replying to dershow:

The path to copy from was dist.x86_64-apple-darwin19.5.0 ( not 19.4....I assume because I'm on 10.15).

darwin19.4.0 is macOS 10.15.4. darwin19.5.0 is macOS 10.15.5.

Is this hardcoded somewhere and the cause of the problem?!?

The build process undoubtedly determines your OS version and uses it in the directory paths.

comment:32 Changed 5 weeks ago by Veence (Vincent)

Happy it worked with this kludge.

@Ryan: yeah, that sounds like it. While I agree security is important, I think Apple had gone a bit overboard lately, and the extra protection measures wrapped around the newest MacOS versions are more a hassle than a benefit. To be honest, that’s one of the reasons I didn't upgrade to 10.15 (besides it lacking any fundamental new functionality I might desire or need). I also have disabled CSR on my system: while I don’t recommend it to the layman, at least I’m free to wipe out some files or default Applications I don’t want (e.g.: Stocks) and I can install Dtrace probes about anywhere to monitor what's going on (as well as writing kexts). The default MacOS config really cripples the control users have on their machines.

Maybe disabling CSR would solve this problem. If your hypothesis is correct, Ryan, and MacOS begins to diverge from widely accepted UNIX conventions because of foisted restrictive "security" features on its users, then we shouldn't wonder seeing more and more mainstream Open Source developers drifting away from Apple.

comment:33 Changed 5 weeks ago by nilason

This is indeed strange. Yet I'm not all convinced it is caused by OS changes alone though. Note, it did build on on macOS 10.15.4 or darwin/19.4.0 (the same as for the initial log file by dershow). Even if I have also been thinking of apple security measurements being the cause...

comment:34 Changed 5 weeks ago by Veence (Vincent)

Is anyone aware of a successful build on 10.15?

comment:35 Changed 5 weeks ago by nilason

Other case than the buildbot build I mentioned above, I don't know (at least not macports build of GRASS). Of course that can be behind a VM and perhaps work differently in this regard even if I doubt that would be the case (i.e. work differently).

Sidenote: presently the buildbots fail because of fail on dependency install of "spatialite +proj6" (anonymous login required). Any way to circumvent that?

comment:36 Changed 5 weeks ago by Veence (Vincent)

I’m not sure the VMs work the same way. CSR is somehow enforced at the firmware level, so unless I’m mistaken it would probably have to be disabled on the physical machine running the VMs in order to allow the installation of the hypervisor. I might be wrong, though.

As for spatialite, unfortunately there is no way to fetch the latest CVS/SVN/whatever revision automatically. The last “automatically downloadable” version is the beta which I had packaged before, but that one is over one year old and does not have provisions for Proj6 API. Proj6 = latest CVS = manual fetch, there’s no real escape from this.

If there is a way to upload the tarball somewhere into the macports.org server and have the port use it instead of the original location, that might work. Maybe Ryan knows how to do that?

comment:37 in reply to:  36 ; Changed 4 weeks ago by ryandesign (Ryan Schmidt)

Replying to Veence:

I’m not sure the VMs work the same way. CSR is somehow enforced at the firmware level, so unless I’m mistaken it would probably have to be disabled on the physical machine running the VMs in order to allow the installation of the hypervisor. I might be wrong, though.

No, SIP was not disabled on the buildbot VM host machines. As far as I know, the buildbot guest machines perceive SIP as being enabled.

As for spatialite, unfortunately there is no way to fetch the latest CVS/SVN/whatever revision automatically. The last “automatically downloadable” version is the beta which I had packaged before, but that one is over one year old and does not have provisions for Proj6 API. Proj6 = latest CVS = manual fetch, there’s no real escape from this.

If there is a way to upload the tarball somewhere into the macports.org server and have the port use it instead of the original location, that might work. Maybe Ryan knows how to do that?

#60499

comment:38 in reply to:  37 Changed 3 weeks ago by nilason

Replying to ryandesign:

If there is a way to upload the tarball somewhere into the macports.org server and have the port use it instead of the original location, that might work. Maybe Ryan knows how to do that?

#60499

Thanks @ryandesign, something like that is what I hoped for!

comment:39 Changed 2 weeks ago by nilason

Now I tested on a fresh macOS 10.15.5 install (not upgrade) with newly installed MacPorts and I couldn't reproduce this issue. Installation of grass7 went without complication.

Note: See TracTickets for help on using tickets.