Skip to content

Commit f68dfc9

Browse files
authored
fix(flutter_app_packager): fix build rpm on linux arm64 error (#204)
1 parent b1dc1e6 commit f68dfc9

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

packages/flutter_app_packager/lib/src/makers/rpm/make_rpm_config.dart

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class MakeRPMConfig extends MakeConfig {
5656
packagerEmail: json['packagerEmail'] as String?,
5757
license: json['license'] as String?,
5858
url: json['url'] as String?,
59-
buildArch: json['build_arch'] as String?,
59+
buildArch: json['build_arch'] as String? ?? _getArchitecture(),
6060
requires: (json['requires'] as List<dynamic>?)?.cast<String>(),
6161
buildRequires: (json['build_requires'] as List<dynamic>?)?.cast<String>(),
6262
description: json['description'] as String?,
@@ -121,7 +121,7 @@ class MakeRPMConfig extends MakeConfig {
121121
'URL': url,
122122
'Requires': requires?.join(', '),
123123
'BuildRequires': buildRequires?.join(', '),
124-
'BuildArch': buildArch ?? 'x86_64',
124+
'BuildArch': buildArch ?? _getArchitecture(),
125125
}..removeWhere((key, value) => value == null),
126126
'body': {
127127
'%description': description ?? pubspec.description,
@@ -228,3 +228,12 @@ class MakeRpmConfigLoader extends DefaultMakeConfigLoader {
228228
return MakeRPMConfig.fromJson(map).copyWith(baseMakeConfig);
229229
}
230230
}
231+
232+
String _getArchitecture() {
233+
final result = Process.runSync('uname', ['-m']);
234+
if ('${result.stdout}'.trim() == 'aarch64') {
235+
return 'aarch64';
236+
} else {
237+
return 'x86_64';
238+
}
239+
}

0 commit comments

Comments
 (0)