this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Reworked how prefixes are created

+53 -20
+1 -1
CMakeLists.txt
··· 16 16 add_subdirectory(src) 17 17 18 18 install(FILES etc/dylib.conf etc/version.conf 19 - DESTINATION /etc/darling) 19 + DESTINATION libexec/darling/etc/darling) 20 20
+47 -7
src/dyld/darling
··· 21 21 SCRIPT=$(readlink -f "$0") 22 22 SCRIPTPATH=$(dirname "$SCRIPT") 23 23 DARLING_PREFIX=$(realpath "$SCRIPTPATH/..") 24 - MINIMUM_PREFIX_VERSION="2" 24 + 25 + selfmtime=$(stat -c %Y "$DARLING_PREFIX/bin/darling") 25 26 26 27 setup_prefix() { 27 28 prefix_pkg="/tmp/prefix.$$.pkg" ··· 31 32 32 33 mkdir -p "$1" 33 34 rm -f "$1/darling-prefix" 35 + 36 + rm -f "$1/system-root" 37 + ln -s / "$1/system-root" 38 + 39 + rm -f "$1/darling-prefix" 34 40 ln -s "system-root${DARLING_PREFIX}" "$1/darling-prefix" 35 41 36 - install_pkg "org.darlinghq.pkg.PrefixHierarchy" 42 + rm -f "$1/dev" 43 + ln -sf "system-root/dev" "$1/dev" 44 + 45 + rm -f "$1/home" 46 + ln -sf "system-root/home" "$1/home" 47 + 48 + rm -f "$1/Users" 49 + ln -sf "home" "$1/Users" 50 + 51 + rm -f "$1/tmp" 52 + ln -sf "system-root/tmp" "$1/tmp" 53 + 54 + rm -f "$1/etc" 2>/dev/null || true 55 + mkdir -p "$1/etc" 56 + ln -sf "../system-root/etc/timezone" "$1/etc/timezone" 57 + ln -sf "../system-root/etc/resolv.conf" "$1/etc/resolv.conf" 58 + ln -sf "../system-root/etc/passwd" "$1/etc/passwd" 59 + ln -sf "../system-root/etc/group" "$1/etc/group" 60 + 61 + # Clean up old cruft (symlinks) 62 + rm -f "$1/bin" "$1/usr/bin" "$1/etc" "$1/System/Library/Frameworks" 2>/dev/null || true 63 + cp -rf "${DARLING_PREFIX}/libexec/darling/"* "$1" 64 + echo -n "$selfmtime" > "$1/.update-timestamp" 65 + 37 66 install_pkg "org.darlinghq.pkg.OpenSSLCertificates" 38 67 39 68 >&2 echo "Prefix is ready." ··· 53 82 "${DARLING_PREFIX}/libexec/darling/usr/bin/installer" -pkg "/system-root${pkgpath}" -target / 54 83 55 84 rm -rf "$temp" 85 + } 86 + 87 + darling_load() { 88 + modprobe darling-mach 89 + } 90 + 91 + darling_unload() { 92 + rmmod darling-mach 56 93 } 57 94 58 95 if [ $# -eq 0 ]; then ··· 77 114 export DPREFIX="$HOME/.darling" 78 115 fi 79 116 80 - if [ ! -d "$DPREFIX" -o ! -f "$DPREFIX/.prefix-version" ]; then 117 + if [ ! -d "$DPREFIX" -o ! -f "$DPREFIX/.update-timestamp" ]; then 81 118 setup_prefix "$DPREFIX" 82 - fi 119 + else 120 + 121 + updatets=$(cat $DPREFIX/.update-timestamp) 122 + if [ "$updatets" != "disable" -a "$updatets" -lt $selfmtime ]; then 123 + setup_prefix "$DPREFIX" 124 + fi 83 125 84 - if [ "$(cat $DPREFIX/.prefix-version)" -lt $MINIMUM_PREFIX_VERSION ]; then 85 - setup_prefix "$DPREFIX" 86 126 fi 87 127 88 128 #dyld_path="${0%darling}dyld" ··· 93 133 if [ $# -gt 1 ]; then 94 134 exec "${dyld_path}" "${DPREFIX}/bin/bash" -c "${*:2}" 95 135 else 96 - exec "${dyld_path}" "${DPREFIX}/bin/bash" --norc 136 + exec "${dyld_path}" "${DPREFIX}/bin/bash" 97 137 fi 98 138 ;; 99 139 #"hdiutil")
+1 -1
src/kernel/emulation/linux/process/execve.c
··· 180 180 } 181 181 else 182 182 { 183 - fname = (char*) __prefix_translate_path_link(fname); 183 + fname = (char*) __prefix_translate_path(fname); 184 184 } 185 185 } 186 186
+2 -2
src/kernel/emulation/linux/unistd/readlink.c
··· 14 14 buf, count); 15 15 if (ret < 0) 16 16 ret = errno_linux_to_bsd(ret); 17 - else 17 + /*else 18 18 { 19 19 const char* xl; 20 20 __SIZE_TYPE__ newlen; ··· 24 24 25 25 memcpy(buf, xl, (newlen < count) ? newlen : count); 26 26 ret = newlen; 27 - } 27 + }*/ 28 28 29 29 return ret; 30 30 }
+1 -8
src/libc/include/paths.h
··· 61 61 62 62 #ifndef _PATHS_H_ 63 63 #define _PATHS_H_ 64 - #ifdef DARLING 65 - # include <darling-config.h> 66 - #endif 67 64 68 65 /* Default search path. */ 69 66 #define _PATH_DEFPATH "/usr/bin:/bin" ··· 80 77 #define _PATH_FSIRAND "/sbin/fsirand" 81 78 #define _PATH_KMEM "/dev/kmem" 82 79 #define _PATH_KVMDB "/var/db/kvm.db" 83 - #ifndef DARLING 84 - # define _PATH_LOCALE "/usr/share/locale" 85 - #else 86 - # define _PATH_LOCALE SHARE_PATH "/locale" 87 - #endif 80 + #define _PATH_LOCALE "/usr/share/locale" 88 81 #define _PATH_MAILDIR "/var/mail" 89 82 #define _PATH_MAN "/usr/share/man" 90 83 #define _PATH_MEM "/dev/mem"
+1 -1
src/libc/locale/CMakeLists.txt
··· 84 84 SET_TARGET_PROPERTIES(libc-locale_legacy PROPERTIES COMPILE_FLAGS 85 85 "-DBUILDING_VARIANT -DVARIANT_LEGACY -U__DARWIN_UNIX03 -D__DARWIN_UNIX03=0") 86 86 87 - install(DIRECTORY locale DESTINATION share/darling) 87 + install(DIRECTORY locale DESTINATION libexec/darling/usr/share) 88 88