This is the debian/
directory for fvwm3 to build a
Debian package (.deb) from the fvwm3 source.
-
Build Note: Starting with fvwm3 1.1.1 the build system has moved from autotools to meson (version 1.5.1 or greater). The Debian package now builds using meson. The old
debian/
directory to build with autotools can be found in theautotools
branch. -
This only contains the
debian/
directory. Get the upstream fvwm3 source on github. -
The
main
branch is used to build against themain
fvwm3 branch, which reflects the current development status of fvwm3. -
Branches to build specific versions from released tarballs are the same as the release number. For example branch
1.1.0
will build against the 1.1.0 release of fvwm3. -
The
FvwmPrompt
branch has a single patch on top of the main branch to buildFvwmPrompt
(see below). -
This builds a package that can be installed along side the fvwm package (which is fvwm version 2). To do this some binaries and manual pages have been renamed. Check
debian/README.Debian
for details. -
The version of the package appends
ds
(Debian source) to the upstream version to indicate that the official Debian package removes the bundled libraries,bin/FvwmPrompt/vendor
, due to Debian policy.
These instructions are to build an fvwm3 binary package from git. Adjust to suit your needs.
-
Clone fvwm3 and this repo.
git clone https://github.com/fvwmorg/fvwm3.git git clone https://github.com/somiaj/fvwm3-debian.git
-
Install the Debian build tools and build dependencies.
apt install build-essential debhelper asciidoctor fontconfig gettext \ libevent-dev libfontconfig-dev libfreetype6-dev libfribidi-dev \ libncurses-dev libpng-dev libreadline-dev librsvg2-dev \ libsm-dev libx11-dev libxcursor-dev libxext-dev libxft-dev \ libxi-dev libxkbcommon-dev libxpm-dev libxrandr-dev \ libxrender-dev libxt-dev meson
Note: This build requires a version of meson 1.5.1 or greater. On bookworm you can get this from bookworm-backports.
apt install -t bookworm-backports meson
-
Copy
debian/
into the fvwm3 source and build the package.cd fvwm3 cp -r ../fvwm3-debian/debian . dpkg-buildpackage -us -uc -b
Note, you can also use a link,
ln ../fvwm3-debian/debian/ .
as well. -
Install the resulting .deb package.
sudo apt install ../fvwm3_1.1.*_amd64.deb
Use the following to build a Debian source package along side the
binary package. In short this adds an extra step of creating an
original tarball of the source with bin/FvwmPrompt/vendor
removed.
This isn't needed if you just want to install fvwm3 from a Debian package.
-
Crate a clone of both
fvwm3
andfvwm3-debian
, copy thedebian/
directory fromfvwm3-debain
tofvwm3
, and install the build-depends as described above. -
Create an original tarball of the current source. This requires first installing the
devscripts
package formk-origtargz
. Note<version>
will be the next fvwm3 version.cd fvwm3/ meson setup build -Dgolang=disabled meson dist -C build mk-origtargz build/meson-dist/fvwm3-<version>.tar.xz cd ..
-
Extract the now modified original tarball to build from, and copy the
debian/
directory into the extracted source, and build both the source and binary package.tar xvf fvwm3_<version>+ds.orig.tar.xz cp -r fvwm3-debian/debian/ fvwm3-<version> cd fvwm3-<version> dpkg-buildpackage -us -uc
Due to Debian policy, the official Debian package cannot contain bundled
libraries, so bin/FvwmPrompt/vendor
is removed from the Debian source
package, and FvwmPrompt must be built using Debian system libraries.
Currently Debian is missing a few golang depends to build FvwmPrompt,
see golang-depends.md
, so the Debian package won't contain FvwmPrompt
until all the depends are packaged for Debian.
To build a local Debian package that uses bin/FvwmPrompt/vendor
to build FvwmPrompt, use the official fvwm3 source. Then
use the patch in the branch FvwmPrompt
to build a package that
also builds FvwmPrompt. Use the above instructions for building
a binary package along with checking out the FvwmPrompt branch,
git checkout FvwmPrompt
, and installing the package golang-go
to build the package.
To build FvwmPrompt using meson, golang version 1.20.0 or greater is
required. In bookworm, you will need to install the golang-go
package
from bookworm-backports to build FvwmPrompt.