Skip to content

Installation from Source

Vincent Chernin edited this page Aug 25, 2021 · 66 revisions

Installation from Source

All commands on this page, unless otherwise specified, are expected to be run as an unprivileged user (not root). Whenever root privileges are necessary, sudo will be used. If sudo is unavailable you may become root using su -, at which point you may execute any command as the root user. Use exit to become a normal user again.

Distribution Specifics

Arch Linux

Arch Linux includes a package and PKGBUILD in Community Repository.

Run sudo pacman -S easyeffects to install binary package.

Debian / Ubuntu

The instructions for Debian based distributions are outdated. Help is needed to update it

Debian >= 10 / Ubuntu >= 18.04

Building and Installing a Debian Package
1. Clone the Repo

Clone the git repository and checkout the latest supported release. Unless you are testing the master branch of PulseEffects, you also want to checkout the latest supported release.

If you don't already have git installed, simply install it with sudo apt install git.

git clone https://github.com/wwmm/pulseeffects.git
cd pulseeffects
git checkout v4.7.2

Substitute v4.7.2 with the latest release.

Before building the package, check the version in debian/changelog and add a new changelog entry with the new version it if necessary. Sidenote, v6.0.0 and up requires you to set changelog entries as easyeffects or else you will get a source package conflict error. Example:

easyeffects (6.0.0) unstable; urgency=low
    * Changelog details
...

If you've made any changes, including debian/changelog, run git add to stage them in git, otherwise build deb will fail. You may rungit reset after building the deb to unstage those changes in git.

Note that newest versions may not be buildable because debian specs are updated a bit later than other code.

2. Install Build Dependencies

Install some Debian tools, needed for building the package.

sudo apt install devscripts equivs

Boost >= 1.72 is needed to build PulseEffects >= 4.7.2. If you are building on Ubuntu < 20.10, you will not find boost 1.72 in official repositories. You may add an additional repository where all build dependencies are available:

sudo add-apt-repository ppa:mikhailnov/pulseeffects

Now let's build and install a dummy package pulseeffects-build-deps, which will depend on all packages required to build the package.

sudo mk-build-deps --install debian/control
3. Build the Package

To build your own package, simply run debuild from inside the source tree. dpkg-buildpackage options may be given on the command line.

Explanation of the options:

  • The -us -uc flags builds the package without signing it. Since the package maintainer's private key is unavailable the package cannot be signed. Signing is unnecessary, unless a user plans to redistribute their package in their own repository.
  • The -i flag will exclude the .git directory from the generated source tarball.
debuild -i.* -us -uc

If debuild returns dpkg-shlibdeps: error: no dependency information found for XXX and you've built these dependencies from source, add this to the debian/rules file

override_dh_shlibdeps:
    dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info

See the full debuild and dpkg-buildpackage manpage for more options.

4. Remove Build Dependencies (Optional)

At this point, you may remove the build dependencies if you wish to save some space. Although if you plan to build every release from source you might as well keep it.

sudo apt autoremove --purge pulseeffects-build-deps
5. Install the Package

Build makes 3 deb packages located one directory bellow. Install all of them:

sudo apt install ../*pulseeffects*.deb

Debian <= 9 / Ubuntu <= 17.10

Old Debians and Ubuntus have old libraries, and PulseEffects cannot be compiled. Try using Flatpak or upgrading your distribution.

Fedora

sudo dnf builddep pulseeffects

Flatpak

It is possible to build your own Flatpak package, using flatpak-builder and a file, called a manifest. We will be building the same package that is built and published on Flathub.

Ensure this is installed and available on your system. If it is not installed, you can find detailed installation instructions at https://flatpak.org/setup/.

You can find the EasyEffects manifest, patches and other Flatpak specific files on Flathub. To get them run:

git clone https://github.com/flathub/com.github.wwmm.easyeffects.git

Then

cd com.github.wwmm.pulseeffects

and now you can run flatpak-builder from this directory.

The official Flatpak documentation best describes the build process. It is recommended that you read this in order to understand the build process. The Flatpak Builder section is the most important one. It covers the use of flatpak-builder and how to use it with a manifest.

Consult the Flathub repository, README, and issue tracker if you have any questions or issues.

Download

Clone the git repository.

git clone https://github.com/wwmm/pulseeffects.git
cd pulseeffects

Optional: Select a release

Substitute v3.0.0 with the latest release.

git checkout v3.0.0

Build & Install

meson _build --prefix=/usr
sudo ninja -C _build install

Note: *If you get the error: wrong parameters to Project(), minimum project name and one language is required you need a newer version of Meson. If one is not provided by your distribution you may install a newer one with pip3.

sudo pip3 install meson

See the official instructions for getting meson for more information.

Installing into a specific directory

This is useful if you are creating a package for a distribution. Substitute $pkgdir with a directory into which you wish to install the files.

meson _build --prefix=/usr
env DESTDIR="$pkgdir" ninja -C _build install

If your distribution of choice provides a package you will have to remember to remove all the files you just added or it could cause conflicts with the package manager. To avoid this headache you can run PulseEffects without installing it on the system or build in the temp folder:

meson _build --prefix=/tmp/pe
cd _build
ninja install
Clone this wiki locally