Opened 6 weeks ago

Last modified 5 weeks ago

#19358 new bug

building on macos on apple ARM, build fails to extract the package:

Reported by: hiryu Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Build System Version: R1/Development
Keywords: Cc: nephele
Blocked By: Blocking:
Platform: All

Description (last modified by nephele)

Package tool fails with the same invocation on MacOS on ARM with this:

DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/Users/hiryu/haiku/haiku/generated.x86_64/objects/darwin/lib" objects/darwin/arm64/release/tools/package/package extract -C "build_packages/gcc_syslibs_devel-13.3.0_2023_08_10-1-x86_64" download/gcc_syslibs_devel-13.3.0_2023_08_10-1-x86_64.hpkg 
Error: Failed to create attribute "BEOS:TYPE" of file "develop/headers/c++/algorithm": Permission denied

Here is the entire build log of the build chain and Haiku itself: https://neo-zeon.de/~hiryu/macos-haiku.log

I am attempting to build on M3 Apple Silicon for x86-64 on case sensitive HFS+ volume.

hrev58538

Change History (4)

comment:1 by nephele, 6 weeks ago

Cc: nephele added

comment:2 by nephele, 6 weeks ago

Description: modified (diff)
Version: R1/beta5R1/Development

comment:3 by pulkomandy, 5 weeks ago

When building on a non-haiku host, there is an emulation layer to support BeOS style extended attributes. There are 3 different implementations of it:

  • One not using host attributes at all,
  • One using native attributes directly,
  • One using native attributes only to store references to external files storing the actual attributes

First of all, you should check which one was picked up by the configure script. You can check this in the generated/build/BuildConfig file:

HAIKU_HOST_USE_XATTR		?= "1" ;
HAIKU_HOST_USE_XATTR_REF	?= "0" ;

Here my machine is set to use native xattr directly.

If using XATTR_REF, you can also check the directory pointed by HAIKU_BUILD_ATTRIBUTES_DIR in case there are leftover files there with the wrong permissions.

If using neither XATTR or XATTR_REF, you should check if it's possible to use at least XATTR_REF, as that will be more reliable. Maybe the needed commands are not installed, see the check_native_xattrs function in the configure script, apparently on "darwin" it expects the xattr command and checks the -w and -p flags to set and get atttibutes.

comment:4 by hiryu, 5 weeks ago

From BuildConfig:

HAIKU_HOST_USE_XATTR            ?= "1" ;
HAIKU_HOST_USE_XATTR_REF        ?= "0" ;

And xattr definitely seems to work on the MacOS host OS:

xattr -w test 1 ./generated.x86_64
xattr -p test ./generated.x86_64
1

Here's HAIKU_BUILD_ATTRIBUTES_DIR:

HAIKU_BUILD_ATTRIBUTES_DIR      ?= "/Users/hiryu/haiku/haiku/generated.x86_64/attributes" ;

I usually delete the entire generated.x86_64 directory each build anyway just to ensure I get a proper and clean build.

Note: See TracTickets for help on using tickets.