Commit Graph

1949 Commits

Author SHA1 Message Date
Billy O'Neal
3f3d9a615a
[vcpkg] Fix incorrect handling of messages for permenantly disabled metrics. (#15636)
Fixes #15630
2021-01-14 08:41:53 -08:00
Billy O'Neal
8414e15973
[vcpkg] Use a tag file rather than conditional compilation to permanently disable metrics. (#15470) 2021-01-13 14:06:06 -08:00
Billy O'Neal
4da47f758f
[vcpkg] Add sources for TLS 1.2 downloader tool. (#15516) 2021-01-13 14:05:38 -08:00
ras0219
c239e82510
[vcpkg] Add parse checking for version fields and enable non-string versions outside 'versions' flag (#15580) 2021-01-13 10:53:29 -08:00
nicole mazzuca
94b9db927c
[vcpkg] Add a different way to use CommandBuilder, support InWorkingDirectory (#15583)
* [vcpkg] Add stuff to the system.process API

* CmdLineBuilder - add rvalue overloads
* Add InWorkingDirectory support

* remove `&&` outside of system.process.cpp

* minor CR

* move the non-InWorkingDirectory functions into the header as inline

* Update toolsrc/include/vcpkg/base/system.process.h

Co-authored-by: Billy O'Neal <bion@microsoft.com>

* fix CmdLineBuilder name

* moar bugfixin

* fix native() location

Co-authored-by: Billy O'Neal <bion@microsoft.com>
2021-01-12 09:26:42 -08:00
Billy O'Neal
a8fa84e4d8
[vcpkg] Fix unrecognized identifier errors in prbuild and cibuild. (#15354) 2021-01-10 14:31:30 -08:00
nicole mazzuca
36cd510119
[vcpkg] Fix build for mingw (#15504)
* fix build

* stop the templateness

none of the major three implementations have string::const_iterator = char const*
2021-01-08 10:46:54 -08:00
Victor Romero
2a42024b53
[vcpkg] Add commands to maintain and verify versions db integrity (#14999)
* [vcpkg] Add x-ci-verify-versions command

* Code cleanup

* Remove port version splitting from x-history

* Fix wrong message on success

* Parallelize versions file generator

* Use cpu_count()/2 to avoid crashes

* Check db SHA against local SHA

* Check baseline version with x-ci-verify-versions and make baseline generator much faster

* Implement x-add-version to update version db files

* Better checks for x-add-info and make x-ci-verify-versions silent on success

* Use find() instead of [] on maps

* Create version file if does not exist

* Allow redirection of ports/ and port_versions/

* add test ports

* WIP end-to-end tests

* Change pats in e2e tests

* Fix e2e args

* e2e once more

* Pass ersions feature flag to e2e

* Exit with code 1 if there are errors

* Files to test for failure cases

* Update test files

* Add test for x-add-version

* fix redirected ports in last test

* Add CI check (use dummy data)

* Add feature-flags=versions

* Ignore subdirectories inside ports

* Add --verify-git-trees switch

* [vcpkg] Fix build breaks

* [x-ci-verify-versions] PR comments

* [x-add-version] PR comments

* Fix merge conflicts

* Modify tests and pipeline

* Baselines should only have version-string

* Refactor x-add-version

* [vcpkg] Fix help message

* [vcpkg] Fix minor warnings

* `x-add-version --all` doesn't stop on first failure and reduced default verbosity

* [vcpkg] Fix default-baseline

* Load file instead of using paths provider

* Format

* Remove ci test

* Add fish port for testing

* Update version files

* Update fish port to cause SHA discrepancy

* Test for discrepancy between local SHA and declared SHA

* Missing = operator

* Check for error message since x-add-version exits with code 0

* Make x-add-version fail with non-zero exit code if not run with --all

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Robert Schumacher <ras0219@outlook.com>
2021-01-07 18:04:11 -08:00
ras0219
d717d4119e
[vcpkg] Add support for --overlay-ports to versioning (#15013)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2021-01-07 17:44:45 -08:00
Billy O'Neal
d1ef42c0fd
[vcpkg] Restore embedded git hash behind an option. (#15472) 2021-01-07 12:51:46 -08:00
Victor Romero
6d3d6490eb
[vcpkg] Improve versioning files generators (#15172)
* Remove port version splitting from x-history

* Parallelize versions file generator

* Use cpu_count()/2 to avoid crashes

* Use generatePortVersionsDb.py output to generate baseline

* Update scripts/generateBaseline.py

Co-authored-by: Adam Johnson <AdamJohnso@gmail.com>

* rename generateBaseline function

* Update toolsrc/src/vcpkg/commands.porthistory.cpp

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>

* Remove unused code

Co-authored-by: Adam Johnson <AdamJohnso@gmail.com>
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
2021-01-05 14:36:46 -08:00
Robert Schumacher
6772fdd145
[vcpkg] Teach vcpkg install --no-build-missing (#15139)
* [vcpkg] Teach `vcpkg install` `--no-build-missing`

This switch causes failure to restore from cache to abort the build instead of performing a just-in-time build.

This is useful in complex CI systems where the build was expected to have been performed previously, such as via another pipeline.

* [vcpkg] Rename flag to require binary caching
2020-12-30 12:12:17 -08:00
Billy O'Neal
24290fb002
[vcpkg] Fix pwsh version detection for old versions to download a fresh copy. (#15355) 2020-12-28 19:35:21 -08:00
Billy O'Neal
229f537c94
[opentracing] Update VMs 2020-12 (#15151)
* Add meson from https://github.com/microsoft/vcpkg/pull/12860/

* Add autoconf-archive from https://github.com/microsoft/vcpkg/pull/13081/

* Add kf5windowsystem libs from https://github.com/microsoft/vcpkg/pull/13467/

* Open the FTP and SFTP ports from https://github.com/microsoft/vcpkg/pull/14412/

* Add libxcb-util0-dev from https://github.com/microsoft/vcpkg/pull/14678/

* Add libasound2-dev from https://github.com/microsoft/vcpkg/pull/14774

* Remove no longer necessary apt-mark calls.

* Update nasm on Linux.

* Fix longstanding bug where Storage was publicly accessible and change to generate SAS token rather than File Share

* Delete no longer necessary azure storage firewall rules.

* Install the newer Windows SDK with the VS installer instead of manually.

* Install the VS2015 and VS2017 compilers.

* Update Powershell-Core to 7.1.0.

* Update source of WDK.

* Update pools.

* [opentracing] Repair arm64-windows failures caused by mojibake in `expected.hpp` and errors in opentracing-cpp's lint for arm64 where it thinks exceptions are disabled when they are enabled.

Fixes:
C:\Dev\vcpkg\buildtrees\opentracing\src\b67575dab0-0250653c81.clean\3rd_party\include\opentracing/expected/expected.hpp(1): warning C4828: The file contains a character starting at offset 0x4a77 that is illegal in the current source character set (codepage 65001).

Fixes:
D:\buildtrees\opentracing\src\b67575dab0-0250653c81.clean\include\opentracing/tracer.h:223:5: error: cannot use 'try' with exceptions disabled [clang-diagnostic-error]
    try {
    ^

* [mmloader] Patch out overrides of CMAKE_C_FLAGS and CMAKE_CXX_FLAGS that inserted /WX.

Note that this port sets /GS-, possibly because it may be for authoring shellcode.

* Bump storage API version to 2020-04-08.
2020-12-22 14:52:58 -08:00
nicole mazzuca
c898283a41
[vcpkg registries] support versions (#15114)
* [vcpkg registries] support versions

This PR merges the Registries changes and the versioning changes, so that one can use both at the same time.

There is one major difference between this PR and the RFC (#13590), which is that instead of version files looking like:

```json
[
  ...
]
```

version files look like:

```
{
  "versions": [
    ...
  ]
}
```

this is to support interop between this PR and existing demos and the like;
fixing this, along with perhaps renaming `port_versions` to `port-versions` should be done after this is merged,
should be a trivial change.
2020-12-21 15:40:21 -08:00
Billy O'Neal
d97eae3338
Print failing upload attempts in !debug. (#15206)
Other changes:
* Changed Strings::replace_all to use more StringView
* Introduced Strings::inplace_replace_all for the common x = replace_all(move(x) pattern and tests
-> Also fixed bug if the search string was empty consuming infinite memory!
* Added many missing {}s in binarycaching.cpp
2020-12-21 09:19:57 -08:00
nanoric
fa8f120071
Fixed internal compiler error when using newer GCC@master. (#15188) 2020-12-18 12:05:16 -08:00
ras0219
9a81392e48
[vcpkg] VCPKG_ENV_PASSTHROUGH_UNTRACKED (#15115)
* [vcpkg] Add VCPKG_ENV_PASSTHROUGH_UNTRACKED

* [vcpkg] CR comments

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-12-17 11:35:08 -08:00
Kevin Lalumiere
a268c5a7f1
[vcpkg] Fix warning (as error) when building vcpgk/toolsrc with clang++ 10 or g++ 9.3 (see #15148) (#15149) 2020-12-17 00:20:34 -08:00
Long Nguyen
7944ed328a
[icu] mingw support + [mp3lame] Fix VCPKG_TARGET_STATIC_LIBRARY_SUFFIX (#14969) 2020-12-15 15:00:41 -08:00
nicole mazzuca
0d76ba45a4
[vcpkg] fix v140. again (#15116) 2020-12-15 14:31:10 -08:00
ras0219
595777db23
[vcpkg] Remove extra indirection in IVersionedPortfileProvider/IBaselineProvider (#15010)
* [vcpkg] Remove extra indirection in IVersionedPortfileProvider/IBaselineProvider

* [vcpkg] Address CR comment

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-12-15 10:28:20 -08:00
ras0219
ef7e1abfb1
[vcpkg] Fix CMAKE_CURRENT_LIST_DIR in load_dep_info_vars() (#15110)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-12-15 10:27:32 -08:00
ras0219
815396fa4e
[vcpkg] Refactor end-to-end tests (#15081)
* [vcpkg] Refactor end-to-end tests

* [vcpkg] Cherry-pick x-builtin-ports-root from #14999

* [vcpkg] Move create test from unit tests to e2e

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-12-15 10:26:00 -08:00
gritukan
2aaa675730
Properly index package actions in log (#15076) 2020-12-14 16:23:56 -08:00
ras0219
54d73a56f8
[vcpkg] Disable survey message (#14954) 2020-12-14 12:02:22 -08:00
Tetsuya Hayashi
43e0f1bce3
Avoid C4819 warning during bootstrap-vcpkg.bat (#15095) 2020-12-14 09:50:58 -08:00
Owen Rudge
7f328aa390
[vcpkg] Don't require native tools on arm64 macOS (#15045) 2020-12-11 17:42:38 -08:00
ras0219
c2329ab26a
[vcpkg] Improve error messages for incomplete Mono (#14948)
* [vcpkg] Improve error messages for incomplete Mono

* [vcpkg] Add mono upgrade notice for Ubuntu 18.04 users

* [vcpkg] Fix always failing to check CMake version due to preferring 'error' constructor in ExpectedS

* [vcpkg] Eagerly display the 'Ubuntu needs new mono' message to avoid users needing to install it twice

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-12-10 20:54:34 -08:00
ras0219
acb6b10e7f
[vcpkg] Fix uploading to Azure DevOps Artifacts (#14952) 2020-12-08 10:46:46 -08:00
Victor Romero
53e6588e9d
[vcpkg] Add SemVer and Date versioning schemes (#14889)
* [vcpkg] Add semver versioning scheme

* Remove unnecessary code

* Fix SemVer comparison and add sorting test

* Add date scheme

* PR comments

* Use a different column for date and semver schemes.

* Use locale agnostic conversion to long

* Add tests for version scheme change

* Validate version strings before parsing

* Format

* Improve error messages

* PR comments

* PR comments pt. 2
2020-12-07 09:10:23 -08:00
ras0219
6dfe1be6fa
[vcpkg] Add --nuget-description option for vcpkg export (#14953) 2020-12-06 15:26:58 -08:00
Francois Rivard
e92fa3a56b
Change Nuget binary cache pre-release info to always start with letters (#14857) 2020-12-04 15:34:04 -08:00
Billy O'Neal
8b0b2671ce
Fix failures when parsing the default options for binary caching not being emitted. (#14945)
* Fix failures when parsing the default options for binary caching not beging emitted.

Resolves #14922.
2020-12-04 14:01:11 -08:00
ras0219
60aa143e59
[vcpkg] Error on '#' in version strings to avoid confusion (#14927)
* [vcpkg] Refactor deserializers to reduce duplicate functionality

* [vcpkg] Error on '#' in version strings to avoid confusion with port-version

* [vcpkg] Improve error message

* [vcpkg] Reorder field output

* [vcpkg] Fix tests

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-12-04 12:57:13 -08:00
nicole mazzuca
ed5d7b9006
[vcpkg] fix compile on vs2015 (#14915)
* [vcpkg] fix compile on vs2015

* format
2020-12-02 12:58:01 -08:00
ras0219
f92bf6ee1e
[vcpkg] Output versions during install plans (#14882)
* [vcpkg] Output versions during install plans

* [vcpkg] Display versions for already-installed packages

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-12-01 13:18:42 -08:00
Phoebe
f8baf48629
[vcpkg] Remove non-existing 'import' command in vcpkg help information (#14791)
* [vcpkg] Remove non-existing 'import' command in vcpkg help information

* Remove 'import' in commands.autocomplete.cpp
2020-12-01 13:11:19 -08:00
ras0219
4fba4b7911
[vcpkg] Expose alpha end-to-end versioning (#14852)
* Check for the 'versions' feature flag while installing a manifest
* Implement two-level fallback for Baselines:
  * First, fall back to current repo's baseline.json
  * Second, fall back to the ports in ports/
* Optimize checking out baseline.json via `git show`
* Detect presence of '$x-default-baseline' in the manifest and use that as the baseline commit (to be replaced by Federation functionality)
* If port_versions/x-/xyz.json is not found, fall back to ports in ports/

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-12-01 12:00:00 -08:00
nicole mazzuca
a1d48dc8ec
[vcpkg] fix feature flags telemetry (#14856)
* [vcpkg] fix feature flags telemetry

* change to robert's suggestion
2020-11-30 15:49:22 -08:00
Alexander Neumann
3fd77452e0
[vcpkg] Add option cmake-args (#12877)
* [vcpkg] Add option cmake-args to pass additional args to the script execution

* apply clang format to install.cpp

* rename command to x-cmake-args

* imply editable if x-cmake-args are not empty.

* don't use bitwise or

* add a definition for CMAKE_SCRIPT_ARG

Co-authored-by: wangli28 <wangli28@beyondsoft.com>
2020-11-30 10:07:51 -08:00
ras0219
896498fdba
[vcpkg] Introduce create_versioned_install_plan() (#14633)
* [vcpkg] Implement constraints in manifests

* [vcpkg] Add SourceControlFile::check_against_feature_flags to prevent accidentally ignoring versioning fields

* [vcpkg] Switch check_against_feature_flags to accept fs::path

* [vcpkg] Implement overrides parsing in manifests

* [vcpkg] Address CR comments

* [vcpkg] Initial implementation of create_versioned_install_plan()

* [vcpkg] Implement port-version minimums

* [vcpkg] Implement relaxation phase

* [vcpkg] Refactor tests to use check_name_and_version

* [vcpkg] Implemented simple relaxed scheme

* [vcpkg] More relaxed scheme tests

* [vcpkg] Mixed scheme testing

* [vcpkg] Support versions and features without defaults

* [vcpkg] Support versions and features without defaults 2

* [vcpkg] Only consider greater of toplevel and baseilne

* [vcpkg] Implement overrides

* [vcpkg] Install defaults

* [vcpkg] Handle defaults of transitive packages

* [vcpkg] Fix warnings for Span of initializer_list

* [vcpkg] Use CMakeVarProvider during versioned install

* [vcpkg] Handle inter-feature dependencies

* [vcpkg] Correctly handle qualified Dependencies at toplevel

* [vcpkg] Address CR comments

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-11-27 19:05:47 -08:00
Victor Romero
6c9cda1635
[vcpkg] Implement VersionedPortfileProvider and BaselineProvider (#14123)
* WIP: Get versions from database files

* Fix formatting

* Provider inherits ResourceBase

* Correct versions JSON file location

* Fix formatting

* Fix formatting

* Fix include in versions.h

* Fetch port versions using git tree object

* Undo changes to x-history

* Remove unnecesary moves

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Extract Git manipulation code

* [WIP] Review comments

* [WIP] Review comments pt. 2

* [WIP] Review comments / fix formatting

* Generate baseline.json

* Extract deserializers from registries source file

* BaselineProvider initial implementation

* Modify gitignore

* Update .gitignore again

* Use JSON deserializer for versions db

* Lazy load baseline file

* Fetch baseline.json from baseline commit

* More git abstractions

* Clean up code

* Path helpers

* Formatting

* Move data into impl object

* Use implementation object for VersionedPortfileProvider

* Reuse cloned instance for checkouts

* Code cleanup and formatting

* Fix returning dangling reference

* Prepare to remove files in port_versions/

* Remove files in port_versions/

* Update .gitignore

* Some PR review comments

* Use StringView

* More StringView conversions

* More refactoring

* Make some implementation members private

* Functions for parsing baseline and version files

* Hide deserializers implementation

* Check for `versions` feature flag in registries.

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-27 05:44:21 -08:00
肥猫零零七
d611b06c48
[vcpkg] Fix redefinition for OVERLAY_TRIPLETS_ENV (#14744)
* Update vcpkgcmdarguments.cpp

Fix the bug  for master branch, the var of OVERLAY_TRIPLETS_ENV  be defined two times (the lines of 923 and 925 )


[69/83] Building CXX object CMakeFiles/vcpkglib.dir/src/vcpkg/vcpkgcmdarguments.cpp.o
FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/vcpkgcmdarguments.cpp.o
/usr/local/bin/g++-6 -DVCPKG_USE_STD_FILESYSTEM=0 -I../include -O3 -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -include /Users/lizhipeng/develop/project/git_project/opensource/c++/vcpkg/toolsrc/include/pch.h -std=c++1z -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/vcpkgcmdarguments.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/vcpkgcmdarguments.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/vcpkgcmdarguments.cpp.o -c ../src/vcpkg/vcpkgcmdarguments.cpp
../src/vcpkg/vcpkgcmdarguments.cpp:925:48: error: redefinition of 'constexpr const vcpkg::StringLiteral vcpkg::VcpkgCmdArguments::OVERLAY_TRIPLETS_ENV'
     constexpr StringLiteral VcpkgCmdArguments::OVERLAY_TRIPLETS_ENV;
                                                ^~~~~~~~~~~~~~~~~~~~
In file included from ../src/vcpkg/vcpkgcmdarguments.cpp:9:0:
../include/vcpkg/vcpkgcmdarguments.h:145:40: note: 'constexpr const vcpkg::StringLiteral vcpkg::VcpkgCmdArguments::OVERLAY_TRIPLETS_ENV' previously defined here
         constexpr static StringLiteral OVERLAY_TRIPLETS_ENV = "VCPKG_OVERLAY_TRIPLETS";

* Update toolsrc/src/vcpkg/vcpkgcmdarguments.cpp

Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
2020-11-25 12:09:32 -08:00
mapozyan
d22d77e3c5
[vcpkg] Increment number of retries and timeout of fs.rename() (#13931)
* Fix retry logic for fs.rename()

* Increase timeout for fs.rename(), add diagnostic message

* Make formatting happy

* Exponential backoff for archive file rename

* Remove random local file from last commit

* Remove random local file from last commit

* Update toolsrc/src/vcpkg/archives.cpp

Co-authored-by: Mikayel Apozyan <Mikayel.Apozyan@avira.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-25 11:28:04 -08:00
Alexander Neumann
5ae8ef54f4
[vcpkg] Output the filepath on hash error. (#14674)
* update hash error message to include the path

* Update toolsrc/include/vcpkg/base/hash.h

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-23 16:17:36 -08:00
Joakim L. Gilje
d9633d939c
[vcpkg] initial openbsd (community) support (#14549)
* initial openbsd support in vcpkg

* after clang-format

* hardcoded in the preferred compiler for openbsd in bootstrap scipt (thanks @tormfinn)

* Fetch a patched pkg-config because openbsd pkg-config lacks {fcfiledir}

* fixes from review feedback

* corrected hash for pkg-config.openbsd

* re-added missing endif()

* regenerate docs

* Update scripts/cmake/vcpkg_configure_meson.cmake

Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
2020-11-23 09:43:23 -08:00
nicole mazzuca
e803bf1129
[vcpkg] fix cmake paths in tags (alternative 2) (#14661)
* [vcpkg] fix cmake paths in tags (alternative 2)

* fix compile on VS2019

unnecessary and invalid SFINAE'd constructor
2020-11-19 21:39:08 -08:00
nicole mazzuca
817100c793
[vcpkg] fix vs2015 build (#14659) 2020-11-19 19:17:10 -08:00
ras0219
5c48bee451
[vcpkg] Add experimental x-azblob binary provider (#13626)
* [vcpkg] Add experimental x-azblob binary provider

* [vcpkg] Test azblob storage provider in CI

* [vcpkg] Address some CR comments from #13639

* [vcpkg] Fixup azure-pipelines

* [vcpkg] Fix regression where the downloaded package is purged before decompressing

* [vcpkg] Further refactor vcpkg::Downloads

* [vcpkg] Enable OSX for x-azblob testing

* [vcpkg] Reduce diff against master

* [vcpkg] Extract Downloads::details::split_uri_view

* [vcpkg] Address PR comments

* [vcpkg] Add testing and metrics for x-azblob

* [vcpkg] Add docs for x-azblob

This includes a note that it is currently experimental

* [vcpkg] Address CR comments

* [vcpkg] Revert pipeline changes except OSX to minimize disruption

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-11-18 12:21:23 -08:00