Skip to content
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

Flutter on linux ignores the DART_VM_OPTIONS environment variable, meaning it is impossible to use Flutter on linux behind a corporate proxy #113594

Closed
Tracked by #130635
afgriffiths opened this issue Oct 18, 2022 · 6 comments
Labels
dependency: dart Dart team may need to help us P2 Important issues not at the top of the work list platform-linux Building on or for Linux specifically r: duplicate Issue is closed as a duplicate of an existing issue team-tool Owned by Flutter Tool team tool Affects the "flutter" command-line tool. See also t: labels. triaged-tool Triaged by Flutter Tool team

Comments

@afgriffiths
Copy link

Steps to Reproduce

  1. Install Flutter on linux in an environment where there is a corporate proxy that encrypts all traffic with a self signed certificate.
  2. Run flutter doctor, even this can be an ordeal since flutter does not respect DART_VM_OPTIONS
  3. run `export DART_VM_OPTIONS="--root-certs-file=/path/to/ca.pem" with the path being the path to your own self signed certificate for the corporate proxy
  4. Create a sample flutter project
  5. Attempt to build it using flutter build web
  6. Observe that it fails and in verbose mode. It says runs /prod/eqtech/web/flutter/bin/cache/dart-sdk/bin/dart __deprecated_pub --verbose get --no-precompile which clearly does not contain the --root-certs-file=/path/to/ca.pem environment variable.
  7. Observe that running dart --root-certs-file=/path/to/ca.pem pub get does work meaning that Flutter correctly passing the environment variable would be sufficient to get it working.

Sadly even if you pub get using dart and download all the dependencies, running flutter build causes it to use pub again and then it fails, meaning it is impossible to build using Flutter on linux behind a corporate proxy.

I'd consider this a very high priority issue, since it means it's impossible for any companies with linux machines used by developers or as build servers who also have a proxy to use Flutter whatsoever.

Logs

Logs
> flutter build web --verbose
[  +76 ms] executing: uname -m
[  +34 ms] Exit code 0 from: uname -m
[        ] x86_64
[   +6 ms] executing: [/prod/eqtech/web/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +9 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] eb6d86ee27deecba4a83536aa20f366a6044895c
[        ] executing: [/prod/eqtech/web/flutter/] git tag --points-at eb6d86ee27deecba4a83536aa20f366a6044895c
[  +20 ms] Exit code 0 from: git tag --points-at eb6d86ee27deecba4a83536aa20f366a6044895c
[        ] 3.3.4
[  +64 ms] executing: [/prod/eqtech/web/flutter/] git rev-parse --abbrev-ref --symbolic @{upstream}
[   +7 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{upstream}
[        ] origin/stable
[        ] executing: [/prod/eqtech/web/flutter/] git ls-remote --get-url origin
[   +8 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +40 ms] Unable to locate an Android SDK.
[   +5 ms] executing: [/prod/eqtech/web/flutter/] git rev-parse --abbrev-ref HEAD
[   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[  +67 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +97 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[  +62 ms] Running "flutter pub get" in clientportalui...
[   +4 ms] Using /prod/eqtech/web/flutter/.pub-cache for the pub cache.
[        ] executing: [/scratch/eqtech/eqtech/pkgs/clientportalui/] /prod/eqtech/web/flutter/bin/cache/dart-sdk/bin/dart __deprecated_pub --verbose get --no-precompile
[ +102 ms] FINE: Pub 2.18.2
[  +71 ms] MSG : Resolving dependencies...
[  +95 ms] SLVR: fact: clientportalui is 0.1.0-dev
[   +9 ms] SLVR: derived: clientportalui
[  +31 ms] SLVR: fact: clientportalui depends on auto_route ^5.0.1
[        ] SLVR: fact: clientportalui depends on bloc ^8.0.3
[        ] SLVR: fact: clientportalui depends on clock ^1.1.0
[        ] SLVR: fact: clientportalui depends on device_info_plus ^4.1.2
[   +1 ms] SLVR: fact: clientportalui depends on flutter from sdk
[        ] SLVR: fact: clientportalui depends on flutter_bloc ^8.0.1
[        ] SLVR: fact: clientportalui depends on flutter_secure_storage ^6.0.0
[        ] SLVR: fact: clientportalui depends on freezed_annotation ^2.0.3
[        ] SLVR: fact: clientportalui depends on get_it ^7.2.0
[        ] SLVR: fact: clientportalui depends on hive ^2.2.3
[        ] SLVR: fact: clientportalui depends on hive_flutter ^1.1.0
[        ] SLVR: fact: clientportalui depends on http ^0.13.4
[        ] SLVR: fact: clientportalui depends on http_status_code ^0.0.2
[        ] SLVR: fact: clientportalui depends on hydrated_bloc ^9.0.0-dev
[        ] SLVR: fact: clientportalui depends on injectable ^1.5.3
[        ] SLVR: fact: clientportalui depends on intl ^0.17.0
[        ] SLVR: fact: clientportalui depends on json_annotation ^4.6.0
[        ] SLVR: fact: clientportalui depends on path_provider ^2.0.9
[        ] SLVR: fact: clientportalui depends on provider ^6.0.2
[        ] SLVR: fact: clientportalui depends on syncfusion_flutter_charts ^20.1.61
[        ] SLVR: fact: clientportalui depends on syncfusion_flutter_datagrid ^20.3.47
[        ] SLVR: fact: clientportalui depends on uuid ^3.0.6
[        ] SLVR: fact: clientportalui depends on async ^2.9.0
[        ] SLVR: fact: clientportalui depends on auto_route_generator ^5.0.2
[        ] SLVR: fact: clientportalui depends on bloc_test ^9.0.3
[        ] SLVR: fact: clientportalui depends on build_runner ^2.1.10
[        ] SLVR: fact: clientportalui depends on fake_async ^1.3.0
[        ] SLVR: fact: clientportalui depends on flutter_gen_runner ^5.0.1
[        ] SLVR: fact: clientportalui depends on flutter_test from sdk
[        ] SLVR: fact: clientportalui depends on freezed ^2.0.3+1
[        ] SLVR: fact: clientportalui depends on hive_generator ^1.1.3
[        ] SLVR: fact: clientportalui depends on icons_launcher ^2.0.2
[        ] SLVR: fact: clientportalui depends on injectable_generator ^1.5.2
[        ] SLVR: fact: clientportalui depends on integration_test from sdk
[        ] SLVR: fact: clientportalui depends on json_serializable ^6.3.1
[        ] SLVR: fact: clientportalui depends on lint ^1.8.2
[        ] SLVR: fact: clientportalui depends on mockito ^5.3.0
[        ] SLVR: fact: clientportalui depends on test ^1.19.5
[        ] SLVR:   selecting clientportalui
[        ] SLVR:   derived: test ^1.19.5
[        ] SLVR:   derived: mockito ^5.3.0
[        ] SLVR:   derived: lint ^1.8.2
[        ] SLVR:   derived: json_serializable ^6.3.1
[        ] SLVR:   derived: integration_test from sdk
[        ] SLVR:   derived: injectable_generator ^1.5.2
[        ] SLVR:   derived: icons_launcher ^2.0.2
[        ] SLVR:   derived: hive_generator ^1.1.3
[        ] SLVR:   derived: freezed ^2.0.3+1
[        ] SLVR:   derived: flutter_test from sdk
[        ] SLVR:   derived: flutter_gen_runner ^5.0.1
[        ] SLVR:   derived: fake_async ^1.3.0
[        ] SLVR:   derived: build_runner ^2.1.10
[        ] SLVR:   derived: bloc_test ^9.0.3
[        ] SLVR:   derived: auto_route_generator ^5.0.2
[        ] SLVR:   derived: async ^2.9.0
[        ] SLVR:   derived: uuid ^3.0.6
[        ] SLVR:   derived: syncfusion_flutter_datagrid ^20.3.47
[        ] SLVR:   derived: syncfusion_flutter_charts ^20.1.61
[        ] SLVR:   derived: provider ^6.0.2
[        ] SLVR:   derived: path_provider ^2.0.9
[        ] SLVR:   derived: json_annotation ^4.6.0
[        ] SLVR:   derived: intl ^0.17.0
[        ] SLVR:   derived: injectable ^1.5.3
[        ] SLVR:   derived: hydrated_bloc ^9.0.0-dev
[        ] SLVR:   derived: http_status_code ^0.0.2
[        ] SLVR:   derived: http ^0.13.4
[        ] SLVR:   derived: hive_flutter ^1.1.0
[        ] SLVR:   derived: hive ^2.2.3
[        ] SLVR:   derived: get_it ^7.2.0
[        ] SLVR:   derived: freezed_annotation ^2.0.3
[        ] SLVR:   derived: flutter_secure_storage ^6.0.0
[        ] SLVR:   derived: flutter_bloc ^8.0.1
[        ] SLVR:   derived: flutter from sdk
[        ] SLVR:   derived: device_info_plus ^4.1.2
[        ] SLVR:   derived: clock ^1.1.0
[        ] SLVR:   derived: bloc ^8.0.3
[        ] SLVR:   derived: auto_route ^5.0.1
[  +23 ms] SLVR:   fact: test 1.21.4 depends on analyzer >=2.0.0 <5.0.0
[        ] SLVR:   fact: test 1.21.4 depends on async ^2.5.0
[        ] SLVR:   fact: test 1.21.4 depends on boolean_selector ^2.1.0
[        ] SLVR:   fact: test 1.21.4 depends on collection ^1.15.0
[        ] SLVR:   fact: test 1.21.4 depends on coverage ^1.0.1
[        ] SLVR:   fact: test 1.21.4 depends on http_multi_server ^3.0.0
[        ] SLVR:   fact: test 1.21.4 depends on io ^1.0.0
[        ] SLVR:   fact: test 1.21.4 depends on js ^0.6.3
[        ] SLVR:   fact: test 1.21.4 depends on node_preamble ^2.0.0
[        ] SLVR:   fact: test 1.21.4 depends on package_config ^2.0.0
[        ] SLVR:   fact: test 1.21.4 depends on path ^1.8.0
[        ] SLVR:   fact: test 1.21.4 depends on pool ^1.5.0
[        ] SLVR:   fact: test 1.21.4 depends on shelf ^1.0.0
[        ] SLVR:   fact: test 1.21.4 depends on shelf_packages_handler ^3.0.0
[        ] SLVR:   fact: test 1.21.4 depends on shelf_static ^1.0.0
[        ] SLVR:   fact: test 1.21.4 depends on shelf_web_socket ^1.0.0
[        ] SLVR:   fact: test 1.21.4 depends on source_span ^1.8.0
[        ] SLVR:   fact: test 1.21.4 depends on stack_trace ^1.10.0
[        ] SLVR:   fact: test 1.21.4 depends on stream_channel ^2.1.0
[        ] SLVR:   fact: test 1.21.4 depends on typed_data ^1.3.0
[        ] SLVR:   fact: test 1.21.4 depends on web_socket_channel ^2.0.0
[        ] SLVR:   fact: test 1.21.4 depends on webkit_inspection_protocol ^1.0.0
[        ] SLVR:   fact: test 1.21.4 depends on yaml ^3.0.0
[        ] SLVR:   fact: test 1.21.4 depends on test_api 0.4.12
[        ] SLVR:   fact: test 1.21.4 depends on test_core 0.4.16
[        ] SLVR:     selecting test 1.21.4
[        ] SLVR:     derived: test_core 0.4.16
[        ] SLVR:     derived: test_api 0.4.12
[        ] SLVR:     derived: yaml ^3.0.0
[        ] SLVR:     derived: webkit_inspection_protocol ^1.0.0
[        ] SLVR:     derived: web_socket_channel ^2.0.0
[        ] SLVR:     derived: typed_data ^1.3.0
[        ] SLVR:     derived: stream_channel ^2.1.0
[        ] SLVR:     derived: stack_trace ^1.10.0
[        ] SLVR:     derived: source_span ^1.8.0
[        ] SLVR:     derived: shelf_web_socket ^1.0.0
[        ] SLVR:     derived: shelf_static ^1.0.0
[        ] SLVR:     derived: shelf_packages_handler ^3.0.0
[        ] SLVR:     derived: shelf ^1.0.0
[        ] SLVR:     derived: pool ^1.5.0
[        ] SLVR:     derived: path ^1.8.0
[        ] SLVR:     derived: package_config ^2.0.0
[        ] SLVR:     derived: node_preamble ^2.0.0
[        ] SLVR:     derived: js ^0.6.3
[        ] SLVR:     derived: io ^1.0.0
[        ] SLVR:     derived: http_multi_server ^3.0.0
[        ] SLVR:     derived: coverage ^1.0.1
[        ] SLVR:     derived: collection ^1.15.0
[        ] SLVR:     derived: boolean_selector ^2.1.0
[        ] SLVR:     derived: analyzer >=2.0.0 <5.0.0
[  +14 ms] IO  : Get versions from https://pub.dartlang.org/api/packages/mockito.
[  +16 ms] IO  : HTTP GET https://pub.dartlang.org/api/packages/mockito
[        ]     | Accept: application/vnd.pub.v2+json
[        ]     | X-Pub-OS: linux
[        ]     | X-Pub-Command: get
[        ]     | X-Pub-Session-ID: 42E61CEE-0A5D-4439-B6D9-689BF9445D47
[        ]     | X-Pub-Environment: flutter_cli:verify:web
[        ]     | X-Pub-Reason: dev
[        ]     | user-agent: Dart pub 2.18.2
[ +124 ms] IO  : HTTP error:
[        ]     | HandshakeException: Handshake error in client (OS Error:
[        ]     |  CERTIFICATE_VERIFY_FAILED: self signed certificate in certificate chain(handshake.cc:393))
[        ]     |
[        ]     | dart:_http                                                     _HttpClient.openUrl
[        ]     | package:http/src/io_client.dart 57:38                          IOClient.send
[        ]     | package:pub/src/http.dart 68:43                                _PubHttpClient.send
[        ]     | package:http/retry.dart 111:33                                 RetryClient.send
[        ]     | package:pub/src/http.dart 175:39                               _ThrowingClient.send
[        ]     | package:pub/src/http.dart 379:31                               _ThrottleClient.send
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/http.dart 375:20                               _ThrottleClient.send
[        ]     | package:pub/src/authentication/client.dart 52:37               _AuthenticatedClient.send
[        ]     | package:http/src/base_client.dart 93:38                        BaseClient._sendUnstreamed
[        ]     | package:http/src/base_client.dart 27:7                         BaseClient.get
[        ]     | package:http/src/base_client.dart 51:28                        BaseClient.read
[        ]     | package:pub/src/source/hosted.dart 358:28                      HostedSource._fetchVersionsNoPrefetching.<fn>
[        ]     | package:pub/src/authentication/client.dart 133:20              withAuthenticatedClient
[        ]     | package:pub/src/source/hosted.dart 355:24                      HostedSource._fetchVersionsNoPrefetching
[        ]     | package:pub/src/source/hosted.dart 417:26                      HostedSource._fetchVersions
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/source/hosted.dart 415:11                      HostedSource._fetchVersions
[        ]     | dart:async                                                     _CustomZone.runUnary
[        ]     | package:pub/src/rate_limited_scheduler.dart 85:27              RateLimitedScheduler._processNextTask.runJob
[        ]     | package:pub/src/rate_limited_scheduler.dart 88:24              RateLimitedScheduler._processNextTask
[        ]     | package:pool/pool.dart 127:28                                  Pool.withResource
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pool/pool.dart 125:20                                  Pool.withResource
[        ]     | package:pub/src/rate_limited_scheduler.dart 134:37             RateLimitedScheduler.schedule.<fn>
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     scheduleMicrotask
[        ]     | package:pub/src/rate_limited_scheduler.dart 134:7              RateLimitedScheduler.schedule
[        ]     | package:pub/src/source/hosted.dart 654:39                      HostedSource.describeUncached
[        ]     | package:pub/src/source/cached.dart 35:18                       CachedSource.doDescribe
[        ]     | package:pub/src/system_cache.dart 157:58                       SystemCache.describe
[        ]     | package:pub/src/solver/package_lister.dart 192:47              PackageLister.incompatibilitiesFor.<fn>
[        ]     | dart:async                                                     runZoned
[        ]     | package:pub/src/http.dart 293:10                               withDependencyType
[        ]     | package:pub/src/solver/package_lister.dart 191:23              PackageLister.incompatibilitiesFor
[        ]     | package:pub/src/solver/version_solver.dart 371:42              VersionSolver._choosePackageVersion
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/solver/version_solver.dart 335:19              VersionSolver._choosePackageVersion
[        ]     | package:pub/src/solver/version_solver.dart 97:24               VersionSolver.solve.<fn>
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/solver/version_solver.dart 97:18               VersionSolver.solve.<fn>
[        ]     | dart:async                                                     runZoned
[        ]     | package:pub/src/source/hosted.dart 954:20                      HostedSource.withPrefetching.<fn>
[        ]     | package:pub/src/rate_limited_scheduler.dart 110:28             RateLimitedScheduler.withPrescheduling
[        ]     | package:pub/src/source/hosted.dart 953:29                      HostedSource.withPrefetching
[        ]     | package:pub/src/solver/version_solver.dart 93:40               VersionSolver.solve
[        ]     | package:pub/src/solver.dart 44:5                               resolveVersions
[        ]     | package:pub/src/entrypoint.dart 290:16                         Entrypoint.acquireDependencies.<fn>
[        ]     | package:pub/src/log.dart 428:18                                progress
[        ]     | package:pub/src/entrypoint.dart 288:26                         Entrypoint.acquireDependencies
[        ]     | package:pub/src/command/get.dart 55:22                         GetCommand.runProtected
[        ]     | package:pub/src/command.dart 189:45                            PubCommand.run.<fn>
[        ]     | dart:async                                                     new Future.sync
[        ]     | package:pub/src/utils.dart 109:12                              captureErrors.wrappedCallback
[        ]     | package:stack_trace                                            Chain.capture
[        ]     | package:pub/src/utils.dart 122:11                              captureErrors
[        ]     | package:pub/src/command.dart 189:13                            PubCommand.run
[        ]     | package:args/command_runner.dart 209:27                        CommandRunner.runCommand
[        ]     | package:pub/src/command_runner.dart 176:24                     PubCommandRunner.runCommand
[        ]     | package:pub/src/command_runner.dart 161:20                     PubCommandRunner.run
[        ]     | package:dartdev/dartdev.dart 45:56                             runDartdev
[        ]     | /b/s/w/ir/cache/builder/sdk/pkg/dartdev/bin/dartdev.dart 11:9  main
[ +940 ms] IO  : Retry #1 for GET https://pub.dartlang.org/api/packages/mockito...
[        ] IO  : HTTP GET https://pub.dartlang.org/api/packages/mockito
[        ]     | Accept: application/vnd.pub.v2+json
[        ]     | X-Pub-OS: linux
[        ]     | X-Pub-Command: get
[        ]     | X-Pub-Session-ID: 42E61CEE-0A5D-4439-B6D9-689BF9445D47
[        ]     | X-Pub-Environment: flutter_cli:verify:web
[        ]     | X-Pub-Reason: dev
[        ]     | user-agent: Dart pub 2.18.2
[  +38 ms] IO  : HTTP error:
[        ]     | HandshakeException: Handshake error in client (OS Error:
[        ]     |  CERTIFICATE_VERIFY_FAILED: self signed certificate in certificate chain(handshake.cc:393))
[        ]     |
[        ]     | dart:_http                                                     _HttpClient.openUrl
[        ]     | package:http/src/io_client.dart 57:38                          IOClient.send
[        ]     | package:pub/src/http.dart 68:43                                _PubHttpClient.send
[        ]     | package:http/retry.dart 111:33                                 RetryClient.send
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:http/retry.dart 111:20                                 RetryClient.send
[        ]     | package:pub/src/http.dart 175:39                               _ThrowingClient.send
[        ]     | package:pub/src/http.dart 379:31                               _ThrottleClient.send
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/http.dart 375:20                               _ThrottleClient.send
[        ]     | package:pub/src/authentication/client.dart 52:37               _AuthenticatedClient.send
[        ]     | package:http/src/base_client.dart 93:38                        BaseClient._sendUnstreamed
[        ]     | package:http/src/base_client.dart 27:7                         BaseClient.get
[        ]     | package:http/src/base_client.dart 51:28                        BaseClient.read
[        ]     | package:pub/src/source/hosted.dart 358:28                      HostedSource._fetchVersionsNoPrefetching.<fn>
[        ]     | package:pub/src/authentication/client.dart 133:20              withAuthenticatedClient
[        ]     | package:pub/src/source/hosted.dart 355:24                      HostedSource._fetchVersionsNoPrefetching
[        ]     | package:pub/src/source/hosted.dart 417:26                      HostedSource._fetchVersions
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/source/hosted.dart 415:11                      HostedSource._fetchVersions
[        ]     | dart:async                                                     _CustomZone.runUnary
[        ]     | package:pub/src/rate_limited_scheduler.dart 85:27              RateLimitedScheduler._processNextTask.runJob
[        ]     | package:pub/src/rate_limited_scheduler.dart 88:24              RateLimitedScheduler._processNextTask
[        ]     | package:pool/pool.dart 127:28                                  Pool.withResource
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pool/pool.dart 125:20                                  Pool.withResource
[        ]     | package:pub/src/rate_limited_scheduler.dart 134:37             RateLimitedScheduler.schedule.<fn>
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     scheduleMicrotask
[        ]     | package:pub/src/rate_limited_scheduler.dart 134:7              RateLimitedScheduler.schedule
[        ]     | package:pub/src/source/hosted.dart 654:39                      HostedSource.describeUncached
[        ]     | package:pub/src/source/cached.dart 35:18                       CachedSource.doDescribe
[        ]     | package:pub/src/system_cache.dart 157:58                       SystemCache.describe
[        ]     | package:pub/src/solver/package_lister.dart 192:47              PackageLister.incompatibilitiesFor.<fn>
[        ]     | dart:async                                                     runZoned
[        ]     | package:pub/src/http.dart 293:10                               withDependencyType
[        ]     | package:pub/src/solver/package_lister.dart 191:23              PackageLister.incompatibilitiesFor
[        ]     | package:pub/src/solver/version_solver.dart 371:42              VersionSolver._choosePackageVersion
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/solver/version_solver.dart 335:19              VersionSolver._choosePackageVersion
[        ]     | package:pub/src/solver/version_solver.dart 97:24               VersionSolver.solve.<fn>
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/solver/version_solver.dart 97:18               VersionSolver.solve.<fn>
[        ]     | dart:async                                                     runZoned
[        ]     | package:pub/src/source/hosted.dart 954:20                      HostedSource.withPrefetching.<fn>
[        ]     | package:pub/src/rate_limited_scheduler.dart 110:28             RateLimitedScheduler.withPrescheduling
[        ]     | package:pub/src/source/hosted.dart 953:29                      HostedSource.withPrefetching
[        ]     | package:pub/src/solver/version_solver.dart 93:40               VersionSolver.solve
[        ]     | package:pub/src/solver.dart 44:5                               resolveVersions
[        ]     | package:pub/src/entrypoint.dart 290:16                         Entrypoint.acquireDependencies.<fn>
[        ]     | package:pub/src/log.dart 428:18                                progress
[        ]     | package:pub/src/entrypoint.dart 288:26                         Entrypoint.acquireDependencies
[        ]     | package:pub/src/command/get.dart 55:22                         GetCommand.runProtected
[        ]     | package:pub/src/command.dart 189:45                            PubCommand.run.<fn>
[        ]     | dart:async                                                     new Future.sync
[        ]     | package:pub/src/utils.dart 109:12                              captureErrors.wrappedCallback
[        ]     | package:stack_trace                                            Chain.capture
[        ]     | package:pub/src/utils.dart 122:11                              captureErrors
[        ]     | package:pub/src/command.dart 189:13                            PubCommand.run
[        ]     | package:args/command_runner.dart 209:27                        CommandRunner.runCommand
[        ]     | package:pub/src/command_runner.dart 176:24                     PubCommandRunner.runCommand
[        ]     | package:pub/src/command_runner.dart 161:20                     PubCommandRunner.run
[        ]     | package:dartdev/dartdev.dart 45:56                             runDartdev
[        ]     | /b/s/w/ir/cache/builder/sdk/pkg/dartdev/bin/dartdev.dart 11:9  main
[+1120 ms] IO  : Retry #2 for GET https://pub.dartlang.org/api/packages/mockito...
[        ] IO  : HTTP GET https://pub.dartlang.org/api/packages/mockito
[        ]     | Accept: application/vnd.pub.v2+json
[        ]     | X-Pub-OS: linux
[        ]     | X-Pub-Command: get
[        ]     | X-Pub-Session-ID: 42E61CEE-0A5D-4439-B6D9-689BF9445D47
[        ]     | X-Pub-Environment: flutter_cli:verify:web
[        ]     | X-Pub-Reason: dev
[        ]     | user-agent: Dart pub 2.18.2
[  +37 ms] IO  : HTTP error:
[        ]     | HandshakeException: Handshake error in client (OS Error:
[        ]     |  CERTIFICATE_VERIFY_FAILED: self signed certificate in certificate chain(handshake.cc:393))
[        ]     |
[        ]     | dart:_http                                                     _HttpClient.openUrl
[        ]     | package:http/src/io_client.dart 57:38                          IOClient.send
[        ]     | package:pub/src/http.dart 68:43                                _PubHttpClient.send
[        ]     | package:http/retry.dart 111:33                                 RetryClient.send
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:http/retry.dart 111:20                                 RetryClient.send
[        ]     | package:pub/src/http.dart 175:39                               _ThrowingClient.send
[        ]     | package:pub/src/http.dart 379:31                               _ThrottleClient.send
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/http.dart 375:20                               _ThrottleClient.send
[        ]     | package:pub/src/authentication/client.dart 52:37               _AuthenticatedClient.send
[        ]     | package:http/src/base_client.dart 93:38                        BaseClient._sendUnstreamed
[        ]     | package:http/src/base_client.dart 27:7                         BaseClient.get
[        ]     | package:http/src/base_client.dart 51:28                        BaseClient.read
[        ]     | package:pub/src/source/hosted.dart 358:28                      HostedSource._fetchVersionsNoPrefetching.<fn>
[        ]     | package:pub/src/authentication/client.dart 133:20              withAuthenticatedClient
[        ]     | package:pub/src/source/hosted.dart 355:24                      HostedSource._fetchVersionsNoPrefetching
[        ]     | package:pub/src/source/hosted.dart 417:26                      HostedSource._fetchVersions
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/source/hosted.dart 415:11                      HostedSource._fetchVersions
[        ]     | dart:async                                                     _CustomZone.runUnary
[        ]     | package:pub/src/rate_limited_scheduler.dart 85:27              RateLimitedScheduler._processNextTask.runJob
[        ]     | package:pub/src/rate_limited_scheduler.dart 88:24              RateLimitedScheduler._processNextTask
[        ]     | package:pool/pool.dart 127:28                                  Pool.withResource
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pool/pool.dart 125:20                                  Pool.withResource
[        ]     | package:pub/src/rate_limited_scheduler.dart 134:37             RateLimitedScheduler.schedule.<fn>
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     scheduleMicrotask
[        ]     | package:pub/src/rate_limited_scheduler.dart 134:7              RateLimitedScheduler.schedule
[        ]     | package:pub/src/source/hosted.dart 654:39                      HostedSource.describeUncached
[        ]     | package:pub/src/source/cached.dart 35:18                       CachedSource.doDescribe
[        ]     | package:pub/src/system_cache.dart 157:58                       SystemCache.describe
[        ]     | package:pub/src/solver/package_lister.dart 192:47              PackageLister.incompatibilitiesFor.<fn>
[        ]     | dart:async                                                     runZoned
[        ]     | package:pub/src/http.dart 293:10                               withDependencyType
[        ]     | package:pub/src/solver/package_lister.dart 191:23              PackageLister.incompatibilitiesFor
[        ]     | package:pub/src/solver/version_solver.dart 371:42              VersionSolver._choosePackageVersion
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/solver/version_solver.dart 335:19              VersionSolver._choosePackageVersion
[        ]     | package:pub/src/solver/version_solver.dart 97:24               VersionSolver.solve.<fn>
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/solver/version_solver.dart 97:18               VersionSolver.solve.<fn>
[        ]     | dart:async                                                     runZoned
[        ]     | package:pub/src/source/hosted.dart 954:20                      HostedSource.withPrefetching.<fn>
[        ]     | package:pub/src/rate_limited_scheduler.dart 110:28             RateLimitedScheduler.withPrescheduling
[        ]     | package:pub/src/source/hosted.dart 953:29                      HostedSource.withPrefetching
[        ]     | package:pub/src/solver/version_solver.dart 93:40               VersionSolver.solve
[        ]     | package:pub/src/solver.dart 44:5                               resolveVersions
[        ]     | package:pub/src/entrypoint.dart 290:16                         Entrypoint.acquireDependencies.<fn>
[        ]     | package:pub/src/log.dart 428:18                                progress
[        ]     | package:pub/src/entrypoint.dart 288:26                         Entrypoint.acquireDependencies
[        ]     | package:pub/src/command/get.dart 55:22                         GetCommand.runProtected
[        ]     | package:pub/src/command.dart 189:45                            PubCommand.run.<fn>
[        ]     | dart:async                                                     new Future.sync
[        ]     | package:pub/src/utils.dart 109:12                              captureErrors.wrappedCallback
[        ]     | package:stack_trace                                            Chain.capture
[        ]     | package:pub/src/utils.dart 122:11                              captureErrors
[        ]     | package:pub/src/command.dart 189:13                            PubCommand.run
[        ]     | package:args/command_runner.dart 209:27                        CommandRunner.runCommand
[        ]     | package:pub/src/command_runner.dart 176:24                     PubCommandRunner.runCommand
[        ]     | package:pub/src/command_runner.dart 161:20                     PubCommandRunner.run
[        ]     | package:dartdev/dartdev.dart 45:56                             runDartdev
[        ]     | /b/s/w/ir/cache/builder/sdk/pkg/dartdev/bin/dartdev.dart 11:9  main
[+1610 ms] IO  : Retry #3 for GET https://pub.dartlang.org/api/packages/mockito...
[        ] IO  : HTTP GET https://pub.dartlang.org/api/packages/mockito
[        ]     | Accept: application/vnd.pub.v2+json
[        ]     | X-Pub-OS: linux
[        ]     | X-Pub-Command: get
[        ]     | X-Pub-Session-ID: 42E61CEE-0A5D-4439-B6D9-689BF9445D47
[        ]     | X-Pub-Environment: flutter_cli:verify:web
[        ]     | X-Pub-Reason: dev
[        ]     | user-agent: Dart pub 2.18.2
[  +35 ms] IO  : HTTP error:
[        ]     | HandshakeException: Handshake error in client (OS Error:
[        ]     |  CERTIFICATE_VERIFY_FAILED: self signed certificate in certificate chain(handshake.cc:393))
[        ]     |
[        ]     | dart:_http                                                     _HttpClient.openUrl
[        ]     | package:http/src/io_client.dart 57:38                          IOClient.send
[        ]     | package:pub/src/http.dart 68:43                                _PubHttpClient.send
[        ]     | package:http/retry.dart 111:33                                 RetryClient.send
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:http/retry.dart 111:20                                 RetryClient.send
[        ]     | package:pub/src/http.dart 175:39                               _ThrowingClient.send
[        ]     | package:pub/src/http.dart 379:31                               _ThrottleClient.send
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/http.dart 375:20                               _ThrottleClient.send
[        ]     | package:pub/src/authentication/client.dart 52:37               _AuthenticatedClient.send
[        ]     | package:http/src/base_client.dart 93:38                        BaseClient._sendUnstreamed
[        ]     | package:http/src/base_client.dart 27:7                         BaseClient.get
[        ]     | package:http/src/base_client.dart 51:28                        BaseClient.read
[        ]     | package:pub/src/source/hosted.dart 358:28                      HostedSource._fetchVersionsNoPrefetching.<fn>
[        ]     | package:pub/src/authentication/client.dart 133:20              withAuthenticatedClient
[        ]     | package:pub/src/source/hosted.dart 355:24                      HostedSource._fetchVersionsNoPrefetching
[        ]     | package:pub/src/source/hosted.dart 417:26                      HostedSource._fetchVersions
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/source/hosted.dart 415:11                      HostedSource._fetchVersions
[        ]     | dart:async                                                     _CustomZone.runUnary
[        ]     | package:pub/src/rate_limited_scheduler.dart 85:27              RateLimitedScheduler._processNextTask.runJob
[        ]     | package:pub/src/rate_limited_scheduler.dart 88:24              RateLimitedScheduler._processNextTask
[        ]     | package:pool/pool.dart 127:28                                  Pool.withResource
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pool/pool.dart 125:20                                  Pool.withResource
[        ]     | package:pub/src/rate_limited_scheduler.dart 134:37             RateLimitedScheduler.schedule.<fn>
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     scheduleMicrotask
[        ]     | package:pub/src/rate_limited_scheduler.dart 134:7              RateLimitedScheduler.schedule
[        ]     | package:pub/src/source/hosted.dart 654:39                      HostedSource.describeUncached
[        ]     | package:pub/src/source/cached.dart 35:18                       CachedSource.doDescribe
[        ]     | package:pub/src/system_cache.dart 157:58                       SystemCache.describe
[        ]     | package:pub/src/solver/package_lister.dart 192:47              PackageLister.incompatibilitiesFor.<fn>
[        ]     | dart:async                                                     runZoned
[        ]     | package:pub/src/http.dart 293:10                               withDependencyType
[        ]     | package:pub/src/solver/package_lister.dart 191:23              PackageLister.incompatibilitiesFor
[        ]     | package:pub/src/solver/version_solver.dart 371:42              VersionSolver._choosePackageVersion
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/solver/version_solver.dart 335:19              VersionSolver._choosePackageVersion
[        ]     | package:pub/src/solver/version_solver.dart 97:24               VersionSolver.solve.<fn>
[        ]     | ===== asynchronous gap ===========================
[        ]     | dart:async                                                     _CustomZone.registerUnaryCallback
[        ]     | package:pub/src/solver/version_solver.dart 97:18               VersionSolver.solve.<fn>
[        ]     | dart:async                                                     runZoned
[        ]     | package:pub/src/source/hosted.dart 954:20                      HostedSource.withPrefetching.<fn>
[        ]     | package:pub/src/rate_limited_scheduler.dart 110:28             RateLimitedScheduler.withPrescheduling
[        ]     | package:pub/src/source/hosted.dart 953:29                      HostedSource.withPrefetching
[        ]     | package:pub/src/solver/version_solver.dart 93:40               VersionSolver.solve
[        ]     | package:pub/src/solver.dart 44:5                               resolveVersions
[        ]     | package:pub/src/entrypoint.dart 290:16                         Entrypoint.acquireDependencies.<fn>
[        ]     | package:pub/src/log.dart 428:18                                progress
[        ]     | package:pub/src/entrypoint.dart 288:26                         Entrypoint.acquireDependencies
[        ]     | package:pub/src/command/get.dart 55:22                         GetCommand.runProtected
[        ]     | package:pub/src/command.dart 189:45                            PubCommand.run.<fn>
[        ]     | dart:async                                                     new Future.sync
[        ]     | package:pub/src/utils.dart 109:12                              captureErrors.wrappedCallback
[        ]     | package:stack_trace                                            Chain.capture
[        ]     | package:pub/src/utils.dart 122:11                              captureErrors
[        ]     | package:pub/src/command.dart 189:13                            PubCommand.run
[        ]     | package:args/command_runner.dart 209:27                        CommandRunner.runCommand
[        ]     | package:pub/src/command_runner.dart 176:24                     PubCommandRunner.runCommand
[        ]     | package:pub/src/command_runner.dart 161:20                     PubCommandRunner.run
[        ]     | package:dartdev/dartdev.dart 45:56                             runDartdev
[        ]     | /b/s/w/ir/cache/builder/sdk/pkg/dartdev/bin/dartdev.dart 11:9  main
[✓] Flutter (Channel stable, 3.3.4, on Red Hat Enterprise Linux 3.10.0-1160.71.1.el7.x86_64, locale en_GB.UTF-8)
    • Flutter version 3.3.4 on channel stable at /prod/eqtech/web/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision eb6d86ee27 (13 days ago), 2022-10-04 22:31:45 -0700
    • Engine revision c08d7d5efc
    • Dart version 2.18.2
    • DevTools version 2.15.0

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.


[✗] 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++ is required for Linux development.
      It is likely available from your distribution (e.g.: apt install clang), or can be downloaded from https://releases.llvm.org/
    ✗ CMake is required for Linux development.
      It is likely available from your distribution (e.g.: apt install cmake), or can be downloaded from https://cmake.org/download/
    ✗ ninja is required for Linux development.
      It is likely available from your distribution (e.g.: apt install ninja-build), or can be downloaded from https://github.com/ninja-build/ninja/releases
    • pkg-config version 0.27.1
    ✗ pkg-config 0.29.0 or later is required.
    ✗ GTK 3.0 development libraries are required for Linux development.
      They are likely available from your distribution (e.g.: apt install libgtk-3-dev)

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).

[✓] Connected device (1 available)
    • Linux (desktop) • linux • linux-x64 • Red Hat Enterprise Linux 3.10.0-1160.71.1.el7.x86_64

[!] HTTP Host Availability
    ✗ HTTP host "https://cocoapods.org/" is not reachable. Reason: An error occurred while checking the HTTP host: Handshake error in client
    ✗ HTTP host "https://maven.google.com/" is not reachable. Reason: An error occurred while checking the HTTP host: Handshake error in client
    ✗ HTTP host "https://pub.dev/" is not reachable. Reason: An error occurred while checking the HTTP host: Handshake error in client
    ✗ HTTP host "https://cloud.google.com/" is not reachable. Reason: An error occurred while checking the HTTP host: Handshake error in client
@huycozy huycozy added the in triage Presently being triaged by the triage team label Oct 18, 2022
@huycozy
Copy link
Member

huycozy commented Oct 18, 2022

@afgriffiths thanks for filing the issue. I see there are some open issues addressing the case you described #47262, #51459 (duplicate of #56607).

Closing this issue as a duplicate, so please follow up on mentioned issues for further updates. You can leave there your comment and react an upvote to the original comment will help to raise the issue. Thank you!

@huycozy huycozy closed this as not planned Won't fix, can't repro, duplicate, stale Oct 18, 2022
@huycozy huycozy added r: duplicate Issue is closed as a duplicate of an existing issue and removed in triage Presently being triaged by the triage team labels Oct 18, 2022
@github-actions
Copy link

github-actions bot commented Nov 1, 2022

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 1, 2022
@huycozy
Copy link
Member

huycozy commented Nov 3, 2022

Hi @afgriffiths
I re-open this issue due to one duplicated issue #47262 having been closed. Labeling this issue for further investigation from the team.

May be related/similar: #56607

@huycozy huycozy reopened this Nov 3, 2022
@huycozy huycozy added tool Affects the "flutter" command-line tool. See also t: labels. dependency: dart Dart team may need to help us platform-linux Building on or for Linux specifically and removed r: duplicate Issue is closed as a duplicate of an existing issue labels Nov 3, 2022
@flutter-triage-bot flutter-triage-bot bot unlocked this conversation Jun 16, 2023
@flutter-triage-bot flutter-triage-bot bot added the team-tool Owned by Flutter Tool team label Jul 8, 2023
@eliasyishak eliasyishak added P2 Important issues not at the top of the work list triaged-tool Triaged by Flutter Tool team labels Aug 21, 2023
@a-siva
Copy link
Contributor

a-siva commented Sep 8, 2023

May be related/similar: #56607

This issue appears to be a duplicate of #56607 , can we close this issue and track progress on this in the other issue ?

@huycozy
Copy link
Member

huycozy commented Sep 11, 2023

@a-siva: I think so. Closing this issue in favor of #56607.
@afgriffiths: Please kindly follow up on that issue for updates.

@huycozy huycozy closed this as not planned Won't fix, can't repro, duplicate, stale Sep 11, 2023
@huycozy huycozy added the r: duplicate Issue is closed as a duplicate of an existing issue label Sep 11, 2023
@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 25, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
dependency: dart Dart team may need to help us P2 Important issues not at the top of the work list platform-linux Building on or for Linux specifically r: duplicate Issue is closed as a duplicate of an existing issue team-tool Owned by Flutter Tool team tool Affects the "flutter" command-line tool. See also t: labels. triaged-tool Triaged by Flutter Tool team
Projects
None yet
Development

No branches or pull requests

4 participants