Package Details: flutter 3.19.6-1

Git Clone URL: https://aur.archlinux.org/flutter.git (read-only, click to copy)
Package Base: flutter
Description: Flutter SDK component - full installation of development tool and runtime
Upstream URL: https://flutter.dev
Keywords: android fuchsia ios mobile sdk
Licenses: custom, BSD, CCPL
Groups: flutter
Conflicts: flutter
Submitter: flipflop97
Maintainer: WithTheBraid
Last Packager: WithTheBraid
Votes: 134
Popularity: 6.38
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 9 10 11 12 .. 23 Next › Last »

juaji commented on 2024-03-26 03:21 (UTC) (edited on 2024-03-26 03:21 (UTC) by juaji)

Gretings, as @akitokatayose mentioned following error appears when installing deps (flutter-common) Oops; flutter has exited unexpectedly: "Null check operator used on a null value". A crash report has been written to /tmp/trizen-luisd/flutter/src/flutter/flutter_01.log

I include the crash report in case it helps give a clue as to what may have happened.

Flutter crash report.
Please report a bug at https://github.com/flutter/flutter/issues.

## command

flutter --version

## exception

_TypeError: Null check operator used on a null value

#0      _gitCommitDate (package:flutter_tools/src/version.dart:387:4)
#1      _FlutterVersionGit.frameworkCommitDate (package:flutter_tools/src/version.dart:495:37)
#2      FlutterVersion.toString (package:flutter_tools/src/version.dart:225:99)
#3      FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:347:30)
<asynchronous suspension>
#4      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#5      FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:295:5)
<asynchronous suspension>
#6      run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:119:9)
<asynchronous suspension>
#7      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#8      main (package:flutter_tools/executable.dart:90:3)
<asynchronous suspension>

## flutter doctor

[☠] Flutter (the doctor check crashed)
    ✗ Due to an error, the doctor check did not complete. If the error message below is not helpful, please
      let us know about this issue at https://github.com/flutter/flutter/issues.
    ✗ Null check operator used on a null value
    • #0      FlutterValidator._getFlutterUpstreamMessage (package:flutter_tools/src/doctor.dart:701:86)
      #1      FlutterValidator.validate (package:flutter_tools/src/doctor.dart:568:20)
      #2      Doctor.startValidatorTasks.<anonymous closure> (package:flutter_tools/src/doctor.dart:272:72)
      #3      asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:111:32)
      #4      _rootRun (dart:async/zone.dart:1399:13)
      #5      _CustomZone.run (dart:async/zone.dart:1301:19)
      #6      _runZoned (dart:async/zone.dart:1826:10)
      #7      runZonedGuarded (dart:async/zone.dart:1814:12)
      #8      runZoned (dart:async/zone.dart:1760:12)
      #9      asyncGuard (package:flutter_tools/src/base/async_guard.dart:109:3)
      #10     Doctor.startValidatorTasks (package:flutter_tools/src/doctor.dart:264:9)
      #11     DoctorText._validatorTasks (package:flutter_tools/src/doctor.dart:784:60)
      #12     DoctorText._validatorTasks (package:flutter_tools/src/doctor.dart)
      #13     DoctorText._runDiagnosis (package:flutter_tools/src/doctor.dart:788:53)
      #14     DoctorText.text (package:flutter_tools/src/doctor.dart:780:36)
      #15     DoctorText.text (package:flutter_tools/src/doctor.dart)
      #16     _createLocalCrashReport (package:flutter_tools/runner.dart:262:51)
      #17     _handleToolError (package:flutter_tools/runner.dart:224:31)
      <asynchronous suspension>
      #18     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
      <asynchronous suspension>
      #19     main (package:flutter_tools/executable.dart:90:3)
      <asynchronous suspension>


[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /home/luisd/Android/Sdk
    • Platform android-33, build-tools 33.0.2
    • Java binary at: /opt/android-studio/jbr/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✓] Linux toolchain - develop for Linux desktop
    • clang version 16.0.6
    • cmake version 3.28.3
    • ninja version 1.11.1
    • pkg-config version 2.1.0

[✓] Android Studio (version 2022.3)
    • Android Studio at /opt/android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] Connected device (1 available)
    • Linux (desktop) • linux • linux-x64 • Manjaro Linux 6.0.19-4-MANJARO

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 2 categories.

akitokatayose commented on 2024-03-26 02:15 (UTC) (edited on 2024-03-26 02:15 (UTC) by akitokatayose)

Updating from the previous package broke my install so I had to redo it with a clean install. However, I'm getting error

Oops; flutter has exited unexpectedly: "Null check operator used on a null value".

after resolving dependencies.

patlefort commented on 2024-03-25 21:38 (UTC)

Looking at the PKGBUILD, I don't think its compiling the engine from source, instead installs artefacts compiled by google. This would make it a binary package and I think people should be informed about it.

Reminder that I made package flutter-engine and flutter-engine-google-bin for packages that depends on flutter and give the user choice between compiling the engine from source or using pre-compiled binaries from google.

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 !

WithTheBraid commented on 2024-03-25 11:42 (UTC)

@sotoleni Thanks for the hint. I modified the package stage to only have a symlink to the /usr/bin/flutter - and have the modified flutter.sh directly in the installation folder. Additionally fixed the /usr/lib/flutter/bin/dart executable to be a symlink to the system Dart installation. This might fix issues when running dart run from the IDE terminal window. Additionally I sadly had to symlink /usr/lib/flutter/bin/cache/dart-sdk to /opt/dart-sdk since this relation is hard-coded into the Flutter IntelliJ plugin : https://github.com/flutter/flutter-intellij/blob/master/flutter-idea/src/io/flutter/sdk/FlutterSdkUtil.java#L231

sotoleni commented on 2024-03-25 10:11 (UTC)

A helpful tip for those using the Flutter plugin with VSCode:

When the plugin searches for the Flutter SDK, it looks in the "/usr/lib/flutter/" directory. Then, it attempts to run the Flutter executable found at "/usr/lib/flutter/bin/flutter". However, this action results in an error message that reads: "Error: The Flutter directory is not a clone of the GitHub project."

To resolve this issue, you can follow these steps:

Rename the original Flutter executable to keep it as a backup. To do this, execute the following command in your terminal: sudo mv /usr/lib/flutter/bin/flutter /usr/lib/flutter/bin/flutter.original

Next, copy the Flutter executable from the new AUR package installation to the expected location by running: sudo cp /usr/bin/flutter /usr/lib/flutter/bin/

After performing these steps, the Flutter plugin in VSCode should work correctly.

Would it be possible to include these adjustments in the AUR package to streamline the setup process for future users?

WithTheBraid commented on 2024-03-25 09:18 (UTC)

@hxzhao527 Thanks for your report. Being available despite great firewall blocking should have been considered as more important before. I apologize I didn't have this in mind. I now patched the PKGBUILD to respect the FLUTTER_STORAGE_BASE_URL environment variable.

WithTheBraid commented on 2024-03-25 09:08 (UTC)

@sotoleni Thanks for the hint, I fixed it and pushed a new patch. Thanks a lot for testing !

sotoleni commented on 2024-03-25 06:42 (UTC)

Hello,

congratulations for the new installation system. But, please fix this line of the patch:

system-dart.patch 127:+ final Directory devToolsDir = _fileSystem.directory(dartSdkRoot + 'bin/resources/devtools');

For this one with the slash before the bin: 127:+ final Directory devToolsDir = _fileSystem.directory(dartSdkRoot + '/bin/resources/devtools');

Thank you very much for your work!