Skip to content

Commit d3ab993

Browse files
authored
Merge pull request #1023 from boltgolt/beta
Release 3.0.0
2 parents 95331bd + 5394ceb commit d3ab993

File tree

125 files changed

+5077
-1530
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+5077
-1530
lines changed

.clang-tidy

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Checks: 'clang-diagnostic-*,clang-analyser-*,-clang-diagnostic-unused-command-line-argument,google-*,bugprone-*,modernize-*,performance-*,portability-*,readability-*,-bugprone-easily-swappable-*,-readability-magic-numbers,-google-readability-todo'
2+
WarningsAsErrors: 'clang-diagnostic-*,clang-analyser-*,-clang-diagnostic-unused-command-line-argument,google-*,bugprone-*,modernize-*,performance-*,portability-*,readability-*,-bugprone-easily-swappable-*,-readability-magic-numbers,-google-readability-todo'
3+
CheckOptions:
4+
- key: readability-function-cognitive-complexity.Threshold
5+
value: '50'
6+
7+
# vim:syntax=yaml

.github/pull_request_template.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
_Please make sure to target the "dev" branch if it exists_
2+
_REMOVE THIS MESSAGE IN THE PULL REQUEST_

.github/workflows/check.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: check
2+
on: [push, pull_request]
3+
4+
jobs:
5+
test:
6+
runs-on: ubuntu-latest
7+
steps:
8+
- name: Install required libraries
9+
run: >
10+
sudo apt-get update && sudo apt-get install -y
11+
python3 python3-pip python3-setuptools python3-wheel
12+
cmake make build-essential clang-tidy
13+
libpam0g-dev libinih-dev libevdev-dev
14+
python3-dev libopencv-dev
15+
16+
- name: Install meson
17+
run: sudo python3 -m pip install meson ninja
18+
19+
- uses: actions/checkout@v2
20+
21+
- name: Build
22+
run: |
23+
meson setup build
24+
ninja -C build
25+
26+
- name: Check source code
27+
run: |
28+
ninja clang-tidy -C build

.gitignore

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,30 @@ ENV/
101101
.mypy_cache/
102102

103103
# generated models
104-
/src/models
104+
/howdy/src/models
105105

106106
# snapshots
107-
/src/snapshots
107+
/howdy/src/snapshots
108108

109109
# build files
110110
debian/howdy.substvars
111111
debian/files
112112
debian/debhelper-build-stamp
113113
debian/howdy
114+
115+
# vscode
116+
.vscode/*
117+
!.vscode/settings.json
118+
!.vscode/tasks.json
119+
!.vscode/launch.json
120+
!.vscode/extensions.json
121+
!.vscode/*.code-snippets
122+
123+
# Local History for Visual Studio Code
124+
.history/
125+
126+
# Built Visual Studio Code Extensions
127+
*.vsix
128+
129+
# Meson
130+
subprojects/

.travis.yml

Lines changed: 0 additions & 39 deletions
This file was deleted.

README.md

Lines changed: 65 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
![](https://boltgolt.nl/howdy/banner.png)
22

33
<p align="center">
4-
<a href="https://travis-ci.org/boltgolt/howdy">
5-
<img src="https://img.shields.io/travis/boltgolt/howdy/master.svg">
6-
</a>
74
<a href="https://github.com/boltgolt/howdy/releases">
85
<img src="https://img.shields.io/github/release/boltgolt/howdy.svg?colorB=4c1">
96
</a>
@@ -13,6 +10,12 @@
1310
<a href="https://www.buymeacoffee.com/boltgolt">
1411
<img src="https://img.shields.io/badge/endpoint.svg?url=https://boltgolt.nl/howdy/shield.json">
1512
</a>
13+
<a href="https://actions-badge.atrox.dev/boltgolt/howdy/goto?ref=beta">
14+
<img src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fboltgolt%2Fhowdy%2Fbadge%3Fref%3Dbeta&style=flat&label=build&logo=none">
15+
</a>
16+
<a href="https://aur.archlinux.org/packages/howdy">
17+
<img src="https://img.shields.io/aur/votes/howdy?color=4c1&label=aur%20votes">
18+
</a>
1619
</p>
1720

1821
Howdy provides Windows Hello™ style authentication for Linux. Use your built-in IR emitters and camera in combination with facial recognition to prove who you are.
@@ -42,32 +45,79 @@ This will guide you through the installation.
4245
Download the .deb file from the [Releases page](https://github.com/boltgolt/howdy/releases) and install with gdebi.
4346

4447
### Arch Linux
48+
4549
_Maintainer wanted._
4650

4751
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).
4852

4953
You will need to do some additional configuration steps. Please read the [ArchWiki entry](https://wiki.archlinux.org/index.php/Howdy) for more information.
5054

5155
### Fedora
56+
5257
_Maintainer: [@luyatshimbalanga](https://github.com/luyatshimbalanga)_
5358

54-
The `howdy` package is available as a [Fedora COPR repository](https://copr.fedorainfracloud.org/coprs/luya/howdy/), install it by simply executing the following commands in a terminal:
59+
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:
60+
61+
```
62+
sudo dnf copr enable principis/howdy
63+
sudo dnf --refresh install howdy
64+
```
65+
66+
*Note:* Fedora 41 [removed support for Python2](https://fedoraproject.org/wiki/Changes/RetirePython2.7), but at this point in time Howdy still depends on it. If the install fails, you can fix this by installing the beta Repository and removing the release version:
5567

5668
```
57-
sudo dnf copr enable luya/howdy
58-
sudo dnf install howdy
69+
sudo dnf copr remove principis/howdy
70+
sudo dnf copr enable principis/howdy-beta
71+
sudo dnf --refresh install howdy
5972
```
6073

74+
See the link to the COPR repository for detailed configuration steps.
75+
6176
### openSUSE
77+
6278
_Maintainer: [@dmafanasyev](https://github.com/dmafanasyev)_
6379

6480
Go to the [openSUSE wiki page](https://en.opensuse.org/SDB:Facial_authentication) for detailed installation instructions.
6581

82+
### Building from source
83+
84+
If you want to build Howdy from source, a few dependencies are required.
85+
86+
#### Dependencies
87+
88+
- Python 3.6 or higher
89+
* pip
90+
* setuptools
91+
* wheel
92+
- meson version 0.64 or higher
93+
- ninja
94+
- INIReader (can be pulled from git automatically if not found)
95+
- libevdev
96+
97+
To install them on Debian/Ubuntu for example:
98+
99+
```
100+
sudo apt-get update && sudo apt-get install -y \
101+
python3 python3-pip python3-setuptools python3-wheel \
102+
cmake make build-essential \
103+
libpam0g-dev libinih-dev libevdev-dev python3-opencv \
104+
python3-dev libopencv-dev
105+
```
106+
107+
#### Build
108+
109+
```sh
110+
meson setup build
111+
meson compile -C build
112+
```
113+
114+
You can also install Howdy to your system with `meson install -C build`.
115+
66116
## Setup
67117

68118
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.
69119

70-
If nothing went wrong we should be able to run sudo by just showing your face. Open a new terminal and run `sudo -i` to see it in action. Please check [this wiki page](https://github.com/boltgolt/howdy/wiki/Common-issues) if you've experiencing problems or [search](https://github.com/boltgolt/howdy/issues) for similar issues.
120+
If nothing went wrong we should be able to run sudo by just showing your face. Open a new terminal and run `sudo -i` to see it in action. Please check [this wiki page](https://github.com/boltgolt/howdy/wiki/Common-issues) if you're experiencing problems or [search](https://github.com/boltgolt/howdy/issues) for similar issues.
71121

72122
If you're curious you can run `sudo howdy config` to open the central config file and see the options Howdy has to offer. On most systems this will open the nano editor, where you have to press `ctrl`+`x` to save your changes.
73123

@@ -82,12 +132,12 @@ howdy [-U user] [-y] command [argument]
82132

83133
| Command | Description |
84134
|-----------|-----------------------------------------------|
85-
| `add` | Add a new face model for an user |
86-
| `clear` | Remove all face models for an user |
135+
| `add` | Add a new face model for a user |
136+
| `clear` | Remove all face models for a user |
87137
| `config` | Open the config file in your default editor |
88138
| `disable` | Disable or enable howdy |
89-
| `list` | List all saved face models for an user |
90-
| `remove` | Remove a specific model for an user |
139+
| `list` | List all saved face models for a user |
140+
| `remove` | Remove a specific model for a user |
91141
| `snapshot`| Take a snapshot of your camera input |
92142
| `test` | Test the camera and recognition methods |
93143
| `version` | Print the current version number |
@@ -100,13 +150,14 @@ Code contributions are also very welcome. If you want to port Howdy to another d
100150

101151
## Troubleshooting
102152

103-
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.
153+
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.
104154

105-
If you encounter an error that hasn't been reported yet, don't be afraid to open a new issue.
155+
Please first check the [wiki on common issues](https://github.com/boltgolt/howdy/wiki/Common-issues) and
156+
if you encounter an error that hasn't been reported yet, don't be afraid to open a new issue.
106157

107158
## A note on security
108159

109-
This package is in no way as secure as a password and will never be. Although it's harder to fool than normal face recognition, a person who looks similar to you or well-printed photo of you could be enough to do it. Howdy is a more quick and convenient way of logging in, not a more secure one.
160+
This package is in no way as secure as a password and will never be. Although it's harder to fool than normal face recognition, a person who looks similar to you, or a well-printed photo of you could be enough to do it. Howdy is a more quick and convenient way of logging in, not a more secure one.
110161

111162
To minimize the chance of this program being compromised, it's recommended to leave Howdy in `/lib/security` and to keep it read-only.
112163

archlinux/howdy/.SRCINFO

Lines changed: 0 additions & 28 deletions
This file was deleted.

archlinux/howdy/.gitignore

Lines changed: 0 additions & 7 deletions
This file was deleted.

archlinux/pam-python/.SRCINFO

Lines changed: 0 additions & 16 deletions
This file was deleted.

archlinux/pam-python/PKGBUILD

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)