Before this commit, when building dunst in parallel, org.knopwob.dunst.service might get installed as an empty file. See https://bugs.debian.org/888760
Switch default version string back to the `-non-git` prefix to indicate
an indev version.
Additionally fix the formatting of the 1.3 header in the changelog.
Dunst does not neccessarily need systemd. Dunst gets started primarily
via DBus. The systemd service is useful on systemd init based systems,
but won't have any impact on non-systemd systems.
To make systemd a soft dependency is neccessary, as pkg-config now also
queries the systemd.pc file, which won't exist on non systemd systems.
Setting PREFIX to a location different to /usr, the install routine
fails to install the systemd and dbus service files. These are
installed, but in the PREFIX directory and not /usr. DBus and systemd
usually only read their files from /usr/ and ignore files in /usr/local.
Now by default, we're asking pkg-config, where to install it. Mostly,
this will be /usr and this conflicts the FHS. But it's the user's intent
to install dunst and (possibly) override the package manager's files
belonging to dunst.
At the current point, even DBus ignores the PREFIX and installs its
systemd service file to the location specified by pkg-config.
so that dunst binaries build in a reproducible way
in spite of indeterministic filesystem readdir order
See https://reproducible-builds.org/ for why this is good.
x.c has grown into an unmaintainable blob. Moving it in its own
subdirectory is the first step to splitting it into submodules each of
which will have a well defined job so that a lot of the code can be
abstracted to improve readability and make it much easier to maintain.
This process will be done one small part at a time only when we need to
change significantly change a part of the file, there is no need to
break what already works.
Show what is happening during build etc, the way most other make-based
projects do.
There is thus no need for the options target. Additionally, this target
caused unnecessary rebuilds of ./dunst each and every time, even on
`make install`.
* Fix a bug that would cause distclean to fail if config.h didn't exist
* Make sure the options target is run when running make dunst
* Remove debug target as the optimization override it was doing was only
applied in the linking phase. Optimizations are applied during
compilation, not linking, and I don't see any easy way to fix that so
let's drop the target entirely.
distclean target should restore the directory tree to the state it
originally before make was invoked. In our case it means calling the
clean target to remove the compiled blobs and removing the
auto-generated config.h.
Move README to docs/dunst.pod to be used as man page. Write a README with building instructions and dependencies. Remove INSTALL as it's no longer necessary.
Move the main function to main.c in the git root to allow for
alternative main functions to be linked in its place. Specifically this
will be used to link the test runner main to run tests.
Put all global variables that store user settings into
a struct to keep the namespace clean. Move loading of
settings into own file so that only the namespace of
settings.c gets polluted with the stuff from config.h