mirror of
https://git.yoctoproject.org/poky
synced 2026-05-01 06:32:11 +02:00
The kernel mounts /proc and /sys with the mode 555. Fedora explicitly sets this value in its filesystem setup package. Debian doesn't seem to set it explictly. Having them be 755 causes permission issues on upgrades inside a container where the guest does not have the permission to change the modes of the mount points. So, just bite the bullet and force them to be 555. (From OE-Core rev: 7e311b0c7222fa9127a96945c9ded7bee5e40eb3) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
182 lines
6.5 KiB
BlitzBasic
182 lines
6.5 KiB
BlitzBasic
SUMMARY = "Miscellaneous files for the base system"
|
|
DESCRIPTION = "The base-files package creates the basic system directory structure and provides a small set of key configuration files for the system."
|
|
SECTION = "base"
|
|
PR = "r89"
|
|
LICENSE = "GPLv2"
|
|
LIC_FILES_CHKSUM = "file://licenses/GPL-2;md5=94d55d512a9ba36caa9b7df079bae19f"
|
|
# Removed all license related tasks in this recipe as license.bbclass
|
|
# now deals with this. In order to get accurate licensing on to the image:
|
|
# Set COPY_LIC_MANIFEST to just copy just the license.manifest to the image
|
|
# For the manifest and the license text for each package:
|
|
# Set COPY_LIC_MANIFEST and COPY_LIC_DIRS
|
|
|
|
SRC_URI = "file://rotation \
|
|
file://nsswitch.conf \
|
|
file://motd \
|
|
file://host.conf \
|
|
file://profile \
|
|
file://shells \
|
|
file://fstab \
|
|
file://filesystems \
|
|
file://issue.net \
|
|
file://issue \
|
|
file://usbd \
|
|
file://share/dot.bashrc \
|
|
file://share/dot.profile \
|
|
file://licenses/GPL-2 \
|
|
"
|
|
S = "${WORKDIR}"
|
|
|
|
INHIBIT_DEFAULT_DEPS = "1"
|
|
|
|
docdir_append = "/${P}"
|
|
dirs1777 = "/tmp ${localstatedir}/volatile/tmp"
|
|
dirs2775 = ""
|
|
dirs555 = "/sys /proc"
|
|
dirs755 = "/boot /dev ${base_bindir} ${base_sbindir} ${base_libdir} \
|
|
${sysconfdir} ${sysconfdir}/default \
|
|
${sysconfdir}/skel ${nonarch_base_libdir} /mnt ${ROOT_HOME} /run \
|
|
${prefix} ${bindir} ${docdir} /usr/games ${includedir} \
|
|
${libdir} ${sbindir} ${datadir} \
|
|
${datadir}/common-licenses ${datadir}/dict ${infodir} \
|
|
${mandir} ${datadir}/misc ${localstatedir} \
|
|
${localstatedir}/backups ${localstatedir}/lib \
|
|
${localstatedir}/lib/misc ${localstatedir}/spool \
|
|
${localstatedir}/volatile \
|
|
${localstatedir}/${@'volatile/' if oe.types.boolean('${VOLATILE_LOG_DIR}') else ''}log \
|
|
/home ${prefix}/src ${localstatedir}/local \
|
|
/media"
|
|
|
|
dirs755-lsb = "/srv \
|
|
${prefix}/local ${prefix}/local/bin ${prefix}/local/games \
|
|
${prefix}/local/include ${prefix}/local/lib ${prefix}/local/sbin \
|
|
${prefix}/local/share ${prefix}/local/src \
|
|
${prefix}/lib/locale"
|
|
dirs2775-lsb = "/var/mail"
|
|
|
|
volatiles = "${@'log' if oe.types.boolean('${VOLATILE_LOG_DIR}') else ''} tmp"
|
|
conffiles = "${sysconfdir}/debian_version ${sysconfdir}/host.conf \
|
|
${sysconfdir}/issue /${sysconfdir}/issue.net \
|
|
${sysconfdir}/nsswitch.conf ${sysconfdir}/profile \
|
|
${sysconfdir}/default"
|
|
|
|
# By default the hostname is the machine name. If the hostname is unset then a
|
|
# /etc/hostname file isn't written, suitable for environments with dynamic
|
|
# hostnames.
|
|
#
|
|
# The hostname can be changed outside of this recipe by using
|
|
# hostname_pn-base-files = "my-host-name".
|
|
hostname = "${MACHINE}"
|
|
|
|
BASEFILESISSUEINSTALL ?= "do_install_basefilesissue"
|
|
|
|
# In previous versions of base-files, /run was a softlink to /var/run and the
|
|
# directory was located in /var/volatlie/run. Also, /var/lock was a softlink
|
|
# to /var/volatile/lock which is where the real directory was located. Now,
|
|
# /run and /run/lock are the real directories. If we are upgrading, we may
|
|
# need to remove the symbolic links first before we create the directories.
|
|
# Otherwise the directory creation will fail and we will have circular symbolic
|
|
# links.
|
|
#
|
|
pkg_preinst_${PN} () {
|
|
#!/bin/sh -e
|
|
if [ x"$D" = "x" ]; then
|
|
if [ -h "/var/lock" ]; then
|
|
# Remove the symbolic link
|
|
rm -f /var/lock
|
|
fi
|
|
|
|
if [ -h "/run" ]; then
|
|
# Remove the symbolic link
|
|
rm -f /run
|
|
fi
|
|
fi
|
|
}
|
|
|
|
do_install () {
|
|
for d in ${dirs555}; do
|
|
install -m 0555 -d ${D}$d
|
|
done
|
|
for d in ${dirs755}; do
|
|
install -m 0755 -d ${D}$d
|
|
done
|
|
for d in ${dirs1777}; do
|
|
install -m 1777 -d ${D}$d
|
|
done
|
|
for d in ${dirs2775}; do
|
|
install -m 2775 -d ${D}$d
|
|
done
|
|
for d in ${volatiles}; do
|
|
ln -sf volatile/$d ${D}${localstatedir}/$d
|
|
done
|
|
|
|
ln -snf ../run ${D}${localstatedir}/run
|
|
ln -snf ../run/lock ${D}${localstatedir}/lock
|
|
|
|
${BASEFILESISSUEINSTALL}
|
|
|
|
rotation=`cat ${WORKDIR}/rotation`
|
|
if [ "$rotation" != "0" ]; then
|
|
install -m 0644 ${WORKDIR}/rotation ${D}${sysconfdir}/rotation
|
|
fi
|
|
|
|
install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab
|
|
install -m 0644 ${WORKDIR}/filesystems ${D}${sysconfdir}/filesystems
|
|
install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
|
|
install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
|
|
sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile
|
|
sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile
|
|
install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
|
|
install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
|
|
install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
|
|
install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf
|
|
install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf
|
|
install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd
|
|
|
|
ln -sf /proc/mounts ${D}${sysconfdir}/mtab
|
|
}
|
|
|
|
DISTRO_VERSION[vardepsexclude] += "DATE"
|
|
do_install_basefilesissue () {
|
|
if [ "${hostname}" ]; then
|
|
echo ${hostname} > ${D}${sysconfdir}/hostname
|
|
fi
|
|
|
|
install -m 644 ${WORKDIR}/issue* ${D}${sysconfdir}
|
|
if [ -n "${DISTRO_NAME}" ]; then
|
|
printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue
|
|
printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net
|
|
if [ -n "${DISTRO_VERSION}" ]; then
|
|
distro_version_nodate=${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot').replace('${DATE}','')}
|
|
printf "%s " $distro_version_nodate >> ${D}${sysconfdir}/issue
|
|
printf "%s " $distro_version_nodate >> ${D}${sysconfdir}/issue.net
|
|
fi
|
|
printf "\\\n \\\l\n" >> ${D}${sysconfdir}/issue
|
|
echo >> ${D}${sysconfdir}/issue
|
|
echo "%h" >> ${D}${sysconfdir}/issue.net
|
|
echo >> ${D}${sysconfdir}/issue.net
|
|
fi
|
|
}
|
|
do_install_basefilesissue[vardepsexclude] += "DATE"
|
|
|
|
do_install_append_linuxstdbase() {
|
|
for d in ${dirs755-lsb}; do
|
|
install -m 0755 -d ${D}$d
|
|
done
|
|
|
|
for d in ${dirs2775-lsb}; do
|
|
install -m 2775 -d ${D}$d
|
|
done
|
|
}
|
|
|
|
SYSROOT_DIRS += "${sysconfdir}/skel"
|
|
|
|
PACKAGES = "${PN}-doc ${PN} ${PN}-dev ${PN}-dbg"
|
|
FILES_${PN} = "/"
|
|
FILES_${PN}-doc = "${docdir} ${datadir}/common-licenses"
|
|
|
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
|
|
CONFFILES_${PN} = "${sysconfdir}/fstab ${@['', '${sysconfdir}/hostname'][(d.getVar('hostname') != '')]} ${sysconfdir}/shells"
|
|
CONFFILES_${PN} += "${sysconfdir}/motd ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile"
|