Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge main into develop #594

Open
wants to merge 163 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
e7edf2f
Backported dkms-patch from Ubuntu
umlaeute Aug 5, 2022
76434ab
Merge DKMS-fix
umlaeute Aug 5, 2022
ad95466
v4l2loopback: un-confine v4l2loopback_cleanup_module()
pfactum Nov 1, 2022
8902b3f
quote FOURCC-codes to show the space
umlaeute Nov 9, 2022
f3f40c1
Reset V4L2_BUF_FLAG_MAPPED if use_count <= 0
daijh Nov 21, 2022
7dbf775
log pid for debug
daijh Nov 21, 2022
70babe4
DKMS section clarification
Dec 16, 2022
31901e9
too many empty lines
Dec 16, 2022
cc38946
Track active readers
vicamo Oct 19, 2020
ceed405
Support V4L2_EVENT_PRI_CLIENT_USAGE
vicamo Aug 13, 2020
7c4ca0d
Fix signed integer overflows in increments.
stoeckmann Dec 28, 2022
c7a5cd4
v4l2loopback: a new offset for V4L2_EVENT_PRI_CLIENT_USAGE
Jan 4, 2023
2fe4e20
Allow a minimum of 0 fps
Feb 17, 2023
8f95dbc
Merge branch 'Device reference count for IPU6 MIPI camera solution'
Feb 17, 2023
0503055
clang-format
Feb 17, 2023
9d39732
Propagate snapshot version to v4l2loopback-ctl
Feb 17, 2023
ae04a4b
strip leading 'v' from git snapshot version
Feb 17, 2023
a6dce26
v4l2loopback-ctl: compat flag "--version"
Feb 17, 2023
5e3f872
calculate MODULE_VERSION from V4L2LOOPBACK_VERSION
Feb 17, 2023
52cf4dc
use linux' __stringify
Feb 17, 2023
a669686
re-ordered 'struct v4l2_loopback_config' so "announce_all_caps" comes…
Feb 17, 2023
ff4e9ee
Merge branch 'pr/518'
Feb 17, 2023
eccdfd2
Merge branch 'pr/513'
Feb 17, 2023
7420c15
Merge branch 'pr/515'
Feb 17, 2023
3cba62c
logging: move "pid(%d)" after the v4l2-loopback identifier
Feb 17, 2023
e297379
[ci] use Environment-File rather than set-output
Feb 19, 2023
d143b27
Merge branch 'pr/512'
Feb 19, 2023
d3d10fa
Merge branch 'pr/509'
Feb 19, 2023
0302d3f
Drop support for Linux<2.6.37
Feb 19, 2023
fa7c760
v4l2loopback-ctl: print module version as well
Feb 19, 2023
439f078
[ci] Job for code-linting
Feb 19, 2023
ccc4f7b
[ci] Fixup lint-job
Feb 19, 2023
56d39b5
Re-formatted code with updated .clang-format
Feb 19, 2023
fb410fc
[ci] hardcode Debian's supported releases to their rolling names
Feb 19, 2023
c50689b
Fix compilation issues under AOSP
sanbrother Apr 3, 2023
d927724
mutex lock access to outbufs_list in vidioc_dqbuf
mzihlmann Apr 4, 2023
b92e9ce
Revert "Fix signed integer overflows in increments."
asahilina Apr 8, 2023
9f51281
Change the type of read_position and write_position to 64-bit
asahilina Apr 8, 2023
33b9d17
Merge branch 'sanbrother/main'
umlaeute Apr 12, 2023
8db8406
Merge branch 'pr/533'
umlaeute Apr 12, 2023
6b9ac6c
Use separate spinlocks for protecting list access
umlaeute Apr 12, 2023
2e4dcae
Make VIDIOC_ENUMINPUT return V4L2_IN_ST_NO_SIGNAL if there's no producer
Mar 7, 2023
1d01a41
code formatting
Apr 12, 2023
45c067c
Always protect access to dev->outbufs_list with the list_lock mutex
Apr 21, 2023
fa0b246
v4l2loopback-ctl help: use 'detail' level rather than 'brief' flag
Apr 21, 2023
0a3ef21
help: reverse general form and example
Apr 21, 2023
b73a30d
codespell fixes
Apr 21, 2023
493cbf1
fix typo
Apr 21, 2023
131bbaa
add 'install' target for utils
Apr 21, 2023
6983431
clang-format
Apr 21, 2023
58cebf1
more gitignores
umlaeute Apr 24, 2023
c0c9f41
Bump copyright dates
Apr 21, 2023
edca10a
simple test application for producing/consuming buffers
umlaeute Apr 24, 2023
bc79fa3
more debugging and a global buffer
Apr 25, 2023
9e26b24
set bufsize/bytesused when initializing buffers for MMAP
Apr 25, 2023
49d837a
fix random; optionally set timestamp
Apr 25, 2023
64e4ac3
try more...
Apr 25, 2023
047c315
stuff...
Apr 25, 2023
c936024
use DEFAULT colorspace
Apr 25, 2023
e4b94a3
set V4L2_BUF_FLAG_TIMESTAMP_COPY flag when copying the buffer timestamp
Apr 25, 2023
b54500f
more diagnostic output
Apr 25, 2023
6e3d0a7
refactor the TRY/S_FMT code
Apr 25, 2023
1bc2ac0
fix formatting warnings when printing timestamps
Apr 25, 2023
674d9e4
compat for older kernels
Apr 25, 2023
3d25b9b
more clang-format
Apr 25, 2023
12506ff
reversed compat logic
Apr 25, 2023
3575f90
yikes, yet another typo
Apr 25, 2023
19752a7
tests/consumer: make S_FMT errors non-fatal
Apr 25, 2023
d78f95b
prevent multiple output streams
Apr 25, 2023
845cea0
set TIMESTAMP flags
Apr 25, 2023
e618c9c
G_FMT_CAP: only report failure if the format has not been fixated
Apr 26, 2023
1a5098e
script to check the output/capture formats of a device
umlaeute Apr 27, 2023
d12e7d7
V4L2LOOBACK_IS_FIXED_FMT() to check if the format is changeable
Apr 27, 2023
97ae50f
unify the output of vidioc_enum_fmt_*
Apr 27, 2023
93c17d2
set default framesize
Apr 27, 2023
3fc7df2
allow setting of minimum width/height as well
Apr 27, 2023
1dc5b33
v4l2loopback-ctl: allow setting of minimum framesize
Apr 27, 2023
66124d3
clang-format
Apr 27, 2023
0b3ea01
tests/producer: fix description of "-c" flag and linefeed
Apr 27, 2023
cbc32d0
long-options for v4l2loopback-ctl
Apr 27, 2023
df09bff
indentation
Apr 27, 2023
a2ccb15
unset the timeout_image_io flag if allocating the timeout-image fails
Apr 27, 2023
7ab4cad
only unset the timeout_image_io flag when requesting buffers for the …
umlaeute May 2, 2023
de7bfdb
turn the "timeout_image_io" ctrl into a button
umlaeute May 2, 2023
400fdd5
whitespace
umlaeute May 2, 2023
a846f1e
fixate format with "keep_format"
umlaeute May 2, 2023
85207e1
report format via /sys if it is somehow FIXED
umlaeute May 2, 2023
6c9d8fe
run timeout-image gst-pipeline through "tee"
umlaeute May 2, 2023
68c74f5
add "--verbose" flag to "set-timeout-image"
umlaeute May 2, 2023
dfe65eb
prevent multiple readers to start streaming
umlaeute May 2, 2023
f4bc732
indentation...
umlaeute May 2, 2023
dab962d
add /sys/devices/virtual/video4linux/video*/type interface
May 2, 2023
339fa7d
fix device_nr checks in V4L2LOOPBACK_CTL_QUERY
May 3, 2023
856f196
v4l2loopback-ctl: add "list" verb
May 3, 2023
300dfe3
v4l2loopback-ctl: escape special chars in device-names
May 3, 2023
65755ae
refactored raw-string printout into helper function
May 3, 2023
fca530b
v4l2loopback-ctl: align help
May 3, 2023
588defa
v4l2loopback-ctl: more escaping for device-name
May 3, 2023
cd5932a
v4l2loopback-ctl: add flags to "query" verb
May 3, 2023
2c9b670
v4l2loopback-ctl: streamline help
May 3, 2023
175adaf
v4l2loopback: Fixup bytesused field when writer sends a too large value
jwrdegoede May 8, 2023
8cb5270
fallback to dprintkrw() if dev_warn_ratelimited() is not available
umlaeute May 10, 2023
5b6fdb8
rename sysfs-attribute "type" to "state"
May 3, 2023
d42d07e
make the code less-dependant on the "capture_nr" member of the config…
May 12, 2023
2689e9e
swap output/capture device when adding new devices
May 12, 2023
7321381
Remove the 'capture_nr' member from the v4l2_looback_config struct
May 12, 2023
c4dc810
build-fixes: install and utils
May 12, 2023
5eaff75
force timestamp.tv_sec to (long long int)
May 12, 2023
f5192e6
Remove support for pre-3.6.1 Linux kernels.
wt Feb 25, 2021
9ba7e29
Remove support for pre-4.0.0 kernels.
wt Mar 1, 2021
5bb9bed
[github] Mention "discussions" in the issue landing-page
umlaeute Sep 13, 2023
9f271e8
fixed utils build for musl (missing GLOB_ONLYDIR)
rdbo Nov 16, 2023
6367797
note that GLOB_ONLYDIR is indeed not requried by POSIX
umlaeute Nov 16, 2023
2b29020
added v4l2loopback-ctl.o to gitignore
rdbo Nov 16, 2023
719af83
Fix formatting
umlaeute Nov 16, 2023
29d8abf
Update README.md
fangfufu Jul 10, 2023
91c20dc
[ci] skip failures on kernels without v4l2 support
umlaeute Nov 23, 2023
4290e17
[ci] install all available kernel headers
umlaeute Nov 23, 2023
fdc753f
[ci] show skipped builds
umlaeute Nov 23, 2023
425f264
[ci] Fix testing for v4l2 capabilities
umlaeute Nov 23, 2023
9fe9741
[ci] bump actions/checkout to v4
umlaeute Nov 23, 2023
3bb27e6
[ci] lower actions/checkout to v3
umlaeute Nov 23, 2023
fbe6cd2
[ci] only install latest packageversion of each kernel-flavour
umlaeute Nov 23, 2023
f9d79a8
[ci] install 'dkms' to get some more building prerequisites
umlaeute Nov 23, 2023
850a2e3
some minor typos
umlaeute Nov 23, 2023
a0b9df9
use 'sudo' to change the permissions of the module
umlaeute Jan 9, 2024
1ddd627
use $< instead of hardcoding the module name
umlaeute Jan 9, 2024
aa8ec0c
'sign' target to sign the generated module for use with secure boot
umlaeute Jan 11, 2024
ee177b6
Use strscpy instead of strlcpy if available
MonterraByte Jan 22, 2024
b261f19
redefine strscpy() as strlcpy() if needed
umlaeute Jan 24, 2024
5d72c17
Lower minimum width/height to extreme values
umlaeute Feb 12, 2024
b9a340e
allocate_buffers: fix check whether we can re-allocate
Mar 19, 2024
2f34600
Release v0.13.0
Mar 19, 2024
269f623
shellchecked 'release.sh' script
Mar 19, 2024
fa7b9ef
release-script: fix retrieving of module-version
Mar 19, 2024
a0af17b
release-script: write back new version to v4l2loopback.h (if necessary)
Mar 19, 2024
017b089
improve printout in release script
Mar 19, 2024
3a1b8f5
Avoid building utils with dkms
harmathy Mar 19, 2024
6e9a90d
more shellcheck
Mar 19, 2024
4f99388
Release v0.13.1
Mar 19, 2024
cb9e676
Don't fail 'clean' target if 'make -C utils clean' fails
Mar 19, 2024
f72315c
explicitly return the fd from open_controldevice()
umlaeute Mar 21, 2024
89e87ed
utils: clean objectfiles
umlaeute Mar 21, 2024
1adad61
v4l2loopback-ctl: return errcodes where appropriate
umlaeute Mar 21, 2024
7b835d0
avoid unused variable warning
umlaeute Mar 21, 2024
b05a125
improve error-reporting
umlaeute Mar 21, 2024
8f264d7
mention the special caps 'any'
umlaeute Mar 21, 2024
c94a1e8
clang-format
umlaeute Mar 21, 2024
60be7c3
Replace (s64 % u32) with our own v4l2l_mod64() wrapper
umlaeute Mar 21, 2024
2014627
fix mod64 warnings on arm
umlaeute Mar 21, 2024
a2e60b5
[github] YML header
Apr 8, 2024
61848a0
[github] replace bug tempate with form
Apr 8, 2024
a8e46c6
[github] add 'title' to form template
Apr 8, 2024
881a955
[github] about->description
Apr 8, 2024
4ade9c0
[gitub] improve bug-description
Apr 8, 2024
ee0347c
[github] unbreak lines
Apr 8, 2024
5f24d9d
[github] add 'bug' label
Apr 8, 2024
d8e0c4d
[github] add feature-request template
Apr 8, 2024
4824538
[github] trailing dot
Apr 8, 2024
2d44c2f
Released 0.13.2
May 24, 2024
3c33ec4
Merge tag 'v0.13.0'
vicamo Sep 7, 2024
3dd03b8
Merge tag 'v0.13.1'
vicamo Sep 8, 2024
f530a8c
Merge tag 'v0.13.2'
vicamo Sep 8, 2024
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
96 changes: 96 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
name: Report a bug
description: Create a report to help us improve (but make sure to read all the documentation first).
title: "[Bug]: <title>"
labels: ['needs triage','kind:bug']
assignees: 'umlaeute'
body:
- type: markdown
attributes:
value: |
Thanks for your feedback. It is invaluable for making `v4l2loopback` a better software.

To help us making the most of your feedback (so we can e.g. fix bugs more quickly), please make sure to provide the information requested in this template.

Please keep in mind that the development of `v4l2loopback` is done by volunteers.
They are spending their spare time to give you a hopefully nice product and to help you if you have troubles - for free.

If you are experiencing interoperability problems with a commercial product, contact *their* support first.

- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: |
Please search to see if an (open or closed) issue already exists for the bug you encountered.
If so, consider adding more information to the existing issue, rather than creating a new one.
options:
- label: I have searched the existing issues
required: true

- id: details
type: textarea
attributes:
label: Detail
description: |
What went wrong?
If you are using additional software (e.g. `obs-studio`, `ffmpeg`, ...) please make sure to include full version information (and - if it is not a very common product - a link to their webpage).
placeholder: |
What did you do (step by step)? What did you expect? What happened?
render: markdown
validations:
required: true

- id: version
type: input
attributes:
label: v4l2loopback version
description: |
What is the exact version of v4l2loopback you are using? (e.g. as reported by `sudo dmesg | grep -i "v4l2loopback driver version"` or `git describe`)
placeholder: |
e.g. v0.13.1-10-g2014627
validations:
required: true

- id: kernelversion
type: input
attributes:
label: kernel version
description: |
What is the exact version of the linux kernel you are using? (reported via `uname -a`)
placeholder: |
e.g. Linux umlautT 6.7.9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.7.9-2 (2024-03-13) x86_64 GNU/Linux
validations:
required: true


# - type: dropdown
# id: OS
# attributes:
# label: Operating System
# description: Which OS are you using?
# multiple: true
# options:
# - Linux
# - macOS
# - Windows
# - other
- id: osversion
type: input
attributes:
label: OS Version
description: |
Which distribution/version are you using? (numeric versions are much preferred over codenames)
placeholder: |
e.g. Ubuntu/4.10 "Warty"

- id: arch
type: dropdown
attributes:
label: Which CPU are you using?
multiple: true
options:
- amd64/x86_64 ("64bit Intel")
- i386 ("32bit Intel")
- arm64 ("64bit ARM"; e.g. Apple Silicon,...)
- arm ("32bit ARM"; e.g. Raspberry Pi,...)
- other
101 changes: 0 additions & 101 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
blank_issues_enabled: false
contact_links:
- name: Ask a Question
Expand All @@ -9,3 +10,6 @@ contact_links:
- name: Look for more Documentation
url: https://github.com/umlaeute/v4l2loopback/wiki
about: Check our WIKI to see whether your question has already been answered.
- name: Start a discussion
url: https://github.com/umlaeute/v4l2loopback/discussions
about: Ask questions and share ideas on our "discussion" page.
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
name: Request a new feature
about: Suggest some new great functionality (but make sure to read all the documentation first).
title: ''
labels: ['needs triage', 'kind: feature request']
assignees: 'umlaeute'

---
29 changes: 0 additions & 29 deletions .github/workflows/clang-format-checks.yml

This file was deleted.

38 changes: 22 additions & 16 deletions .github/workflows/kmod-compatibility-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ jobs:
# the following does:
# - fetch all available tags for the "buildpack-deps" Docker image
# - fetch all available Ubuntu and Debian releases (that are still hosted on the distros' archive servers)
# - get the intersection of the tags and the releaess
# - get the intersection of the tags and the releases
# - drop some releases (e.g. 'oldstable')
# - format as a JSON array
run: |
echo ::set-output name=matrix::$(true; (curl -s "https://hub.docker.com/v2/repositories/library/buildpack-deps/tags?page_size=1000" | jq -r '.results[] | .name' | sed -e '/[^a-z]/d' -e '/stable$/d' -e '/^\(testing\|experimental\)$/d' | sort -u; for url in http://archive.ubuntu.com/ubuntu http://deb.debian.org/debian; do curl -s "${url}/dists/" | grep "href=" | sed -e 's|.*a href="||' -e 's|".*||' -e 's|/$||'; done | sed -e '/[^a-z]/d' -e '/stable$/d' -e '/^\(testing\|experimental\)$/d' | sort -u) | sort | uniq -d | while read x; do echo -n '"'${x}'" '; done | sed -e 's|^ *|[|' -e 's| *$|]|' -e 's| *|,|g')
echo matrix=$(true; (curl -s "https://hub.docker.com/v2/repositories/library/buildpack-deps/tags?page_size=1000" | jq -r '.results[] | .name' | sort -u; for url in http://archive.ubuntu.com/ubuntu; do curl -s "${url}/dists/" | grep "href=" | sed -e 's|.*a href="||' -e 's|".*||' -e 's|/$||'; done | sort -u; for d in unstable testing stable oldstable; do echo $d; done) | sort | uniq -d | while read x; do echo -n '"'${x}'" '; done | sed -e 's|^ *|[|' -e 's| *$|]|' -e 's| *|,|g') | tee -a $GITHUB_OUTPUT
id: set-matrix
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
Expand All @@ -41,26 +41,23 @@ jobs:
env:
JOB_KNOWN_FAILURES: "3.13 3.16 3.19 4.2"
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Compile against all available kernel header versions
shell: bash
run: |
arch=$(dpkg --print-architecture)
apt-get update --quiet;
apt-get install --yes --no-install-recommends kmod
for kver in $(apt-cache search 'linux-headers-.*-generic' | cut -d- -f3 | sort -u -V); do
apt-cache search 'linux-headers-'"${kver}"'-.*-generic' | sort -V | tail -n 1 | awk '{print $1}';
done | xargs apt-get install --yes --no-install-recommends || true
for kver in $(apt-cache search "linux-headers-.*-${arch}" | cut -d- -f3 | sort -u -V); do
apt-cache search 'linux-headers-'"${kver}"'-.*-'"${arch}" | sort -V | tail -n 1 | awk '{print $1}';
done | xargs apt-get install --yes --no-install-recommends || true

apt-get install --yes --no-install-recommends dkms || true
apt-cache search "linux-headers-[0-9.]*-[0-9]*-" | cut -d " " -f1 \
| sed -e 's|linux-headers-\([0-9.]*\)-[0-9]*-\(.*\)|\0 \1 \2|' | sort -t- -k3,4 -V -r | sort -u -k2,3 -V | cut -d " " -f1 \
| xargs apt-get install --yes --no-install-recommends
failed=""
succeeded=""
for kver in /lib/modules/*/build; do
test -d $kver || continue
kver=${kver%/build}
skipped=""
for kbuild in /lib/modules/*/build; do
test -d $kbuild || continue
kver=${kbuild%/build}
kver=${kver##*/}
echo "=== Testing ${kver} ===";
ret=$(make KERNELRELEASE="${kver}" >&2; echo $?);
Expand All @@ -71,10 +68,16 @@ jobs:
case " ${JOB_KNOWN_FAILURES} " in
*" ${kver%.*} "*)
echo "#### Skipped known failure ${kver}";
skipped="${skipped} ${kver}";
;;
*)
echo "#### Skipped unexpected failure ${kver}";
failed="${failed} ${kver}";
if test -e "${kbuild}/.config" && ! grep -qE "^(CONFIG_VIDEO_DEV|CONFIG_VIDEO_V4L2)=" "${kbuild}/.config"; then
echo "#### Skipped failure ${kver} (no v4l2 support)";
skipped="${skipped} ${kver}";
else
echo "#### Unexpected failure ${kver}";
failed="${failed} ${kver}";
fi;
;;
esac;
fi;
Expand All @@ -84,4 +87,7 @@ jobs:
echo "#### Failed kernels: ${failed}";
exit 1
fi
if [ "x${skipped}" != "x" ]; then
echo "#### Skipped kernels: ${skipped}";
fi
echo "#### Successful builds for kernels: ${succeeded}";
19 changes: 19 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Code Linters
on: [push, pull_request]

jobs:
clang-format:
runs-on: ubuntu-latest
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get -y install clang-format make
- name: Checkout code
uses: actions/checkout@v2
- name: Check Code Formatting
run: |
make clang-format
git status --porcelain
git diff --exit-code

2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
*~
.tmp_versions/
*.cmd
*.yuv
Module.symvers
modules.order
utils/v4l2loopback-ctl.o
utils/v4l2loopback-ctl
v4l2loopback.ko
v4l2loopback.mod
Expand Down
8 changes: 8 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -1,22 +1,26 @@
Aidan Thornton <makosoft AT gmail DOT com>
Alex Hu <alex_y_xu AT yahoo DOT ca>
Alienmaster <github AT crpykng DOT de>
Anatolij Gutschin <agust AT denx DOT de>
Andrii Danyleiko <DefteZ @ github>
Angus McInnes <angus AT amcinnes DOT info>
Anton Novikov <random.plant AT gmail DOT com>
Attila Tőkés <tokes_atti AT yahoo DOT com>
Benny Baumann <BenBE AT geshi DOT org>
Dmitry Eremin <dmitry.eremin AT intel DOT com>
Gavin Qiu <yongchengq AT gmail DOT com>
George Chriss <gschriss AT gmail DOT com>
Gorinich Zmey
IOhannes m zmoelnig <zmoelnig AT iem DOT at>
Jan-Ralf Meier <jan-ralf.meier AT gmx DOT de>
Javier Infante <jabiinfante AT gmail DOT com>
Jon Morley <jmorley AT pixsystem DOT com>
Joan Bruguera <joanbrugueram AT gmail DOT com>
Kai Kang <kai.kang AT windriver DOT com>
Kurt Kiefer <kekiefer AT gmail DOT com>
Michel Promonet <michel.promonet AT free DOT fr>
Nick Sarnie <commendsarnex AT gmail DOT com>
Oleksandr Natalenko <oleksandr AT natalenko DOT name>
Paul Brook <paul.brook AT cocoon DOT life>
Ricardo Ribalda Delgado <ricardo AT ribalda DOT com>
Scott Maines <smaines AT alaya DOT com>
Expand All @@ -25,10 +29,14 @@ Tasos Sahanidis <tasos AT tasossah DOT com>
Ted Mielczarek <ted AT mielczarek DOT org>
Theodore Cipicchio <okready AT github>
Thomas Hutterer <thutterer AT suse DOT de>
Tim Gardner <tim.gardner AT canonical DOT com>
Tobias Stoeckmann <tobias AT stoeckmann DOT org>
Todor Minchev <todor.minchev AT linux DOT intel DOT com>
tongdaxu <matonglidewazi AT qq DOT com>
tz
Vasily Levin
WaleedTageldeen <waleed.tageldeen AT gmail DOT com>
Wren Turkal <wt AT penguintechs DOT org>
wuweixin <wuweixin AT gmail DOT com>
You-Sheng Yang <vicamo.yang AT canonical DOT com>
Yusuke Ohshima <git AT yukke DOT org>
Loading
Loading