diff --git a/etc/spack/defaults/darwin/packages.yaml b/etc/spack/defaults/darwin/packages.yaml index 63f85bbbd9..9fd54f2e6e 100644 --- a/etc/spack/defaults/darwin/packages.yaml +++ b/etc/spack/defaults/darwin/packages.yaml @@ -50,4 +50,4 @@ packages: # Apple bundles libuuid in libsystem_c version 1353.100.2, # although the version number used here isn't critical - spec: apple-libuuid@1353.100.2 - prefix: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk + prefix: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk diff --git a/var/spack/repos/builtin/packages/apple-libuuid/package.py b/var/spack/repos/builtin/packages/apple-libuuid/package.py index 4c7526d611..9028efc5ac 100644 --- a/var/spack/repos/builtin/packages/apple-libuuid/package.py +++ b/var/spack/repos/builtin/packages/apple-libuuid/package.py @@ -18,28 +18,14 @@ class AppleLibuuid(BundlePackage): # Only supported on 'platform=darwin' conflicts("platform=linux") conflicts("platform=cray") - - @property - def libs(self): - """Export the Apple libuuid library. - - According to https://bugs.freedesktop.org/show_bug.cgi?id=105366, - libuuid is provided as part of libsystem_c. The Apple libsystem_c - library cannot be linked to directly using an absolute path; doing so - will cause the linker to throw an error 'cannot link directly with - /usr/lib/system/libsystem_c.dylib' and the linker will suggest linking - with System.framework instead. Linking to this framework is equivalent - to linking with libSystem.dylib, which can be confirmed on a macOS - system by executing at a terminal the command `ls -l - /System/Library/Frameworks/System.Framework` -- the file "System" is a - symlink to `/usr/lib/libSystem.B.dylib`, and `/usr/lib/libSystem.dylib` - also symlinks to this file. Running `otool -L /usr/lib/libSystem.dylib` - confirms that it will link dynamically to - `/usr/lib/system/libsystem_c.dylib`.""" - - return LibraryList("/usr/lib/libSystem.dylib") + conflicts("platform=windows") @property def headers(self): - """Export the Apple libuuid header.""" - return HeaderList(self.prefix.include.uuid.join("uuid.h")) + return HeaderList( + join_path(self.prefix, "System/Library/Frameworks/Kernel.framework/Headers") + ) + + @property + def libs(self): + return LibraryList(join_path(self.prefix, "System/Library/Frameworks/Kernel.framework"))