Opened 3 years ago

Last modified 2 years ago

#61858 assigned defect

libunistring: build fails due to failing configure checks

Reported by: chhil (Murtuza Chhil) Owned by: ci42
Priority: Normal Milestone:
Component: ports Version: 2.6.4
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: libunistring

Description

Using https://distfiles.macports.org/MacPorts/MacPorts-2.6.4_1-11-BigSur.pkg

Installing git errors out. sudo port install git

Error: Failed to build libunistring: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_libunistring/libunistring/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port git failed

From the log file generated

:info:build In file included from ./stdint.h:114:
:info:build In file included from ./sys/types.h:48:
:info:build In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/sys/types.h:170:
:info:build /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/sys/_types/_useconds_t.h:31:33: error: cannot combine with previous 'type-name' declaration specifier
:info:build typedef __darwin_useconds_t     useconds_t;
:info:build                                 ^
:info:build ./../config.h:2170:29: note: expanded from macro 'useconds_t'
:info:build #define useconds_t unsigned int
:info:build                             ^
:info:build In file included from amemxfrm.c:33:
:info:build In file included from ./stdlib.h:45:
:info:build In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/stdlib.h:66:
:info:build In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/sys/wait.h:110:
:info:build In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/sys/resource.h:72:
:info:build In file included from ./stdint.h:114:
:info:build In file included from ./sys/types.h:48:
:info:build In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/sys/types.h:170:
:info:build /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/sys/_types/_useconds_t.h:31:33: error: 'type-name' cannot be signed or unsigned
:info:build ./../config.h:2170:20: note: expanded from macro 'useconds_t'
:info:build #define useconds_t unsigned int
:info:build                    ^
:info:build 9 errors generated.
:info:build make[2]: *** [config.h] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_libunistring/libunistring/work/libunistring-0.9.10/lib'
:info:build make[1]: *** [all-recursive] Error 1
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_libunistring/libunistring/work/libunistring-0.9.10'
:info:build make: *** [all] Error 2
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_libunistring/libunistring/work/libunistring-0.9.10'
:info:build Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_libunistring/libunistring/work/libunistring-0.9.10" && /usr/bin/make -j8 -w all 
:info:build Exit code: 2
:error:build Failed to build libunistring: command execution failed
:debug:build Error code: CHILDSTATUS 86213 2
:debug:build Backtrace: command execution failed
:debug:build     while executing
:debug:build "system {*}$notty {*}$nice $fullcmdstring"
:debug:build     invoked from within
:debug:build "command_exec build"
:debug:build     (procedure "portbuild::build_main" line 8)
:debug:build     invoked from within
:debug:build "$procedure $targetname"
:error:build See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_libunistring/libunistring/main.log for details.

Attachments (3)

main.log (171.2 KB) - added by chhil (Murtuza Chhil) 3 years ago.
Log file that was generated
config.log (3.3 MB) - added by chhil (Murtuza Chhil) 3 years ago.
Attched file is from /opt/local/varmacports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_libunistring/libunistring/work/libunistring-0.9.10/config.log
macports.out.zip (969.9 KB) - added by chhil (Murtuza Chhil) 3 years ago.
Output of installing port darktable. This was before I realized maybe the conf files that were open in the editor had not been deleted.

Change History (25)

Changed 3 years ago by chhil (Murtuza Chhil)

Attachment: main.log added

Log file that was generated

comment:1 Changed 3 years ago by jmroot (Joshua Root)

Owner: set to ci42
Status: newassigned

Why is MACOSX_DEPLOYMENT_TARGET set to 10.7?

comment:2 Changed 3 years ago by jmroot (Joshua Root)

:info:configure checking for useconds_t... no

This configure check seems to be producing an incorrect result; please attach the config.log as well.

comment:3 Changed 3 years ago by chhil (Murtuza Chhil)

Why is MACOSX_DEPLOYMENT_TARGET set to 10.7?

Following build instructions for an app. https://github.com/darktable-org/darktable/blob/master/packaging/macosx/BUILD.txt#L6

please attach the config.log

I am new to MacOS and macports environment, please could you provide a mor specific location to find this file you are requesting?

Changed 3 years ago by chhil (Murtuza Chhil)

Attachment: config.log added

Attched file is from /opt/local/varmacports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_libunistring/libunistring/work/libunistring-0.9.10/config.log

comment:4 Changed 3 years ago by jmroot (Joshua Root)

Keywords: git libunistring removed
Port: libunistring added; git removed
Summary: git : install failslibunistring: build fails due to failing configure checks

You're also building for x86_64 on an ARM system. Cross-compiling is tricky at the best of times.

There seems to be a cascade of errors in the configure script, each causing later checks to fail, starting with this:

configure:24350: checking for pid_t
configure:24350: /usr/bin/clang -c -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk -arch x86_64 -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk conftest.c >&5
In file included from conftest.c:126:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/sys/types.h:81:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/machine/endian.h:35:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/i386/endian.h:99:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/sys/_endian.h:130:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/libkern/_OSByteOrder.h:80:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/libkern/arm/OSByteOrder.h:15:1: error: redefinition of '_OSSwapInt16'
_OSSwapInt16(
^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/libkern/i386/_OSByteOrder.h:46:1: note: previous definition is here
_OSSwapInt16(
^

Including both arm and i386 versions of the headers isn't going to work very well, naturally.

comment:5 Changed 3 years ago by chhil (Murtuza Chhil)

Including both arm and i386 versions of the headers isn't going to work very well, naturally.

Could you guide me or provide pointers on how to get to building for the right architecture on my M1? I assume it needs to be arm only. I did try changing build_arch in the macports.conf to amd64 and got the same errors.

comment:6 Changed 3 years ago by kencu (Ken)

darktable is a port in macports, but it does not appear to have been well cared for lately, based on this build history here <https://ports.macports.org/port/darktable/builds>. So there is no guarantee at this moment that it will build. Also, arm64 Macs have been out for only about a month, represent a brand new architecture, and there will be lots of teething pains yet to be found. Unfortunately the maintainer listed for darktable, although very skilled, has been absent from MacPorts for 1/2 a year now, and we have no information if or when he'll be back here again.

I only say that so you know where you're starting from and your expectations are realistic.

No walkthrough currently on the internet is going to be very useful, especially on arm64 macs, and especially one that tells you to set the deployment target to 10.7, which is a decade old, and only supported Intel processors. So to be honest, let's take that with grain of salt.

So let's start fully fresh. Completely erase all your MacPorts installation:

sudo port -fp uninstall installed

and then:

$ sudo rm -rf \
    /opt/local \
    /Applications/DarwinPorts \
    /Applications/MacPorts \
    /Library/LaunchDaemons/org.macports.* \
    /Library/Receipts/DarwinPorts*.pkg \
    /Library/Receipts/MacPorts*.pkg \
    /Library/StartupItems/DarwinPortsStartup \
    /Library/Tcl/darwinports1.0 \
    /Library/Tcl/macports1.0 \
    ~/.macports

Then install MacPorts from the arm64 installer, using only Apple's Terminal.app and no other shell.

Make sure you have both the current Xcode installed and the current Command Line Tools installed. Be as certain as you can about this -- if they don't match, you are doomed.

Now don't touch a single thing in the defaults -- don't use a different install directory, don't uee a different shell, don't try to install your ports to a symlinked external USB drive, don't touch a thing in macports.conf or any other *.conf file, don't do a single thing that is other than a totally garden-variety, standard, run-of-the-mill MacPorts default installation.

Your best bet is to go down the well-trodden (as it is ...) path at this point.

Then just give it a try:

sudo port -v install darktable

and report build errors and failures as they come up, port by port. There are certain to be some, as we have no reports of anyone installing DarkTable on an arm64 Mac ever so far.

comment:7 Changed 3 years ago by chhil (Murtuza Chhil)

Extremely thankful for your patience and for following up. I will follow instructions and report back.

comment:8 Changed 3 years ago by chhil (Murtuza Chhil)

Restarting fresh. Ports uninstalled, files removed as requested. XCode installed using app store.

/usr/bin/xcodebuild -version
Xcode 12.3
Build version 12C33

Commandline tools 12.3 installed from apple developer website. Macports installed for BigSur. Default conf files (whatever was installed)

Error :

--->  Computing dependencies for darktable...................................................................................................................................................................................................................................................
Error: Cannot install ffmpeg for the archs 'arm64 x86_64' because
Error: its dependency libvpx only supports the archs 'x86_64 i386'.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port darktable failed

comment:9 Changed 3 years ago by kencu (Ken)

ok, that's going to be the first hurdle then.

BTW, the prebuilt dmg from the darktable website might just work right now as it is, under rosetta, while the arm build gets sorted out.

comment:10 Changed 3 years ago by kencu (Ken)

I am a bit surprised that macports is right off the bat trying to build it as a universal binary....that we will have to shut down I think,as that will be an order of magnitude more complicated to accomplish...

comment:11 Changed 3 years ago by chhil (Murtuza Chhil)

Yes, the pre-built one works and have it installed. I simply wanted to be on the current master instead of just the released version).

bit surprised that macports is right off ...

I might have screwed up here. I noticed some edited conf files were open in an editor and just did not get deleted. So I redid the

sudo port -v install darktable

Before redoing it (the previous run) took a long time before it failed. The following is from line 135875 from the log. I will attach the output log if it helps.

--->  Cleaning texinfo
--->  Removing work directory for texinfo
Error: Requested variants "+universal" do not match those the build was started with: "".
Error: Please use the same variants again, or run 'port clean libunistring' first to remove the existing partially completed build.
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_libunistring/libunistring/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port darktable failed

Changed 3 years ago by chhil (Murtuza Chhil)

Attachment: macports.out.zip added

Output of installing port darktable. This was before I realized maybe the conf files that were open in the editor had not been deleted.

comment:12 Changed 3 years ago by kencu (Ken)

I had a go at building darktable on Catalina.

First thing I can tell you is that it is set up to only build properly in the +quartz variant.

I fixed it to the point where the x11 variant would build (this is the default for MacPorts) and run, but there are no visible menus -- otherwise it works. I'll check that out and consider pushing it if that x11 fix is correct.

comment:13 Changed 3 years ago by kencu (Ken)

I installed the upstream pre-built DMG version, and it doesn't have any menus either, so I guess that is how darktable's interface is set up.

So I pushed a minor tweak to allow it to build x11, which should make it a bit easier for people to get going.

comment:14 Changed 3 years ago by chhil (Murtuza Chhil)

Thanks Ken.

I had another go with

sudo port -v install darktable          
Password:
--->  Computing dependencies for darktable...................................................................................................................................................................................................................................................
Error: Cannot install ffmpeg for the archs 'arm64 x86_64' because
Error: its dependency libvpx only supports the archs 'x86_64 i386'.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port darktable failed

comment:15 Changed 3 years ago by kencu (Ken)

yes, I will have to see if anyone has fixed libvpx for arm64 yet. libvpx is an optional dependency for ffmpeg I recall, so you could just delete that from the ffmpeg Portfile and keep going I think...

comment:16 Changed 3 years ago by kencu (Ken)

Here you are:

% port -v installed ffmpeg
The following ports are currently installed:
  ffmpeg @4.3.1_0+gpl2-x11 (active) platform='darwin 20' archs='arm64' date='2020-12-20T00:35:30-0500'

Just delete libvpx and the configure argument that enables libvpx and that's all you have to do. I'll push something about that.

libvpx will no doubt be able to build on arm64 macs -- there is a target for that -- but our Portfile will need tweaking I guess to make that happen.

comment:17 Changed 3 years ago by kencu (Ken)

I still don't understand why MacPorts is trying to build everything +universal on your system, by the way...

Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:18 Changed 3 years ago by chhil (Murtuza Chhil)

Sorry, for some reason I stopped getting notification emails for this ticket. I just wanted to check and came across the updates. I will try

Just delete libvpx and the configure argument that enables libvpx and that's all you have to do.

I hope I can figure it out :)

comment:19 Changed 3 years ago by frgazor

Hi,

I'm also trying to install darktable on my m1 air. Off course as a total n00b with mac and macports I'm not very successful.

First I did this and removed libvpx from libs and configure part:

sudo port edit --editor nano ffmpeg 

Now ffmpeg builds and install just fine.

Next I do this:

sudo port -v install darktable

Many dependencies are successfully installed and then it fails trying to build ossp-uuid:

--->  Computing dependencies for ossp-uuid.
--->  Fetching archive for ossp-uuid
--->  ossp-uuid-1.6.2_11+perl5_28+universal.darwin_20.arm64-x86_64.tbz2 doesn't seem to exist in /opt/local/var/macports/incoming/verified
--->  Attempting to fetch ossp-uuid-1.6.2_11+perl5_28+universal.darwin_20.arm64-x86_64.tbz2 from https://packages.macports.org/ossp-uuid
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
--->  Attempting to fetch ossp-uuid-1.6.2_11+perl5_28+universal.darwin_20.arm64-x86_64.tbz2 from https://lil.fr.packages.macports.org/ossp-uuid
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
--->  Attempting to fetch ossp-uuid-1.6.2_11+perl5_28+universal.darwin_20.arm64-x86_64.tbz2 from https://cph.dk.packages.macports.org/ossp-uuid
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
--->  Configuring ossp-uuid
--->  Configuring ossp-uuid for architecture arm64
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_ossp-uuid/ossp-uuid/work/uuid-1.6.2-arm64" && ./configure --prefix=/opt/local --without-php --without-pgsql --includedir=/opt/local/include/ossp --with-perl --with-perl-compat --host=aarch64-apple-darwin20.2.0 
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
shtool:echo:Warning: unable to determine terminal sequence for bold mode
Configuring OSSP uuid (Universally Unique Identifier), version 1.6.2 (04-Jul-2008)
checking whether make sets $(MAKE)... yes
checking for aarch64-apple-darwin20.2.0-gcc... /usr/bin/clang
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/clang accepts -g... yes
checking for /usr/bin/clang option to accept ISO C89... none needed
checking for compilation debug mode... disabled
checking how to run the C preprocessor... /usr/bin/clang -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking whether to build against external Dmalloc library... no
checking build system type... arm-apple-darwin20.2.0
checking host system type... Invalid configuration `aarch64-apple-darwin20.2.0': machine `aarch64-apple' not recognized
configure: error: /bin/sh ./config.sub aarch64-apple-darwin20.2.0 failed
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_ossp-uuid/ossp-uuid/work/uuid-1.6.2-arm64" && ./configure --prefix=/opt/local --without-php --without-pgsql --includedir=/opt/local/include/ossp --with-perl --with-perl-compat --host=aarch64-apple-darwin20.2.0 
Exit code: 1
Error: Failed to configure ossp-uuid, consult /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_ossp-uuid/ossp-uuid/work/uuid-1.6.2-arm64/config.log
Error: Failed to configure ossp-uuid: configure failure: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_ossp-uuid/ossp-uuid/main.log for details.
Error: Unable to execute port: upgrade cairo failed

comment:20 in reply to:  4 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to jmroot:

There seems to be a cascade of errors in the configure script, each causing later checks to fail, starting with this:

configure:24350: checking for pid_t
configure:24350: /usr/bin/clang -c -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk -arch x86_64 -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk conftest.c >&5
In file included from conftest.c:126:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/sys/types.h:81:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/machine/endian.h:35:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/i386/endian.h:99:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/sys/_endian.h:130:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/libkern/_OSByteOrder.h:80:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/libkern/arm/OSByteOrder.h:15:1: error: redefinition of '_OSSwapInt16'
_OSSwapInt16(
^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/libkern/i386/_OSByteOrder.h:46:1: note: previous definition is here
_OSSwapInt16(
^

Including both arm and i386 versions of the headers isn't going to work very well, naturally.

Right, but what is causing that to happen? Same issue reported in gtime in #62013 and gmake in #62822.

comment:21 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign added

comment:22 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

Same issue reported in grep in #64135.

Note: See TracTickets for help on using tickets.