diff options
Diffstat (limited to 'meta-openembedded/meta-filesystems/recipes-utils/xfsdump')
8 files changed, 525 insertions, 0 deletions
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch new file mode 100644 index 000000000..660468d73 --- /dev/null +++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch @@ -0,0 +1,28 @@ +From 8cf48da5f645dd7bbb1ccbeab5bb0964f40f17f7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 13 Jul 2017 23:18:47 -0700 +Subject: [PATCH 1/5] Include fcntl.h for O_EXCL + +Fix +error: 'O_CREAT' undeclared (first use in this function) + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + invutil/invidx.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/invutil/invidx.c b/invutil/invidx.c +index 67efdf7..325a9a1 100644 +--- a/invutil/invidx.c ++++ b/invutil/invidx.c +@@ -27,6 +27,7 @@ + #include <sys/stat.h> + #include <string.h> + #include <uuid/uuid.h> ++#include <fcntl.h> + + #include "types.h" + #include "mlog.h" +-- +2.13.2 + diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch new file mode 100644 index 000000000..1fe1bde8b --- /dev/null +++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch @@ -0,0 +1,28 @@ +From f1e822d546e08cc195eaeb38ca172bd0c3800aa9 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 9 Sep 2017 07:48:48 -0700 +Subject: [PATCH] xfsdump: Use c99 defined int64_t instead of __int64_t + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Submitted + + common/hsmapi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/common/hsmapi.c b/common/hsmapi.c +index 6054773..0709dbe 100644 +--- a/common/hsmapi.c ++++ b/common/hsmapi.c +@@ -585,7 +585,7 @@ HsmModifyExtentMap( + struct getbmapx *bmap) + { + dmf_f_ctxt_t *dmf_f_ctxtp = (dmf_f_ctxt_t *)contextp; +- __int64_t length; ++ int64_t length; + + if (bmap[0].bmv_entries <= 0) { + return 1; /* caller must already be at EOF */ +-- +2.14.1 + diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch new file mode 100644 index 000000000..ed3e0a9e9 --- /dev/null +++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch @@ -0,0 +1,122 @@ +From f76d2142905f0e5bd830d5d576c235af1171c6ac Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 13 Jul 2017 23:23:31 -0700 +Subject: [PATCH 2/5] Replace __uint32_t with uint32_t + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + common/content_inode.h | 4 ++-- + doc/xfsdump.html | 8 ++++---- + inventory/inv_oref.h | 2 +- + inventory/inv_priv.h | 4 ++-- + inventory/inventory.h | 2 +- + 5 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/common/content_inode.h b/common/content_inode.h +index a69a9a0..6936e05 100644 +--- a/common/content_inode.h ++++ b/common/content_inode.h +@@ -191,10 +191,10 @@ typedef struct bstat bstat_t; + * and using two 16bit values to hold new 32bit projid was choosen + * to retain compatibility with "old" filesystems). + */ +-static inline __uint32_t ++static inline uint32_t + bstat_projid(struct bstat *bs) + { +- return (__uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo; ++ return (uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo; + } + + +diff --git a/doc/xfsdump.html b/doc/xfsdump.html +index 9c6722e..f85128f 100644 +--- a/doc/xfsdump.html ++++ b/doc/xfsdump.html +@@ -1935,7 +1935,7 @@ The files are constructed like so: + <pre> + typedef struct invt_counter { + INVT_COUNTER_FIELDS +- __uint32_t ic_vernum;/* on disk version number for posterity */\ ++ uint32_t ic_vernum;/* on disk version number for posterity */\ + u_int ic_curnum;/* number of sessions/invindices recorded \ + so far */ \ + u_int ic_maxnum;/* maximum number of sessions/inv_indices \ +@@ -1975,7 +1975,7 @@ typedef struct invt_fstab { + <pre> + typedef struct invt_counter { + INVT_COUNTER_FIELDS +- __uint32_t ic_vernum;/* on disk version number for posterity */\ ++ uint32_t ic_vernum;/* on disk version number for posterity */\ + u_int ic_curnum;/* number of sessions/invindices recorded \ + so far */ \ + u_int ic_maxnum;/* maximum number of sessions/inv_indices \ +@@ -2012,7 +2012,7 @@ typedef struct invt_entry { + <pre> + typedef struct invt_sescounter { + INVT_COUNTER_FIELDS +- __uint32_t ic_vernum;/* on disk version number for posterity */\ ++ uint32_t ic_vernum;/* on disk version number for posterity */\ + u_int ic_curnum;/* number of sessions/invindices recorded \ + so far */ \ + u_int ic_maxnum;/* maximum number of sessions/inv_indices \ +@@ -2034,7 +2034,7 @@ typedef struct invt_seshdr { + off64_t sh_streams_off; /* offset to start of the set of + stream hdrs */ + time_t sh_time; /* time of the dump */ +- __uint32_t sh_flag; /* for misc flags */ ++ uint32_t sh_flag; /* for misc flags */ + u_char sh_level; /* dump level */ + u_char sh_pruned; /* pruned by invutil flag */ + char sh_padding[22]; +diff --git a/inventory/inv_oref.h b/inventory/inv_oref.h +index e16684d..38303a4 100644 +--- a/inventory/inv_oref.h ++++ b/inventory/inv_oref.h +@@ -46,7 +46,7 @@ + + + +-typedef __uint32_t invt_objtype_t; ++typedef uint32_t invt_objtype_t; + + #define INVT_LOCKED 0x0001 + +diff --git a/inventory/inv_priv.h b/inventory/inv_priv.h +index 1690271..364ffbc 100644 +--- a/inventory/inv_priv.h ++++ b/inventory/inv_priv.h +@@ -120,7 +120,7 @@ typedef struct invt_seshdr { + off64_t sh_streams_off; /* offset to start of the set of + stream hdrs */ + time32_t sh_time; /* time of the dump */ +- __uint32_t sh_flag; /* for misc flags */ ++ uint32_t sh_flag; /* for misc flags */ + u_char sh_level; /* dump level */ + u_char sh_pruned; /* pruned by invutil flag */ + char sh_padding[22]; +@@ -184,7 +184,7 @@ typedef struct invt_entry { + + /* Cheap Inheritance, and an attempt to avoid a nested type */ + #define INVT_COUNTER_FIELDS \ +- __uint32_t ic_vernum;/* on disk version number for posterity */\ ++ uint32_t ic_vernum;/* on disk version number for posterity */\ + uint ic_curnum;/* number of sessions/invindices recorded \ + so far */ \ + uint ic_maxnum;/* maximum number of sessions/inv_indices \ +diff --git a/inventory/inventory.h b/inventory/inventory.h +index 134b9ba..c1d7403 100644 +--- a/inventory/inventory.h ++++ b/inventory/inventory.h +@@ -43,7 +43,7 @@ + /* length of labels, mntpts, etc */ + #define INV_STRLEN GLOBAL_HDR_STRING_SZ + +-typedef __uint32_t inv_version_t; ++typedef uint32_t inv_version_t; + + /* This is the general inventory version. + */ +-- +2.13.2 + diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch new file mode 100644 index 000000000..31303d8fa --- /dev/null +++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch @@ -0,0 +1,40 @@ +From fcc0cf15a309947103a0695b8a1f4865b820eb5c Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 13 Jul 2017 23:26:03 -0700 +Subject: [PATCH 3/5] replace use of SIGCLD with SIGCHLD + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + common/main.c | 2 +- + doc/xfsdump.html | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/common/main.c b/common/main.c +index 3848499..faa66ee 100644 +--- a/common/main.c ++++ b/common/main.c +@@ -2225,7 +2225,7 @@ static sig_printmap_t sig_printmap[ ] = { + {SIGTERM, "SIGTERM"}, + {SIGUSR1, "SIGUSR1"}, + {SIGUSR2, "SIGUSR2"}, +- {SIGCLD, "SIGCLD"}, ++ {SIGCHLD, "SIGCHLD"}, + {SIGPWR, "SIGPWR"}, + {SIGURG, "SIGURG"}, + {SIGPOLL, "SIGPOLL"}, +diff --git a/doc/xfsdump.html b/doc/xfsdump.html +index f85128f..d96f037 100644 +--- a/doc/xfsdump.html ++++ b/doc/xfsdump.html +@@ -334,7 +334,7 @@ the ring buffer. It ignores signals and does not terminate until it + receives a RING_OP_DIE message. It then exits 0. + <p> + The main process sleeps waiting for any of its children to die +-(ie. waiting for a SIGCLD). All children that it cares about (stream ++(ie. waiting for a SIGCHLD). All children that it cares about (stream + managers and ring buffer slaves) are registered through the child + manager abstraction. When a child dies wait status and other info is + stored with its entry in the child manager. main() ignores the deaths +-- +2.13.2 + diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch new file mode 100644 index 000000000..62ea15b86 --- /dev/null +++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch @@ -0,0 +1,29 @@ +From 98c7d96f0f2c6eddf60aa4a1a08d7d4467645930 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 13 Jul 2017 23:28:10 -0700 +Subject: [PATCH 4/5] include limit.h for PATH_MAX + +fixed +var.c:42:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'RAND_MAX'? + char path[PATH_MAX];` + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + dump/var.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dump/var.c b/dump/var.c +index 645caab..8156d37 100644 +--- a/dump/var.c ++++ b/dump/var.c +@@ -16,6 +16,7 @@ + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#include <limits.h> + #include <unistd.h> + #include <stdlib.h> + #include <sys/stat.h> +-- +2.13.2 + diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch new file mode 100644 index 000000000..fb6e467c9 --- /dev/null +++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch @@ -0,0 +1,27 @@ +From d95f494de1aa8123c74170ffebaed8ea89649da2 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 13 Jul 2017 23:33:44 -0700 +Subject: [PATCH 5/5] include sys/types.h for u_int32_t in attr/attributes.h + +error: unknown type name 'u_int32_t' + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + restore/content.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/restore/content.c b/restore/content.c +index 7c4a81f..1d5de1b 100644 +--- a/restore/content.c ++++ b/restore/content.c +@@ -24,6 +24,7 @@ + #include <sys/param.h> + #include <sys/stat.h> + #include <sys/ioctl.h> ++#include <sys/types.h> + #include <attr/attributes.h> + #include <xfs/handle.h> + #include <time.h> +-- +2.13.2 + diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch new file mode 100644 index 000000000..e761db371 --- /dev/null +++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch @@ -0,0 +1,205 @@ +remove install as user + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + include/buildmacros | 2 +- + include/install-sh | 95 ++++++++--------------------------------------------- + 2 files changed, 14 insertions(+), 83 deletions(-) + +diff --git a/include/buildmacros b/include/buildmacros +index 7a01880..0840d55 100644 +--- a/include/buildmacros ++++ b/include/buildmacros +@@ -30,7 +30,7 @@ OBJECTS = $(ASFILES:.s=.o) \ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/install-sh + + IMAGES_DIR = $(TOPDIR)/all-images + DIST_DIR = $(TOPDIR)/dist +diff --git a/include/install-sh b/include/install-sh +index c952a71..b9d66f7 100755 +--- a/include/install-sh ++++ b/include/install-sh +@@ -24,11 +24,11 @@ + # set set | yes yes + # + _usage() { +- echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory" +- echo "or $prog [-D] [-o owner] [-g group] [-m mode] file directory/file" +- echo "or $prog [-o owner] [-g group] [-m mode] file [file ...] directory" ++ echo "Usage: $prog [-m mode] -d directory" ++ echo "or $prog [-m mode] file directory/file" ++ echo "or $prog [-m mode] file [file ...] directory" + echo "or $prog -S file target (creates \"target\" symlink)" +- echo "or $prog -T lt_arg [-o owner] [-g group] [-m mode] libtool.lai directory" ++ echo "or $prog -T lt_arg [-m mode] libtool.lai directory" + echo "" + echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the" + echo "behaviour of this command - see comments in the script." +@@ -38,32 +38,6 @@ _usage() { + exit 1 + } + +-_chown () +-{ +- _st=255 +- if [ $# -eq 3 ] ; then +- chown $1:$2 $3 +- _st=$? +- if [ $_st -ne 0 ] ; then +- if [ $REAL_UID != '0' ] ; then +- if [ ! -f $DIST_ROOT/.chown.quiet ] ; then +- echo '===============================================' +- echo Ownership of files under ${DIST_ROOT:-/} +- echo cannot be changed +- echo '===============================================' +- if [ -n "$DIST_ROOT" ] ; then +- touch $DIST_ROOT/.chown.quiet +- fi +- fi +- _st=0 +- fi +- fi +- fi +- +- return $_st +-} +- +- + _manifest () + { + echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null} +@@ -77,9 +51,6 @@ Sflag=false + Tflag=false + DIRMODE=755 + FILEMODE=644 +-OWNER=`id -u` +-GROUP=`id -g` +-REAL_UID=$OWNER + + # default is to install and don't append manifest + INSTALL=true +@@ -94,24 +65,16 @@ MANIFEST=: + + if $INSTALL + then +- CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown ++ CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; + else +- CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true ++ CP=true; LN=true; MKDIR=true; CHMOD=true; + fi + +-[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true +- +-while getopts "Dcm:d:S:o:g:T:" c $* ++while getopts "Dcm:d:S:T:" c $* + do + case $c in + c) + ;; +- g) +- GROUP=$OPTARG +- ;; +- o) +- OWNER=$OPTARG +- ;; + m) + DIRMODE=`expr $OPTARG` + FILEMODE=$DIRMODE +@@ -146,18 +109,7 @@ then + # first usage + # + $MKDIR -p $dir +- status=$? +- if [ $status -eq 0 ] +- then +- $CHMOD $DIRMODE $dir +- status=$? +- fi +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir +- status=$? +- fi +- $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT} ++ $MANIFEST d $DIRMODE ${dir#$DIST_ROOT} + elif $Sflag + then + # +@@ -203,7 +155,7 @@ then + install_name=$target/$solib + $CP $solib $install_name + status=$? +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$solib ${install_name#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$solib ${install_name#$DIST_ROOT} + break + fi + done +@@ -254,7 +206,7 @@ then + install_name=$target/$old_library + $CP $old_library $install_name + status=$? +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$old_library ${install_name#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$old_library ${install_name#$DIST_ROOT} + ;; + *) + echo "$prog: -T $lt_install invalid" +@@ -267,7 +219,6 @@ then + if [ $status -eq 0 ] + then + $CHMOD $FILEMODE $install_name +- $CHOWN $OWNER $GROUP $install_name + fi + ;; + esac +@@ -292,23 +243,10 @@ else + then + if [ -f $dir/$f ] + then +- $CHMOD $FILEMODE $dir/$f +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir/$f +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f ++ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f + else + $CHMOD $FILEMODE $dir +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$dir ${dir#$DIST_ROOT} + fi + fi + else +@@ -334,14 +272,7 @@ else + status=$? + if [ $status -eq 0 ] + then +- $CHMOD $FILEMODE $dir/$f +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir/$f +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f ++ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f + fi + [ $status -ne 0 ] && break + done +-- +1.8.1.2 + diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb new file mode 100644 index 000000000..39f11890e --- /dev/null +++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb @@ -0,0 +1,46 @@ +SUMMARY = "XFS Filesystem Dump Utility" +DESCRIPTION = "The xfsdump package contains xfsdump, xfsrestore and a \ + number of other utilities for administering XFS filesystems.\ + xfsdump examines files in a filesystem, determines which \ + need to be backed up, and copies those files to a \ + specified disk, tape or other storage medium." +HOMEPAGE = "http://oss.sgi.com/projects/xfs" +SECTION = "base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=15c832894d10ddd00dfcf57bee490ecc" +DEPENDS = "xfsprogs attr" + +SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsdump/${BP}.tar.xz \ + file://remove-install-as-user.patch \ + file://0001-Include-fcntl.h-for-O_EXCL.patch \ + file://0002-Replace-__uint32_t-with-uint32_t.patch \ + file://0003-replace-use-of-SIGCLD-with-SIGCHLD.patch \ + file://0004-include-limit.h-for-PATH_MAX.patch \ + file://0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch \ + file://0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch \ + " +SRC_URI[md5sum] = "c6e91f2ac8b76c796db2d236f5ca5947" +SRC_URI[sha256sum] = "99e6d4df257ebc6d29ca9e970ca20672c2ea03481ad949bc68f98de3e4d56dce" + +inherit autotools-brokensep + +PARALLEL_MAKE = "" +PACKAGECONFIG ??= "" +PACKAGECONFIG[gettext] = "--enable-gettext=yes,--enable-gettext=no,gettext" + +CFLAGS += "-D_FILE_OFFSET_BITS=64" + +EXTRA_OEMAKE += "'LIBTOOL=${HOST_SYS}-libtool' V=1" + +do_configure () { + export DEBUG="-DNDEBUG" + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} + oe_runconf +} + +do_install () { + export DIST_ROOT=${D} + oe_runmake install + oe_runmake install-dev +} |