diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 1f8bc8dc6..9b91512b1 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -175,9 +175,9 @@ jobs: - name: Install attr run: sudo apt-get install -y attr - - name: Install genisoimage and libdmg-hfsplus + - name: Install libdmg-hfsplus run: | - sudo apt-get install -y genisoimage cmake + sudo apt-get install -y cmake git clone https://github.com/mozilla/libdmg-hfsplus.git cd libdmg-hfsplus && cmake . && make && cd .. sudo mv libdmg-hfsplus/dmg/dmg /usr/local/bin/dmg diff --git a/distribution/macos/create_macos_build_ava.sh b/distribution/macos/create_macos_build_ava.sh index 9d6aa34d1..ca68d20f2 100755 --- a/distribution/macos/create_macos_build_ava.sh +++ b/distribution/macos/create_macos_build_ava.sh @@ -146,13 +146,20 @@ echo "Packaging .dmg" UNCOMPRESSED_DMG="$OUTPUT_DIRECTORY/UNCOMPRESSED_$RELEASE_DMG_FILE_NAME" COMPRESSED_DMG="$OUTPUT_DIRECTORY/$RELEASE_DMG_FILE_NAME" -dd if=/dev/zero of="$UNCOMPRESSED_DMG" bs=1M count=100 -genisoimage -D -V "Ryujinx" \ - -no-pad -apple -uid 0 -gid 0 -dir-mode 0755 -file-mode 0755 \ - -o "$UNCOMPRESSED_DMG" "$DMG_FOLDER" +dd if=/dev/zero of="$UNCOMPRESSED_DMG" bs=1M count=10 +hfsplus "$UNCOMPRESSED_DMG" grow $((100 * 1024 * 1024)) "Ryujinx" # 100 mb * 1024 kb * 1024 b = total bytes in 100 mb + +shopt -s dotglob +for file in "$DMG_FOLDER"/*; do + filename=$(basename "$file") + hfsplus "$UNCOMPRESSED_DMG" add "/$filename" "$file" 0755 +done +shopt -u dotglob + # https://developer.apple.com/library/archive/technotes/tn/tn1150.html FINDER_INFO=$(hfsplus "$UNCOMPRESSED_DMG" getattr / finderinfo) hfsplus "$UNCOMPRESSED_DMG" setattr / finderinfo ${FINDER_INFO:0:24}04${FINDER_INFO:26} + dmg dmg -c lzma "$UNCOMPRESSED_DMG" "$COMPRESSED_DMG" rm -r "$DMG_FOLDER" rm -f "$UNCOMPRESSED_DMG" diff --git a/distribution/macos/create_macos_pr_build_ava.sh b/distribution/macos/create_macos_pr_build_ava.sh index 2f8a81059..587c39f25 100644 --- a/distribution/macos/create_macos_pr_build_ava.sh +++ b/distribution/macos/create_macos_pr_build_ava.sh @@ -142,13 +142,20 @@ echo "Packaging .dmg" UNCOMPRESSED_DMG="$OUTPUT_DIRECTORY/UNCOMPRESSED_$RELEASE_DMG_FILE_NAME" COMPRESSED_DMG="$OUTPUT_DIRECTORY/$RELEASE_DMG_FILE_NAME" -dd if=/dev/zero of="$UNCOMPRESSED_DMG" bs=1M count=100 -genisoimage -D -V "Ryujinx" \ - -no-pad -apple -uid 0 -gid 0 -dir-mode 0755 -file-mode 0755 \ - -o "$UNCOMPRESSED_DMG" "$DMG_FOLDER" +dd if=/dev/zero of="$UNCOMPRESSED_DMG" bs=1M count=10 +hfsplus "$UNCOMPRESSED_DMG" grow $((100 * 1024 * 1024)) "Ryujinx" # 100 mb * 1024 kb * 1024 b = total bytes in 100 mb + +shopt -s dotglob +for file in "$DMG_FOLDER"/*; do + filename=$(basename "$file") + hfsplus "$UNCOMPRESSED_DMG" add "/$filename" "$file" 0755 +done +shopt -u dotglob + # https://developer.apple.com/library/archive/technotes/tn/tn1150.html FINDER_INFO=$(hfsplus "$UNCOMPRESSED_DMG" getattr / finderinfo) hfsplus "$UNCOMPRESSED_DMG" setattr / finderinfo ${FINDER_INFO:0:24}04${FINDER_INFO:26} + dmg dmg -c lzma "$UNCOMPRESSED_DMG" "$COMPRESSED_DMG" rm -r "$DMG_FOLDER" rm -f "$UNCOMPRESSED_DMG"