diff options
| -rw-r--r-- | .github/FUNDING.yml | 3 | ||||
| -rw-r--r-- | .github/workflows/build.yml | 44 | ||||
| -rw-r--r-- | Makefile.am | 1 | ||||
| -rw-r--r-- | NEWS | 18 | ||||
| -rw-r--r-- | src/ideviceinstaller.c | 30 |
5 files changed, 51 insertions, 45 deletions
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..e995b30 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +github: nikias +patreon: nikias +custom: ["https://www.paypal.me/NikiasBassen"] diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 65384cf..5484545 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,28 +17,28 @@ jobs: run: | echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV - name: fetch libplist - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml name: libplist-latest_${{env.target_triplet}} repo: libimobiledevice/libplist - name: fetch libusbmuxd - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml name: libusbmuxd-latest_${{env.target_triplet}} repo: libimobiledevice/libusbmuxd - name: fetch libimobiledevice-glue - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml name: libimobiledevice-glue-latest_${{env.target_triplet}} repo: libimobiledevice/libimobiledevice-glue - name: fetch libimobiledevice - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml @@ -53,7 +53,7 @@ jobs: rm -rf extract/lib sudo cp -r extract/* / sudo ldconfig - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: autogen @@ -68,7 +68,7 @@ jobs: DESTDIR=`pwd`/dest make install tar -C dest -cf ideviceinstaller.tar usr - name: publish artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ideviceinstaller-latest_${{env.target_triplet}} path: ideviceinstaller.tar @@ -84,28 +84,28 @@ jobs: fi shell: bash - name: fetch libplist - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml name: libplist-latest_macOS repo: libimobiledevice/libplist - name: fetch libusbmuxd - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml name: libusbmuxd-latest_macOS repo: libimobiledevice/libusbmuxd - name: fetch libimobiledevice-glue - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml name: libimobiledevice-glue-latest_macOS repo: libimobiledevice/libimobiledevice-glue - name: fetch libimobiledevice - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml @@ -118,7 +118,7 @@ jobs: tar -C extract -xvf $I done sudo cp -r extract/* / - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: install additional requirements run: | SDKDIR=`xcrun --sdk macosx --show-sdk-path 2>/dev/null` @@ -169,12 +169,12 @@ jobs: DESTDIR=`pwd`/dest make install tar -C dest -cf ideviceinstaller.tar usr - name: publish artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ideviceinstaller-latest_macOS path: ideviceinstaller.tar build-windows: - runs-on: windows-2019 + runs-on: windows-latest defaults: run: shell: msys2 {0} @@ -195,6 +195,10 @@ jobs: base-devel git mingw-w64-${{ matrix.arch }}-gcc + mingw-w64-${{ matrix.arch }}-pkg-config + mingw-w64-${{ matrix.arch }}-openssl + mingw-w64-${{ matrix.arch }}-xz + mingw-w64-${{ matrix.arch }}-bzip2 make libtool autoconf @@ -206,28 +210,28 @@ jobs: echo "dest=$dest" >> $GITHUB_ENV echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV - name: fetch libplist - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml name: libplist-latest_${{ matrix.arch }}-${{ env.dest }} repo: libimobiledevice/libplist - name: fetch libusbmuxd - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml name: libusbmuxd-latest_${{ matrix.arch }}-${{ env.dest }} repo: libimobiledevice/libusbmuxd - name: fetch libimobiledevice-glue - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml name: libimobiledevice-glue-latest_${{ matrix.arch }}-${{ env.dest }} repo: libimobiledevice/libimobiledevice-glue - name: fetch libimobiledevice - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: build.yml @@ -240,7 +244,7 @@ jobs: tar -C extract -xvf $I done cp -r extract/* / - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: install additional requirements run: | FILENAME="libzip-1.7.1-static.tar.bz2" @@ -251,7 +255,7 @@ jobs: echo "LIBZIP_CFLAGS=-I`pwd`/deps/include" >> $GITHUB_ENV echo "LIBZIP_LIBS=`pwd`/deps/lib/libzip.a /${{env.dest}}/lib/libbz2.a /${{env.dest}}/lib/liblzma.a " >> $GITHUB_ENV - name: autogen - run: ./autogen.sh CC=gcc CXX=g++ libzip_CFLAGS="${{env.LIBZIP_CFLAGS}}" libzip_LIBS="${{env.LIBZIP_LIBS}} /${{env.dest}}/lib/libz.a" + run: ./autogen.sh PKG_CONFIG_PATH=/${{env.dest}}/lib/pkgconfig libzip_CFLAGS="${{env.LIBZIP_CFLAGS}}" libzip_LIBS="${{env.LIBZIP_LIBS}} /${{env.dest}}/lib/libz.a" - name: make run: make - name: make install @@ -262,7 +266,7 @@ jobs: DESTDIR=`pwd`/dest make install tar -C dest -cf ideviceinstaller.tar ${{ env.dest }} - name: publish artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ideviceinstaller-latest_${{ matrix.arch }}-${{ env.dest }} path: ideviceinstaller.tar diff --git a/Makefile.am b/Makefile.am index 5888709..ca007b7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,4 +7,5 @@ EXTRA_DIST = \ git-version-gen dist-hook: + @if ! git diff --quiet; then echo "Uncommitted changes present; not releasing"; exit 1; fi echo $(VERSION) > $(distdir)/.tarball-version @@ -1,3 +1,21 @@ +Version 1.2.0 +~~~~~~~~~~~~~ + +* Breaking changes: + - Command line options are now using subcommands like `install`, `list`, etc. instead of the old `-i`, `-l` + +* Changes: + - Add options for using external sinf and iTunes metadata + - Add JSON output capability + - Use CFBundleShortVersionString to display the app version + - Add -a command line switch to specify return attributes for 'list' command + - Add -b, --bundle-identifier command line switch to allow querying for bundle identifier + +* Bug Fixes: + - Fix picking wrong app directory from zip/ipa when there are other directories + - Fix wrong exit code on specific output format (xml or json) + - Make sure to always return an error code if something goes wrong + Version 1.1.1 ~~~~~~~~~~~~~ diff --git a/src/ideviceinstaller.c b/src/ideviceinstaller.c index d6c10a8..d07cedf 100644 --- a/src/ideviceinstaller.c +++ b/src/ideviceinstaller.c @@ -170,27 +170,7 @@ static void print_apps(plist_t apps) if (!strcmp(key, "CFBundleIdentifier")) { printf("%s", plist_get_string_ptr(node, NULL)); } else { - uint64_t uval = 0; - switch (plist_get_node_type(node)) { - case PLIST_STRING: - printf("\"%s\"", plist_get_string_ptr(node, NULL)); - break; - case PLIST_INT: - plist_get_uint_val(node, &uval); - printf("%" PRIu64, uval); - break; - case PLIST_BOOLEAN: - printf("%s", plist_bool_val_is_true(node) ? "true" : "false"); - break; - case PLIST_ARRAY: - printf("(array)"); - break; - case PLIST_DICT: - printf("(dict)"); - break; - default: - break; - } + plist_write_to_stream(node, stdout, PLIST_FORMAT_PRINT, PLIST_OPT_NO_NEWLINE); } } } @@ -1216,7 +1196,7 @@ run_again: size_t flen = 0; zbuf = buf_from_file(extmeta, &flen); if (zbuf && flen) { - meta = plist_new_data((uint8_t*)zbuf, flen); + meta = plist_new_data(zbuf, flen); plist_from_memory(zbuf, flen, &meta_dict, NULL); free(zbuf); } @@ -1231,7 +1211,7 @@ run_again: if (!meta && !meta_dict) { /* extract iTunesMetadata.plist from package */ if (zip_get_contents(zf, ITUNES_METADATA_PLIST_FILENAME, 0, &zbuf, &len) == 0) { - meta = plist_new_data((uint8_t*)zbuf, len); + meta = plist_new_data(zbuf, len); plist_from_memory(zbuf, len, &meta_dict, NULL); } if (!meta_dict) { @@ -1304,7 +1284,7 @@ run_again: size_t flen = 0; zbuf = buf_from_file(extsinf, &flen); if (zbuf && flen) { - sinf = plist_new_data((uint8_t*)zbuf, flen); + sinf = plist_new_data(zbuf, flen); free(zbuf); } else { fprintf(stderr, "WARNING: could not load external SINF %s!\n", extsinf); @@ -1324,7 +1304,7 @@ run_again: zbuf = NULL; len = 0; if (zip_get_contents(zf, sinfname, 0, &zbuf, &len) == 0) { - sinf = plist_new_data((uint8_t*)zbuf, len); + sinf = plist_new_data(zbuf, len); } else { fprintf(stderr, "WARNING: could not locate %s in archive!\n", sinfname); } |
