apt: add nativesdk support

1. Add nativesdk support
- Apply the same patches of native
- Generate the same apt.conf.sample of native

2. Create user '_apt' to fix apt runtime warning
[snip]
$ apt update
...
W: No sandbox user '_apt' on the system, can not drop privileges
[snip]

RP: Add comment about need to user
RP: Add user to selftest static-passwd
(From OE-Core rev: be36b825ada573b2a7df9884eaab78664928594a)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
hongxu 2021-01-15 17:45:35 +08:00 committed by Richard Purdie
parent fef6ec93b5
commit 92a68c5ea4
3 changed files with 24 additions and 3 deletions

View File

@ -19,3 +19,4 @@ tracing:x:519:
pulse:x:520:
bind:x:521:
builder:x:522:
_apt:x:523:

View File

@ -15,3 +15,4 @@ sshd:x:516:516::/:/bin/nologin
pulse:x:520:520::/:/bin/nologin
bind:x:521:521::/:/bin/nologin
builder:x:522:522::/:/bin/nologin
_apt:x:523:523::/:/bin/nologin

View File

@ -17,6 +17,12 @@ SRC_URI_append_class-native = " \
file://0001-Do-not-configure-packages-on-installation.patch \
"
SRC_URI_append_class-nativesdk = " \
file://0001-Do-not-init-tables-from-dpkg-configuration.patch \
file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \
file://0001-Do-not-configure-packages-on-installation.patch \
"
SRC_URI[sha256sum] = "6d447f2e9437ec24e78350b63bb0592bee1f050811d51990b0c783183b0983f8"
LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
@ -24,9 +30,13 @@ LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
# so we check the latest upstream from a directory that does get updated
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/apt/"
inherit cmake perlnative bash-completion upstream-version-is-even
inherit cmake perlnative bash-completion upstream-version-is-even useradd
BBCLASSEXTEND = "native"
# User is added to allow apt to drop privs, will runtime warn without
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "--system --home /nonexistent --no-create-home _apt"
BBCLASSEXTEND = "native nativesdk"
DEPENDS += "virtual/libiconv virtual/libintl db gnutls lz4 zlib bzip2 xz"
@ -41,7 +51,7 @@ do_configure_prepend () {
FILES_${PN} += "${prefix}/lib/dpkg ${prefix}/lib/apt"
RDEPENDS_${PN} += "bash perl dpkg"
do_install_append_class-native() {
customize_apt_conf_sample() {
cat > ${D}${sysconfdir}/apt/apt.conf.sample << EOF
Dir "${STAGING_DIR_NATIVE}/"
{
@ -94,6 +104,15 @@ DPkg::Path "";
EOF
}
do_install_append_class-native() {
customize_apt_conf_sample
}
do_install_append_class-nativesdk() {
customize_apt_conf_sample
}
do_install_append_class-target() {
#Write the correct apt-architecture to apt.conf
APT_CONF=${D}/etc/apt/apt.conf