mirror of
https://git.yoctoproject.org/poky
synced 2026-02-03 23:38:44 +01:00
Compare commits
121 Commits
uninative-
...
2.5_M3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f49ee61422 | ||
|
|
aacaf836ba | ||
|
|
40db00818e | ||
|
|
0748f2c4d5 | ||
|
|
4e05a42b93 | ||
|
|
dad8f073e3 | ||
|
|
c256b715e6 | ||
|
|
35b28399d5 | ||
|
|
9a6b5496a4 | ||
|
|
abc0655bae | ||
|
|
c3c336f106 | ||
|
|
eeafb85124 | ||
|
|
da4e855060 | ||
|
|
f6f688842b | ||
|
|
00b23ae2aa | ||
|
|
11032bebe8 | ||
|
|
d5075b648b | ||
|
|
6a8ef3d5a4 | ||
|
|
83707d9d15 | ||
|
|
36fa6cc835 | ||
|
|
a3d931d7aa | ||
|
|
887f583c45 | ||
|
|
d91238016e | ||
|
|
066700462a | ||
|
|
649d23696f | ||
|
|
38e0189fae | ||
|
|
42a0e944a4 | ||
|
|
41163179d4 | ||
|
|
f2103873bd | ||
|
|
de3e16b675 | ||
|
|
c996eaaf23 | ||
|
|
c37053857d | ||
|
|
cef09e9c0e | ||
|
|
4c13568fa4 | ||
|
|
674cdda1b9 | ||
|
|
dec7f4f17d | ||
|
|
0fd6d0dd00 | ||
|
|
7cff54121d | ||
|
|
6b4fab7588 | ||
|
|
655b58c620 | ||
|
|
9390f907a9 | ||
|
|
a6a96feb18 | ||
|
|
eb263b79dc | ||
|
|
3f2fe7a734 | ||
|
|
29c6083d1f | ||
|
|
508ab8b836 | ||
|
|
5ae4806529 | ||
|
|
1cab8ef694 | ||
|
|
0728b89b56 | ||
|
|
5c0c9b37da | ||
|
|
2e86184de2 | ||
|
|
8f26f62471 | ||
|
|
2712b33e85 | ||
|
|
acb88c7afe | ||
|
|
3f18c643f3 | ||
|
|
24baf608d7 | ||
|
|
79716684b4 | ||
|
|
4712f75761 | ||
|
|
dc47156387 | ||
|
|
cc02a00d27 | ||
|
|
215293c51e | ||
|
|
a5c274b451 | ||
|
|
960b58eae3 | ||
|
|
fb50eb6ef0 | ||
|
|
127263bf72 | ||
|
|
e3dfa35cab | ||
|
|
cc97bc0812 | ||
|
|
6827053895 | ||
|
|
cd005e2d5b | ||
|
|
c64a57d2ec | ||
|
|
6d71fdbf20 | ||
|
|
961c26101f | ||
|
|
636d1be38f | ||
|
|
459f177c9e | ||
|
|
58b5f8a221 | ||
|
|
04575dfdbc | ||
|
|
a5644b6811 | ||
|
|
98e852983c | ||
|
|
5350ee3177 | ||
|
|
6c1f8b957d | ||
|
|
52b6a85533 | ||
|
|
5e9bd58874 | ||
|
|
016c527bed | ||
|
|
1caae443ee | ||
|
|
fffb52a49b | ||
|
|
795934f307 | ||
|
|
631e06643b | ||
|
|
5dfe5f9573 | ||
|
|
216ad55704 | ||
|
|
48614ce3ce | ||
|
|
c47e5edb67 | ||
|
|
7ef4dd124e | ||
|
|
cb8d69d28b | ||
|
|
4adcf277bc | ||
|
|
3c02fc2788 | ||
|
|
3f93bc6932 | ||
|
|
24229c4769 | ||
|
|
8467b0602b | ||
|
|
8b2c0db9a0 | ||
|
|
541711cc33 | ||
|
|
a857e9a6e8 | ||
|
|
0fffb6a8d8 | ||
|
|
81995e2a0e | ||
|
|
a2fdf7fb08 | ||
|
|
2a0f0adf05 | ||
|
|
19e4de6eba | ||
|
|
bc2d5c5c1c | ||
|
|
70d20398c4 | ||
|
|
1aff4b01aa | ||
|
|
60681b118a | ||
|
|
5a78036d08 | ||
|
|
7187b63c19 | ||
|
|
b308fd1181 | ||
|
|
6116dbfcec | ||
|
|
ecba98085f | ||
|
|
0b94280064 | ||
|
|
8cec60990e | ||
|
|
7dce685fe4 | ||
|
|
a3e8538a38 | ||
|
|
25e442ce10 | ||
|
|
c1e73aab77 |
@@ -187,7 +187,7 @@ def explode_deps(s):
|
||||
#r[-1] += ' ' + ' '.join(j)
|
||||
return r
|
||||
|
||||
def explode_dep_versions2(s):
|
||||
def explode_dep_versions2(s, *, sort=True):
|
||||
"""
|
||||
Take an RDEPENDS style string of format:
|
||||
"DEPEND1 (optional version) DEPEND2 (optional version) ..."
|
||||
@@ -250,7 +250,8 @@ def explode_dep_versions2(s):
|
||||
if not (i in r and r[i]):
|
||||
r[lastdep] = []
|
||||
|
||||
r = collections.OrderedDict(sorted(r.items(), key=lambda x: x[0]))
|
||||
if sort:
|
||||
r = collections.OrderedDict(sorted(r.items(), key=lambda x: x[0]))
|
||||
return r
|
||||
|
||||
def explode_dep_versions(s):
|
||||
|
||||
@@ -3,11 +3,12 @@ LICENSE = "MIT"
|
||||
|
||||
inherit allarch
|
||||
|
||||
PACKAGES = "${PN}-rootfs ${PN}-delayed-a ${PN}-delayed-b"
|
||||
PACKAGES = "${PN}-rootfs ${PN}-delayed-a ${PN}-delayed-b ${PN}-rootfs-failing"
|
||||
|
||||
ALLOW_EMPTY_${PN}-rootfs = "1"
|
||||
ALLOW_EMPTY_${PN}-delayed-a = "1"
|
||||
ALLOW_EMPTY_${PN}-delayed-b = "1"
|
||||
ALLOW_EMPTY_${PN}-rootfs-failing = "1"
|
||||
|
||||
RDEPENDS_${PN}-delayed-a = "${PN}-rootfs"
|
||||
RDEPENDS_${PN}-delayed-b = "${PN}-delayed-a"
|
||||
@@ -58,3 +59,14 @@ pkg_postinst_ontarget_${PN}-delayed-b () {
|
||||
|
||||
touch ${TESTDIR}/delayed-b
|
||||
}
|
||||
|
||||
# This scriptlet intentionally includes a bogus command in the middle to test
|
||||
# that we catch and report such errors properly.
|
||||
pkg_postinst_${PN}-rootfs-failing () {
|
||||
mkdir -p $D${TESTDIR}
|
||||
touch $D${TESTDIR}/rootfs-before-failure
|
||||
run_a_really_broken_command
|
||||
# Scriptlet execution should stop here; the following commands are NOT supposed to run.
|
||||
# (oe-selftest checks for it).
|
||||
touch $D${TESTDIR}/rootfs-after-failure
|
||||
}
|
||||
|
||||
@@ -28,13 +28,13 @@ GTKDOC_DOCDIR ?= "${S}"
|
||||
|
||||
export STAGING_DIR_HOST
|
||||
|
||||
inherit ${@oe.utils.ifelse(d.getVar('GTKDOC_ENABLED') == 'True', 'python3native', '')}
|
||||
|
||||
inherit pkgconfig qemu
|
||||
DEPENDS_append = "${@oe.utils.ifelse(d.getVar('GTKDOC_ENABLED') == 'True', ' qemu-native', '')}"
|
||||
inherit python3native pkgconfig qemu
|
||||
DEPENDS_append = "${@' qemu-native' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
|
||||
|
||||
do_configure_prepend () {
|
||||
( cd ${S}; gtkdocize --docdir ${GTKDOC_DOCDIR} || true )
|
||||
# Need to use ||true as this is only needed if configure.ac both exists
|
||||
# and uses GTK_DOC_CHECK.
|
||||
gtkdocize --srcdir ${S} --docdir ${GTKDOC_DOCDIR} || true
|
||||
}
|
||||
|
||||
do_compile_prepend_class-target () {
|
||||
|
||||
@@ -36,7 +36,7 @@ prelink_image () {
|
||||
dynamic_loader=$(linuxloader)
|
||||
|
||||
# prelink!
|
||||
if [ "$BUILD_REPRODUCIBLE_BINARIES" = "1" ]; then
|
||||
if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
|
||||
bbnote " prelink: BUILD_REPRODUCIBLE_BINARIES..."
|
||||
if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then
|
||||
export PRELINK_TIMESTAMP=`git log -1 --pretty=%ct `
|
||||
|
||||
@@ -664,7 +664,7 @@ ROOTFS_PREPROCESS_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge'
|
||||
POPULATE_SDK_PRE_TARGET_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'create_merged_usr_symlinks_sdk; ', '',d)}"
|
||||
|
||||
reproducible_final_image_task () {
|
||||
if [ "$BUILD_REPRODUCIBLE_BINARIES" = "1" ]; then
|
||||
if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
|
||||
if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then
|
||||
REPRODUCIBLE_TIMESTAMP_ROOTFS=`git log -1 --pretty=%ct`
|
||||
fi
|
||||
|
||||
@@ -284,8 +284,7 @@ CONVERSION_CMD_lzma = "lzma -k -f -7 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
|
||||
CONVERSION_CMD_gz = "gzip -f -9 -n -c ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz"
|
||||
CONVERSION_CMD_bz2 = "pbzip2 -f -k ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
|
||||
CONVERSION_CMD_xz = "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_THREADS} --check=${XZ_INTEGRITY_CHECK} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.xz"
|
||||
CONVERSION_CMD_lz4 = "lz4 -9 -z ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
|
||||
CONVERSION_CMD_lz4_legacy = "lz4 -9 -z -l ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
|
||||
CONVERSION_CMD_lz4 = "lz4 -9 -z -l ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
|
||||
CONVERSION_CMD_lzo = "lzop -9 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
|
||||
CONVERSION_CMD_zip = "zip ${ZIP_COMPRESSION_LEVEL} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.zip ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
|
||||
CONVERSION_CMD_sum = "sumtool -i ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} -o ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sum ${JFFS2_SUM_EXTRA_ARGS}"
|
||||
|
||||
@@ -71,6 +71,8 @@ def package_qa_get_machine_dict(d):
|
||||
"microblaze": (189, 0, 0, False, 32),
|
||||
"microblazeeb":(189, 0, 0, False, 32),
|
||||
"microblazeel":(189, 0, 0, True, 32),
|
||||
"riscv32": (243, 0, 0, True, 32),
|
||||
"riscv64": (243, 0, 0, True, 64),
|
||||
},
|
||||
"linux" : {
|
||||
"aarch64" : (183, 0, 0, True, 64),
|
||||
@@ -97,7 +99,7 @@ def package_qa_get_machine_dict(d):
|
||||
"mipsisa64r6": ( 8, 0, 0, False, 64),
|
||||
"mipsisa64r6el": ( 8, 0, 0, True, 64),
|
||||
"nios2": (113, 0, 0, True, 32),
|
||||
"riscv": (243, 0, 0, True, 32),
|
||||
"riscv32": (243, 0, 0, True, 32),
|
||||
"riscv64": (243, 0, 0, True, 64),
|
||||
"s390": (22, 0, 0, False, 32),
|
||||
"sh4": (42, 0, 0, True, 32),
|
||||
@@ -124,7 +126,7 @@ def package_qa_get_machine_dict(d):
|
||||
"microblaze": (189, 0, 0, False, 32),
|
||||
"microblazeeb":(189, 0, 0, False, 32),
|
||||
"microblazeel":(189, 0, 0, True, 32),
|
||||
"riscv": (243, 0, 0, True, 32),
|
||||
"riscv32": (243, 0, 0, True, 32),
|
||||
"riscv64": (243, 0, 0, True, 64),
|
||||
"sh4": ( 42, 0, 0, True, 32),
|
||||
},
|
||||
|
||||
@@ -279,7 +279,7 @@ get_cc_option () {
|
||||
|
||||
kernel_do_compile() {
|
||||
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
|
||||
if [ "$BUILD_REPRODUCIBLE_BINARIES" = "1" ]; then
|
||||
if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
|
||||
# kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not
|
||||
# be set....
|
||||
if [ "$SOURCE_DATE_EPOCH" = "0" ]; then
|
||||
@@ -533,6 +533,8 @@ addtask savedefconfig after do_configure
|
||||
|
||||
inherit cml1
|
||||
|
||||
KCONFIG_CONFIG_COMMAND_append = " HOSTLDFLAGS='${BUILD_LDFLAGS}'"
|
||||
|
||||
EXPORT_FUNCTIONS do_compile do_install do_configure
|
||||
|
||||
# kernel-base becomes kernel-${KERNEL_VERSION}
|
||||
|
||||
@@ -1343,6 +1343,17 @@ fi
|
||||
postinst += postinst_ontarget
|
||||
d.setVar('pkg_postinst_%s' % pkg, postinst)
|
||||
|
||||
def add_set_e_to_scriptlets(pkg):
|
||||
for scriptlet_name in ('pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm'):
|
||||
scriptlet = d.getVar('%s_%s' % (scriptlet_name, pkg))
|
||||
if scriptlet:
|
||||
scriptlet_split = scriptlet.split('\n')
|
||||
if scriptlet_split[0].startswith("#!"):
|
||||
scriptlet = scriptlet_split[0] + "\nset -e\n" + "\n".join(scriptlet_split[1:])
|
||||
else:
|
||||
scriptlet = "set -e\n" + "\n".join(scriptlet_split[0:])
|
||||
d.setVar('%s_%s' % (scriptlet_name, pkg), scriptlet)
|
||||
|
||||
def write_if_exists(f, pkg, var):
|
||||
def encode(str):
|
||||
import codecs
|
||||
@@ -1439,6 +1450,7 @@ fi
|
||||
write_if_exists(sf, pkg, 'FILES')
|
||||
write_if_exists(sf, pkg, 'CONFFILES')
|
||||
process_postinst_on_target(pkg, d.getVar("MLPREFIX"))
|
||||
add_set_e_to_scriptlets(pkg)
|
||||
write_if_exists(sf, pkg, 'pkg_postinst')
|
||||
write_if_exists(sf, pkg, 'pkg_postrm')
|
||||
write_if_exists(sf, pkg, 'pkg_preinst')
|
||||
|
||||
@@ -470,12 +470,12 @@ python write_specfile () {
|
||||
|
||||
# Now process scriptlets
|
||||
if splitrpreinst:
|
||||
spec_scriptlets_bottom.append('%%pre -n %s -p "/bin/sh -e"' % splitname)
|
||||
spec_scriptlets_bottom.append('%%pre -n %s' % splitname)
|
||||
spec_scriptlets_bottom.append('# %s - preinst' % splitname)
|
||||
spec_scriptlets_bottom.append(splitrpreinst)
|
||||
spec_scriptlets_bottom.append('')
|
||||
if splitrpostinst:
|
||||
spec_scriptlets_bottom.append('%%post -n %s -p "/bin/sh -e"' % splitname)
|
||||
spec_scriptlets_bottom.append('%%post -n %s' % splitname)
|
||||
spec_scriptlets_bottom.append('# %s - postinst' % splitname)
|
||||
spec_scriptlets_bottom.append(splitrpostinst)
|
||||
spec_scriptlets_bottom.append('')
|
||||
@@ -564,12 +564,12 @@ python write_specfile () {
|
||||
spec_preamble_top.append('')
|
||||
|
||||
if srcrpreinst:
|
||||
spec_scriptlets_top.append('%pre -p "/bin/sh -e"')
|
||||
spec_scriptlets_top.append('%pre')
|
||||
spec_scriptlets_top.append('# %s - preinst' % srcname)
|
||||
spec_scriptlets_top.append(srcrpreinst)
|
||||
spec_scriptlets_top.append('')
|
||||
if srcrpostinst:
|
||||
spec_scriptlets_top.append('%post -p "/bin/sh -e"')
|
||||
spec_scriptlets_top.append('%post')
|
||||
spec_scriptlets_top.append('# %s - postinst' % srcname)
|
||||
spec_scriptlets_top.append(srcrpostinst)
|
||||
spec_scriptlets_top.append('')
|
||||
|
||||
11
meta/classes/reproducible_build_simple.bbclass
Normal file
11
meta/classes/reproducible_build_simple.bbclass
Normal file
@@ -0,0 +1,11 @@
|
||||
# Setup default environment for reproducible builds.
|
||||
|
||||
BUILD_REPRODUCIBLE_BINARIES = "1"
|
||||
|
||||
export PYTHONHASHSEED = "0"
|
||||
export PERL_HASH_SEED = "0"
|
||||
export TZ = 'UTC'
|
||||
export SOURCE_DATE_EPOCH ??= "1520598896"
|
||||
|
||||
REPRODUCIBLE_TIMESTAMP_ROOTFS ??= "1520598896"
|
||||
|
||||
@@ -77,6 +77,11 @@ python uninative_event_fetchloader() {
|
||||
except FileExistsError:
|
||||
pass
|
||||
|
||||
# ldd output is "ldd (Ubuntu GLIBC 2.23-0ubuntu10) 2.23", extract last option from first line
|
||||
glibcver = subprocess.check_output(["ldd", "--version"]).decode('utf-8').split('\n')[0].split()[-1]
|
||||
if bb.utils.vercmp_string(d.getVar("UNINATIVE_MAXGLIBCVERSION"), glibcver) < 0:
|
||||
raise RuntimeError("Your host glibc verson (%s) is newer than that in uninative (%s). Disabling uninative so that sstate is not corrupted." % (glibcver, d.getVar("UNINATIVE_MAXGLIBCVERSION")))
|
||||
|
||||
cmd = d.expand("\
|
||||
mkdir -p ${UNINATIVE_STAGING_DIR}-uninative; \
|
||||
cd ${UNINATIVE_STAGING_DIR}-uninative; \
|
||||
@@ -94,6 +99,8 @@ ${UNINATIVE_STAGING_DIR}-uninative/relocate_sdk.py \
|
||||
|
||||
enable_uninative(d)
|
||||
|
||||
except RuntimeError as e:
|
||||
bb.warn(str(e))
|
||||
except bb.fetch2.BBFetchException as exc:
|
||||
bb.warn("Disabling uninative as unable to fetch uninative tarball: %s" % str(exc))
|
||||
bb.warn("To build your own uninative loader, please bitbake uninative-tarball and set UNINATIVE_TARBALL appropriately.")
|
||||
|
||||
@@ -423,6 +423,8 @@ SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}"
|
||||
OLDEST_KERNEL = "3.2.0"
|
||||
OLDEST_KERNEL_aarch64 = "3.14"
|
||||
OLDEST_KERNEL_nios2 = "3.19"
|
||||
OLDEST_KERNEL_riscv32 = "4.15"
|
||||
OLDEST_KERNEL_riscv64 = "4.15"
|
||||
|
||||
# SDK_OLDEST_KERNEL can't be set using overrides since there are
|
||||
# none for the SDK architecture. Best to set it from a machine-sdk
|
||||
|
||||
@@ -89,7 +89,6 @@ RECIPE_MAINTAINER_pn-builder = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-buildtools-tarball = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-busybox = "Armin Kuster <akuster808@gmail.com>"
|
||||
RECIPE_MAINTAINER_pn-busybox-inittab = "Denys Dmytriyenko <denys@ti.com>"
|
||||
RECIPE_MAINTAINER_pn-byacc = "Chen Qi <Qi.Chen@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-bzip2 = "Denys Dmytriyenko <denys@ti.com>"
|
||||
RECIPE_MAINTAINER_pn-ca-certificates = "Alexander Kanavin <alexander.kanavin@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-cairo = "Maxin B. John <maxin.john@intel.com>"
|
||||
@@ -483,6 +482,7 @@ RECIPE_MAINTAINER_pn-m4-native = "Robert Yang <liezhi.yang@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-make = "Robert Yang <liezhi.yang@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-makedepend = "Robert Yang <liezhi.yang@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-makedevs = "Chen Qi <Qi.Chen@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-make-mod-scripts = "Bruce Ashfield <bruce.ashfield@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-man-db = "Hongxu Jia <hongxu.jia@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-man-pages = "Hongxu Jia <hongxu.jia@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-matchbox-config-gtk = "Maxin B. John <maxin.john@intel.com>"
|
||||
|
||||
@@ -28,6 +28,7 @@ BINUVERSION ?= "2.30%"
|
||||
GDBVERSION ?= "8.0%"
|
||||
GLIBCVERSION ?= "2.27%"
|
||||
LINUXLIBCVERSION ?= "4.15%"
|
||||
QEMUVERSION ?= "2.11%"
|
||||
|
||||
PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
|
||||
PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
|
||||
@@ -64,6 +65,10 @@ PREFERRED_VERSION_glibc-initial ?= "${GLIBCVERSION}"
|
||||
PREFERRED_VERSION_nativesdk-glibc-initial ?= "${GLIBCVERSION}"
|
||||
PREFERRED_VERSION_cross-localedef-native ?= "${GLIBCVERSION}"
|
||||
|
||||
|
||||
PREFERRED_VERSION_qemu ?= "${QEMUVERSION}"
|
||||
PREFERRED_VERSION_qemu-native ?= "${QEMUVERSION}"
|
||||
PREFERRED_VERSION_nativesdk-qemu ?= "${QEMUVERSION}"
|
||||
# Setup suitable toolchain flags
|
||||
require conf/distro/include/as-needed.inc
|
||||
|
||||
|
||||
@@ -5,10 +5,6 @@
|
||||
# rt-tests needs PI mutex support in libc
|
||||
EXCLUDE_FROM_WORLD_pn-rt-tests_libc-musl = "1"
|
||||
|
||||
# error: no member named 'sin_port' in 'struct sockaddr_in6'
|
||||
# this is due to libtirpc using ipv6 but portmap rpc expecting ipv4
|
||||
EXCLUDE_FROM_WORLD_pn-unfs3_libc-musl = "1"
|
||||
|
||||
# error: use of undeclared identifier '_STAT_VER'
|
||||
EXCLUDE_FROM_WORLD_pn-pseudo_libc-musl = "1"
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
# to the distro running on the build machine.
|
||||
#
|
||||
|
||||
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/1.7/"
|
||||
UNINATIVE_CHECKSUM[i686] ?= "d7c341460035936c19d63fe02f354ef1bc993c62d694ae3a31458d1c6997f0c5"
|
||||
UNINATIVE_CHECKSUM[x86_64] ?= "ed033c868b87852b07957a4400f3b744c00aef5d6470346ea1a59b6d3e03075e"
|
||||
UNINATIVE_MAXGLIBCVERSION = "2.27"
|
||||
|
||||
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/1.8/"
|
||||
UNINATIVE_CHECKSUM[i686] ?= "427ce522ec97f65c75fd89587d90ef789e8cbca4a617abc4b5822abb01c2d0ae"
|
||||
UNINATIVE_CHECKSUM[x86_64] ?= "de4947e98e09e1432d069311cc2093974ecb9138a714fd5466f73524de66a693"
|
||||
|
||||
@@ -22,12 +22,12 @@ def create_index(arg):
|
||||
if result:
|
||||
bb.note(result)
|
||||
|
||||
"""
|
||||
This method parse the output from the package managerand return
|
||||
a dictionary with the information of the packages. This is used
|
||||
when the packages are in deb or ipk format.
|
||||
"""
|
||||
def opkg_query(cmd_output):
|
||||
"""
|
||||
This method parse the output from the package managerand return
|
||||
a dictionary with the information of the packages. This is used
|
||||
when the packages are in deb or ipk format.
|
||||
"""
|
||||
verregex = re.compile(' \([=<>]* [^ )]*\)')
|
||||
output = dict()
|
||||
pkg = ""
|
||||
@@ -83,6 +83,11 @@ def opkg_query(cmd_output):
|
||||
|
||||
return output
|
||||
|
||||
# Note: this should be bb.fatal in the future.
|
||||
def failed_postinsts_warn(pkgs, log_path):
|
||||
bb.warn("""Intentionally failing postinstall scriptlets of %s to defer them to first boot is deprecated. Please place them into pkg_postinst_ontarget_${PN} ().
|
||||
If deferring to first boot wasn't the intent, then scriptlet failure may mean an issue in the recipe, or a regression elsewhere.
|
||||
Details of the failure are in %s.""" %(pkgs, log_path))
|
||||
|
||||
class Indexer(object, metaclass=ABCMeta):
|
||||
def __init__(self, d, deploy_dir):
|
||||
@@ -96,13 +101,16 @@ class Indexer(object, metaclass=ABCMeta):
|
||||
|
||||
class RpmIndexer(Indexer):
|
||||
def write_index(self):
|
||||
self.do_write_index(self.deploy_dir)
|
||||
|
||||
def do_write_index(self, deploy_dir):
|
||||
if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
|
||||
signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND'))
|
||||
else:
|
||||
signer = None
|
||||
|
||||
createrepo_c = bb.utils.which(os.environ['PATH'], "createrepo_c")
|
||||
result = create_index("%s --update -q %s" % (createrepo_c, self.deploy_dir))
|
||||
result = create_index("%s --update -q %s" % (createrepo_c, deploy_dir))
|
||||
if result:
|
||||
bb.fatal(result)
|
||||
|
||||
@@ -110,11 +118,22 @@ class RpmIndexer(Indexer):
|
||||
if signer:
|
||||
sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE')
|
||||
is_ascii_sig = (sig_type.upper() != "BIN")
|
||||
signer.detach_sign(os.path.join(self.deploy_dir, 'repodata', 'repomd.xml'),
|
||||
signer.detach_sign(os.path.join(deploy_dir, 'repodata', 'repomd.xml'),
|
||||
self.d.getVar('PACKAGE_FEED_GPG_NAME'),
|
||||
self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'),
|
||||
armor=is_ascii_sig)
|
||||
|
||||
class RpmSubdirIndexer(RpmIndexer):
|
||||
def write_index(self):
|
||||
bb.note("Generating package index for %s" %(self.deploy_dir))
|
||||
self.do_write_index(self.deploy_dir)
|
||||
for entry in os.walk(self.deploy_dir):
|
||||
if os.path.samefile(self.deploy_dir, entry[0]):
|
||||
for dir in entry[1]:
|
||||
if dir != 'repodata':
|
||||
dir_path = oe.path.join(self.deploy_dir, dir)
|
||||
bb.note("Generating package index for %s" %(dir_path))
|
||||
self.do_write_index(dir_path)
|
||||
|
||||
class OpkgIndexer(Indexer):
|
||||
def write_index(self):
|
||||
@@ -312,34 +331,34 @@ class PackageManager(object, metaclass=ABCMeta):
|
||||
self.deploy_dir = None
|
||||
self.deploy_lock = None
|
||||
|
||||
"""
|
||||
Update the package manager package database.
|
||||
"""
|
||||
@abstractmethod
|
||||
def update(self):
|
||||
"""
|
||||
Update the package manager package database.
|
||||
"""
|
||||
pass
|
||||
|
||||
"""
|
||||
Install a list of packages. 'pkgs' is a list object. If 'attempt_only' is
|
||||
True, installation failures are ignored.
|
||||
"""
|
||||
@abstractmethod
|
||||
def install(self, pkgs, attempt_only=False):
|
||||
"""
|
||||
Install a list of packages. 'pkgs' is a list object. If 'attempt_only' is
|
||||
True, installation failures are ignored.
|
||||
"""
|
||||
pass
|
||||
|
||||
"""
|
||||
Remove a list of packages. 'pkgs' is a list object. If 'with_dependencies'
|
||||
is False, the any dependencies are left in place.
|
||||
"""
|
||||
@abstractmethod
|
||||
def remove(self, pkgs, with_dependencies=True):
|
||||
"""
|
||||
Remove a list of packages. 'pkgs' is a list object. If 'with_dependencies'
|
||||
is False, then any dependencies are left in place.
|
||||
"""
|
||||
pass
|
||||
|
||||
"""
|
||||
This function creates the index files
|
||||
"""
|
||||
@abstractmethod
|
||||
def write_index(self):
|
||||
"""
|
||||
This function creates the index files
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
@@ -350,30 +369,28 @@ class PackageManager(object, metaclass=ABCMeta):
|
||||
def list_installed(self):
|
||||
pass
|
||||
|
||||
"""
|
||||
Returns the path to a tmpdir where resides the contents of a package.
|
||||
|
||||
Deleting the tmpdir is responsability of the caller.
|
||||
|
||||
"""
|
||||
@abstractmethod
|
||||
def extract(self, pkg):
|
||||
"""
|
||||
Returns the path to a tmpdir where resides the contents of a package.
|
||||
Deleting the tmpdir is responsability of the caller.
|
||||
"""
|
||||
pass
|
||||
|
||||
"""
|
||||
Add remote package feeds into repository manager configuration. The parameters
|
||||
for the feeds are set by feed_uris, feed_base_paths and feed_archs.
|
||||
See http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-PACKAGE_FEED_URIS
|
||||
for their description.
|
||||
"""
|
||||
@abstractmethod
|
||||
def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs):
|
||||
"""
|
||||
Add remote package feeds into repository manager configuration. The parameters
|
||||
for the feeds are set by feed_uris, feed_base_paths and feed_archs.
|
||||
See http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-PACKAGE_FEED_URIS
|
||||
for their description.
|
||||
"""
|
||||
pass
|
||||
|
||||
"""
|
||||
Install all packages that match a glob.
|
||||
"""
|
||||
def install_glob(self, globs, sdk=False):
|
||||
"""
|
||||
Install all packages that match a glob.
|
||||
"""
|
||||
# TODO don't have sdk here but have a property on the superclass
|
||||
# (and respect in install_complementary)
|
||||
if sdk:
|
||||
@@ -393,14 +410,14 @@ class PackageManager(object, metaclass=ABCMeta):
|
||||
"'%s' returned %d:\n%s" %
|
||||
(' '.join(cmd), e.returncode, e.output.decode("utf-8")))
|
||||
|
||||
"""
|
||||
Install complementary packages based upon the list of currently installed
|
||||
packages e.g. locales, *-dev, *-dbg, etc. This will only attempt to install
|
||||
these packages, if they don't exist then no error will occur. Note: every
|
||||
backend needs to call this function explicitly after the normal package
|
||||
installation
|
||||
"""
|
||||
def install_complementary(self, globs=None):
|
||||
"""
|
||||
Install complementary packages based upon the list of currently installed
|
||||
packages e.g. locales, *-dev, *-dbg, etc. This will only attempt to install
|
||||
these packages, if they don't exist then no error will occur. Note: every
|
||||
backend needs to call this function explicitly after the normal package
|
||||
installation
|
||||
"""
|
||||
if globs is None:
|
||||
globs = self.d.getVar('IMAGE_INSTALL_COMPLEMENTARY')
|
||||
split_linguas = set()
|
||||
@@ -457,13 +474,13 @@ class PackageManager(object, metaclass=ABCMeta):
|
||||
|
||||
self.deploy_lock = None
|
||||
|
||||
"""
|
||||
Construct URIs based on the following pattern: uri/base_path where 'uri'
|
||||
and 'base_path' correspond to each element of the corresponding array
|
||||
argument leading to len(uris) x len(base_paths) elements on the returned
|
||||
array
|
||||
"""
|
||||
def construct_uris(self, uris, base_paths):
|
||||
"""
|
||||
Construct URIs based on the following pattern: uri/base_path where 'uri'
|
||||
and 'base_path' correspond to each element of the corresponding array
|
||||
argument leading to len(uris) x len(base_paths) elements on the returned
|
||||
array
|
||||
"""
|
||||
def _append(arr1, arr2, sep='/'):
|
||||
res = []
|
||||
narr1 = [a.rstrip(sep) for a in arr1]
|
||||
@@ -709,8 +726,7 @@ class RpmPM(PackageManager):
|
||||
failed_scriptlets_pkgnames[line.split()[-1]] = True
|
||||
|
||||
if len(failed_scriptlets_pkgnames) > 0:
|
||||
bb.warn("Intentionally failing postinstall scriptlets of %s to defer them to first boot is deprecated. Please place them into pkg_postinst_ontarget_${PN} ()." %(list(failed_scriptlets_pkgnames.keys())))
|
||||
bb.warn("If deferring to first boot wasn't the intent, then scriptlet failure may mean an issue in the recipe, or a regression elsewhere.")
|
||||
failed_postinsts_warn(list(failed_scriptlets_pkgnames.keys()), self.d.expand("${T}/log.do_rootfs"))
|
||||
for pkg in failed_scriptlets_pkgnames.keys():
|
||||
self.save_rpmpostinst(pkg)
|
||||
|
||||
@@ -903,18 +919,18 @@ class RpmPM(PackageManager):
|
||||
|
||||
|
||||
class OpkgDpkgPM(PackageManager):
|
||||
"""
|
||||
This is an abstract class. Do not instantiate this directly.
|
||||
"""
|
||||
def __init__(self, d):
|
||||
"""
|
||||
This is an abstract class. Do not instantiate this directly.
|
||||
"""
|
||||
super(OpkgDpkgPM, self).__init__(d)
|
||||
|
||||
"""
|
||||
Returns a dictionary with the package info.
|
||||
|
||||
This method extracts the common parts for Opkg and Dpkg
|
||||
"""
|
||||
def package_info(self, pkg, cmd):
|
||||
"""
|
||||
Returns a dictionary with the package info.
|
||||
|
||||
This method extracts the common parts for Opkg and Dpkg
|
||||
"""
|
||||
|
||||
try:
|
||||
output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
|
||||
@@ -923,14 +939,14 @@ class OpkgDpkgPM(PackageManager):
|
||||
"returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
|
||||
return opkg_query(output)
|
||||
|
||||
"""
|
||||
Returns the path to a tmpdir where resides the contents of a package.
|
||||
|
||||
Deleting the tmpdir is responsability of the caller.
|
||||
|
||||
This method extracts the common parts for Opkg and Dpkg
|
||||
"""
|
||||
def extract(self, pkg, pkg_info):
|
||||
"""
|
||||
Returns the path to a tmpdir where resides the contents of a package.
|
||||
|
||||
Deleting the tmpdir is responsability of the caller.
|
||||
|
||||
This method extracts the common parts for Opkg and Dpkg
|
||||
"""
|
||||
|
||||
ar_cmd = bb.utils.which(os.getenv("PATH"), "ar")
|
||||
tar_cmd = bb.utils.which(os.getenv("PATH"), "tar")
|
||||
@@ -1005,12 +1021,12 @@ class OpkgPM(OpkgDpkgPM):
|
||||
|
||||
self.indexer = OpkgIndexer(self.d, self.deploy_dir)
|
||||
|
||||
"""
|
||||
This function will change a package's status in /var/lib/opkg/status file.
|
||||
If 'packages' is None then the new_status will be applied to all
|
||||
packages
|
||||
"""
|
||||
def mark_packages(self, status_tag, packages=None):
|
||||
"""
|
||||
This function will change a package's status in /var/lib/opkg/status file.
|
||||
If 'packages' is None then the new_status will be applied to all
|
||||
packages
|
||||
"""
|
||||
status_file = os.path.join(self.opkg_dir, "status")
|
||||
|
||||
with open(status_file, "r") as sf:
|
||||
@@ -1172,6 +1188,13 @@ class OpkgPM(OpkgDpkgPM):
|
||||
bb.note(cmd)
|
||||
output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8")
|
||||
bb.note(output)
|
||||
failed_pkgs = []
|
||||
for line in output.split('\n'):
|
||||
if line.endswith("configuration required on target."):
|
||||
bb.warn(line)
|
||||
failed_pkgs.append(line.split(".")[0])
|
||||
if failed_pkgs:
|
||||
failed_postinsts_warn(failed_pkgs, self.d.expand("${T}/log.do_rootfs"))
|
||||
except subprocess.CalledProcessError as e:
|
||||
(bb.fatal, bb.warn)[attempt_only]("Unable to install packages. "
|
||||
"Command '%s' returned %d:\n%s" %
|
||||
@@ -1254,10 +1277,10 @@ class OpkgPM(OpkgDpkgPM):
|
||||
# is separated from the following entry
|
||||
status.write("\n")
|
||||
|
||||
'''
|
||||
The following function dummy installs pkgs and returns the log of output.
|
||||
'''
|
||||
def dummy_install(self, pkgs):
|
||||
"""
|
||||
The following function dummy installs pkgs and returns the log of output.
|
||||
"""
|
||||
if len(pkgs) == 0:
|
||||
return
|
||||
|
||||
@@ -1312,10 +1335,10 @@ class OpkgPM(OpkgDpkgPM):
|
||||
self.opkg_dir,
|
||||
symlinks=True)
|
||||
|
||||
"""
|
||||
Returns a dictionary with the package info.
|
||||
"""
|
||||
def package_info(self, pkg):
|
||||
"""
|
||||
Returns a dictionary with the package info.
|
||||
"""
|
||||
cmd = "%s %s info %s" % (self.opkg_cmd, self.opkg_args, pkg)
|
||||
pkg_info = super(OpkgPM, self).package_info(pkg, cmd)
|
||||
|
||||
@@ -1326,12 +1349,12 @@ class OpkgPM(OpkgDpkgPM):
|
||||
|
||||
return pkg_info
|
||||
|
||||
"""
|
||||
Returns the path to a tmpdir where resides the contents of a package.
|
||||
|
||||
Deleting the tmpdir is responsability of the caller.
|
||||
"""
|
||||
def extract(self, pkg):
|
||||
"""
|
||||
Returns the path to a tmpdir where resides the contents of a package.
|
||||
|
||||
Deleting the tmpdir is responsability of the caller.
|
||||
"""
|
||||
pkg_info = self.package_info(pkg)
|
||||
if not pkg_info:
|
||||
bb.fatal("Unable to get information for package '%s' while "
|
||||
@@ -1365,12 +1388,12 @@ class DpkgPM(OpkgDpkgPM):
|
||||
|
||||
self.indexer = DpkgIndexer(self.d, self.deploy_dir)
|
||||
|
||||
"""
|
||||
This function will change a package's status in /var/lib/dpkg/status file.
|
||||
If 'packages' is None then the new_status will be applied to all
|
||||
packages
|
||||
"""
|
||||
def mark_packages(self, status_tag, packages=None):
|
||||
"""
|
||||
This function will change a package's status in /var/lib/dpkg/status file.
|
||||
If 'packages' is None then the new_status will be applied to all
|
||||
packages
|
||||
"""
|
||||
status_file = self.target_rootfs + "/var/lib/dpkg/status"
|
||||
|
||||
with open(status_file, "r") as sf:
|
||||
@@ -1393,11 +1416,11 @@ class DpkgPM(OpkgDpkgPM):
|
||||
|
||||
os.rename(status_file + ".tmp", status_file)
|
||||
|
||||
"""
|
||||
Run the pre/post installs for package "package_name". If package_name is
|
||||
None, then run all pre/post install scriptlets.
|
||||
"""
|
||||
def run_pre_post_installs(self, package_name=None):
|
||||
"""
|
||||
Run the pre/post installs for package "package_name". If package_name is
|
||||
None, then run all pre/post install scriptlets.
|
||||
"""
|
||||
info_dir = self.target_rootfs + "/var/lib/dpkg/info"
|
||||
ControlScript = collections.namedtuple("ControlScript", ["suffix", "name", "argument"])
|
||||
control_scripts = [
|
||||
@@ -1435,9 +1458,10 @@ class DpkgPM(OpkgDpkgPM):
|
||||
stderr=subprocess.STDOUT).decode("utf-8")
|
||||
bb.note(output)
|
||||
except subprocess.CalledProcessError as e:
|
||||
bb.note("%s for package %s failed with %d:\n%s" %
|
||||
bb.warn("%s for package %s failed with %d:\n%s" %
|
||||
(control_script.name, pkg_name, e.returncode,
|
||||
e.output.decode("utf-8")))
|
||||
failed_postinsts_warn([pkg_name], self.d.expand("${T}/log.do_rootfs"))
|
||||
failed_pkgs.append(pkg_name)
|
||||
break
|
||||
|
||||
@@ -1642,10 +1666,10 @@ class DpkgPM(OpkgDpkgPM):
|
||||
def list_installed(self):
|
||||
return DpkgPkgsList(self.d, self.target_rootfs).list_pkgs()
|
||||
|
||||
"""
|
||||
Returns a dictionary with the package info.
|
||||
"""
|
||||
def package_info(self, pkg):
|
||||
"""
|
||||
Returns a dictionary with the package info.
|
||||
"""
|
||||
cmd = "%s show %s" % (self.apt_cache_cmd, pkg)
|
||||
pkg_info = super(DpkgPM, self).package_info(pkg, cmd)
|
||||
|
||||
@@ -1656,12 +1680,12 @@ class DpkgPM(OpkgDpkgPM):
|
||||
|
||||
return pkg_info
|
||||
|
||||
"""
|
||||
Returns the path to a tmpdir where resides the contents of a package.
|
||||
|
||||
Deleting the tmpdir is responsability of the caller.
|
||||
"""
|
||||
def extract(self, pkg):
|
||||
"""
|
||||
Returns the path to a tmpdir where resides the contents of a package.
|
||||
|
||||
Deleting the tmpdir is responsability of the caller.
|
||||
"""
|
||||
pkg_info = self.package_info(pkg)
|
||||
if not pkg_info:
|
||||
bb.fatal("Unable to get information for package '%s' while "
|
||||
@@ -1676,7 +1700,7 @@ def generate_index_files(d):
|
||||
classes = d.getVar('PACKAGE_CLASSES').replace("package_", "").split()
|
||||
|
||||
indexer_map = {
|
||||
"rpm": (RpmIndexer, d.getVar('DEPLOY_DIR_RPM')),
|
||||
"rpm": (RpmSubdirIndexer, d.getVar('DEPLOY_DIR_RPM')),
|
||||
"ipk": (OpkgIndexer, d.getVar('DEPLOY_DIR_IPK')),
|
||||
"deb": (DpkgIndexer, d.getVar('DEPLOY_DIR_DEB'))
|
||||
}
|
||||
@@ -1692,12 +1716,3 @@ def generate_index_files(d):
|
||||
|
||||
if result is not None:
|
||||
bb.fatal(result)
|
||||
|
||||
if __name__ == "__main__":
|
||||
"""
|
||||
We should be able to run this as a standalone script, from outside bitbake
|
||||
environment.
|
||||
"""
|
||||
"""
|
||||
TBD
|
||||
"""
|
||||
|
||||
@@ -36,6 +36,22 @@ def runcmd(args, dir = None):
|
||||
(exitstatus, output) = oe.utils.getstatusoutput(cmd)
|
||||
if exitstatus != 0:
|
||||
raise CmdError(cmd, exitstatus >> 8, output)
|
||||
if " fuzz " in output:
|
||||
bb.warn("""
|
||||
Some of the context lines in patches were ignored. This can lead to incorrectly applied patches.
|
||||
The context lines in the patches can be updated with devtool:
|
||||
|
||||
devtool modify <recipe>
|
||||
devtool finish --force-patch-refresh <recipe> <layer_path>
|
||||
|
||||
Then the updated patches and the source tree (in devtool's workspace)
|
||||
should be reviewed to make sure the patches apply in the correct place
|
||||
and don't introduce duplicate lines (which can, and does happen
|
||||
when some of the context is ignored). Further information:
|
||||
http://lists.openembedded.org/pipermail/openembedded-core/2018-March/148675.html
|
||||
https://bugzilla.yoctoproject.org/show_bug.cgi?id=10450
|
||||
Details:
|
||||
{}""".format(output))
|
||||
return output
|
||||
|
||||
finally:
|
||||
@@ -212,7 +228,7 @@ class PatchTree(PatchSet):
|
||||
self.patches.insert(i, patch)
|
||||
|
||||
def _applypatch(self, patch, force = False, reverse = False, run = True):
|
||||
shellcmd = ["cat", patch['file'], "|", "patch", "-p", patch['strippath']]
|
||||
shellcmd = ["cat", patch['file'], "|", "patch", "--no-backup-if-mismatch", "-p", patch['strippath']]
|
||||
if reverse:
|
||||
shellcmd.append('-R')
|
||||
|
||||
@@ -432,7 +448,7 @@ class GitApplyTree(PatchTree):
|
||||
import re
|
||||
tempdir = tempfile.mkdtemp(prefix='oepatch')
|
||||
try:
|
||||
shellcmd = ["git", "format-patch", startcommit, "-o", tempdir]
|
||||
shellcmd = ["git", "format-patch", "--no-signature", "--no-numbered", startcommit, "-o", tempdir]
|
||||
if paths:
|
||||
shellcmd.append('--')
|
||||
shellcmd.extend(paths)
|
||||
|
||||
@@ -15,8 +15,7 @@ import shutil
|
||||
|
||||
import oe.path
|
||||
from oeqa.buildperf import BuildPerfTestCase
|
||||
from oeqa.utils.commands import get_bb_vars
|
||||
|
||||
from oeqa.utils.commands import get_bb_var, get_bb_vars
|
||||
|
||||
class Test1P1(BuildPerfTestCase):
|
||||
build_target = 'core-image-sato'
|
||||
@@ -30,6 +29,7 @@ class Test1P1(BuildPerfTestCase):
|
||||
self.measure_cmd_resources(['bitbake', self.build_target], 'build',
|
||||
'bitbake ' + self.build_target, save_bs=True)
|
||||
self.measure_disk_usage(self.bb_vars['TMPDIR'], 'tmpdir', 'tmpdir')
|
||||
self.measure_disk_usage(get_bb_var("IMAGE_ROOTFS", self.build_target), 'rootfs', 'rootfs', True)
|
||||
|
||||
|
||||
class Test1P2(BuildPerfTestCase):
|
||||
|
||||
@@ -221,3 +221,40 @@ class Postinst(OESelftestTestCase):
|
||||
for filename in ("rootfs", "delayed-a", "delayed-b"):
|
||||
status, output = qemu.run_serial("test -f %s && echo found" % os.path.join(targettestdir, filename))
|
||||
self.assertEqual(output, "found", "%s was not present on boot" % filename)
|
||||
|
||||
|
||||
|
||||
def test_failing_postinst(self):
|
||||
"""
|
||||
Summary: The purpose of this test case is to verify that post-installation
|
||||
scripts that contain errors are properly reported.
|
||||
Expected: The scriptlet failure is properly reported.
|
||||
The file that is created after the error in the scriptlet is not present.
|
||||
Product: oe-core
|
||||
Author: Alexander Kanavin <alexander.kanavin@intel.com>
|
||||
"""
|
||||
|
||||
import oe.path
|
||||
|
||||
vars = get_bb_vars(("IMAGE_ROOTFS", "sysconfdir"), "core-image-minimal")
|
||||
rootfs = vars["IMAGE_ROOTFS"]
|
||||
self.assertIsNotNone(rootfs)
|
||||
sysconfdir = vars["sysconfdir"]
|
||||
self.assertIsNotNone(sysconfdir)
|
||||
# Need to use oe.path here as sysconfdir starts with /
|
||||
hosttestdir = oe.path.join(rootfs, sysconfdir, "postinst-test")
|
||||
|
||||
for classes in ("package_rpm", "package_deb", "package_ipk"):
|
||||
with self.subTest(package_class=classes):
|
||||
features = 'CORE_IMAGE_EXTRA_INSTALL = "postinst-rootfs-failing"\n'
|
||||
features += 'PACKAGE_CLASSES = "%s"\n' % classes
|
||||
self.write_config(features)
|
||||
bb_result = bitbake('core-image-minimal')
|
||||
self.assertGreaterEqual(bb_result.output.find("Intentionally failing postinstall scriptlets of ['postinst-rootfs-failing'] to defer them to first boot is deprecated."), 0,
|
||||
"Warning about a failed scriptlet not found in bitbake output: %s" %(bb_result.output))
|
||||
|
||||
self.assertTrue(os.path.isfile(os.path.join(hosttestdir, "rootfs-before-failure")),
|
||||
"rootfs-before-failure file was not created")
|
||||
self.assertFalse(os.path.isfile(os.path.join(hosttestdir, "rootfs-after-failure")),
|
||||
"rootfs-after-failure file was created")
|
||||
|
||||
|
||||
@@ -13,11 +13,11 @@ Ionut Radu <ionutx.radu@intel.com>
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
Index: pciutils-3.5.4/Makefile
|
||||
Index: pciutils-3.5.6/Makefile
|
||||
===================================================================
|
||||
--- pciutils-3.5.4.orig/Makefile
|
||||
+++ pciutils-3.5.4/Makefile
|
||||
@@ -96,7 +95,7 @@ example: example.o lib/$(PCILIB)
|
||||
--- pciutils-3.5.6.orig/Makefile
|
||||
+++ pciutils-3.5.6/Makefile
|
||||
@@ -96,7 +96,7 @@ example: example.o lib/$(PCILIB)
|
||||
example.o: example.c $(PCIINC)
|
||||
|
||||
%: %.o
|
||||
@@ -26,12 +26,12 @@ Index: pciutils-3.5.4/Makefile
|
||||
|
||||
%.8 %.7: %.man
|
||||
M=`echo $(DATE) | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <$< >$@ "s/@TODAY@/$$M/;s/@VERSION@/pciutils-$(VERSION)/;s#@IDSDIR@#$(IDSDIR)#"
|
||||
Index: pciutils-3.5.4/lib/configure
|
||||
Index: pciutils-3.5.6/lib/configure
|
||||
===================================================================
|
||||
--- pciutils-3.5.4.orig/lib/configure
|
||||
+++ pciutils-3.5.4/lib/configure
|
||||
@@ -14,6 +14,10 @@ echo_n() {
|
||||
fi
|
||||
--- pciutils-3.5.6.orig/lib/configure
|
||||
+++ pciutils-3.5.6/lib/configure
|
||||
@@ -9,6 +9,10 @@ echo_n() {
|
||||
printf '%s' "$*"
|
||||
}
|
||||
|
||||
+VERSION=$1
|
||||
@@ -41,7 +41,7 @@ Index: pciutils-3.5.4/lib/configure
|
||||
if [ -z "$VERSION" -o -z "$IDSDIR" ] ; then
|
||||
echo >&2 "Please run the configure script from the top-level Makefile"
|
||||
exit 1
|
||||
@@ -21,8 +25,8 @@ fi
|
||||
@@ -16,8 +20,8 @@ fi
|
||||
|
||||
echo_n "Configuring libpci for your system..."
|
||||
if [ -z "$HOST" ] ; then
|
||||
@@ -52,7 +52,7 @@ Index: pciutils-3.5.4/lib/configure
|
||||
realsys="$sys"
|
||||
if [ "$sys" = "AIX" -a -x /usr/bin/oslevel -a -x /usr/sbin/lsattr ]
|
||||
then
|
||||
@@ -30,7 +34,7 @@ if [ -z "$HOST" ] ; then
|
||||
@@ -25,7 +29,7 @@ if [ -z "$HOST" ] ; then
|
||||
proc=`/usr/sbin/lsdev -C -c processor -S available -F name | head -1`
|
||||
cpu=`/usr/sbin/lsattr -F value -l $proc -a type | sed 's/_.*//'`
|
||||
else
|
||||
@@ -61,7 +61,7 @@ Index: pciutils-3.5.4/lib/configure
|
||||
fi
|
||||
if [ "$sys" = "GNU/kFreeBSD" -o "$sys" = "DragonFly" ]
|
||||
then
|
||||
@@ -40,7 +44,7 @@ if [ -z "$HOST" ] ; then
|
||||
@@ -35,7 +39,7 @@ if [ -z "$HOST" ] ; then
|
||||
then
|
||||
sys=cygwin
|
||||
fi
|
||||
@@ -70,7 +70,7 @@ Index: pciutils-3.5.4/lib/configure
|
||||
fi
|
||||
[ -n "$RELEASE" ] && rel="${RELEASE}"
|
||||
# CAVEAT: tr on Solaris is a bit weird and the extra [] is otherwise harmless.
|
||||
@@ -49,6 +53,8 @@ cpu=`echo $host | sed 's/^\([^-]*\)-\([^
|
||||
@@ -44,6 +48,8 @@ cpu=`echo $host | sed 's/^\([^-]*\)-\([^
|
||||
sys=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
|
||||
echo " $host $rel $cpu $sys"
|
||||
|
||||
|
||||
@@ -12,20 +12,6 @@ RP
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Index: pcmciautils-018/Makefile
|
||||
===================================================================
|
||||
--- pcmciautils-018.orig/Makefile
|
||||
+++ pcmciautils-018/Makefile
|
||||
@@ -249,6 +249,9 @@ $(PCMCIA_SOCKET_STARTUP): $(LIBC) src/st
|
||||
yacc_config.o lex_config.o: %.o: %.c src/yacc_config.h
|
||||
$(CC) -c -MD -O -pipe $(CPPFLAGS) $<
|
||||
|
||||
+src/lex_config.o : src/lex_config.c src/yacc_config.h
|
||||
+ $(QUIET) $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||
+
|
||||
debugtools: ccdv $(CBDUMP) $(CISDUMP)
|
||||
|
||||
$(CBDUMP): $(LIBC) debug/cbdump.o
|
||||
Index: pcmciautils-018/Makefile
|
||||
===================================================================
|
||||
--- pcmciautils-018.orig/Makefile
|
||||
|
||||
@@ -5,15 +5,15 @@ Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
|
||||
|
||||
diff --git a/configs/MPC8315ERDB_defconfig b/configs/MPC8315ERDB_defconfig
|
||||
index 4e2b705..b02ab1f 100644
|
||||
--- a/configs/MPC8315ERDB_defconfig
|
||||
+++ b/configs/MPC8315ERDB_defconfig
|
||||
@@ -9,6 +9,7 @@ CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_I2C=y
|
||||
Index: git/configs/MPC8315ERDB_defconfig
|
||||
===================================================================
|
||||
--- git.orig/configs/MPC8315ERDB_defconfig
|
||||
+++ git/configs/MPC8315ERDB_defconfig
|
||||
@@ -12,6 +12,7 @@ CONFIG_CMD_PCI=y
|
||||
CONFIG_CMD_SATA=y
|
||||
CONFIG_CMD_USB=y
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
+CONFIG_CMD_DHCP=y
|
||||
CONFIG_CMD_MII=y
|
||||
CONFIG_CMD_PING=y
|
||||
CONFIG_CMD_EXT2=y
|
||||
CONFIG_CMD_DATE=y
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
diff --git a/initscript/debian/avahi-daemon.in b/initscript/debian/avahi-daemon.in
|
||||
index 30a2c2f..b5848a8 100755
|
||||
--- a/initscript/debian/avahi-daemon.in
|
||||
+++ b/initscript/debian/avahi-daemon.in
|
||||
@@ -1,2 +1,14 @@
|
||||
Index: avahi-0.7/initscript/debian/avahi-daemon.in
|
||||
===================================================================
|
||||
--- avahi-0.7.orig/initscript/debian/avahi-daemon.in
|
||||
+++ avahi-0.7/initscript/debian/avahi-daemon.in
|
||||
@@ -1,5 +1,17 @@
|
||||
#!/bin/sh
|
||||
-
|
||||
+### BEGIN INIT INFO
|
||||
@@ -20,11 +20,14 @@ index 30a2c2f..b5848a8 100755
|
||||
+# automatically
|
||||
+### END INIT INFO
|
||||
+#
|
||||
diff --git a/initscript/debian/avahi-dnsconfd.in b/initscript/debian/avahi-dnsconfd.in
|
||||
index ac34804..f95c340 100755
|
||||
--- a/initscript/debian/avahi-dnsconfd.in
|
||||
+++ b/initscript/debian/avahi-dnsconfd.in
|
||||
@@ -1,1 +1,14 @@
|
||||
# This file is part of avahi.
|
||||
#
|
||||
# avahi is free software; you can redistribute it and/or modify it
|
||||
Index: avahi-0.7/initscript/debian/avahi-dnsconfd.in
|
||||
===================================================================
|
||||
--- avahi-0.7.orig/initscript/debian/avahi-dnsconfd.in
|
||||
+++ avahi-0.7/initscript/debian/avahi-dnsconfd.in
|
||||
@@ -1,4 +1,17 @@
|
||||
#!/bin/sh
|
||||
+### BEGIN INIT INFO
|
||||
+# Provides: avahi-dnsconfd
|
||||
@@ -39,3 +42,6 @@ index ac34804..f95c340 100755
|
||||
+# automatically
|
||||
+### END INIT INFO
|
||||
+#
|
||||
|
||||
# This file is part of avahi.
|
||||
#
|
||||
|
||||
@@ -136,8 +136,6 @@ SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'bluet
|
||||
INITSCRIPT_PACKAGES = "${PN}"
|
||||
INITSCRIPT_NAME_${PN} = "bluetooth"
|
||||
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
do_compile_ptest() {
|
||||
oe_runmake buildtests
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ DEPENDS = "flex-native bison-native iptables elfutils"
|
||||
|
||||
inherit update-alternatives bash-completion pkgconfig
|
||||
|
||||
CLEANBROKEN = "1"
|
||||
|
||||
PACKAGECONFIG ??= "tipc"
|
||||
PACKAGECONFIG[tipc] = ",,libmnl,"
|
||||
|
||||
|
||||
@@ -9,19 +9,19 @@ Upstream-Status: Pending
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Signed-off-by: Shane Wang <shane.wang@intel.com>
|
||||
|
||||
Index: iproute2-4.11.0/configure
|
||||
Index: iproute2-4.14.1/configure
|
||||
===================================================================
|
||||
--- iproute2-4.11.0.orig/configure
|
||||
+++ iproute2-4.11.0/configure
|
||||
--- iproute2-4.14.1.orig/configure
|
||||
+++ iproute2-4.14.1/configure
|
||||
@@ -2,6 +2,7 @@
|
||||
# This is not an autoconf generated configure
|
||||
#
|
||||
INCLUDE=${1:-"$PWD/include"}
|
||||
+SYSROOT=$1
|
||||
|
||||
# Make a temp directory in build tree.
|
||||
TMPDIR=$(mktemp -d config.XXXXXX)
|
||||
@@ -192,7 +193,7 @@ check_ipt_lib_dir()
|
||||
# Output file which is input to Makefile
|
||||
CONFIG=config.mk
|
||||
@@ -195,7 +196,7 @@ check_ipt_lib_dir()
|
||||
return
|
||||
fi
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] also create old hash for compatibility
|
||||
|
||||
Upstream-Status: Backport [debian]
|
||||
|
||||
diff --git a/tools/c_rehash.in b/tools/c_rehash.in
|
||||
index b086ff9..b777d79 100644
|
||||
--- a/tools/c_rehash.in
|
||||
+++ b/tools/c_rehash.in
|
||||
Index: openssl-1.0.2n/tools/c_rehash.in
|
||||
===================================================================
|
||||
--- openssl-1.0.2n.orig/tools/c_rehash.in
|
||||
+++ openssl-1.0.2n/tools/c_rehash.in
|
||||
@@ -8,8 +8,6 @@ my $prefix;
|
||||
|
||||
my $openssl = $ENV{OPENSSL} || "openssl";
|
||||
@@ -48,7 +48,7 @@ index b086ff9..b777d79 100644
|
||||
$fname =~ s/'/'\\''/g;
|
||||
my ($hash, $fprint) = `"$openssl" x509 $x509hash -fingerprint -noout -in "$fname"`;
|
||||
chomp $hash;
|
||||
@@ -176,11 +174,21 @@ sub link_hash_cert {
|
||||
@@ -177,10 +175,20 @@ sub link_hash_cert {
|
||||
$hashlist{$hash} = $fprint;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
Upstream-Status: Backport [debian]
|
||||
|
||||
Index: openssl-1.0.2/Configure
|
||||
Index: openssl-1.0.2n/Configure
|
||||
===================================================================
|
||||
--- openssl-1.0.2.orig/Configure
|
||||
+++ openssl-1.0.2/Configure
|
||||
@@ -107,6 +107,10 @@ my $gcc_devteam_warn = "-Wall -pedantic
|
||||
|
||||
my $clang_disabled_warnings = "-Wno-language-extension-token -Wno-extended-offsetof -Wno-padded -Wno-shorten-64-to-32 -Wno-format-nonliteral -Wno-missing-noreturn -Wno-unused-parameter -Wno-sign-conversion -Wno-unreachable-code -Wno-conversion -Wno-documentation -Wno-missing-variable-declarations -Wno-cast-align -Wno-incompatible-pointer-types-discards-qualifiers -Wno-missing-variable-declarations -Wno-missing-field-initializers -Wno-unused-macros -Wno-disabled-macro-expansion -Wno-conditional-uninitialized -Wno-switch-enum";
|
||||
--- openssl-1.0.2n.orig/Configure
|
||||
+++ openssl-1.0.2n/Configure
|
||||
@@ -133,6 +133,10 @@ my $clang_devteam_warn = "-Wno-unused-pa
|
||||
# Warn that "make depend" should be run?
|
||||
my $warn_make_depend = 0;
|
||||
|
||||
+# There are no separate CFLAGS/CPPFLAGS/LDFLAGS, set everything in CFLAGS
|
||||
+my $debian_cflags = `dpkg-buildflags --get CFLAGS` . `dpkg-buildflags --get CPPFLAGS` . `dpkg-buildflags --get LDFLAGS` . "-Wa,--noexecstack -Wall";
|
||||
@@ -15,7 +15,7 @@ Index: openssl-1.0.2/Configure
|
||||
my $strict_warnings = 0;
|
||||
|
||||
my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
|
||||
@@ -343,6 +347,55 @@ my %table=(
|
||||
@@ -369,6 +373,55 @@ my %table=(
|
||||
"osf1-alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:alpha-osf1-shared:::.so",
|
||||
"tru64-alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:alpha-osf1-shared::-msym:.so",
|
||||
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
https://rt.openssl.org/Ticket/Display.html?id=3759&user=guest&pass=guest
|
||||
|
||||
From 6257d59b3a68d2feb9d64317a1c556dc3813ee61 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Frysinger <vapier@gentoo.org>
|
||||
Date: Sat, 21 Mar 2015 06:01:25 -0400
|
||||
Subject: [PATCH] crypto: use bigint in x86-64 perl
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
|
||||
|
||||
When building on x32 systems where the default type is 32bit, make sure
|
||||
we can transparently represent 64bit integers. Otherwise we end up with
|
||||
build errors like:
|
||||
/usr/bin/perl asm/ghash-x86_64.pl elf > ghash-x86_64.s
|
||||
Integer overflow in hexadecimal number at asm/../../perlasm/x86_64-xlate.pl line 201, <> line 890.
|
||||
...
|
||||
ghash-x86_64.s: Assembler messages:
|
||||
ghash-x86_64.s:890: Error: junk '.15473355479995e+19' after expression
|
||||
|
||||
We don't enable this globally as there are some cases where we'd get
|
||||
32bit values interpreted as unsigned when we need them as signed.
|
||||
|
||||
Reported-by: Bertrand Jacquin <bertrand@jacquin.bzh>
|
||||
URL: https://bugs.gentoo.org/542618
|
||||
---
|
||||
crypto/perlasm/x86_64-xlate.pl | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl
|
||||
index aae8288..0bf9774 100755
|
||||
--- a/crypto/perlasm/x86_64-xlate.pl
|
||||
+++ b/crypto/perlasm/x86_64-xlate.pl
|
||||
@@ -195,6 +195,10 @@ my %globals;
|
||||
sub out {
|
||||
my $self = shift;
|
||||
|
||||
+ # When building on x32 ABIs, the expanded hex value might be too
|
||||
+ # big to fit into 32bits. Enable transparent 64bit support here
|
||||
+ # so we can safely print it out.
|
||||
+ use bigint;
|
||||
if ($gas) {
|
||||
# Solaris /usr/ccs/bin/as can't handle multiplications
|
||||
# in $self->{value}
|
||||
--
|
||||
2.3.3
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
Allow passing custom c-flags to mkbuildinf.pl in order to pass
|
||||
flags without any build host references
|
||||
|
||||
Upstream-Status: Inappropriate [OE specific]
|
||||
|
||||
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
|
||||
|
||||
--- Makefile 2018-03-06 14:50:18.342138147 -0800
|
||||
+++ Makefile 2018-03-06 15:24:04.794239071 -0800
|
||||
--- a/crypto/Makefile
|
||||
+++ b/crypto/Makefile
|
||||
@@ -55,7 +55,7 @@
|
||||
all: shared
|
||||
|
||||
buildinf.h: ../Makefile
|
||||
- $(PERL) $(TOP)/util/mkbuildinf.pl "$(CC) $(CFLAGS)" "$(PLATFORM)" >buildinf.h
|
||||
+ $(PERL) $(TOP)/util/mkbuildinf.pl "$(CC_INFO)" "$(PLATFORM)" >buildinf.h
|
||||
|
||||
x86cpuid.s: x86cpuid.pl perlasm/x86asm.pl
|
||||
$(PERL) x86cpuid.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
|
||||
@@ -0,0 +1,21 @@
|
||||
If SOURCE_DATE_EPOCH is present in the environment, use it as build date.
|
||||
Also make sure to use UTC time.
|
||||
|
||||
Upstream-Status: Backport [ https://github.com/openssl/openssl/blob/master/util/mkbuildinf.pl ]
|
||||
|
||||
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
|
||||
|
||||
--- mkbuildinf.pl 2018-03-06 14:20:09.438048058 -0800
|
||||
+++ mkbuildinf.pl 2018-03-06 14:19:20.722045632 -0800
|
||||
--- a/util/mkbuildinf.pl
|
||||
+++ b/util/mkbuildinf.pl
|
||||
@@ -3,7 +3,8 @@
|
||||
my ($cflags, $platform) = @ARGV;
|
||||
|
||||
$cflags = "compiler: $cflags";
|
||||
-$date = localtime();
|
||||
+my $date = gmtime($ENV{'SOURCE_DATE_EPOCH'} || time()) . " UTC";
|
||||
+
|
||||
print <<"END_OUTPUT";
|
||||
#ifndef MK1MF_BUILD
|
||||
/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */
|
||||
@@ -157,11 +157,15 @@ do_configure () {
|
||||
if [ "x$useprefix" = "x" ]; then
|
||||
useprefix=/
|
||||
fi
|
||||
perl ./Configure ${EXTRA_OECONF} shared --prefix=$useprefix --openssldir=${libdir}/ssl --libdir=`basename ${libdir}` $target
|
||||
libdirleaf="$(echo ${libdir} | sed s:$useprefix::)"
|
||||
perl ./Configure ${EXTRA_OECONF} shared --prefix=$useprefix --openssldir=${libdir}/ssl --libdir=${libdirleaf} $target
|
||||
}
|
||||
|
||||
do_compile_prepend_class-target () {
|
||||
sed -i 's/\((OPENSSL=\)".*"/\1"openssl"/' Makefile
|
||||
oe_runmake depend
|
||||
cc_sanitized=`echo "${CC} ${CFLAG}" | sed -e 's,--sysroot=${STAGING_DIR_TARGET},,g' -e 's|${DEBUG_PREFIX_MAP}||g'`
|
||||
oe_runmake CC_INFO="${cc_sanitized}"
|
||||
}
|
||||
|
||||
do_compile () {
|
||||
|
||||
@@ -34,7 +34,6 @@ SRC_URI += "file://find.pl;subdir=openssl-${PV}/util/ \
|
||||
file://openssl-fix-des.pod-error.patch \
|
||||
file://Makefiles-ptest.patch \
|
||||
file://ptest-deps.patch \
|
||||
file://openssl-1.0.2a-x32-asm.patch \
|
||||
file://ptest_makefile_deps.patch \
|
||||
file://configure-musl-target.patch \
|
||||
file://parallel.patch \
|
||||
@@ -43,6 +42,11 @@ SRC_URI += "file://find.pl;subdir=openssl-${PV}/util/ \
|
||||
file://0001-Fix-build-with-clang-using-external-assembler.patch \
|
||||
file://0001-openssl-force-soft-link-to-avoid-rare-race.patch \
|
||||
"
|
||||
|
||||
SRC_URI_append_class-target = "\
|
||||
file://reproducible-cflags.patch \
|
||||
file://reproducible-mkbuildinf.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "13bdc1b1d1ff39b6fd42a255e74676a4"
|
||||
SRC_URI[sha256sum] = "370babb75f278c39e0c50e8c4e7493bc0f18db6867478341a832a982fd15a8fe"
|
||||
|
||||
|
||||
@@ -116,7 +116,8 @@ do_configure () {
|
||||
if [ "x$useprefix" = "x" ]; then
|
||||
useprefix=/
|
||||
fi
|
||||
perl ./Configure ${EXTRA_OECONF} --prefix=$useprefix --openssldir=${libdir}/ssl-1.1 --libdir=`basename ${libdir}` $target
|
||||
libdirleaf="$(echo ${libdir} | sed s:$useprefix::)"
|
||||
perl ./Configure ${EXTRA_OECONF} --prefix=$useprefix --openssldir=${libdir}/ssl-1.1 --libdir=${libdirleaf} $target
|
||||
}
|
||||
|
||||
#| engines/afalg/e_afalg.c: In function 'eventfd':
|
||||
|
||||
@@ -106,7 +106,7 @@ python () {
|
||||
}
|
||||
|
||||
do_prepare_config () {
|
||||
if [ "$BUILD_REPRODUCIBLE_BINARIES" = "1" ]; then
|
||||
if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
|
||||
export KCONFIG_NOTIMESTAMP=1
|
||||
fi
|
||||
sed -e '/CONFIG_STATIC/d' \
|
||||
@@ -146,7 +146,7 @@ do_configure () {
|
||||
|
||||
do_compile() {
|
||||
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
|
||||
if [ "$BUILD_REPRODUCIBLE_BINARIES" = "1" ]; then
|
||||
if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
|
||||
export KCONFIG_NOTIMESTAMP=1
|
||||
fi
|
||||
if [ "${BUSYBOX_SPLIT_SUID}" = "1" -a x`grep "CONFIG_FEATURE_INDIVIDUAL=y" .config` = x ]; then
|
||||
|
||||
@@ -71,7 +71,7 @@ do_install_ptest() {
|
||||
cp -a ${B}/dbus/.libs/*.so* ${D}${PTEST_PATH}/test/.libs
|
||||
|
||||
# Remove build host references...
|
||||
find "${D}${PTEST_PATH}/test/data" \( -name *.service -o -name *.conf \) -type f -exec \
|
||||
find "${D}${PTEST_PATH}/test/data" \( -name *.service -o -name *.conf -o -name "*.aaprofile" \) -type f -exec \
|
||||
sed -i \
|
||||
-e 's:${B}:${PTEST_PATH}:g' \
|
||||
{} +
|
||||
|
||||
@@ -19,7 +19,7 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:"
|
||||
|
||||
SRCBRANCH ?= "release/${PV}/master"
|
||||
GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git"
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.(?!90)\d+)*)"
|
||||
|
||||
SRCREV_glibc ?= "23158b08a0908f381459f273a984c6fd328363cb"
|
||||
SRCREV_localedef ?= "de5bdbd5e76b5403a4151b9b9f958b6cca36b3e7"
|
||||
|
||||
@@ -12,7 +12,7 @@ SRCREV ?= "23158b08a0908f381459f273a984c6fd328363cb"
|
||||
SRCBRANCH ?= "release/${PV}/master"
|
||||
|
||||
GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git"
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.(?!90)\d+)*)"
|
||||
|
||||
SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
|
||||
file://etc/ld.so.conf \
|
||||
|
||||
@@ -201,7 +201,10 @@ do_install() {
|
||||
ln -sf xterm-color ${D}${sysconfdir}/terminfo/x/xterm
|
||||
fi
|
||||
|
||||
rm -f ${D}${libdir}/terminfo
|
||||
# When changing ${libdir} to e.g. /usr/lib/myawesomelib/ ncurses
|
||||
# still installs '/usr/lib/terminfo', so try to rm both
|
||||
# the proper path and a slightly hardcoded one
|
||||
rm -f ${D}${libdir}/terminfo ${D}${prefix}/lib/terminfo
|
||||
|
||||
# create linker scripts for libcurses.so and libncurses to
|
||||
# link against -ltinfo when needed. Some builds might break
|
||||
@@ -227,7 +230,7 @@ do_install() {
|
||||
if [ ! -d "${D}${base_libdir}" ]; then
|
||||
# Setting base_libdir to libdir as is done in the -native
|
||||
# case will skip this code
|
||||
mkdir ${D}${base_libdir}
|
||||
mkdir -p ${D}${base_libdir}
|
||||
mv ${D}${libdir}/libncurses.so.* ${D}${base_libdir}
|
||||
! ${ENABLE_WIDEC} || \
|
||||
mv ${D}${libdir}/libncursesw.so.* ${D}${base_libdir}
|
||||
|
||||
@@ -33,6 +33,7 @@ SANITIZERS_mipsarch = ""
|
||||
SANITIZERS_nios2 = ""
|
||||
SANITIZERS_powerpc64 = ""
|
||||
SANITIZERS_sparc = ""
|
||||
SANITIZERS_riscv64 = ""
|
||||
SANITIZERS_libc-musl = ""
|
||||
|
||||
RRECOMMENDS_packagegroup-core-sdk = "\
|
||||
|
||||
@@ -40,9 +40,11 @@ SYSTEMTAP_aarch64 = ""
|
||||
# lttng-ust uses sched_getcpu() which is not there on for some platforms.
|
||||
LTTNGUST = "lttng-ust"
|
||||
LTTNGUST_libc-musl = ""
|
||||
LTTNGUST_riscv64 = ""
|
||||
|
||||
LTTNGTOOLS = "lttng-tools"
|
||||
LTTNGTOOLS_libc-musl = ""
|
||||
LTTNGTOOLS_riscv64 = ""
|
||||
|
||||
LTTNGMODULES = "lttng-modules"
|
||||
|
||||
|
||||
@@ -3,20 +3,25 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:"
|
||||
|
||||
DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native"
|
||||
|
||||
SRC_URI += "file://0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch"
|
||||
SRC_URI += "file://0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
|
||||
file://0027-remove-nobody-user-group-checking.patch \
|
||||
file://0001-Also-check-i386-i586-and-i686-for-ia32.patch \
|
||||
file://0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch \
|
||||
"
|
||||
|
||||
inherit autotools pkgconfig gettext
|
||||
inherit meson pkgconfig gettext
|
||||
inherit deploy
|
||||
|
||||
EFI_CC ?= "${CC}"
|
||||
# Man pages are packaged through the main systemd recipe
|
||||
EXTRA_OECONF = " --enable-gnuefi \
|
||||
--with-efi-includedir=${STAGING_INCDIR} \
|
||||
--with-efi-ldsdir=${STAGING_LIBDIR} \
|
||||
--with-efi-libdir=${STAGING_LIBDIR} \
|
||||
--disable-manpages \
|
||||
EFI_CC='${EFI_CC}' \
|
||||
"
|
||||
EXTRA_OEMESON += "-Defi=true \
|
||||
-Dgnu-efi=true \
|
||||
-Defi-includedir=${STAGING_INCDIR}/efi \
|
||||
-Defi-ldsdir=${STAGING_LIBDIR} \
|
||||
-Defi-libdir=${STAGING_LIBDIR} \
|
||||
-Dman=false \
|
||||
-Defi-cc='${EFI_CC}' \
|
||||
-Defi-ld='${LD}' \
|
||||
"
|
||||
|
||||
# install to the image as boot*.efi if its the EFI_PROVIDER,
|
||||
# otherwise install as the full name.
|
||||
@@ -49,17 +54,17 @@ do_compile() {
|
||||
SYSTEMD_BOOT_EFI_ARCH="x64"
|
||||
fi
|
||||
|
||||
oe_runmake ${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE}
|
||||
ninja src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE}
|
||||
}
|
||||
|
||||
do_install() {
|
||||
install -d ${D}/boot
|
||||
install -d ${D}/boot/EFI
|
||||
install -d ${D}/boot/EFI/BOOT
|
||||
install ${B}/systemd-boot*.efi ${D}/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE}
|
||||
install ${B}/src/boot/efi/systemd-boot*.efi ${D}/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE}
|
||||
}
|
||||
|
||||
do_deploy () {
|
||||
install ${B}/systemd-boot*.efi ${DEPLOYDIR}
|
||||
install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR}
|
||||
}
|
||||
addtask deploy before do_build after do_compile
|
||||
@@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
|
||||
file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
|
||||
|
||||
SRCREV = "c1edab7ad1e7ccc9be693bedfd464cd1cbffb395"
|
||||
SRCREV = "46659f7deb962f55c728e70597e37c2a3ab6326d"
|
||||
|
||||
SRC_URI = "git://github.com/systemd/systemd.git;protocol=git"
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From 3e8c19bb1bbc4493c591f75c00c1fefe3b1c8a69 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Tue, 27 Feb 2018 20:42:41 -0800
|
||||
Subject: [PATCH] Also check i386, i586 and i686 for ia32
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 28cb8b60e..489531a43 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -1217,7 +1217,7 @@ conf.set10('SYSTEMD_SLOW_TESTS_DEFAULT', slow_tests)
|
||||
if get_option('efi')
|
||||
efi_arch = host_machine.cpu_family()
|
||||
|
||||
- if efi_arch == 'x86'
|
||||
+ if efi_arch == 'x86' or efi_arch == 'i386' or efi_arch == 'i586' or efi_arch == 'i686'
|
||||
EFI_MACHINE_TYPE_NAME = 'ia32'
|
||||
gnu_efi_arch = 'ia32'
|
||||
elif efi_arch == 'x86_64'
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
From 527413ec243564a89ffaad6368d446de44415970 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Tue, 27 Feb 2018 21:42:23 -0800
|
||||
Subject: [PATCH] Fix to run efi_cc and efi_ld correctly when cross-compiling
|
||||
|
||||
When cross-compiling, efi_cc and efi_ld may take the form of
|
||||
'xxx-gcc --sysroot=xxx', and this would cause run_command and
|
||||
the alike fail.
|
||||
|
||||
Fix to split them to make commands run correctly.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
src/boot/efi/meson.build | 16 +++++++++++++---
|
||||
1 file changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build
|
||||
index 992a3ba4c..9f9ec4911 100644
|
||||
--- a/src/boot/efi/meson.build
|
||||
+++ b/src/boot/efi/meson.build
|
||||
@@ -157,7 +157,7 @@ if have_gnu_efi
|
||||
o_file = custom_target(file + '.o',
|
||||
input : file,
|
||||
output : file + '.o',
|
||||
- command : [efi_cc, '-c', '@INPUT@', '-o', '@OUTPUT@']
|
||||
+ command : efi_cc.split() + ['-c', '@INPUT@', '-o', '@OUTPUT@']
|
||||
+ compile_args,
|
||||
depend_files : efi_headers)
|
||||
if (common_sources + systemd_boot_sources).contains(file)
|
||||
@@ -168,7 +168,17 @@ if have_gnu_efi
|
||||
endif
|
||||
endforeach
|
||||
|
||||
- libgcc_file_name = run_command(efi_cc, '-print-libgcc-file-name').stdout().strip()
|
||||
+ find_libgcc_cmd_all = efi_cc + ' -print-libgcc-file-name'
|
||||
+ find_libgcc_cmd = find_libgcc_cmd_all.split()[0]
|
||||
+ find_libgcc_args = []
|
||||
+ cmd_args_all = find_libgcc_cmd_all.split()
|
||||
+ foreach arg : cmd_args_all
|
||||
+ if arg != find_libgcc_cmd
|
||||
+ find_libgcc_args += arg
|
||||
+ endif
|
||||
+ endforeach
|
||||
+
|
||||
+ libgcc_file_name = run_command(find_libgcc_cmd, find_libgcc_args).stdout().strip()
|
||||
systemd_boot_efi_name = 'systemd-boot@0@.efi'.format(EFI_MACHINE_TYPE_NAME)
|
||||
stub_efi_name = 'linux@0@.efi.stub'.format(EFI_MACHINE_TYPE_NAME)
|
||||
no_undefined_symbols = find_program('no-undefined-symbols.sh')
|
||||
@@ -179,7 +189,7 @@ if have_gnu_efi
|
||||
tuple[0],
|
||||
input : tuple[2],
|
||||
output : tuple[0],
|
||||
- command : [efi_ld, '-o', '@OUTPUT@'] +
|
||||
+ command : efi_ld.split() + ['-o', '@OUTPUT@'] +
|
||||
efi_ldflags + tuple[2] +
|
||||
['-lefi', '-lgnuefi', libgcc_file_name])
|
||||
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From e361f6b4aefae57efff7e457df8db4d1067bec23 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Wed, 28 Feb 2018 21:50:23 -0800
|
||||
Subject: [PATCH] Remove fstack-protector flags to workaround musl build
|
||||
|
||||
Remove fstack-protector and fstack-protector-strong flags to fix
|
||||
the following build failure for qemux86 and qemuppc with musl.
|
||||
|
||||
undefined reference to `__stack_chk_fail_local'
|
||||
|
||||
Upstream-Status: Inappropriate [OE Specific]
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
meson.build | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 7610ab12b..591b9cbab 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -329,8 +329,6 @@ foreach arg : ['-Wextra',
|
||||
'-fdiagnostics-show-option',
|
||||
'-fno-strict-aliasing',
|
||||
'-fvisibility=hidden',
|
||||
- '-fstack-protector',
|
||||
- '-fstack-protector-strong',
|
||||
'--param=ssp-buffer-size=4',
|
||||
]
|
||||
if cc.has_argument(arg)
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
From 5765cda4f7243e240b1e8723dc536fb20503d544 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 9 Nov 2016 19:28:32 -0800
|
||||
Subject: [PATCH 04/19] Use getenv when secure versions are not available
|
||||
From b1192a6e171413291d9d64fafc04773c6bbc9cab Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Fri, 23 Feb 2018 10:04:48 +0800
|
||||
Subject: [PATCH 01/31] Use getenv when secure versions are not available
|
||||
|
||||
musl doesnt implement secure version, so we default
|
||||
to it if configure does not detect a secure imeplementation
|
||||
to it if configure does not detect a secure implementation
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Upstream-Status: Denied
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
src/basic/missing.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/basic/missing.h b/src/basic/missing.h
|
||||
index 4a3fd9c..4936873 100644
|
||||
index 1280e6c41..39c1fb700 100644
|
||||
--- a/src/basic/missing.h
|
||||
+++ b/src/basic/missing.h
|
||||
@@ -529,7 +529,7 @@ struct btrfs_ioctl_quota_ctl_args {
|
||||
# ifdef HAVE___SECURE_GETENV
|
||||
@@ -605,7 +605,7 @@ struct btrfs_ioctl_quota_ctl_args {
|
||||
# if HAVE___SECURE_GETENV
|
||||
# define secure_getenv __secure_getenv
|
||||
# else
|
||||
-# error "neither secure_getenv nor __secure_getenv are available"
|
||||
@@ -26,5 +29,5 @@ index 4a3fd9c..4936873 100644
|
||||
#endif
|
||||
|
||||
--
|
||||
2.10.2
|
||||
2.13.0
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
From 28dd66ecfce743b1ea9046c7bb501e0fcaeff724 Mon Sep 17 00:00:00 2001
|
||||
From: Luca Bruno <luca.bruno@coreos.com>
|
||||
Date: Sun, 6 Aug 2017 13:24:24 +0000
|
||||
Subject: [PATCH] core: evaluate presets after generators have run (#6526)
|
||||
|
||||
This commit moves the first-boot system preset-settings evaluation out
|
||||
of main and into the manager startup logic itself. Notably, it reverses
|
||||
the order between generators and presets evaluation, so that any changes
|
||||
performed by first-boot generators are taken into the account by presets
|
||||
logic.
|
||||
|
||||
After this change, units created by a generator can be enabled as part
|
||||
of a preset.
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
|
||||
---
|
||||
src/core/main.c | 12 ++----------
|
||||
src/core/manager.c | 8 ++++++++
|
||||
2 files changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/core/main.c b/src/core/main.c
|
||||
index dfedc3d..11ac9cf 100644
|
||||
--- a/src/core/main.c
|
||||
+++ b/src/core/main.c
|
||||
@@ -1809,18 +1809,10 @@ int main(int argc, char *argv[]) {
|
||||
if (prctl(PR_SET_CHILD_SUBREAPER, 1) < 0)
|
||||
log_warning_errno(errno, "Failed to make us a subreaper: %m");
|
||||
|
||||
- if (arg_system) {
|
||||
+ if (arg_system)
|
||||
+ /* Bump up RLIMIT_NOFILE for systemd itself */
|
||||
(void) bump_rlimit_nofile(&saved_rlimit_nofile);
|
||||
|
||||
- if (empty_etc) {
|
||||
- r = unit_file_preset_all(UNIT_FILE_SYSTEM, 0, NULL, UNIT_FILE_PRESET_ENABLE_ONLY, NULL, 0);
|
||||
- if (r < 0)
|
||||
- log_full_errno(r == -EEXIST ? LOG_NOTICE : LOG_WARNING, r, "Failed to populate /etc with preset unit settings, ignoring: %m");
|
||||
- else
|
||||
- log_info("Populated /etc with preset unit settings.");
|
||||
- }
|
||||
- }
|
||||
-
|
||||
r = manager_new(arg_system ? UNIT_FILE_SYSTEM : UNIT_FILE_USER, arg_action == ACTION_TEST, &m);
|
||||
if (r < 0) {
|
||||
log_emergency_errno(r, "Failed to allocate manager object: %m");
|
||||
diff --git a/src/core/manager.c b/src/core/manager.c
|
||||
index 1aadb70..fb5e2b5 100644
|
||||
--- a/src/core/manager.c
|
||||
+++ b/src/core/manager.c
|
||||
@@ -1328,6 +1328,14 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
+ if (m->first_boot && m->unit_file_scope == UNIT_FILE_SYSTEM) {
|
||||
+ q = unit_file_preset_all(UNIT_FILE_SYSTEM, 0, NULL, UNIT_FILE_PRESET_ENABLE_ONLY, NULL, 0);
|
||||
+ if (q < 0)
|
||||
+ log_full_errno(q == -EEXIST ? LOG_NOTICE : LOG_WARNING, q, "Failed to populate /etc with preset unit settings, ignoring: %m");
|
||||
+ else
|
||||
+ log_info("Populated /etc with preset unit settings.");
|
||||
+ }
|
||||
+
|
||||
lookup_paths_reduce(&m->lookup_paths);
|
||||
manager_build_unit_path_cache(m);
|
||||
|
||||
--
|
||||
2.10.2
|
||||
|
||||
@@ -1,163 +0,0 @@
|
||||
From dea374e898a749a0474b72b2015cca9009b1432b Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 13 Sep 2017 10:31:40 +0200
|
||||
Subject: [PATCH] main: skip many initialization steps when running in --test
|
||||
mode
|
||||
|
||||
Most importantly, don't collect open socket activation fds when in
|
||||
--test mode. This specifically created a problem because we invoke
|
||||
pager_open() beforehand (which these days makes copies of the original
|
||||
stdout/stderr in order to be able to restore them when the pager goes
|
||||
away) and we might mistakenly the fd copies it creates as socket
|
||||
activation fds.
|
||||
|
||||
Fixes: #6383
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
|
||||
---
|
||||
src/core/main.c | 108 +++++++++++++++++++++++++++++---------------------------
|
||||
1 file changed, 56 insertions(+), 52 deletions(-)
|
||||
|
||||
diff --git a/src/core/main.c b/src/core/main.c
|
||||
index 11ac9cf..d1a53a5 100644
|
||||
--- a/src/core/main.c
|
||||
+++ b/src/core/main.c
|
||||
@@ -1679,20 +1679,22 @@ int main(int argc, char *argv[]) {
|
||||
log_close();
|
||||
|
||||
/* Remember open file descriptors for later deserialization */
|
||||
- r = fdset_new_fill(&fds);
|
||||
- if (r < 0) {
|
||||
- log_emergency_errno(r, "Failed to allocate fd set: %m");
|
||||
- error_message = "Failed to allocate fd set";
|
||||
- goto finish;
|
||||
- } else
|
||||
- fdset_cloexec(fds, true);
|
||||
+ if (arg_action == ACTION_RUN) {
|
||||
+ r = fdset_new_fill(&fds);
|
||||
+ if (r < 0) {
|
||||
+ log_emergency_errno(r, "Failed to allocate fd set: %m");
|
||||
+ error_message = "Failed to allocate fd set";
|
||||
+ goto finish;
|
||||
+ } else
|
||||
+ fdset_cloexec(fds, true);
|
||||
|
||||
- if (arg_serialization)
|
||||
- assert_se(fdset_remove(fds, fileno(arg_serialization)) >= 0);
|
||||
+ if (arg_serialization)
|
||||
+ assert_se(fdset_remove(fds, fileno(arg_serialization)) >= 0);
|
||||
|
||||
- if (arg_system)
|
||||
- /* Become a session leader if we aren't one yet. */
|
||||
- setsid();
|
||||
+ if (arg_system)
|
||||
+ /* Become a session leader if we aren't one yet. */
|
||||
+ setsid();
|
||||
+ }
|
||||
|
||||
/* Move out of the way, so that we won't block unmounts */
|
||||
assert_se(chdir("/") == 0);
|
||||
@@ -1762,56 +1764,58 @@ int main(int argc, char *argv[]) {
|
||||
arg_action == ACTION_TEST ? " test" : "", getuid(), t);
|
||||
}
|
||||
|
||||
- if (arg_system && !skip_setup) {
|
||||
- if (arg_show_status > 0)
|
||||
- status_welcome();
|
||||
+ if (arg_action == ACTION_RUN) {
|
||||
+ if (arg_system && !skip_setup) {
|
||||
+ if (arg_show_status > 0)
|
||||
+ status_welcome();
|
||||
|
||||
- hostname_setup();
|
||||
- machine_id_setup(NULL, arg_machine_id, NULL);
|
||||
- loopback_setup();
|
||||
- bump_unix_max_dgram_qlen();
|
||||
+ hostname_setup();
|
||||
+ machine_id_setup(NULL, arg_machine_id, NULL);
|
||||
+ loopback_setup();
|
||||
+ bump_unix_max_dgram_qlen();
|
||||
|
||||
- test_usr();
|
||||
- }
|
||||
+ test_usr();
|
||||
+ }
|
||||
|
||||
- if (arg_system && arg_runtime_watchdog > 0 && arg_runtime_watchdog != USEC_INFINITY)
|
||||
- watchdog_set_timeout(&arg_runtime_watchdog);
|
||||
+ if (arg_system && arg_runtime_watchdog > 0 && arg_runtime_watchdog != USEC_INFINITY)
|
||||
+ watchdog_set_timeout(&arg_runtime_watchdog);
|
||||
|
||||
- if (arg_timer_slack_nsec != NSEC_INFINITY)
|
||||
- if (prctl(PR_SET_TIMERSLACK, arg_timer_slack_nsec) < 0)
|
||||
- log_error_errno(errno, "Failed to adjust timer slack: %m");
|
||||
+ if (arg_timer_slack_nsec != NSEC_INFINITY)
|
||||
+ if (prctl(PR_SET_TIMERSLACK, arg_timer_slack_nsec) < 0)
|
||||
+ log_error_errno(errno, "Failed to adjust timer slack: %m");
|
||||
|
||||
- if (arg_system && !cap_test_all(arg_capability_bounding_set)) {
|
||||
- r = capability_bounding_set_drop_usermode(arg_capability_bounding_set);
|
||||
- if (r < 0) {
|
||||
- log_emergency_errno(r, "Failed to drop capability bounding set of usermode helpers: %m");
|
||||
- error_message = "Failed to drop capability bounding set of usermode helpers";
|
||||
- goto finish;
|
||||
- }
|
||||
- r = capability_bounding_set_drop(arg_capability_bounding_set, true);
|
||||
- if (r < 0) {
|
||||
- log_emergency_errno(r, "Failed to drop capability bounding set: %m");
|
||||
- error_message = "Failed to drop capability bounding set";
|
||||
- goto finish;
|
||||
+ if (arg_system && !cap_test_all(arg_capability_bounding_set)) {
|
||||
+ r = capability_bounding_set_drop_usermode(arg_capability_bounding_set);
|
||||
+ if (r < 0) {
|
||||
+ log_emergency_errno(r, "Failed to drop capability bounding set of usermode helpers: %m");
|
||||
+ error_message = "Failed to drop capability bounding set of usermode helpers";
|
||||
+ goto finish;
|
||||
+ }
|
||||
+ r = capability_bounding_set_drop(arg_capability_bounding_set, true);
|
||||
+ if (r < 0) {
|
||||
+ log_emergency_errno(r, "Failed to drop capability bounding set: %m");
|
||||
+ error_message = "Failed to drop capability bounding set";
|
||||
+ goto finish;
|
||||
+ }
|
||||
}
|
||||
- }
|
||||
|
||||
- if (arg_syscall_archs) {
|
||||
- r = enforce_syscall_archs(arg_syscall_archs);
|
||||
- if (r < 0) {
|
||||
- error_message = "Failed to set syscall architectures";
|
||||
- goto finish;
|
||||
+ if (arg_syscall_archs) {
|
||||
+ r = enforce_syscall_archs(arg_syscall_archs);
|
||||
+ if (r < 0) {
|
||||
+ error_message = "Failed to set syscall architectures";
|
||||
+ goto finish;
|
||||
+ }
|
||||
}
|
||||
- }
|
||||
|
||||
- if (!arg_system)
|
||||
- /* Become reaper of our children */
|
||||
- if (prctl(PR_SET_CHILD_SUBREAPER, 1) < 0)
|
||||
- log_warning_errno(errno, "Failed to make us a subreaper: %m");
|
||||
+ if (!arg_system)
|
||||
+ /* Become reaper of our children */
|
||||
+ if (prctl(PR_SET_CHILD_SUBREAPER, 1) < 0)
|
||||
+ log_warning_errno(errno, "Failed to make us a subreaper: %m");
|
||||
|
||||
- if (arg_system)
|
||||
- /* Bump up RLIMIT_NOFILE for systemd itself */
|
||||
- (void) bump_rlimit_nofile(&saved_rlimit_nofile);
|
||||
+ if (arg_system)
|
||||
+ /* Bump up RLIMIT_NOFILE for systemd itself */
|
||||
+ (void) bump_rlimit_nofile(&saved_rlimit_nofile);
|
||||
+ }
|
||||
|
||||
r = manager_new(arg_system ? UNIT_FILE_SYSTEM : UNIT_FILE_USER, arg_action == ACTION_TEST, &m);
|
||||
if (r < 0) {
|
||||
--
|
||||
2.10.2
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
From 2207e1ffe4f7e2dcc5e745dadb48738aa1048d63 Mon Sep 17 00:00:00 2001
|
||||
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||
Date: Sun, 26 Nov 2017 02:17:06 +0900
|
||||
Subject: [PATCH 1/3] meson: update header file to detect memfd_create()
|
||||
|
||||
---
|
||||
Upstream-Status: Backport
|
||||
|
||||
meson.build | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 20b27c860..550dd4ad8 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -414,7 +414,8 @@ foreach ident : ['secure_getenv', '__secure_getenv']
|
||||
endforeach
|
||||
|
||||
foreach ident : [
|
||||
- ['memfd_create', '''#include <sys/memfd.h>'''],
|
||||
+ ['memfd_create', '''#define _GNU_SOURCE
|
||||
+ #include <sys/mman.h>'''],
|
||||
['gettid', '''#include <sys/types.h>'''],
|
||||
['pivot_root', '''#include <stdlib.h>'''], # no known header declares pivot_root
|
||||
['name_to_handle_at', '''#define _GNU_SOURCE
|
||||
--
|
||||
2.16.1
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
From c93eb6cdec03f5e243e59e95dc49273fcb90e7c1 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Fri, 23 Feb 2018 10:23:40 +0800
|
||||
Subject: [PATCH 02/31] binfmt: Don't install dependency links at install time
|
||||
for the binfmt services
|
||||
|
||||
use [Install] blocks so that they get created when the service is enabled
|
||||
like a traditional service.
|
||||
|
||||
The [Install] blocks were rejected upstream as they don't have a way to
|
||||
"enable" it on install without static symlinks which can't be disabled,
|
||||
only masked. We however can do that in a postinst.
|
||||
|
||||
Upstream-Status: Denied
|
||||
|
||||
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
units/meson.build | 6 ++----
|
||||
units/proc-sys-fs-binfmt_misc.automount | 3 +++
|
||||
units/systemd-binfmt.service.in | 4 ++++
|
||||
3 files changed, 9 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/units/meson.build b/units/meson.build
|
||||
index 814ee7885..49ace0d0f 100644
|
||||
--- a/units/meson.build
|
||||
+++ b/units/meson.build
|
||||
@@ -60,8 +60,7 @@ units = [
|
||||
['poweroff.target', '',
|
||||
'runlevel0.target'],
|
||||
['printer.target', ''],
|
||||
- ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT',
|
||||
- 'sysinit.target.wants/'],
|
||||
+ ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT'],
|
||||
['proc-sys-fs-binfmt_misc.mount', 'ENABLE_BINFMT'],
|
||||
['reboot.target', '',
|
||||
'runlevel6.target ctrl-alt-del.target'],
|
||||
@@ -144,8 +143,7 @@ in_units = [
|
||||
['systemd-ask-password-console.service', ''],
|
||||
['systemd-ask-password-wall.service', ''],
|
||||
['systemd-backlight@.service', 'ENABLE_BACKLIGHT'],
|
||||
- ['systemd-binfmt.service', 'ENABLE_BINFMT',
|
||||
- 'sysinit.target.wants/'],
|
||||
+ ['systemd-binfmt.service', 'ENABLE_BINFMT'],
|
||||
['systemd-coredump@.service', 'ENABLE_COREDUMP'],
|
||||
['systemd-exit.service', ''],
|
||||
['systemd-firstboot.service', 'ENABLE_FIRSTBOOT',
|
||||
diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
|
||||
index 30a6bc991..4231f3b70 100644
|
||||
--- a/units/proc-sys-fs-binfmt_misc.automount
|
||||
+++ b/units/proc-sys-fs-binfmt_misc.automount
|
||||
@@ -18,3 +18,6 @@ ConditionPathIsReadWrite=/proc/sys/
|
||||
|
||||
[Automount]
|
||||
Where=/proc/sys/fs/binfmt_misc
|
||||
+
|
||||
+[Install]
|
||||
+WantedBy=sysinit.target
|
||||
diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
|
||||
index df9396d89..0687f4648 100644
|
||||
--- a/units/systemd-binfmt.service.in
|
||||
+++ b/units/systemd-binfmt.service.in
|
||||
@@ -13,6 +13,7 @@ Documentation=man:systemd-binfmt.service(8) man:binfmt.d(5)
|
||||
Documentation=https://www.kernel.org/doc/Documentation/binfmt_misc.txt
|
||||
DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
+Wants=proc-sys-fs-binfmt_misc.automount
|
||||
After=proc-sys-fs-binfmt_misc.automount
|
||||
Before=sysinit.target shutdown.target
|
||||
ConditionPathIsReadWrite=/proc/sys/
|
||||
@@ -27,3 +28,6 @@ Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=@rootlibexecdir@/systemd-binfmt
|
||||
TimeoutSec=90s
|
||||
+
|
||||
+[Install]
|
||||
+WantedBy=sysinit.target
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From 025408c87869962f511de044dd41a1f4b1d80165 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 27 Jan 2018 11:53:38 -0800
|
||||
Subject: [PATCH 2/3] configure.ac: Check if memfd_create is already defined
|
||||
|
||||
Upstream-Status: Inappropriate [upstream systemd uses meson]
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 3674190fb..c7a184d72 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -340,6 +340,7 @@ AC_CHECK_DECLS([
|
||||
[], [], [[
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
+#include <sys/mman.h>
|
||||
#include <sys/mount.h>
|
||||
#include <fcntl.h>
|
||||
#include <sched.h>
|
||||
--
|
||||
2.16.1
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
From 585abd891a56409915314304101cac26b42c076b Mon Sep 17 00:00:00 2001
|
||||
From: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Date: Mon, 23 Oct 2017 10:45:46 -0700
|
||||
Subject: [PATCH 02/12] src/basic/missing.h: check for missing strndupa
|
||||
|
||||
include missing.h for definition of strndupa
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
configure.ac | 1 +
|
||||
src/basic/missing.h | 11 +++++++++++
|
||||
src/basic/mkdir.c | 1 +
|
||||
src/basic/parse-util.c | 1 +
|
||||
src/shared/pager.c | 1 +
|
||||
src/shared/uid-range.c | 1 +
|
||||
6 files changed, 16 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index efcdc6c16..cd035a971 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -329,6 +329,7 @@ AC_CHECK_DECLS([
|
||||
pivot_root,
|
||||
name_to_handle_at,
|
||||
setns,
|
||||
+ strndupa,
|
||||
renameat2,
|
||||
kcmp,
|
||||
keyctl,
|
||||
diff --git a/src/basic/missing.h b/src/basic/missing.h
|
||||
index 04912bf52..8009888ad 100644
|
||||
--- a/src/basic/missing.h
|
||||
+++ b/src/basic/missing.h
|
||||
@@ -1104,6 +1104,17 @@ typedef int32_t key_serial_t;
|
||||
#define KEYCTL_DESCRIBE 6
|
||||
#endif
|
||||
|
||||
+#if !HAVE_DECL_STRNDUPA
|
||||
+#define strndupa(s, n) \
|
||||
+ ({ \
|
||||
+ const char *__old = (s); \
|
||||
+ size_t __len = strnlen(__old, (n)); \
|
||||
+ char *__new = (char *)alloca(__len + 1); \
|
||||
+ __new[__len] = '\0'; \
|
||||
+ (char *)memcpy(__new, __old, __len); \
|
||||
+ })
|
||||
+#endif
|
||||
+
|
||||
#ifndef KEYCTL_READ
|
||||
#define KEYCTL_READ 11
|
||||
#endif
|
||||
diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
|
||||
index 6b1a98402..d1388df48 100644
|
||||
--- a/src/basic/mkdir.c
|
||||
+++ b/src/basic/mkdir.c
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "path-util.h"
|
||||
#include "stat-util.h"
|
||||
#include "user-util.h"
|
||||
+#include "missing.h"
|
||||
|
||||
int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, mkdir_func_t _mkdir) {
|
||||
struct stat st;
|
||||
diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
|
||||
index 4532f222c..7a30a0e06 100644
|
||||
--- a/src/basic/parse-util.c
|
||||
+++ b/src/basic/parse-util.c
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "parse-util.h"
|
||||
#include "process-util.h"
|
||||
#include "string-util.h"
|
||||
+#include "missing.h"
|
||||
|
||||
int parse_boolean(const char *v) {
|
||||
assert(v);
|
||||
diff --git a/src/shared/pager.c b/src/shared/pager.c
|
||||
index 4d7b02c63..854efc0c9 100644
|
||||
--- a/src/shared/pager.c
|
||||
+++ b/src/shared/pager.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "string-util.h"
|
||||
#include "strv.h"
|
||||
#include "terminal-util.h"
|
||||
+#include "missing.h"
|
||||
|
||||
static pid_t pager_pid = 0;
|
||||
|
||||
diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
|
||||
index b6ec47439..91ce9fb7f 100644
|
||||
--- a/src/shared/uid-range.c
|
||||
+++ b/src/shared/uid-range.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "macro.h"
|
||||
#include "uid-range.h"
|
||||
#include "user-util.h"
|
||||
+#include "missing.h"
|
||||
|
||||
static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
|
||||
assert(range);
|
||||
--
|
||||
2.14.2
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From 52e922343faaa87b9efb8aa9ea578399ccc9bec9 Mon Sep 17 00:00:00 2001
|
||||
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||
Date: Sun, 26 Nov 2017 02:40:23 +0900
|
||||
Subject: [PATCH 3/3] fileio: include sys/mman.h
|
||||
|
||||
---
|
||||
Upstream-Status: Backport
|
||||
|
||||
src/basic/fileio.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/basic/fileio.c b/src/basic/fileio.c
|
||||
index 9a185e3e6..1015afd29 100644
|
||||
--- a/src/basic/fileio.c
|
||||
+++ b/src/basic/fileio.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
+#include <sys/mman.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
--
|
||||
2.16.1
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
From 8b9d194e956848e0d1fb35ef2fba714b2691ebe6 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Wed, 28 Feb 2018 20:47:49 -0800
|
||||
Subject: [PATCH 03/31] use lnr wrapper instead of looking for --relative
|
||||
option for ln
|
||||
|
||||
Remove file manually to avoid the 'File Exists' error when creating
|
||||
symlink. This is because the original 'ln' command uses '-f' option.
|
||||
|
||||
Upstream-Status: Inappropriate [OE-Specific]
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
meson.build | 4 ----
|
||||
tools/meson-make-symlink.sh | 3 ++-
|
||||
units/meson-add-wants.sh | 7 ++++++-
|
||||
3 files changed, 8 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 36a62d280..7347ea880 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -570,10 +570,6 @@ endforeach
|
||||
|
||||
conf.set_quoted('TELINIT', get_option('telinit-path'))
|
||||
|
||||
-if run_command('ln', '--relative', '--help').returncode() != 0
|
||||
- error('ln does not support --relative')
|
||||
-endif
|
||||
-
|
||||
############################################################
|
||||
|
||||
gperf = find_program('gperf')
|
||||
diff --git a/tools/meson-make-symlink.sh b/tools/meson-make-symlink.sh
|
||||
index 501cd43d4..f4e4ac9ac 100755
|
||||
--- a/tools/meson-make-symlink.sh
|
||||
+++ b/tools/meson-make-symlink.sh
|
||||
@@ -8,5 +8,6 @@ mkdir -vp "$(dirname "${DESTDIR:-}$2")"
|
||||
if [ "$(dirname $1)" = . ]; then
|
||||
ln -vfs -T "$1" "${DESTDIR:-}$2"
|
||||
else
|
||||
- ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2"
|
||||
+ rm -f "${DESTDIR:-}$2"
|
||||
+ lnr "${DESTDIR:-}$1" "${DESTDIR:-}$2"
|
||||
fi
|
||||
diff --git a/units/meson-add-wants.sh b/units/meson-add-wants.sh
|
||||
index 70f7172ae..a42666aac 100755
|
||||
--- a/units/meson-add-wants.sh
|
||||
+++ b/units/meson-add-wants.sh
|
||||
@@ -25,4 +25,9 @@ case "$target" in
|
||||
;;
|
||||
esac
|
||||
|
||||
-ln -vfs --relative "$unitpath" "$dir"
|
||||
+if [ -d "$dir" ]; then
|
||||
+ rm -f "$dir/$unit"
|
||||
+ lnr "$unitpath" "$dir/$unit"
|
||||
+else
|
||||
+ lnr "$unitpath" "$dir"
|
||||
+fi
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 52726be92e2b841f744a96c378cc872ae0033a2b Mon Sep 17 00:00:00 2001
|
||||
From 70d456fb21de2a80697fa364f08475339d6396c1 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 5 Sep 2015 06:31:47 +0000
|
||||
Subject: [PATCH 10/19] implment systemd-sysv-install for OE
|
||||
Subject: [PATCH 04/31] implment systemd-sysv-install for OE
|
||||
|
||||
Use update-rc.d for enabling/disabling and status command
|
||||
to check the status of the sysv service
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/systemctl/systemd-sysv-install.SKELETON b/src/systemctl/systemd-sysv-install.SKELETON
|
||||
index a53a3e6..5d877b0 100755
|
||||
index a53a3e622..5d877b06e 100755
|
||||
--- a/src/systemctl/systemd-sysv-install.SKELETON
|
||||
+++ b/src/systemctl/systemd-sysv-install.SKELETON
|
||||
@@ -30,17 +30,17 @@ case "$1" in
|
||||
@@ -39,5 +39,5 @@ index a53a3e6..5d877b0 100755
|
||||
*)
|
||||
usage ;;
|
||||
--
|
||||
2.10.2
|
||||
2.13.0
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
From 74450f0dbad2f8478c26eeaa46d4e4a987858f45 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 20 Feb 2015 05:03:44 +0000
|
||||
Subject: [PATCH 05/19] binfmt: Don't install dependency links at install time
|
||||
for the binfmt services
|
||||
|
||||
use [Install] blocks so that they get created when the service is enabled
|
||||
like a traditional service.
|
||||
|
||||
The [Install] blocks were rejected upstream as they don't have a way to
|
||||
"enable"
|
||||
it on install without static symlinks which can't be disabled, only
|
||||
masked. We
|
||||
however can do that in a postinst.
|
||||
|
||||
Upstream-Status: Denied
|
||||
|
||||
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Makefile.am | 4 ----
|
||||
units/proc-sys-fs-binfmt_misc.automount | 3 +++
|
||||
units/systemd-binfmt.service.in | 5 +++++
|
||||
3 files changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 50da458..29ed1dd 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -4635,10 +4635,6 @@ INSTALL_DIRS += \
|
||||
$(prefix)/lib/binfmt.d \
|
||||
$(sysconfdir)/binfmt.d
|
||||
|
||||
-SYSINIT_TARGET_WANTS += \
|
||||
- systemd-binfmt.service \
|
||||
- proc-sys-fs-binfmt_misc.automount
|
||||
-
|
||||
endif
|
||||
|
||||
EXTRA_DIST += \
|
||||
diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
|
||||
index 6be3893..709adef 100644
|
||||
--- a/units/proc-sys-fs-binfmt_misc.automount
|
||||
+++ b/units/proc-sys-fs-binfmt_misc.automount
|
||||
@@ -16,3 +16,6 @@ ConditionPathIsReadWrite=/proc/sys/
|
||||
|
||||
[Automount]
|
||||
Where=/proc/sys/fs/binfmt_misc
|
||||
+
|
||||
+[Install]
|
||||
+WantedBy=sysinit.target
|
||||
diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
|
||||
index d53073e..8c57ee0 100644
|
||||
--- a/units/systemd-binfmt.service.in
|
||||
+++ b/units/systemd-binfmt.service.in
|
||||
@@ -11,6 +11,8 @@ Documentation=man:systemd-binfmt.service(8) man:binfmt.d(5)
|
||||
Documentation=https://www.kernel.org/doc/Documentation/binfmt_misc.txt
|
||||
DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
+Wants=proc-sys-fs-binfmt_misc.automount
|
||||
+
|
||||
After=proc-sys-fs-binfmt_misc.automount
|
||||
Before=sysinit.target shutdown.target
|
||||
ConditionPathIsReadWrite=/proc/sys/
|
||||
@@ -25,3 +27,6 @@ Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=@rootlibexecdir@/systemd-binfmt
|
||||
TimeoutSec=90s
|
||||
+
|
||||
+[Install]
|
||||
+WantedBy=sysinit.target
|
||||
--
|
||||
2.10.2
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From ab5a27040133f7cdf062ac8cfeb94e081d3567b3 Mon Sep 17 00:00:00 2001
|
||||
From 7b5b34993002b4418ba8a3c2ae661a7337fd8ed0 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 9 Nov 2016 19:41:13 -0800
|
||||
Subject: [PATCH 07/14] rules: whitelist hd* devices
|
||||
Subject: [PATCH 05/31] rules: whitelist hd* devices
|
||||
|
||||
qemu by default emulates IDE and the linux-yocto kernel(s) use
|
||||
CONFIG_IDE instead of the more modern libsata, so disks appear as
|
||||
@@ -11,13 +11,12 @@ Upstream-Status: Denied [https://github.com/systemd/systemd/pull/1276]
|
||||
|
||||
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
---
|
||||
rules/60-persistent-storage.rules | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
|
||||
index d2745f65f..63f472be8 100644
|
||||
index 0de8cf3a1..d3f58f153 100644
|
||||
--- a/rules/60-persistent-storage.rules
|
||||
+++ b/rules/60-persistent-storage.rules
|
||||
@@ -7,7 +7,7 @@ ACTION=="remove", GOTO="persistent_storage_end"
|
||||
@@ -30,5 +29,5 @@ index d2745f65f..63f472be8 100644
|
||||
# ignore partitions that span the entire disk
|
||||
TEST=="whole_disk", GOTO="persistent_storage_end"
|
||||
--
|
||||
2.13.2
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
From 9d63227420f0c4f093c1c2066eafe2b6152070cf Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Fri, 23 Feb 2018 13:47:37 +0800
|
||||
Subject: [PATCH 06/31] Make root's home directory configurable
|
||||
|
||||
OpenEmbedded has a configurable home directory for root. Allow
|
||||
systemd to be built using its idea of what root's home directory
|
||||
should be.
|
||||
|
||||
Upstream-Status: Denied
|
||||
Upstream wants to have a unified hierarchy where everyone is
|
||||
using the same root folder.
|
||||
https://github.com/systemd/systemd/issues/541
|
||||
|
||||
Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
meson.build | 8 ++++++++
|
||||
meson_options.txt | 2 ++
|
||||
2 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 7347ea880..918101d6b 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -94,6 +94,11 @@ if rootlibdir == ''
|
||||
rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
|
||||
endif
|
||||
|
||||
+roothomedir = get_option('roothomedir')
|
||||
+if roothomedir == ''
|
||||
+ roothomedir = '/root'
|
||||
+endif
|
||||
+
|
||||
# Dirs of external packages
|
||||
pkgconfigdatadir = join_paths(datadir, 'pkgconfig')
|
||||
pkgconfiglibdir = join_paths(libdir, 'pkgconfig')
|
||||
@@ -205,6 +210,7 @@ conf.set_quoted('UDEVLIBEXECDIR', udevlibexecdir)
|
||||
conf.set_quoted('POLKIT_AGENT_BINARY_PATH', join_paths(bindir, 'pkttyagent'))
|
||||
conf.set_quoted('LIBDIR', libdir)
|
||||
conf.set_quoted('ROOTLIBDIR', rootlibdir)
|
||||
+conf.set_quoted('ROOTHOMEDIR', roothomedir)
|
||||
conf.set_quoted('ROOTLIBEXECDIR', rootlibexecdir)
|
||||
conf.set_quoted('BOOTLIBDIR', bootlibdir)
|
||||
conf.set_quoted('SYSTEMD_PULL_PATH', join_paths(rootlibexecdir, 'systemd-pull'))
|
||||
@@ -221,6 +227,7 @@ substs.set('prefix', prefixdir)
|
||||
substs.set('exec_prefix', prefixdir)
|
||||
substs.set('libdir', libdir)
|
||||
substs.set('rootlibdir', rootlibdir)
|
||||
+substs.set('roothomedir', roothomedir)
|
||||
substs.set('includedir', includedir)
|
||||
substs.set('pkgsysconfdir', pkgsysconfdir)
|
||||
substs.set('bindir', bindir)
|
||||
@@ -2705,6 +2712,7 @@ status = [
|
||||
'include directory: @0@'.format(includedir),
|
||||
'lib directory: @0@'.format(libdir),
|
||||
'rootlib directory: @0@'.format(rootlibdir),
|
||||
+ 'roothome directory: @0@'.format(roothomedir),
|
||||
'SysV init scripts: @0@'.format(sysvinit_path),
|
||||
'SysV rc?.d directories: @0@'.format(sysvrcnd_path),
|
||||
'PAM modules directory: @0@'.format(pamlibdir),
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 39822d6cd..0b24f0e0f 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -22,6 +22,8 @@ option('rootlibdir', type : 'string',
|
||||
description : '''[/usr]/lib/x86_64-linux-gnu or such''')
|
||||
option('rootprefix', type : 'string',
|
||||
description : '''override the root prefix''')
|
||||
+option('roothomedir', type : 'string',
|
||||
+ description : '''override the root home directory''')
|
||||
option('link-udev-shared', type : 'boolean',
|
||||
description : 'link systemd-udev and its helpers to libsystemd-shared.so')
|
||||
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 0f47cfcb16e8e40a90a9221f9995f8cd8a915c22 Mon Sep 17 00:00:00 2001
|
||||
From 35d6d384e83ac38077603611bb791969ef95fe68 Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Liu <net147@gmail.com>
|
||||
Date: Thu, 19 Mar 2015 15:01:29 +1100
|
||||
Subject: [PATCH 14/19] Revert "rules: remove firmware loading rules"
|
||||
Subject: [PATCH 07/31] Revert "rules: remove firmware loading rules"
|
||||
|
||||
This reverts commit 70e7d754ddb356fb1a2942b262f8cee9650e2a19.
|
||||
Userspace firmware loading support is needed for Linux < 3.7.
|
||||
@@ -16,7 +16,7 @@ Signed-off-by: Jonathan Liu <net147@gmail.com>
|
||||
|
||||
diff --git a/rules/50-firmware.rules b/rules/50-firmware.rules
|
||||
new file mode 100644
|
||||
index 0000000..f0ae684
|
||||
index 000000000..f0ae68451
|
||||
--- /dev/null
|
||||
+++ b/rules/50-firmware.rules
|
||||
@@ -0,0 +1,3 @@
|
||||
@@ -24,5 +24,5 @@ index 0000000..f0ae684
|
||||
+
|
||||
+SUBSYSTEM=="firmware", ACTION=="add", RUN{builtin}="firmware"
|
||||
--
|
||||
2.10.2
|
||||
2.13.0
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
From 05dffe67919ffc72be5c017bc6cf82f164b2e8f9 Mon Sep 17 00:00:00 2001
|
||||
From: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Date: Mon, 23 Oct 2017 11:42:03 -0700
|
||||
Subject: [PATCH 07/12] check for missing canonicalize_file_name
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
configure.ac | 2 ++
|
||||
src/basic/missing.h | 1 +
|
||||
src/basic/missing_syscall.h | 6 ++++++
|
||||
3 files changed, 9 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index cd035a971..3674190fb 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -333,6 +333,7 @@ AC_CHECK_DECLS([
|
||||
renameat2,
|
||||
kcmp,
|
||||
keyctl,
|
||||
+ canonicalize_file_name,
|
||||
LO_FLAGS_PARTSCAN,
|
||||
copy_file_range,
|
||||
explicit_bzero],
|
||||
@@ -343,6 +344,7 @@ AC_CHECK_DECLS([
|
||||
#include <fcntl.h>
|
||||
#include <sched.h>
|
||||
#include <string.h>
|
||||
+#include <stdlib.h>
|
||||
#include <linux/loop.h>
|
||||
]])
|
||||
|
||||
diff --git a/src/basic/missing.h b/src/basic/missing.h
|
||||
index 671f341c6..8ae4964e1 100644
|
||||
--- a/src/basic/missing.h
|
||||
+++ b/src/basic/missing.h
|
||||
@@ -1246,3 +1246,4 @@ struct ethtool_link_settings {
|
||||
#endif
|
||||
|
||||
#include "missing_syscall.h"
|
||||
+
|
||||
diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
|
||||
index 898116c7b..4d44ee4fa 100644
|
||||
--- a/src/basic/missing_syscall.h
|
||||
+++ b/src/basic/missing_syscall.h
|
||||
@@ -28,6 +28,12 @@ static inline int pivot_root(const char *new_root, const char *put_old) {
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if !HAVE_DECL_CANONICALIZE_FILE_NAME
|
||||
+static inline char *canonicalize_file_name(const char *path) {
|
||||
+ return realpath(path, NULL);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/* ======================================================================= */
|
||||
|
||||
#if !HAVE_DECL_MEMFD_CREATE
|
||||
--
|
||||
2.14.2
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
From a3482c91642cf568b3ac27fa6c0cb3c6b30669b7 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 9 Nov 2016 19:32:14 -0800
|
||||
Subject: [PATCH 07/19] use lnr wrapper instead of looking for --relative
|
||||
option for ln
|
||||
|
||||
Upstream-Status: Inappropriate [OE-Specific]
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Makefile.am | 2 +-
|
||||
configure.ac | 2 --
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
Index: git/Makefile.am
|
||||
===================================================================
|
||||
--- git.orig/Makefile.am
|
||||
+++ git/Makefile.am
|
||||
@@ -320,7 +320,7 @@ define install-relative-aliases
|
||||
while [ -n "$$1" ]; do \
|
||||
$(MKDIR_P) `dirname $(DESTDIR)$$dir/$$2` && \
|
||||
rm -f $(DESTDIR)$$dir/$$2 && \
|
||||
- $(LN_S) --relative $(DESTDIR)$$1 $(DESTDIR)$$dir/$$2 && \
|
||||
+ lnr $(DESTDIR)$$1 $(DESTDIR)$$dir/$$2 && \
|
||||
shift 2 || exit $$?; \
|
||||
done
|
||||
endef
|
||||
Index: git/configure.ac
|
||||
===================================================================
|
||||
--- git.orig/configure.ac
|
||||
+++ git/configure.ac
|
||||
@@ -110,8 +110,6 @@ AC_PATH_PROG([SULOGIN], [sulogin], [/usr
|
||||
AC_PATH_PROG([MOUNT_PATH], [mount], [/usr/bin/mount], [$PATH:/usr/sbin:/sbin])
|
||||
AC_PATH_PROG([UMOUNT_PATH], [umount], [/usr/bin/umount], [$PATH:/usr/sbin:/sbin])
|
||||
|
||||
-AS_IF([! ln --relative --help > /dev/null 2>&1], [AC_MSG_ERROR([*** ln doesn't support --relative ***])])
|
||||
-
|
||||
M4_DEFINES=
|
||||
|
||||
AC_CHECK_TOOL(OBJCOPY, objcopy)
|
||||
@@ -1,35 +0,0 @@
|
||||
From 48e7c0f5b2f5d777a16ac5584dc4f50f1dfa832c Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 23 Oct 2017 12:27:53 -0700
|
||||
Subject: [PATCH 08/12] Do not enable nss tests
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
Makefile.am | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 3cc8f3451..df20a9a11 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -5290,6 +5290,7 @@ EXTRA_DIST += \
|
||||
src/timesync/timesyncd.conf.in
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
+if ENABLE_NSS_SYSTEMD
|
||||
test_nss_SOURCES = \
|
||||
src/test/test-nss.c
|
||||
|
||||
@@ -5302,7 +5303,6 @@ manual_tests += \
|
||||
test-nss
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
-if ENABLE_NSS_SYSTEMD
|
||||
libnss_systemd_la_SOURCES = \
|
||||
src/nss-systemd/nss-systemd.sym \
|
||||
src/nss-systemd/nss-systemd.c
|
||||
--
|
||||
2.14.2
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 7883985a3a78677e9a1d5d61fe7fa8badf39f565 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 9 Nov 2016 20:45:23 -0800
|
||||
Subject: [PATCH 10/14] Revert "udev: remove userspace firmware loading
|
||||
From 5cce7626f33e92f624ac06b613125813fb47d445 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Wed, 28 Feb 2018 21:05:39 -0800
|
||||
Subject: [PATCH 08/31] Revert "udev: remove userspace firmware loading
|
||||
support"
|
||||
|
||||
This reverts commit be2ea723b1d023b3d385d3b791ee4607cbfb20ca.
|
||||
@@ -11,47 +11,26 @@ Upstream-Status: Inappropriate [OE specific]
|
||||
|
||||
Signed-off-by: Jonathan Liu <net147@gmail.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
Makefile.am | 12 +++
|
||||
README | 4 +-
|
||||
TODO | 1 +
|
||||
configure.ac | 18 +++++
|
||||
meson.build | 9 +++
|
||||
meson_options.txt | 2 +
|
||||
rules/meson.build | 4 +
|
||||
src/udev/meson.build | 4 +
|
||||
src/udev/udev-builtin-firmware.c | 154 +++++++++++++++++++++++++++++++++++++++
|
||||
src/udev/udev-builtin.c | 3 +
|
||||
src/udev/udev.h | 6 ++
|
||||
src/udev/udevd.c | 13 ++++
|
||||
8 files changed, 209 insertions(+), 2 deletions(-)
|
||||
src/udev/udevd.c | 12 +++
|
||||
10 files changed, 197 insertions(+), 2 deletions(-)
|
||||
create mode 100644 src/udev/udev-builtin-firmware.c
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index c2b4a99d2..692d7bb95 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -3985,6 +3985,18 @@ libudev_core_la_LIBADD = \
|
||||
$(BLKID_LIBS) \
|
||||
$(KMOD_LIBS)
|
||||
|
||||
+libudev_core_la_CPPFLAGS = \
|
||||
+ $(AM_CPPFLAGS) \
|
||||
+ -DFIRMWARE_PATH="$(FIRMWARE_PATH)"
|
||||
+
|
||||
+if ENABLE_FIRMWARE
|
||||
+libudev_core_la_SOURCES += \
|
||||
+ src/udev/udev-builtin-firmware.c
|
||||
+
|
||||
+dist_udevrules_DATA += \
|
||||
+ rules/50-firmware.rules
|
||||
+endif
|
||||
+
|
||||
if HAVE_KMOD
|
||||
libudev_core_la_SOURCES += \
|
||||
src/udev/udev-builtin-kmod.c
|
||||
diff --git a/README b/README
|
||||
index 60388eebe..e21976393 100644
|
||||
index 8807e5cfe..bfd7a35de 100644
|
||||
--- a/README
|
||||
+++ b/README
|
||||
@@ -61,8 +61,8 @@ REQUIREMENTS:
|
||||
@@ -58,8 +58,8 @@ REQUIREMENTS:
|
||||
Legacy hotplug slows down the system and confuses udev:
|
||||
CONFIG_UEVENT_HELPER_PATH=""
|
||||
|
||||
@@ -63,10 +42,10 @@ index 60388eebe..e21976393 100644
|
||||
|
||||
Some udev rules and virtualization detection relies on it:
|
||||
diff --git a/TODO b/TODO
|
||||
index 61efa5e9f..67ccac224 100644
|
||||
index a77028c7b..39e72d7ec 100644
|
||||
--- a/TODO
|
||||
+++ b/TODO
|
||||
@@ -740,6 +740,7 @@ Features:
|
||||
@@ -783,6 +783,7 @@ Features:
|
||||
* initialize the hostname from the fs label of /, if /etc/hostname does not exist?
|
||||
|
||||
* udev:
|
||||
@@ -74,42 +53,90 @@ index 61efa5e9f..67ccac224 100644
|
||||
- move to LGPL
|
||||
- kill scsi_id
|
||||
- add trigger --subsystem-match=usb/usb_device device
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index b53ca1f1a..1150ca50e 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1522,6 +1522,23 @@ AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"])
|
||||
AC_ARG_ENABLE(hwdb, [AS_HELP_STRING([--disable-hwdb], [disable hardware database support])],
|
||||
enable_hwdb=$enableval, enable_hwdb=yes)
|
||||
AM_CONDITIONAL(ENABLE_HWDB, [test x$enable_hwdb = xyes])
|
||||
+AC_ARG_WITH(firmware-path,
|
||||
+ AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]],
|
||||
+ [Firmware search path (default="")]),
|
||||
+ [], [with_firmware_path=""])
|
||||
+OLD_IFS=$IFS
|
||||
+IFS=:
|
||||
+for i in $with_firmware_path; do
|
||||
+ if test "x${FIRMWARE_PATH}" = "x"; then
|
||||
+ FIRMWARE_PATH="\\\"${i}/\\\""
|
||||
+ else
|
||||
+ FIRMWARE_PATH="${FIRMWARE_PATH}, \\\"${i}/\\\""
|
||||
+ fi
|
||||
+done
|
||||
+IFS=$OLD_IFS
|
||||
+AC_SUBST(FIRMWARE_PATH)
|
||||
+AS_IF([test "x${FIRMWARE_PATH}" != "x"], [ AC_DEFINE(HAVE_FIRMWARE, 1, [Define if FIRMWARE is available]) ])
|
||||
+AM_CONDITIONAL(ENABLE_FIRMWARE, [test "x${FIRMWARE_PATH}" != "x"])
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 918101d6b..9c25022a4 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -72,6 +72,12 @@ conf.set10('HAVE_SYSV_COMPAT', have,
|
||||
description : 'SysV init scripts and rcN.d links are supported')
|
||||
m4_defines += have ? ['-DHAVE_SYSV_COMPAT'] : []
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
have_manpages=no
|
||||
@@ -1839,6 +1856,7 @@ AC_MSG_RESULT([
|
||||
SysV init scripts: ${SYSTEM_SYSVINIT_PATH}
|
||||
SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH}
|
||||
build Python: ${PYTHON}
|
||||
+ firmware path: ${FIRMWARE_PATH}
|
||||
PAM modules dir: ${with_pamlibdir}
|
||||
PAM configuration dir: ${with_pamconfdir}
|
||||
RPM macros dir: ${with_rpmmacrosdir}
|
||||
+firmware_path = get_option('firmware-path')
|
||||
+have = firmware_path != ''
|
||||
+conf.set10('HAVE_FIRMWARE', have,
|
||||
+ description : 'Userspace firmware loading is supported')
|
||||
+m4_defines += have ? ['-DHAVE_FIRMWARE'] : []
|
||||
+
|
||||
# join_paths ignore the preceding arguments if an absolute component is
|
||||
# encountered, so this should canonicalize various paths when they are
|
||||
# absolute or relative.
|
||||
@@ -178,6 +184,7 @@ conf.set_quoted('SYSTEM_CONFIG_UNIT_PATH', join_paths(pkgsysc
|
||||
conf.set_quoted('SYSTEM_DATA_UNIT_PATH', systemunitdir)
|
||||
conf.set_quoted('SYSTEM_SYSVINIT_PATH', sysvinit_path)
|
||||
conf.set_quoted('SYSTEM_SYSVRCND_PATH', sysvrcnd_path)
|
||||
+conf.set_quoted('FIRMWARE_PATH', firmware_path)
|
||||
conf.set_quoted('RC_LOCAL_SCRIPT_PATH_START', get_option('rc-local'))
|
||||
conf.set_quoted('RC_LOCAL_SCRIPT_PATH_STOP', get_option('halt-local'))
|
||||
conf.set_quoted('USER_CONFIG_UNIT_PATH', join_paths(pkgsysconfdir, 'user'))
|
||||
@@ -258,6 +265,7 @@ substs.set('SYSTEMCTL', join_paths(rootbin
|
||||
substs.set('RANDOM_SEED', join_paths(randomseeddir, 'random-seed'))
|
||||
substs.set('SYSTEM_SYSVINIT_PATH', sysvinit_path)
|
||||
substs.set('SYSTEM_SYSVRCND_PATH', sysvrcnd_path)
|
||||
+substs.set('FIRMWARE_PATH', firmware_path)
|
||||
substs.set('RC_LOCAL_SCRIPT_PATH_START', get_option('rc-local'))
|
||||
substs.set('RC_LOCAL_SCRIPT_PATH_STOP', get_option('halt-local'))
|
||||
|
||||
@@ -2715,6 +2723,7 @@ status = [
|
||||
'roothome directory: @0@'.format(roothomedir),
|
||||
'SysV init scripts: @0@'.format(sysvinit_path),
|
||||
'SysV rc?.d directories: @0@'.format(sysvrcnd_path),
|
||||
+ 'firmware path: @0@'.format(firmware_path),
|
||||
'PAM modules directory: @0@'.format(pamlibdir),
|
||||
'PAM configuration directory: @0@'.format(pamconfdir),
|
||||
'RPM macros directory: @0@'.format(rpmmacrosdir),
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 0b24f0e0f..92d25fa35 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -108,6 +108,8 @@ option('tmpfiles', type : 'boolean',
|
||||
description : 'support for tmpfiles.d')
|
||||
option('importd', type : 'combo', choices : ['auto', 'true', 'false'],
|
||||
description : 'install the systemd-importd daemon')
|
||||
+option('firmware-path', type : 'string', value : '',
|
||||
+ description : 'Firmware search path')
|
||||
option('hwdb', type : 'boolean',
|
||||
description : 'support for the hardware database')
|
||||
option('rfkill', type : 'boolean',
|
||||
diff --git a/rules/meson.build b/rules/meson.build
|
||||
index e253b9f59..5eee5fbca 100644
|
||||
--- a/rules/meson.build
|
||||
+++ b/rules/meson.build
|
||||
@@ -41,6 +41,10 @@ rules = files('''
|
||||
install_data(rules,
|
||||
install_dir : udevrulesdir)
|
||||
|
||||
+if conf.get('HAVE_FIRMWARE') == 1
|
||||
+ install_data('50-firmware.rules', install_dir : udevrulesdir)
|
||||
+endif
|
||||
+
|
||||
all_rules = rules
|
||||
|
||||
rules_in = '''
|
||||
diff --git a/src/udev/meson.build b/src/udev/meson.build
|
||||
index de2fd2d9c..b6b0ca006 100644
|
||||
--- a/src/udev/meson.build
|
||||
+++ b/src/udev/meson.build
|
||||
@@ -67,6 +67,10 @@ if conf.get('HAVE_ACL') == 1
|
||||
sd_login_c]
|
||||
endif
|
||||
|
||||
+if conf.get('HAVE_FIRMWARE') == 1
|
||||
+ libudev_core_sources += ['udev-builtin-firmware.c']
|
||||
+endif
|
||||
+
|
||||
############################################################
|
||||
|
||||
generate_keyboard_keys_list = find_program('generate-keyboard-keys-list.sh')
|
||||
diff --git a/src/udev/udev-builtin-firmware.c b/src/udev/udev-builtin-firmware.c
|
||||
new file mode 100644
|
||||
index 000000000..bd8c2fb96
|
||||
@@ -271,81 +298,80 @@ index 000000000..bd8c2fb96
|
||||
+ .run_once = true,
|
||||
+};
|
||||
diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c
|
||||
index e6b36f124..cd9947e2a 100644
|
||||
index db2b6874f..ccd88638c 100644
|
||||
--- a/src/udev/udev-builtin.c
|
||||
+++ b/src/udev/udev-builtin.c
|
||||
@@ -31,6 +31,9 @@ static const struct udev_builtin *builtins[] = {
|
||||
@@ -32,6 +32,9 @@ static const struct udev_builtin *builtins[] = {
|
||||
[UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
|
||||
#endif
|
||||
[UDEV_BUILTIN_BTRFS] = &udev_builtin_btrfs,
|
||||
+#ifdef HAVE_FIRMWARE
|
||||
+#if HAVE_FIRMWARE
|
||||
+ [UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware,
|
||||
+#endif
|
||||
[UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb,
|
||||
[UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id,
|
||||
[UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard,
|
||||
diff --git a/src/udev/udev.h b/src/udev/udev.h
|
||||
index c0cb7eae8..9f0f1cf13 100644
|
||||
index ea11c2d29..c47dd3d88 100644
|
||||
--- a/src/udev/udev.h
|
||||
+++ b/src/udev/udev.h
|
||||
@@ -150,6 +150,9 @@ enum udev_builtin_cmd {
|
||||
@@ -151,6 +151,9 @@ enum udev_builtin_cmd {
|
||||
UDEV_BUILTIN_BLKID,
|
||||
#endif
|
||||
UDEV_BUILTIN_BTRFS,
|
||||
+#ifdef HAVE_FIRMWARE
|
||||
+#if HAVE_FIRMWARE
|
||||
+ UDEV_BUILTIN_FIRMWARE,
|
||||
+#endif
|
||||
UDEV_BUILTIN_HWDB,
|
||||
UDEV_BUILTIN_INPUT_ID,
|
||||
UDEV_BUILTIN_KEYBOARD,
|
||||
@@ -178,6 +181,9 @@ struct udev_builtin {
|
||||
@@ -179,6 +182,9 @@ struct udev_builtin {
|
||||
extern const struct udev_builtin udev_builtin_blkid;
|
||||
#endif
|
||||
extern const struct udev_builtin udev_builtin_btrfs;
|
||||
+#ifdef HAVE_FIRMWARE
|
||||
+#if HAVE_FIRMWARE
|
||||
+extern const struct udev_builtin udev_builtin_firmware;
|
||||
+#endif
|
||||
extern const struct udev_builtin udev_builtin_hwdb;
|
||||
extern const struct udev_builtin udev_builtin_input_id;
|
||||
extern const struct udev_builtin udev_builtin_keyboard;
|
||||
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
|
||||
index acbddd418..20347b402 100644
|
||||
index 5c757d513..2f3313007 100644
|
||||
--- a/src/udev/udevd.c
|
||||
+++ b/src/udev/udevd.c
|
||||
@@ -125,6 +125,9 @@ struct event {
|
||||
@@ -127,6 +127,9 @@ struct event {
|
||||
bool is_block;
|
||||
sd_event_source *timeout_warning;
|
||||
sd_event_source *timeout;
|
||||
+#ifdef HAVE_FIRMWARE
|
||||
+#if HAVE_FIRMWARE
|
||||
+ bool nodelay;
|
||||
+#endif
|
||||
};
|
||||
|
||||
static inline struct event *node_to_event(struct udev_list_node *node) {
|
||||
@@ -613,6 +616,10 @@ static int event_queue_insert(Manager *manager, struct udev_device *dev) {
|
||||
static void event_queue_cleanup(Manager *manager, enum event_state type);
|
||||
@@ -609,6 +612,10 @@ static int event_queue_insert(Manager *manager, struct udev_device *dev) {
|
||||
event->devnum = udev_device_get_devnum(dev);
|
||||
event->is_block = streq("block", udev_device_get_subsystem(dev));
|
||||
event->ifindex = udev_device_get_ifindex(dev);
|
||||
+#ifdef HAVE_FIRMWARE
|
||||
+#if HAVE_FIRMWARE
|
||||
+ if (streq(udev_device_get_subsystem(dev), "firmware"))
|
||||
+ event->nodelay = true;
|
||||
+#endif
|
||||
|
||||
log_debug("seq %llu queued, '%s' '%s'", udev_device_get_seqnum(dev),
|
||||
udev_device_get_action(dev), udev_device_get_subsystem(dev));
|
||||
@@ -698,6 +705,12 @@ static bool is_devpath_busy(Manager *manager, struct event *event) {
|
||||
@@ -692,6 +699,11 @@ static bool is_devpath_busy(Manager *manager, struct event *event) {
|
||||
return true;
|
||||
}
|
||||
|
||||
+#ifdef HAVE_FIRMWARE
|
||||
+#if HAVE_FIRMWARE
|
||||
+ /* allow to bypass the dependency tracking */
|
||||
+ if (event->nodelay)
|
||||
+ continue;
|
||||
+#endif
|
||||
+
|
||||
/* parent device event found */
|
||||
if (event->devpath[common] == '/') {
|
||||
event->delaying_seqnum = loop_event->seqnum;
|
||||
--
|
||||
2.13.2
|
||||
2.13.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From e78af874fc9f3d3af49498b8207109993d93a596 Mon Sep 17 00:00:00 2001
|
||||
From ffdf9cb6ba0d932b81933d824f23a878c313a8d4 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 22 Feb 2016 05:59:01 +0000
|
||||
Subject: [PATCH 17/19] remove duplicate include uchar.h
|
||||
Subject: [PATCH 09/31] remove duplicate include uchar.h
|
||||
|
||||
missing.h already includes it
|
||||
|
||||
@@ -13,10 +13,10 @@ Upstream-Status: Pending
|
||||
2 files changed, 2 deletions(-)
|
||||
|
||||
diff --git a/src/basic/escape.h b/src/basic/escape.h
|
||||
index deaa4de..36d437c 100644
|
||||
index de89f43a8..9921ccbbd 100644
|
||||
--- a/src/basic/escape.h
|
||||
+++ b/src/basic/escape.h
|
||||
@@ -23,7 +23,6 @@
|
||||
@@ -24,7 +24,6 @@
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
@@ -25,10 +25,10 @@ index deaa4de..36d437c 100644
|
||||
#include "string-util.h"
|
||||
#include "missing.h"
|
||||
diff --git a/src/basic/utf8.h b/src/basic/utf8.h
|
||||
index f9b9c94..6ac9a3c 100644
|
||||
index b0a7485ae..fa06d2906 100644
|
||||
--- a/src/basic/utf8.h
|
||||
+++ b/src/basic/utf8.h
|
||||
@@ -22,7 +22,6 @@
|
||||
@@ -23,7 +23,6 @@
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
@@ -37,5 +37,5 @@ index f9b9c94..6ac9a3c 100644
|
||||
#include "macro.h"
|
||||
#include "missing.h"
|
||||
--
|
||||
2.10.2
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From ea4caaa1c6a6dc682bb04548ab05c5c73d0b45d6 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Mon, 26 Feb 2018 15:34:52 +0800
|
||||
Subject: [PATCH 10/31] check for uchar.h in meson.build
|
||||
|
||||
Use #if HAVE_UCHAR_H to include uchar.h conditionally.
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
meson.build | 1 +
|
||||
src/basic/missing.h | 2 ++
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 9c25022a4..94a16712b 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -623,6 +623,7 @@ foreach header : ['crypt.h',
|
||||
'sys/auxv.h',
|
||||
'valgrind/memcheck.h',
|
||||
'valgrind/valgrind.h',
|
||||
+ 'uchar.h',
|
||||
]
|
||||
|
||||
conf.set10('HAVE_' + header.underscorify().to_upper(),
|
||||
diff --git a/src/basic/missing.h b/src/basic/missing.h
|
||||
index 39c1fb700..84d6d9167 100644
|
||||
--- a/src/basic/missing.h
|
||||
+++ b/src/basic/missing.h
|
||||
@@ -38,7 +38,9 @@
|
||||
#include <sys/resource.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/syscall.h>
|
||||
+#if HAVE_UCHAR_H
|
||||
#include <uchar.h>
|
||||
+#endif
|
||||
#include <unistd.h>
|
||||
|
||||
#if HAVE_AUDIT
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
From 6e9d2bcaa6f886b2384c1c35a04e4ebc148aea68 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 23 Oct 2017 12:40:25 -0700
|
||||
Subject: [PATCH 10/12] test-sizeof.c: Disable tests for missing typedefs in
|
||||
musl
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
src/test/test-sizeof.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
|
||||
index 269adfd18..ba7855dff 100644
|
||||
--- a/src/test/test-sizeof.c
|
||||
+++ b/src/test/test-sizeof.c
|
||||
@@ -18,7 +18,6 @@
|
||||
***/
|
||||
|
||||
#include <stdio.h>
|
||||
-
|
||||
#include "time-util.h"
|
||||
|
||||
/* Print information about various types. Useful when diagnosing
|
||||
@@ -48,8 +47,10 @@ int main(void) {
|
||||
info(unsigned);
|
||||
info(long unsigned);
|
||||
info(long long unsigned);
|
||||
+#ifdef __GLIBC__
|
||||
info(__syscall_ulong_t);
|
||||
info(__syscall_slong_t);
|
||||
+#endif
|
||||
|
||||
info(float);
|
||||
info(double);
|
||||
@@ -59,7 +60,9 @@ int main(void) {
|
||||
info(ssize_t);
|
||||
info(time_t);
|
||||
info(usec_t);
|
||||
+#ifdef __GLIBC__
|
||||
info(__time_t);
|
||||
+#endif
|
||||
|
||||
info(enum Enum);
|
||||
info(enum BigEnum);
|
||||
--
|
||||
2.14.2
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
From 3f6f45578b828e414f50c6822375073e7174236a Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 14 Dec 2015 00:50:01 +0000
|
||||
Subject: [PATCH 11/19] nss-mymachines: Build conditionally when
|
||||
HAVE_MYHOSTNAME is set
|
||||
|
||||
Fixes build failures when building with --disable-myhostname
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Makefile.am | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 02f4017..420e0e0 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -5146,6 +5146,7 @@ SYSTEM_UNIT_ALIASES += \
|
||||
BUSNAMES_TARGET_WANTS += \
|
||||
org.freedesktop.machine1.busname
|
||||
|
||||
+if HAVE_MYHOSTNAME
|
||||
libnss_mymachines_la_SOURCES = \
|
||||
src/nss-mymachines/nss-mymachines.sym \
|
||||
src/nss-mymachines/nss-mymachines.c
|
||||
@@ -5167,6 +5168,7 @@ rootlib_LTLIBRARIES += \
|
||||
libnss_mymachines.la
|
||||
|
||||
endif
|
||||
+endif
|
||||
|
||||
polkitpolicy_in_files += \
|
||||
src/machine/org.freedesktop.machine1.policy.in
|
||||
--
|
||||
2.10.2
|
||||
|
||||
@@ -1,25 +1,26 @@
|
||||
From b7c6bfe2ec5ae426e586e1d6ecadb52a97128a3f Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 9 Nov 2016 20:49:53 -0800
|
||||
Subject: [PATCH 13/14] socket-util: don't fail if libc doesn't support IDN
|
||||
From 60dd411e9756fc2b14c0e061ad803782b4aee874 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Mon, 26 Feb 2018 15:46:05 +0800
|
||||
Subject: [PATCH 11/31] socket-util: don't fail if libc doesn't support IDN
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
src/basic/socket-util.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
src/basic/socket-util.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c
|
||||
index 016e64aa0..d4658826e 100644
|
||||
index 2c70cade1..67aedadd4 100644
|
||||
--- a/src/basic/socket-util.c
|
||||
+++ b/src/basic/socket-util.c
|
||||
@@ -47,6 +47,15 @@
|
||||
#include "user-util.h"
|
||||
@@ -50,6 +50,16 @@
|
||||
#include "utf8.h"
|
||||
#include "util.h"
|
||||
|
||||
+/* Don't fail if the standard library
|
||||
+ * doesn't support IDN */
|
||||
+#ifndef NI_IDN
|
||||
@@ -29,9 +30,10 @@ index 016e64aa0..d4658826e 100644
|
||||
+#ifndef NI_IDN_USE_STD3_ASCII_RULES
|
||||
+#define NI_IDN_USE_STD3_ASCII_RULES 0
|
||||
+#endif
|
||||
|
||||
#ifdef ENABLE_IDN
|
||||
+
|
||||
#if ENABLE_IDN
|
||||
# define IDN_FLAGS (NI_IDN|NI_IDN_USE_STD3_ASCII_RULES)
|
||||
#else
|
||||
--
|
||||
2.13.2
|
||||
2.13.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 8207d645582e96c56950674e104653d0cd552d60 Mon Sep 17 00:00:00 2001
|
||||
From 406a4c8692316e8c7e14c78f9a802689be304a95 Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Fri, 17 Nov 2017 09:46:00 +0800
|
||||
Subject: [PATCH] rules: watch metadata changes in ide devices
|
||||
Subject: [PATCH 12/31] rules: watch metadata changes in ide devices
|
||||
|
||||
Formatting IDE storage does not trigger "change" uevents. As a result
|
||||
clients using udev API don't get any updates afterwards and get outdated
|
||||
@@ -29,7 +29,7 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rules/60-block.rules b/rules/60-block.rules
|
||||
index 343fc06..b5237da 100644
|
||||
index 343fc06f8..b5237dac4 100644
|
||||
--- a/rules/60-block.rules
|
||||
+++ b/rules/60-block.rules
|
||||
@@ -8,4 +8,4 @@ ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_
|
||||
@@ -39,5 +39,5 @@ index 343fc06..b5237da 100644
|
||||
-ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*", OPTIONS+="watch"
|
||||
+ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*|hd*", OPTIONS+="watch"
|
||||
--
|
||||
1.8.3.1
|
||||
2.13.0
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
From 479e1f4aa2b9f1c911a4d0dd18e222d241a978ea Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 9 Nov 2016 20:35:30 -0800
|
||||
Subject: [PATCH 42/48] Make root's home directory configurable
|
||||
|
||||
OpenEmbedded has a configurable home directory for root. Allow
|
||||
systemd to be built using its idea of what root's home directory
|
||||
should be.
|
||||
|
||||
Upstream-Status: Denied
|
||||
Upstream wants to have a unified hierarchy where everyone is
|
||||
using the same root folder.
|
||||
https://github.com/systemd/systemd/issues/541
|
||||
|
||||
Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
---
|
||||
Makefile.am | 2 ++
|
||||
configure.ac | 7 +++++++
|
||||
src/basic/user-util.c | 4 ++--
|
||||
src/nspawn/nspawn.c | 4 ++--
|
||||
units/emergency.service.in | 4 ++--
|
||||
units/rescue.service.in | 4 ++--
|
||||
6 files changed, 17 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 1bcd932c2..c2b4a99d2 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -226,6 +226,7 @@ AM_CPPFLAGS = \
|
||||
-DLIBDIR=\"$(libdir)\" \
|
||||
-DROOTLIBDIR=\"$(rootlibdir)\" \
|
||||
-DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \
|
||||
+ -DROOTHOMEDIR=\"$(roothomedir)\" \
|
||||
-I $(top_srcdir)/src \
|
||||
-I $(top_builddir)/src/basic \
|
||||
-I $(top_srcdir)/src/basic \
|
||||
@@ -6356,6 +6357,7 @@ substitutions = \
|
||||
'|rootlibdir=$(rootlibdir)|' \
|
||||
'|rootlibexecdir=$(rootlibexecdir)|' \
|
||||
'|rootbindir=$(rootbindir)|' \
|
||||
+ '|roothomedir=$(roothomedir)|' \
|
||||
'|bindir=$(bindir)|' \
|
||||
'|SYSTEMCTL=$(rootbindir)/systemctl|' \
|
||||
'|SYSTEMD_NOTIFY=$(rootbindir)/systemd-notify|' \
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 0354ffe6a..b53ca1f1a 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1641,6 +1641,11 @@ AC_ARG_WITH([rootlibdir],
|
||||
[with_rootlibdir=${libdir}])
|
||||
AX_NORMALIZE_PATH([with_rootlibdir])
|
||||
|
||||
+AC_ARG_WITH([roothomedir],
|
||||
+ AS_HELP_STRING([--with-roothomedir=DIR], [Home directory for the root user]),
|
||||
+ [],
|
||||
+ [with_roothomedir=/root])
|
||||
+
|
||||
AC_ARG_WITH([pamlibdir],
|
||||
AS_HELP_STRING([--with-pamlibdir=DIR], [directory for PAM modules]),
|
||||
[],
|
||||
@@ -1733,6 +1738,7 @@ AC_SUBST([pamconfdir], [$with_pamconfdir])
|
||||
AC_SUBST([rpmmacrosdir], [$with_rpmmacrosdir])
|
||||
AC_SUBST([rootprefix], [$with_rootprefix])
|
||||
AC_SUBST([rootlibdir], [$with_rootlibdir])
|
||||
+AC_SUBST([roothomedir], [$with_roothomedir])
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
@@ -1829,6 +1835,7 @@ AC_MSG_RESULT([
|
||||
includedir: ${includedir}
|
||||
lib dir: ${libdir}
|
||||
rootlib dir: ${with_rootlibdir}
|
||||
+ root home dir: ${with_roothomedir}
|
||||
SysV init scripts: ${SYSTEM_SYSVINIT_PATH}
|
||||
SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH}
|
||||
build Python: ${PYTHON}
|
||||
diff --git a/src/basic/user-util.c b/src/basic/user-util.c
|
||||
index c619dad52..662682adf 100644
|
||||
--- a/src/basic/user-util.c
|
||||
+++ b/src/basic/user-util.c
|
||||
@@ -129,7 +129,7 @@ int get_user_creds(
|
||||
*gid = 0;
|
||||
|
||||
if (home)
|
||||
- *home = "/root";
|
||||
+ *home = ROOTHOMEDIR;
|
||||
|
||||
if (shell)
|
||||
*shell = "/bin/sh";
|
||||
@@ -389,7 +389,7 @@ int get_home_dir(char **_h) {
|
||||
/* Hardcode home directory for root to avoid NSS */
|
||||
u = getuid();
|
||||
if (u == 0) {
|
||||
- h = strdup("/root");
|
||||
+ h = strdup(ROOTHOMEDIR);
|
||||
if (!h)
|
||||
return -ENOMEM;
|
||||
|
||||
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
||||
index 8a5fedd4b..7b01ec078 100644
|
||||
--- a/src/nspawn/nspawn.c
|
||||
+++ b/src/nspawn/nspawn.c
|
||||
@@ -2291,7 +2291,7 @@ static int inner_child(
|
||||
if (envp[n_env])
|
||||
n_env++;
|
||||
|
||||
- if ((asprintf((char**)(envp + n_env++), "HOME=%s", home ? home: "/root") < 0) ||
|
||||
+ if ((asprintf((char**)(envp + n_env++), "HOME=%s", home ? home: ROOTHOMEDIR) < 0) ||
|
||||
(asprintf((char**)(envp + n_env++), "USER=%s", arg_user ? arg_user : "root") < 0) ||
|
||||
(asprintf((char**)(envp + n_env++), "LOGNAME=%s", arg_user ? arg_user : "root") < 0))
|
||||
return log_oom();
|
||||
@@ -2373,7 +2373,7 @@ static int inner_child(
|
||||
} else {
|
||||
if (!arg_chdir)
|
||||
/* If we cannot change the directory, we'll end up in /, that is expected. */
|
||||
- (void) chdir(home ?: "/root");
|
||||
+ (void) chdir(home ?: ROOTHOMEDIR);
|
||||
|
||||
execle("/bin/bash", "-bash", NULL, env_use);
|
||||
execle("/bin/sh", "-sh", NULL, env_use);
|
||||
diff --git a/units/emergency.service.in b/units/emergency.service.in
|
||||
index e9eb238b9..32588e48a 100644
|
||||
--- a/units/emergency.service.in
|
||||
+++ b/units/emergency.service.in
|
||||
@@ -15,8 +15,8 @@ Conflicts=syslog.socket
|
||||
Before=shutdown.target
|
||||
|
||||
[Service]
|
||||
-Environment=HOME=/root
|
||||
-WorkingDirectory=-/root
|
||||
+Environment=HOME=@roothomedir@
|
||||
+WorkingDirectory=-@roothomedir@
|
||||
ExecStart=-@rootlibexecdir@/systemd-sulogin-shell emergency
|
||||
Type=idle
|
||||
StandardInput=tty-force
|
||||
diff --git a/units/rescue.service.in b/units/rescue.service.in
|
||||
index 4ab66f485..bd9898f2c 100644
|
||||
--- a/units/rescue.service.in
|
||||
+++ b/units/rescue.service.in
|
||||
@@ -14,8 +14,8 @@ After=sysinit.target plymouth-start.service
|
||||
Before=shutdown.target
|
||||
|
||||
[Service]
|
||||
-Environment=HOME=/root
|
||||
-WorkingDirectory=-/root
|
||||
+Environment=HOME=@roothomedir@
|
||||
+WorkingDirectory=-@roothomedir@
|
||||
ExecStart=-@rootlibexecdir@/systemd-sulogin-shell rescue
|
||||
Type=idle
|
||||
StandardInput=tty-force
|
||||
--
|
||||
2.13.2
|
||||
|
||||
@@ -1,53 +1,51 @@
|
||||
From 0933ca6251808f856b92b0ce8da8696d5febc333 Mon Sep 17 00:00:00 2001
|
||||
From: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Date: Mon, 23 Oct 2017 10:41:39 -0700
|
||||
Subject: [PATCH 01/12] add fallback parse_printf_format implementation
|
||||
From 580d23cf0b32e36a8fb96710336ffef432b3c7ce Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Wed, 28 Feb 2018 21:10:58 -0800
|
||||
Subject: [PATCH] add fallback parse_printf_format implementation
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
Makefile.am | 4 +
|
||||
configure.ac | 2 +
|
||||
meson.build | 1 +
|
||||
src/basic/meson.build | 4 +
|
||||
src/basic/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++++++++++
|
||||
src/basic/parse-printf-format.h | 57 +++++++++
|
||||
src/basic/stdio-util.h | 2 +-
|
||||
src/journal/journal-send.c | 2 +-
|
||||
6 files changed, 338 insertions(+), 2 deletions(-)
|
||||
6 files changed, 337 insertions(+), 2 deletions(-)
|
||||
create mode 100644 src/basic/parse-printf-format.c
|
||||
create mode 100644 src/basic/parse-printf-format.h
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 692d7bb95..3cc8f3451 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -997,6 +997,10 @@ libbasic_la_SOURCES = \
|
||||
src/basic/journal-importer.h \
|
||||
src/basic/journal-importer.c
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 94a16712b..4eabaafe8 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -620,6 +620,7 @@ foreach header : ['crypt.h',
|
||||
'linux/btrfs.h',
|
||||
'linux/memfd.h',
|
||||
'linux/vm_sockets.h',
|
||||
+ 'printf.h',
|
||||
'sys/auxv.h',
|
||||
'valgrind/memcheck.h',
|
||||
'valgrind/valgrind.h',
|
||||
diff --git a/src/basic/meson.build b/src/basic/meson.build
|
||||
index 44cd31ecb..435c6ee02 100644
|
||||
--- a/src/basic/meson.build
|
||||
+++ b/src/basic/meson.build
|
||||
@@ -310,6 +310,10 @@ endforeach
|
||||
|
||||
+if !HAVE_PRINTF_H
|
||||
+libbasic_la_SOURCES += src/basic/parse-printf-format.c
|
||||
basic_sources += [missing_h] + generated_gperf_headers
|
||||
|
||||
+if conf.get('HAVE_PRINTF_H') != 1
|
||||
+ basic_sources += [files('parse-printf-format.c')]
|
||||
+endif
|
||||
+
|
||||
nodist_libbasic_la_SOURCES = \
|
||||
src/basic/errno-from-name.h \
|
||||
src/basic/errno-to-name.h \
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 60e7df5ee..efcdc6c16 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -308,8 +308,10 @@ AC_CHECK_HEADERS([uchar.h], [], [])
|
||||
AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])])
|
||||
AC_CHECK_HEADERS([linux/btrfs.h], [], [])
|
||||
AC_CHECK_HEADERS([linux/memfd.h], [], [])
|
||||
+AC_CHECK_HEADERS([printf.h], [], [])
|
||||
AC_CHECK_HEADERS([linux/vm_sockets.h], [], [], [#include <sys/socket.h>])
|
||||
|
||||
+AM_CONDITIONAL(HAVE_PRINTF_H, [test "x$ac_cv_header_printf_h" = xyes])
|
||||
# unconditionally pull-in librt with old glibc versions
|
||||
AC_SEARCH_LIBS([clock_gettime], [rt], [], [])
|
||||
|
||||
libbasic = static_library(
|
||||
'basic',
|
||||
basic_sources,
|
||||
diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c
|
||||
new file mode 100644
|
||||
index 000000000..49437e544
|
||||
@@ -329,7 +327,7 @@ index 000000000..49437e544
|
||||
+}
|
||||
diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h
|
||||
new file mode 100644
|
||||
index 000000000..4371177b0
|
||||
index 000000000..47be7522d
|
||||
--- /dev/null
|
||||
+++ b/src/basic/parse-printf-format.h
|
||||
@@ -0,0 +1,57 @@
|
||||
@@ -361,7 +359,7 @@ index 000000000..4371177b0
|
||||
+
|
||||
+#include "config.h"
|
||||
+
|
||||
+#ifdef HAVE_PRINTF_H
|
||||
+#if HAVE_PRINTF_H
|
||||
+#include <printf.h>
|
||||
+#else
|
||||
+
|
||||
@@ -391,10 +389,10 @@ index 000000000..4371177b0
|
||||
+
|
||||
+#endif /* HAVE_PRINTF_H */
|
||||
diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
|
||||
index bd1144b4c..c9c95eb54 100644
|
||||
index dbfafba26..8038380d6 100644
|
||||
--- a/src/basic/stdio-util.h
|
||||
+++ b/src/basic/stdio-util.h
|
||||
@@ -19,12 +19,12 @@
|
||||
@@ -20,12 +20,12 @@
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
@@ -409,10 +407,10 @@ index bd1144b4c..c9c95eb54 100644
|
||||
#define xsprintf(buf, fmt, ...) \
|
||||
assert_message_se((size_t) snprintf(buf, ELEMENTSOF(buf), fmt, __VA_ARGS__) < ELEMENTSOF(buf), "xsprintf: " #buf "[] must be big enough")
|
||||
diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
|
||||
index 440fba67c..0236c43c4 100644
|
||||
index 73329ba02..70bb9e0e8 100644
|
||||
--- a/src/journal/journal-send.c
|
||||
+++ b/src/journal/journal-send.c
|
||||
@@ -19,7 +19,6 @@
|
||||
@@ -20,7 +20,6 @@
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
@@ -420,7 +418,7 @@ index 440fba67c..0236c43c4 100644
|
||||
#include <stddef.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
@@ -38,6 +37,7 @@
|
||||
@@ -39,6 +38,7 @@
|
||||
#include "stdio-util.h"
|
||||
#include "string-util.h"
|
||||
#include "util.h"
|
||||
@@ -429,5 +427,5 @@ index 440fba67c..0236c43c4 100644
|
||||
#define SNDBUF_SIZE (8*1024*1024)
|
||||
|
||||
--
|
||||
2.14.2
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
From 33be9052315cc4ec8e929fa238e1f0cc0161ad07 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Wed, 28 Feb 2018 21:15:28 -0800
|
||||
Subject: [PATCH] src/basic/missing.h: check for missing strndupa
|
||||
|
||||
include missing.h for definition of strndupa
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
meson.build | 1 +
|
||||
src/basic/missing.h | 11 +++++++++++
|
||||
src/basic/mkdir.c | 1 +
|
||||
src/basic/parse-util.c | 1 +
|
||||
src/basic/procfs-util.c | 1 +
|
||||
src/shared/pager.c | 1 +
|
||||
src/shared/uid-range.c | 1 +
|
||||
7 files changed, 17 insertions(+)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 4eabaafe8..12811b3f3 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -525,6 +525,7 @@ foreach ident : [
|
||||
['bpf', '''#include <sys/syscall.h>
|
||||
#include <unistd.h>'''],
|
||||
['explicit_bzero' , '''#include <string.h>'''],
|
||||
+ ['strndupa' , '''#include <string.h>'''],
|
||||
]
|
||||
|
||||
have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
|
||||
diff --git a/src/basic/missing.h b/src/basic/missing.h
|
||||
index 84d6d9167..07a8c8364 100644
|
||||
--- a/src/basic/missing.h
|
||||
+++ b/src/basic/missing.h
|
||||
@@ -1187,6 +1187,17 @@ struct input_mask {
|
||||
typedef int32_t key_serial_t;
|
||||
#endif
|
||||
|
||||
+#if ! HAVE_STRNDUPA
|
||||
+#define strndupa(s, n) \
|
||||
+ ({ \
|
||||
+ const char *__old = (s); \
|
||||
+ size_t __len = strnlen(__old, (n)); \
|
||||
+ char *__new = (char *)alloca(__len + 1); \
|
||||
+ __new[__len] = '\0'; \
|
||||
+ (char *)memcpy(__new, __old, __len); \
|
||||
+ })
|
||||
+#endif
|
||||
+
|
||||
#ifndef KEYCTL_JOIN_SESSION_KEYRING
|
||||
#define KEYCTL_JOIN_SESSION_KEYRING 1
|
||||
#endif
|
||||
diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
|
||||
index de4746c86..d51518a5a 100644
|
||||
--- a/src/basic/mkdir.c
|
||||
+++ b/src/basic/mkdir.c
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "path-util.h"
|
||||
#include "stat-util.h"
|
||||
#include "user-util.h"
|
||||
+#include "missing.h"
|
||||
|
||||
int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, bool follow_symlink, mkdir_func_t _mkdir) {
|
||||
struct stat st;
|
||||
diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
|
||||
index 2c22753de..97533721d 100644
|
||||
--- a/src/basic/parse-util.c
|
||||
+++ b/src/basic/parse-util.c
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "parse-util.h"
|
||||
#include "process-util.h"
|
||||
#include "string-util.h"
|
||||
+#include "missing.h"
|
||||
|
||||
int parse_boolean(const char *v) {
|
||||
assert(v);
|
||||
diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
|
||||
index 9bb42cc7b..23bbd9e67 100644
|
||||
--- a/src/basic/procfs-util.c
|
||||
+++ b/src/basic/procfs-util.c
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "procfs-util.h"
|
||||
#include "stdio-util.h"
|
||||
#include "string-util.h"
|
||||
+#include "missing.h"
|
||||
|
||||
int procfs_tasks_get_limit(uint64_t *ret) {
|
||||
_cleanup_free_ char *value = NULL;
|
||||
diff --git a/src/shared/pager.c b/src/shared/pager.c
|
||||
index 75db3c985..84f06bf7d 100644
|
||||
--- a/src/shared/pager.c
|
||||
+++ b/src/shared/pager.c
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "string-util.h"
|
||||
#include "strv.h"
|
||||
#include "terminal-util.h"
|
||||
+#include "missing.h"
|
||||
|
||||
static pid_t pager_pid = 0;
|
||||
|
||||
diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
|
||||
index c38b7cc98..8ec6bf08d 100644
|
||||
--- a/src/shared/uid-range.c
|
||||
+++ b/src/shared/uid-range.c
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "macro.h"
|
||||
#include "uid-range.h"
|
||||
#include "user-util.h"
|
||||
+#include "missing.h"
|
||||
|
||||
static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
|
||||
assert(range);
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 5bbbc2a08a3b4283ec04af0e77e25fb205aa8b82 Mon Sep 17 00:00:00 2001
|
||||
From b45cf4923c7e1f1165925e9b4d7db2108faf2eae Mon Sep 17 00:00:00 2001
|
||||
From: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Date: Mon, 23 Oct 2017 10:50:14 -0700
|
||||
Subject: [PATCH 03/12] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not
|
||||
Subject: [PATCH 15/31] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not
|
||||
defined
|
||||
|
||||
If the standard library doesn't provide brace
|
||||
@@ -11,20 +11,20 @@ Dont use GNU GLOB extentions on non-glibc systems
|
||||
|
||||
Conditionalize use of GLOB_ALTDIRFUNC
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/basic/glob-util.c | 20 +++++++++++++++++---
|
||||
src/test/test-glob-util.c | 17 +++++++++++++++--
|
||||
src/tmpfiles/tmpfiles.c | 8 ++++++++
|
||||
3 files changed, 40 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c
|
||||
index f611c42e4..ad6e2be8d 100644
|
||||
index 6e80a1e23..312bb3fd1 100644
|
||||
--- a/src/basic/glob-util.c
|
||||
+++ b/src/basic/glob-util.c
|
||||
@@ -27,13 +27,18 @@
|
||||
@@ -28,13 +28,18 @@
|
||||
#include "macro.h"
|
||||
#include "path-util.h"
|
||||
#include "strv.h"
|
||||
@@ -44,7 +44,7 @@ index f611c42e4..ad6e2be8d 100644
|
||||
if (!pglob->gl_closedir)
|
||||
pglob->gl_closedir = (void (*)(void *)) closedir;
|
||||
if (!pglob->gl_readdir)
|
||||
@@ -44,10 +49,13 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
|
||||
@@ -45,10 +50,13 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
|
||||
pglob->gl_lstat = lstat;
|
||||
if (!pglob->gl_stat)
|
||||
pglob->gl_stat = stat;
|
||||
@@ -60,7 +60,7 @@ index f611c42e4..ad6e2be8d 100644
|
||||
if (k == GLOB_NOMATCH)
|
||||
return -ENOENT;
|
||||
if (k == GLOB_NOSPACE)
|
||||
@@ -60,6 +68,12 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
|
||||
@@ -61,6 +69,12 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -74,10 +74,10 @@ index f611c42e4..ad6e2be8d 100644
|
||||
_cleanup_globfree_ glob_t g = {};
|
||||
int k;
|
||||
diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c
|
||||
index af866e004..3afa09ada 100644
|
||||
index bd2f8fcfd..a10c77427 100644
|
||||
--- a/src/test/test-glob-util.c
|
||||
+++ b/src/test/test-glob-util.c
|
||||
@@ -29,6 +29,11 @@
|
||||
@@ -30,6 +30,11 @@
|
||||
#include "glob-util.h"
|
||||
#include "macro.h"
|
||||
#include "rm-rf.h"
|
||||
@@ -89,7 +89,7 @@ index af866e004..3afa09ada 100644
|
||||
|
||||
static void test_glob_exists(void) {
|
||||
char name[] = "/tmp/test-glob_exists.XXXXXX";
|
||||
@@ -51,25 +56,33 @@ static void test_glob_exists(void) {
|
||||
@@ -52,25 +57,33 @@ static void test_glob_exists(void) {
|
||||
static void test_glob_no_dot(void) {
|
||||
char template[] = "/tmp/test-glob-util.XXXXXXX";
|
||||
const char *fn;
|
||||
@@ -126,10 +126,10 @@ index af866e004..3afa09ada 100644
|
||||
|
||||
(void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
|
||||
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
|
||||
index 9419c99e2..07027a765 100644
|
||||
index 38cbb739c..88cc543f0 100644
|
||||
--- a/src/tmpfiles/tmpfiles.c
|
||||
+++ b/src/tmpfiles/tmpfiles.c
|
||||
@@ -71,6 +71,12 @@
|
||||
@@ -76,6 +76,12 @@
|
||||
#include "umask-util.h"
|
||||
#include "user-util.h"
|
||||
#include "util.h"
|
||||
@@ -142,7 +142,7 @@ index 9419c99e2..07027a765 100644
|
||||
|
||||
/* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
|
||||
* them in the file system. This is intended to be used to create
|
||||
@@ -1092,7 +1098,9 @@ static int item_do_children(Item *i, const char *path, action_t action) {
|
||||
@@ -1288,7 +1294,9 @@ static int item_do_children(Item *i, const char *path, action_t action) {
|
||||
|
||||
static int glob_item(Item *i, action_t action, bool recursive) {
|
||||
_cleanup_globfree_ glob_t g = {
|
||||
@@ -153,5 +153,5 @@ index 9419c99e2..07027a765 100644
|
||||
int r = 0, k;
|
||||
char **fn;
|
||||
--
|
||||
2.14.2
|
||||
2.13.0
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
From c850b654e71677e0d6292f1345207b9b5acffc33 Mon Sep 17 00:00:00 2001
|
||||
From efc57856f961c1f3bf016c511c53d990db8abdff Mon Sep 17 00:00:00 2001
|
||||
From: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Date: Mon, 23 Oct 2017 11:31:03 -0700
|
||||
Subject: [PATCH 04/12] src/basic/missing.h: check for missing __compar_fn_t
|
||||
Subject: [PATCH 16/31] src/basic/missing.h: check for missing __compar_fn_t
|
||||
typedef
|
||||
|
||||
include missing.h for missing __compar_fn_t
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/basic/missing.h | 5 +++++
|
||||
src/basic/strbuf.c | 1 +
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/src/basic/missing.h b/src/basic/missing.h
|
||||
index 8009888ad..671f341c6 100644
|
||||
index 07a8c8364..1aee3346a 100644
|
||||
--- a/src/basic/missing.h
|
||||
+++ b/src/basic/missing.h
|
||||
@@ -1063,6 +1063,11 @@ struct input_mask {
|
||||
@@ -1162,6 +1162,11 @@ struct input_mask {
|
||||
#define RENAME_NOREPLACE (1 << 0)
|
||||
#endif
|
||||
|
||||
@@ -31,10 +31,10 @@ index 8009888ad..671f341c6 100644
|
||||
#define KCMP_FILE 0
|
||||
#endif
|
||||
diff --git a/src/basic/strbuf.c b/src/basic/strbuf.c
|
||||
index 00aaf9e62..9dc4a584a 100644
|
||||
index 8befffa66..bcb860f95 100644
|
||||
--- a/src/basic/strbuf.c
|
||||
+++ b/src/basic/strbuf.c
|
||||
@@ -23,6 +23,7 @@
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include "alloc-util.h"
|
||||
#include "strbuf.h"
|
||||
@@ -43,5 +43,5 @@ index 00aaf9e62..9dc4a584a 100644
|
||||
/*
|
||||
* Strbuf stores given strings in a single continuous allocated memory
|
||||
--
|
||||
2.14.2
|
||||
2.13.0
|
||||
|
||||
@@ -1,53 +1,54 @@
|
||||
From 21080b6a40d0a4ddd2db8f0fa37686f6fa885d1c Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 23 Oct 2017 11:38:33 -0700
|
||||
Subject: [PATCH 06/12] Include netinet/if_ether.h
|
||||
From f2b0173cd9807864db1ef3b102abaa76ef37e506 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Wed, 28 Feb 2018 21:19:12 -0800
|
||||
Subject: [PATCH 17/31] Include netinet/if_ether.h
|
||||
|
||||
Fixes
|
||||
/mnt/a/oe/build/tmp/work/mips32r2-bec-linux-musl/systemd/1_234-r0/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
|
||||
/path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
|
||||
struct ethhdr {
|
||||
^~~~~~
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
src/libsystemd/sd-netlink/netlink-types.c | 1 +
|
||||
src/network/netdev/tuntap.c | 1 +
|
||||
src/network/networkd-brvlan.c | 1 +
|
||||
src/udev/net/ethtool-util.c | 2 +-
|
||||
src/udev/udev-builtin-net_setup_link.c | 2 +-
|
||||
5 files changed, 5 insertions(+), 2 deletions(-)
|
||||
src/udev/net/ethtool-util.c | 1 +
|
||||
src/udev/udev-builtin-net_setup_link.c | 1 +
|
||||
5 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c
|
||||
index 923f7dd10..b95b1e4b2 100644
|
||||
index 0ee7d6f0d..ef75893a6 100644
|
||||
--- a/src/libsystemd/sd-netlink/netlink-types.c
|
||||
+++ b/src/libsystemd/sd-netlink/netlink-types.c
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <netinet/in.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/socket.h>
|
||||
+#include <netinet/if_ether.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/can/netlink.h>
|
||||
#include <linux/genetlink.h>
|
||||
diff --git a/src/network/netdev/tuntap.c b/src/network/netdev/tuntap.c
|
||||
index 3d6280884..40e58c38f 100644
|
||||
index 4fc9b610a..628c61c57 100644
|
||||
--- a/src/network/netdev/tuntap.c
|
||||
+++ b/src/network/netdev/tuntap.c
|
||||
@@ -18,6 +18,7 @@
|
||||
***/
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
+#include <netinet/if_ether.h>
|
||||
#include <linux/if_tun.h>
|
||||
#include <net/if.h>
|
||||
#include <netinet/if_ether.h>
|
||||
diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c
|
||||
index fa5d3ee7f..e0828962a 100644
|
||||
index 99dd41629..90407c9d8 100644
|
||||
--- a/src/network/networkd-brvlan.c
|
||||
+++ b/src/network/networkd-brvlan.c
|
||||
@@ -18,6 +18,7 @@
|
||||
@@ -19,6 +19,7 @@
|
||||
***/
|
||||
|
||||
#include <netinet/in.h>
|
||||
@@ -56,31 +57,29 @@ index fa5d3ee7f..e0828962a 100644
|
||||
#include <stdbool.h>
|
||||
|
||||
diff --git a/src/udev/net/ethtool-util.c b/src/udev/net/ethtool-util.c
|
||||
index 201fc2343..5f7cc2a0a 100644
|
||||
index 9bdaef8d9..948f89cf8 100644
|
||||
--- a/src/udev/net/ethtool-util.c
|
||||
+++ b/src/udev/net/ethtool-util.c
|
||||
@@ -16,7 +16,7 @@
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
@@ -18,6 +18,7 @@
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
-
|
||||
|
||||
+#include <netinet/if_ether.h>
|
||||
#include <net/if.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <linux/ethtool.h>
|
||||
diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c
|
||||
index 8e4777513..d01fff2a4 100644
|
||||
index 40158e0af..b24b3fce8 100644
|
||||
--- a/src/udev/udev-builtin-net_setup_link.c
|
||||
+++ b/src/udev/udev-builtin-net_setup_link.c
|
||||
@@ -16,7 +16,7 @@
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
@@ -18,6 +18,7 @@
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
-
|
||||
|
||||
+#include <netinet/if_ether.h>
|
||||
#include "alloc-util.h"
|
||||
#include "link-config.h"
|
||||
#include "log.h"
|
||||
--
|
||||
2.14.2
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
From 690eeef9590c7ef1d9d2c31d8c1d5d8071da8c4c Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Mon, 26 Feb 2018 17:21:11 +0800
|
||||
Subject: [PATCH 18/31] check for missing canonicalize_file_name
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
meson.build | 2 ++
|
||||
src/basic/missing_syscall.h | 6 ++++++
|
||||
2 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 12811b3f3..f6515e97c 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -520,6 +520,8 @@ foreach ident : [
|
||||
['kcmp', '''#include <linux/kcmp.h>'''],
|
||||
['keyctl', '''#include <sys/types.h>
|
||||
#include <keyutils.h>'''],
|
||||
+ ['canonicalize_file_name', '''#define _GNU_SOURCE
|
||||
+ #include <stdlib.h>'''],
|
||||
['copy_file_range', '''#include <sys/syscall.h>
|
||||
#include <unistd.h>'''],
|
||||
['bpf', '''#include <sys/syscall.h>
|
||||
diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
|
||||
index c938d0d97..308b9472b 100644
|
||||
--- a/src/basic/missing_syscall.h
|
||||
+++ b/src/basic/missing_syscall.h
|
||||
@@ -31,6 +31,12 @@ static inline int pivot_root(const char *new_root, const char *put_old) {
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if !HAVE_CANONICALIZE_FILE_NAME
|
||||
+static inline char *canonicalize_file_name(const char *path) {
|
||||
+ return realpath(path, NULL);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/* ======================================================================= */
|
||||
|
||||
#if !HAVE_MEMFD_CREATE
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
From 1355457092b02a15c646fc1c72e68b694a86dd99 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 22 Feb 2016 06:02:38 +0000
|
||||
Subject: [PATCH 12/14] check for uchar.h in configure
|
||||
|
||||
Use ifdef to include uchar.h
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Upstream-Status: Pending
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
src/basic/missing.h | 2 ++
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 1150ca50e..60e7df5ee 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -304,6 +304,7 @@ AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = "xyes"])
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
+AC_CHECK_HEADERS([uchar.h], [], [])
|
||||
AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])])
|
||||
AC_CHECK_HEADERS([linux/btrfs.h], [], [])
|
||||
AC_CHECK_HEADERS([linux/memfd.h], [], [])
|
||||
diff --git a/src/basic/missing.h b/src/basic/missing.h
|
||||
index 25a11f351..d631b7e3e 100644
|
||||
--- a/src/basic/missing.h
|
||||
+++ b/src/basic/missing.h
|
||||
@@ -37,7 +37,9 @@
|
||||
#include <sys/resource.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/syscall.h>
|
||||
+#ifdef HAVE_UCHAR_H
|
||||
#include <uchar.h>
|
||||
+#endif
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef HAVE_AUDIT
|
||||
--
|
||||
2.13.2
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From f5f313915d78bc43eb96e2aafb8ce3cda304c277 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Mon, 26 Feb 2018 17:27:56 +0800
|
||||
Subject: [PATCH 19/31] Do not enable nss tests if nss-systemd is not enabled
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
src/test/meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/test/meson.build b/src/test/meson.build
|
||||
index 1db8aa107..df3a1f5c5 100644
|
||||
--- a/src/test/meson.build
|
||||
+++ b/src/test/meson.build
|
||||
@@ -646,7 +646,7 @@ tests += [
|
||||
[['src/test/test-nss.c'],
|
||||
[],
|
||||
[libdl],
|
||||
- '', 'manual'],
|
||||
+ 'ENABLE_NSS_SYSTEMD', 'manual'],
|
||||
]
|
||||
|
||||
############################################################
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -1,20 +1,21 @@
|
||||
From 75f4e7f167de533a160ee1af2a03fba4c5a5ffc6 Mon Sep 17 00:00:00 2001
|
||||
From d63d2fedcd80e58ee53655aeaf2836d4b0a14652 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 23 Oct 2017 12:33:22 -0700
|
||||
Subject: [PATCH 09/12] test-hexdecoct.c: Include missing.h form strndupa
|
||||
Subject: [PATCH 20/31] test-hexdecoct.c: Include missing.h for strndupa
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
src/test/test-hexdecoct.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
|
||||
index fcae427e7..5eb5e2ed7 100644
|
||||
index 3e25a0bac..ab3e508f1 100644
|
||||
--- a/src/test/test-hexdecoct.c
|
||||
+++ b/src/test/test-hexdecoct.c
|
||||
@@ -21,6 +21,7 @@
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "hexdecoct.h"
|
||||
#include "macro.h"
|
||||
#include "string-util.h"
|
||||
@@ -23,5 +24,5 @@ index fcae427e7..5eb5e2ed7 100644
|
||||
static void test_hexchar(void) {
|
||||
assert_se(hexchar(0xa) == 'a');
|
||||
--
|
||||
2.14.2
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
From dfea4b98844795a0cd14fdaf40c67df389dbd27e Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Wed, 28 Feb 2018 21:25:22 -0800
|
||||
Subject: [PATCH 21/31] test-sizeof.c: Disable tests for missing typedefs in
|
||||
musl
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
src/test/test-sizeof.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
|
||||
index aed6db842..0de6fa63c 100644
|
||||
--- a/src/test/test-sizeof.c
|
||||
+++ b/src/test/test-sizeof.c
|
||||
@@ -50,8 +50,10 @@ int main(void) {
|
||||
info(unsigned);
|
||||
info(long unsigned);
|
||||
info(long long unsigned);
|
||||
+#ifdef __GLIBC__
|
||||
info(__syscall_ulong_t);
|
||||
info(__syscall_slong_t);
|
||||
+#endif
|
||||
|
||||
info(float);
|
||||
info(double);
|
||||
@@ -61,7 +63,9 @@ int main(void) {
|
||||
info(ssize_t);
|
||||
info(time_t);
|
||||
info(usec_t);
|
||||
+#ifdef __GLIBC__
|
||||
info(__time_t);
|
||||
+#endif
|
||||
info(pid_t);
|
||||
info(uid_t);
|
||||
info(gid_t);
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
From 2eb45f5a0a8bfb8bdca084587ad28e5001f3cc4b Mon Sep 17 00:00:00 2001
|
||||
From d343757d629402c70ca8e5eaa551deaf175c96f3 Mon Sep 17 00:00:00 2001
|
||||
From: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Date: Thu, 18 Sep 2014 15:24:56 +0200
|
||||
Subject: [PATCH 11/12] don't use glibc-specific qsort_r
|
||||
Subject: [PATCH 22/31] don't use glibc-specific qsort_r
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
src/hwdb/hwdb.c | 18 +++++++++++-------
|
||||
src/udev/udevadm-hwdb.c | 16 ++++++++++------
|
||||
2 files changed, 21 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/hwdb/hwdb.c b/src/hwdb/hwdb.c
|
||||
index 793398ca6..669b00818 100644
|
||||
index 4540260f9..81aca7a9b 100644
|
||||
--- a/src/hwdb/hwdb.c
|
||||
+++ b/src/hwdb/hwdb.c
|
||||
@@ -151,13 +151,12 @@ static void trie_free(struct trie *trie) {
|
||||
@@ -152,13 +152,12 @@ static void trie_free(struct trie *trie) {
|
||||
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
|
||||
|
||||
@@ -33,7 +33,7 @@ index 793398ca6..669b00818 100644
|
||||
}
|
||||
|
||||
static int trie_node_add_value(struct trie *trie, struct trie_node *node,
|
||||
@@ -182,7 +181,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
|
||||
@@ -183,7 +182,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
|
||||
.value_off = v,
|
||||
};
|
||||
|
||||
@@ -45,7 +45,7 @@ index 793398ca6..669b00818 100644
|
||||
if (val) {
|
||||
/* At this point we have 2 identical properties on the same match-string.
|
||||
* Since we process files in order, we just replace the previous value.
|
||||
@@ -207,7 +209,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
|
||||
@@ -208,7 +210,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
|
||||
node->values[node->values_count].file_priority = file_priority;
|
||||
node->values[node->values_count].line_number = line_number;
|
||||
node->values_count++;
|
||||
@@ -57,10 +57,10 @@ index 793398ca6..669b00818 100644
|
||||
}
|
||||
|
||||
diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c
|
||||
index 69b0b9025..fbd213300 100644
|
||||
index ab5dc7ab6..c777e30ab 100644
|
||||
--- a/src/udev/udevadm-hwdb.c
|
||||
+++ b/src/udev/udevadm-hwdb.c
|
||||
@@ -128,13 +128,13 @@ static void trie_node_cleanup(struct trie_node *node) {
|
||||
@@ -130,13 +130,13 @@ static void trie_node_cleanup(struct trie_node *node) {
|
||||
free(node);
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ index 69b0b9025..fbd213300 100644
|
||||
}
|
||||
|
||||
static int trie_node_add_value(struct trie *trie, struct trie_node *node,
|
||||
@@ -155,7 +155,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
|
||||
@@ -157,7 +157,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
|
||||
.value_off = v,
|
||||
};
|
||||
|
||||
@@ -89,7 +89,7 @@ index 69b0b9025..fbd213300 100644
|
||||
if (val) {
|
||||
/* replace existing earlier key with new value */
|
||||
val->value_off = v;
|
||||
@@ -172,7 +174,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
|
||||
@@ -174,7 +176,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
|
||||
node->values[node->values_count].key_off = k;
|
||||
node->values[node->values_count].value_off = v;
|
||||
node->values_count++;
|
||||
@@ -101,5 +101,5 @@ index 69b0b9025..fbd213300 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.14.2
|
||||
2.13.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 9621618c701a2d5eb3e26f40c68354d4dfb8f872 Mon Sep 17 00:00:00 2001
|
||||
From 7b802ada1207ed00ed3867b9804dd0f316641b9b Mon Sep 17 00:00:00 2001
|
||||
From: Andre McCurdy <armccurdy@gmail.com>
|
||||
Date: Tue, 10 Oct 2017 14:33:30 -0700
|
||||
Subject: [PATCH 12/12] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
|
||||
Subject: [PATCH 23/31] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
|
||||
|
||||
Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
|
||||
thing to do and it's not portable (not supported by musl). See:
|
||||
@@ -22,19 +22,19 @@ The laccess() macros was added to systemd some time ago and it's not
|
||||
clear if or why it needs to return success for broken symlinks. Maybe
|
||||
just historical and not actually necessary or desired behaviour?
|
||||
|
||||
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
|
||||
---
|
||||
src/basic/fs-util.h | 22 +++++++++++++++++++++-
|
||||
src/shared/base-filesystem.c | 6 +++---
|
||||
2 files changed, 24 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h
|
||||
index 094acf179..cdbc0ae72 100644
|
||||
index 4dba1ea56..9c4b02ecc 100644
|
||||
--- a/src/basic/fs-util.h
|
||||
+++ b/src/basic/fs-util.h
|
||||
@@ -48,7 +48,27 @@ int fchmod_umask(int fd, mode_t mode);
|
||||
@@ -50,7 +50,27 @@ int fchmod_umask(int fd, mode_t mode);
|
||||
|
||||
int fd_warn_permissions(const char *path, int fd);
|
||||
|
||||
@@ -64,10 +64,10 @@ index 094acf179..cdbc0ae72 100644
|
||||
int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
|
||||
int touch(const char *path);
|
||||
diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
|
||||
index 903a18786..2f6052ee7 100644
|
||||
index 3c25aa534..574ca71c7 100644
|
||||
--- a/src/shared/base-filesystem.c
|
||||
+++ b/src/shared/base-filesystem.c
|
||||
@@ -70,7 +70,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
|
||||
@@ -71,7 +71,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
|
||||
return log_error_errno(errno, "Failed to open root file system: %m");
|
||||
|
||||
for (i = 0; i < ELEMENTSOF(table); i ++) {
|
||||
@@ -76,7 +76,7 @@ index 903a18786..2f6052ee7 100644
|
||||
continue;
|
||||
|
||||
if (table[i].target) {
|
||||
@@ -78,7 +78,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
|
||||
@@ -79,7 +79,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
|
||||
|
||||
/* check if one of the targets exists */
|
||||
NULSTR_FOREACH(s, table[i].target) {
|
||||
@@ -85,7 +85,7 @@ index 903a18786..2f6052ee7 100644
|
||||
continue;
|
||||
|
||||
/* check if a specific file exists at the target path */
|
||||
@@ -89,7 +89,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
|
||||
@@ -90,7 +90,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
|
||||
if (!p)
|
||||
return log_oom();
|
||||
|
||||
@@ -95,5 +95,5 @@ index 903a18786..2f6052ee7 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.14.2
|
||||
2.13.0
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
From 4b6733544beb662a0f77310302fae1fb7b76d167 Mon Sep 17 00:00:00 2001
|
||||
From 76c71aa889155f29be1d5d2b74a2c4faa5909c8c Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 12 Sep 2015 18:53:31 +0000
|
||||
Subject: [PATCH 13/13] comparison_fn_t is glibc specific, use raw signature in
|
||||
Subject: [PATCH 24/31] comparison_fn_t is glibc specific, use raw signature in
|
||||
function pointer
|
||||
|
||||
make it work with musl where comparison_fn_t is not provided
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/basic/util.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/basic/util.h b/src/basic/util.h
|
||||
index c7da6c39b..87f62b891 100644
|
||||
index 9d1b10756..12db53a93 100644
|
||||
--- a/src/basic/util.h
|
||||
+++ b/src/basic/util.h
|
||||
@@ -98,7 +98,7 @@ void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
|
||||
@@ -95,7 +95,7 @@ void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
|
||||
* Normal qsort requires base to be nonnull. Here were require
|
||||
* that only if nmemb > 0.
|
||||
*/
|
||||
@@ -27,5 +27,5 @@ index c7da6c39b..87f62b891 100644
|
||||
return;
|
||||
|
||||
--
|
||||
2.14.2
|
||||
2.13.0
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
From 3ca5326485cb19e775af6de615c17be66e44e472 Mon Sep 17 00:00:00 2001
|
||||
From a0b1496322f4d7ce83f4fbfd2a90b91d0721f643 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 24 Oct 2017 23:08:24 -0700
|
||||
Subject: [PATCH] Define _PATH_WTMPX and _PATH_UTMPX if not defined
|
||||
Subject: [PATCH 25/31] Define _PATH_WTMPX and _PATH_UTMPX if not defined
|
||||
|
||||
Musl needs these defines
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/shared/utmp-wtmp.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/src/shared/utmp-wtmp.c b/src/shared/utmp-wtmp.c
|
||||
index 9750dcd81..bd55d74a1 100644
|
||||
index cab1cd6a2..f5eedac18 100644
|
||||
--- a/src/shared/utmp-wtmp.c
|
||||
+++ b/src/shared/utmp-wtmp.c
|
||||
@@ -27,6 +27,7 @@
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <unistd.h>
|
||||
@@ -24,7 +24,7 @@ index 9750dcd81..bd55d74a1 100644
|
||||
#include <utmpx.h>
|
||||
|
||||
#include "alloc-util.h"
|
||||
@@ -41,6 +42,13 @@
|
||||
@@ -42,6 +43,13 @@
|
||||
#include "util.h"
|
||||
#include "utmp-wtmp.h"
|
||||
|
||||
@@ -39,5 +39,5 @@ index 9750dcd81..bd55d74a1 100644
|
||||
struct utmpx *found, lookup = { .ut_type = RUN_LVL };
|
||||
int r;
|
||||
--
|
||||
2.14.3
|
||||
2.13.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From b2d4171c6e521cf1e70331fb769234d63a4a6d44 Mon Sep 17 00:00:00 2001
|
||||
From 88c48ea84db6fda19dfaeb64545fccf8fa0525ec Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 27 Oct 2017 13:00:41 -0700
|
||||
Subject: [PATCH] Use uintmax_t for handling rlim_t
|
||||
Subject: [PATCH 26/31] Use uintmax_t for handling rlim_t
|
||||
|
||||
PRIu{32,64} is not right format to represent rlim_t type
|
||||
therefore use %ju and typecast the rlim_t variables to
|
||||
@@ -15,20 +15,20 @@ execute.c:3446:36: error: format '%lu' expects argument of type 'long unsigned i
|
||||
| prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/7199]
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/basic/format-util.h | 8 --------
|
||||
src/basic/rlimit-util.c | 8 ++++----
|
||||
src/core/execute.c | 8 ++++----
|
||||
3 files changed, 8 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/src/basic/format-util.h b/src/basic/format-util.h
|
||||
index ae42a8f89..144249cd6 100644
|
||||
index d9a78f781..9a1bc21d7 100644
|
||||
--- a/src/basic/format-util.h
|
||||
+++ b/src/basic/format-util.h
|
||||
@@ -60,14 +60,6 @@
|
||||
@@ -61,14 +61,6 @@
|
||||
# define PRI_TIMEX "li"
|
||||
#endif
|
||||
|
||||
@@ -44,10 +44,10 @@ index ae42a8f89..144249cd6 100644
|
||||
# define DEV_FMT "%" PRIu64
|
||||
#elif SIZEOF_DEV_T == 4
|
||||
diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
|
||||
index ca834df62..41fcebb74 100644
|
||||
index 00648211d..df3d9ecc1 100644
|
||||
--- a/src/basic/rlimit-util.c
|
||||
+++ b/src/basic/rlimit-util.c
|
||||
@@ -284,13 +284,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
|
||||
@@ -286,13 +286,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
|
||||
if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
|
||||
s = strdup("infinity");
|
||||
else if (rl->rlim_cur >= RLIM_INFINITY)
|
||||
@@ -66,10 +66,10 @@ index ca834df62..41fcebb74 100644
|
||||
if (!s)
|
||||
return -ENOMEM;
|
||||
diff --git a/src/core/execute.c b/src/core/execute.c
|
||||
index d72e5bf08..d38946002 100644
|
||||
index 0df3971df..aabdddb68 100644
|
||||
--- a/src/core/execute.c
|
||||
+++ b/src/core/execute.c
|
||||
@@ -3443,10 +3443,10 @@ void exec_context_dump(ExecContext *c, FILE* f, const char *prefix) {
|
||||
@@ -3991,10 +3991,10 @@ void exec_context_dump(ExecContext *c, FILE* f, const char *prefix) {
|
||||
|
||||
for (i = 0; i < RLIM_NLIMITS; i++)
|
||||
if (c->rlimit[i]) {
|
||||
@@ -85,5 +85,5 @@ index d72e5bf08..d38946002 100644
|
||||
|
||||
if (c->ioprio_set) {
|
||||
--
|
||||
2.14.3
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
From 5354eb767d1eba2ec41eb273f6b657f4a630ca8a Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Tue, 9 Jan 2018 14:45:46 +0800
|
||||
Subject: [PATCH 27/31] remove nobody user/group checking
|
||||
|
||||
Upstream-Status: Inappropriate [OE Specific]
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
meson.build | 37 -------------------------------------
|
||||
1 file changed, 37 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index f6515e97c..1b947adac 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -700,43 +700,6 @@ substs.set('containeruidbasemax', container_uid_base_max)
|
||||
nobody_user = get_option('nobody-user')
|
||||
nobody_group = get_option('nobody-group')
|
||||
|
||||
-getent_result = run_command('getent', 'passwd', '65534')
|
||||
-if getent_result.returncode() == 0
|
||||
- name = getent_result.stdout().split(':')[0]
|
||||
- if name != nobody_user
|
||||
- message('WARNING:\n' +
|
||||
- ' The local user with the UID 65534 does not match the configured user name "@0@" of the nobody user (its name is @1@).\n'.format(nobody_user, name) +
|
||||
- ' Your build will result in an user table setup that is incompatible with the local system.')
|
||||
- endif
|
||||
-endif
|
||||
-id_result = run_command('id', '-u', nobody_user)
|
||||
-if id_result.returncode() == 0
|
||||
- id = id_result.stdout().to_int()
|
||||
- if id != 65534
|
||||
- message('WARNING:\n' +
|
||||
- ' The local user with the configured user name "@0@" of the nobody user does not have UID 65534 (it has @1@).\n'.format(nobody_user, id) +
|
||||
- ' Your build will result in an user table setup that is incompatible with the local system.')
|
||||
- endif
|
||||
-endif
|
||||
-
|
||||
-getent_result = run_command('getent', 'group', '65534')
|
||||
-if getent_result.returncode() == 0
|
||||
- name = getent_result.stdout().split(':')[0]
|
||||
- if name != nobody_group
|
||||
- message('WARNING:\n' +
|
||||
- ' The local group with the GID 65534 does not match the configured group name "@0@" of the nobody group (its name is @1@).\n'.format(nobody_group, name) +
|
||||
- ' Your build will result in an group table setup that is incompatible with the local system.')
|
||||
- endif
|
||||
-endif
|
||||
-id_result = run_command('id', '-g', nobody_group)
|
||||
-if id_result.returncode() == 0
|
||||
- id = id_result.stdout().to_int()
|
||||
- if id != 65534
|
||||
- message('WARNING:\n' +
|
||||
- ' The local group with the configured group name "@0@" of the nobody group does not have UID 65534 (it has @1@).\n'.format(nobody_group, id) +
|
||||
- ' Your build will result in an group table setup that is incompatible with the local system.')
|
||||
- endif
|
||||
-endif
|
||||
if nobody_user != nobody_group and not (nobody_user == 'nobody' and nobody_group == 'nogroup')
|
||||
message('WARNING:\n' +
|
||||
' The configured user name "@0@" and group name "@0@" of the nobody user/group are not equivalent.\n'.format(nobody_user, nobody_group) +
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From 03cdd33be62db4c72a7fcf21b61d0d056c23c6a9 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Wed, 28 Feb 2018 21:36:32 -0800
|
||||
Subject: [PATCH 28/31] add missing FTW_ macros for musl
|
||||
|
||||
This is to avoid build failures like below for musl.
|
||||
|
||||
locale-util.c:296:24: error: 'FTW_STOP' undeclared
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
src/basic/missing.h | 20 ++++++++++++++++++++
|
||||
1 file changed, 20 insertions(+)
|
||||
|
||||
diff --git a/src/basic/missing.h b/src/basic/missing.h
|
||||
index 1aee3346a..5b9fde692 100644
|
||||
--- a/src/basic/missing.h
|
||||
+++ b/src/basic/missing.h
|
||||
@@ -207,6 +207,26 @@ struct sockaddr_vm {
|
||||
#define BTRFS_QGROUP_LEVEL_SHIFT 48
|
||||
#endif
|
||||
|
||||
+#ifndef FTW_ACTIONRETVAL
|
||||
+#define FTW_ACTIONRETVAL 16
|
||||
+#endif
|
||||
+
|
||||
+#ifndef FTW_CONTINUE
|
||||
+#define FTW_CONTINUE 0
|
||||
+#endif
|
||||
+
|
||||
+#ifndef FTW_STOP
|
||||
+#define FTW_STOP 1
|
||||
+#endif
|
||||
+
|
||||
+#ifndef FTW_SKIP_SUBTREE
|
||||
+#define FTW_SKIP_SUBTREE 2
|
||||
+#endif
|
||||
+
|
||||
+#ifndef FTW_SKIP_SIBLINGS
|
||||
+#define FTW_SKIP_SIBLINGS 3
|
||||
+#endif
|
||||
+
|
||||
#if ! HAVE_LINUX_BTRFS_H
|
||||
#define BTRFS_IOC_QGROUP_ASSIGN _IOW(BTRFS_IOCTL_MAGIC, 41, \
|
||||
struct btrfs_ioctl_qgroup_assign_args)
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
From 5845c82d1016a3e3f2696180d5ac91b46950540a Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Tue, 27 Feb 2018 12:56:21 +0800
|
||||
Subject: [PATCH 29/31] nss-mymachines: Build conditionally when
|
||||
ENABLE_MYHOSTNAME is set
|
||||
|
||||
Fixes build failures when building with --disable-myhostname
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
meson.build | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 1b947adac..1ed4dde72 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -1351,12 +1351,15 @@ test_dlopen = executable(
|
||||
link_with : [libbasic],
|
||||
dependencies : [libdl])
|
||||
|
||||
-foreach tuple : [['myhostname', 'ENABLE_MYHOSTNAME'],
|
||||
- ['systemd', 'ENABLE_NSS_SYSTEMD'],
|
||||
- ['mymachines', 'ENABLE_MACHINED'],
|
||||
- ['resolve', 'ENABLE_RESOLVE']]
|
||||
+foreach tuple : [['myhostname', 'ENABLE_MYHOSTNAME', ''],
|
||||
+ ['systemd', 'ENABLE_NSS_SYSTEMD', ''],
|
||||
+ ['mymachines', 'ENABLE_MACHINED', 'ENABLE_MYHOSTNAME'],
|
||||
+ ['resolve', 'ENABLE_RESOLVE', '']]
|
||||
|
||||
condition = tuple[1] == '' or conf.get(tuple[1]) == 1
|
||||
+ if tuple[2] != '' and condition
|
||||
+ condition = conf.get(tuple[2]) == 1
|
||||
+ endif
|
||||
if condition
|
||||
module = tuple[0]
|
||||
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From b7eacdf0388f930fc5271bdecfa46612c71dd65c Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Tue, 27 Feb 2018 13:27:47 +0800
|
||||
Subject: [PATCH 30/31] fix missing of __register_atfork for non-glibc builds
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
src/basic/process-util.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/src/basic/process-util.c b/src/basic/process-util.c
|
||||
index dc7c9ef9e..85ce8a0cc 100644
|
||||
--- a/src/basic/process-util.c
|
||||
+++ b/src/basic/process-util.c
|
||||
@@ -39,6 +39,9 @@
|
||||
#if HAVE_VALGRIND_VALGRIND_H
|
||||
#include <valgrind/valgrind.h>
|
||||
#endif
|
||||
+#ifndef __GLIBC__
|
||||
+#include <pthread.h>
|
||||
+#endif
|
||||
|
||||
#include "alloc-util.h"
|
||||
#include "architecture.h"
|
||||
@@ -1112,11 +1115,15 @@ void reset_cached_pid(void) {
|
||||
cached_pid = CACHED_PID_UNSET;
|
||||
}
|
||||
|
||||
+#ifdef __GLIBC__
|
||||
/* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
|
||||
* headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
|
||||
* libpthread, as it is part of glibc anyway. */
|
||||
extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void * __dso_handle);
|
||||
extern void* __dso_handle __attribute__ ((__weak__));
|
||||
+#else
|
||||
+#define __register_atfork(prepare,parent,child,dso) pthread_atfork(prepare,parent,child)
|
||||
+#endif
|
||||
|
||||
pid_t getpid_cached(void) {
|
||||
pid_t current_value;
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From adcd7e426fcd80e754274a730221d1a1f49dbc21 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Tue, 27 Feb 2018 14:01:30 +0800
|
||||
Subject: [PATCH 31/31] fix missing ULONG_LONG_MAX definition in case of musl
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
src/basic/missing.h | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/basic/missing.h b/src/basic/missing.h
|
||||
index 5b9fde692..a922f1346 100644
|
||||
--- a/src/basic/missing.h
|
||||
+++ b/src/basic/missing.h
|
||||
@@ -72,6 +72,10 @@ struct sockaddr_vm {
|
||||
};
|
||||
#endif /* !HAVE_LINUX_VM_SOCKETS_H */
|
||||
|
||||
+#ifndef ULONG_LONG_MAX
|
||||
+#define ULONG_LONG_MAX ULLONG_MAX
|
||||
+#endif
|
||||
+
|
||||
#ifndef RLIMIT_RTTIME
|
||||
#define RLIMIT_RTTIME 15
|
||||
#endif
|
||||
--
|
||||
2.13.0
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd tests
|
||||
tar -C test -xJf test/sys.tar.xz
|
||||
make check-TESTS
|
||||
cd ..
|
||||
@@ -8,53 +8,54 @@ DEPENDS = "kmod intltool-native gperf-native acl readline libcap libcgroup util-
|
||||
|
||||
SECTION = "base/shell"
|
||||
|
||||
inherit useradd pkgconfig autotools perlnative update-rc.d update-alternatives qemu systemd ptest gettext bash-completion manpages distro_features_check
|
||||
inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages distro_features_check
|
||||
|
||||
# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
|
||||
# that we don't build both udev and systemd in world builds.
|
||||
REQUIRED_DISTRO_FEATURES = "systemd"
|
||||
|
||||
SRC_URI = "git://github.com/systemd/systemd.git;protocol=git \
|
||||
file://touchscreen.rules \
|
||||
SRC_URI += "file://touchscreen.rules \
|
||||
file://00-create-volatile.conf \
|
||||
file://init \
|
||||
file://run-ptest \
|
||||
file://0004-Use-getenv-when-secure-versions-are-not-available.patch \
|
||||
file://0005-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
|
||||
file://0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
|
||||
file://0010-implment-systemd-sysv-install-for-OE.patch \
|
||||
file://0011-nss-mymachines-Build-conditionally-when-HAVE_MYHOSTN.patch \
|
||||
file://0012-rules-whitelist-hd-devices.patch \
|
||||
file://0013-Make-root-s-home-directory-configurable.patch \
|
||||
file://0014-Revert-rules-remove-firmware-loading-rules.patch \
|
||||
file://0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch \
|
||||
file://0017-remove-duplicate-include-uchar.h.patch \
|
||||
file://0018-check-for-uchar.h-in-configure.patch \
|
||||
file://0019-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \
|
||||
file://0020-rules-watch-metadata-changes-in-ide-devices.patch \
|
||||
file://0001-add-fallback-parse_printf_format-implementation.patch \
|
||||
file://0002-src-basic-missing.h-check-for-missing-strndupa.patch \
|
||||
file://0003-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
|
||||
file://0004-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch \
|
||||
file://0006-Include-netinet-if_ether.h.patch \
|
||||
file://0007-check-for-missing-canonicalize_file_name.patch \
|
||||
file://0008-Do-not-enable-nss-tests.patch \
|
||||
file://0009-test-hexdecoct.c-Include-missing.h-form-strndupa.patch \
|
||||
file://0010-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
|
||||
file://0011-don-t-use-glibc-specific-qsort_r.patch \
|
||||
file://0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
|
||||
file://0013-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch \
|
||||
file://0001-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch \
|
||||
file://0001-Use-uintmax_t-for-handling-rlim_t.patch \
|
||||
file://0001-core-evaluate-presets-after-generators-have-run-6526.patch \
|
||||
file://0001-main-skip-many-initialization-steps-when-running-in-.patch \
|
||||
file://0001-meson-update-header-file-to-detect-memfd_create.patch \
|
||||
file://0002-configure.ac-Check-if-memfd_create-is-already-define.patch \
|
||||
file://0003-fileio-include-sys-mman.h.patch \
|
||||
file://0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
|
||||
file://0001-Use-getenv-when-secure-versions-are-not-available.patch \
|
||||
file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
|
||||
file://0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
|
||||
file://0004-implment-systemd-sysv-install-for-OE.patch \
|
||||
file://0005-rules-whitelist-hd-devices.patch \
|
||||
file://0006-Make-root-s-home-directory-configurable.patch \
|
||||
file://0007-Revert-rules-remove-firmware-loading-rules.patch \
|
||||
file://0008-Revert-udev-remove-userspace-firmware-loading-suppor.patch \
|
||||
file://0009-remove-duplicate-include-uchar.h.patch \
|
||||
file://0010-check-for-uchar.h-in-meson.build.patch \
|
||||
file://0011-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \
|
||||
file://0012-rules-watch-metadata-changes-in-ide-devices.patch \
|
||||
file://0013-add-fallback-parse_printf_format-implementation.patch \
|
||||
file://0014-src-basic-missing.h-check-for-missing-strndupa.patch \
|
||||
file://0015-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
|
||||
file://0016-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch \
|
||||
file://0017-Include-netinet-if_ether.h.patch \
|
||||
file://0018-check-for-missing-canonicalize_file_name.patch \
|
||||
file://0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch \
|
||||
file://0020-test-hexdecoct.c-Include-missing.h-for-strndupa.patch \
|
||||
file://0021-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
|
||||
file://0022-don-t-use-glibc-specific-qsort_r.patch \
|
||||
file://0023-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
|
||||
file://0024-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch \
|
||||
file://0025-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch \
|
||||
file://0026-Use-uintmax_t-for-handling-rlim_t.patch \
|
||||
file://0027-remove-nobody-user-group-checking.patch \
|
||||
file://0028-add-missing-FTW_-macros-for-musl.patch \
|
||||
file://0029-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch \
|
||||
file://0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
|
||||
file://0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch \
|
||||
"
|
||||
SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"
|
||||
|
||||
# Workaround undefined reference to `__stack_chk_fail_local' on qemux86 and qemuppc for musl
|
||||
SRC_URI_append_libc-musl_qemux86 = " file://0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch"
|
||||
SRC_URI_append_libc-musl_qemuppc = " file://0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch"
|
||||
|
||||
PAM_PLUGINS = " \
|
||||
pam-plugin-unix \
|
||||
pam-plugin-loginuid \
|
||||
@@ -80,7 +81,7 @@ PACKAGECONFIG ??= " \
|
||||
polkit \
|
||||
quotacheck \
|
||||
randomseed \
|
||||
resolved \
|
||||
resolve \
|
||||
smack \
|
||||
sysusers \
|
||||
timedated \
|
||||
@@ -94,7 +95,7 @@ PACKAGECONFIG_remove_libc-musl = " \
|
||||
localed \
|
||||
myhostname \
|
||||
nss \
|
||||
resolved \
|
||||
resolve \
|
||||
selinux \
|
||||
smack \
|
||||
sysusers \
|
||||
@@ -106,72 +107,59 @@ PACKAGECONFIG_remove_libc-musl = " \
|
||||
# systemd-serialgetty.bb - not enabled by default.
|
||||
PACKAGECONFIG[serial-getty-generator] = ""
|
||||
|
||||
PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit"
|
||||
PACKAGECONFIG[backlight] = "--enable-backlight,--disable-backlight"
|
||||
PACKAGECONFIG[binfmt] = "--enable-binfmt,--disable-binfmt"
|
||||
PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2"
|
||||
PACKAGECONFIG[coredump] = "--enable-coredump,--disable-coredump"
|
||||
PACKAGECONFIG[cryptsetup] = "--enable-libcryptsetup,--disable-libcryptsetup,cryptsetup"
|
||||
PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
|
||||
PACKAGECONFIG[efi] = "--enable-efi,--disable-efi"
|
||||
PACKAGECONFIG[elfutils] = "--enable-elfutils,--disable-elfutils,elfutils"
|
||||
PACKAGECONFIG[firstboot] = "--enable-firstboot,--disable-firstboot"
|
||||
PACKAGECONFIG[audit] = "-Daudit=true,-Daudit=false,audit"
|
||||
PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false"
|
||||
PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false"
|
||||
PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2"
|
||||
PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false"
|
||||
PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup"
|
||||
PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus"
|
||||
PACKAGECONFIG[efi] = "-Defi=true,-Defi=false"
|
||||
PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils"
|
||||
PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false"
|
||||
# Sign the journal for anti-tampering
|
||||
PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt"
|
||||
PACKAGECONFIG[hibernate] = "--enable-hibernate,--disable-hibernate"
|
||||
PACKAGECONFIG[hostnamed] = "--enable-hostnamed,--disable-hostnamed"
|
||||
PACKAGECONFIG[ima] = "--enable-ima,--disable-ima"
|
||||
PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt"
|
||||
PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false"
|
||||
PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false"
|
||||
PACKAGECONFIG[ima] = "-Dima=true,-Dima=false"
|
||||
# importd requires curl/xz/zlib/bzip2/gcrypt
|
||||
PACKAGECONFIG[importd] = "--enable-importd,--disable-importd"
|
||||
PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false"
|
||||
# Update NAT firewall rules
|
||||
PACKAGECONFIG[iptc] = "--enable-libiptc,--disable-libiptc,iptables"
|
||||
PACKAGECONFIG[journal-upload] = "--enable-libcurl,--disable-libcurl,curl"
|
||||
PACKAGECONFIG[ldconfig] = "--enable-ldconfig,--disable-ldconfig"
|
||||
PACKAGECONFIG[libidn] = "--enable-libidn,--disable-libidn,libidn"
|
||||
PACKAGECONFIG[localed] = "--enable-localed,--disable-localed"
|
||||
PACKAGECONFIG[logind] = "--enable-logind,--disable-logind"
|
||||
PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4"
|
||||
PACKAGECONFIG[machined] = "--enable-machined,--disable-machined"
|
||||
PACKAGECONFIG[manpages] = "--enable-manpages,--disable-manpages,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
|
||||
PACKAGECONFIG[microhttpd] = "--enable-microhttpd,--disable-microhttpd,libmicrohttpd"
|
||||
PACKAGECONFIG[myhostname] = "--enable-myhostname,--disable-myhostname"
|
||||
PACKAGECONFIG[networkd] = "--enable-networkd,--disable-networkd"
|
||||
PACKAGECONFIG[nss] = "--enable-nss-systemd,--disable-nss-systemd"
|
||||
PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam,${PAM_PLUGINS}"
|
||||
PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit"
|
||||
PACKAGECONFIG[qrencode] = "--enable-qrencode,--disable-qrencode,qrencode"
|
||||
PACKAGECONFIG[quotacheck] = "--enable-quotacheck,--disable-quotacheck"
|
||||
PACKAGECONFIG[randomseed] = "--enable-randomseed,--disable-randomseed"
|
||||
PACKAGECONFIG[resolved] = "--enable-resolved,--disable-resolved"
|
||||
PACKAGECONFIG[rfkill] = "--enable-rfkill,--disable-rfkill"
|
||||
PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables"
|
||||
PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl"
|
||||
PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false"
|
||||
PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn"
|
||||
PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false"
|
||||
PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false"
|
||||
PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4"
|
||||
PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false"
|
||||
PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
|
||||
PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd"
|
||||
PACKAGECONFIG[myhostname] = "-Dmyhostname=true,-Dmyhostname=false"
|
||||
PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false"
|
||||
PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false"
|
||||
PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}"
|
||||
PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false"
|
||||
PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode"
|
||||
PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false"
|
||||
PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false"
|
||||
PACKAGECONFIG[resolve] = "-Dresolve=true,-Dresolve=false"
|
||||
PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false"
|
||||
# libseccomp is found in meta-security
|
||||
PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
|
||||
PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,initscripts-sushell"
|
||||
PACKAGECONFIG[smack] = "--enable-smack,--disable-smack"
|
||||
PACKAGECONFIG[sysusers] = "--enable-sysusers,--disable-sysusers"
|
||||
PACKAGECONFIG[timedated] = "--enable-timedated,--disable-timedated"
|
||||
PACKAGECONFIG[timesyncd] = "--enable-timesyncd,--disable-timesyncd"
|
||||
PACKAGECONFIG[usrmerge] = "--disable-split-usr,--enable-split-usr"
|
||||
PACKAGECONFIG[utmp] = "--enable-utmp,--disable-utmp"
|
||||
PACKAGECONFIG[valgrind] = "ac_cv_header_valgrind_memcheck_h=yes ac_cv_header_valgrind_valgrind_h=yes,ac_cv_header_valgrind_memcheck_h=no ac_cv_header_valgrind_valgrind_h=no,valgrind"
|
||||
PACKAGECONFIG[vconsole] = "--enable-vconsole,--disable-vconsole,,${PN}-vconsole-setup"
|
||||
PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
|
||||
PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,initscripts-sushell"
|
||||
PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false"
|
||||
PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false"
|
||||
PACKAGECONFIG[timedated] = "-Dtimedated=true,-Dtimedated=false"
|
||||
PACKAGECONFIG[timesyncd] = "-Dtimesyncd=true,-Dtimesyncd=false"
|
||||
PACKAGECONFIG[usrmerge] = "-Dsplit-usr=false,-Dsplit-usr=true"
|
||||
PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false"
|
||||
PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind"
|
||||
PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup"
|
||||
# Verify keymaps on locale change
|
||||
PACKAGECONFIG[xkbcommon] = "--enable-xkbcommon,--disable-xkbcommon,libxkbcommon"
|
||||
PACKAGECONFIG[xz] = "--enable-xz,--disable-xz,xz"
|
||||
PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
|
||||
|
||||
# Hardcode target binary paths to avoid AC_PROG_PATH in the systemd
|
||||
# configure script detecting and setting paths from sysroot or host.
|
||||
CACHED_CONFIGUREVARS_class-target = " \
|
||||
ac_cv_path_KEXEC=${sbindir}/kexec \
|
||||
ac_cv_path_KILL=${base_bindir}/kill \
|
||||
ac_cv_path_KMOD=${base_bindir}/kmod \
|
||||
ac_cv_path_MOUNT_PATH=${base_bindir}/mount \
|
||||
ac_cv_path_QUOTACHECK=${sbindir}/quotacheck \
|
||||
ac_cv_path_QUOTAON=${sbindir}/quotaon \
|
||||
ac_cv_path_SULOGIN=${base_sbindir}/sulogin \
|
||||
ac_cv_path_UMOUNT_PATH=${base_bindir}/umount \
|
||||
"
|
||||
PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon"
|
||||
PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz"
|
||||
PACKAGECONFIG[zlib] = "-Dzlib=true,-Dzlib=false,zlib"
|
||||
|
||||
# Helper variables to clarify locations. This mirrors the logic in systemd's
|
||||
# build system.
|
||||
@@ -179,38 +167,27 @@ rootprefix ?= "${root_prefix}"
|
||||
rootlibdir ?= "${base_libdir}"
|
||||
rootlibexecdir = "${rootprefix}/lib"
|
||||
|
||||
EXTRA_OECONF = " \
|
||||
--without-python \
|
||||
--with-roothomedir=${ROOT_HOME} \
|
||||
--with-rootlibdir=${rootlibdir} \
|
||||
--with-rootprefix=${rootprefix} \
|
||||
--with-sysvrcnd-path=${sysconfdir} \
|
||||
--with-firmware-path=${nonarch_base_libdir}/firmware \
|
||||
"
|
||||
EXTRA_OEMESON += "-Dnobody-user=nobody \
|
||||
-Dnobody-group=nobody \
|
||||
-Droothomedir=${ROOTHOME} \
|
||||
-Drootlibdir=${rootlibdir} \
|
||||
-Drootprefix=${rootprefix} \
|
||||
-Dsysvrcnd-path=${sysconfdir} \
|
||||
-Dfirmware-path=${nonarch_base_libdir}/firmware \
|
||||
"
|
||||
|
||||
# per the systemd README, define VALGRIND=1 to run under valgrind
|
||||
CFLAGS .= "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', ' -DVALGRIND=1', '', d)}"
|
||||
|
||||
COMPILER_NM ?= "${HOST_PREFIX}gcc-nm"
|
||||
COMPILER_AR ?= "${HOST_PREFIX}gcc-ar"
|
||||
COMPILER_RANLIB ?= "${HOST_PREFIX}gcc-ranlib"
|
||||
|
||||
do_configure_prepend() {
|
||||
export NM="${COMPILER_NM}"
|
||||
export AR="${COMPILER_AR}"
|
||||
export RANLIB="${COMPILER_RANLIB}"
|
||||
export KMOD="${base_bindir}/kmod"
|
||||
if [ -d ${S}/units.pre_sed ] ; then
|
||||
cp -r ${S}/units.pre_sed ${S}/units
|
||||
else
|
||||
cp -r ${S}/units ${S}/units.pre_sed
|
||||
fi
|
||||
sed -i -e 's:-DTEST_DIR=\\\".*\\\":-DTEST_DIR=\\\"${PTEST_PATH}/tests/test\\\":' ${S}/Makefile.am
|
||||
sed -i -e 's:-DCATALOG_DIR=\\\".*\\\":-DCATALOG_DIR=\\\"${PTEST_PATH}/tests/catalog\\\":' ${S}/Makefile.am
|
||||
}
|
||||
# Hardcode target binary paths to avoid using paths from sysroot
|
||||
EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \
|
||||
-Dkill-path=${base_bindir}/kill \
|
||||
-Dkmod-path=${base_bindir}/kmod \
|
||||
-Dmount-path=${base_bindir}/mount \
|
||||
-Dquotacheck-path=${sbindir}/quotacheck \
|
||||
-Dquotaon-path=${sbindir}/quotaon \
|
||||
-Dsulogin-path={base_sbindir}/sulogin \
|
||||
-Dumount-path=${base_bindir}/umount"
|
||||
|
||||
do_install() {
|
||||
autotools_do_install
|
||||
meson_do_install
|
||||
install -d ${D}/${base_sbindir}
|
||||
if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then
|
||||
# Provided by a separate recipe
|
||||
@@ -269,7 +246,7 @@ do_install() {
|
||||
if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
|
||||
${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)}
|
||||
fi
|
||||
if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then
|
||||
if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolve', 'true', 'false', d)}; then
|
||||
echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
|
||||
echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
|
||||
echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
|
||||
@@ -289,31 +266,6 @@ do_install() {
|
||||
fi
|
||||
}
|
||||
|
||||
do_install_ptest () {
|
||||
# install data files needed for tests
|
||||
install -d ${D}${PTEST_PATH}/tests/test
|
||||
cp -rfL ${S}/test/* ${D}${PTEST_PATH}/tests/test
|
||||
# python is disabled for systemd, thus removing these python testing scripts
|
||||
rm ${D}${PTEST_PATH}/tests/test/*.py
|
||||
sed -i 's/"tree"/"ls"/' ${D}${PTEST_PATH}/tests/test/udev-test.pl
|
||||
|
||||
install -d ${D}${PTEST_PATH}/tests/catalog
|
||||
install ${S}/catalog/* ${D}${PTEST_PATH}/tests/catalog/
|
||||
|
||||
install -D ${S}/build-aux/test-driver ${D}${PTEST_PATH}/tests/build-aux/test-driver
|
||||
|
||||
install -d ${D}${PTEST_PATH}/tests/rules
|
||||
install ${B}/rules/* ${D}${PTEST_PATH}/tests/rules/
|
||||
|
||||
# This directory needs to be there for udev-test.pl to work.
|
||||
install -d ${D}${libdir}/udev/rules.d
|
||||
|
||||
# install actual test binaries
|
||||
install -m 0755 ${B}/test-* ${D}${PTEST_PATH}/tests/
|
||||
install -m 0755 ${B}/.libs/test-* ${D}${PTEST_PATH}/tests/
|
||||
|
||||
install ${B}/Makefile ${D}${PTEST_PATH}/tests/
|
||||
}
|
||||
|
||||
python populate_packages_prepend (){
|
||||
systemdlibdir = d.getVar("rootlibdir")
|
||||
@@ -348,7 +300,7 @@ USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'journal-upload',
|
||||
USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /bin/nologin systemd-timesync;', '', d)}"
|
||||
USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /bin/nologin systemd-network;', '', d)}"
|
||||
USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /bin/nologin systemd-coredump;', '', d)}"
|
||||
USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}"
|
||||
USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolve', '--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}"
|
||||
USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}"
|
||||
GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
|
||||
USERADD_PARAM_${PN}-extra-utils += "--system -d / -M --shell /bin/nologin systemd-bus-proxy;"
|
||||
@@ -358,14 +310,6 @@ FILES_${PN}-analyze = "${bindir}/systemd-analyze"
|
||||
FILES_${PN}-initramfs = "/init"
|
||||
RDEPENDS_${PN}-initramfs = "${PN}"
|
||||
|
||||
RDEPENDS_${PN}-ptest += "gawk make perl bash xz \
|
||||
tzdata tzdata-americas tzdata-asia \
|
||||
tzdata-europe tzdata-africa tzdata-antarctica \
|
||||
tzdata-arctic tzdata-atlantic tzdata-australia \
|
||||
tzdata-pacific tzdata-posix"
|
||||
|
||||
FILES_${PN}-ptest += "${libdir}/udev/rules.d"
|
||||
|
||||
FILES_${PN}-gui = "${bindir}/systemadm"
|
||||
|
||||
FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \
|
||||
@@ -514,6 +458,7 @@ FILES_${PN} = " ${base_bindir}/* \
|
||||
${nonarch_base_libdir}/udev/rules.d/71-seat.rules \
|
||||
${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \
|
||||
${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \
|
||||
${nonarch_base_libdir}/modprobe.d/systemd.conf \
|
||||
${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \
|
||||
${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \
|
||||
${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \
|
||||
@@ -20,8 +20,11 @@ SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
|
||||
file://0001-Fix-build-with-musl-missing-header-include-for-dev_t.patch \
|
||||
"
|
||||
|
||||
RECIPE_NO_UPDATE_REASON = "Waiting for resolution of https://github.com/kdave/btrfs-progs/issues/109"
|
||||
inherit autotools-brokensep pkgconfig manpages
|
||||
|
||||
CLEANBROKEN = "1"
|
||||
|
||||
PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native"
|
||||
EXTRA_OECONF_append_libc-musl = " --disable-backtrace "
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ SRC_URI = "git://github.com/distcc/distcc.git;branch=${PV} \
|
||||
file://distcc.service"
|
||||
SRCREV = "d8b18df3e9dcbe4f092bed565835d3975e99432c"
|
||||
S = "${WORKDIR}/git"
|
||||
UPSTREAM_VERSION_UNKNOWN = "1"
|
||||
|
||||
inherit autotools pkgconfig update-rc.d useradd systemd
|
||||
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
From 319f32d743f5b5e725012654d124e49226d5de91 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 16 Mar 2018 20:28:24 -0700
|
||||
Subject: [PATCH] arch: Add support for riscv64 CPU
|
||||
|
||||
* Architecture support:
|
||||
- Add support for riscv64 CPU. Closes: #822914
|
||||
Thanks to Manuel A. Fernandez Montecelo <mafm@debian.org>
|
||||
|
||||
Upstream-Status: Backport [https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=dpkg%2Fdpkg.git;a=commitdiff_plain;h=ee0855cc66076691de4796be48f8a0d889fde001;hp=2f5816d8be40b449d2473b22f9e0c33b32f3bd78]
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
data/cputable | 1 +
|
||||
scripts/t/Dpkg_Arch.t | 4 ++--
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/data/cputable b/data/cputable
|
||||
index a2bd7d6..9f2a8e0 100644
|
||||
--- a/data/cputable
|
||||
+++ b/data/cputable
|
||||
@@ -41,6 +41,7 @@ powerpc powerpc (powerpc|ppc) 32 big
|
||||
powerpcel powerpcle powerpcle 32 little
|
||||
ppc64 powerpc64 (powerpc|ppc)64 64 big
|
||||
ppc64el powerpc64le powerpc64le 64 little
|
||||
+riscv64 riscv64 riscv64 64 little
|
||||
s390 s390 s390 32 big
|
||||
s390x s390x s390x 64 big
|
||||
sh3 sh3 sh3 32 little
|
||||
diff --git a/scripts/t/Dpkg_Arch.t b/scripts/t/Dpkg_Arch.t
|
||||
index d478b49..ecd5d66 100644
|
||||
--- a/scripts/t/Dpkg_Arch.t
|
||||
+++ b/scripts/t/Dpkg_Arch.t
|
||||
@@ -16,7 +16,7 @@
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
-use Test::More tests => 16367;
|
||||
+use Test::More tests => 16832;
|
||||
|
||||
use_ok('Dpkg::Arch', qw(debarch_to_debtuple debarch_to_multiarch
|
||||
debarch_eq debarch_is debarch_is_wildcard
|
||||
@@ -162,7 +162,7 @@ is(gnutriplet_to_debarch(undef), undef, 'undef gnutriplet');
|
||||
is(gnutriplet_to_debarch('unknown-unknown-unknown'), undef, 'unknown gnutriplet');
|
||||
is(gnutriplet_to_debarch('x86_64-linux-gnu'), 'amd64', 'known gnutriplet');
|
||||
|
||||
-is(scalar get_valid_arches(), 524, 'expected amount of known architectures');
|
||||
+is(scalar get_valid_arches(), 539, 'expected amount of known architectures');
|
||||
|
||||
{
|
||||
local $ENV{CC} = 'false';
|
||||
--
|
||||
2.16.2
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
From 9d260d408f9e17abd1d1dccd685bd7e80a3655a9 Mon Sep 17 00:00:00 2001
|
||||
From: Donn Seeley <donn.seeley@windriver.com>
|
||||
Date: Tue, 25 Feb 2014 17:44:04 +0800
|
||||
Subject: [PATCH] dpkg: fix a link problem for dpkg-native on CentOS 5.8
|
||||
|
||||
CentOS 5.8 kernels and headers support the sync_file_range() system call,
|
||||
but glibc 2.5 doesn't provide the syscall stub. It appears that this
|
||||
problem is known but will never be fixed:
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=518581
|
||||
|
||||
Bug 518581 - [RHEL5] glibc misses sync_file_range syscall interface
|
||||
Bug 518581 - [RHEL5] glibc misses sync_file_range syscall interface
|
||||
|
||||
Status: CLOSED CANTFIX
|
||||
Status: CLOSED CANTFIX
|
||||
Last Closed: 2009-11-22 22:19:55
|
||||
|
||||
Kirby Zhou 2009-08-20 23:37:55 EDT
|
||||
@@ -60,13 +65,16 @@ Upstream-Status: Inappropriate [everyone else builds on newer hosts :-)]
|
||||
|
||||
Signed-off-by: Donn Seeley <donn.seeley@windriver.com>
|
||||
Signed-off-by: Lei Liu <lei.liu2@windriver.com>
|
||||
|
||||
---
|
||||
src/archives.c | 4 ++--
|
||||
src/archives.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/archives.c b/src/archives.c
|
||||
index 4b2fc92..a92b795 100644
|
||||
--- a/src/archives.c
|
||||
+++ b/src/archives.c
|
||||
@@ -75,7 +75,7 @@
|
||||
@@ -69,7 +69,7 @@ fd_writeback_init(int fd)
|
||||
/* Ignore the return code as it should be considered equivalent to an
|
||||
* asynchronous hint for the kernel, we are doing an fsync() later on
|
||||
* anyway. */
|
||||
@@ -75,7 +83,7 @@ Signed-off-by: Lei Liu <lei.liu2@windriver.com>
|
||||
sync_file_range(fd, 0, 0, SYNC_FILE_RANGE_WRITE);
|
||||
#elif defined(HAVE_POSIX_FADVISE)
|
||||
posix_fadvise(fd, 0, 0, POSIX_FADV_DONTNEED);
|
||||
@@ -1179,7 +1179,7 @@
|
||||
@@ -1078,7 +1078,7 @@ tarobject(void *ctx, struct tar_entry *ti)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -84,3 +92,6 @@ Signed-off-by: Lei Liu <lei.liu2@windriver.com>
|
||||
static void
|
||||
tar_writeback_barrier(struct fileinlist *files, struct pkginfo *pkg)
|
||||
{
|
||||
--
|
||||
2.16.2
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ SRC_URI = "http://snapshot.debian.org/archive/debian/20170518T093838Z/pool/main/
|
||||
file://0006-add-musleabi-to-known-target-tripets.patch \
|
||||
file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \
|
||||
file://0001-dpkg-Support-muslx32-build.patch \
|
||||
file://0001-arch-Add-support-for-riscv64-CPU.patch \
|
||||
"
|
||||
SRC_URI_append_class-native = " file://glibc2.5-sync_file_range.patch "
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user