summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-support
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2024-01-19 17:49:29 +0300
committerPatrick Williams <patrick@stwcx.xyz>2024-01-23 20:52:36 +0300
commit56b44a9896b5068220cbd7d58795773b750149c8 (patch)
tree26baf5d8f0d7031707b62deab067516b733c915a /meta-openembedded/meta-oe/recipes-support
parent1ada3c2d58691868267415a1ea08dab4a7f54aef (diff)
downloadopenbmc-56b44a9896b5068220cbd7d58795773b750149c8.tar.xz
subtree updates
meta-arm: 5712422011..1cad3c3813: Jon Mason (3): arm/pyhsslms: update to 2.0.0 arm/trusted-firmware-m: update to 2.0.0 arm/opencsd: update to 1.4.2 Ross Burton (2): arm-bsp/documentation: upgrade Sphinx slightly arm/fvp-base-a-aem: upgrade to 11.24.11 Vikas Katariya (2): arm-bsp/n1sdp: Downgrade to 6.1 linux yocto kernel arm-bsp/linux-yocto: Remove EOL Linux yocto kernel 6.5 meta-openembedded: 098dc606f9..4dbbef7a39: Alex Kiernan (1): thin-provisioning-tools: Drop musl fixes (fixed upstream) Derek Straka (9): python3-web3: update to version 6.14.0 python3-engineio: update to version 4.8.2 python3-marshmallow: update to version 3.20.2 python3-apispec: update to version 6.4.0 python3-protobuf: update to version 4.25.1 python3-eth-hash: update to version 0.6.0 python3-google-auth: update to version 2.26.2 python3-socketio: update to version 5.11.0 python3-google-api-python-client: update to version 2.113.0 Fabio Estevam (1): v4l-utils: Update to 1.26.1 Jörg Sommer (1): i2cdev: Fix MUSL build Khem Raj (7): thunar: inherit gtk-doc libxklavier: inherit gtk-doc libwnck: inherit gtk-doc schroedinger: inherit gtk-doc gst-shark: inherit gtk-doc evolution-data-server: Use inherit_defer for native class opencl-icd: Rename rdepends to virtual-opencl-icd Markus Volk (2): flatpak: fix gtk-doc build gvfs: drop gnome-keyring rdepend Peter Marko (1): grpc: correct dependencies Randy MacLeod (1): rng-tools: move from oe-core to meta-oe Ross Burton (9): libuser: fix gtk-doc configure call libuser: remove obsolete GTKDOC_DOCDIR assignment gtksourceview4: remove check for target gtk-doc gtksourceview4: remove obsolete workaround for build failures telepathy-glib: inherit gtk-doc glade: inherit gtk-doc, fix FILES libgxim: inherit gtk-doc gmime: inherit gtk-doc raptor2: inherit gtk-doc Wang Mingyu (3): frr: use update-alternatives for ietf-interfaces.yang libsmi: use update-alternatives for ietf-interfaces.yang frr: Fix install conflict when enable multilib. alperak (1): adcli: use https protocol for fetching poky: 61182659c2..7af374c90c: Alexander Kanavin (3): glib-2.0: ensure GI_DATA_ENABLED is set gobject-introspection-data.bbclass: move do_compile() tweak to g-i class python: update 3.11.5 -> 3.12.1 Alexander Sverdlin (2): linux-firmware: upgrade 20231030 -> 20231211 linux-firmware: package PowerVR firmware André Draszik (1): linux-firmware: split out rockchip/dptx firmware Changhyeok Bae (1): iw: upgrade 5.19 -> 6.7 Etienne Cordonnier (3): package.py: fix Darwin support chrpath.bbclass: fix Darwin support siteinfo.bbclass: add support for darwin19 and darwin21 Fabio Estevam (2): mesa: Upgrade 23.3.2 -> 23.3.3 libdrm: Upgrade to 2.4.120 Joe Slater (1): init-ifupdown: add predictable interface names Kai Kang (1): xserver-xorg: 21.1.9 -> 21.1.11 Khem Raj (3): webkitgtk: Workaround for clang compiler segfault mdadm: Disable 10ddf-fail-spare and 10ddf-fail-stop-readd testcases openssl: Fix build on riscv Ola x Nilsson (2): insane.bbclass: Check for adjtime in check_32_bit_symbols insane.bbclass: Python code cleanup in check_32bit_symbols Petr Vorel (1): iputils: update to 20240117 Randy MacLeod (2): rng-tools: move to meta-oe rng-tools: Revert "rng-tools: move to meta-oe" Richard Purdie (13): bitbake: ast/BBHandler: Add inherit_defer support allarch: Fix allarch corner case rootfs: Fix MULTILIB_RE_ALLOW to be inherit order independent rootfs-postcommands: Try and improve ordering constraints classes/recipes: Switch to use inherit_defer libtool: Update patches to mark as backports libtool: Update nios2 patch to match upstream merged version libtool: Update prefixmap and clang patches to match upstream submission libtool: Update cleanup sysroot handling patch libtool: Update patch offsets libtool: Update further patch status to backport reproducible: Fix race with externalsrc/devtool over lockfile build-appliance-image: Update to master head revision Ross Burton (4): musl: doesn't support riscv32 libunwind: merge .inc and .bb libunwind: refresh patches libunwind: clean up configuration Simone Weiß (1): classes-global/insane: Add check for "virtual/" in RPROVIDES and RDEPENDS Tim Orling (1): python3-alabaster: upgrade 0.7.13 -> 0.7.16 Trevor Woerner (1): bmaptool: add 3 fixes Vyacheslav Yurkov (9): recipetool: Don't fail on local go modules classes: go-vendor: Reference local modules classes: go-vendor: Handle modules from the same repo classes: go-vendor: Unlink vendor dir later recipetool: Proceed even with a missing license file recipetool: Disregard version in URL for replaced modules oeqa/selftest/recipetool: Move create_go test to a proper class oeqa/selftest/recipetool: Move helper function to the class scope oeqa/selftest/recipetool: Add test coverage for local go modules Wang Mingyu (22): mpg123: upgrade 1.32.3 -> 1.32.4 bind: upgrade 9.18.20 -> 9.18.21 iproute2: upgrade 6.6.0 -> 6.7.0 kexec-tools: upgrade 2.0.27 -> 2.0.28 libbsd: upgrade 0.11.7 -> 0.11.8 libxmlb: upgrade 0.3.14 -> 0.3.15 nghttp2: upgrade 1.57.0 -> 1.58.0 ofono: upgrade 2.2 -> 2.3 python3-numpy: upgrade 1.26.2 -> 1.26.3 vte: upgrade 0.74.1 -> 0.74.2 python3-cython: upgrade 3.0.7 -> 3.0.8 python3-git: upgrade 3.1.40 -> 3.1.41 python3-hypothesis: upgrade 6.92.2 -> 6.92.9 python3-jinja2: upgrade 3.1.2 -> 3.1.3 python3-markdown: upgrade 3.5 -> 3.5.2 python3-more-itertools: upgrade 10.1.0 -> 10.2.0 python3-pycryptodome: upgrade 3.19.1 -> 3.20.0 python3-pycryptodomex: upgrade 3.19.1 -> 3.20.0 python3-trove-classifiers: upgrade 2023.11.29 -> 2024.1.8 stress-ng: upgrade 0.17.03 -> 0.17.04 virglrenderer: upgrade 1.0.0 -> 1.0.1 xz: upgrade 5.4.4 -> 5.4.5 Change-Id: I9581526d3addb54889dd73268e672c2d84345f3e Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support')
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/default1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/init42
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/rng-tools.service32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools_6.16.bb69
-rw-r--r--meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch91
-rw-r--r--meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.9.bb1
8 files changed, 149 insertions, 94 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb b/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
index 07e2e29417..5b1d021e36 100644
--- a/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
@@ -16,7 +16,10 @@ SRC_URI[sha256sum] = "f21accdadb1bb328ea3f8a13fc34d715baac6e2db66065898346322c72
DEPENDS += "bison-native flex-native wget-native gawk-native"
-inherit autotools-brokensep
+inherit autotools-brokensep update-alternatives
+ALTERNATIVE_PRIORITY = "50"
+ALTERNATIVE:${PN}-yang = "ietf-interfaces "
+ALTERNATIVE_LINK_NAME[ietf-interfaces] = "${datadir}/yang/ietf-interfaces.yang"
EXTRA_OECONF = "ac_cv_path_SH=/bin/sh"
diff --git a/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb b/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb
index 30df8e0648..85012bcfb3 100644
--- a/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb
+++ b/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb
@@ -15,7 +15,7 @@ SRC_URI = " \
"
SRC_URI[sha256sum] = "089db78d7ac982354bdbf39d973baf09581e6904ac4c92a98c5caadb3de44680"
-inherit autotools pkgconfig
+inherit autotools pkgconfig gtk-doc
EXTRA_OECONF = " \
--without-xml2-config \
diff --git a/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/default b/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/default
new file mode 100644
index 0000000000..b9f8e03635
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/default
@@ -0,0 +1 @@
+EXTRA_ARGS="-r /dev/hwrng"
diff --git a/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/init b/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/init
new file mode 100644
index 0000000000..13f0ecd37c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/init
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# This is an init script for openembedded
+# Copy it to @SYSCONFDIR@/init.d/rng-tools and type
+# > update-rc.d rng-tools defaults 60
+#
+
+rngd=@SBINDIR@/rngd
+test -x "$rngd" || exit 1
+
+[ -r @SYSCONFDIR@/default/rng-tools ] && . "@SYSCONFDIR@/default/rng-tools"
+
+case "$1" in
+ start)
+ echo -n "Starting random number generator daemon"
+ start-stop-daemon -S -q -x $rngd -- $EXTRA_ARGS
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping random number generator daemon"
+ start-stop-daemon -K -q -n rngd
+ echo "."
+ ;;
+ reload|force-reload)
+ echo -n "Signalling rng daemon restart"
+ start-stop-daemon -K -q -s 1 -x $rngd
+ start-stop-daemon -K -q -s 1 -x $rngd
+ ;;
+ restart)
+ echo -n "Stopping random number generator daemon"
+ start-stop-daemon -K -q -n rngd
+ echo "."
+ echo -n "Starting random number generator daemon"
+ start-stop-daemon -S -q -x $rngd -- $EXTRA_ARGS
+ echo "."
+ ;;
+ *)
+ echo "Usage: @SYSCONFDIR@/init.d/rng-tools {start|stop|reload|restart|force-reload}"
+ exit 1
+esac
+
+exit 0
diff --git a/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/rng-tools.service b/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/rng-tools.service
new file mode 100644
index 0000000000..5ae2fba215
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools/rng-tools.service
@@ -0,0 +1,32 @@
+[Unit]
+Description=Hardware RNG Entropy Gatherer Daemon
+DefaultDependencies=no
+Conflicts=shutdown.target
+Before=sysinit.target shutdown.target
+ConditionVirtualization=!container
+
+[Service]
+EnvironmentFile=-@SYSCONFDIR@/default/rng-tools
+ExecStart=@SBINDIR@/rngd -f $EXTRA_ARGS
+CapabilityBoundingSet=CAP_SYS_ADMIN
+IPAddressDeny=any
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateTmp=yes
+ProtectControlGroups=yes
+ProtectHome=yes
+ProtectHostname=yes
+ProtectKernelModules=yes
+ProtectKernelLogs=yes
+ProtectSystem=strict
+RestrictAddressFamilies=AF_UNIX
+RestrictNamespaces=yes
+RestrictRealtime=yes
+RestrictSUIDSGID=yes
+SystemCallArchitectures=native
+SystemCallErrorNumber=EPERM
+SystemCallFilter=@system-service
+
+[Install]
+WantedBy=sysinit.target
diff --git a/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools_6.16.bb b/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools_6.16.bb
new file mode 100644
index 0000000000..f0aa3ff93f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/rng-tools/rng-tools_6.16.bb
@@ -0,0 +1,69 @@
+SUMMARY = "Random number generator daemon"
+DESCRIPTION = "Check and feed random data from hardware device to kernel"
+HOMEPAGE = "https://github.com/nhorman/rng-tools"
+BUGTRACKER = "https://github.com/nhorman/rng-tools/issues"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "openssl libcap"
+
+SRC_URI = "git://github.com/nhorman/rng-tools.git;branch=master;protocol=https \
+ file://init \
+ file://default \
+ file://rng-tools.service \
+ "
+SRCREV = "e061c313b95890eb5fa0ada0cd6eec619dafdfe2"
+
+S = "${WORKDIR}/git"
+
+inherit autotools update-rc.d systemd pkgconfig
+
+EXTRA_OECONF = "--without-rtlsdr"
+
+PACKAGECONFIG ??= "libjitterentropy"
+PACKAGECONFIG:libc-musl = "libargp libjitterentropy"
+
+PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone,"
+PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy"
+PACKAGECONFIG[libp11] = "--with-pkcs11,--without-pkcs11,libp11 openssl"
+PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2"
+PACKAGECONFIG[qrypt] = "--with-qrypt,--without-qrypt,curl"
+
+INITSCRIPT_PACKAGES = "${PN}-service"
+INITSCRIPT_NAME:${PN}-service = "rng-tools"
+INITSCRIPT_PARAMS:${PN}-service = "start 03 2 3 4 5 . stop 30 0 6 1 ."
+
+SYSTEMD_PACKAGES = "${PN}-service"
+SYSTEMD_SERVICE:${PN}-service = "rng-tools.service"
+
+CFLAGS += " -DJENT_CONF_ENABLE_INTERNAL_TIMER "
+
+PACKAGES =+ "${PN}-service"
+
+FILES:${PN}-service += " \
+ ${sysconfdir}/init.d/rng-tools \
+ ${sysconfdir}/default/rng-tools \
+"
+
+# Refer autogen.sh in rng-tools
+do_configure:prepend() {
+ cp ${S}/README.md ${S}/README
+}
+
+do_install:append() {
+ install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools
+ install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
+ install -Dm 0644 ${WORKDIR}/rng-tools.service \
+ ${D}${systemd_system_unitdir}/rng-tools.service
+ sed -i \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ ${D}${sysconfdir}/init.d/rng-tools \
+ ${D}${systemd_system_unitdir}/rng-tools.service
+
+ if [ "${@bb.utils.contains('PACKAGECONFIG', 'nistbeacon', 'yes', 'no', d)}" = "yes" ]; then
+ sed -i \
+ -e '/^IPAddressDeny=any/d' \
+ -e '/^RestrictAddressFamilies=/ s/$/ AF_INET AF_INET6/' \
+ ${D}${systemd_system_unitdir}/rng-tools.service
+ fi
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch
deleted file mode 100644
index a9f1c8601d..0000000000
--- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 289105253fbf342fd22cbcde2ccc1127f732ab09 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 7 Jul 2023 14:21:17 -0700
-Subject: [PATCH] Replace LFS functions
-
-The original functions are able to consume 64bit off_t now a days
-therefore *64 equivalents can be replaced, as a side it fixes build with
-musl.
-
-Upstream-Status: Submitted [https://github.com/jthornber/thin-provisioning-tools/pull/267]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/file_utils.rs | 10 +++++-----
- src/io_engine/base.rs | 4 ++--
- src/thin/trim.rs | 2 +-
- 3 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/file_utils.rs b/src/file_utils.rs
-index 0ca3c0f..d2b3ee9 100644
---- a/src/file_utils.rs
-+++ b/src/file_utils.rs
-@@ -11,18 +11,18 @@ fn test_bit(mode: u32, flag: u32) -> bool {
- (mode & libc::S_IFMT) == flag
- }
-
--fn is_file_or_blk_(info: &libc::stat64) -> bool {
-+fn is_file_or_blk_(info: &libc::stat) -> bool {
- test_bit(info.st_mode, libc::S_IFBLK) || test_bit(info.st_mode, libc::S_IFREG)
- }
-
- // wrapper of libc::stat64
--fn libc_stat64(path: &Path) -> io::Result<libc::stat64> {
-+fn libc_stat64(path: &Path) -> io::Result<libc::stat> {
- let c_path = std::ffi::CString::new(path.as_os_str().as_bytes())
- .map_err(|e| io::Error::new(io::ErrorKind::InvalidInput, e.to_string()))?;
-
- unsafe {
-- let mut st: libc::stat64 = std::mem::zeroed();
-- let r = libc::stat64(c_path.as_ptr(), &mut st);
-+ let mut st: libc::stat = std::mem::zeroed();
-+ let r = libc::stat(c_path.as_ptr(), &mut st);
- if r == 0 {
- Ok(st)
- } else {
-@@ -56,7 +56,7 @@ fn get_device_size<P: AsRef<Path>>(path: P) -> io::Result<u64> {
- let fd = file.as_raw_fd();
- let mut cap = 0u64;
- unsafe {
-- if libc::ioctl(fd, BLKGETSIZE64 as libc::c_ulong, &mut cap) == 0 {
-+ if libc::ioctl(fd, BLKGETSIZE64 as libc::c_int, &mut cap) == 0 {
- Ok(cap)
- } else {
- Err(io::Error::last_os_error())
-diff --git a/src/io_engine/base.rs b/src/io_engine/base.rs
-index 725ebf7..db6209f 100644
---- a/src/io_engine/base.rs
-+++ b/src/io_engine/base.rs
-@@ -115,7 +115,7 @@ pub trait VectoredIo {
-
- fn read_vectored_at(file: &File, bufs: &mut [libc::iovec], pos: u64) -> io::Result<usize> {
- let ptr = bufs.as_ptr();
-- let ret = match unsafe { libc::preadv64(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
-+ let ret = match unsafe { libc::preadv(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
- {
- -1 => return Err(io::Error::last_os_error()),
- n => n,
-@@ -125,7 +125,7 @@ fn read_vectored_at(file: &File, bufs: &mut [libc::iovec], pos: u64) -> io::Resu
-
- fn write_vectored_at(file: &File, bufs: &[libc::iovec], pos: u64) -> io::Result<usize> {
- let ptr = bufs.as_ptr();
-- let ret = match unsafe { libc::pwritev64(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
-+ let ret = match unsafe { libc::pwritev(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
- {
- -1 => return Err(io::Error::last_os_error()),
- n => n,
-diff --git a/src/thin/trim.rs b/src/thin/trim.rs
-index 3d938ca..91a53dd 100644
---- a/src/thin/trim.rs
-+++ b/src/thin/trim.rs
-@@ -135,7 +135,7 @@ impl<'a> Iterator for RangeIterator<'a> {
- const BLKDISCARD: u32 = 0x1277;
- fn ioctl_blkdiscard(fd: i32, range: &[u64; 2]) -> std::io::Result<()> {
- unsafe {
-- if libc::ioctl(fd, BLKDISCARD as libc::c_ulong, range) == 0 {
-+ if libc::ioctl(fd, BLKDISCARD as libc::c_int, range) == 0 {
- Ok(())
- } else {
- Err(std::io::Error::last_os_error())
---
-2.41.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.9.bb b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.9.bb
index b643ad6dc8..b79fdb1a0b 100644
--- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.9.bb
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.9.bb
@@ -10,7 +10,6 @@ S = "${WORKDIR}/git"
SRC_URI = " \
git://github.com/jthornber/thin-provisioning-tools;branch=main;protocol=https \
"
-SRC_URI:append:libc-musl = " file://0001-Replace-LFS-functions.patch"
SRCREV = "1d60839b0a920df6476712b80f933854fb32e160"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"