Skip to content

Restore exiftool downloads by moving to the current production release - #431

Open
eastagiletracker wants to merge 1 commit into
fitstool:mainfrom
eastagiletracker:agile-board/fix-exiftool-download-404
Open

Restore exiftool downloads by moving to the current production release#431
eastagiletracker wants to merge 1 commit into
fitstool:mainfrom
eastagiletracker:agile-board/fix-exiftool-download-404

Conversation

@eastagiletracker

Copy link
Copy Markdown

This PR proposes restoring the exiftool downloads used by fits-tool-installer, so that mvn clean test can get past generate-resources again, by moving to exiftool 13.55 and taking the Perl distribution from CPAN's permanent archive (fixes #429). We include this PR work along with a full history of your repo at https://eastagiletracker.com/projects/374. You can sign in with your GitHub ID to claim ownership of the project.

What changed and why

At current main (8613bf6) the build cannot reach a single test, because both exiftool 13.50 archives named in tools.properties now return 404:

$ mvn -B clean test
...
Installing exiftool 13.50
Exception in thread "main" java.lang.RuntimeException: Failed to download file at https://sourceforge.net/projects/exiftool/files/Image-ExifTool-13.50.tar.gz/download
Caused by: java.lang.RuntimeException: Failed to download file at https://sourceforge.net/projects/exiftool/files/Image-ExifTool-13.50.tar.gz/download. Status code: 404
...
[INFO] FITS Tool Installer ................................ FAILURE [  2.690 s]
[INFO] FITS ............................................... SKIPPED
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.1.0:exec (install-tools) on project fits-tool-installer

The Windows archive exiftool-13.50_64.zip is gone as well, so both legs of installExiftool() are dead, not just the one in the traceback. The cause is that the exiftool project on SourceForge keeps only its four most recently uploaded versions — right now 13.55, 13.57, 13.58 and 13.59, and nothing older. The existing advice in tools.properties to pick a production release does not protect against that on its own: 13.50 was a production release, and it aged off the download server anyway once four newer versions had been published.

The change moves the pin to 13.55, which is the current production release ("The most recent production release is Version 13.55", exiftool's own Changes, Apr 7 2026), and switches the Perl distribution to CPAN, which permanently archives every exiftool production release — 13.36, 13.44, 13.50 and 13.55 are all still retrievable there today. That leg can no longer age out. The Windows executable is not published to CPAN, so it necessarily stays on SourceForge; the comment in the file now records both facts, so the next person upgrading knows why the two URLs point at different hosts.

Both checksums are the ones upstream publishes in checksums-13.55.txt:

MD5 (Image-ExifTool-13.55.tar.gz) = 64fca46ac6d170abfaf3b460a4845649
MD5 (exiftool-13.55_64.zip) = 1ebe3c5be41a12e6859cc5904d5207d8

I also confirmed CPAN's copy of Image-ExifTool-13.55.tar.gz is byte-identical to SourceForge's — both hash to 64fca46ac6d170abfaf3b460a4845649 — so this is the same artifact from a longer-lived host, not a repackaging.

How this was verified

Before the change, on a clean checkout of main: mvn -B clean test ends in BUILD FAILURE at fits-tool-installer with the 404 above, and 0 tests execute.

After the change: mvn -B generate-resources reports Successfully installed exiftool 13.55 along with mediainfo, file and jpylyzer, and ends in BUILD SUCCESS. perl tools/exiftool/perl/exiftool -ver prints 13.55, and tools/exiftool/windows/exiftool.exe is extracted as expected. mvn -B clean test then runs the whole suite for the first time: Tests run: 120, Failures: 70, Errors: 2, Skipped: 21.

Those remaining failures are my environment, not this change — I am not running docker/Dockerfile-test, so I have no file 5.43 built from source, no America/New_York timezone and no system mediainfo libraries, and most of the diffs are of the form Expected attribute value 'did not run' but was 'failed'. To be certain none of it came from the version move, I ran the identical suite a second time with exiftool pinned back to 13.50, fetched from CPAN so that it downloads at all — byte-identical to what tools.properties pins today, MD5 4c9b544800bca220d21ecced4585f4d1. The result was the same 120 tests with exactly the same 72 failing, none added and none removed. The bump therefore changes nothing the suite can observe; the residual failures are worth re-confirming on your own test image, where I would expect them to be green.

One thing worth flagging: #419 also edits tools.properties (it proposes 13.50, the version that has since aged off SourceForge), so whichever of the two lands second will need a small conflict resolution in this file.

How this was managed

This work was tracked on a board imported from this repository's own issues and pull requests — 426 stories and 6 labels — with this fix carried by the story for #429 at https://eastagiletracker.com/projects/374/stories/226689, on the board at https://eastagiletracker.com/projects/374.

board

If you'd rather not receive contributions like this, reply no-more-prs on this pull request and we won't open any further ones on your repositories.


Lawrence W. Sinclair
CEO / East Agile
linkedin.com/in/lwsinclair/
eastagile.com

The build has been failing in fits-tool-installer because both exiftool
13.50 archives return 404. SourceForge only retains the four most recently
uploaded versions, so 13.50 aged off the download server once 13.55, 13.57,
13.58 and 13.59 were published.

Move to 13.55, the current production release, and take the Perl
distribution from CPAN, which permanently archives every exiftool
production release, so this leg cannot age out again. The Windows
executable is not published to CPAN and still comes from SourceForge.

Both checksums match the values published by upstream in
checksums-13.55.txt.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix exiftool 13.50 download failure in build pipeline

1 participant