git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org
Subject: Re: [PATCH] msvc: accommodate for vcpkg's upgrade to OpenSSL v1.1.x
Date: Thu, 16 Jan 2020 11:24:52 +0100 (CET)	[thread overview]
Message-ID: <nycvar.QRO.7.76.6.2001161107050.46@tvgsbejvaqbjf.bet> (raw)
In-Reply-To: <xmqqmuaoia15.fsf@gitster-ct.c.googlers.com>

Hi Junio,

On Wed, 15 Jan 2020, Junio C Hamano wrote:

> "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
> writes:
>
> > From: Johannes Schindelin <johannes.schindelin@gmx.de>
> >
> > With the upgrade, the library names changed from libeay32/ssleay32 to
> > libcrypto/libssl.
> >
> > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> > ---
> >     msvc: accommodate for vcpkg's upgrade to OpenSSL v1.1.x
> >
> >     It was reported [https://github.com/git-for-windows/git/issues/2474]
> >     that the vcpkg project (which we use for MSVC/Visual Studio builds of
> >     Git) upgraded [https://github.com/microsoft/vcpkg/pull/8566] OpenSSL
> >     from v1.0.x to v1.1.x, including the change of the library names. We
> >     need to adjust for that.
>
> The patch text makes me wonder if there needs to be a way to use
> either version that happens to be available, so that the version of
> Git with this change can work with older vcpkg and vice versa, but
> what would I know ;-)

I considered this. There are actually _two_ places where this would need
to be implemented: compat/vcbuild/scripts/clink.pl and
contrib/buildsystems/engine.pl

The former is at the wrong layer, though: it is called for every single
C file that needs to be compiled to an object file. Therefore it would
need some major surgery to handle OpenSSL v1.0.x and v1.1.x gracefully.

For the latter, it is even worse: the code cannot determine whether
OpenSSL v1.0.x or v1.1.x is present because it is part of the Pipeline
that generates the `vs/master` branch that is intended to be checked out
by Visual Studio users and to work out of the box.

Meaning: to make this work, we would _also_ have to patch
contrib/buildsystems/Generators/Vcxproj.pm to add some conditional
configuration depending which OpenSSL `.dll` file is present.

Of course, this is doable, but at what cost, and at what benefit?

> Should this patch directly go to 'master' (or even 'maint' for v2.25
> maintenance track)?  I do not see much point in cooking it in 'next'
> for an extended period of time.

That would be nice. As long as this patch is not merged, we will be stuck
with failing Azure Pipelines.

It is far from ideal a situation, I grant you that: whenever anything
breaks in the Azure Pipeline due to changes outside of our control, the
builds fail.

As far as the Visual Studio build goes, I fear at some stage we will need
to implement some sort of tighter integration with `vcpkg` so that we can
inherit the linker settings from _them_. That should make things more
robust in the future. But then, I am not aware that anybody plans on
repeating the DLL renaming stunt, not after OpenSSL demonstrated so well
how that goes. So maybe that effort would be spent in vain, dunno.

Ciao,
Dscho

  reply	other threads:[~2020-01-16 10:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-15 22:57 [PATCH] msvc: accommodate for vcpkg's upgrade to OpenSSL v1.1.x Johannes Schindelin via GitGitGadget
2020-01-15 23:18 ` Junio C Hamano
2020-01-16 10:24   ` Johannes Schindelin [this message]
2020-01-16 20:17     ` Junio C Hamano
2020-01-16 21:35       ` Johannes Schindelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=nycvar.QRO.7.76.6.2001161107050.46@tvgsbejvaqbjf.bet \
    --to=johannes.schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).