Skip to content

maxrdz/Memories

Repository files navigation

Memories

Organize your memories

Memories Library Page

Support

The only version of Memories that's supported is the one shipped in a Flatpak.

Do not file bugs that don't happen with the Flatpak version.

If the problem still occurs with the Flatpak version, please test the nightly flatpak by downloading the GitLab CI/CD build job artifact.

Building from Source

We use Git for version control, Meson/Ninja as the build system, and Flatpak for packaging Memories. The quickest way to build for release is to do the following:

Getting the Source

git clone https://gitlab.gnome.org/maxrdz/Memories
cd Memories

Build Memories with Flatpak

First, install the required dependencies on your Flatpak environment:

flatpak install flathub org.flatpak.Builder org.freedesktop.Sdk.Extension.rust-stable org.freedesktop.Sdk.Extension.llvm16
flatpak install gnome-nightly org.gnome.Sdk org.gnome.Platform

Then, build the nightly version of Memories using flatpak-builder:

flatpak run org.flatpak.Builder --user --install --force-clean build/ com.maxrdz.Memories.Devel.json

You can also build Memories for release using the manifest at build-aux/flatpak/com.maxrdz.Memories.json.

Building without Flatpak

You can also build Memories outside of Flatpak by using Meson directly, which is the underlying build system that Flatpak uses to build Memories. Before building Memories, make sure you have the required dependencies installed on your system. Meson will let you know what binaries or libraries it is missing or cannot find, but you can also read the root Meson build file to see the list of dependencies it searches for on your system.

meson setup build
meson compile -C build
meson install -C build

You can append the -Dprofile=devel argument to build for debug:

meson setup builddevel -Dprofile=devel
meson compile -C builddevel
meson install -C builddevel

Memories can be built with haptic feedback support (via feedbackd) using the -Duse-feedbackd=true Meson build parameter. This is currently an experimental feature of Memories.

Running from the source tree

If you would like to run Memories without installing it on your system, you can use cargo directly to build and run the source.

Uninstalling

To uninstall the app build from your local system:

sudo ninja -C build uninstall

Replace build with the Meson build directory of the application build version that you want to uninstall.

Cross Compiling

For cross compiling, we use cross-rs, which is a drop-in replacement for Cargo. This tool allows the developer to cross compile using Docker (or a Docker drop-in replacement, such as Podman) instead of installing dependencies and additional pkg-conf configuration on the build machine. On setup, Meson will check that cross and docker, or an alternative, are installed.

To install the cross binary on your system user's cargo:

cargo install cross --git https://github.com/cross-rs/cross

NOTE: This will install the cross program under ~/.cargo/bin. Be sure to add ~/.cargo/bin to your PATH so Meson can find it.

To setup a build that targets ARM64 GNU/Linux:

meson setup buildaarch64 -Dtarget=aarch64-unknown-linux-gnu

Note that we do not use cross-rs for building the aarch64 flatpak artifact in Memories' CI/CD pipeline. The flatpak@aarch64 job runs on an ARM machine, so it compiles Memories natively to aarch64.

Contributing

Please read the project's Contributing Guide.

It is very helpful for new contributors to read the GNOME Handbook before starting to write your own changes to Memories.

The documentation for Memories' source code is deployed with GitLab Pages:

Code of Conduct

The Memories project, its maintainers, and its contributors are required to follow the GNOME Code of Conduct.

Copyright and License

Copyright © 2024 Max Rodriguez <[email protected]>

"Memories" can be found at https://gitlab.gnome.org/maxrdz/Memories

"Memories" is distributed under the terms of the GNU General Public License, either version 3.0 or, at your option, any later version WITHOUT ANY WARRANTY. You can read the full copy of the software license in the COPYING file.