transmission icon indicating copy to clipboard operation
transmission copied to clipboard

Sparkle offers to download version 3.00 when using version 4.0.0-beta.1.dev

Open Coeur opened this issue 3 years ago • 2 comments

With e3b871216f444f0e1278fb38b9c7703c50a9f3c6: Capture d’écran 2022-10-09 à 06 47 49

Coeur avatar Oct 08 '22 22:10 Coeur

CC @livings124

I think the plan was to not put betas into the auto-updater, so IDK if this is an avoidable problem or not.

If this can't be fixed, @livings124 please remove the milestone

ckerr avatar Oct 10 '22 15:10 ckerr

Might also be Sparkle is unable to parse the version and so treats "4.0.0-beta.1(.dev)" as "0" or something, in turn thinking that "3.00" is greater...

mikedld avatar Oct 10 '22 15:10 mikedld

This is marked as a 4.0.0-beta.2 bug.

What needs to be done to fix this issue?

ckerr avatar Nov 15 '22 16:11 ckerr

I'm not reproducing today (but I was reproducing 3 days ago). Did Mike change something?

Coeur avatar Nov 15 '22 16:11 Coeur

@mikedld ^

ckerr avatar Nov 15 '22 16:11 ckerr

No, I would've commented here if I did.

mikedld avatar Nov 15 '22 17:11 mikedld

Maybe fixed as a side effect of #4156? I'll reopen if it happens again.

Coeur avatar Nov 15 '22 17:11 Coeur

Release builds are currently prepared using committed Xcode project, not CMake, so definitely unrelated.

mikedld avatar Nov 15 '22 17:11 mikedld

I've always been using that feature with cmake builds only, as default Xcode builds aren't signed for it by default.

Coeur avatar Nov 15 '22 17:11 Coeur

Well, I assume Xcode project was properly targeting 10.13 long before CMake, so... Also I fail to see the connection, e.g. 3.00 doesn't specify maximum OS version, only minimum: https://github.com/transmission/transmission.github.io/blob/68ee4462d242ea16b225734454ab7b8ddb537b45/appcast.xml#L10-L21

EDIT: I missed that the report was for a CMake build...

mikedld avatar Nov 15 '22 17:11 mikedld

Actually, reproducing now on HEAD (d2125ee965bd9103b8a9a39b22f71735e4ce39d3).

Reopening, but removing the milestone.

Summary:

With cmake

I got the offer to download 3.00. (which is unexpected?)

With Xcode + developer signing

It tells me I have the latest, but when looking at the logs I get:

2022-11-16 01:38:04.762969+0800 Transmission[37101:9402121] [Sparkle] Error: Serving updates without an EdDSA key is insecure and deprecated. DSA support may be removed in a future Sparkle release. Please migrate to using EdDSA (ed25519). Visit Sparkle's documentation for migration information: https://sparkle-project.org/documentation/#3-segue-for-security-concerns

Coeur avatar Nov 15 '22 17:11 Coeur

OK, I got a clue:

  • cmake uses libtransmission/version.h.in and macosx/Info.plist.in to build the version information
  • Xcode uses sh update-version-h.sh and macosx/Info.plist to build the version information

Coeur avatar Nov 15 '22 17:11 Coeur

Diving more into the differences:

When building with cmake:

 CFBundleVersion = d2125ee965;
 LSMinimumSystemVersion = "10.7.0";

When building with Xcode:

 CFBundleVersion = "14714.4.0.0";
 LSMinimumSystemVersion = "10.13";

So that confirms that the cmake build has incorrect values for both CFBundleVersion and LSMinimumSystemVersion. In other words, incorrect values for:

  • BUILD_STRING_INFOPLIST
  • MACOSX_DEPLOYMENT_TARGET

Coeur avatar Nov 15 '22 19:11 Coeur

That might explain why my build versioning has been so messed up for the last few weeks.

GaryElshaw avatar Nov 15 '22 23:11 GaryElshaw