This is verified to work "correctly" on Linux in that it gets the
`perror` for the last set value of errno in native code.
No extra mapping or handling needs to be done on our part.
Keeping the strerror_r implementation in the history for the valuable
implementation of config.h.in in the library.
This change is made at the request of the PowerShell committee,
as the use of "stable" implied more stability than available with alpha
releases. This also changes the images from existing under one repo to
two: powershell/powershell and powershell/powershell-nightly.
The documentation and script have been updated.
Again, .NET Core expects users to forcibly link the third party OpenSSL
libraries into system directories, which the Homebrew team advises
strongly against (and attempts to prevent). This also affects the
System.Net.Http library, and results in runtime errors during SSL
certificate validation. So instead, we patch what we can, when we can.
Use `dpkg -i` followed by `apt-get install -f`. Alternatives considered
included using `apt install`, which does not work, and copying the
PowerShell package to `/var/cache/apt/archives` which is just as messy
as this. At least this follows the same steps as `download.sh`.
Now that I finally have a decent list of dependencies (though it may
still be too many), I have expanded the dependencies of the package so
that users get better error messages.
I've removed ca-certificates as that's not *necessarily* required (but
needed on Docker to download over HTTPS). This may be true of other
packages too.
So that it can be reinstalled separately if desired.
Also removed the set validation as it was now wrong,
and removed the warning about no Invoke-WebRequest on Core PowerShell
(it is ported now).
I don't like the duplicate parameter logic,
especially around -NoSudo.
GitHub's API is throttled to 60 requests per hour per IP address when
for non-authenticated calls, which was causing severe CI flakiness.
While this adds another set of URLs to update for each release, the
alternative was adding an OAuth token and maintaining its ownership.
Moreover, this code is simpler than the previous API parsing.
Since it is required. Note that we do *not* unsafely link the OpenSSL
libraries into the system folders, as we instead patch .NET Core's
libraries to find OpenSSL in the installed location.
I think this logic was originally added with the assumption that any
hostname with a dot in it was an FQDN. I believe this is incorrect. The
hostname is the hostname regardless of included dots, and getting the
FQDN amounts to always querying for the canonical name.
- .NET Core RID suffixes removed
- `el7.centos` suffix added to RPM
- `1ubuntu1.14.04.1` iteration used for DEB packages
`~` cannot be used after `ubuntu1` because GitHub release renames it to
a `.`; additionally, no packages lack the final suffix `.1`. While my
machine is `.5` I could find no packages that went past `.3`, so let's
use this to indicate that it works for `14.04.1` and forward.
We are *not* recreating the alpha.9 packages, but will we rename them
accordingly. This means that the filenames will be "correct" but the
meta-data will be out-of-date.
Moved Unix package code into New-UnixPackage, switching on $Types to
call the appropriate function given the list of types.
Also fixed bug with chmod on a symlink; it was unnecessary.
These are not currently implemented and so should not show up as
available.
The *-Computer cmdlets are already not compiled for Unix (and so not
available), so let's not declare them in the manifest.
The Get-ComputerInfo cmdlet does not work on Unix and so should not be
made available.
Test-Connection depends on an unavailable WMI provider.
Get/Set-TimeZone are not yet ported.
Start-PSPester must ensure that the environment variable `PSMODULEPATH`
is not set before starting the new PowerShell process.
If it is set, then the tests are not guaranteed to be correct,
as they will be operating with the host process's `PSMODULEPATH`,
thus ignoring their own modules.
I also refactored the Start-PSPester command setup code.
If the attempt to get the name fails, throwing an exception results in
PowerShell crashing. Instead, we should simply return empty data.
"unknown" is specifically not returned because it would be ambiguous; it
is not impossible to have an actual user or domain named "unknown".