Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.o
*.swp
_build
120 changes: 79 additions & 41 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ default:
variables:
extends: .libfprint_common_variables
FDO_DISTRIBUTION_TAG: $LIBFPRINT_IMAGE_TAG
FDO_DISTRIBUTION_VERSION: rawhide
FDO_DISTRIBUTION_VERSION: 41
FDO_UPSTREAM_REPO: "libfprint/$CI_PROJECT_NAME"
FEDORA_IMAGE: "$CI_REGISTRY/libfprint/$CI_PROJECT_NAME/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG"
LAST_ABI_BREAK: "056ea541ddc97f5806cffbd99a12dc87e4da3546"
Expand All @@ -28,19 +28,22 @@ workflow:
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
- if: $CI_PIPELINE_SOURCE == 'push'
- if: $CI_PIPELINE_SOURCE == 'schedule'
- if: $CI_PROJECT_NAMESPACE == 'libfprint' && $LIBFPRINT_CI_ACTION != ''

stages:
- image-build
- check-source
- build
- test
- flatpak
- deploy

image: $FEDORA_IMAGE

.build_one_driver_template: &build_one_driver
script:
# Build with a driver that doesn't need imaging, or nss
# Build with a driver that doesn't need imaging, or openssl
- meson setup _build --werror -Ddrivers=$driver
- meson compile -C _build
- rm -rf _build/
Expand All @@ -56,11 +59,16 @@ image: $FEDORA_IMAGE
script:
- ./.ci/check-abi ${LAST_ABI_BREAK} $(git rev-parse HEAD)

.standard_job:
rules:
- when: on_success
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never

build:
stage: build
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
extends:
- .standard_job
variables:
driver: virtual_image
<<: *build_one_driver
Expand All @@ -75,9 +83,8 @@ build:

test:
stage: test
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
extends:
- .standard_job
script:
- meson setup _build --werror -Ddrivers=all -Db_coverage=true
- meson test -C _build --print-errorlogs --no-stdsplit --timeout-multiplier 3
Expand All @@ -99,9 +106,8 @@ test:

test_valgrind:
stage: test
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
extends:
- .standard_job
script:
- meson setup _build -Ddrivers=all
- meson compile -C _build
Expand All @@ -116,11 +122,27 @@ test_valgrind:
- _build/meson-logs/testlog-valgrind.txt
expire_in: 1 week

test_asan:
stage: test
extends:
- .standard_job
script:
- meson setup _build -Ddrivers=all -Db_sanitize=address,undefined
- meson test -C _build --print-errorlogs --no-stdsplit
artifacts:
reports:
junit: "_build/meson-logs/testlog.junit.xml"
expose_as: 'Sanitizers test logs'
when: always
paths:
- _build/meson-logs
- _build/meson-logs/testlog.txt
expire_in: 1 week

test_installed:
stage: test
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
extends:
- .standard_job
script:
- meson setup _build --prefix=/usr -Ddrivers=all
- meson install -C _build
Expand All @@ -142,9 +164,8 @@ test_installed:

test_scan_build:
stage: test
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
extends:
- .standard_job
allow_failure: true
script:
- meson setup _build -Ddrivers=all
Expand All @@ -159,19 +180,23 @@ test_scan_build:

test_indent:
stage: check-source
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
extends:
- .standard_job
script:
- scripts/uncrustify.sh
- git diff
- git diff-index --name-only --exit-code HEAD
rules:
- changes:
compare_to: 'refs/heads/master'
paths:
- '**/*.c'
- '**/*.h'

test_unsupported_list:
stage: check-source
except:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
extends:
- .standard_job
allow_failure: true
script:
- tests/hwdb-check-unsupported.py
Expand All @@ -191,7 +216,7 @@ flatpak:
- if: '$CI_PROJECT_PATH != "libfprint/libfprint"'
when: manual
allow_failure: true
- if: '$CI_PIPELINE_SOURCE == "schedule"'
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never
- if: '$CI_COMMIT_BRANCH == "master"'
allow_failure: true
Expand All @@ -212,9 +237,6 @@ flatpak:
.container_fedora_build_base:
extends: .fdo.container-build@fedora
stage: image-build
only:
variables:
- $CI_PIPELINE_SOURCE == "never"
variables:
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
# a list of packages to install
Expand All @@ -225,6 +247,8 @@ flatpak:
libudev-devel
FDO_DISTRIBUTION_EXEC: |
$LIBFPRINT_EXEC
rules:
- when: never

.container_fedora_build_forced:
variables:
Expand All @@ -234,25 +258,39 @@ container_fedora_build_schedule:
extends:
- .container_fedora_build_base
- .container_fedora_build_forced
only:
variables:
- $CI_PIPELINE_SOURCE == "schedule" && $CRON_TASK == "BUILD_CI_IMAGES"
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CRON_TASK == "BUILD_CI_IMAGES"
when: always

container_fedora_build_manual:
extends:
- .container_fedora_build_base
- .container_fedora_build_forced
only:
variables:
- $LIBFPRINT_CI_ACTION == "build-image"
rules:
- if: $LIBFPRINT_CI_ACTION == "build-image"
when: always

container_fedora_build_on_deps_changed:
extends: .container_fedora_build_base
only:
variables:
- $CI_PROJECT_NAMESPACE == "libfprint" && $CI_PIPELINE_SOURCE != "schedule"
refs:
- branches
- merge_requests
changes:
- .gitlab-ci/libfprint-image-variables.yaml
rules:
- if: $CI_PROJECT_NAMESPACE == "libfprint" && $CI_PIPELINE_SOURCE != "schedule"
changes:
compare_to: 'refs/heads/master'
paths:
- '.gitlab-ci/libfprint-image-variables.yaml'
- '.gitlab-ci/libfprint-templates.yaml'

pages:
image: alpine:latest
stage: deploy
needs:
- job: test
artifacts: true
script:
- mkdir public
- mv _build/meson-logs/coveragereport public/coverage
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
2 changes: 1 addition & 1 deletion .gitlab-ci/libfprint-image-variables.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
variables:
LIBFPRINT_IMAGE_TAG: v3
LIBFPRINT_IMAGE_TAG: v6
12 changes: 5 additions & 7 deletions .gitlab-ci/libfprint-templates.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

.libfprint_common_variables:
LIBFPRINT_DEPENDENCIES:
appstream
doxygen
dnf-plugins-core
flatpak-builder
Expand All @@ -17,12 +18,14 @@
gtk-doc
gtk3-devel
libabigail
libasan
libgusb-devel
libgudev-devel
libubsan
libX11-devel
libXv-devel
meson
nss-devel
openssl-devel
pixman-devel
python3-cairo
python3-gobject
Expand All @@ -40,10 +43,5 @@
glibc \
libgusb \
libusb \
nss \
openssl \
pixman

git clone https://github.com/martinpitt/umockdev.git && \
cd umockdev && \
meson _build --prefix=/usr && \
ninja -C _build && ninja -C _build install
2 changes: 1 addition & 1 deletion .gitlab-ci/scan-build
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/sh

# This wrapper just disables the malloc checker
exec /usr/bin/scan-build --status-bugs -disable-checker unix.Malloc "$@"
exec /usr/bin/scan-build --status-bugs -disable-checker unix.Malloc --exclude "_build/meson-private" "$@"
29 changes: 29 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,6 +1,35 @@
This file lists notable changes in each release. For the full history of all
changes, see ChangeLog.

2025-02-20: v1.94.9 release

Highlights:
* uru4000: Use OpenSSL to perform AES-ECB encryption, as per this libfprint
does not support on NSS, but on openssl (>= 3.0).
* goodixmoc: New PIDs 0x60C2, 0x689A
* synaptics: New PIDs 0x016C, 0x0174, 0x0107, 0x0108, 0x00C2, 0x00F0
* fpcmoc: New PID 0xC844
* focaltech_moc: New PIDs 0xA99A, 0xA57A, 0xA78A
* elanmoc: New PIDs 0x0C98, 0x0C9D, 0x0CA3
* elanspi: New PIDs 0x3128, 0x2766
* fp-device: Add FP_DEVICE_RETRY_TOO_FAST retry error
* data: AppStream meta info listing supported USB devices.
* fixed various memory issues in multiple devices

2024-09-03: v1.94.8 release

Highlights:
* build: Support building in non-linux unix environments (tested in FreeBSD)
* egismoc: New PIDs 0x0583, 0x0586, 0x0587.
* elanmoc: New PID 0x0C9F.
* fpcmoc: New PIDs 0x9524, 0x9544.
* goodixmoc: New PIDs 0x609A, 0x650A, 0x650C, 0x6512.
* realtek: New PID 0x5816.
* synaptics: New PIDs 0x00C4, 0x019D, 0x00C6.
* fpcmoc: fix incorrect immobile handling during enrollment.
* fpcmoc: fixed jumping to wrong state at end of custom enroll.
* egismoc: various code cleanups.

2024-02-20: v1.94.7 release

Highlights:
Expand Down
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ We include **Bozorth3** from the **[US Export Controlled]**
distribution, which we have determined to be fine
being shipped in an open source project.

## Get in *touch*

- [IRC] - `#fprint` @ `irc.oftc.net`
- [Matrix] - `#fprint:matrix.org` bridged to the IRC channel
- [MailingList] - low traffic, not much used these days

<br/>

<div align="right">
Expand All @@ -62,6 +68,9 @@ being shipped in an open source project.
[Unsupported]: https://gitlab.freedesktop.org/libfprint/wiki/-/wikis/Unsupported-Devices
[Supported]: https://fprint.freedesktop.org/supported-devices.html
[Website]: https://fprint.freedesktop.org/
[MailingList]: https://lists.freedesktop.org/mailman/listinfo/fprint
[IRC]: ircs://irc.oftc.net:6697/#fprint
[Matrix]: https://matrix.to/#/#fprint:matrix.org

[Contribute]: ./HACKING.md
[License]: ./COPYING
Expand Down
Loading
Loading