It's a little bit more complicated that you're expect :/
Let me explain how to accomplish this.
You need first to rebuild efl package which is the library for enlightenment DE. Efl package depend and was built with systemd support. Yes, i know, the dependency of systemd was not declared at the efl PKGBUILD. This is because Arch dev consider systemd as a mandatory package on their distro (this is logical or not depending of the point of view). A lot of package in Arch have a hard dependency on systemd without be explicitly declared on the PKGBUILD.
Anyway, retrieve the PKGBUILD of efl and ask to makepkg to prepare the build without building it
% makepkg -o
This will create the src/ directory.
Now in src/efl-1.23.2 you can find a file named meson_options.txt. This file contain all the flags that can be used to configure the efl package at build time.
Look into it and you will see a statement like:
option('systemd',
type : 'boolean',
value : true,
description : 'Systemd support in efl'
)
So by default (value : true), the build supports systemd.
You can see a lot of options in this file, like the support of avahi, pulseaudio and so on. Take a look at each one and choose what you want. Maybe the majority of the options means nothing for you. A good packager should know every options of a package to build and understand the link between each option and the interaction with the system. Building a package it's easy, understand the build is not. That's why a good packager is not obvious to found :).
Anyway, now open your efl PKGBUILD and add to the build() function the flag that you want to use like this:
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
export CFLAGS="$CFLAGS -fvisibility=hidden"
if [ -d build ]; then
rm -rf build
fi
mkdir -p build
meson --prefix=/usr \
-Dfb=true \
-Ddrm=true \
-Dwl=true \
-Dnetwork-backend=connman \
-Devas-loaders-disabler=json \
-Dbindings= \
-Dbuild-examples=false \
-Dbuild-tests=false \
-Decore-imf-loaders-disabler= \
-Dsystemd=false \
. build
ninja -C build
cd build/doc
doxygen
}
I ask to not support systemd at the build by the sentence -Dsystemd=false . Be really careful how to write this sentence. You mustn't have any extra character after the anti-slash ('\') character even a space. If not, the build will cratch.
Well, you are ready to build it
% makepkg -Csri
Note: if you build multiple time the same package do not forgot to use the -C options to makepkg. This allow makepkg to destroy the build directory and remake the thing from the scratch.
Ok, all is good? you can now build the enlightenment package
This is the same manner to process.
Ask to makepkg to prepare the build
% makepkg -o
Open the meson_options.txt file and look what you want as flag and modify the PKGBUILD according to your needs. for example:
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
export CFLAGS="$CFLAGS -fvisibility=hidden"
if [ -d build ]; then
rm -f build
fi
mkdir build
meson --prefix=/usr \
-Dwl=true \
-Dsystemd=false \
. build
ninja -C build
}
Build it
% makepkg -Csri
You're are done.
Welcome to the packager club :p