[MacPorts] #63414: gdal @3.3.1: opportunistically uses libheif which causes destroot failure when building universal

MacPorts noreply at macports.org
Sat Aug 28 08:07:06 UTC 2021


#63414: gdal @3.3.1: opportunistically uses libheif which causes destroot failure
when building universal
------------------------+----------------------
 Reporter:  ryandesign  |      Owner:  Veence
     Type:  defect      |     Status:  assigned
 Priority:  Normal      |  Milestone:
Component:  ports       |    Version:  2.7.99
 Keywords:              |       Port:  gdal
------------------------+----------------------
 On High Sierra where the universal archs are i386 and x86_64, building
 gdal with the universal variant fails when the libheif port is installed
 without the universal variant:

 {{{
 --->  Staging gdal into destroot
 Error: Failed to destroot gdal: gdal-config differs in
 /opt/local/var/macports/build/_Users_rschmidt_macports_macports-ports-
 ryandesign-fork_gis_gdal/gdal/work/destroot-i386//opt/local/bin and
 /opt/local/var/macports/build/_Users_rschmidt_macports_macports-ports-
 ryandesign-fork_gis_gdal/gdal/work/destroot-x86_64//opt/local/bin and
 cannot be merged
 }}}

 The difference between the two gdal-config files is:

 {{{
 $ diff -u destroot-{i386,x86_64}/opt/local/bin/gdal-config
 --- destroot-i386/opt/local/bin/gdal-config     2021-08-28
 02:43:15.000000000 -0500
 +++ destroot-x86_64/opt/local/bin/gdal-config   2021-08-28
 02:43:05.000000000 -0500
 @@ -1,13 +1,13 @@
  #!/bin/sh
  CONFIG_LIBS="-L/opt/local/lib -lgdal"
 -CONFIG_DEP_LIBS="-lcrypto  -lqhull -lqhull -L/opt/local/lib -lgeos_c
 -L/opt/local/lib -lwebp -L/opt/local/lib -lexpat -lgif -lcharls -lpng
 -L/opt/local/lib/postgresql12 -lpq -lzstd -L/opt/local/lib/proj7/lib
 -lproj  -L/opt/local/lib -lsqlite3 -lz -lpthread -ldl  -L/usr/local/lib
 -lpcre -lLerc   -L/opt/local/lib -lcurl          -liconv  -L/opt/local/lib
 -lxml2      "
 +CONFIG_DEP_LIBS="-L/opt/local/lib -lheif -lcrypto  -lqhull -lqhull
 -L/opt/local/lib -lgeos_c -L/opt/local/lib -lwebp -L/opt/local/lib -lexpat
 -lgif -lcharls -lpng -L/opt/local/lib/postgresql12 -lpq -lzstd
 -L/opt/local/lib/proj7/lib -lproj  -L/opt/local/lib -lsqlite3 -lz
 -lpthread -ldl  -L/usr/local/lib -lpcre -lLerc   -L/opt/local/lib -lcurl
 -liconv  -L/opt/local/lib -lxml2      "
  CONFIG_PREFIX="/opt/local"
  CONFIG_CFLAGS="-I/opt/local/include"
  CONFIG_DATA="/opt/local/share/gdal"
  CONFIG_VERSION="3.3.1"
  CONFIG_OGR_ENABLED=yes
  CONFIG_GNM_ENABLED=yes
 -CONFIG_FORMATS="derived gtiff hfa mem vrt  adrg aigrid airsar arg blx bmp
 bsb cals ceos ceos2 coasp cosar ctg dimap dted elas envisat ers esric fit
 gff gsg gxf hf2 idrisi ilwis ingr iris iso8211 jaxapalsar jdem l1b
 leveller map mrf msgn ngsgeoid nitf northwood pds prf r raw rmf rs2 safe
 saga sdts sentinel2 sgi sigdem srtmhgt terragen tga til tsx usgsdem xpm
 xyz zmap eeda plmosaic rda wcs wms wmts daas ogcapi rasterlite mbtiles
 grib webp gif png pcraster jpeg  pcidsk postgisraster jpegls"
 +CONFIG_FORMATS="derived gtiff hfa mem vrt  adrg aigrid airsar arg blx bmp
 bsb cals ceos ceos2 coasp cosar ctg dimap dted elas envisat ers esric fit
 gff gsg gxf hf2 idrisi ilwis ingr iris iso8211 jaxapalsar jdem l1b
 leveller map mrf msgn ngsgeoid nitf northwood pds prf r raw rmf rs2 safe
 saga sdts sentinel2 sgi sigdem srtmhgt terragen tga til tsx usgsdem xpm
 xyz zmap eeda plmosaic rda wcs wms wmts daas ogcapi rasterlite mbtiles
 grib heif webp gif png pcraster jpeg  pcidsk postgisraster jpegls"
  usage()
  {
         cat <<EOF
 }}}

 So gdal has detected that libheif is installed and has decided to use it
 even though the port does not declare a dependency on it.

 My suggested fix for this problem is that you modify gdal so that it does
 not try to use libheif even if it is installed. Increase the revision to
 ensure that no installed copies of gdal were inadvertently built with
 libheif support.

 The other possible solution—add libheif as a dependency so gdal uses it
 always—doesn't fix this problem in that it would prevent gdal from being
 installed for architectures other than arm64 and x86_64 because libheif
 depends on rav1e which uses cargo and rust which cannot be installed for
 architectures other than arm64 and x86_64; see #62650. Or we could first
 fix that ticket so that libheif only depends on rav1e on the architectures
 where that's possible, then change gdal so that it always depends on
 libheif.

-- 
Ticket URL: <https://trac.macports.org/ticket/63414>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list