From d4eb16cf9f0372d38f821411801e3ef44f102a02 Mon Sep 17 00:00:00 2001 From: Sayafdine Said Date: Wed, 17 Jan 2024 14:20:56 +0100 Subject: [PATCH] docs(readme): add build from source (#874) --- README.md | 40 +++++++++++++++++++++++++++++++++++++++- howdy/src/pam/README.md | 4 ++-- meson.build | 2 +- 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 042df7f..48de5d4 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ This will guide you through the installation. Download the .deb file from the [Releases page](https://github.com/boltgolt/howdy/releases) and install with gdebi. ### Arch Linux + _Maintainer wanted._ Install the `howdy` package from the AUR. For AUR installation instructions, take a look at this [wiki page](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages). @@ -52,6 +53,7 @@ Install the `howdy` package from the AUR. For AUR installation instructions, tak You will need to do some additional configuration steps. Please read the [ArchWiki entry](https://wiki.archlinux.org/index.php/Howdy) for more information. ### Fedora + _Maintainer: [@luyatshimbalanga](https://github.com/luyatshimbalanga)_ The `howdy` package is available as a [Fedora COPR repository](https://copr.fedorainfracloud.org/coprs/principis/howdy/), install it by simply executing the following commands in a terminal: @@ -64,10 +66,45 @@ sudo dnf --refresh install howdy See the link to the COPR repository for detailed configuration steps. ### openSUSE + _Maintainer: [@dmafanasyev](https://github.com/dmafanasyev)_ Go to the [openSUSE wiki page](https://en.opensuse.org/SDB:Facial_authentication) for detailed installation instructions. +### Building from source + +If you want to build Howdy from source, a few dependencies are required. + +#### Dependencies + +- Python 3.6 or higher + * pip + * setuptools + * wheel +- meson version 0.64 or higher +- ninja +- INIReader (can be pulled from git automatically if not found) +- libevdev + +To install them on Debian/Ubuntu for example: + +``` +sudo apt-get update && sudo apt-get install -y \ +python3 python3-pip python3-setuptools python3-wheel \ +cmake make build-essential \ +libpam0g-dev libinih-dev libevdev-dev \ +python3-dev libopencv-dev +``` + +#### Build + +```sh +meson setup build +meson compile -C build +``` + +You can also install Howdy to your system with `meson install -C build`. + ## Setup After installation, Howdy needs to learn what you look like so it can recognise you later. Run `sudo howdy add` to add a face model. @@ -107,7 +144,8 @@ Code contributions are also very welcome. If you want to port Howdy to another d Any Python errors get logged directly into the console and should indicate what went wrong. If authentication still fails but no errors are printed, you could take a look at the last lines in `/var/log/auth.log` to see if anything has been reported there. -If you encounter an error that hasn't been reported yet, don't be afraid to open a new issue. +Please first check the [wiki on common issues](https://github.com/boltgolt/howdy/wiki/Common-issues) and +if you encounter an error that hasn't been reported yet, don't be afraid to open a new issue. ## A note on security diff --git a/howdy/src/pam/README.md b/howdy/src/pam/README.md index bfd627c..5e2e5a0 100644 --- a/howdy/src/pam/README.md +++ b/howdy/src/pam/README.md @@ -1,6 +1,6 @@ # Howdy PAM module -## Prepare +## Requirements This module depends on `INIReader` and `libevdev`. They can be installed with these packages: @@ -19,7 +19,7 @@ it will be automatically pulled from git at the subproject's pinned version. ``` sh meson setup build -ninja -C build +ninja -C build # or meson compile -C build ``` ## Install diff --git a/meson.build b/meson.build index c2150df..8c62996 100644 --- a/meson.build +++ b/meson.build @@ -14,6 +14,6 @@ paths_dict = { 'log_path': logpath, } -# We need to keep this order beause howdy-gtk defines the gtk script path +# We need to keep this order beause howdy-gtk defines the gtk script path which is used later in howdy subdir('howdy-gtk') subdir('howdy') \ No newline at end of file