Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • L libevdev
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • libevdev
  • libevdev
  • Merge requests
  • !64

FreeBSD compatibility

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Niclas Zeising requested to merge zeising/libevdev:zeising/fbsd-compat into master Jul 25, 2020
  • Overview 55
  • Commits 10
  • Pipelines 25
  • Changes 20

Changes to make libevdev work on FreeBSD. FreeBSD has an old version of this library in ports, with these patches, the latest version works fine (including tests).

The patch consists of several parts:

  • Add FreeBSD compatible input.h and uinput.h. This is done by moving the Linux and FreeBSD specific headers to include/linux/linux and include/linux/freebsd respectively, and then include those from the common files in include/linux. A similar change has been made to libinput.

  • Remove use of signalfd(), as it does not exist on FreeBSD. Since signalfd() is only used in a couple of tools, use plain signals and signal handling instead.

  • Implement a FreeBSD version of fetch_syspath_and_devnode(). Since FreeBSD does not have sysfs, figure out the device node in use directly instead of go via sysfs. Consequently, libevdev_uinput->syspath is always NULL on FreeBSD.

  • Update tests to work on FreeBSD, and add two FreeBSD-specific tests regarding syspath and devnode handling.

  • Document FreeBSD quirks in the external API.

Edited Aug 14, 2020 by Niclas Zeising
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: zeising/fbsd-compat