From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D9BAF21D1B29B for ; Sat, 22 Jul 2017 22:45:06 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Jul 2017 22:47:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,399,1496127600"; d="scan'208";a="130693479" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga006.fm.intel.com with ESMTP; 22 Jul 2017 22:47:05 -0700 Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sat, 22 Jul 2017 22:47:05 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX155.amr.corp.intel.com (10.18.116.71) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sat, 22 Jul 2017 22:47:04 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.116]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.94]) with mapi id 14.03.0319.002; Sun, 23 Jul 2017 13:47:01 +0800 From: "Long, Qin" To: Sean Brogan , "edk2-devel@lists.01.org" Thread-Topic: Adding OpenSSL as the submodule of EDKII project... Thread-Index: AdMBIidJH8D+kMRjQ6yErten60mJSwBHlMVwAE2IQOA= Date: Sun, 23 Jul 2017 05:47:01 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: Adding OpenSSL as the submodule of EDKII project... X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Jul 2017 05:45:07 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Sean, Thank you for the comments. And for the submodule maintenance, do you have any BKMs (e.g. alias setting= , any scripts for synchronous clone/pull...) for sharing?=20 Best Regards & Thanks, LONG, Qin -----Original Message----- From: Sean Brogan [mailto:sean.brogan@microsoft.com]=20 Sent: Saturday, July 22, 2017 12:52 AM To: Long, Qin ; edk2-devel@lists.01.org Subject: RE: Adding OpenSSL as the submodule of EDKII project... Long,Qin I think this is a great idea and great step forward for making edk2 more co= nsumable. We already do this for our internal clones of edk2 and would lik= e to see more work like this done to make edk2 consumable in a sustainable = and easy way. For example we also use submodules within our clone of edk2 = for win32 basetools bin and nasm. We then use submodules exclusively to ma= nage consuming edk2 into our project repos. This gives us great flexibilit= y and agility to manage, update, and sustain our code trees. TianoCore sho= uld think of itself not as the final repo but as an ingredient in a larger = repository for building and shipping UEFI based products. In that end I w= ould like to see EDK2 break into smaller repositories (but I'll save that f= or another day). =20 Thanks Sean -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Long= , Qin Sent: Thursday, July 20, 2017 12:18 AM To: edk2-devel@lists.01.org Cc: Long, Qin Subject: [edk2] Adding OpenSSL as the submodule of EDKII project... Hi, The Git submodule allows us to keep another Git repository in a subdirector= y of main project. The Submodule repository has its own history, which does= not interfere with the history of the current repository. This can be used= to have external dependencies such as third party libraries. After the extra patch for EDKII-OpenSSL build was removed, OpenSSL can be o= ne typical use case of Git Submodule in EDKII project. The Git parent (EDKI= I) will keep track of the release version / tag IDs of Submodules when the = module owner commit. That will also help to ensure that when we check out t= he EDKII project then the openssl Submodule will also contain its right tag= s. One forked EDK2 repository with OpenSSL submodule support was available at = https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithub.c= om%2Fqloong%2Fedk2&data=3D02%7C01%7Csean.brogan%40microsoft.com%7C25cfc5e58= 5ab4364560708d4cf3f860c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636361= 319131460644&sdata=3DJlxveSrNDXpxECNOAS7zxfDkOvz%2FX5rc9RE%2FA9XYroA%3D&res= erved=3D0 for testing. For EDKII developers, the possible impacts will include (comparing to the o= riginal openssl source download / unpacking mechanism): - Cloning EDKII project with Submodules The user can use the following commands to clone both main EDKII repo and o= penssl submodule: 1) Add the "--recursive" flag to their git clone command: $ git clone --recursive https://na01.safelinks.protection.outlook.com= /?url=3Dhttps%3A%2F%2Fgithub.com%2Fqloong%2Fedk2&data=3D02%7C01%7Csean.brog= an%40microsoft.com%7C25cfc5e585ab4364560708d4cf3f860c%7C72f988bf86f141af91a= b2d7cd011db47%7C1%7C0%7C636361319131460644&sdata=3DJlxveSrNDXpxECNOAS7zxfDk= Ovz%2FX5rc9RE%2FA9XYroA%3D&reserved=3D0 or 2) Manually initialize and update the submodules after the clone operation = on main project: $ git clone https://na01.safelinks.protection.outlook.com/?url=3Dhttp= s%3A%2F%2Fgithub.com%2Fqloong%2Fedk2&data=3D02%7C01%7Csean.brogan%40microso= ft.com%7C25cfc5e585ab4364560708d4cf3f860c%7C72f988bf86f141af91ab2d7cd011db4= 7%7C1%7C0%7C636361319131460644&sdata=3DJlxveSrNDXpxECNOAS7zxfDkOvz%2FX5rc9R= E%2FA9XYroA%3D&reserved=3D0 $ git submodule update -init -recursive - Pulling in Upstream Changes For Pull operations, one single "git pull" will not update the submodule re= pository. So the following combined commands can be used to pull the remote= submodule updates (e.g. updating to new supported OpenSSL release tag) $ g= it pull -recurse-submodules && git submodule update -recursive -remote (For any third-party GUI tools (e.g. TortoiseGit), there are also no direct= support to sync-up the primary and submodule repo. We need to use extra "P= ull..." and "Submodule Update..." to handle this case.) Let me know your comments & suggestions on this possible submodule updates = (advantage or disadvantage of this change? Any impacts? ...). Thanks. Best Regards & Thanks, LONG, Qin _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Flists.01= .org%2Fmailman%2Flistinfo%2Fedk2-devel&data=3D02%7C01%7Csean.brogan%40micro= soft.com%7C25cfc5e585ab4364560708d4cf3f860c%7C72f988bf86f141af91ab2d7cd011d= b47%7C1%7C0%7C636361319131460644&sdata=3DSU3grvQcPSSDREJnEvg%2F6m55JCXJV01j= AoSZi2nwcZA%3D&reserved=3D0