public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Michael Zimmermann <sigmaepsilon92@gmail.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>,
	edk2-devel-01 <edk2-devel@lists.01.org>,
	Liming Gao <liming.gao@intel.com>
Subject: Re: [RFC] edksetup.sh: detect updated BaseTools templates
Date: Sun, 4 Sep 2016 22:46:21 +0200	[thread overview]
Message-ID: <CAN9vWDJFQ9PZ_m4n12+fOo2kBTKJL3wyOG7YM4-1wHTsWZ9nhw@mail.gmail.com> (raw)
In-Reply-To: <CAKv+Gu8Mjow8b1D4+RGs=NOdsDwmCBcACXikMW4S_SubnHUgUg@mail.gmail.com>

what about creating timestamp files(or even checksums if you want to be
100% sure) after copying the templates? so you can check if somebody else
modified them.

if the timestamp files don't exist you it means that we never copied the
templates.

On Sun, Sep 4, 2016 at 10:35 PM, Ard Biesheuvel <ard.biesheuvel@linaro.org>
wrote:

> On 4 September 2016 at 17:10, Michael Zimmermann
> <sigmaepsilon92@gmail.com> wrote:
> >> Could we instead make the files under Conf/ symlinks to the templates?
> > Sounds like a good idea in general but what about windows? afaik only
> NTFS
> > has support for them.
> >
>
> Ah yes, excellent point.
>
> So perhaps the BaseTools should simply default to the template if the
> Conf/ version is missing? I am concerned about breaking people's
> workflow where they keep non-trivial local changes in these files.
>
>
> > On Sun, Sep 4, 2016 at 5:55 PM, Ard Biesheuvel <
> ard.biesheuvel@linaro.org>
> > wrote:
> >>
> >> On 4 September 2016 at 16:41, Leif Lindholm <leif.lindholm@linaro.org>
> >> wrote:
> >> > Make edksetup.sh automatically update the cached configuration under
> >> > Conf/ when the templates under BaseTools/Conf/ change.
> >> >
> >> > Contributed-under: TianoCore Contribution Agreement 1.0
> >> > Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
> >> > ---
> >> >
> >> > We keep getting questions from people starting out with EDK2
> >> > development,
> >> > whenever certain options in the BaseTools template configs change and
> >> > their builds break. I don't know if this naive sledgehammer approach
> is
> >> > acceptable, but I'd like to make life easier for people.
> >> >
> >>
> >> Could we instead make the files under Conf/ symlinks to the templates?
> >> That way, people can still keep local changes in these files, which is
> >> presumably the reason for this arrangement, while the 'naive' user
> >> [with no interest in keeping local changes] does not have to deal with
> >> this.
> >>
> >>
> >> >  edksetup.sh | 33 +++++++++++++++++++++++++++++++--
> >> >  1 file changed, 31 insertions(+), 2 deletions(-)
> >> >
> >> > diff --git a/edksetup.sh b/edksetup.sh
> >> > index 57368b5..77f0d43 100755
> >> > --- a/edksetup.sh
> >> > +++ b/edksetup.sh
> >> > @@ -33,12 +33,41 @@ function HelpMsg()
> >> >    return 1
> >> >  }
> >> >
> >> > +function ClearCache()
> >> > +{
> >> > +  CONF_FILES="build_rule target tools_def"
> >> > +  if [ -z "$EDK_TOOLS_PATH" ]
> >> > +  then
> >> > +    TEMPLATE_PATH=./BaseTools/Conf/
> >> > +  else
> >> > +    TEMPLATE_PATH="$EDK_TOOLS_PATH/Conf/"
> >> > +  fi
> >> > +
> >> > +  DELETED_FILES=0
> >> > +  for File in $CONF_FILES
> >> > +  do
> >> > +    TEMPLATE_FILE="$TEMPLATE_PATH/$File.template"
> >> > +    CACHE_FILE="Conf/$File.txt"
> >> > +    if [ "$TEMPLATE_FILE" -nt "$CACHE_FILE" ]
> >> > +    then
> >> > +      echo "Removing outdated '$CACHE_FILE'."
> >> > +      rm "$CACHE_FILE"
> >> > +      DELETED_FILES=$(($DELETED_FILES + 1))
> >> > +    fi
> >> > +  done
> >> > +
> >> > +  unset TEMPLATE_PATH TEMPLATE_FILE CACHE_FILE
> >> > +  return $DELETED_FILES
> >> > +}
> >> > +
> >> >  function SetWorkspace()
> >> >  {
> >> >    #
> >> > -  # If WORKSPACE is already set, then we can return right now
> >> > +  # Check for updated BaseTools templates. If none, and
> >> > +  # WORKSPACE is already set, then we can return right now
> >> >    #
> >> > -  if [ -n "$WORKSPACE" ]
> >> > +  ClearCache
> >> > +  if [ $? -ne 0 -a -n "$WORKSPACE" ]
> >> >    then
> >> >      return 0
> >> >    fi
> >> > --
> >> > 2.9.3
> >> >
> >> _______________________________________________
> >> edk2-devel mailing list
> >> edk2-devel@lists.01.org
> >> https://lists.01.org/mailman/listinfo/edk2-devel
> >
> >
>


  reply	other threads:[~2016-09-04 20:46 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-04 15:41 [RFC] edksetup.sh: detect updated BaseTools templates Leif Lindholm
2016-09-04 15:55 ` Ard Biesheuvel
2016-09-04 16:10   ` Michael Zimmermann
2016-09-04 20:35     ` Ard Biesheuvel
2016-09-04 20:46       ` Michael Zimmermann [this message]
2016-10-19 12:21       ` Leif Lindholm
2016-10-20  6:58         ` Gao, Liming
2016-09-04 22:02     ` B Cran

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-list 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=CAN9vWDJFQ9PZ_m4n12+fOo2kBTKJL3wyOG7YM4-1wHTsWZ9nhw@mail.gmail.com \
    --to=devel@edk2.groups.io \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox