diff options
author | iggy <iggy@theiggy.com> | 2019-04-13 11:40:55 -0700 |
---|---|---|
committer | Kevin Daudt <kdaudt@alpinelinux.org> | 2019-04-15 10:55:28 +0000 |
commit | 3e96f1d31a74722b96209a608faf5ef9e0209b6f (patch) | |
tree | fe056656d70f604d6f51187f1fccfdc0201a3826 /testing/ceph | |
parent | 4c5ee31595c3d2906f7681dfc582cd89e688a54e (diff) | |
download | aports-3e96f1d31a74722b96209a608faf5ef9e0209b6f.tar.bz2 aports-3e96f1d31a74722b96209a608faf5ef9e0209b6f.tar.xz |
community/ceph: move from testing
Add radosgw subpackage back again.
Diffstat (limited to 'testing/ceph')
-rw-r--r-- | testing/ceph/APKBUILD | 432 | ||||
-rw-r--r-- | testing/ceph/allperms.patch | 13 | ||||
-rw-r--r-- | testing/ceph/ceph-common.pre-install | 5 | ||||
-rw-r--r-- | testing/ceph/musl-fixes.patch | 229 |
4 files changed, 0 insertions, 679 deletions
diff --git a/testing/ceph/APKBUILD b/testing/ceph/APKBUILD deleted file mode 100644 index c8999328f4..0000000000 --- a/testing/ceph/APKBUILD +++ /dev/null @@ -1,432 +0,0 @@ -# Contributor: John Coyle <dx9err@gmail.com> -# Maintainer: John Coyle <dx9err@gmail.com> -pkgname=ceph -pkgver=14.1.0 -pkgrel=3 -pkgdesc="Ceph is a distributed object store and file system" -pkgusers="ceph" -pkggroups="ceph" -url="http://ceph.com" -arch="x86_64" -license="LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and GPL-2.0-with-autoconf-exception and BSD-3-Clause and MIT" -depends="ceph-osd ceph-mds ceph-mon" -options="!checkroot" -_base_deps=" - cryptsetup - e2fsprogs - logrotate - parted - py2-requests py2-setuptools - util-linux - xfsprogs - " -_osd_deps="lvm2 sudo" -_ceph_test_deps="xmlstarlet" -makedepends=" - acl-dev - argp-standalone - bc - boost-dev - btrfs-progs - bzip2-dev - cmake - coreutils - cunit-dev - curl-dev - cython - diffutils - eudev-dev - expat-dev - fcgi-dev - flex - fuse - fuse-dev - git - grep - jq - keyutils-dev - leveldb-dev - libaio-dev - libatomic_ops-dev - libedit-dev - openssl-dev - libtirpc-dev - libtool - libxml2-dev - linux-headers - lvm2-dev - lz4-dev - nss-dev - openldap-dev - procps - python2-dev - py2-pip - py2-nose - py-sphinx - py2-virtualenv - rabbitmq-c-dev - readline-dev - rpcgen - snappy-dev - userspace-rcu-dev - xfsprogs-dev - xmlstarlet - yasm - $_base_deps - $_osd_deps - $_ceph_test_deps -" - -source="http://download.ceph.com/tarballs/ceph_$pkgver.orig.tar.gz - allperms.patch - musl-fixes.patch - " -subpackages=" - $pkgname-doc - $pkgname-base - $pkgname-common - $pkgname-mds - $pkgname-mgr - $pkgname-mon - $pkgname-fuse:ceph_fuse - $pkgname-osd - $pkgname-bash-completion:bash_completion - $pkgname-dev - rbd-fuse:rbd_fuse - rbd-mirror:rbd_mirror - rbd-nbd:rbd_nbd - librbd - libcephfs - librados - py2-rados:_py2_rados - libradosstriper - py2-rbd:_py2_rbd - py2-cephfs:_py2_cephfs -" - -_ceph_uid=167 -_ceph_gid=167 - -_prefix=/usr -_bindir=$_prefix/bin -_datadir=$_prefix/share -_docdir=$_datadir/doc -_includedir=$_prefix/include -_libdir=$_prefix/lib -_libexecdir=$_prefix/libexec -_localstatedir=/var -_mandir=$_datadir/man -_sbindir=/usr/sbin -_sysconfdir=/etc - -_udevrulesdir=/etc/udev/rules.d - -_py2_sitelib() { - python2 -c "import site; print(site.getsitepackages()[0])" -} - -build() { - export CEPH_BUILD_VIRTUALENV="$builddir" - - mkdir -p "$builddir"/build - cd "$builddir"/build - - cmake .. \ - -DCMAKE_INSTALL_PREFIX=$_prefix \ - -DCMAKE_INSTALL_LIBDIR=$_libdir \ - -DCMAKE_INSTALL_LIBEXECDIR=$_libexecdir \ - -DCMAKE_INSTALL_LOCALSTATEDIR=$_localstatedir \ - -DCMAKE_INSTALL_SYSCONFDIR=$_sysconfdir \ - -DCMAKE_INSTALL_DOCDIR=$_docdir/ceph \ - -DCMAKE_INSTALL_MANDIR=$_mandir \ - -DWITH_REENTRANT_STRSIGNAL=ON \ - -DWITH_THREAD_SAFE_RES_QUERY=ON \ - -DWITH_MANPAGE=ON \ - -DWITH_SYSTEM_BOOST=ON \ - -DWITH_PYTHON2=ON \ - -DWITH_PYTHON3=OFF \ - -DMGR_PYTHON_VERSION=2 \ - -DWITH_LTTNG=OFF \ - -DWITH_RDMA=OFF \ - -DWITH_RADOSGW=OFF \ - -DWITH_BABELTRACE=OFF \ - -DWITH_SYSTEMD=OFF \ - -DWITH_EMBEDDED=OFF \ - -DWITH_MGR_DASHBOARD_FRONTEND=OFF \ - -DWITH_TESTS=OFF - make - -} - -package() { - cd "$builddir"/build - make DESTDIR="$pkgdir" install - cd .. - - rm -f "$pkgdir"$_sysconfdir/init.d/ceph - - install -m 0644 -D src/etc-rbdmap "$pkgdir"$_sysconfdir/ceph/rbdmap - install -m 0644 -D src/logrotate.conf "$pkgdir"$_sysconfdir/logrotate.d/ceph - install -m 0644 -D etc/sysctl/90-ceph-osd.conf "$pkgdir"/$_sysconfdir/sysctl.d/90-ceph-osd.conf - chmod 0644 "$pkgdir"$_docdir/ceph/sample.ceph.conf - - # udev rules - install -m 0644 -D udev/50-rbd.rules "$pkgdir"$_udevrulesdir/50-rbd.rules - - # sudoers.d - install -m 0600 -D sudoers.d/ceph-osd-smartctl "$pkgdir"/$_sysconfdir/sudoers.d/ceph-osd-smartctl -} - -check() { - cd "$builddir"/build - ctest -} - -base() { - pkgdesc="Base is the package that includes all the files shared amongst ceph servers" - depends="$_base_deps - ceph-common=$pkgver-r$pkgrel - librbd=$pkgver-r$pkgrel - librados=$pkgver-r$pkgrel - libcephfs=$pkgver-r$pkgrel - " - - _pkg $_bindir \ - ceph-crash \ - crushtool \ - monmaptool \ - osdmaptool \ - ceph-kvstore-tool \ - ceph-run - _pkg $_sbindir ceph-create-keys - _pkg $_libexecdir/ceph ceph_common.sh - _pkg $_libdir/rados-classes '*.so*' - _pkg $_libdir/ceph/erasure-code 'libec_*.so*' - _pkg $_libdir/ceph/compressor 'libceph_*.so*' - _pkg $_libdir/ceph/crypto 'libceph_*.so*' - _pkg $_sysconfdir/logrotate.d ceph - _pkg "$(_py2_sitelib)" ceph_volume 'ceph_volume-*' - for dir in crash crash/posted tmp bootstrap-osd bootstrap-mds \ - bootstrap-rgw bootstrap-mgr bootstrap-rbd \ - bootstrap-rbd-mirror; do - - install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ - "$subpkgdir"$_localstatedir/lib/ceph/$dir - done -} - -common() { - pkgdesc="Common utilities to mount and interact with a ceph storage cluster." - depends="py2-rados py2-rbd py2-cephfs" - install="$pkgname-common.pre-install" - - _pkg $_bindir ceph \ - ceph-authtool \ - ceph-conf \ - ceph-dencoder \ - ceph-rbdnamer \ - ceph-syn \ - cephfs-data-scan \ - cephfs-journal-tool \ - cephfs-table-tool \ - rados \ - rbd \ - rbd-replay \ - rbd-replay-many \ - rbdmap \ - ceph-post-file - _pkg $_sbindir mount.ceph - _pkg $_datadir/ceph known_hosts_drop.ceph.com \ - id_rsa_drop.ceph.com \ - id_rsa_drop.ceph.com.pub - _pkg $_sysconfdir/ceph rbdmap - - _pkg "$(_py2_sitelib)" ceph_argparse.py* ceph_daemon.py* - - _pkg $_udevrulesdir 50-rbd.rules - install -m 3770 -o $_ceph_uid -g $_ceph_gid -d \ - "$subpkgdir"$_localstatedir/log/ceph - install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ - "$subpkgdir"$_localstatedir/lib/ceph -} - -mds() { - pkgdesc="Metadata server daemon for the Ceph distributed file system." - depends="ceph-base" - - _pkg $_bindir ceph-mds - install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ - "$subpkgdir"$_localstatedir/lib/ceph/mds -} - -mon() { - pkgdesc="Cluster monitor daemon for the Ceph distributed file system." - depends="ceph-base" - - _pkg $_bindir ceph-mon \ - ceph-monstore-tool - install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ - "$subpkgdir"$_localstatedir/lib/ceph/mon -} - -ceph_fuse() { - pkgdesc="FUSE based client for Ceph distributed network file system." - depends= - _pkg $_bindir ceph-fuse - _pkg $_sbindir mount.fuse.ceph -} - -rbd_fuse() { - pkgdesc="FUSE based client to map Ceph rbd images to files." - depends= - _pkg $_bindir rbd-fuse -} - -rbd_mirror() { - pkgdesc="Daemon for mirroring RBD images between Ceph clusters." - depends="ceph-common=$pkgver-r$pkgrel" - _pkg $_bindir rbd-mirror -} - -rbd_nbd() { - pkgdesc="NBD based client to map Ceph rbd images to local device." - depends= - _pkg $_bindir rbd-nbd -} - -osd() { - pkgdesc="Object storage daemon for the Ceph distributed file system." - depends="$pkgname-base=$pkgver-r$pkgrel $_osd_deps" - - _pkg $_bindir ceph-clsinfo \ - ceph-bluestore-tool \ - ceph-objectstore-tool \ - ceph-osdomap-tool \ - ceph-osd - _pkg $_sbindir ceph-volume ceph-volume-systemd - _pkg $_libexecdir/ceph ceph-osd-prestart.sh - _pkg $_sysconfdir/sudoers.d ceph-osd-smartctl - _pkg $_sysconfdir/sysctl.d 90-ceph-osd.conf - install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ - "$subpkgdir"$_localstatedir/lib/ceph/osd -} - -librados() { - pkgdesc="RADOS distributed object store client library" - depends= - _pkg $_libdir librados.so.* - _pkg $_libdir/ceph libceph-common.so.* -} - -_py2_rados() { - pkgdesc="Python libraries for the RADOS object store" - depends= - - _pkg "$(_py2_sitelib)" rados.so rados-*.egg-info -} - -libradosstriper() { - pkgdesc="RADOS striping library" - depends= - - _pkg $_libdir libradosstriper.so.* -} - -librbd() { - pkgdesc="RADOS block device client library" - depends= - _pkg $_libdir librbd.so.* -} - -_py2_rbd() { - pkgdesc="Python libraries for the RADOS block device" - depends="py2-rados" - - _pkg "$(_py2_sitelib)" rbd.so rbd-*.egg-info -} - -libcephfs() { - pkgdesc="Ceph distributed file system client library" - depends= - _pkg $_libdir libcephfs.so.* -} - -_py2_cephfs() { - pkgdesc="Python libraries for Ceph distributed file system" - depends="py2-rados" - - _pkg "$(_py2_sitelib)" cephfs.so cephfs-*.egg-info ceph_volume_client.py* -} - -ceph_test() { - pkgdesc="Ceph benchmarks and test tools" - depends="ceph-common=$pkgver-r$pkgrel $_ceph_test_deps" - - _pkg $_bindir ceph-client-debug \ - ceph_bench_log \ - ceph_kvstorebench \ - ceph_multi_stress_watch \ - ceph_erasure_code \ - ceph_erasure_code_benchmark \ - ceph_omapbench \ - ceph_objectstore_bench \ - ceph_perf_objectstore \ - ceph_perf_local \ - ceph_perf_msgr_client \ - ceph_perf_msgr_server \ - ceph_psim \ - ceph_radosacl \ - ceph_rgw_jsonparser \ - ceph_rgw_multiparser \ - ceph_scratchtool \ - ceph_scratchtoolpp \ - ceph_smalliobench \ - ceph_smalliobenchdumb \ - ceph_smalliobenchfs \ - ceph_smalliobenchrbd \ - ceph_test_* \ - ceph_tpbench \ - ceph_xattr_bench \ - ceph-coverage \ - ceph-monstore-tool \ - ceph-osdomap-tool \ - ceph-kvstore-tool \ - ceph-debugpack - - _pkg $_libdir ceph/ceph-monstore-update-crush.sh -} - -bash_completion() { - pkgdesc="Bash completions for Ceph" - depends= - install_if="ceph=$pkgver-r$pkgrel bash-completion" - _pkg $_sysconfdir/bash_completion.d '*' -} - -mgr() { - pkgdesc="Ceph Manager Daemon" - depends="ceph-base=$pkgver-r$pkgrel" - - _pkg $_bindir ceph-mgr - _pkg $_datadir/ceph mgr - - install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ - "$subpkgdir"$_localstatedir/lib/ceph/mgr -} - -_pkg() { - local path=$1 - shift - if ! [ -d "$pkgdir"/$path ]; then - error "$pkgdir/$path is not a directory" - return 1 - fi - mkdir -p "$subpkgdir"$path - for _file in "$@"; do - mv "$pkgdir"$path/$_file "$subpkgdir"$path - done -} - -sha512sums="902eb4b0b56f864eace3aaf5684b113a05875f7a8d081b45801a73cd883b35b60bcff5f7580727672839e2e68abe1bd0b73e2be4ca44ccde162cd1ce679ab313 ceph_14.1.0.orig.tar.gz -e1becd813ed3f28e2e4a6bef78b3b5117c1c0bb9cabe0ba9c912e0a20b551b6b2667495cddb94acd64192e287144911ff1c11e0d636fe04cc458146cfb0daca8 allperms.patch -35722b11ad52a3145153635b6a96abda2a23ae9c7e63e2eac006c1e5b8014452c4a1a11bbe0292fd731e4c43aa38e27dd75d2ff9d25bcf52290278f71e868570 musl-fixes.patch" diff --git a/testing/ceph/allperms.patch b/testing/ceph/allperms.patch deleted file mode 100644 index a5ce1c031d..0000000000 --- a/testing/ceph/allperms.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- ceph-11.1.1/src/test/libcephfs/test.cc.orig 2017-01-16 00:17:44.154815630 +0000 -+++ ceph-11.1.1/src/test/libcephfs/test.cc 2017-01-16 00:18:09.642520993 +0000 -@@ -31,6 +31,10 @@ - #include <map> - #include <vector> - -+#ifndef ALLPERMS -+#define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) -+#endif -+ - TEST(LibCephFS, OpenEmptyComponent) { - - pid_t mypid = getpid(); diff --git a/testing/ceph/ceph-common.pre-install b/testing/ceph/ceph-common.pre-install deleted file mode 100644 index bae4f09dc7..0000000000 --- a/testing/ceph/ceph-common.pre-install +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -addgroup ceph -g 167 -S 2>/dev/null -adduser ceph -u 167 -S -G ceph -s /sbin/nologin -h /var/lib/ceph -g "Ceph Daemons" 2> /dev/null -exit 0 diff --git a/testing/ceph/musl-fixes.patch b/testing/ceph/musl-fixes.patch deleted file mode 100644 index 6e50e6ba5b..0000000000 --- a/testing/ceph/musl-fixes.patch +++ /dev/null @@ -1,229 +0,0 @@ -diff --git a/src/common/secret.c b/src/common/secret.c -index b6f26ec3..1b4531f8 100644 ---- a/src/common/secret.c -+++ b/src/common/secret.c -@@ -63,9 +63,18 @@ int set_kernel_secret(const char *secret, const char *key_name) - - ret = ceph_unarmor(payload, payload+sizeof(payload), secret, secret+secret_len); - if (ret < 0) { -- char error_buf[80]; -- fprintf(stderr, "secret is not valid base64: %s.\n", -- strerror_r(-ret, error_buf, sizeof(error_buf))); -+ char error_buf[80] = "unkown error"; -+ char *p; -+#if defined(__GLIBC__) -+ p = strerror_r(-ret, error_buf, sizeof(error_buf)); -+#else -+ if (strerror_r(-ret, error_buf, sizeof(error_buf)) < 0) { -+ p = "unkown error"; -+ } else { -+ p = error_buf; -+ } -+#endif -+ fprintf(stderr, "secret is not valid base64: %s.\n", p); - return ret; - } - -diff --git a/src/dmclock/src/dmclock_util.cc b/src/dmclock/src/dmclock_util.cc -index e8046cdc..aa9000bc 100644 ---- a/src/dmclock/src/dmclock_util.cc -+++ b/src/dmclock/src/dmclock_util.cc -@@ -21,7 +21,7 @@ - #include "dmclock_util.h" - - --std::string crimson::dmclock::format_time(const Time& time, uint modulo) { -+std::string crimson::dmclock::format_time(const Time& time, unsigned int modulo) { - long subtract = long(time / modulo) * modulo; - std::stringstream ss; - ss << std::fixed << std::setprecision(4) << (time - subtract); -diff --git a/src/dmclock/src/dmclock_util.h b/src/dmclock/src/dmclock_util.h -index d3fd3f19..ee8b6c3a 100644 ---- a/src/dmclock/src/dmclock_util.h -+++ b/src/dmclock/src/dmclock_util.h -@@ -52,7 +52,7 @@ namespace crimson { - #endif - } - -- std::string format_time(const Time& time, uint modulo = 1000); -+ std::string format_time(const Time& time, unsigned int modulo = 1000); - - void debugger(); - -diff --git a/src/seastar/dpdk/config/common_base b/src/seastar/dpdk/config/common_base -index 8907bea3..6d3f7577 100644 ---- a/src/seastar/dpdk/config/common_base -+++ b/src/seastar/dpdk/config/common_base -@@ -96,7 +96,7 @@ CONFIG_RTE_MAX_TAILQ=32 - CONFIG_RTE_LOG_LEVEL=RTE_LOG_INFO - CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO - CONFIG_RTE_LOG_HISTORY=256 --CONFIG_RTE_BACKTRACE=y -+CONFIG_RTE_BACKTRACE=n - CONFIG_RTE_LIBEAL_USE_HPET=n - CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n - CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n -diff --git a/src/spdk/dpdk/config/common_base b/src/spdk/dpdk/config/common_base -index d5fbb3a4..d9561545 100644 ---- a/src/spdk/dpdk/config/common_base -+++ b/src/spdk/dpdk/config/common_base -@@ -80,7 +80,7 @@ CONFIG_RTE_MAX_TAILQ=32 - CONFIG_RTE_ENABLE_ASSERT=n - CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO - CONFIG_RTE_LOG_HISTORY=256 --CONFIG_RTE_BACKTRACE=y -+CONFIG_RTE_BACKTRACE=n - CONFIG_RTE_LIBEAL_USE_HPET=n - CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n - CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n -diff --git a/src/spdk/dpdk/config/rte_config.h b/src/spdk/dpdk/config/rte_config.h -index a8e47977..7599bd39 100644 ---- a/src/spdk/dpdk/config/rte_config.h -+++ b/src/spdk/dpdk/config/rte_config.h -@@ -30,7 +30,7 @@ - #define RTE_MAX_MEMZONE 2560 - #define RTE_MAX_TAILQ 32 - #define RTE_LOG_DP_LEVEL RTE_LOG_INFO --#define RTE_BACKTRACE 1 -+//#define RTE_BACKTRACE 1 - #define RTE_EAL_VFIO 1 - #define RTE_MAX_VFIO_CONTAINERS 64 - -diff --git a/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c b/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c -index a7c14421..aff241e8 100644 ---- a/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c -+++ b/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c -@@ -14,6 +14,32 @@ - - #if defined(RTE_ARCH_X86) - #include <sys/io.h> -+#if defined(__GLIBC__) -+#define pci_uio_outl_p outl_p -+#define pci_uio_outw_p outw_p -+#define pci_uio_outb_p outb_p -+#else -+static inline void -+pci_uio_outl_p(unsigned int value, unsigned short int port) -+{ -+ __asm__ __volatile__ ("outl %0,%w1\noutb %%al,$0x80" : : "a" (value), -+ "Nd" (port)); -+} -+ -+static inline void -+pci_uio_outw_p(unsigned short int value, unsigned short int port) -+{ -+ __asm__ __volatile__ ("outw %w0,%w1\noutb %%al,$0x80" : : "a" (value), -+ "Nd" (port)); -+} -+ -+static inline void -+pci_uio_outb_p(unsigned char value, unsigned short int port) -+{ -+ __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80" : : "a" (value), -+ "Nd" (port)); -+} -+#endif - #endif - - #include <rte_log.h> -@@ -527,21 +553,21 @@ pci_uio_ioport_write(struct rte_pci_ioport *p, - if (len >= 4) { - size = 4; - #if defined(RTE_ARCH_X86) -- outl_p(*(const uint32_t *)s, reg); -+ pci_uio_outl_p(*(const uint32_t *)s, reg); - #else - *(volatile uint32_t *)reg = *(const uint32_t *)s; - #endif - } else if (len >= 2) { - size = 2; - #if defined(RTE_ARCH_X86) -- outw_p(*(const uint16_t *)s, reg); -+ pci_uio_outw_p(*(const uint16_t *)s, reg); - #else - *(volatile uint16_t *)reg = *(const uint16_t *)s; - #endif - } else { - size = 1; - #if defined(RTE_ARCH_X86) -- outb_p(*s, reg); -+ pci_uio_outb_p(*s, reg); - #else - *(volatile uint8_t *)reg = *s; - #endif -diff --git a/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c b/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c -index ba6c4ae3..b9b7d70d 100644 ---- a/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c -+++ b/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c -@@ -9,6 +9,7 @@ - #include <errno.h> - #include <sys/file.h> - #include <string.h> -+#include <fcntl.h> - - #include <rte_common.h> - #include <rte_log.h> -diff --git a/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c b/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c -index 02a5385d..cf063d5f 100644 ---- a/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c -+++ b/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c -@@ -1,6 +1,7 @@ - /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2010-2014 Intel Corporation - */ -+ #include<string.h> - #include <stdint.h> - #include <stddef.h> - #include <stdlib.h> -diff --git a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c -index 3a7d4b22..99b25d3c 100644 ---- a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c -+++ b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c -@@ -17,6 +17,7 @@ - #include <sys/mman.h> - #include <sys/queue.h> - #include <sys/stat.h> -+#include <fcntl.h> - - #include <linux/mman.h> /* for hugetlb-related flags */ - -diff --git a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c -index 0bf2aef3..0c98c74c 100644 ---- a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c -+++ b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c -@@ -15,6 +15,7 @@ - #include <sys/mman.h> - #include <sys/types.h> - #include <sys/stat.h> -+#include <fcntl.h> - #include <sys/queue.h> - #include <sys/file.h> - #include <unistd.h> -diff --git a/src/spdk/dpdk/mk/target/generic/rte.vars.mk b/src/spdk/dpdk/mk/target/generic/rte.vars.mk -index 98085cd3..dd149acc 100644 ---- a/src/spdk/dpdk/mk/target/generic/rte.vars.mk -+++ b/src/spdk/dpdk/mk/target/generic/rte.vars.mk -@@ -108,6 +108,9 @@ CFLAGS += -include $(RTE_SDK_BIN)/include/rte_config.h - LDFLAGS += -L$(RTE_SDK_BIN)/lib - endif - -+# always define _GNU_SOURCE -+CFLAGS += -D_GNU_SOURCE -+ - export CFLAGS - export LDFLAGS - -diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc -index cce44e4f..b0988e64 100644 ---- a/src/tools/rbd_nbd/rbd-nbd.cc -+++ b/src/tools/rbd_nbd/rbd-nbd.cc -@@ -552,7 +552,8 @@ private: - for (unsigned i = 0; i < cmdline.size(); i++) { - const char *arg = &cmdline[i]; - if (i == 0) { -- if (strcmp(basename(arg) , "rbd-nbd") != 0) { -+ const char *fname = strrchr(arg, '/'); -+ if (strcmp(fname ? fname+1 : arg, "rbd-nbd") != 0) { - return -EINVAL; - } - } else { |