Skip to content

Flutter packages that rely on external binaries make package shutdown a breeze #8724

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
stephane-archer opened this issue May 1, 2025 · 8 comments

Comments

@stephane-archer
Copy link

ffmpeg_kit_flutter is a discontinued package but it also rely on external binaries that have been deleted by it maintainer.
That means pub.dev packages rely on external binaries that could be removed at any moment.
That means most users of this package could not build their app anymore.
I didn't expected this kind of package shutdown possible on pub.dev, from the documentation I understood that new users could not use the package but that existing users could.

@isoos
Copy link
Collaborator

isoos commented May 1, 2025

@stephane-archer: Could you please provide more details on what external binary the package used and how it is missing?

@stephane-archer
Copy link
Author

[!] Error installing ffmpeg-kit-ios-https
[!] /usr/bin/curl -f -L -o /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/d20250407-4410-rhuhse/file.zip https://github.com/arthenica/ffmpeg-kit/releases/download/v6.0/ffmpeg-kit-https-6.0-ios-xcframework.zip --create-dirs --netrc-optional --retry 2 -A 'CocoaPods/1.14.3 cocoapods-downloader/2.1'

You can easily add ffmpeg_kit_flutter to your dependencies to see the issue https://pub.dev/packages/ffmpeg_kit_flutter

@stephane-archer
Copy link
Author

stephane-archer commented May 2, 2025

https://github.com/arthenica/ffmpeg-kit/releases/download/v6.0/ffmpeg-kit-https-6.0-ios-xcframework.zip has been removed from GitHub, and now any users of the package can't use it.

@isoos
Copy link
Collaborator

isoos commented May 5, 2025

This seems to be a very unfortunate case, where the author decided not only to abandon the project, but also remove the built binaries from hosting repositories. https://github.com/arthenica/ffmpeg-kit links to https://tanersener.medium.com/saying-goodbye-to-ffmpegkit-33ae939767e1 and they describe that the removal of the built binaries was on the suggestion of a law firm. I don't see malice or fraudulent intent from the author.

The package is marked discontinued on pub.dev, I don't see any immediate action one can take for cases like this.

However, this may be a good example to consider if/when planning for supporting built native binaries on pub.dev. /cc @jonasfj @sigurdm

@sigurdm
Copy link
Contributor

sigurdm commented May 5, 2025

Yeah - in general we cannot prevent packages from interacting with the outside world. But I see some value in allowing packages be consume binaries published on pub.dev, such that they will continue working as long as pub.dev serves.

But we currently don't have any infrastructure for that (besides embedding the binaries inside the package archive itself) And it is probably a not a trivial task to design build something like that.

cc @dcharkes

@dcharkes
Copy link
Contributor

dcharkes commented May 5, 2025

But we currently don't have any infrastructure for that (besides embedding the binaries inside the package archive itself) And it is probably a not a trivial task to design build something like that.

Tracked in:

@stephane-archer
Copy link
Author

I don't see malice or fraudulent intent from the author.

Me too

It's just that I expected the package on pub.dev to not rely on external things that could be easily taken down.
It would be better if the packages on pub.dev relied on just pub.dev to be running. Github can break links, and hosting services come and go.

Today, any dependencies on pub.dev are possibly a time bomb because of a URL breaking.

@sigurdm
Copy link
Contributor

sigurdm commented May 8, 2025

It's just that I expected the package on pub.dev to not rely on external things that could be easily taken down.

Yeah - ideally that would be how things work. I think we want to work towards that world, but cannot provide a timeline.

Closing as a duplicate of dart-lang/pub#3693

@sigurdm sigurdm closed this as completed May 8, 2025
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

No branches or pull requests

4 participants