[ewg] Re: Distributing the SRP target source code
Vu Pham
vuhuong at mellanox.com
Tue Jan 29 00:20:54 PST 2008
Bart Van Assche wrote:
> On Jan 28, 2008 6:07 PM, Vu Pham <huongvp at yahoo.com> wrote:
>> On srpt readme file, the prerequisite is install SCST BEFORE
>> ofed-1.3 or like Vlad warning "recompiling ofed" if you
>> install scst after install ofed.
>
> This is what will happen if someone installs Linux kernel headers +
> SCST + OFED in this order:
> 1. Linux kernel headers matching the running kernel are installed in
> /usr/src/linux-.../include or equivalent, and a symbolic link to the
> kernel headers is created in /lib/modules/$(uname -r)/build/include.
> 2. By building and installing SCST, SCST modules are installed in
> /lib/modules/$(uname -r)/extra and SCST kernel headers are installed
> in /usr/local/include, a.o. SCST's scsi_tgt.h header file, the
> interface between SCST and mid-level SCSI drivers.
> 3. Next, OFED kernel modules are being built. During this process the
> SRP target module is compiled with the header file
> drivers/infiniband/ulp/srpt/scsi_tgt.h. The version of this file
> distributed with OFED 1.3 is incompatible with the one distributed
> with the latest version of SCST. Or: the kernel will probably crash as
> soon as one starts using the SRP target module, even if he or she
> followed the above outlined "official" build procedure. Including
> /usr/local/include/scsi_tgt.h in the SRP target module is not an
> option -- kernel modules must not include userspace headers, except
> for the well known exceptions like <stdarg.h>.
>
There are two include paths. The first one is
/usr/local/include/scst and the second one are
drivers/infiniband/ulp/srpt. Therefore, building srpt in
ofed will always use the /usr/local/include/scst path first
and if you already install scst then there won't be any problem
As you already know /usr/local/include/scst/scsi_tgt.h is
not userspace header. SCST is not part of kernel yet; srpt
is also not part of kernel
> All this trouble can be avoided by distributing the SRP target code
> with SCST instead of with OFED.
The same problem would appear if someone use different ofed
versions
>
> Furthermore, all kernel headers that define inter-module interfaces
> should reside in <kernel source root dir>/include/<subdir>/... The
> SRP target breaks this convention by having a private copy of an
> inter-module interface in a local directory
> (drivers/infiniband/ulp/srpt/scsi_tgt.h).
Once again srpt is not part of kernel; therefore, it breaks
certain kernel rule. We'll fix it if scst is official part
of kernel
>
>
>> here is one of the reason srpt is part of ofed not scst:
>>
>> SCST is GPL
>> ofed + srpt is GPL or BSD
>
> This is not an issue -- if you have a look at the Linux kernel, you
> will see that all source files are licensed under at least the GPLv2
> and some source files are licensed under GPLv2 + one or more other
> licenses, e.g. BSD.
>
I know that; however, I don't know if SCST has ok with
double license or not
-vu
More information about the ewg
mailing list