Closed InFerYes closed 3 months ago
I did the following steps
meson setup build/
meson configure build/
ninja -C build/
ninja -C build/ install
This makes keypunch available on my system, but I think it's in debug mode, judging by the border.
Will try to recreate this on the aarch64 devices, at least it works.
Hi there! Since Keypunch uses Meson, it is indeed pretty straightforward to build manually as long as you have all the required dependencies. Passing --buildtype=release
to the configure command will give you a release build (normal header bar + compiler optimizations). Let me know if that works for you on an aarch64 system; if it does, I assume we can close this. Keypunch does support aarch64.
There are no build instructions in the README and CONTRIBUTING only tells people to install the flatpak version of GNOME Builder (why?) and then hit the "play" button in the header.
The instructions in CONTRIBUTING.md are aimed at people who'd like to hack on Keypunch or just test the current main branch without too much hassle. Using GNOME Builder in a Flatpak environment is the most predictable way to do that, and it's how I develop the app myself. I'll consider adding some notes on building it manually, though, thanks for the suggestion :slightly_smiling_face:
Many thanks, I will add the parameter to build on these SBC's.
Hi, I'm getting the following error(s) when compiling on aarch64
$ ninja -C build/
ninja: Entering directory `build/'
[0/1] Regenerating build files.
The Meson build system
Version: 1.5.1
Source dir: /home/user/Downloads/keypunch-3.0
Build dir: /home/user/Downloads/keypunch-3.0/build
Build type: native build
Project name: keypunch
Project version: 0.3.0
Rust compiler for the host machine: rustc -C linker=cc (rustc 1.80.0)
Rust linker for the host machine: rustc -C linker=cc ld.bfd 2.42.0
Host machine cpu family: aarch64
Host machine cpu: aarch64
Program msgfmt found: YES (/usr/bin/msgfmt)
Program msginit found: YES (/usr/bin/msginit)
Program msgmerge found: YES (/usr/bin/msgmerge)
Program xgettext found: YES (/usr/bin/xgettext)
Configuring dev.bragefuglseth.Keypunch.desktop.in using configuration
Program desktop-file-validate found: YES (/usr/bin/desktop-file-validate)
Program sed found: YES (/usr/bin/sed)
Program appstreamcli found: YES (/usr/bin/appstreamcli)
Program msgfmt found: YES (/usr/bin/msgfmt)
Program glib-compile-schemas found: YES (/usr/bin/glib-compile-schemas)
Configuring config.rs using configuration
Program cargo found: YES (/usr/bin/cargo)
Dependency gio-2.0 found: YES 2.80.4 (cached)
Program /usr/bin/glib-compile-schemas found: YES (/usr/bin/glib-compile-schemas)
Program gtk4-update-icon-cache found: YES (/usr/bin/gtk4-update-icon-cache)
Program update-desktop-database found: YES (/usr/bin/update-desktop-database)
Build targets in project: 19
keypunch 0.3.0
User defined options
buildtype: release
Found ninja-1.12.1 at /usr/bin/ninja
Cleaning... 0 files.
[10/17] Generating src/cargo-build with a custom command
Updating crates.io index
Downloaded adler v1.0.2
Downloaded autocfg v1.3.0
Downloaded byteorder v1.5.0
Downloaded cfg-if v1.0.0
Downloaded include_dir v0.7.4
Downloaded include_dir_macros v0.7.4
Downloaded i18n-format v0.2.0
Downloaded pin-utils v0.1.0
Downloaded endi v1.1.0
Downloaded strum v0.26.3
Downloaded equivalent v1.0.1
Downloaded temp-dir v0.1.13
Downloaded toml_datetime v0.6.6
Downloaded futures-io v0.3.30
Downloaded walkdir v2.5.0
Downloaded toml v0.8.14
Downloaded rand_chacha v0.3.1
Downloaded same-file v1.0.6
Downloaded unicode-segmentation v1.11.0
Downloaded zvariant_utils v2.0.0
Downloaded winnow v0.5.40
Downloaded winnow v0.6.13
Downloaded strum_macros v0.26.4
Downloaded proc-macro2 v1.0.86
Downloaded system-deps v7.0.1
Downloaded target-lexicon v0.12.15
Downloaded getrandom v0.2.15
Downloaded serde_derive v1.0.204
Downloaded miniz_oxide v0.7.4
Downloaded unicode-ident v1.0.12
Downloaded serde v1.0.204
Downloaded indexmap v2.2.6
Downloaded toml_edit v0.22.15
Downloaded memchr v2.7.4
Downloaded hashbrown v0.14.5
Downloaded serde_json v1.0.120
Downloaded futures-util v0.3.30
Downloaded rayon v1.10.0
Downloaded quick-xml v0.31.0
Downloaded gio v0.20.0
Downloaded aho-corasick v1.1.3
Downloaded syn v2.0.71
Downloaded regex v1.10.5
Downloaded glib v0.20.0
Downloaded libadwaita v0.7.0
Downloaded gdk4 v0.9.0
Downloaded regex-syntax v0.8.4
Downloaded toml_edit v0.21.1
Downloaded rand v0.8.5
Downloaded gtk4-sys v0.9.0
Downloaded gtk4 v0.9.0
Downloaded glib-macros v0.20.0
Downloaded gio-sys v0.20.0
Downloaded gdk4-sys v0.9.0
Downloaded flate2 v1.0.30
Downloaded cc v1.1.1
Downloaded rayon-core v1.12.1
Downloaded ryu v1.0.18
Downloaded glib-sys v0.20.0
Downloaded bitflags v2.6.0
Downloaded pango v0.20.0
Downloaded regex-automata v0.4.7
Downloaded libc v0.2.155
Downloaded litrs v0.4.1
Downloaded crossbeam-epoch v0.9.18
Downloaded crc32fast v1.4.2
Downloaded cfg-expr v0.15.8
Downloaded cairo-rs v0.20.0
Downloaded smallvec v1.13.2
Downloaded semver v1.0.23
Downloaded safe-transmute v0.11.3
Downloaded crossbeam-utils v0.8.20
Downloaded pkg-config v0.3.30
Downloaded pin-project-lite v0.2.14
Downloaded libadwaita-sys v0.7.0
Downloaded rand_core v0.6.4
Downloaded quote v1.0.36
Downloaded ppv-lite86 v0.2.17
Downloaded pango-sys v0.20.0
Downloaded gvdb v0.6.1
Downloaded gsk4 v0.9.0
Downloaded gdk-pixbuf v0.20.0
Downloaded futures-macro v0.3.30
Downloaded futures-channel v0.3.30
Downloaded either v1.13.0
Downloaded version-compare v0.2.0
Downloaded thiserror v1.0.62
Downloaded serde_spanned v0.6.6
Downloaded rustversion v1.0.17
Downloaded static_assertions v1.1.0
Downloaded slab v0.4.9
Downloaded proc-macro-crate v3.1.0
Downloaded memoffset v0.9.1
Downloaded lazy_static v1.5.0
Downloaded rustc_version v0.4.0
Downloaded crossbeam-deque v0.8.5
Downloaded locale_config v0.3.0
Downloaded itoa v1.0.11
Downloaded gtk4-macros v0.9.0
Downloaded gsk4-sys v0.9.0
Downloaded graphene-sys v0.20.0
Downloaded gobject-sys v0.20.0
Downloaded zvariant v4.1.2
Downloaded heck v0.5.0
Downloaded futures-task v0.3.30
Downloaded unidecode v0.3.0
Downloaded gvdb-macros v0.1.12
Downloaded graphene-rs v0.20.0
Downloaded gettext-rs v0.7.0
Downloaded gdk-pixbuf-sys v0.20.0
Downloaded futures-executor v0.3.30
Downloaded field-offset v0.3.6
Downloaded futures-core v0.3.30
Downloaded thiserror-impl v1.0.62
Downloaded zvariant_derive v4.1.2
Downloaded cairo-sys-rs v0.20.0
Downloaded gettext-sys v0.21.3
Downloaded 117 crates (14.5 MB) in 3.16s (largest was `gettext-sys` at 6.5 MB)
Compiling proc-macro2 v1.0.86
Compiling unicode-ident v1.0.12
Compiling serde v1.0.204
Compiling hashbrown v0.14.5
Compiling equivalent v1.0.1
Compiling target-lexicon v0.12.15
Compiling winnow v0.6.13
Compiling heck v0.5.0
Compiling quote v1.0.36
Compiling indexmap v2.2.6
Compiling syn v2.0.71
Compiling smallvec v1.13.2
Compiling version-compare v0.2.0
Compiling cfg-expr v0.15.8
Compiling pkg-config v0.3.30
Compiling libc v0.2.155
Compiling autocfg v1.3.0
Compiling winnow v0.5.40
Compiling memchr v2.7.4
Compiling slab v0.4.9
Compiling futures-core v0.3.30
Compiling pin-utils v0.1.0
Compiling futures-task v0.3.30
Compiling thiserror v1.0.62
Compiling pin-project-lite v0.2.14
Compiling futures-channel v0.3.30
Compiling bitflags v2.6.0
Compiling semver v1.0.23
Compiling temp-dir v0.1.13
Compiling cc v1.1.1
Compiling gio v0.20.0
Compiling futures-io v0.3.30
Compiling crossbeam-utils v0.8.20
Compiling rustc_version v0.4.0
Compiling aho-corasick v1.1.3
Compiling memoffset v0.9.1
Compiling regex-syntax v0.8.4
Compiling gettext-sys v0.21.3
Compiling field-offset v0.3.6
Compiling serde_derive v1.0.204
Compiling futures-macro v0.3.30
Compiling thiserror-impl v1.0.62
Compiling futures-util v0.3.30
Compiling regex-automata v0.4.7
Compiling zvariant_utils v2.0.0
Compiling futures-executor v0.3.30
Compiling serde_json v1.0.120
Compiling adler v1.0.2
Compiling cfg-if v1.0.0
Compiling crc32fast v1.4.2
Compiling getrandom v0.2.15
Compiling toml_datetime v0.6.6
Compiling serde_spanned v0.6.6
Compiling toml_edit v0.22.15
Compiling toml_edit v0.21.1
Compiling toml v0.8.14
Compiling proc-macro-crate v3.1.0
Compiling system-deps v7.0.1
Compiling glib-macros v0.20.0
Compiling glib-sys v0.20.0
Compiling gobject-sys v0.20.0
Compiling gio-sys v0.20.0
Compiling pango-sys v0.20.0
Compiling cairo-sys-rs v0.20.0
Compiling gdk-pixbuf-sys v0.20.0
Compiling graphene-sys v0.20.0
Compiling glib v0.20.0
Compiling gdk4-sys v0.9.0
Compiling gsk4-sys v0.9.0
Compiling gtk4-sys v0.9.0
Compiling libadwaita-sys v0.7.0
Compiling zvariant_derive v4.1.2
Compiling miniz_oxide v0.7.4
Compiling regex v1.10.5
Compiling crossbeam-epoch v0.9.18
Compiling ryu v1.0.18
Compiling static_assertions v1.1.0
Compiling itoa v1.0.11
Compiling endi v1.1.0
Compiling rayon-core v1.12.1
Compiling lazy_static v1.5.0
Compiling same-file v1.0.6
Compiling rustversion v1.0.17
Compiling walkdir v2.5.0
Compiling locale_config v0.3.0
Compiling zvariant v4.1.2
Compiling crossbeam-deque v0.8.5
Compiling flate2 v1.0.30
Compiling gtk4-macros v0.9.0
Compiling cairo-rs v0.20.0
Compiling graphene-rs v0.20.0
Compiling quick-xml v0.31.0
Compiling rand_core v0.6.4
Compiling safe-transmute v0.11.3
Compiling ppv-lite86 v0.2.17
Compiling byteorder v1.5.0
Compiling rand_chacha v0.3.1
Compiling gvdb v0.6.1
Compiling gettext-rs v0.7.0
Compiling include_dir_macros v0.7.4
Compiling litrs v0.4.1
Compiling either v1.13.0
Compiling rayon v1.10.0
Compiling gvdb-macros v0.1.12
Compiling include_dir v0.7.4
Compiling strum_macros v0.26.4
Compiling i18n-format v0.2.0
Compiling rand v0.8.5
Compiling unidecode v0.3.0
Compiling strum v0.26.3
Compiling unicode-segmentation v1.11.0
Compiling gdk-pixbuf v0.20.0
Compiling pango v0.20.0
Compiling gdk4 v0.9.0
Compiling gsk4 v0.9.0
Compiling gtk4 v0.9.0
Compiling libadwaita v0.7.0
Compiling keypunch v0.1.0 (/home/user/Downloads/keypunch-3.0)
error: proc macro panicked
--> src/widgets/custom_text_dialog.rs:11:23
|
11 | #[derive(Default, gtk::CompositeTemplate)]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: blueprint-compiler not found
= note: this error originates in the derive macro `gtk::CompositeTemplate` (in Nightly builds, run with -Z macro-backtrace for more info)
error: proc macro panicked
--> src/widgets/results_view.rs:11:14
|
11 | #[derive(gtk::CompositeTemplate, glib::Properties)]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: blueprint-compiler not found
= note: this error originates in the derive macro `gtk::CompositeTemplate` (in Nightly builds, run with -Z macro-backtrace for more info)
error: proc macro panicked
--> src/widgets/text_language_dialog.rs:17:23
|
17 | #[derive(Default, gtk::CompositeTemplate)]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: blueprint-compiler not found
= note: this error originates in the derive macro `gtk::CompositeTemplate` (in Nightly builds, run with -Z macro-backtrace for more info)
error: proc macro panicked
--> src/widgets/text_view.rs:24:23
|
24 | #[derive(Default, gtk::CompositeTemplate, glib::Properties)]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: blueprint-compiler not found
= note: this error originates in the derive macro `gtk::CompositeTemplate` (in Nightly builds, run with -Z macro-backtrace for more info)
error: proc macro panicked
--> src/widgets/window.rs:80:23
|
80 | #[derive(Default, gtk::CompositeTemplate)]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: blueprint-compiler not found
= note: this error originates in the derive macro `gtk::CompositeTemplate` (in Nightly builds, run with -Z macro-backtrace for more info)
error: could not compile `keypunch` (bin "keypunch") due to 5 previous errors
[15/17] Merging translations for data/dev.bragefuglseth.Keypunch.metainfo.xml
FAILED: src/keypunch
/usr/bin/env CARGO_HOME=/home/user/Downloads/keypunch-3.0/build/cargo-home /usr/bin/cargo build --manifest-path /home/user/Downloads/keypunch-3.0/Cargo.toml --target-dir /home/user/Downloads/keypunch-3.0/build/src --release && cp src/release/keypunch src/keypunch
ninja: build stopped: subcommand failed.
I'm using Arch Linux ARM and I have updated it before starting this process, with a new clean folder.
I have installed the blueprint-compiler using pacman (pacman -Syu blueprint-compiler
) and the package is now properly compiled and installed
Great! I’ll close this then.
Is your suggestion related to a problem? Please describe. I want to build this application for my kids' aarch64 devices. They have GNOME installed, but it's not a fast device and it has very little disk space.
Describe the solution you'd like I want to build Keypunch and install it without using Flatpak
Describe alternatives you've considered None, other than finding different software
Additional context There are no build instructions in the README and CONTRIBUTING only tells people to install the flatpak version of GNOME Builder (why?) and then hit the "play" button in the header. I want to install Keypunch on ODROID C4 aarch64 devices that run Arch Linux ARM so my kids can practice typing. Unfortunately, flatpak is not an option.