OK.  Let me paraphrase what I think you said in order to determine if I 
understand the issues.

Goal:
        Create a Linux distribution package (RPM, etc.) that, upon 
installation, builds various UEFI modules
        and installs them into the /boot partition, thus extending, updating, 
or replacing UEFI boot files, drivers, or utilities.

Questions:
        Would a setup like is done for Linux kernel modules work?  The package 
you install references a previously
        installed "kernel_dev" package that has the necessary headers and 
libraries.  The whole kernel source tree
        is not necessary but drivers, etc., can be built.  (replace "kernel" 
with "edk2" or "uefi" in solution)

        Is the "Boot Manager" that you are developing a UEFI application like 
elilo and grub are?  (as opposed to
        a Linux application manipulating the UEFI boot environment)

Restate:
So you, as a developer or software manufacturer, wish to be able to distribute 
bits of UEFI firmware to be installed
from Linux into the EFI System partition (usually mounted as /boot or as a 
child of /boot).  To ensure platform
compatibility, the firmware would be built on the target system as part of the 
installation process.  It is unreasonable
to include the entire EDK II or UDK2010 source tree as part of the package.  It 
is desirable that the EDK II or UDK2010
source tree not be required; just necessary headers.  The native Linux build 
tools must be used to build the firmware.
It would be acceptable to also use tools installed as part of the "uefi-dev" 
package that also provided the headers.

Am I correct or have I missed something?
A clear description of the problem and bounds of the solution set are necessary 
first steps to solving the problem.
I would like to help you provide a strong argument for change or enhancement of 
the current tools.

Daryl McDaniel


-----Original Message-----
From: Rod Smith [mailto:rodsm...@rodsbooks.com] 
Sent: Friday, February 22, 2013 7:22 PM
To: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] Projects outside the edk directory structure

On 02/22/2013 01:22 PM, Mcdaniel, Daryl wrote:
> IMHO, the easiest way to build a package or module that is not in the
> WORKSPACE tree is to use symbolic links and the standard EDK II build
> system. Create a symbolic link to your package in the root of
> $WORKSPACE or a link to your module within the using package.

As I wrote when this topic came up three weeks ago, the approach you 
suggest won't work when your goal is to create a program that's 
compatible with inclusion in a Linux distribution. The issue is one of 
the assumptions that the package systems (RPM, Debian packages, ebuilds, 
etc.) make about where files go and what permissions they have. Placing 
the source files for a specific package (rEFInd, in my case) within a 
library's source directory (TianoCore's) simply cannot be guaranteed in 
the build system -- at least, not as far as I know for the package 
systems with which I'm familiar. Even dropping the files elsewhere and 
creating symbolic links would be unreliable at best because of 
permissions issues -- creating a symbolic link requires write access 
within the TianoCore tree, but packages can be built by ordinary users 
who might not have such access. Thus, a build process that does not 
touch the library tree is a pre-requisite for building in a way that's 
compatible with building as a Linux package. The only way I can think of 
to build an EFI program in-tree with TianoCore using RPM is to include 
the entire TianoCore tree as a patch to the main program, and that's 
just plain ridiculous.

Of course, this specific reason doesn't apply to every project. If 
you're writing an EFI driver for a hardware device and have no reason to 
distribute it with Linux, you probably don't care about building Linux 
packages, and that's fine. I, OTOH, was developing a boot manager that I 
wanted to be easy to distribute with Linux, so using a Linux-friendly 
build process was high on my list of priorities. Daniel Cardin, who 
started this thread, hasn't said why he wants to build outside of the 
TianoCore tree, or even what platform he's using, so it's hard to say 
what approach would work best for him.

-- 
Rod Smith
rodsm...@rodsbooks.com
http://www.rodsbooks.com

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to