All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: "Luis R. Rodriguez" <mcgrof@kernel.org>
Cc: fstests@vger.kernel.org
Subject: Re: [PATCH] xfstests: fix install target using sudo
Date: Wed, 27 Jun 2018 17:42:19 +1000	[thread overview]
Message-ID: <20180627074219.GK13748@dastard> (raw)
In-Reply-To: <20180626210834.24220-1-mcgrof@kernel.org>

On Tue, Jun 26, 2018 at 02:08:34PM -0700, Luis R. Rodriguez wrote:
> If you install with:
> 
> 	sudo make install
> 
> Depending on the system, you may see /var/lib/xfstests/tests/ is empty.
> This is because $(PWD) can expand to be empty on certain systems and so the
> wildcard finds nothing.

When and why?

I'm guessing it's because the environment variable PWD is not
exported by the shell that make is being run in?  /bin/sh, /bin/bash
and /bin/dash should always set PWD in the environment, so maybe
you're using a different shell that doesn't set PWD correctly?

> PWD is only used on one target, the tests/*/ dir install target.
> 
> We can fix this by using $(CURDIR) however that does not suffice as we
> are also using the $(wildcard) and that needs its own careful expansion.

$(CURDIR) is documented as an being the current absolute path, so
AFAICT there's nothing to be careful about in terms of expansion.
What are you trying to avoid here?

> This issue is observed on both Fedora and OpenSUSE, but not on Debian.

This really smells more of a shell/environment issue, not a distro
issue.

> Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
> ---
>  tests/Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/Makefile b/tests/Makefile
> index 2611b3b845f5..084135da0487 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -5,7 +5,8 @@
>  TOPDIR = ..
>  include $(TOPDIR)/include/builddefs
>  
> -TESTS_SUBDIRS = $(sort $(dir $(wildcard $(PWD)/$(TESTS_DIR)/[a-z]*/)))
> +TEST_DIR = $(dir $(CURDIR)/$(TESTS_DIR))

I think this is wrong - you're creating an invalid path:

curdir/tests_dir is /home/dave/src/xfstests-dev/tests/tests
dir curdir/tests_dir is /home/dave/src/xfstests-dev/tests/

then using $(dir <path>) command to truncate away the invalid
path segment, resulting in the original path $(CURDIR) gave you.

In fact, $(CURDIR) is basically what the current code intends - I
didn't know this existed because it's not obviously searchable (i.e.
not a CWD or PWD variant) so I hacked around it with environment
variables.

So AFAICT, the change the needs to be made here is:

-TESTS_SUBDIRS = $(sort $(dir $(wildcard $(PWD)/$(TESTS_DIR)/[a-z]*/)))
+TESTS_SUBDIRS = $(sort $(dir $(wildcard $(CURDIR)/[a-z]*/)))

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  reply	other threads:[~2018-06-27  7:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-26 21:08 [PATCH] xfstests: fix install target using sudo Luis R. Rodriguez
2018-06-27  7:42 ` Dave Chinner [this message]
2018-06-27 16:03   ` Luis R. Rodriguez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180627074219.GK13748@dastard \
    --to=david@fromorbit.com \
    --cc=fstests@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.