|
|
@@ -2,7 +2,7 @@
|
|
|
|
|
|
BUILD_ROOT="$(pwd)"
|
|
|
ROOT_LOG_FOLDER="$BUILD_ROOT/Logs"
|
|
|
-VERIFY="true"
|
|
|
+VERIFY="false"
|
|
|
PLATFORM="AppleTVOS"
|
|
|
PLATFORM_LOWER="appletvos"
|
|
|
SDK_VERSION="$(xcrun --show-sdk-version --sdk $PLATFORM_LOWER)"
|
|
|
@@ -21,9 +21,10 @@ FORCE="false"
|
|
|
LOG_VERBOSE=""
|
|
|
OPEN_LOG="false"
|
|
|
TRIM="false"
|
|
|
+CREATE_STATUS="false"
|
|
|
|
|
|
usage() {
|
|
|
- echo "usage: $0 [-s|--speak-updates] [-i|--insecure] [-v|--verbose] [-f|--force] [-o|--open-active-log] [-t|--trim-bootstrap]"
|
|
|
+ echo "usage: $0 [-s|--speak-updates] [-V|--verify] [-v|--verbose] [-f|--force] [-o|--open-active-log] [-t|--trim-bootstrap] [-c|--create-status]"
|
|
|
trap - INT TERM EXIT
|
|
|
exit 0
|
|
|
}
|
|
|
@@ -37,11 +38,11 @@ while test $# -gt 0; do
|
|
|
LOG_VERBOSE="verbose"
|
|
|
shift
|
|
|
;;
|
|
|
- -i|--insecure|--no-verify)
|
|
|
- VERIFY="false"
|
|
|
- echo "Working without verifying packages..."
|
|
|
- echo "YOU BETTER KNOW WHAT YOU'RE DOING"
|
|
|
- sleep 2 #Give them a couple seconds to think about what they're about to do
|
|
|
+ -V|--verify|)
|
|
|
+ VERIFY="true"
|
|
|
+ #echo "Working without verifying packages..."
|
|
|
+ #echo "YOU BETTER KNOW WHAT YOU'RE DOING"
|
|
|
+ #sleep 2 #Give them a couple seconds to think about what they're about to do
|
|
|
shift
|
|
|
;;
|
|
|
-f|--force)
|
|
|
@@ -60,12 +61,21 @@ while test $# -gt 0; do
|
|
|
OPEN_LOG="true"
|
|
|
shift
|
|
|
;;
|
|
|
+ -c|--create-status|--create)
|
|
|
+ CREATE_STATUS="true"
|
|
|
+ shift
|
|
|
+ ;;
|
|
|
*)
|
|
|
break
|
|
|
;;
|
|
|
esac
|
|
|
done
|
|
|
|
|
|
+patchAvailability() {
|
|
|
+ PATCH_FILE=$1
|
|
|
+ sed -i -- "s|__TVOS_PROHIBITED||" "$PATCH_FILE"
|
|
|
+}
|
|
|
+
|
|
|
# for some reason the files signed this way don't run on tvOS 9 anymore
|
|
|
codesign() {
|
|
|
BIN=$1
|
|
|
@@ -1287,11 +1297,11 @@ buildDpkg() {
|
|
|
export CXXFLAGS=$CFLAGS
|
|
|
export LDFLAGS="-isysroot $SDK_PATH -L$SKEL_PREFIX/$ROOT_PREFIX/lib/ -arch $ARCH"
|
|
|
if [[ $LOG_VERBOSE == "verbose"* ]]; then
|
|
|
- ./configure --prefix="/$ROOT_PREFIX" --disable-start-stop-daemon --host=aarch64-apple-darwin --disable-dependency-tracking PERL_LIBDIR='$(prefix)/lib/' --disable-dselect --localstatedir="/var/" --sysconfdir="/fs/jb/etc" | tee "${LOG_FILE}"
|
|
|
+ ./configure --prefix="/$ROOT_PREFIX" --disable-start-stop-daemon --host=aarch64-apple-darwin --disable-dependency-tracking PERL_LIBDIR='$(prefix)/lib/' --disable-dselect --localstatedir="/var/" --sysconfdir="/fs/jb/usr/etc" | tee "${LOG_FILE}"
|
|
|
EC=$(grep "configure: error:" -i "${LOG_FILE}" -c)
|
|
|
checkStatus $PKG_NAME $EC "false"
|
|
|
else
|
|
|
- (./configure --prefix="/$ROOT_PREFIX" --disable-start-stop-daemon --host=aarch64-apple-darwin --disable-dependency-tracking PERL_LIBDIR='$(prefix)/lib/' --disable-dselect --localstatedir="/var/" --sysconfdir="/fs/jb/etc" > "${LOG_FILE}" 2>&1)
|
|
|
+ (./configure --prefix="/$ROOT_PREFIX" --disable-start-stop-daemon --host=aarch64-apple-darwin --disable-dependency-tracking PERL_LIBDIR='$(prefix)/lib/' --disable-dselect --localstatedir="/var/" --sysconfdir="/fs/jb/usr/etc" > "${LOG_FILE}" 2>&1)
|
|
|
if [[ $OPEN_LOG == "true" ]]; then
|
|
|
open "${LOG_FILE}"
|
|
|
fi
|
|
|
@@ -1643,7 +1653,7 @@ buildAPT() {
|
|
|
codesign "$SKEL_PREFIX/$ROOT_PREFIX/bin/apt-mark"
|
|
|
codesign "$SKEL_PREFIX/$ROOT_PREFIX/bin/apt-sortpkgs"
|
|
|
codesign "$SKEL_PREFIX/$ROOT_PREFIX/lib/libapt-inst.2.0.0.dylib"
|
|
|
- codesign "$SKEL_PREFIX/$ROOT_PREFIX/lib/libapt-pkg.5.0.1.dylib"
|
|
|
+
|
|
|
codesign "$SKEL_PREFIX/$ROOT_PREFIX/lib/libapt-private.0.0.0.dylib"
|
|
|
codesign "$SKEL_PREFIX/$ROOT_PREFIX/libexec/apt/apt-helper"
|
|
|
codesign "$SKEL_PREFIX/$ROOT_PREFIX/libexec/apt/methods/cdrom"
|
|
|
@@ -1661,10 +1671,13 @@ buildAPT() {
|
|
|
codesign "$SKEL_PREFIX/$ROOT_PREFIX/libexec/apt/solvers/apt"
|
|
|
codesign "$SKEL_PREFIX/$ROOT_PREFIX/libexec/apt/solvers/dump"
|
|
|
|
|
|
+ sed -i -- "s|/bin/sh|/fs/jb/bin/sh|" "$SKEL_PREFIX/$ROOT_PREFIX/bin/apt-key"
|
|
|
+ rm "$SKEL_PREFIX/$ROOT_PREFIX/bin/apt-key--"
|
|
|
#lzma conflicts with built in libraries we make -j8 an extra copy of our version of lzma in the xz build process
|
|
|
#here we change libapt-pkg*.dylib to look for this version instead
|
|
|
#if we do not do this, apt-get will fail from our helper tool
|
|
|
install_name_tool -change /usr/lib/liblzma.5.dylib /usr/local/lib/liblzma.5.dylib $SKEL_PREFIX/$ROOT_PREFIX/lib/libapt-pkg.5.0.1.dylib
|
|
|
+ codesign "$SKEL_PREFIX/$ROOT_PREFIX/lib/libapt-pkg.5.0.1.dylib"
|
|
|
cd "$BUILD_ROOT"
|
|
|
fi
|
|
|
}
|
|
|
@@ -1744,6 +1757,28 @@ if [[ "$VERIFY" == "true" ]]; then
|
|
|
gpg --recv-key 69184620 7C0135FB088AAF6C66C650B9BB5869F064EA74AB 702353E0F7E48EDB 7FD9FCCB000BEEEE A15B725964A95EE5 D8692123C4065DEA5E0F3AB5249B39D24F25E3B6 031EC2536E580D8EA286A9F22071B08A33BD3F06 9D5EAAF69013B842
|
|
|
fi
|
|
|
|
|
|
+createListFile() {
|
|
|
+ echo -e "\ncreateListFile $1\n"
|
|
|
+ DEB=$1
|
|
|
+ INFOPATH="$SKEL_PREFIX/private/var/lib/dpkg/info"
|
|
|
+ PKG=$(dpkg-deb -f "$DEB" Package 2>/dev/null)
|
|
|
+ #echo $PKG list
|
|
|
+ rm -rf tmp
|
|
|
+ mkdir tmp
|
|
|
+ dpkg-deb -e "$DEB" tmp
|
|
|
+ dpkg-deb -c "$DEB" | awk '{ print $6 }' | cut -c 2- > $PKG.list #| sed "s|usr|fs/usr|g"
|
|
|
+ sed -e '1 s|/|/.|' $PKG.list > $INFOPATH/$PKG.list
|
|
|
+ rm $PKG.list
|
|
|
+ FILES="tmp/*"
|
|
|
+ for f in $FILES; do
|
|
|
+ file=${f##*/}
|
|
|
+ if [[ "$file" != "control" ]]; then
|
|
|
+ echo "Processing $file in $PKG..";
|
|
|
+ cp "$f" "$INFOPATH/$PKG.$file"
|
|
|
+ fi
|
|
|
+ done
|
|
|
+}
|
|
|
+
|
|
|
createStatusFile() {
|
|
|
cd "$BUILD_ROOT"
|
|
|
rm -rf status
|
|
|
@@ -1755,6 +1790,16 @@ createStatusFile() {
|
|
|
echo "Status: install ok installed" >> status
|
|
|
echo "" >> status
|
|
|
echo "" >> available
|
|
|
+ createListFile $f
|
|
|
+ done
|
|
|
+ for f in ndeb/*.deb; do
|
|
|
+ echo "Processing $f..";
|
|
|
+ dpkg-deb -f "$f" >> status
|
|
|
+ dpkg-deb -f "$f" >> available
|
|
|
+ echo "Status: install ok installed" >> status
|
|
|
+ echo "" >> status
|
|
|
+ echo "" >> available
|
|
|
+ createListFile $f
|
|
|
done
|
|
|
if [[ -d "$SKEL_PREFIX/private/var/lib/dpkg/" ]]; then
|
|
|
mv status "$SKEL_PREFIX/private/var/lib/dpkg/status"
|
|
|
@@ -1779,16 +1824,16 @@ cleanBootstrap() {
|
|
|
rm -rf "$SKEL_PREFIX/$ROOT_PREFIX/share/readline"
|
|
|
|
|
|
# Get rid of dev stuff
|
|
|
- rm -rf "$SKEL_PREFIX/$ROOT_PREFIX/include"
|
|
|
- rm -rf "$SKEL_PREFIX/$ROOT_PREFIX/share/aclocal"
|
|
|
- rm -rf "$SKEL_PREFIX/$ROOT_PREFIX/share/pkgconfig"
|
|
|
- rm -rf "$SKEL_PREFIX/$ROOT_PREFIX/share/common-lisp"
|
|
|
+ #rm -rf "$SKEL_PREFIX/$ROOT_PREFIX/include"
|
|
|
+ #rm -rf "$SKEL_PREFIX/$ROOT_PREFIX/share/aclocal"
|
|
|
+ #rm -rf "$SKEL_PREFIX/$ROOT_PREFIX/share/pkgconfig"
|
|
|
+ #rm -rf "$SKEL_PREFIX/$ROOT_PREFIX/share/common-lisp"
|
|
|
|
|
|
# remove all the static and libtool libraries from the bootstrap, they take up a LOT of space
|
|
|
- cd "$SKEL_PREFIX/$ROOT_PREFIX/lib"
|
|
|
+ #cd "$SKEL_PREFIX/$ROOT_PREFIX/lib"
|
|
|
rm *.a
|
|
|
rm *.la
|
|
|
- rmdir "$SKEL_PREFIX/$ROOT_PREFIX/var"
|
|
|
+ #rmdir "$SKEL_PREFIX/$ROOT_PREFIX/var"
|
|
|
|
|
|
#Get rid of non-skel packages which were needed to compile
|
|
|
rm -rf "$SKEL_PREFIX/$ROOT_PREFIX/bin/gpg-error-config"
|
|
|
@@ -1815,7 +1860,9 @@ if [[ $TRIM == "true" ]]; then
|
|
|
cleanBootstrap
|
|
|
fi
|
|
|
|
|
|
-#createStatusFile
|
|
|
+if [[ $CREATE_STATUS == "true" ]]; then
|
|
|
+ createStatusFile
|
|
|
+fi
|
|
|
|
|
|
echo -e "\nDone!\n"
|
|
|
sayIfVerbal "Finished!"
|