blob: e16fe722b8a5710c313c0c5ed90aadc2a060ef69 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001SUMMARY = "Miscellaneous files for the base system"
2DESCRIPTION = "The base-files package creates the basic system directory structure and provides a small set of key configuration files for the system."
3SECTION = "base"
4PR = "r89"
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://licenses/GPL-2;md5=94d55d512a9ba36caa9b7df079bae19f"
7# Removed all license related tasks in this recipe as license.bbclass
8# now deals with this. In order to get accurate licensing on to the image:
9# Set COPY_LIC_MANIFEST to just copy just the license.manifest to the image
10# For the manifest and the license text for each package:
11# Set COPY_LIC_MANIFEST and COPY_LIC_DIRS
12
13SRC_URI = "file://rotation \
14 file://nsswitch.conf \
15 file://motd \
16 file://inputrc \
17 file://host.conf \
18 file://profile \
19 file://shells \
20 file://fstab \
21 file://filesystems \
22 file://issue.net \
23 file://issue \
24 file://usbd \
25 file://share/dot.bashrc \
26 file://share/dot.profile \
27 file://licenses/GPL-2 \
28 "
29S = "${WORKDIR}"
30
31INHIBIT_DEFAULT_DEPS = "1"
32
33docdir_append = "/${P}"
34dirs1777 = "/tmp ${localstatedir}/volatile/tmp"
35dirs2775 = ""
36dirs755 = "/bin /boot /dev ${sysconfdir} ${sysconfdir}/default \
37 ${sysconfdir}/skel /lib /mnt /proc ${ROOT_HOME} /run /sbin \
38 ${prefix} ${bindir} ${docdir} /usr/games ${includedir} \
39 ${libdir} ${sbindir} ${datadir} \
40 ${datadir}/common-licenses ${datadir}/dict ${infodir} \
41 ${mandir} ${datadir}/misc ${localstatedir} \
42 ${localstatedir}/backups ${localstatedir}/lib \
43 /sys ${localstatedir}/lib/misc ${localstatedir}/spool \
44 ${localstatedir}/volatile \
45 ${localstatedir}/volatile/log \
46 /home ${prefix}/src ${localstatedir}/local \
47 /media"
48
49dirs755-lsb = "/srv \
50 ${prefix}/local ${prefix}/local/bin ${prefix}/local/games \
51 ${prefix}/local/include ${prefix}/local/lib ${prefix}/local/sbin \
52 ${prefix}/local/share ${prefix}/local/src \
53 ${prefix}/lib/locale"
54dirs2775-lsb = "/var/mail"
55
56volatiles = "log tmp"
57conffiles = "${sysconfdir}/debian_version ${sysconfdir}/host.conf \
58 ${sysconfdir}/inputrc ${sysconfdir}/issue /${sysconfdir}/issue.net \
59 ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile \
60 ${sysconfdir}/default"
61
62# By default the hostname is the machine name. If the hostname is unset then a
63# /etc/hostname file isn't written, suitable for environments with dynamic
64# hostnames.
65#
66# The hostname can be changed outside of this recipe by using
67# hostname_pn-base-files = "my-host-name".
68hostname = "${MACHINE}"
69
70BASEFILESISSUEINSTALL ?= "do_install_basefilesissue"
71
72# In previous versions of base-files, /run was a softlink to /var/run and the
73# directory was located in /var/volatlie/run. Also, /var/lock was a softlink
74# to /var/volatile/lock which is where the real directory was located. Now,
75# /run and /run/lock are the real directories. If we are upgrading, we may
76# need to remove the symbolic links first before we create the directories.
77# Otherwise the directory creation will fail and we will have circular symbolic
78# links.
79#
80pkg_preinst_${PN} () {
81 #!/bin/sh -e
82 if [ x"$D" = "x" ]; then
83 if [ -h "/var/lock" ]; then
84 # Remove the symbolic link
85 rm -f /var/lock
86 fi
87
88 if [ -h "/run" ]; then
89 # Remove the symbolic link
90 rm -f /run
91 fi
92 fi
93}
94
95do_install () {
96 for d in ${dirs755}; do
97 install -m 0755 -d ${D}$d
98 done
99 for d in ${dirs1777}; do
100 install -m 1777 -d ${D}$d
101 done
102 for d in ${dirs2775}; do
103 install -m 2775 -d ${D}$d
104 done
105 for d in ${volatiles}; do
106 ln -sf volatile/$d ${D}${localstatedir}/$d
107 done
108
109 ln -snf ../run ${D}${localstatedir}/run
110 ln -snf ../run/lock ${D}${localstatedir}/lock
111
112 ${BASEFILESISSUEINSTALL}
113
114 rotation=`cat ${WORKDIR}/rotation`
115 if [ "$rotation" != "0" ]; then
116 install -m 0644 ${WORKDIR}/rotation ${D}${sysconfdir}/rotation
117 fi
118
119 install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab
120 install -m 0644 ${WORKDIR}/filesystems ${D}${sysconfdir}/filesystems
121 install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
122 install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
123 sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile
124 install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
125 install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
126 install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
127 install -m 0644 ${WORKDIR}/inputrc ${D}${sysconfdir}/inputrc
128 install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf
129 install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf
130 install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd
131
132 if [ "/usr/bin" != "${bindir}" ]; then
133 sed -i "s,/usr/bin/resize,${bindir}/resize," ${D}${sysconfdir}/profile
134 fi
135
136 ln -sf /proc/mounts ${D}${sysconfdir}/mtab
137}
138
139DISTRO_VERSION[vardepsexclude] += "DATE"
140do_install_basefilesissue () {
141 if [ "${hostname}" ]; then
142 echo ${hostname} > ${D}${sysconfdir}/hostname
143 fi
144
145 install -m 644 ${WORKDIR}/issue* ${D}${sysconfdir}
146 if [ -n "${DISTRO_NAME}" ]; then
147 printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue
148 printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net
149 if [ -n "${DISTRO_VERSION}" ]; then
150 printf "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue
151 printf "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue.net
152 fi
153 printf "\\\n \\\l\n" >> ${D}${sysconfdir}/issue
154 echo >> ${D}${sysconfdir}/issue
155 echo "%h" >> ${D}${sysconfdir}/issue.net
156 echo >> ${D}${sysconfdir}/issue.net
157 fi
158}
159
160do_install_append_linuxstdbase() {
161 for d in ${dirs755-lsb}; do
162 install -m 0755 -d ${D}$d
163 done
164
165 for d in ${dirs2775-lsb}; do
166 install -m 2775 -d ${D}$d
167 done
168}
169
170PACKAGES = "${PN}-doc ${PN} ${PN}-dev ${PN}-dbg"
171FILES_${PN} = "/"
172FILES_${PN}-doc = "${docdir} ${datadir}/common-licenses"
173
174PACKAGE_ARCH = "${MACHINE_ARCH}"
175
176CONFFILES_${PN} = "${sysconfdir}/fstab ${@['', '${sysconfdir}/hostname'][(d.getVar('hostname', True) != '')]} ${sysconfdir}/shells"
177CONFFILES_${PN} += "${sysconfdir}/motd ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile"
178