Repository navigation
Release 2.0.0 - #805
Open
bestouff wants to merge 2 commits into
Open
Release 2.0.0#805bestouff wants to merge 2 commits into
bestouff wants to merge 2 commits into
Conversation
…nents Raise the minimum version of each component to its newest release: libirecovery 1.3.0 -> 1.3.1 libusbmuxd 2.0.2 -> 2.1.1 libplist 2.6.0 -> 2.7.0 libimobiledevice-glue 1.3.0 -> 1.3.2 libtatsu 1.0.4 -> 1.0.5 libirecovery is the important one. The device table of 1.3.0 stops at the M4 generation. An M5 Mac in DFU mode therefore fails the lookup in dfu.c and the restore stops with "Unable to discover device type". Release 1.3.1 adds Mac17,2, the iPad Pro M5 models and the Apple Vision Pro M5. libtatsu 1.0.5 sends a newer client version to the signing server. The minimum for libimobiledevice stays at 1.4.0, which is its newest release. The minimums for libzip and libcurl stay low on purpose. The code builds with the old versions, and a higher minimum only makes packaging more difficult.
276 commits landed since the 1.0.0 release in June 2020. This adds release notes for them. The version number goes to 2.0.0 because the -s option changed from the --cydia flag into --server URL, which needs an argument. A command line that used -s as a flag now reads the next argument as the URL, so this is an incompatible change to the command line interface.
bestouff
force-pushed
the
news-2.0.0
branch
from
September 29, 2026 11:08
6da2f7b to
1574128
Compare
This was referenced Sep 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This prepares a 2.0.0 release: a NEWS entry and the dependency minimums that
go with it. It follows up on #577.
The version comes from
git describethroughgit-version-gen, so this PRcannot set it. The tag
2.0.0still has to be created by a maintainer, with novprefix, as for1.0.0.Release pull requests are open for the components as well, so the whole set
can move together:
Why now
The last release, 1.0.0, is from June 2020. Since then 276 commits landed.
These include the support for Apple silicon Macs, so the git version is
currently the only one that can restore a current Mac. Downstream
distributions package releases, not git snapshots, so most users cannot get
a working version without building the whole stack from git.
Why 2.0.0
One option changed its meaning since 1.0.0:
-s--cydia, no argument--server URL, required argumentA command line such as
idevicerestore -s -e fw.ipswerased the devicethrough the Cydia signing service. The same command line now reads
-easthe server URL and does an update instead. The tool prints no error, so the
change is silent. This is an incompatible change to the command line
interface, which calls for a new major version.
-p, --pwnalso became conditional at build time, but limera1n supportstays on by default, so that one is not a break for normal builds.
What this PR contains
Two commits:
configure: raise the minimum version of each libimobiledevice componentto its newest release.
NEWS: the release notes for 2.0.0.Dependency minimums
libirecovery is the one that matters in practice.
src/dfu.cidentifies thedevice with
irecv_devices_get_device_by_client(). With 1.3.0 an M5 Mac isnot in the table, the lookup fails, and the restore stops at
src/idevicerestore.c:510with "Unable to discover device type".The minimums for libzip and libcurl stay where they are. The code builds
against the old versions, and a higher floor there only makes packaging
harder for no gain.
If libimobiledevice/libirecovery#171 and libimobiledevice/libtatsu#10 are
merged and tagged first, these two lines should become 1.4.0 and 1.1.0.
Verification
make distcheckpasses on macOS 27.0 on arm64 against the versions in thetable. The resulting binary reports:
No component has to come from git
#577 raises this point repeatedly, so it deserves its own section. The
complete dependency stack was built from release tags alone into an isolated
prefix, with
PKG_CONFIG_LIBDIRrestricted so that no newer copy could bepicked up. The versions used were the minimums this PR replaces,
which is the hardest case:
All of them build, and idevicerestore builds and links against them with no
errors. All four optional feature probes pass as well:
So the released components are enough to build this tool. What the released
components cannot do is identify 2026 hardware, which is a data problem in
libirecovery and libtatsu, not a build problem here.
One note for packagers: libimobiledevice 1.4.0 requires libtatsu 1.0.3 or
newer, so libtatsu has to be built before libimobiledevice. The order in
README.md lists libtatsu last.