In OpenSSL 1.1, all the public header files will reside directly in the
include/openssl/ directory of the source tree, rather than being symbolic
links. So we can just add that directory to our include path and not have
to worry about copying files around.

In fact, that *already* works on POSIX-compliant systems, because the
existing source release tarballs contain the required symlinks — they're
not created by the configuration. So we can switch our own include setup
now and kill the Install.sh for Linux, and change the Windows Install.cmd
script to copy the files there too.

When we update to 1.1, we can just kill Install.cmd completely (as well
as the patching step too, hopefully.)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: David Woodhouse <david.woodho...@intel.com>
---
 CryptoPkg/CryptoPkg.dec                      |   1 +
 CryptoPkg/Include/openssl/README             |   1 -
 CryptoPkg/Library/OpensslLib/Install.cmd     | 150 ++++++++++----------
 CryptoPkg/Library/OpensslLib/Install.sh      |  79 -----------
 CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt |   8 +-
 5 files changed, 81 insertions(+), 158 deletions(-)

diff --git a/CryptoPkg/CryptoPkg.dec b/CryptoPkg/CryptoPkg.dec
index 4561f3f..05aad24 100644
--- a/CryptoPkg/CryptoPkg.dec
+++ b/CryptoPkg/CryptoPkg.dec
@@ -24,6 +24,7 @@
 
 [Includes]
   Include
+  Library/OpensslLib/openssl-1.0.2e/include
 
 [LibraryClasses]
   ##  @libraryclass  Provides basic library functions for cryptographic 
primitives.
diff --git a/CryptoPkg/Include/openssl/README b/CryptoPkg/Include/openssl/README
deleted file mode 100644
index 1594010..0000000
--- a/CryptoPkg/Include/openssl/README
+++ /dev/null
@@ -1 +0,0 @@
-This directory contains all the public include files from the OpenSSL project.
diff --git a/CryptoPkg/Library/OpensslLib/Install.cmd 
b/CryptoPkg/Library/OpensslLib/Install.cmd
index b9b6fc6..e441ce5 100755
--- a/CryptoPkg/Library/OpensslLib/Install.cmd
+++ b/CryptoPkg/Library/OpensslLib/Install.cmd
@@ -1,77 +1,77 @@
 cd openssl-1.0.2e
-copy e_os2.h                    ..\..\..\Include\openssl
-copy crypto\crypto.h            ..\..\..\Include\openssl
-copy crypto\opensslv.h          ..\..\..\Include\openssl
-copy crypto\opensslconf.h       ..\..\..\Include\openssl
-copy crypto\ebcdic.h            ..\..\..\Include\openssl
-copy crypto\symhacks.h          ..\..\..\Include\openssl
-copy crypto\ossl_typ.h          ..\..\..\Include\openssl
-copy crypto\objects\objects.h   ..\..\..\Include\openssl
-copy crypto\objects\obj_mac.h   ..\..\..\Include\openssl
-copy crypto\md4\md4.h           ..\..\..\Include\openssl
-copy crypto\md5\md5.h           ..\..\..\Include\openssl
-copy crypto\sha\sha.h           ..\..\..\Include\openssl
-copy crypto\mdc2\mdc2.h         ..\..\..\Include\openssl
-copy crypto\hmac\hmac.h         ..\..\..\Include\openssl
-copy crypto\ripemd\ripemd.h     ..\..\..\Include\openssl
-copy crypto\whrlpool\whrlpool.h ..\..\..\Include\openssl
-copy crypto\des\des.h           ..\..\..\Include\openssl
-copy crypto\des\des_old.h       ..\..\..\Include\openssl
-copy crypto\aes\aes.h           ..\..\..\Include\openssl
-copy crypto\rc2\rc2.h           ..\..\..\Include\openssl
-copy crypto\rc4\rc4.h           ..\..\..\Include\openssl
-copy crypto\idea\idea.h         ..\..\..\Include\openssl
-copy crypto\bf\blowfish.h       ..\..\..\Include\openssl
-copy crypto\cast\cast.h         ..\..\..\Include\openssl
-copy crypto\camellia\camellia.h ..\..\..\Include\openssl
-copy crypto\seed\seed.h         ..\..\..\Include\openssl
-copy crypto\modes\modes.h       ..\..\..\Include\openssl
-copy crypto\bn\bn.h             ..\..\..\Include\openssl
-copy crypto\ec\ec.h             ..\..\..\Include\openssl
-copy crypto\rsa\rsa.h           ..\..\..\Include\openssl
-copy crypto\dsa\dsa.h           ..\..\..\Include\openssl
-copy crypto\ecdsa\ecdsa.h       ..\..\..\Include\openssl
-copy crypto\dh\dh.h             ..\..\..\Include\openssl
-copy crypto\ecdh\ecdh.h         ..\..\..\Include\openssl
-copy crypto\dso\dso.h           ..\..\..\Include\openssl
-copy crypto\engine\engine.h     ..\..\..\Include\openssl
-copy crypto\buffer\buffer.h     ..\..\..\Include\openssl
-copy crypto\bio\bio.h           ..\..\..\Include\openssl
-copy crypto\stack\stack.h       ..\..\..\Include\openssl
-copy crypto\stack\safestack.h   ..\..\..\Include\openssl
-copy crypto\lhash\lhash.h       ..\..\..\Include\openssl
-copy crypto\rand\rand.h         ..\..\..\Include\openssl
-copy crypto\err\err.h           ..\..\..\Include\openssl
-copy crypto\evp\evp.h           ..\..\..\Include\openssl
-copy crypto\asn1\asn1.h         ..\..\..\Include\openssl
-copy crypto\asn1\asn1_mac.h     ..\..\..\Include\openssl
-copy crypto\asn1\asn1t.h        ..\..\..\Include\openssl
-copy crypto\pem\pem.h           ..\..\..\Include\openssl
-copy crypto\pem\pem2.h          ..\..\..\Include\openssl
-copy crypto\x509\x509.h         ..\..\..\Include\openssl
-copy crypto\x509\x509_vfy.h     ..\..\..\Include\openssl
-copy crypto\x509v3\x509v3.h     ..\..\..\Include\openssl
-copy crypto\conf\conf.h         ..\..\..\Include\openssl
-copy crypto\conf\conf_api.h     ..\..\..\Include\openssl
-copy crypto\txt_db\txt_db.h     ..\..\..\Include\openssl
-copy crypto\pkcs7\pkcs7.h       ..\..\..\Include\openssl
-copy crypto\pkcs12\pkcs12.h     ..\..\..\Include\openssl
-copy crypto\comp\comp.h         ..\..\..\Include\openssl
-copy crypto\ocsp\ocsp.h         ..\..\..\Include\openssl
-copy crypto\ui\ui.h             ..\..\..\Include\openssl
-copy crypto\ui\ui_compat.h      ..\..\..\Include\openssl
-copy crypto\krb5\krb5_asn.h     ..\..\..\Include\openssl
-copy crypto\cms\cms.h           ..\..\..\Include\openssl
-copy crypto\pqueue\pqueue.h     ..\..\..\Include\openssl
-copy crypto\ts\ts.h             ..\..\..\Include\openssl
-copy crypto\srp\srp.h           ..\..\..\Include\openssl
-copy crypto\cmac\cmac.h         ..\..\..\Include\openssl
-copy ssl\ssl.h                  ..\..\..\Include\openssl
-copy ssl\ssl2.h                 ..\..\..\Include\openssl
-copy ssl\ssl3.h                 ..\..\..\Include\openssl
-copy ssl\ssl23.h                ..\..\..\Include\openssl
-copy ssl\tls1.h                 ..\..\..\Include\openssl
-copy ssl\dtls1.h                ..\..\..\Include\openssl
-copy ssl\kssl.h                 ..\..\..\Include\openssl
-copy ssl\srtp.h                 ..\..\..\Include\openssl
+copy e_os2.h                    include\openssl
+copy crypto\crypto.h            include\openssl
+copy crypto\opensslv.h          include\openssl
+copy crypto\opensslconf.h       include\openssl
+copy crypto\ebcdic.h            include\openssl
+copy crypto\symhacks.h          include\openssl
+copy crypto\ossl_typ.h          include\openssl
+copy crypto\objects\objects.h   include\openssl
+copy crypto\objects\obj_mac.h   include\openssl
+copy crypto\md4\md4.h           include\openssl
+copy crypto\md5\md5.h           include\openssl
+copy crypto\sha\sha.h           include\openssl
+copy crypto\mdc2\mdc2.h         include\openssl
+copy crypto\hmac\hmac.h         include\openssl
+copy crypto\ripemd\ripemd.h     include\openssl
+copy crypto\whrlpool\whrlpool.h include\openssl
+copy crypto\des\des.h           include\openssl
+copy crypto\des\des_old.h       include\openssl
+copy crypto\aes\aes.h           include\openssl
+copy crypto\rc2\rc2.h           include\openssl
+copy crypto\rc4\rc4.h           include\openssl
+copy crypto\idea\idea.h         include\openssl
+copy crypto\bf\blowfish.h       include\openssl
+copy crypto\cast\cast.h         include\openssl
+copy crypto\camellia\camellia.h include\openssl
+copy crypto\seed\seed.h         include\openssl
+copy crypto\modes\modes.h       include\openssl
+copy crypto\bn\bn.h             include\openssl
+copy crypto\ec\ec.h             include\openssl
+copy crypto\rsa\rsa.h           include\openssl
+copy crypto\dsa\dsa.h           include\openssl
+copy crypto\ecdsa\ecdsa.h       include\openssl
+copy crypto\dh\dh.h             include\openssl
+copy crypto\ecdh\ecdh.h         include\openssl
+copy crypto\dso\dso.h           include\openssl
+copy crypto\engine\engine.h     include\openssl
+copy crypto\buffer\buffer.h     include\openssl
+copy crypto\bio\bio.h           include\openssl
+copy crypto\stack\stack.h       include\openssl
+copy crypto\stack\safestack.h   include\openssl
+copy crypto\lhash\lhash.h       include\openssl
+copy crypto\rand\rand.h         include\openssl
+copy crypto\err\err.h           include\openssl
+copy crypto\evp\evp.h           include\openssl
+copy crypto\asn1\asn1.h         include\openssl
+copy crypto\asn1\asn1_mac.h     include\openssl
+copy crypto\asn1\asn1t.h        include\openssl
+copy crypto\pem\pem.h           include\openssl
+copy crypto\pem\pem2.h          include\openssl
+copy crypto\x509\x509.h         include\openssl
+copy crypto\x509\x509_vfy.h     include\openssl
+copy crypto\x509v3\x509v3.h     include\openssl
+copy crypto\conf\conf.h         include\openssl
+copy crypto\conf\conf_api.h     include\openssl
+copy crypto\txt_db\txt_db.h     include\openssl
+copy crypto\pkcs7\pkcs7.h       include\openssl
+copy crypto\pkcs12\pkcs12.h     include\openssl
+copy crypto\comp\comp.h         include\openssl
+copy crypto\ocsp\ocsp.h         include\openssl
+copy crypto\ui\ui.h             include\openssl
+copy crypto\ui\ui_compat.h      include\openssl
+copy crypto\krb5\krb5_asn.h     include\openssl
+copy crypto\cms\cms.h           include\openssl
+copy crypto\pqueue\pqueue.h     include\openssl
+copy crypto\ts\ts.h             include\openssl
+copy crypto\srp\srp.h           include\openssl
+copy crypto\cmac\cmac.h         include\openssl
+copy ssl\ssl.h                  include\openssl
+copy ssl\ssl2.h                 include\openssl
+copy ssl\ssl3.h                 include\openssl
+copy ssl\ssl23.h                include\openssl
+copy ssl\tls1.h                 include\openssl
+copy ssl\dtls1.h                include\openssl
+copy ssl\kssl.h                 include\openssl
+copy ssl\srtp.h                 include\openssl
 cd ..
diff --git a/CryptoPkg/Library/OpensslLib/Install.sh 
b/CryptoPkg/Library/OpensslLib/Install.sh
deleted file mode 100755
index 5434395..0000000
--- a/CryptoPkg/Library/OpensslLib/Install.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/sh
-
-cd openssl-1.0.2e
-cp e_os2.h                    ../../../Include/openssl
-cp crypto/crypto.h            ../../../Include/openssl
-cp crypto/opensslv.h          ../../../Include/openssl
-cp crypto/opensslconf.h       ../../../Include/openssl
-cp crypto/ebcdic.h            ../../../Include/openssl
-cp crypto/symhacks.h          ../../../Include/openssl
-cp crypto/ossl_typ.h          ../../../Include/openssl
-cp crypto/objects/objects.h   ../../../Include/openssl
-cp crypto/objects/obj_mac.h   ../../../Include/openssl
-cp crypto/md4/md4.h           ../../../Include/openssl
-cp crypto/md5/md5.h           ../../../Include/openssl
-cp crypto/sha/sha.h           ../../../Include/openssl
-cp crypto/mdc2/mdc2.h         ../../../Include/openssl
-cp crypto/hmac/hmac.h         ../../../Include/openssl
-cp crypto/ripemd/ripemd.h     ../../../Include/openssl
-cp crypto/whrlpool/whrlpool.h ../../../Include/openssl
-cp crypto/des/des.h           ../../../Include/openssl
-cp crypto/des/des_old.h       ../../../Include/openssl
-cp crypto/aes/aes.h           ../../../Include/openssl
-cp crypto/rc2/rc2.h           ../../../Include/openssl
-cp crypto/rc4/rc4.h           ../../../Include/openssl
-cp crypto/idea/idea.h         ../../../Include/openssl
-cp crypto/bf/blowfish.h       ../../../Include/openssl
-cp crypto/cast/cast.h         ../../../Include/openssl
-cp crypto/camellia/camellia.h ../../../Include/openssl
-cp crypto/seed/seed.h         ../../../Include/openssl
-cp crypto/modes/modes.h       ../../../Include/openssl
-cp crypto/bn/bn.h             ../../../Include/openssl
-cp crypto/ec/ec.h             ../../../Include/openssl
-cp crypto/rsa/rsa.h           ../../../Include/openssl
-cp crypto/dsa/dsa.h           ../../../Include/openssl
-cp crypto/ecdsa/ecdsa.h       ../../../Include/openssl
-cp crypto/dh/dh.h             ../../../Include/openssl
-cp crypto/ecdh/ecdh.h         ../../../Include/openssl
-cp crypto/dso/dso.h           ../../../Include/openssl
-cp crypto/engine/engine.h     ../../../Include/openssl
-cp crypto/buffer/buffer.h     ../../../Include/openssl
-cp crypto/bio/bio.h           ../../../Include/openssl
-cp crypto/stack/stack.h       ../../../Include/openssl
-cp crypto/stack/safestack.h   ../../../Include/openssl
-cp crypto/lhash/lhash.h       ../../../Include/openssl
-cp crypto/rand/rand.h         ../../../Include/openssl
-cp crypto/err/err.h           ../../../Include/openssl
-cp crypto/evp/evp.h           ../../../Include/openssl
-cp crypto/asn1/asn1.h         ../../../Include/openssl
-cp crypto/asn1/asn1_mac.h     ../../../Include/openssl
-cp crypto/asn1/asn1t.h        ../../../Include/openssl
-cp crypto/pem/pem.h           ../../../Include/openssl
-cp crypto/pem/pem2.h          ../../../Include/openssl
-cp crypto/x509/x509.h         ../../../Include/openssl
-cp crypto/x509/x509_vfy.h     ../../../Include/openssl
-cp crypto/x509v3/x509v3.h     ../../../Include/openssl
-cp crypto/conf/conf.h         ../../../Include/openssl
-cp crypto/conf/conf_api.h     ../../../Include/openssl
-cp crypto/txt_db/txt_db.h     ../../../Include/openssl
-cp crypto/pkcs7/pkcs7.h       ../../../Include/openssl
-cp crypto/pkcs12/pkcs12.h     ../../../Include/openssl
-cp crypto/comp/comp.h         ../../../Include/openssl
-cp crypto/ocsp/ocsp.h         ../../../Include/openssl
-cp crypto/ui/ui.h             ../../../Include/openssl
-cp crypto/ui/ui_compat.h      ../../../Include/openssl
-cp crypto/krb5/krb5_asn.h     ../../../Include/openssl
-cp crypto/cms/cms.h           ../../../Include/openssl
-cp crypto/pqueue/pqueue.h     ../../../Include/openssl
-cp crypto/ts/ts.h             ../../../Include/openssl
-cp crypto/srp/srp.h           ../../../Include/openssl
-cp crypto/cmac/cmac.h         ../../../Include/openssl
-cp ssl/ssl.h                  ../../../Include/openssl
-cp ssl/ssl2.h                 ../../../Include/openssl
-cp ssl/ssl3.h                 ../../../Include/openssl
-cp ssl/ssl23.h                ../../../Include/openssl
-cp ssl/tls1.h                 ../../../Include/openssl
-cp ssl/dtls1.h                ../../../Include/openssl
-cp ssl/kssl.h                 ../../../Include/openssl
-cp ssl/srtp.h                 ../../../Include/openssl
-cd ..
diff --git a/CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt 
b/CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt
index f575d71..f99510b 100644
--- a/CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt
+++ b/CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt
@@ -38,6 +38,11 @@ cryptography. This patch will enable openssl building under 
UEFI environment.
           uncheck the WinZip smart CR/LF conversion option (WINZIP: Options -->
           Configuration --> Miscellaneous --> "TAR file smart CR/LF 
conversion").
 
+    NOTE: Windows systems do not support symbolic links, which are contained in
+          the OpenSSL source tree. To work around the limitation, the 
Install.cmd
+         script mentioned in the instructions below will copy the header files
+         to the OpenSSL include directory.
+
 3.  Apply this patch: EDKII_openssl-1.0.2e.patch, and make installation
 
     For Windows Environment:
@@ -56,6 +61,3 @@ cryptography. This patch will enable openssl building under 
UEFI environment.
        Patch utility is available from http://directory.fsf.org/project/patch/
     2) cd $(WORKSPACE)/CryptoPkg/Library/OpensslLib/openssl-1.0.2e
     3) patch -p0 -i ../EDKII_openssl-1.0.2e.patch
-    4) cd ..
-    5) ./Install.sh
-
-- 
2.5.0



-- 
David Woodhouse                            Open Source Technology Centre
david.woodho...@intel.com                              Intel Corporation

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to