I failed to install aur/flutter-devel using aur/yay because there are conflicting install files with aur/flutter-tool package, mostly under /usr/lib/flutter/packages/flutter_tools/templates dir:
flutter-devel: /usr/lib/flutter/packages/flutter_tools/templates/xcode/ios/custom_application_bundle/Runner.xcworkspace.tmpl/xcshareddata/WorkspaceSettings.xcsettings already exists in filesystem
EDIT: not sure if exactly came from that package, so I deleted /usr/lib/flutter/packages/flutter_tools/templates and could proceed with the installation without issues.
Pinned Comments
WithTheBraid commented on 2024-03-28 00:44 (UTC) (edited on 2024-05-10 11:44 (UTC) by WithTheBraid)
TL;DR
Upgrade using
aur/yaymight take very long and works inefficiently.Upgrade using
aur/parurequires the-dflag.This is not my fault.
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/flutterandaur/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. Sadlyaur/parudoes not reach at building updates for the package without additional flags. Please useparu -Syud(whereas the-dis the relevant flag) to upgrade the package.On the other hand
aur/yayproperly 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 executepacman -R flutter && pacman -Rns flutterto clean up the previous installation of both package bases.If you build both package bases using
makepkg -sfCand later on install all build outputs usingpacman -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-05-10 11:45 (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/flutterwill 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 packagesflutter-common: the common files for Flutter needed for all use casesflutter-devel: your option of choice as a developer - ships the Flutter tool and all required templates to e.g. create a new projectflutter-tool: The pure Flutter tool. Use asdependsto build your package.flutter-target-linux: The Flutter Linux build files. Use asdependsto build your package.flutter-target-web: The Flutter web build files. Use asdependsto build web apps (e.g.fluffychat-webdoes 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.flutter-dart-google-bin: The Flutter original Dart SDK - downloaded from Google servers. This is helpful if theextra/dartpackage is not available in the right version on your distro or remix.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 !