Re: [edk2] [PATCH 0/4] Add an implementation of EFI_SMART_CARD_READER_PROTOCOL

2015-06-18 Thread Tian, Feng
Hi, Ludovic

Just like I said before, license issue is the biggest concern. Our license 
expert has confirmed GNU LGPL license would corrupt EDKII BSD license. So I 
would suggest you wait till we have clear conclusion on how to handle non-BSD 
license.

As for should TianoCore/EDKII be extended to support other licenses, I would 
suggest you resend another mail to discuss it specifically. By this way, more 
people could be involved (many people may ignore the discussion as the mail 
title has no business with license issue from literal.)

Thanks
Feng

-Original Message-
From: Ludovic Rousseau [mailto:ludovic.rouss...@gmail.com] 
Sent: Thursday, June 18, 2015 20:55
To: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] [PATCH 0/4] Add an implementation of 
EFI_SMART_CARD_READER_PROTOCOL

Hello,

How can we progress on the inclusion of my EFI_SMART_CARD_READER_PROTOCOL 
proposal in EDK2?

Is the GNU LGPL v2.1+ license really not possible in EDK2 and I should just 
forget about integrating my code in EDK2?

The point 5 of Code Contributions [1] says:
"
5. It is preferred that contributions are submitted using the same
   copyright license as the base project. When that is not possible,
   then contributions using the following licenses can be accepted:
   * BSD (2-clause): http://opensource.org/licenses/BSD-2-Clause
   * BSD (3-clause): http://opensource.org/licenses/BSD-3-Clause
   * MIT: http://opensource.org/licenses/MIT
   * Python-2.0: http://opensource.org/licenses/Python-2.0
   * Zlib: http://opensource.org/licenses/Zlib

   Contributions of code put into the public domain can also be
   accepted.

   Contributions using other licenses might be accepted, but further
   review will be required.
"

It is not clear that GNU LGPL is forbidden.
Do I need to wait that " further review " is made by whoever is in charge?

[1] https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Contributions.txt

2015-06-11 15:31 GMT+02:00 Blibbet :
>> BSD is a GPL compatible licence.
>> GPL is NOT a BSD compatible licence.
>
> Where is the requirement that all OEMs must only include BSD code in 
> their firmware? Why not let Puri.sm or Novena have a downstream UEFI 
> firmware volume that is GPL, will the world end or something? Today, 
> there is some non-BSD code needed to boot Linux on UEFI. Linux OSVs 
> probably don't have the same fear of GPL that closed-source OS vendors 
> do. You're free to ignore that code and focus on the license subset 
> you prefer.
>
>>> What about a Tiano way to distribute [L]GPL code, safely separate 
>>> from main BSD branch, like FAT driver is dealt with, so GPL-friendly 
>>> OSVs/ISVs/OEMs -- everyone but Microsoft? :-) -- can safely use GPL 
>>> code? Perhaps other non-BSD, OSI-approved FOSS licensed, and no others?
>>>
>>
>> As you point out we solve issues with licensing by splitting git 
>> repos and having separate projects. That is probably a separate 
>> conversation from what goes in the edk2 project.
>
> I thought the conversation was to deal with this current code 
> contribution, not just focus on EDK2 subproject.
>
> What about using TianoCore's EDK2share for non-BSD projects? That code 
> isn't bundled into UDK releases. If contributor can relicense to BSD 
> great, but if not, dropping code is rude, a non-BSD friendly area 
> outside main EDK2 project, somewhere on Tiano, would be better than 
> dropping the code, I'd think.

I am not familiar with EDK2share.
Hosting "non-free-enough" source code in a EDK2 side project could also be a 
possibility.

My code is available in the SmartCard branch or my edk2 fork at 
https://github.com/LudovicRousseau/edk2/tree/SmartCard
But is it not really easy to find and use.

Regards,

--
 Dr. Ludovic Rousseau

--
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

--
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH 0/4] Add an implementation of EFI_SMART_CARD_READER_PROTOCOL

2015-06-18 Thread Ludovic Rousseau
Hello,

How can we progress on the inclusion of my
EFI_SMART_CARD_READER_PROTOCOL proposal in EDK2?

Is the GNU LGPL v2.1+ license really not possible in EDK2 and I should
just forget about integrating my code in EDK2?

The point 5 of Code Contributions [1] says:
"
5. It is preferred that contributions are submitted using the same
   copyright license as the base project. When that is not possible,
   then contributions using the following licenses can be accepted:
   * BSD (2-clause): http://opensource.org/licenses/BSD-2-Clause
   * BSD (3-clause): http://opensource.org/licenses/BSD-3-Clause
   * MIT: http://opensource.org/licenses/MIT
   * Python-2.0: http://opensource.org/licenses/Python-2.0
   * Zlib: http://opensource.org/licenses/Zlib

   Contributions of code put into the public domain can also be
   accepted.

   Contributions using other licenses might be accepted, but further
   review will be required.
"

It is not clear that GNU LGPL is forbidden.
Do I need to wait that " further review " is made by whoever is in charge?

[1] https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Contributions.txt

2015-06-11 15:31 GMT+02:00 Blibbet :
>> BSD is a GPL compatible licence.
>> GPL is NOT a BSD compatible licence.
>
> Where is the requirement that all OEMs must only include BSD code in
> their firmware? Why not let Puri.sm or Novena have a downstream UEFI
> firmware volume that is GPL, will the world end or something? Today,
> there is some non-BSD code needed to boot Linux on UEFI. Linux OSVs
> probably don't have the same fear of GPL that closed-source OS vendors
> do. You're free to ignore that code and focus on the license subset you
> prefer.
>
>>> What about a Tiano way to distribute [L]GPL code, safely separate from
>>> main BSD branch, like FAT driver is dealt with, so GPL-friendly
>>> OSVs/ISVs/OEMs -- everyone but Microsoft? :-) -- can safely use GPL
>>> code? Perhaps other non-BSD, OSI-approved FOSS licensed, and no others?
>>>
>>
>> As you point out we solve issues with licensing by splitting git repos
>> and having separate projects. That is probably a separate conversation
>> from what goes in the edk2 project.
>
> I thought the conversation was to deal with this current code
> contribution, not just focus on EDK2 subproject.
>
> What about using TianoCore's EDK2share for non-BSD projects? That code
> isn't bundled into UDK releases. If contributor can relicense to BSD
> great, but if not, dropping code is rude, a non-BSD friendly area
> outside main EDK2 project, somewhere on Tiano, would be better than
> dropping the code, I'd think.

I am not familiar with EDK2share.
Hosting "non-free-enough" source code in a EDK2 side project could
also be a possibility.

My code is available in the SmartCard branch or my edk2 fork at
https://github.com/LudovicRousseau/edk2/tree/SmartCard
But is it not really easy to find and use.

Regards,

-- 
 Dr. Ludovic Rousseau

--
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH 0/4] Add an implementation of EFI_SMART_CARD_READER_PROTOCOL

2015-06-11 Thread Blibbet
> BSD is a GPL compatible licence.
> GPL is NOT a BSD compatible licence.

Where is the requirement that all OEMs must only include BSD code in
their firmware? Why not let Puri.sm or Novena have a downstream UEFI
firmware volume that is GPL, will the world end or something? Today,
there is some non-BSD code needed to boot Linux on UEFI. Linux OSVs
probably don't have the same fear of GPL that closed-source OS vendors
do. You're free to ignore that code and focus on the license subset you
prefer.

>> What about a Tiano way to distribute [L]GPL code, safely separate from
>> main BSD branch, like FAT driver is dealt with, so GPL-friendly
>> OSVs/ISVs/OEMs -- everyone but Microsoft? :-) -- can safely use GPL
>> code? Perhaps other non-BSD, OSI-approved FOSS licensed, and no others?
>>
>
> As you point out we solve issues with licensing by splitting git repos
> and having separate projects. That is probably a separate conversation
> from what goes in the edk2 project. 

I thought the conversation was to deal with this current code
contribution, not just focus on EDK2 subproject.

What about using TianoCore's EDK2share for non-BSD projects? That code
isn't bundled into UDK releases. If contributor can relicense to BSD
great, but if not, dropping code is rude, a non-BSD friendly area
outside main EDK2 project, somewhere on Tiano, would be better than
dropping the code, I'd think.

>> Users of this code will also have to face their main hurdle, getting
>> Microsoft to bless their EFI code, and their current restrictions
>> already hinder any GPL code, which gets worse with each Windows release.
>
> I don’t really understand that statement. Microsoft does not “bless”
firmware code.
> The platform vendor can have any firmware implementation they want.

I was referring to 'pre-OS' ISVs. For firmware that doesn't come built
by OEMs/ODMs/IBVs, Microsoft does bless that firmware code, and UEFI
Forum does nothing to help, and Microsoft applies it's own biases and
uses it's position to compete with vendors. I'd at least hope that an
additional techincal and policy restrictions that Microsoft adds to code
would be set by UEFI Forum and not by Microsoft. The Microsoft CA really
is an ugly pink elephant for UEFI Forum, and it helps let them continue
to be a bully in the Intel playground (except in the Apple corner).

And for this case of a smartcard driver, I presume the above Microsoft
comment won't apply since a SC driver has to be (?) bundled into main
FV, not a separate .efi that Microsoft would need to sign.

http://blogs.msdn.com/b/windows_hardware_certification/archive/2013/12/03/microsoft-uefi-ca-signing-policy-updates.aspx
https://msdn.microsoft.com/en-us/library/windows/hardware/dn609883.aspx#reviewprocess
http://techrights.org/2012/06/29/traps-behind-uefi/
http://en.altlinux.org/UEFI_SecureBoot_mini-HOWTO
http://www.itworld.com/article/2737487/it-management/microsoft-washes-its-hands-of-uefi-linux-mess.html

Thanks,
Lee


--
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH 0/4] Add an implementation of EFI_SMART_CARD_READER_PROTOCOL

2015-06-11 Thread Ludovic Rousseau
Hello,

2015-06-11 3:59 GMT+02:00 El-Haj-Mahmoud, Samer :
> I agree that the license is an issue. Having GPL or LGPL code in EDK2 risks 
> implementations that use this code. Even if an implementation choses not to 
> carry this specific driver in binary format, just having the GPL source in 
> the same tree is a risk. What if developers copy fragments of code from the 
> GPL licensed driver and use in another module in the tree that is BSD 
> licensed. Developeers may not pay attention to the license and its 
> implications since EDK2 so far has used only BSD or BSD-like license.

I am not surprise to get some opposition because of the license.
Note that the license is LGPL (Lesser GPL) version 2.1 and not Lesser
GPL version 3 or GPL (I think GPL license would not be accepted in
edk2).

It is a political question. Should edk2 accept non BSD licenses?
Maybe such code can be stored in a "non-BSD/" (or another more
explicit name) sub hierarchy in edk2 to clearly indicates the license
difference?

I will help the edk2 project as much as I can with this integration.

Regards,

> -Original Message-
> From: Tian, Feng [feng.t...@intel.com]
> Received: Wednesday, 10 Jun 2015, 9:52PM
> To: edk2-devel@lists.sourceforge.net [edk2-devel@lists.sourceforge.net]
> Subject: Re: [edk2] [PATCH 0/4] Add an implementation of 
> EFI_SMART_CARD_READER_PROTOCOL
>
> Ludovic,
>
> The license issue is the biggest concern. EDKII project is BSD license, but 
> your proposed patch 1 is using LGPL license which may corrupt EDKII project.
>
> Thanks
> Feng
>
> -Original Message-
> From: Ludovic Rousseau [mailto:ludovic.rouss...@gmail.com]
> Sent: Thursday, June 11, 2015 02:28
> To: edk2-devel@lists.sourceforge.net
> Cc: Ludovic Rousseau
> Subject: [edk2] [PATCH 0/4] Add an implementation of 
> EFI_SMART_CARD_READER_PROTOCOL
>
> This patch serie provides an implementation for the 
> EFI_SMART_CARD_READER_PROTOCOL added in UEFI version 2.5.
>
> It is a port of my CCID driver from Unix to UEFI. Only part of the code has 
> been specifically written for UEFI and edk2. Only this part of the code 
> follows the coding rules. The idea os to keep most of the code common to edk2 
> and my original CCID driver so code is easy to backport from one project to 
> the other.
>
> patch 1: are files from the libccid project [1], GNU LGLP v2.1 patch 2: are 
> files from the pcsc-lite project [2], TianoCore Contribution Agreement 1.0 
> patch 3: are files specifically written for edk2, TianoCore Contribution 
> Agreement 1.0 patch 4: edit MdeModulePkg/MdeModulePkg.dsc to add the driver, 
> TianoCore Contribution Agreement 1.0
>
> The code has been tested on a Dell E6430 with an internal Broadcom smart card 
> reader and also different external USB smart card readers.
>
> [1] https://pcsclite.alioth.debian.org/ccid.html
> [2] https://pcsclite.alioth.debian.org/pcsclite.html
>
>
> Ludovic Rousseau (4):
>   MdeModulePkg/SmartCardReader: Add files from the libccid project
>   MdeModulePkg/SmartCardReader: Add files from pcsc-lite project
>   MdeModulePkg/SmartCardReader: Implement Smart Card Reader Protocol
>   MdeModulePkg: add SmartCardReader.inf
>
>  MdeModulePkg/Library/SmartCardReader/CcidDriver.c  |  819 +++  
> MdeModulePkg/Library/SmartCardReader/CcidDriver.h  |  154 ++
>  .../Library/SmartCardReader/ComponentName.c|  198 ++
>  .../Library/SmartCardReader/ComponentName.h|  128 ++
>  .../Library/SmartCardReader/DriverBinding.h|  211 ++
>  MdeModulePkg/Library/SmartCardReader/License.txt   |   87 +
>  .../Library/SmartCardReader/SmartCardReader.inf|   97 +
>  .../Library/SmartCardReader/SmartCardReader_impl.c |  453 
>  .../Library/SmartCardReader/SmartCardReader_impl.h |   94 +
>  MdeModulePkg/Library/SmartCardReader/config.h  |   64 +
>  MdeModulePkg/Library/SmartCardReader/debug.c   |   62 +
>  MdeModulePkg/Library/SmartCardReader/debuglog.h|   81 +
>  MdeModulePkg/Library/SmartCardReader/ifdhandler.h  |  825 +++
>  .../Library/SmartCardReader/libccid/ccid.c |  659 ++
>  .../Library/SmartCardReader/libccid/ccid.h |  340 +++
>  .../SmartCardReader/libccid/ccid_ifdhandler.h  |   63 +
>  .../Library/SmartCardReader/libccid/ccid_uefi.c|  470 
>  .../Library/SmartCardReader/libccid/ccid_uefi.h|   46 +
>  .../Library/SmartCardReader/libccid/commands.c | 2294 
> 
>  .../Library/SmartCardReader/libccid/commands.h |   64 +
>  .../Library/SmartCardReader/libccid/debug.c|  157 ++
>  .../Library/SmartCardReader/libccid/debug.h|  100 +
>  .../Library/SmartCardReader/libccid/defs.h |  126 ++
>  .../Library/SmartCardReader/libccid/ifdhandler.c   | 2

Re: [edk2] [PATCH 0/4] Add an implementation of EFI_SMART_CARD_READER_PROTOCOL

2015-06-10 Thread Andrew Fish

> On Jun 10, 2015, at 7:17 PM, Blibbet  wrote:
> 
> FAT has a non-BSD license and UEFI Forum found a way to accomodate that
> one vendor's legal/licensing issues, and found a separate way for that
> to be distributed under Tiano umbrella.

The UEFI Forum owns the specifications, not the edk2 open source site. The 
edk2/Tinao core is an independent open source site. The edk2 is one of many 
possible implementations of the UEFI Forums specifications. 

It is probably confusing due to the overlap of people who are members of the 
UEFI Forum, and work on the open source site. 

> 
> All OS vendors don't hate GPL. Some Linux platforms have non-BSD tools
> in use today.
> 

BSD is a GPL compatible licence. 
GPL is NOT a BSD compatible licence. 

> What about a Tiano way to distribute [L]GPL code, safely separate from
> main BSD branch, like FAT driver is dealt with, so GPL-friendly
> OSVs/ISVs/OEMs -- everyone but Microsoft? :-) -- can safely use GPL
> code? Perhaps other non-BSD, OSI-approved FOSS licensed, and no others?
> 

As you point out we solve issues with licensing by splitting git repos and 
having separate projects. That is probably a separate conversation from what 
goes in the edk2 project.  

> Users of this code will also have to face their main hurdle, getting
> Microsoft to bless their EFI code, and their current restrictions
> already hinder any GPL code, which gets worse with each Windows release.
> 

I don’t really understand that statement. Microsoft does not “bless” firmware 
code. The platform vendor can have any firmware implementation they want. There 
are a set of conformance requirements required to get a discount on the 
pre-installed Windows, but as far as I know these are mostly quality of 
implementation tests. 

Microsoft also happens to be the CA for UEFI Secure Boot. They have no concern 
about licensing of the code. They, as a good CA must, care about how secure the 
code is. The UEFI CA will not sign the UEFI Shell for example, as you could use 
a script to launch code that is not secure. So yes you can’t write a virus 
(code the loads unsigned code) and get it signed by the CA. That is exactly how 
UEFI Secure Boot is supposed to work. 

Thanks,

Andrew Fish

> There are about 168 UEFI projects on Github today. A few dozen would be
> useful to have under Tiano umbrella, current BSD-only licensing issues
> would prevent that. A GPL-friendly Tiano subproject would be useful to
> gather some code from rEFInd, VirtualBox, and various other Github
> projects into one place. Ignoring non-BSD licensed code will continue to
> spread UEFI projects in non-Tiano umbrellas and not fix the problem.
> 
> On 06/10/2015 06:59 PM, El-Haj-Mahmoud, Samer wrote:
>> I agree that the license is an issue. Having GPL or LGPL code in EDK2
> risks implementations that use this code. Even if an implementation
> choses not to carry this specific driver in binary format, just having
> the GPL source in the same tree is a risk. What if developers copy
> fragments of code from the GPL licensed driver and use in another module
> in the tree that is BSD licensed. Developeers may not pay attention to
> the license and its implications since EDK2 so far has used only BSD or
> BSD-like license.
>> 
>> -Original Message-
>> From: Tian, Feng [feng.t...@intel.com <mailto:feng.t...@intel.com>]
>> Received: Wednesday, 10 Jun 2015, 9:52PM
>> To: edk2-devel@lists.sourceforge.net 
>> <mailto:edk2-devel@lists.sourceforge.net> [edk2-devel@lists.sourceforge.net 
>> <mailto:edk2-devel@lists.sourceforge.net>]
>> Subject: Re: [edk2] [PATCH 0/4] Add an implementation of
> EFI_SMART_CARD_READER_PROTOCOL
>> 
>> Ludovic,
>> 
>> The license issue is the biggest concern. EDKII project is BSD
> license, but your proposed patch 1 is using LGPL license which may
> corrupt EDKII project.
> 
> 
> --
> ___
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net <mailto:edk2-devel@lists.sourceforge.net>
> https://lists.sourceforge.net/lists/listinfo/edk2-devel 
> <https://lists.sourceforge.net/lists/listinfo/edk2-devel>
--
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH 0/4] Add an implementation of EFI_SMART_CARD_READER_PROTOCOL

2015-06-10 Thread Blibbet
FAT has a non-BSD license and UEFI Forum found a way to accomodate that
one vendor's legal/licensing issues, and found a separate way for that
to be distributed under Tiano umbrella.

All OS vendors don't hate GPL. Some Linux platforms have non-BSD tools
in use today.

What about a Tiano way to distribute [L]GPL code, safely separate from
main BSD branch, like FAT driver is dealt with, so GPL-friendly
OSVs/ISVs/OEMs -- everyone but Microsoft? :-) -- can safely use GPL
code? Perhaps other non-BSD, OSI-approved FOSS licensed, and no others?

Users of this code will also have to face their main hurdle, getting
Microsoft to bless their EFI code, and their current restrictions
already hinder any GPL code, which gets worse with each Windows release.

There are about 168 UEFI projects on Github today. A few dozen would be
useful to have under Tiano umbrella, current BSD-only licensing issues
would prevent that. A GPL-friendly Tiano subproject would be useful to
gather some code from rEFInd, VirtualBox, and various other Github
projects into one place. Ignoring non-BSD licensed code will continue to
spread UEFI projects in non-Tiano umbrellas and not fix the problem.

On 06/10/2015 06:59 PM, El-Haj-Mahmoud, Samer wrote:
> I agree that the license is an issue. Having GPL or LGPL code in EDK2
risks implementations that use this code. Even if an implementation
choses not to carry this specific driver in binary format, just having
the GPL source in the same tree is a risk. What if developers copy
fragments of code from the GPL licensed driver and use in another module
in the tree that is BSD licensed. Developeers may not pay attention to
the license and its implications since EDK2 so far has used only BSD or
BSD-like license.
>
> -Original Message-
> From: Tian, Feng [feng.t...@intel.com]
> Received: Wednesday, 10 Jun 2015, 9:52PM
> To: edk2-devel@lists.sourceforge.net [edk2-devel@lists.sourceforge.net]
> Subject: Re: [edk2] [PATCH 0/4] Add an implementation of
EFI_SMART_CARD_READER_PROTOCOL
>
> Ludovic,
>
> The license issue is the biggest concern. EDKII project is BSD
license, but your proposed patch 1 is using LGPL license which may
corrupt EDKII project.


--
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH 0/4] Add an implementation of EFI_SMART_CARD_READER_PROTOCOL

2015-06-10 Thread El-Haj-Mahmoud, Samer
I agree that the license is an issue. Having GPL or LGPL code in EDK2 risks 
implementations that use this code. Even if an implementation choses not to 
carry this specific driver in binary format, just having the GPL source in the 
same tree is a risk. What if developers copy fragments of code from the GPL 
licensed driver and use in another module in the tree that is BSD licensed. 
Developeers may not pay attention to the license and its implications since 
EDK2 so far has used only BSD or BSD-like license.



-Original Message-
From: Tian, Feng [feng.t...@intel.com]
Received: Wednesday, 10 Jun 2015, 9:52PM
To: edk2-devel@lists.sourceforge.net [edk2-devel@lists.sourceforge.net]
Subject: Re: [edk2] [PATCH 0/4] Add an implementation of 
EFI_SMART_CARD_READER_PROTOCOL

Ludovic,

The license issue is the biggest concern. EDKII project is BSD license, but 
your proposed patch 1 is using LGPL license which may corrupt EDKII project.

Thanks
Feng

-Original Message-
From: Ludovic Rousseau [mailto:ludovic.rouss...@gmail.com]
Sent: Thursday, June 11, 2015 02:28
To: edk2-devel@lists.sourceforge.net
Cc: Ludovic Rousseau
Subject: [edk2] [PATCH 0/4] Add an implementation of 
EFI_SMART_CARD_READER_PROTOCOL

This patch serie provides an implementation for the 
EFI_SMART_CARD_READER_PROTOCOL added in UEFI version 2.5.

It is a port of my CCID driver from Unix to UEFI. Only part of the code has 
been specifically written for UEFI and edk2. Only this part of the code follows 
the coding rules. The idea os to keep most of the code common to edk2 and my 
original CCID driver so code is easy to backport from one project to the other.

patch 1: are files from the libccid project [1], GNU LGLP v2.1 patch 2: are 
files from the pcsc-lite project [2], TianoCore Contribution Agreement 1.0 
patch 3: are files specifically written for edk2, TianoCore Contribution 
Agreement 1.0 patch 4: edit MdeModulePkg/MdeModulePkg.dsc to add the driver, 
TianoCore Contribution Agreement 1.0

The code has been tested on a Dell E6430 with an internal Broadcom smart card 
reader and also different external USB smart card readers.

[1] https://pcsclite.alioth.debian.org/ccid.html
[2] https://pcsclite.alioth.debian.org/pcsclite.html


Ludovic Rousseau (4):
  MdeModulePkg/SmartCardReader: Add files from the libccid project
  MdeModulePkg/SmartCardReader: Add files from pcsc-lite project
  MdeModulePkg/SmartCardReader: Implement Smart Card Reader Protocol
  MdeModulePkg: add SmartCardReader.inf

 MdeModulePkg/Library/SmartCardReader/CcidDriver.c  |  819 +++  
MdeModulePkg/Library/SmartCardReader/CcidDriver.h  |  154 ++
 .../Library/SmartCardReader/ComponentName.c|  198 ++
 .../Library/SmartCardReader/ComponentName.h|  128 ++
 .../Library/SmartCardReader/DriverBinding.h|  211 ++
 MdeModulePkg/Library/SmartCardReader/License.txt   |   87 +
 .../Library/SmartCardReader/SmartCardReader.inf|   97 +
 .../Library/SmartCardReader/SmartCardReader_impl.c |  453 
 .../Library/SmartCardReader/SmartCardReader_impl.h |   94 +
 MdeModulePkg/Library/SmartCardReader/config.h  |   64 +
 MdeModulePkg/Library/SmartCardReader/debug.c   |   62 +
 MdeModulePkg/Library/SmartCardReader/debuglog.h|   81 +
 MdeModulePkg/Library/SmartCardReader/ifdhandler.h  |  825 +++
 .../Library/SmartCardReader/libccid/ccid.c |  659 ++
 .../Library/SmartCardReader/libccid/ccid.h |  340 +++
 .../SmartCardReader/libccid/ccid_ifdhandler.h  |   63 +
 .../Library/SmartCardReader/libccid/ccid_uefi.c|  470 
 .../Library/SmartCardReader/libccid/ccid_uefi.h|   46 +
 .../Library/SmartCardReader/libccid/commands.c | 2294 
 .../Library/SmartCardReader/libccid/commands.h |   64 +
 .../Library/SmartCardReader/libccid/debug.c|  157 ++
 .../Library/SmartCardReader/libccid/debug.h|  100 +
 .../Library/SmartCardReader/libccid/defs.h |  126 ++
 .../Library/SmartCardReader/libccid/ifdhandler.c   | 2265 +++
 .../Library/SmartCardReader/libccid/openct/LICENSE |   28 +
 .../Library/SmartCardReader/libccid/openct/README  |7 +
 .../SmartCardReader/libccid/openct/buffer.c|   73 +
 .../SmartCardReader/libccid/openct/buffer.h|   36 +
 .../SmartCardReader/libccid/openct/checksum.c  |   95 +
 .../SmartCardReader/libccid/openct/checksum.h  |   37 +
 .../SmartCardReader/libccid/openct/proto-t1.c  |  800 +++
 .../SmartCardReader/libccid/openct/proto-t1.h  |   85 +
 .../SmartCardReader/libccid/towitoko/COPYING   |  505 +
 .../SmartCardReader/libccid/towitoko/README|   14 +
 .../Library/SmartCardReader/libccid/towitoko/atr.c |  365   
.../Library/SmartCardReader/libccid/towitoko/atr.h |  111 +
 .../SmartCardReader/libccid/towitoko/defines.h |   56 +
 .../Library/SmartCardReader/libccid/towitoko/pps.c |  136 ++
 .../Library/SmartCardReader/libccid/towitoko/pps.h |   71 +
 .../Library

Re: [edk2] [PATCH 0/4] Add an implementation of EFI_SMART_CARD_READER_PROTOCOL

2015-06-10 Thread Tian, Feng
Ludovic,

The license issue is the biggest concern. EDKII project is BSD license, but 
your proposed patch 1 is using LGPL license which may corrupt EDKII project.

Thanks
Feng

-Original Message-
From: Ludovic Rousseau [mailto:ludovic.rouss...@gmail.com] 
Sent: Thursday, June 11, 2015 02:28
To: edk2-devel@lists.sourceforge.net
Cc: Ludovic Rousseau
Subject: [edk2] [PATCH 0/4] Add an implementation of 
EFI_SMART_CARD_READER_PROTOCOL

This patch serie provides an implementation for the 
EFI_SMART_CARD_READER_PROTOCOL added in UEFI version 2.5.

It is a port of my CCID driver from Unix to UEFI. Only part of the code has 
been specifically written for UEFI and edk2. Only this part of the code follows 
the coding rules. The idea os to keep most of the code common to edk2 and my 
original CCID driver so code is easy to backport from one project to the other.

patch 1: are files from the libccid project [1], GNU LGLP v2.1 patch 2: are 
files from the pcsc-lite project [2], TianoCore Contribution Agreement 1.0 
patch 3: are files specifically written for edk2, TianoCore Contribution 
Agreement 1.0 patch 4: edit MdeModulePkg/MdeModulePkg.dsc to add the driver, 
TianoCore Contribution Agreement 1.0

The code has been tested on a Dell E6430 with an internal Broadcom smart card 
reader and also different external USB smart card readers.

[1] https://pcsclite.alioth.debian.org/ccid.html
[2] https://pcsclite.alioth.debian.org/pcsclite.html


Ludovic Rousseau (4):
  MdeModulePkg/SmartCardReader: Add files from the libccid project
  MdeModulePkg/SmartCardReader: Add files from pcsc-lite project
  MdeModulePkg/SmartCardReader: Implement Smart Card Reader Protocol
  MdeModulePkg: add SmartCardReader.inf

 MdeModulePkg/Library/SmartCardReader/CcidDriver.c  |  819 +++  
MdeModulePkg/Library/SmartCardReader/CcidDriver.h  |  154 ++
 .../Library/SmartCardReader/ComponentName.c|  198 ++
 .../Library/SmartCardReader/ComponentName.h|  128 ++
 .../Library/SmartCardReader/DriverBinding.h|  211 ++
 MdeModulePkg/Library/SmartCardReader/License.txt   |   87 +
 .../Library/SmartCardReader/SmartCardReader.inf|   97 +
 .../Library/SmartCardReader/SmartCardReader_impl.c |  453 
 .../Library/SmartCardReader/SmartCardReader_impl.h |   94 +
 MdeModulePkg/Library/SmartCardReader/config.h  |   64 +
 MdeModulePkg/Library/SmartCardReader/debug.c   |   62 +
 MdeModulePkg/Library/SmartCardReader/debuglog.h|   81 +
 MdeModulePkg/Library/SmartCardReader/ifdhandler.h  |  825 +++
 .../Library/SmartCardReader/libccid/ccid.c |  659 ++
 .../Library/SmartCardReader/libccid/ccid.h |  340 +++
 .../SmartCardReader/libccid/ccid_ifdhandler.h  |   63 +
 .../Library/SmartCardReader/libccid/ccid_uefi.c|  470 
 .../Library/SmartCardReader/libccid/ccid_uefi.h|   46 +
 .../Library/SmartCardReader/libccid/commands.c | 2294 
 .../Library/SmartCardReader/libccid/commands.h |   64 +
 .../Library/SmartCardReader/libccid/debug.c|  157 ++
 .../Library/SmartCardReader/libccid/debug.h|  100 +
 .../Library/SmartCardReader/libccid/defs.h |  126 ++
 .../Library/SmartCardReader/libccid/ifdhandler.c   | 2265 +++
 .../Library/SmartCardReader/libccid/openct/LICENSE |   28 +
 .../Library/SmartCardReader/libccid/openct/README  |7 +
 .../SmartCardReader/libccid/openct/buffer.c|   73 +
 .../SmartCardReader/libccid/openct/buffer.h|   36 +
 .../SmartCardReader/libccid/openct/checksum.c  |   95 +
 .../SmartCardReader/libccid/openct/checksum.h  |   37 +
 .../SmartCardReader/libccid/openct/proto-t1.c  |  800 +++
 .../SmartCardReader/libccid/openct/proto-t1.h  |   85 +
 .../SmartCardReader/libccid/towitoko/COPYING   |  505 +
 .../SmartCardReader/libccid/towitoko/README|   14 +
 .../Library/SmartCardReader/libccid/towitoko/atr.c |  365   
.../Library/SmartCardReader/libccid/towitoko/atr.h |  111 +
 .../SmartCardReader/libccid/towitoko/defines.h |   56 +
 .../Library/SmartCardReader/libccid/towitoko/pps.c |  136 ++
 .../Library/SmartCardReader/libccid/towitoko/pps.h |   71 +
 .../Library/SmartCardReader/libccid/utils.c|   85 +
 .../Library/SmartCardReader/libccid/utils.h|   33 +
 MdeModulePkg/Library/SmartCardReader/misc.h|   88 +
 MdeModulePkg/Library/SmartCardReader/pcsclite.h|   65 +
 MdeModulePkg/Library/SmartCardReader/reader.h  |  285 +++
 MdeModulePkg/Library/SmartCardReader/wintypes.h|  120 +
 MdeModulePkg/MdeModulePkg.dsc  |1 +
 46 files changed, 12953 insertions(+)
 create mode 100644 MdeModulePkg/Library/SmartCardReader/CcidDriver.c
 create mode 100644 MdeModulePkg/Library/SmartCardReader/CcidDriver.h
 create mode 100644 MdeModulePkg/Library/SmartCardReader/ComponentName.c
 create mode 100644 MdeModulePkg/Library/SmartCardReader/ComponentName.h
 create mode 100644 MdeMod