Package Base Details: flutter

Git Clone URL: https://aur.archlinux.org/flutter.git (read-only, click to copy)
Keywords: android fuchsia ios mobile sdk
Submitter: flipflop97
Maintainer: WithTheBraid
Last Packager: WithTheBraid
Votes: 134
Popularity: 7.36
First Submitted: 2017-06-05 21:03 (UTC)
Last Updated: 2024-04-18 09:55 (UTC)

Pinned Comments

WithTheBraid commented on 2024-03-28 00:44 (UTC) (edited on 2024-04-16 08:22 (UTC) by WithTheBraid)

Note to the lovers of AUR helpers : It looks like dependency resolution is a complex topic. Despite all package relations being properly declared in the Flutter packages, most AUR helpers seem to have trouble resolving the dependency chain between the package bases aur/flutter and aur/flutter-artifacts-google-bin. This is not my fault and I cannot do anything about it.

It looks like the initial installation works fine using aur/paru. Sadly aur/paru does not reach at building updates for the package.

On the other hand aur/yay properly reaches at both installing and updating this package, even though it builds the package 15 times (!!!) again and again.

If you use aur/paru, consider to simply execute pacman -R flutter && pacman -Rns flutter to clean up the previous installation of both package bases.

If you build both package bases using makepkg -sfC and later on install all build outputs using pacman -U, both the installation and the updates work like a charm.

I'm very sorry for the inconvenience, but sadly there's nothing I can do about this.

WithTheBraid commented on 2024-03-25 20:55 (UTC) (edited on 2024-03-26 15:07 (UTC) by WithTheBraid)

Huge update to the Flutter AUR package :

The previous implementation basically did a user installation of Flutter - downloaded the custom Dart SDK, CI artifacts from Chromium CI and had to be kept in user R/W access in order to have the Flutter Cache Manager working.

These times are now over - a clean and (almost) completely rewritten PKGBUILD which now uses clean dependency declarations, system Dart and Gradle and for sure no more user R/W installation directory.

This AUR entry is now a split package. Installing aur/flutter will still bundle the entire toolchain you knew from before. The other way round, if you don't need everything - e.g. when depending on Flutter as a build dependency in another package, you can choose to only depend on what you need.

The following split packages are available :

  • flutter : meta package containing all other split packages

  • flutter-common : the common files for Flutter needed for all use cases

  • flutter-devel : your option of choice as a developer - ships the Flutter tool and all required templates to e.g. create a new project

  • flutter-tool : The pure Flutter tool. Use as depends to build your package.

  • flutter-target-linux : The Flutter Linux build files. Use as depends to build your package.

  • flutter-target-web : The Flutter web build files. Use as depends to build web apps (e.g. fluffychat-web does this).

  • flutter-target-android : The Flutter Android build files. Use if you want to develop Android apps.

  • flutter-gradle : The Flutter Gradle wrapper. Populated from system Gradle.

  • flutter-intellij-patch : a tiny patch to make the IntelliJ Flutter plugin work with the new package.

  • flutter-material-fonts-google-bin : Mandatory fonts package, planned to have a system-installed drop-in replacement soon.

  • flutter-engine-common-google-bin : Shared part of the Flutter engine - downloaded from Google servers.

  • flutter-sky-engine-google-bin : Flutter sky engine - downloaded from Google servers.

  • flutter-engine-linux-google-bin : Linux part of the Flutter engine - downloaded from Google servers.

  • flutter-engine-web-google-bin : Web part of the Flutter engine - downloaded from Google servers.

  • flutter-engine-android-google-bin : Android part of the Flutter engine - downloaded from Google servers.

  • flutter-gradle-google-bin : The Flutter Gradle wrapper - downloaded from Google servers.

Stay tuned for non google-bin versions of the engine, they are in coming !

Since almost everything is written from scratch and heavy patches are applied to use the system packages as dependencies, there might still be bugs occurring. Please report them otherwise I can't fix them !

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 .. 22 Next › Last »

WithTheBraid commented on 2024-04-02 14:32 (UTC)

@ajje Yeah, really sad. I wished I could resolve the problem. Yay btw. isn't in an infinite loop, bu "only" builds the package 15 times - if you are very patient, yay can hence install it.

About paru, I already consider writing a patch to the upstream running pacman interactively - because the build process works way faster using paru.

Alternatively, I'm working on pre-built packages for those who don't wanna manually build them, the progress can be found on the GitLab mirror of this repo, at https://gitlab.com/flutter-archlinux/tool/-/merge_requests/1 .

ajje commented on 2024-04-02 14:16 (UTC)

@WithTheBraid Thank you for your detailed explanation and your patience. Yes, now yay asks if you want to remove the old flutter package, but it still doesn't work for me because I get stuck in an infinite loop trying to build the package. That's why I tried paru, but as you correctly point out, it runs pacman non-interactively.

I see now that some users has suggested uninstalling Flutter manually then doing a clean build with paru. I'll try that. Thanks again for all that you are doing for us lazy users of AUR helpers.

WithTheBraid commented on 2024-04-02 12:28 (UTC)

@ajje This is intended. Both yay and paru are sadly not able to first build all packages and install them at once (as pacman -U or pacman -S would do). This is not my fault.

I hence added the conflicts list removing the previous installation in order to make the update work. Using yay, this works. You simply have to accept yay removes the stated packages. paru sadly does not allow that since it tries to run pacman non interactively (I don't get why tho).

Again, these are bugs of AUR helper - it should not be the task of AUR package maintainers to do nothing but workarounding issues of the helpers failing at dependency resolution.

Feel free to open a ticket in paru asking to fix that - as people already did with yay.

ajje commented on 2024-04-02 12:17 (UTC)

I've tried installing with both yay, and now paru but I get conflicting dependencies:

==> Finished making: flutter 3.19.5-7 (tis  2 apr 2024 13:55:06)
==> Cleaning up...
loading packages...
resolving dependencies...
looking for conflicting packages...
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict. Remove flutter? [y/N] 
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict (flutter<3.19.5)
loading packages...
resolving dependencies...
looking for conflicting packages...
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict. Remove flutter? [y/N] 
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict (flutter<3.19.5)
loading packages...
resolving dependencies...
looking for conflicting packages...
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict. Remove flutter? [y/N] 
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict (flutter<3.19.5)
loading packages...
resolving dependencies...
looking for conflicting packages...
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict. Remove flutter? [y/N] 
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict (flutter<3.19.5)
loading packages...
resolving dependencies...
looking for conflicting packages...
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict. Remove flutter? [y/N] 
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict (flutter<3.19.5)
loading packages...
resolving dependencies...
looking for conflicting packages...
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict. Remove flutter? [y/N] 
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict (flutter<3.19.5)
loading packages...
resolving dependencies...
looking for conflicting packages...
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict. Remove flutter? [y/N] 
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: flutter-common-3.19.5-7 and flutter-3.19.4-5 are in conflict (flutter<3.19.5)
error: packages failed to build: flutter-artifacts-google-bin-3.19.5-4 (flutter-sky-engine-google-bin flutter-material-fonts-google-bin flutter-engine-common-google-bin flutter-engine-linux-google-bin)  flutter-3.19.5-7 (flutter-target-linux)  flutter-artifacts-google-bin-3.19.5-4 (flutter-engine-android-google-bin)  flutter-3.19.5-7 (flutter-gradle flutter-target-android)  flutter-artifacts-google-bin-3.19.5-4 (flutter-engine-web-google-bin)  flutter-3.19.5-7 (flutter-target-web flutter-intellij-patch flutter)


WithTheBraid commented on 2024-04-01 08:47 (UTC)

Thanks for the feedback about the AUR helpers failing at the version upgrade. This is caused due to the split package across two pkgbase repositories - the helpers do not seem to see that the final builds provide each other with all requested versions. Likely that's an edge case no one considered when writing an AUR helper.

As a workaround, I patched the conflicts sections of all packages provided here in a way that they force an uninstall of the previous version group in order to upgrade. That's a bit sad and inefficient but looks like no AUR helper copes with the upgrade in case we don't.

In all cases, building the two pkgbase repos using makepkg -s[fC] and a manual installation of all output packages using pacman -U works. Sad no helper reaches there.

silikeite commented on 2024-04-01 06:06 (UTC)

Regarding the issue also encountered by xAsh and nameless, currently it is impossible to update Flutter without uninstalling, clean building (or in paru's case deleting the cache for Flutter), and reinstalling.

Not sure if this is a temporary issue as the PKGBUILDs are being fixed or if this is a recurring issue; will have to wait for the next update to see.

nameless commented on 2024-03-30 16:55 (UTC) (edited on 2024-03-30 17:49 (UTC) by nameless)

See edit below for update.

I had the same issue as xAsh and silikeite. I fixed that by removing all flutter-* related packages, and reinstalling flutter.

However, on reinstallation, there are validity check errors.

==> Validating source files with sha256sums...
    material_fonts.zip ... Passed
    gradle_wrapper.tar.gz ... Passed
    android-x86.zip ... FAILED
    android-x64.zip ... FAILED
    android-arm.zip ... FAILED
    android-arm-profile.zip ... FAILED
    android-arm-release.zip ... FAILED
    android-arm64.zip ... FAILED
    android-arm64-profile.zip ... FAILED
    android-arm64-release.zip ... FAILED
    android-x64-profile.zip ... FAILED
    android-x64-release.zip ... FAILED
    android-x64-jit-release.zip ... FAILED
    flutter_web_sdk.zip ... FAILED
    sky_engine.zip ... FAILED
    flutter_patched_sdk.zip ... FAILED
    flutter_patched_sdk_product.zip ... FAILED
==> ERROR: One or more files did not pass the validity check!
error: failed to download sources for 'flutter-artifacts-google-bin-3.19.5-1 (flutter-sky-engine-google-bin flutter-material-fonts-google-bin flutter-engine-common-google-bin flutter-engine-linux-google-bin)': 
error: can't build flutter-3.19.5-2 (flutter-target-linux), deps not satisfied: flutter-engine-linux=3.19.5
error: can't build flutter-artifacts-google-bin-3.19.5-1 (flutter-engine-android-google-bin), deps not satisfied: flutter-engine-common=3.19.5
error: can't build flutter-3.19.5-2 (flutter-gradle flutter-target-android), deps not satisfied: flutter-engine-android=3.19.5
error: can't build flutter-artifacts-google-bin-3.19.5-1 (flutter-engine-web-google-bin), deps not satisfied: flutter-engine-common=3.19.5
error: can't build flutter-3.19.5-2 (flutter-target-web flutter-intellij-patch flutter), deps not satisfied: flutter-engine-web=3.19.5  flutter-target-linux=3.19.5  flutter-target-android=3.19.5

EDIT:

I have found a temporary fix (that works for me) by removing all flutter-* related packages, and installing flutter 3.19.3 by checking out the AUR git repo, and checking out commit 2942f591ec73. I did a makepkg -si after cloning the repo, and checking out the commit.

Flutter doctor passes all checks after installation. My test app builds and runs as expected.

xAsh commented on 2024-03-30 14:22 (UTC) (edited on 2024-03-30 14:22 (UTC) by xAsh)

Same as silikeite, impossible to update this package (whether using paru or yay).

silikeite commented on 2024-03-29 07:00 (UTC)

New problem (I've since migrated to paru btw) - Updating causes a bunch of dependency/conflict issues.

looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing flutter-devel (3.19.5-2) breaks dependency 'flutter-devel=3.19.4' required by flutter
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-engine-common-google-bin
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-intellij-patch
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-android
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-linux
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-web
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing flutter-devel (3.19.5-2) breaks dependency 'flutter-devel=3.19.4' required by flutter
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-engine-common-google-bin
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-intellij-patch
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-android
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-linux
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-web
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing flutter-devel (3.19.5-2) breaks dependency 'flutter-devel=3.19.4' required by flutter
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-engine-common-google-bin
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-intellij-patch
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-android
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-linux
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-web
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing flutter-devel (3.19.5-2) breaks dependency 'flutter-devel=3.19.4' required by flutter
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-engine-common-google-bin
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-intellij-patch
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-android
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-linux
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-web
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing flutter-devel (3.19.5-2) breaks dependency 'flutter-devel=3.19.4' required by flutter
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-engine-common-google-bin
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-intellij-patch
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-android
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-linux
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-web
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing flutter-devel (3.19.5-2) breaks dependency 'flutter-devel=3.19.4' required by flutter
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-engine-common-google-bin
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-intellij-patch
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-android
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-linux
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-web
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing flutter-devel (3.19.5-2) breaks dependency 'flutter-devel=3.19.4' required by flutter
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-engine-common-google-bin
:: installing flutter-common (3.19.5-2) breaks dependency 'flutter-common=3.19.4' required by flutter-intellij-patch
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-android
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-linux
:: installing flutter-tool (3.19.5-2) breaks dependency 'flutter-tool=3.19.4' required by flutter-target-web
error: packages failed to build: flutter-artifacts-google-bin-3.19.5-1 (flutter-sky-engine-google-bin flutter-material-fonts-google-bin flutter-engine-common-google-bin flutter-engine-linux-google-bin)  flutter-3.19.5-2 (flutter-target-linux)  flutter-artifacts-google-bin-3.19.5-1 (flutter-engine-android-google-bin)  flutter-3.19.5-2 (flutter-gradle flutter-target-android)  flutter-artifacts-google-bin-3.19.5-1 (flutter-engine-web-google-bin)  flutter-3.19.5-2 (flutter-target-web flutter-intellij-patch flutter)

WithTheBraid commented on 2024-03-28 22:27 (UTC)

@niklassc Thanks for the notice. True, it's making use of bash and no pure POSIX shell. Since Flutter depends on bash anyway, I'll just update the flutter.sh shebang.