From 7203d4a34e2a176043538d28de01b01997950d18 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Thu, 4 Jan 2018 15:01:47 +0800 Subject: [PATCH] */build_deb: pass env vars with quotes should double quote env var in command substitution, otherwise shell will perform field splitting with the substitution, and only the first element in it will be consumed. that's why CEPH_EXTRA_CMAKE_ARGS will always be `-DALLOCATOR=libc` when it reaches debian/rules, even if 'CEPH_EXTRA_CMAKE_ARGS' is "-DALLOCATOR=libc -DWITH_STATIC_LIBSTDCXX=ON", and it is passed to pbuilder like: sudo CEPH_EXTRA_CMAKE_ARGS=$CEPH_EXTRA_CMAKE_ARGS pbuilder ... Fixes: http://tracker.ceph.com/issues/22465 Signed-off-by: Kefu Chai --- ceph-build/build/build_deb | 8 +++----- ceph-dev-build/build/build_deb | 8 +++----- ceph-dev-new-build/build/build_deb | 8 +++----- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/ceph-build/build/build_deb b/ceph-build/build/build_deb index 1268ab52..9a437239 100644 --- a/ceph-build/build/build_deb +++ b/ceph-build/build/build_deb @@ -73,14 +73,12 @@ echo deb vers $bpvers echo building debs for $DIST -if [ -n $(extra_cmake_args) ]; then - CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS $(extra_cmake_args)" -fi +CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS $(extra_cmake_args)" # pass only those env vars specifically noted sudo \ - CEPH_EXTRA_CMAKE_ARGS=$CEPH_EXTRA_CMAKE_ARGS \ - CEPH_EXTRA_CONFIGURE_ARGS=$CEPH_EXTRA_CONFIGURE_ARGS \ + CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS" \ + CEPH_EXTRA_CONFIGURE_ARGS="$CEPH_EXTRA_CONFIGURE_ARGS" \ pbuilder build \ --distribution $DIST \ --basetgz $pbuilddir/$DIST.tgz \ diff --git a/ceph-dev-build/build/build_deb b/ceph-dev-build/build/build_deb index 962eeb84..ca4a23b5 100644 --- a/ceph-dev-build/build/build_deb +++ b/ceph-dev-build/build/build_deb @@ -73,14 +73,12 @@ echo deb vers $bpvers echo building debs for $DIST -if [ -n $(extra_cmake_args) ]; then - CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS $(extra_cmake_args)" -fi +CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS $(extra_cmake_args)" # pass only those env vars specifically noted sudo \ - CEPH_EXTRA_CMAKE_ARGS=$CEPH_EXTRA_CMAKE_ARGS \ - CEPH_EXTRA_CONFIGURE_ARGS=$CEPH_EXTRA_CONFIGURE_ARGS \ + CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS" \ + CEPH_EXTRA_CONFIGURE_ARGS="$CEPH_EXTRA_CONFIGURE_ARGS" \ pbuilder build \ --distribution $DIST \ --basetgz $pbuilddir/$DIST.tgz \ diff --git a/ceph-dev-new-build/build/build_deb b/ceph-dev-new-build/build/build_deb index 962eeb84..ca4a23b5 100644 --- a/ceph-dev-new-build/build/build_deb +++ b/ceph-dev-new-build/build/build_deb @@ -73,14 +73,12 @@ echo deb vers $bpvers echo building debs for $DIST -if [ -n $(extra_cmake_args) ]; then - CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS $(extra_cmake_args)" -fi +CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS $(extra_cmake_args)" # pass only those env vars specifically noted sudo \ - CEPH_EXTRA_CMAKE_ARGS=$CEPH_EXTRA_CMAKE_ARGS \ - CEPH_EXTRA_CONFIGURE_ARGS=$CEPH_EXTRA_CONFIGURE_ARGS \ + CEPH_EXTRA_CMAKE_ARGS="$CEPH_EXTRA_CMAKE_ARGS" \ + CEPH_EXTRA_CONFIGURE_ARGS="$CEPH_EXTRA_CONFIGURE_ARGS" \ pbuilder build \ --distribution $DIST \ --basetgz $pbuilddir/$DIST.tgz \ -- 2.39.5