vcpkg/ports/ccfits/portfile.cmake
Billy O'Neal ff5afbab34
[geogram, ccfits, chartdir] Build fixes discovered by CI on 2021-10-01 (#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 (https://github.com/microsoft/vcpkg/issues/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 (https://github.com/microsoft/vcpkg-tool/pull/49)
      and (https://github.com/microsoft/vcpkg-tool/pull/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.
2021-10-05 22:14:35 -07:00

42 lines
1.5 KiB
CMake

vcpkg_download_distfile(ARCHIVE
URLS "https://heasarc.gsfc.nasa.gov/fitsio/CCfits-2.5/CCfits-2.5.tar.gz"
FILENAME "CCfits-2.5.tar.gz"
SHA512 63ab4d153063960510cf60651d5c832824cf85f937f84adc5390c7c2fb46eb8e9f5d8cda2554d79d24c7a4f1b6cf0b7a6e20958fb69920b65d7c362c0a5f26b5
)
vcpkg_extract_source_archive_ex(
ARCHIVE "${ARCHIVE}"
OUT_SOURCE_PATH SOURCE_PATH
PATCHES
dll_exports.patch
fix-dependency.patch
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
)
vcpkg_cmake_install()
if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin")
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin")
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/CCfits.dll" "${CURRENT_PACKAGES_DIR}/bin/CCfits.dll")
file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/CCfits.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/CCfits.dll")
endif()
# Remove duplicate include files
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
# Patch installed headers to look in the correct subdirectory
file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/CCfits/*")
foreach(HEADER IN LISTS HEADERS)
vcpkg_replace_string("${HEADER}" "\"fitsio.h\"" "\"cfitsio/fitsio.h\"")
endforeach()
vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/CCfits/CCfits.h
"#include \"longnam.h\"" "#include \"cfitsio/longnam.h\""
)
file(INSTALL "${SOURCE_PATH}/License.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)