Discussion:
[yocto] CONFFILES journey form source dir to rootfs
Alan Martinovic
2018-11-12 11:52:00 UTC
Permalink
Hi,
I'm trying to understand how a conf file finds its way from source to
the rootfs.

The example is use is `journald.conf` from systemd.
The file originates from systemd source:
work/cortexa7hf-neon-vfpv4-senic-linux-gnueabi/systemd/1_234-r0/git/src/journal/journald.conf

In the environment is only mentioned as a part of the CONFFILES.
[output of `bitbake systemd -e` formated for readability]:

# $CONFFILES [2 operations]
# set /mnt/data/alan/work/senic-os/oe/meta/conf/documentation.conf:116
# [doc] "Identifies editable or configurable files that are
part of a package."
# override[systemd]:rename from CONFFILES_${PN} data.py:116 [expandKeys]
# "${sysconfdir}/machine-id
${sysconfdir}/systemd/coredump.conf
${sysconfdir}/systemd/journald.conf
${sysconfdir}/systemd/logind.conf
${sysconfdir}/systemd/system.conf
${sysconfdir}/systemd/user.conf"
# pre-expansion value:
# "None"
#
# $CONFFILES_systemd
# rename from CONFFILES_${PN} data.py:116 [expandKeys]
# "${sysconfdir}/machine-id
${sysconfdir}/systemd/coredump.conf
${sysconfdir}/systemd/journald.conf
${sysconfdir}/systemd/logind.conf
${sysconfdir}/systemd/system.conf
${sysconfdir}/systemd/user.conf"
CONFFILES_systemd="/etc/machine-id
/etc/systemd/coredump.conf
/etc/systemd/journald.conf
/etc/systemd/logind.conf
/etc/systemd/system.conf
/etc/systemd/user.conf"


The file successfully ends up at `/etc/systemd/journald.conf`.

Why isn't there an action in the environment showing the copying of
journald.conf
from `...git/src/journal/journald.conf` to
`${sysconfdir}/systemd/journald.conf`?


Disclaimer:
There were also some sed related actions with the file in the environment
which I dropped to reduce noise.

Be Well,
Alan
--
Burton, Ross
2018-11-12 12:30:42 UTC
Permalink
The standard do_install (which calls make install) copies the file
from the source tree to the staging directory.

Ross
Post by Alan Martinovic
Hi,
I'm trying to understand how a conf file finds its way from source to
the rootfs.
The example is use is `journald.conf` from systemd.
work/cortexa7hf-neon-vfpv4-senic-linux-gnueabi/systemd/1_234-r0/git/src/journal/journald.conf
In the environment is only mentioned as a part of the CONFFILES.
# $CONFFILES [2 operations]
# set /mnt/data/alan/work/senic-os/oe/meta/conf/documentation.conf:116
# [doc] "Identifies editable or configurable files that are
part of a package."
# override[systemd]:rename from CONFFILES_${PN} data.py:116 [expandKeys]
# "${sysconfdir}/machine-id
${sysconfdir}/systemd/coredump.conf
${sysconfdir}/systemd/journald.conf
${sysconfdir}/systemd/logind.conf
${sysconfdir}/systemd/system.conf
${sysconfdir}/systemd/user.conf"
# "None"
#
# $CONFFILES_systemd
# rename from CONFFILES_${PN} data.py:116 [expandKeys]
# "${sysconfdir}/machine-id
${sysconfdir}/systemd/coredump.conf
${sysconfdir}/systemd/journald.conf
${sysconfdir}/systemd/logind.conf
${sysconfdir}/systemd/system.conf
${sysconfdir}/systemd/user.conf"
CONFFILES_systemd="/etc/machine-id
/etc/systemd/coredump.conf
/etc/systemd/journald.conf
/etc/systemd/logind.conf
/etc/systemd/system.conf
/etc/systemd/user.conf"
The file successfully ends up at `/etc/systemd/journald.conf`.
Why isn't there an action in the environment showing the copying of
journald.conf
from `...git/src/journal/journald.conf` to
`${sysconfdir}/systemd/journald.conf`?
There were also some sed related actions with the file in the environment
which I dropped to reduce noise.
Be Well,
Alan
--
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
--
Alan Martinovic
2018-11-12 14:32:45 UTC
Permalink
Post by Burton, Ross
The standard do_install (which calls make install) copies the file
from the source tree to the staging directory.
What's the reason for not seeing that in `bitbake -e systemd`?


Be Well,
Alan
Post by Burton, Ross
The standard do_install (which calls make install) copies the file
from the source tree to the staging directory.
Ross
Post by Alan Martinovic
Hi,
I'm trying to understand how a conf file finds its way from source to
the rootfs.
The example is use is `journald.conf` from systemd.
work/cortexa7hf-neon-vfpv4-senic-linux-gnueabi/systemd/1_234-r0/git/src/journal/journald.conf
In the environment is only mentioned as a part of the CONFFILES.
# $CONFFILES [2 operations]
# set /mnt/data/alan/work/senic-os/oe/meta/conf/documentation.conf:116
# [doc] "Identifies editable or configurable files that are
part of a package."
# override[systemd]:rename from CONFFILES_${PN} data.py:116 [expandKeys]
# "${sysconfdir}/machine-id
${sysconfdir}/systemd/coredump.conf
${sysconfdir}/systemd/journald.conf
${sysconfdir}/systemd/logind.conf
${sysconfdir}/systemd/system.conf
${sysconfdir}/systemd/user.conf"
# "None"
#
# $CONFFILES_systemd
# rename from CONFFILES_${PN} data.py:116 [expandKeys]
# "${sysconfdir}/machine-id
${sysconfdir}/systemd/coredump.conf
${sysconfdir}/systemd/journald.conf
${sysconfdir}/systemd/logind.conf
${sysconfdir}/systemd/system.conf
${sysconfdir}/systemd/user.conf"
CONFFILES_systemd="/etc/machine-id
/etc/systemd/coredump.conf
/etc/systemd/journald.conf
/etc/systemd/logind.conf
/etc/systemd/system.conf
/etc/systemd/user.conf"
The file successfully ends up at `/etc/systemd/journald.conf`.
Why isn't there an action in the environment showing the copying of
journald.conf
from `...git/src/journal/journald.conf` to
`${sysconfdir}/systemd/journald.conf`?
There were also some sed related actions with the file in the environment
which I dropped to reduce noise.
Be Well,
Alan
--
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
--
Burton, Ross
2018-11-12 15:38:01 UTC
Permalink
Post by Alan Martinovic
Post by Burton, Ross
The standard do_install (which calls make install) copies the file
from the source tree to the staging directory.
What's the reason for not seeing that in `bitbake -e systemd`?
It is there:

do_install() {
meson_do_install
...
}

do_install calls meson_do_install which calls ninja install, which
copies the file from the build directory to the staging directory,
which is then used in packaging.

Ross
--

Loading...