Andrew,
I think we can support all of these concepts.
1) SVN extern to binaries. Developer can opt-out of externs.
2) Edksetup.* can be updated to detect if the binaries are already present
or not. If they are not present, then edksetup.* can either build from sources
or pull from source control. We need to add an extra parameter for edksetup.*
to allow the developer to select either of these actions.
3) Need to do some adjustment to existing BaseTools directory organization
and build output directories, so scripts are always under source control, and
binary tools for all operating systems are in consistent location that is
compatible with base tools binaries sub-project. Don't really need to do
anything now. Can do this tasks if/when there are requests for additional OS
specific tool binaries.
Thanks,
Mike
From: Andrew Fish [mailto:[email protected]]
Sent: Monday, July 14, 2014 2:42 PM
To: Kinney, Michael D
Cc: [email protected];
[email protected]
Subject: Re: [edk2-buildtools] [edk2] [RFC] Proposal to retire edk2-buildtools
sub-project
On Jul 14, 2014, at 2:11 PM, Kinney, Michael D
<[email protected]<mailto:[email protected]>> wrote:
Andrew,
The proposal here to have a sub-project for tool binaries is not limited to
windows. We proposed a directory structure for the tool binaries that can
support any number of operating systems. For operating systems where pulling
binaries or build binaries is an option, we need to make it easy for each
developer to make that choice. That is why I proposed using the SVN extern
with the option to opt-out of the externs to avoid pulling the pre-built
binaries. If we move that option into edksetp.*, then I am concerned that we
will need to add an extra parameter to edksetup.* to pull or build from
sources. I do not think we can auto-detect the developers intent here.
Mike,
Sorry I did not realized more binaries would be included? Seems even more
reason to only, optionally pull the ones you want...
How is the BaseTools directory going to change to support this? Linux and OS X
point to
https://svn.code.sf.net/p/edk2/code/trunk/edk2/BaseTools/BinWrappers/PosixLike/.
The scripts that wrap binaries all point to the same place
($EDK_TOOLS_PATH/Source/C/bin/$TOOL_BASENAME)?
https://svn.code.sf.net/p/edk2/code/trunk/edk2/BaseTools/BinWrappers/PosixLike/GenFv.
So basically today you can't support multiple binary tools.
Are you saying you are going to copy extra tools into the Bin directory?
https://svn.code.sf.net/p/edk2/code/trunk/edk2/BaseTools/Bin/
If you look the current Bin directory for CYTGWIN you will see it is pointing
to the common tools build output location.
So it seems the tools build need a better concept of where to install the tools?
I still like script building the tools, or copying them from source control as
part of the install.
For your question about the "previous plan". Are you referring to how things
work today? If you build BaseTools from sources under windows today, it will
show file differences for the generated binaries.
I guess the current way, and the svn external. If you don't pull the external I
guess it is un-versioned.
Thanks,
Andrew Fish
Thanks,
Mike
From: Andrew Fish [mailto:[email protected]]
Sent: Monday, July 14, 2014 12:21 PM
To: Kinney, Michael D
Cc: [email protected]<mailto:[email protected]>;
[email protected]<mailto:[email protected]>
Subject: Re: [edk2-buildtools] [edk2] [RFC] Proposal to retire edk2-buildtools
sub-project
On Jul 13, 2014, at 9:41 PM, Kinney, Michael D
<[email protected]<mailto:[email protected]>> wrote:
Andrew,
The concept of pulling the binaries from svn if they are not present is a good
option to consider. Maybe edksetup.bat pulls latest version of
edk2-toolsbinaries sub-project if binaries are not present. This would require
the command line version of svn to be installed and in the path for that to
work. I am not sure if all SVN clients include command line utility or not. I
will have to check. This is almost identical in behavior to proposed SVN
extern. It just defers the pull of the binaries.
I need to double check, but I believe the behavior when building tools would be
as follows:
1) If you use default (pull binaries) and build the tools, then yes, SVN
will show file differences.
Well for *.bat options make sense. For *.sh if you are not on Windows no point
in pulling the binaries, and it is probably safe to kick off a build of the
tools. I think the script (or the one it calls) already detects Cygwin vs.
Linux vs. OS X, so it should not be that hard to do.
2) If you opt-out of binaries, then the binaries will be generated in a
directory that is not under source control, so no file differences will be
shown.
But what happens with the previous plan. It seems like if you build binaries
you would get svn status notifications for all the binaries.
Best regards,
Mike
From: Andrew Fish [mailto:[email protected]]
Sent: Friday, July 11, 2014 5:19 PM
To: [email protected]<mailto:[email protected]>
Cc:
[email protected]<mailto:[email protected]>
Subject: Re: [edk2-buildtools] [edk2] [RFC] Proposal to retire edk2-buildtools
sub-project
On Jul 10, 2014, at 4:11 PM, Kinney, Michael D
<[email protected]<mailto:[email protected]>> wrote:
Hello,
I am looking for comments on a proposal on how EDK II BaseTools is maintained.
The goal is to move all tool related development activities to the EDK II
BaseTools. This is to address community feedback that there are long delays
between changes made to the edk2-buildtools sub-project and the changes being
propagated to EDK II BaseTools. There has also been feedback that some
developers do not want the overhead of pulling Win32 binaries when they are not
required. I am interested in your feedback (positive or negative) on this
proposal and if you think steps should be added or removed or modified.
I would appreciate feedback by 7/18/2014. Please let us know if you need more
time to evaluate this proposal.
Proposed steps:
===============
1) Create new sub-project for BaseTools binaries
a. SVN Link:
https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/
b. Status: Done.
2) Intel to provide build server for BaseTools Win32 binaries
a. SVN Link:
https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/Win32/
b. Build Frequency: Once per day, but only if there are source
changes since last build.
c. Build Time: 3 AM PDT
d. Build server to send email with build log when build is
performed.
e. Build server send email that no build was required if no
source changes since last build.
f. Status: In progress. Need a few more validation steps.
3) Delete Win32 binaries from EDK II BaseTools and replace with an SVN extern.
a. Default will continue to pull Win32 binaries
b. Developers that do not want Win32 binaries can opt-out by
ignoring externs.
c. Date: TBD. Goal is immediately after build server is stable.
Mike,
Given this complexity why don't we just make edksetup.bat/edksetup.sh a little
smarter. If edk2setup.* does not see the binaries it builds the tools.
I guess on Windows there is a concern about having to install Python (I'm not
sure if the Python Freeze is required if you have Python). So you could detect
the tools where not installed, and pull down tool binaries via svn. You could
have a file that con tainted the correct version of svn to pull for the tools.
I like this as:
1) Checking in binaries is evil, and not allowed in some production
environments, so folks end up solving this problem anyway.
2) It make the instructions for using the edk2setup.sh path easier.
Thanks,
Andrew Fish
PS What happens to the svn external if some one builds tools locally? Does it
show up as a modified file in svn?
4) Merge sources from Edk2-buildtools to EDK II BaseTools
a. Date: TBD. Goal is immediately after build server is stable.
5) Change permissions on Edk2-buildtools sub-project to read-only and mark
sub-project as inactive.
a. Date: TBD. Goal is immediately after EDK II BaseTools is
synced with EDK2-buildtools.
6) Retire
[email protected]<mailto:[email protected]>
mailing list. All commits to BaseTools sources will show up on
[email protected]<mailto:[email protected]>.
7) Retire
[email protected]<mailto:[email protected]>
and move all BaseTools related discussions to
[email protected]<mailto:[email protected]>
Thanks,
Mike
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel