Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use "IE Proxy Settings" correctly on Windows in vcpkg. #49

Merged
merged 6 commits into from
Apr 19, 2021
Merged

Use "IE Proxy Settings" correctly on Windows in vcpkg. #49

merged 6 commits into from
Apr 19, 2021

Conversation

reitowo
Copy link
Contributor

@reitowo reitowo commented Apr 8, 2021

It is common in China or any other countries and regions that needs an proxy software (v2ray, shadowsocks, etc.) for faster connection speed. These softwares typically sets Windows IE Proxy Settings, but not setting environment variables HTTP(S)_PROXY.

I found out that when vcpkg starts an external application (like cmake), it builds an environment variable list. We can use this design to make life easier. Because it is annoying to manually set variables in CLI, or open Advanced Computer Settings and set environment variables there. When using vcpkg in Visual Studio, we even need to restart VS to make the proxy variables take effects. It is also not a good way to just leave HTTP(S)_PROXY in the Windows environment variables list, because it may cause unintended behaviour, and sometimes we do not want to use a proxy at all.

As mentioned in #48, vcpkg wants an coherence design about using proxy that only detects HTTPS_PROXY. Thats reasonable because many external applications vcpkg uses (cmake, etc..) detects HTTP(S)_PROXY. But why not make life easier? We can do better than that and still follow this design.

By reading IE Proxy Settings manually, and sets HTTP(S)_PROXY in the environment variable list building process, this will make all external applications happy.

if (System::get_windows_ie_proxy_enabled())
{
    auto proxy = System::get_windows_ie_proxy_server();
    if (proxy.has_value())
    {
        // Most HTTP proxy DOES proxy HTTPS requests.
        env.emplace("HTTP_PROXY", proxy.value().c_str());
        env.emplace("HTTPS_PROXY", proxy.value().c_str());

        System::print2(
            "-- Automatically setting HTTP(S)_PROXY environment variables to ", proxy.value(), "\n");
    }
}

Then what's left is vcpkg itself. I found two places that use proxy.

  1. tls12-download.c
    This small application also tried to detect HTTPS_PROXY, we can add these code to detect IE Proxy Settings either.
// If HTTPS_PROXY not found, try use IE Proxy. This works on Windows 10 20H2, so there's no need to determine
// the OS version >= 8.1.
if (access_type == WINHTTP_ACCESS_TYPE_NO_PROXY)
{
    WINHTTP_CURRENT_USER_IE_PROXY_CONFIG ieProxy;
    if (WinHttpGetIEProxyConfigForCurrentUser(&ieProxy) && ieProxy.lpszProxy != NULL)
    {
        WINHTTP_PROXY_INFO proxy;
        proxy.dwAccessType = WINHTTP_ACCESS_TYPE_NAMED_PROXY;
        proxy.lpszProxy = ieProxy.lpszProxy;
        proxy.lpszProxyBypass = ieProxy.lpszProxyBypass;
        WinHttpSetOption(session, WINHTTP_OPTION_PROXY, &proxy, sizeof(proxy));

        write_message(std_out, L" (using IE proxy: ");
        write_message(std_out, proxy.lpszProxy);
        write_message(std_out, L")");

        GlobalFree(ieProxy.lpszProxy);
        GlobalFree(ieProxy.lpszProxyBypass);
        GlobalFree(ieProxy.lpszAutoConfigUrl);
    }
}
  1. vcpkg/base/downloads.cpp
    This code uses deprecated API IsWindows8Point1OrGreater and IsWindows7OrGreater to determine whether to use IE Proxy Settings. This have two errors.

So I make two changes to that file.

  • In line 92 I use WINHTTP_ACCESS_TYPE_NO_PROXY to prevent WPAD use. (Provide better experience to Windows proxy users. #48)
  • In later I removed IsWindows8Point1OrGreater and IsWindows7OrGreater. Currently if there's no HTTPS_PROXY variable detected, it will detect IE Proxy Settings.

I think these changes will make vcpkg much easier to use, and also keeps the vcpkg's design language.
I have no idea why Checks failed at 'Create Diff' too. Run 'format' target before commit!

…oad.c", "vcpkg/base/downloads.cpp". Add an helper code in "build.cpp:409" to make setting proxy easier.
@strega-nil
Copy link
Contributor

@cnSchwarzer it fails at "create diff" because the formatting is off; you can just download the diff file which was created and apply it to your code via git apply format.diff.

@ras0219
Copy link
Contributor

ras0219 commented Apr 8, 2021

src/vcpkg/base/system.proxy.cpp Outdated Show resolved Hide resolved
src/vcpkg/base/downloads.cpp Show resolved Hide resolved
include/vcpkg/base/system.proxy.h Outdated Show resolved Hide resolved
src/vcpkg/build.cpp Outdated Show resolved Hide resolved
include/vcpkg/base/system.proxy.h Outdated Show resolved Hide resolved
@BillyONeal
Copy link
Member

The CI failure is that you need to clang-format various files. If you look in the artifacts for the build failure there's a format.diff with the changes to apply.

@reitowo
Copy link
Contributor Author

reitowo commented Apr 9, 2021

@BillyONeal I find out that setting http://ip:port to HTTPS_PROXY means let https:// requests go through an HTTP proxy, and setting https://ip:port to HTTPS_PROXY means go through an HTTPS proxy.

Which means, HTTPS_PROXY doesn't have to be https:// prefixed. It doesn't mean an HTTPS proxy, but https:// requests go through this

We even don't need to worry about that, just remove the type:// prefix also works (setting ip:port to HTTP(S)_PROXY works on me)

include/vcpkg/base/system.proxy.h Outdated Show resolved Hide resolved
@reitowo
Copy link
Contributor Author

reitowo commented Apr 9, 2021

The difference between HTTP and HTTPS proxies is end-to-end security. My understanding is: When an https request go through HTTP proxy, the proxy can see plain request and then make a real secure https request at proxy server side. However HTTPS proxy accepts an CONNECT verb and can't see plain request, is that true? And is that a vcpkg's security concern (tls12-download only wants to accept real secure HTTPS proxy)?

@reitowo reitowo requested a review from BillyONeal April 9, 2021 03:50
@reitowo
Copy link
Contributor Author

reitowo commented Apr 13, 2021

👀Any update on this? @BillyONeal

By the way, should I add an flag like --no-auto-ieproxy to disable this automatic behaviour? @strega-nil

@reitowo
Copy link
Contributor Author

reitowo commented Apr 16, 2021

I'm new to PR rules and I don't get it why this PR stucks at this state? Anything should I do before it can get merged? 🙏Please point out, much thanks!

@BillyONeal
Copy link
Member

👀Any update on this? @BillyONeal

Not right now.

By the way, should I add an flag like --no-auto-ieproxy to disable this automatic behaviour? @strega-nil

I don't think you need to do that although I wouldn't argue against it.

I'm new to PR rules and I don't get it why this PR stucks at this state? Anything should I do before it can get merged? 🙏Please point out, much thanks!

Sorry for the delay; maintainer folks have just been hyper busy over the last few days.

@reitowo
Copy link
Contributor Author

reitowo commented Apr 16, 2021

🙏Sorry! Thanks all of you for your works! Take your time! @BillyONeal

@BillyONeal
Copy link
Member

Don't need to be sorry! Completely reasonable to ask what the heck is going on with a review with a signoff sitting for like a week. I would probably have merged by now but I'm not technically a vcpkg maintainer right now.

@strega-nil strega-nil merged commit 235d4b7 into microsoft:main Apr 19, 2021
@strega-nil
Copy link
Contributor

Thanks @cnSchwarzer, sorry for not merging earlier :)

@BillyONeal
Copy link
Member

BillyONeal commented May 7, 2021

microsoft/vcpkg#17688 <-- It looks like this change causes us to crash... maybe?

@reitowo
Copy link
Contributor Author

reitowo commented May 8, 2021

microsoft/vcpkg#17688 <-- It looks like this change causes us to crash... maybe?

Oh, let me check it.

@reitowo
Copy link
Contributor Author

reitowo commented May 8, 2021

microsoft/vcpkg#17688 <-- It looks like this change causes us to crash... maybe?

Not related, the current vcpkg's repository didn't update tls12-download.exe, it's still old Feb version.

@BillyONeal
Copy link
Member

Yeah, sorry for the assumption :)

strega-nil-ms pushed a commit that referenced this pull request May 11, 2021
… Proxy (#49) (#77)

* If HTTP(S)_PROXY already exist in environment variable, do not use IE Proxy auto detection.

* Meet review requirements
BillyONeal added a commit to BillyONeal/vcpkg that referenced this pull request Oct 4, 2021
…l to .\scripts\ci.baseline.txt.

REGRESSION: geogram:x64-osx. If expected, add geogram:x64-osx=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-windows-static-md. If expected, add geogram:x64-windows-static-md=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-windows-static. If expected, add geogram:x64-windows-static=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-windows. If expected, add geogram:x64-windows=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x86-windows. If expected, add geogram:x86-windows=fail to .\scripts\ci.baseline.txt.

Upstream is gone:

https://gforge.inria.fr/frs/download.php/file/38314/geogram_1.7.5.tar.gz:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (60) SSL: no alternative certificate subject name matches target host name 'gforge.inria.fr'
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

[DEBUG] /agent/_work/1/s/buildtrees/_vcpkg/src/vcpkg-tool-2021-09-10/src/vcpkg/base/downloads.cpp(626)
[DEBUG] Exiting after 583.7 ms us (582562 us)

CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:83 (message):

      Failed to download file with error: 1
      If you use a proxy, please check your proxy setting. Possible causes are:

      1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable
         to `https://address:port`. This is not correct, because `https://` prefix
         claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr
         , etc..) is an HTTP proxy. Try setting `http://address:port` to both
         HTTP_PROXY and HTTPS_PROXY instead.

      2. You are using Fiddler. Currently a bug (microsoft#17752)
         will set HTTPS_PROXY to `https://fiddler_address:port` which lead to problem 1 above.
         Workaround is open Windows 10 Settings App, and search for Proxy Configuration page,
         Change `http=address:port;https=address:port` to `address`, and fill the port number.

      3. You proxy's remote server is out of service.

      In future vcpkg releases, if you are using Windows, you no longer need to set
      HTTP(S)_PROXY environment variables. Vcpkg will simply apply Windows IE Proxy
      Settings set by your proxy software. See (microsoft/vcpkg-tool#49)
      and (microsoft/vcpkg-tool#77)

      Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues

Call Stack (most recent call first):
  scripts/cmake/vcpkg_download_distfile.cmake:274 (z_vcpkg_download_distfile_show_proxy_and_fail)
  ports/geogram/portfile.cmake:4 (vcpkg_download_distfile)
  scripts/ports.cmake:141 (include)

Skipped in ci.baseline.txt.
BillyONeal added a commit to microsoft/vcpkg that referenced this pull request Oct 6, 2021
#20518)

* REGRESSION: chartdir:x64-linux. If expected, add chartdir:x64-linux=fail to .\scripts\ci.baseline.txt.

-- Note: chartdir only supports dynamic library linkage. Building dynamic library.
-- Downloading http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz -> chartdir_cpp_linux_64-7.0.0.tar.gz...
[DEBUG] Feature flag 'binarycaching' unset
[DEBUG] Feature flag 'manifests' = off
[DEBUG] Feature flag 'compilertracking' unset
[DEBUG] Feature flag 'registries' unset
[DEBUG] Feature flag 'versions' unset
[DEBUG] popen(curl --fail -L "https://vcpkgassetcache.blob.core.windows.net/assets/e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa?sp=racwl&st=2021-06-29T20:09:46Z&se=2021-10-02T04:09:46Z&spr=https&sv=2020-08-04&sr=c&sig=g3shlIpD0R923OUzfIsrTwjX0vc6OzNXGEDO3URXmYc%3D" --create-dirs --output /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part 2>&1)
[DEBUG] cmd_execute_and_stream_data() returned 5632 after    31162 us
[DEBUG] popen(curl --fail -L http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz --create-dirs --output /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part 2>&1)
[DEBUG] cmd_execute_and_stream_data() returned 0 after  8512565 us
Error: Failed to download from mirror set:
https://vcpkgassetcache.blob.core.windows.net/assets/e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa?*** SECRET ***:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 403 Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.

File does not have the expected hash:
             url : [ http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz ]
       File path : [ /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part ]
   Expected hash : [ e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa ]
     Actual hash : [ ea2e05f28dd9647fed49feaf130d8034065067463965f144b3fae4eae482579b1ecf528dc86d1b3602887d5ca0c3b1569404489b0f4cb2300b798fed940cd467 ]

Updated SHAs and added quotes. These are the changes made by upstream:

```
diff --git a/new_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp b/old_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp
index 79f15be..302eb78 100644
--- a/new_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp
+++ b/old_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp
@@ -108,7 +108,9 @@ void createChart(int chartIndex, const char *filename)
     const int dataZ_size = dataX_size * dataY_size;
     double dataZ[dataZ_size];
     for(int yIndex = 0; yIndex < dataY_size; ++yIndex) {
+        double y = dataY[yIndex];
         for(int xIndex = 0; xIndex < dataX_size; ++xIndex) {
+            double x = dataX[xIndex];
             dataZ[yIndex * dataX_size + xIndex] = dataX[xIndex] * dataY[yIndex];
         }
     }
@@ -176,7 +178,7 @@ void createChart(int chartIndex, const char *filename)
         // Use a DrawArea to load the image
         DrawArea* d = new DrawArea();
         d->load("maptexture.png");
-        d->resize(c->getPlotRegionWidth(), c->getPlotRegionDepth());
+        d->resize(240, 210);

         // Set the DrawArea as a resource
         c->setResource("texture", d);
diff --git a/new_sha/ChartDirector/lib/libchartdir.so.7.0.0 b/old_sha/ChartDirector/lib/libchartdir.so.7.0.0
index b1ea97f..bfb1d4b 100644
Binary files a/new_sha/ChartDirector/lib/libchartdir.so.7.0.0 and b/old_sha/ChartDirector/lib/libchartdir.so.7.0.0 differ
diff --git a/new_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp b/old_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp
index 5736d60..423120f 100644
--- a/new_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp
+++ b/old_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp
@@ -107,9 +107,9 @@ private:
     QCursor *hZoomOutCursor;
     QCursor *hNoZoomCursor;

-    QCursor &getZoomCursor(QCursor **cache, double scale, int flags)
+    QCursor &getZoomCursor(QCursor *cache, double scale, int flags)
     {
-        if (0 == *cache)
+        if (0 == cache)
         {
             DrawArea d;
             d.setSize(32, 32, Chart::Transparent);
@@ -127,9 +127,9 @@ private:
             MemBlock m = d.outPNG();
             QImage img = QImage::fromData((const uchar*)m.data, m.len);
             img.setDevicePixelRatio(scale);
-            *cache = new QCursor(QPixmap::fromImage(img), 15, 15);
+            cache = new QCursor(QPixmap::fromImage(img), 15, 15);
         }
-        return **cache;
+        return *cache;
     }

 public:
@@ -145,15 +145,15 @@ public:
     }
     QCursor &getZoomInCursor(double scale)
     {
-        return getZoomCursor(&hZoomInCursor, scale, 3);
+        return getZoomCursor(hZoomInCursor, scale, 3);
     }
     QCursor &getZoomOutCursor(double scale)
     {
-        return getZoomCursor(&hZoomOutCursor, scale, 1);
+        return getZoomCursor(hZoomOutCursor, scale, 1);
     }
     QCursor &getNoZoomCursor(double scale)
     {
-        return getZoomCursor(&hNoZoomCursor, scale, 0);
+        return getZoomCursor(hNoZoomCursor, scale, 0);
     }
 } cursorManager;

diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp
index a3b7962..d706853 100644
--- a/new_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp
+++ b/old_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp
@@ -10954,7 +10954,9 @@ void surfacetexture(QChartViewer *viewer, int chartIndex)
     const int dataZ_size = dataX_size * dataY_size;
     double dataZ[dataZ_size];
     for(int yIndex = 0; yIndex < dataY_size; ++yIndex) {
+        double y = dataY[yIndex];
         for(int xIndex = 0; xIndex < dataX_size; ++xIndex) {
+            double x = dataX[xIndex];
             dataZ[yIndex * dataX_size + xIndex] = dataX[xIndex] * dataY[yIndex];
         }
     }
@@ -11022,7 +11024,7 @@ void surfacetexture(QChartViewer *viewer, int chartIndex)
         // Use a DrawArea to load the image
         DrawArea* d = new DrawArea();
         d->load("@/images/maptexture.png");
-        d->resize(c->getPlotRegionWidth(), c->getPlotRegionDepth());
+        d->resize(240, 210);

         // Set the DrawArea as a resource
         c->setResource("texture", d);
@@ -12304,6 +12306,11 @@ void treemapcolors(QChartViewer *viewer, int /* chartIndex */)

 void treemaplayout(QChartViewer *viewer, int chartIndex)
 {
+    // Labels for the tree map
+    const char* energy_types[] = {"Coal", "Oil", "Gas", "Nuclear", "Hydro", "Solar", "Wind",
+        "Biomass", "Geothermal", "Wave"};
+    const int energy_types_size = (int)(sizeof(energy_types)/sizeof(*energy_types));
+
     // Random data for the tree map
     RanSeries* r = new RanSeries(3);
     DoubleArray data = r->getSeries(20, 20, 400);
@@ -14163,10 +14170,7 @@ void circularbarmeter2(QChartViewer *viewer, int chartIndex)
     m->setCap(0, Chart::Transparent);

     // In this example, the circular bar has 20 segments
-    int segmentCount = 20;
-
-    // The angular step
-    double angleStep = 360.0 / segmentCount;
+    int angleStep = 360 / 20;

     // The gap between segments is 4.5 degrees
     double angleGap = 4.5;
@@ -14205,39 +14209,28 @@ void circularbarmeter2(QChartViewer *viewer, int chartIndex)
             stepColorScale_size));
     }

-    //
-    // Now we draw the segments of the bar meter
-    //
-
-    // The segment that contains the value
-    int currentSegment = (int)(angle / angleStep);
-
-    // Segments after the current segment is colored with the blank color
-    for(int i = currentSegment + 1; i < segmentCount; ++i) {
-        m->addRingSector(radius, radius - 20, i * angleStep, (i + 1) * angleStep - angleGap,
-            blankColor);
+    // Draw the blank part of the circular bar
+    if (angle < 360) {
+        // Iterate the segments in the blank part of the circular bar
+        for(int startAngle = (int)(angle / angleStep) * angleStep; startAngle < 360; startAngle +=
+            angleStep) {
+            // The first segment may be partially filled
+            double partialAngle = (startAngle >= angle ? 0 : (angle - startAngle) * (1 - angleGap /
+                angleStep));
+            m->addRingSector(radius, radius - 20, startAngle + partialAngle, startAngle + angleStep
+                 - angleGap, blankColor);
         }
-
-    // Segments before the current segment is colored with the fill color
-    for(int i = 0; i < currentSegment; ++i) {
-        m->addRingSector(radius, radius - 20, i * angleStep, (i + 1) * angleStep - angleGap,
-            fillColor);
     }

-    // Segment that contains the angle will be partially filled and partially blank. We need to
-    // adjust the angle to compensated for the angle gap.
-    double adjustedAngle = currentSegment * angleStep + (angle - currentSegment * angleStep) * (1 -
-        angleGap / angleStep);
-
-    // The blank part of the segment
-    if ((currentSegment + 1) * angleStep > angle) {
-        m->addRingSector(radius, radius - 20, adjustedAngle, (currentSegment + 1) * angleStep -
-            angleGap, blankColor);
+    // Draw the fill part of the circular bar
+    if (angle > 0) {
+        // Iterate the segments in the fill part of the circular bar
+        for(int startAngle = 0; startAngle < angle; startAngle += angleStep) {
+            // The last segment may be partially filled
+            double angleSpan = (angleStep - angleGap) * (angle >= startAngle + angleStep ? 1 : (
+                angle - startAngle) / angleStep);
+            m->addRingSector(radius, radius - 20, startAngle, startAngle + angleSpan, fillColor);
         }
-
-    // The filled part of the segment.
-    if (angle > currentSegment * angleStep) {
-        m->addRingSector(radius, radius - 20, currentSegment * angleStep, adjustedAngle, fillColor);
     }

     // Add a label at the center to display the value
diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp
index 7b8c1f5..b029776 100644
--- a/new_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp
+++ b/old_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp
@@ -315,13 +315,6 @@ void FinanceDemo::onLineEditChanged()
     int new_avgPeriod2 = m_MovAvg2->text().toInt();

     QString tickerKey = m_TickerSymbol->text();
-    if (tickerKey.isEmpty())
-    {
-        // Default tickerKey
-        tickerKey = "ASE";
-        m_TickerSymbol->setText(tickerKey);
-    }
-
     QString compareKey = m_CompareWith->text();

     bool needReloadData = (m_tickerKey != tickerKey) || (m_compareKey != compareKey);
@@ -367,16 +360,12 @@ void FinanceDemo::loadData(const QString& ticker, const QString& compare)
     if (m_compareKey != compare)
     {
         m_compareKey = compare;
-        if (m_compareKey.isEmpty())
-            m_dailyPrice.compareData.clear();
-        else
-        {
+
         // Simulator to generate realistic random OHLC values
         FinanceSimulator db2(compare.toUtf8().data(), Chart::chartTime(2010, 1, 1),
             Chart::chartTime(2020, 12, 31), 86400);
         m_dailyPrice.compareData = arrayToVector(db2.getCloseData());
     }
-    }

     // In this example, we will compute the weekly and monthly prices on demand. We just
     // need to clear the old data here.
diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp
index 5736d60..423120f 100644
--- a/new_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp
+++ b/old_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp
@@ -107,9 +107,9 @@ private:
     QCursor *hZoomOutCursor;
     QCursor *hNoZoomCursor;

-    QCursor &getZoomCursor(QCursor **cache, double scale, int flags)
+    QCursor &getZoomCursor(QCursor *cache, double scale, int flags)
     {
-        if (0 == *cache)
+        if (0 == cache)
         {
             DrawArea d;
             d.setSize(32, 32, Chart::Transparent);
@@ -127,9 +127,9 @@ private:
             MemBlock m = d.outPNG();
             QImage img = QImage::fromData((const uchar*)m.data, m.len);
             img.setDevicePixelRatio(scale);
-            *cache = new QCursor(QPixmap::fromImage(img), 15, 15);
+            cache = new QCursor(QPixmap::fromImage(img), 15, 15);
         }
-        return **cache;
+        return *cache;
     }

 public:
@@ -145,15 +145,15 @@ public:
     }
     QCursor &getZoomInCursor(double scale)
     {
-        return getZoomCursor(&hZoomInCursor, scale, 3);
+        return getZoomCursor(hZoomInCursor, scale, 3);
     }
     QCursor &getZoomOutCursor(double scale)
     {
-        return getZoomCursor(&hZoomOutCursor, scale, 1);
+        return getZoomCursor(hZoomOutCursor, scale, 1);
     }
     QCursor &getNoZoomCursor(double scale)
     {
-        return getZoomCursor(&hNoZoomCursor, scale, 0);
+        return getZoomCursor(hNoZoomCursor, scale, 0);
     }
 } cursorManager;

```

* REGRESSION: ccfits:arm64-windows. If expected, add ccfits:arm64-windows=fail to .\scripts\ci.baseline.txt.

REGRESSION: ccfits:x64-linux. If expected, add ccfits:x64-linux=fail to .\scripts\ci.baseline.txt.
REGRESSION: ccfits:x64-osx. If expected, add ccfits:x64-osx=fail to .\scripts\ci.baseline.txt.
REGRESSION: ccfits:x64-windows-static-md. If expected, add ccfits:x64-windows-static-md=fail to .\scripts\ci.baseline.txt.
REGRESSION: ccfits:x64-windows-static. If expected, add ccfits:x64-windows-static=fail to .\scripts\ci.baseline.txt.
REGRESSION: ccfits:x64-windows. If expected, add ccfits:x64-windows=fail to .\scripts\ci.baseline.txt.
REGRESSION: ccfits:x86-windows. If expected, add ccfits:x86-windows=fail to .\scripts\ci.baseline.txt.

>[DEBUG] popen(curl --fail -L https://heasarc.gsfc.nasa.gov/fitsio/ccfits/CCfits-2.5.tar.gz --create-dirs --output /Users/bion/vcpkg/downloads/CCfits-2.5.tar.gz.15183.part 2>&1)
>[DEBUG] cmd_execute_and_stream_data() returned 5632 after   415053 us
>Error: Failed to download from mirror set:
>https://heasarc.gsfc.nasa.gov/fitsio/ccfits/CCfits-2.5.tar.gz:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                 Dload  Upload   Total   Spent    Left  Speed
>  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
>curl: (22) The requested URL returned error: 404 Not Found

Fixed link and modernized portfile.

* REGRESSION: geogram:x64-linux. If expected, add geogram:x64-linux=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-osx. If expected, add geogram:x64-osx=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-windows-static-md. If expected, add geogram:x64-windows-static-md=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-windows-static. If expected, add geogram:x64-windows-static=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-windows. If expected, add geogram:x64-windows=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x86-windows. If expected, add geogram:x86-windows=fail to .\scripts\ci.baseline.txt.

Upstream is gone:

https://gforge.inria.fr/frs/download.php/file/38314/geogram_1.7.5.tar.gz:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (60) SSL: no alternative certificate subject name matches target host name 'gforge.inria.fr'
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

[DEBUG] /agent/_work/1/s/buildtrees/_vcpkg/src/vcpkg-tool-2021-09-10/src/vcpkg/base/downloads.cpp(626)
[DEBUG] Exiting after 583.7 ms us (582562 us)

CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:83 (message):

      Failed to download file with error: 1
      If you use a proxy, please check your proxy setting. Possible causes are:

      1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable
         to `https://address:port`. This is not correct, because `https://` prefix
         claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr
         , etc..) is an HTTP proxy. Try setting `http://address:port` to both
         HTTP_PROXY and HTTPS_PROXY instead.

      2. You are using Fiddler. Currently a bug (#17752)
         will set HTTPS_PROXY to `https://fiddler_address:port` which lead to problem 1 above.
         Workaround is open Windows 10 Settings App, and search for Proxy Configuration page,
         Change `http=address:port;https=address:port` to `address`, and fill the port number.

      3. You proxy's remote server is out of service.

      In future vcpkg releases, if you are using Windows, you no longer need to set
      HTTP(S)_PROXY environment variables. Vcpkg will simply apply Windows IE Proxy
      Settings set by your proxy software. See (microsoft/vcpkg-tool#49)
      and (microsoft/vcpkg-tool#77)

      Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues

Call Stack (most recent call first):
  scripts/cmake/vcpkg_download_distfile.cmake:274 (z_vcpkg_download_distfile_show_proxy_and_fail)
  ports/geogram/portfile.cmake:4 (vcpkg_download_distfile)
  scripts/ports.cmake:141 (include)

Skipped in ci.baseline.txt.
Sungeun0318 pushed a commit to Sungeun0318/-vcpkg that referenced this pull request May 15, 2024
…1 (#20518)

* REGRESSION: chartdir:x64-linux. If expected, add chartdir:x64-linux=fail to .\scripts\ci.baseline.txt.

-- Note: chartdir only supports dynamic library linkage. Building dynamic library.
-- Downloading http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz -> chartdir_cpp_linux_64-7.0.0.tar.gz...
[DEBUG] Feature flag 'binarycaching' unset
[DEBUG] Feature flag 'manifests' = off
[DEBUG] Feature flag 'compilertracking' unset
[DEBUG] Feature flag 'registries' unset
[DEBUG] Feature flag 'versions' unset
[DEBUG] popen(curl --fail -L "https://vcpkgassetcache.blob.core.windows.net/assets/e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa?sp=racwl&st=2021-06-29T20:09:46Z&se=2021-10-02T04:09:46Z&spr=https&sv=2020-08-04&sr=c&sig=g3shlIpD0R923OUzfIsrTwjX0vc6OzNXGEDO3URXmYc%3D" --create-dirs --output /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part 2>&1)
[DEBUG] cmd_execute_and_stream_data() returned 5632 after    31162 us
[DEBUG] popen(curl --fail -L http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz --create-dirs --output /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part 2>&1)
[DEBUG] cmd_execute_and_stream_data() returned 0 after  8512565 us
Error: Failed to download from mirror set:
https://vcpkgassetcache.blob.core.windows.net/assets/e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa?*** SECRET ***:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 403 Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.

File does not have the expected hash:
             url : [ http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz ]
       File path : [ /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part ]
   Expected hash : [ e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa ]
     Actual hash : [ ea2e05f28dd9647fed49feaf130d8034065067463965f144b3fae4eae482579b1ecf528dc86d1b3602887d5ca0c3b1569404489b0f4cb2300b798fed940cd467 ]

Updated SHAs and added quotes. These are the changes made by upstream:

```
diff --git a/new_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp b/old_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp
index 79f15be..302eb78 100644
--- a/new_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp
+++ b/old_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp
@@ -108,7 +108,9 @@ void createChart(int chartIndex, const char *filename)
     const int dataZ_size = dataX_size * dataY_size;
     double dataZ[dataZ_size];
     for(int yIndex = 0; yIndex < dataY_size; ++yIndex) {
+        double y = dataY[yIndex];
         for(int xIndex = 0; xIndex < dataX_size; ++xIndex) {
+            double x = dataX[xIndex];
             dataZ[yIndex * dataX_size + xIndex] = dataX[xIndex] * dataY[yIndex];
         }
     }
@@ -176,7 +178,7 @@ void createChart(int chartIndex, const char *filename)
         // Use a DrawArea to load the image
         DrawArea* d = new DrawArea();
         d->load("maptexture.png");
-        d->resize(c->getPlotRegionWidth(), c->getPlotRegionDepth());
+        d->resize(240, 210);

         // Set the DrawArea as a resource
         c->setResource("texture", d);
diff --git a/new_sha/ChartDirector/lib/libchartdir.so.7.0.0 b/old_sha/ChartDirector/lib/libchartdir.so.7.0.0
index b1ea97f..bfb1d4b 100644
Binary files a/new_sha/ChartDirector/lib/libchartdir.so.7.0.0 and b/old_sha/ChartDirector/lib/libchartdir.so.7.0.0 differ
diff --git a/new_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp b/old_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp
index 5736d60..423120f 100644
--- a/new_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp
+++ b/old_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp
@@ -107,9 +107,9 @@ private:
     QCursor *hZoomOutCursor;
     QCursor *hNoZoomCursor;

-    QCursor &getZoomCursor(QCursor **cache, double scale, int flags)
+    QCursor &getZoomCursor(QCursor *cache, double scale, int flags)
     {
-        if (0 == *cache)
+        if (0 == cache)
         {
             DrawArea d;
             d.setSize(32, 32, Chart::Transparent);
@@ -127,9 +127,9 @@ private:
             MemBlock m = d.outPNG();
             QImage img = QImage::fromData((const uchar*)m.data, m.len);
             img.setDevicePixelRatio(scale);
-            *cache = new QCursor(QPixmap::fromImage(img), 15, 15);
+            cache = new QCursor(QPixmap::fromImage(img), 15, 15);
         }
-        return **cache;
+        return *cache;
     }

 public:
@@ -145,15 +145,15 @@ public:
     }
     QCursor &getZoomInCursor(double scale)
     {
-        return getZoomCursor(&hZoomInCursor, scale, 3);
+        return getZoomCursor(hZoomInCursor, scale, 3);
     }
     QCursor &getZoomOutCursor(double scale)
     {
-        return getZoomCursor(&hZoomOutCursor, scale, 1);
+        return getZoomCursor(hZoomOutCursor, scale, 1);
     }
     QCursor &getNoZoomCursor(double scale)
     {
-        return getZoomCursor(&hNoZoomCursor, scale, 0);
+        return getZoomCursor(hNoZoomCursor, scale, 0);
     }
 } cursorManager;

diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp
index a3b7962..d706853 100644
--- a/new_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp
+++ b/old_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp
@@ -10954,7 +10954,9 @@ void surfacetexture(QChartViewer *viewer, int chartIndex)
     const int dataZ_size = dataX_size * dataY_size;
     double dataZ[dataZ_size];
     for(int yIndex = 0; yIndex < dataY_size; ++yIndex) {
+        double y = dataY[yIndex];
         for(int xIndex = 0; xIndex < dataX_size; ++xIndex) {
+            double x = dataX[xIndex];
             dataZ[yIndex * dataX_size + xIndex] = dataX[xIndex] * dataY[yIndex];
         }
     }
@@ -11022,7 +11024,7 @@ void surfacetexture(QChartViewer *viewer, int chartIndex)
         // Use a DrawArea to load the image
         DrawArea* d = new DrawArea();
         d->load("@/images/maptexture.png");
-        d->resize(c->getPlotRegionWidth(), c->getPlotRegionDepth());
+        d->resize(240, 210);

         // Set the DrawArea as a resource
         c->setResource("texture", d);
@@ -12304,6 +12306,11 @@ void treemapcolors(QChartViewer *viewer, int /* chartIndex */)

 void treemaplayout(QChartViewer *viewer, int chartIndex)
 {
+    // Labels for the tree map
+    const char* energy_types[] = {"Coal", "Oil", "Gas", "Nuclear", "Hydro", "Solar", "Wind",
+        "Biomass", "Geothermal", "Wave"};
+    const int energy_types_size = (int)(sizeof(energy_types)/sizeof(*energy_types));
+
     // Random data for the tree map
     RanSeries* r = new RanSeries(3);
     DoubleArray data = r->getSeries(20, 20, 400);
@@ -14163,10 +14170,7 @@ void circularbarmeter2(QChartViewer *viewer, int chartIndex)
     m->setCap(0, Chart::Transparent);

     // In this example, the circular bar has 20 segments
-    int segmentCount = 20;
-
-    // The angular step
-    double angleStep = 360.0 / segmentCount;
+    int angleStep = 360 / 20;

     // The gap between segments is 4.5 degrees
     double angleGap = 4.5;
@@ -14205,39 +14209,28 @@ void circularbarmeter2(QChartViewer *viewer, int chartIndex)
             stepColorScale_size));
     }

-    //
-    // Now we draw the segments of the bar meter
-    //
-
-    // The segment that contains the value
-    int currentSegment = (int)(angle / angleStep);
-
-    // Segments after the current segment is colored with the blank color
-    for(int i = currentSegment + 1; i < segmentCount; ++i) {
-        m->addRingSector(radius, radius - 20, i * angleStep, (i + 1) * angleStep - angleGap,
-            blankColor);
+    // Draw the blank part of the circular bar
+    if (angle < 360) {
+        // Iterate the segments in the blank part of the circular bar
+        for(int startAngle = (int)(angle / angleStep) * angleStep; startAngle < 360; startAngle +=
+            angleStep) {
+            // The first segment may be partially filled
+            double partialAngle = (startAngle >= angle ? 0 : (angle - startAngle) * (1 - angleGap /
+                angleStep));
+            m->addRingSector(radius, radius - 20, startAngle + partialAngle, startAngle + angleStep
+                 - angleGap, blankColor);
         }
-
-    // Segments before the current segment is colored with the fill color
-    for(int i = 0; i < currentSegment; ++i) {
-        m->addRingSector(radius, radius - 20, i * angleStep, (i + 1) * angleStep - angleGap,
-            fillColor);
     }

-    // Segment that contains the angle will be partially filled and partially blank. We need to
-    // adjust the angle to compensated for the angle gap.
-    double adjustedAngle = currentSegment * angleStep + (angle - currentSegment * angleStep) * (1 -
-        angleGap / angleStep);
-
-    // The blank part of the segment
-    if ((currentSegment + 1) * angleStep > angle) {
-        m->addRingSector(radius, radius - 20, adjustedAngle, (currentSegment + 1) * angleStep -
-            angleGap, blankColor);
+    // Draw the fill part of the circular bar
+    if (angle > 0) {
+        // Iterate the segments in the fill part of the circular bar
+        for(int startAngle = 0; startAngle < angle; startAngle += angleStep) {
+            // The last segment may be partially filled
+            double angleSpan = (angleStep - angleGap) * (angle >= startAngle + angleStep ? 1 : (
+                angle - startAngle) / angleStep);
+            m->addRingSector(radius, radius - 20, startAngle, startAngle + angleSpan, fillColor);
         }
-
-    // The filled part of the segment.
-    if (angle > currentSegment * angleStep) {
-        m->addRingSector(radius, radius - 20, currentSegment * angleStep, adjustedAngle, fillColor);
     }

     // Add a label at the center to display the value
diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp
index 7b8c1f5..b029776 100644
--- a/new_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp
+++ b/old_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp
@@ -315,13 +315,6 @@ void FinanceDemo::onLineEditChanged()
     int new_avgPeriod2 = m_MovAvg2->text().toInt();

     QString tickerKey = m_TickerSymbol->text();
-    if (tickerKey.isEmpty())
-    {
-        // Default tickerKey
-        tickerKey = "ASE";
-        m_TickerSymbol->setText(tickerKey);
-    }
-
     QString compareKey = m_CompareWith->text();

     bool needReloadData = (m_tickerKey != tickerKey) || (m_compareKey != compareKey);
@@ -367,16 +360,12 @@ void FinanceDemo::loadData(const QString& ticker, const QString& compare)
     if (m_compareKey != compare)
     {
         m_compareKey = compare;
-        if (m_compareKey.isEmpty())
-            m_dailyPrice.compareData.clear();
-        else
-        {
+
         // Simulator to generate realistic random OHLC values
         FinanceSimulator db2(compare.toUtf8().data(), Chart::chartTime(2010, 1, 1),
             Chart::chartTime(2020, 12, 31), 86400);
         m_dailyPrice.compareData = arrayToVector(db2.getCloseData());
     }
-    }

     // In this example, we will compute the weekly and monthly prices on demand. We just
     // need to clear the old data here.
diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp
index 5736d60..423120f 100644
--- a/new_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp
+++ b/old_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp
@@ -107,9 +107,9 @@ private:
     QCursor *hZoomOutCursor;
     QCursor *hNoZoomCursor;

-    QCursor &getZoomCursor(QCursor **cache, double scale, int flags)
+    QCursor &getZoomCursor(QCursor *cache, double scale, int flags)
     {
-        if (0 == *cache)
+        if (0 == cache)
         {
             DrawArea d;
             d.setSize(32, 32, Chart::Transparent);
@@ -127,9 +127,9 @@ private:
             MemBlock m = d.outPNG();
             QImage img = QImage::fromData((const uchar*)m.data, m.len);
             img.setDevicePixelRatio(scale);
-            *cache = new QCursor(QPixmap::fromImage(img), 15, 15);
+            cache = new QCursor(QPixmap::fromImage(img), 15, 15);
         }
-        return **cache;
+        return *cache;
     }

 public:
@@ -145,15 +145,15 @@ public:
     }
     QCursor &getZoomInCursor(double scale)
     {
-        return getZoomCursor(&hZoomInCursor, scale, 3);
+        return getZoomCursor(hZoomInCursor, scale, 3);
     }
     QCursor &getZoomOutCursor(double scale)
     {
-        return getZoomCursor(&hZoomOutCursor, scale, 1);
+        return getZoomCursor(hZoomOutCursor, scale, 1);
     }
     QCursor &getNoZoomCursor(double scale)
     {
-        return getZoomCursor(&hNoZoomCursor, scale, 0);
+        return getZoomCursor(hNoZoomCursor, scale, 0);
     }
 } cursorManager;

```

* REGRESSION: ccfits:arm64-windows. If expected, add ccfits:arm64-windows=fail to .\scripts\ci.baseline.txt.

REGRESSION: ccfits:x64-linux. If expected, add ccfits:x64-linux=fail to .\scripts\ci.baseline.txt.
REGRESSION: ccfits:x64-osx. If expected, add ccfits:x64-osx=fail to .\scripts\ci.baseline.txt.
REGRESSION: ccfits:x64-windows-static-md. If expected, add ccfits:x64-windows-static-md=fail to .\scripts\ci.baseline.txt.
REGRESSION: ccfits:x64-windows-static. If expected, add ccfits:x64-windows-static=fail to .\scripts\ci.baseline.txt.
REGRESSION: ccfits:x64-windows. If expected, add ccfits:x64-windows=fail to .\scripts\ci.baseline.txt.
REGRESSION: ccfits:x86-windows. If expected, add ccfits:x86-windows=fail to .\scripts\ci.baseline.txt.

>[DEBUG] popen(curl --fail -L https://heasarc.gsfc.nasa.gov/fitsio/ccfits/CCfits-2.5.tar.gz --create-dirs --output /Users/bion/vcpkg/downloads/CCfits-2.5.tar.gz.15183.part 2>&1)
>[DEBUG] cmd_execute_and_stream_data() returned 5632 after   415053 us
>Error: Failed to download from mirror set:
>https://heasarc.gsfc.nasa.gov/fitsio/ccfits/CCfits-2.5.tar.gz:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                 Dload  Upload   Total   Spent    Left  Speed
>  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
>curl: (22) The requested URL returned error: 404 Not Found

Fixed link and modernized portfile.

* REGRESSION: geogram:x64-linux. If expected, add geogram:x64-linux=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-osx. If expected, add geogram:x64-osx=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-windows-static-md. If expected, add geogram:x64-windows-static-md=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-windows-static. If expected, add geogram:x64-windows-static=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x64-windows. If expected, add geogram:x64-windows=fail to .\scripts\ci.baseline.txt.
REGRESSION: geogram:x86-windows. If expected, add geogram:x86-windows=fail to .\scripts\ci.baseline.txt.

Upstream is gone:

https://gforge.inria.fr/frs/download.php/file/38314/geogram_1.7.5.tar.gz:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (60) SSL: no alternative certificate subject name matches target host name 'gforge.inria.fr'
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

[DEBUG] /agent/_work/1/s/buildtrees/_vcpkg/src/vcpkg-tool-2021-09-10/src/vcpkg/base/downloads.cpp(626)
[DEBUG] Exiting after 583.7 ms us (582562 us)

CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:83 (message):

      Failed to download file with error: 1
      If you use a proxy, please check your proxy setting. Possible causes are:

      1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable
         to `https://address:port`. This is not correct, because `https://` prefix
         claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr
         , etc..) is an HTTP proxy. Try setting `http://address:port` to both
         HTTP_PROXY and HTTPS_PROXY instead.

      2. You are using Fiddler. Currently a bug (microsoft/vcpkg#17752)
         will set HTTPS_PROXY to `https://fiddler_address:port` which lead to problem 1 above.
         Workaround is open Windows 10 Settings App, and search for Proxy Configuration page,
         Change `http=address:port;https=address:port` to `address`, and fill the port number.

      3. You proxy's remote server is out of service.

      In future vcpkg releases, if you are using Windows, you no longer need to set
      HTTP(S)_PROXY environment variables. Vcpkg will simply apply Windows IE Proxy
      Settings set by your proxy software. See (microsoft/vcpkg-tool#49)
      and (microsoft/vcpkg-tool#77)

      Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues

Call Stack (most recent call first):
  scripts/cmake/vcpkg_download_distfile.cmake:274 (z_vcpkg_download_distfile_show_proxy_and_fail)
  ports/geogram/portfile.cmake:4 (vcpkg_download_distfile)
  scripts/ports.cmake:141 (include)

Skipped in ci.baseline.txt.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants