From 519918dfed42fd3dc338facdb88f8be205a00383 Mon Sep 17 00:00:00 2001 From: Ganesh Chaudhari Date: Fri, 20 Oct 2023 16:16:16 +0530 Subject: [PATCH] macos: Add support for MacOS 14.X (Sonoma) This commit introduces the new set of changes/ files required to successfully build and package the OpenAFS source code on MacOS 14.X "Sonoma". Signed-off-by: GANESH CHAUDHARI Reviewed-on: https://gerrit.openafs.org/15591 Reviewed-by: Andrew Deason Reviewed-by: Marcio Brito Barbosa Tested-by: Marcio Brito Barbosa Reviewed-by: Benjamin Kaduk (cherry picked from commit f379e1b255ebb5094c5acc11a9234d5a321818c2) Change-Id: I913bf9ae5eda0ae571c727e95f9f3ac113df9f64 Reviewed-on: https://gerrit.openafs.org/15602 Reviewed-by: Michael Meffie Tested-by: BuildBot Reviewed-by: Ganesh G. Chaudhari Reviewed-by: Mark Vitale Reviewed-by: Marcio Brito Barbosa Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand --- src/cf/osconf.m4 | 2 +- src/cf/sysname.m4 | 15 ++ src/config/afs_sysnames.h | 2 + src/config/param.darwin_230.h | 203 +++++++++++++++++++++++++ src/libafs/afs.arm_darwin_230.plist.in | 33 ++++ src/libafs/afs.x86_darwin_230.plist.in | 33 ++++ src/packaging/MacOS/ReadMe.rtf.23 | 7 + src/packaging/MacOS/pkgbuild.sh.in | 4 + 8 files changed, 298 insertions(+), 1 deletion(-) create mode 100644 src/config/param.darwin_230.h create mode 100644 src/libafs/afs.arm_darwin_230.plist.in create mode 100644 src/libafs/afs.x86_darwin_230.plist.in create mode 100644 src/packaging/MacOS/ReadMe.rtf.23 diff --git a/src/cf/osconf.m4 b/src/cf/osconf.m4 index 8eaa993a8b..843998542e 100644 --- a/src/cf/osconf.m4 +++ b/src/cf/osconf.m4 @@ -347,7 +347,7 @@ case $AFS_SYSNAME in XLIBS="${LIB_AFSDB} -framework CoreFoundation" ;; - *_darwin_190 | *_darwin_200 | *_darwin_210 | *_darwin_220) + *_darwin_190 | *_darwin_200 | *_darwin_210 | *_darwin_220 | *_darwin_230) AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation" MT_CFLAGS="-D_REENTRANT" MT_LIBS='${XLIBS}' diff --git a/src/cf/sysname.m4 b/src/cf/sysname.m4 index c872c072fb..aa4ad2cb42 100644 --- a/src/cf/sysname.m4 +++ b/src/cf/sysname.m4 @@ -226,6 +226,18 @@ else AFS_SYSNAME="arm_darwin_220" OSXSDK="macosx13.0" ;; + x86_64-apple-darwin23.*) + AFS_SYSNAME="x86_darwin_230" + OSXSDK="macosx14.0" + ;; + arm-apple-darwin23.*) + AFS_SYSNAME="arm_darwin_230" + OSXSDK="macosx14.0" + ;; + aarch64-apple-darwin23.*) + AFS_SYSNAME="arm_darwin_230" + OSXSDK="macosx14.0" + ;; sparc-sun-solaris2.8) AFS_SYSNAME="sun4x_58" ;; @@ -426,6 +438,9 @@ case $AFS_SYSNAME in *_darwin_220) AFS_PARAM=param.darwin_220.h ;; + *_darwin_230) + AFS_PARAM=param.darwin_230.h + ;; *) AFS_PARAM=param.${AFS_SYSNAME}.h ;; diff --git a/src/config/afs_sysnames.h b/src/config/afs_sysnames.h index 612d631006..196a5d9f2f 100644 --- a/src/config/afs_sysnames.h +++ b/src/config/afs_sysnames.h @@ -101,6 +101,8 @@ #define SYS_NAME_ID_arm_darwin_210 548 #define SYS_NAME_ID_amd64_darwin_220 549 #define SYS_NAME_ID_arm_darwin_220 550 +#define SYS_NAME_ID_amd64_darwin_230 551 +#define SYS_NAME_ID_arm_darwin_230 552 #define SYS_NAME_ID_next_mach20 601 #define SYS_NAME_ID_next_mach30 602 diff --git a/src/config/param.darwin_230.h b/src/config/param.darwin_230.h new file mode 100644 index 0000000000..000ebb0e28 --- /dev/null +++ b/src/config/param.darwin_230.h @@ -0,0 +1,203 @@ +#ifndef AFS_PARAM_H +# define AFS_PARAM_H + +# ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +# define AFS_ENV 1 +# define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */ +# define AFS_64BIT_CLIENT 1 +# define AFS_64BIT_IOPS_ENV 1 +# define AFS_64BIT_SIZEOF 1 /* seriously? */ + +# include + +# define AFS_DARWIN_ENV +# define AFS_DARWIN70_ENV +# define AFS_DARWIN80_ENV +# define AFS_DARWIN90_ENV +# define AFS_DARWIN100_ENV +# define AFS_DARWIN110_ENV +# define AFS_DARWIN120_ENV +# define AFS_DARWIN130_ENV +# define AFS_DARWIN140_ENV +# define AFS_DARWIN150_ENV +# define AFS_DARWIN160_ENV +# define AFS_DARWIN170_ENV +# define AFS_DARWIN180_ENV +# define AFS_DARWIN190_ENV +# define AFS_DARWIN200_ENV +# define AFS_DARWIN210_ENV +# define AFS_DARWIN220_ENV +# define AFS_DARWIN230_ENV +# undef AFS_NONFSTRANS +# define AFS_NONFSTRANS +# define AFS_SYSCALL 230 +# define AFS_NAMEI_ENV 1 +# define DARWIN_REFBASE 3 +# define AFS_WARNUSER_MARINER_ENV 1 +# define AFS_CACHE_VNODE_PATH +# define AFS_NEW_BKG 1 +# define NEED_IOCTL32 + +/* File system entry (used if mount.h doesn't define MOUNT_AFS) */ +# define AFS_MOUNT_AFS "afs" + +# define AFS_HAVE_FFS 1 /* Use system's ffs. */ + +# define AFS_GCPAGS 0 +# define RXK_UPCALL_ENV 1 +# define RXK_TIMEDSLEEP_ENV 1 +# define AFS_USERSPACE_IP_ADDR 1 +# define AFS_SOCKPROXY_ENV 1 + +# ifdef KERNEL +# undef MACRO_BEGIN +# undef MACRO_END + +# include + +# define AFS_GLOBAL_SUNLOCK 1 +# define AFS_VFS34 1 /* What is VFS34??? */ + +# define afsio_iov uio_iov +# define afsio_iovcnt uio_iovcnt +# define afsio_offset uio_offset +# define afsio_seg uio_segflg +# define afsio_resid uio_resid + +# define AFS_UIOSYS UIO_SYSSPACE +# define AFS_UIOUSER UIO_USERSPACE +# define AFS_CLBYTES CLBYTES +# define AFS_KALLOC(x) _MALLOC(x, M_TEMP, M_WAITOK) +# define AFS_KFREE(x,y) _FREE(x,M_TEMP) + +# define v_count v_usecount +# define v_vfsp v_mount +# define vfs_bsize mnt_stat.f_bsize +# define vfs_fsid mnt_stat.f_fsid +# define va_nodeid va_fileid +# define vfs_vnodecovered mnt_vnodecovered +# define direct dirent + +# define BIND_8_COMPAT +# endif /* KERNEL */ + +# else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +# define AFS_ENV 1 +# define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */ +# define AFS_64BIT_CLIENT 1 + +# include + +# define AFS_USERSPACE_ENV +# define AFS_USR_DARWIN_ENV +# define AFS_USR_DARWIN70_ENV +# define AFS_USR_DARWIN80_ENV +# define AFS_USR_DARWIN90_ENV +# define AFS_USR_DARWIN100_ENV +# define AFS_USR_DARWIN110_ENV +# define AFS_USR_DARWIN120_ENV +# define AFS_USR_DARWIN130_ENV +# define AFS_USR_DARWIN140_ENV +# define AFS_USR_DARWIN150_ENV +# define AFS_USR_DARWIN160_ENV +# define AFS_USR_DARWIN170_ENV +# define AFS_USR_DARWIN180_ENV +# define AFS_USR_DARWIN190_ENV +# define AFS_USR_DARWIN200_ENV +# define AFS_USR_DARWIN210_ENV +# define AFS_USR_DARWIN220_ENV +# define AFS_USR_DARWIN230_ENV + +# undef AFS_NONFSTRANS +# define AFS_NONFSTRANS + +# define AFS_SYSCALL 230 +# define DARWIN_REFBASE 0 +# define AFS_WARNUSER_MARINER_ENV 1 + +/* File system entry (used if mount.h doesn't define MOUNT_AFS) */ +# define AFS_MOUNT_AFS "afs" + +# define AFS_HAVE_FFS 1 /* Use system's ffs. */ + +# define AFS_UIOSYS UIO_SYSSPACE +# define AFS_UIOUSER UIO_USERSPACE + +# define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */ +# define RXK_LISTENER_ENV 1 + +# define AFS_VFS34 1 /* What is VFS34??? */ + +# define afsio_iov uio_iov +# define afsio_iovcnt uio_iovcnt +# define afsio_offset uio_offset +# define afsio_seg uio_segflg +# define afsio_resid uio_resid + +# define VATTR_NULL usr_vattr_null + +# define AFS_DIRENT +# ifndef CMSERVERPREF +# define CMSERVERPREF +# endif + +# define BIND_8_COMPAT +# endif /* !defined(UKERNEL) */ + +/* Machine / Operating system information */ +# if defined(__amd64__) + +# define AFS_X86_ENV 1 +# define AFS_64BITUSERPOINTER_ENV 1 + +# define sys_x86_darwin_12 1 +# define sys_x86_darwin_13 1 +# define sys_x86_darwin_14 1 +# define sys_x86_darwin_60 1 +# define sys_x86_darwin_70 1 +# define sys_x86_darwin_80 1 +# define sys_x86_darwin_90 1 +# define sys_x86_darwin_100 1 +# define sys_amd64_darwin_100 1 +# define sys_amd64_darwin_110 1 +# define sys_amd64_darwin_120 1 +# define sys_amd64_darwin_130 1 +# define sys_amd64_darwin_140 1 +# define sys_amd64_darwin_150 1 +# define sys_amd64_darwin_160 1 +# define sys_amd64_darwin_170 1 +# define sys_amd64_darwin_180 1 +# define sys_amd64_darwin_190 1 +# define sys_amd64_darwin_200 1 +# define sys_amd64_darwin_210 1 +# define sys_amd64_darwin_220 1 +# define sys_amd64_darwin_230 1 + +# define SYS_NAME "amd64_darwin_230" +# define SYS_NAME_ID SYS_NAME_ID_amd64_darwin_230 +# define AFSLITTLE_ENDIAN 1 + +# elif defined(__arm64__) + +# define AFS_ARM_ENV 1 +# define AFS_ARM64_DARWIN_ENV 1 + +# define sys_arm_darwin_200 1 +# define sys_arm_darwin_210 1 +# define sys_arm_darwin_220 1 +# define sys_arm_darwin_230 1 + +# define SYS_NAME "arm_darwin_230" +# define SYS_NAME_ID SYS_NAME_ID_arm_darwin_230 +# define AFSLITTLE_ENDIAN 1 + +# else +# error Unsupported architecture +# endif /* __amd64__ */ + +#endif /* AFS_PARAM_H */ diff --git a/src/libafs/afs.arm_darwin_230.plist.in b/src/libafs/afs.arm_darwin_230.plist.in new file mode 100644 index 0000000000..a1385718c5 --- /dev/null +++ b/src/libafs/afs.arm_darwin_230.plist.in @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + afs + CFBundleIdentifier + org.openafs.filesystems.afs + CFBundleInfoDictionaryVersion + 8.0 + CFBundleName + afs + CFBundlePackageType + KEXT + CFBundleShortVersionString + @MACOS_VERSION@ + CFBundleSignature + ???? + CFBundleVersion + @MACOS_VERSION@ + OSBundleLibraries + + com.apple.kpi.bsd + 8.0.0 + com.apple.kpi.mach + 8.0.0 + com.apple.kpi.libkern + 8.0 + + + diff --git a/src/libafs/afs.x86_darwin_230.plist.in b/src/libafs/afs.x86_darwin_230.plist.in new file mode 100644 index 0000000000..a1385718c5 --- /dev/null +++ b/src/libafs/afs.x86_darwin_230.plist.in @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + afs + CFBundleIdentifier + org.openafs.filesystems.afs + CFBundleInfoDictionaryVersion + 8.0 + CFBundleName + afs + CFBundlePackageType + KEXT + CFBundleShortVersionString + @MACOS_VERSION@ + CFBundleSignature + ???? + CFBundleVersion + @MACOS_VERSION@ + OSBundleLibraries + + com.apple.kpi.bsd + 8.0.0 + com.apple.kpi.mach + 8.0.0 + com.apple.kpi.libkern + 8.0 + + + diff --git a/src/packaging/MacOS/ReadMe.rtf.23 b/src/packaging/MacOS/ReadMe.rtf.23 new file mode 100644 index 0000000000..b8d18b896a --- /dev/null +++ b/src/packaging/MacOS/ReadMe.rtf.23 @@ -0,0 +1,7 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\margl1440\margr1440\vieww9000\viewh9000\viewkind0 +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f0\fs24 \cf0 This release of OpenAFS is targeted at MacOS 14.X (Sonoma) and is not recommended for use with any other version.} diff --git a/src/packaging/MacOS/pkgbuild.sh.in b/src/packaging/MacOS/pkgbuild.sh.in index 225cbf520b..edaa7212d6 100644 --- a/src/packaging/MacOS/pkgbuild.sh.in +++ b/src/packaging/MacOS/pkgbuild.sh.in @@ -177,6 +177,10 @@ elif [ x"$majorvers" = x22 ]; then RELNAME="Ventura" THISREL=18 OSVER=13 +elif [ x"$majorvers" = x23 ]; then + RELNAME="Sonoma" + THISREL=19 + OSVER=14 elif [ x"$majorvers" = x ] ; then