Skip to content

Install

McDope edited this page Aug 24, 2022 · 19 revisions

It's recommended to install by using one of the packages, depending on your Distribution. By doing so you get the usual benefits of apt/rpm/pacman and can easily uninstall later.

For Debian you also get a working config out-of-box if you have connected the device you want to use before installing. It will integrate the PAM module into your current PAM setup by utilizing pam-auth-update from libpam-runtime. Though this only allows you to configure a single user. If you want to configure additional users run pamusb-conf --add-user=<username> after installing.

For Fedora and Arch you will have to manually configure pamusb since there is nothing like debconf in rpm, and no autoconfig for Arch yet (see https://github.com/mcdope/pam_usb/discussions/135).

Installing from repository

There is an APT repository with prebuilt deb packages available. You can find it at https://apt.mcdope.org/.

Arch users can choose between two different AUR packages - pam_usb (for the latest release version) and pam_usb-git (for "built from master branch" version).

Fedora users need to build their own RPM. I won't provide a repository since I couldn't properly test it myself because I use only deb based distributions.

Additionally there are automatic deb/rpm/zst nightly builds available at https://github.com/mcdope/pam_usb/releases/tag/nightly.

Installing from source

Before proceeding, make sure all dependencies are installed:

Requirements for compiling from source (Debian based)


  • libxml2-dev
  • libpam0g-dev
  • libudisks2-dev
  • libglib2.0-dev
  • gir1.2-udisks-2.0
  • python3
  • python3-gi

... for copy 'n paste comfort: sudo apt install libxml2-dev libpam0g-dev libudisks2-dev libglib2.0-dev gir1.2-udisks-2.0 python3 python3-gi

Requirements for compiling from source (Fedora based)


  • libxml2-devel
  • pam-devel
  • libudisks2-devel
  • glib2-devel
  • python3-gobject

... for copy 'n paste comfort: sudo dnf install libxml2-devel pam-devel libudisks2-devel glib2-devel python3-gobject

Requirements for compiling from source (Arch based)


  • pkgconf
  • gcc
  • make
  • patch
  • pam
  • dbus
  • python
  • python-dbus
  • python-lxml
  • python-gobject
  • udisks2
  • base-devel
  • pacman-contrib

... for copy 'n paste comfort: sudo pacman -S pkgconf gcc make patch pam dbus python python-dbus python-lxml python-gobject udisks2 base-devel pacman-contrib

(Note: these are most likely even a bit too much, not familiar with Arch)

Compiling from source


$ make
# sudo make install

When compiling from source you won't get the auto-config of the debian package. See Getting started or Configuration to configure your setup.

Create a package

Packaging is done in Docker containers so you will have to set Docker up first. Also make sure your user is allowed to start containers without root privileges. See other sources for how to do this - it would be too much for this Wiki.

Create .deb


Run make build-debian. Afterwards you will find the created deb package in the .build directory.

This requires only Docker since everything will be done in the container. You could also run make deb to build the package locally, but you will have to work out the dependencies yourself then.

Create .rpm


Run make build-fedora. Afterwards you will find the created rpm package in the .build directory.

This requires only Docker since everything will be done in the container. You could also run make rpm to build the package locally, but you will have to work out the dependencies yourself then.

Create .zst


Run make build-arch. Afterwards you will find the created zst package in the .build directory.

This requires only Docker since everything will be done in the container. You could also run make zst to build the package locally, but you will have to work out the dependencies yourself then.