Commit graph

82 commits

Author SHA1 Message Date
Travis Plunk 172a8a014d
Make sure MSI build works when not preview (#7752)
The variable was set to empty (meaning to delete the variable) in the non-preview case and the build fails.
The fix avoids setting the variable to empty
2018-09-10 14:35:02 -07:00
Aditya Patwardhan abad087fa1 Build and package framework dependent package (#7729)
Add the functionality to build a framework dependent (shared framework) package for PowerShell.

The changes create two packages, one for Windows and other for Linux, due to #if code.
2018-09-10 12:47:32 -07:00
Travis Plunk e2a45f0992
Add tests to report when package references are out of date (#7661)
Add tests to report when package references are out of date
  - Also, update the packaging script to generate updated `files.wxs`
2018-08-31 12:50:51 -07:00
Dan Travison 1abf290f83 Add symbolic links for libssl and libcrypto to Debian 9 builds to make remoting work. (#7609)
On Debian 9, libmi cannot resolve libssl and libcrypto. This change adds symbolic links to packaging and build to the $PSHOME directory to resolve the issue.

The fix was verified interactively connecting to office 365, importing the session, and ensuring Get-MailBox and Get-User succeed.

Fix #7598
2018-08-24 15:20:22 -07:00
Aditya Patwardhan abb8f6bc80 Merged PR 4645: Fix SDK dependencies
Removed old dependencies from SMA and fixed the netcoreapp version.
2018-08-20 23:47:40 +00:00
Greg Zimmerman f0ea0d380f Add preview icon to macOS launcher (#7448) 2018-08-05 11:00:39 -07:00
Aditya Patwardhan ac8ac4f25b Update NuGet packaging code for the new markdown assembly (#7431) 2018-08-02 23:00:54 -07:00
Steve Lee 1244278e7e [package] (#7345)
enable `pwsh-preview` to work on Windows
2018-07-25 13:32:10 -07:00
Aditya Patwardhan ed4a454ac4 Make MUSL NuGet package optional (#7316) 2018-07-20 11:08:25 -07:00
Greg Zimmerman d9c570a90d Fix macOS launcher app to allow release and preview versions. (#7306)
Fixes #7074. This PR allows concurrent versions of the macOS launcher app to exist. The application name will be either PowerShell or PowerShell-preview. It is now dynamically built and removed post fpm to avoid post build conflicts, see #5262 .
2018-07-20 10:53:09 -07:00
Travis Plunk b15709f444 update to latest package references, runtime framework, and SDK (#7272)
* update to latest package references

* update runtime framework

* update sdk

* automatically read NuGet package dependency info from csproj, where version info is fully qualified

* update file.wxs
2018-07-13 09:00:35 +05:00
Steve Lee 167b51c4d6 update build and packaging modules for Alpine (#7149) 2018-06-27 15:30:38 -07:00
Christoph Bergmeister 0487a1be2f Disambiguate icon on Windows for preview builds/installers to use Powershell_av_colors and make daily build use Powershell_avatar instead (#7086)
Closes #6317
Using the preview side-by-side with the RTM version is a pain/confusing due to the icons being the same.
This makes the preview build (i.e. the embedded icon in `pwsh.exe`) and MSI installer package (shortcut icon and context menu) use the [Powershell_av_colors icon](https://raw.githubusercontent.com/PowerShell/PowerShell/master/assets/Powershell_av_colors.ico)
![image](https://user-images.githubusercontent.com/9250262/41491336-6e354936-70f0-11e8-965e-9b5e83be925b.png)

Therefore change the icon of the daily build (which used to use the Powershell_av_colors icon) to [Powershell_avatar](https://raw.githubusercontent.com/PowerShell/PowerShell/master/assets/Powershell_avatar.ico)
![image](https://user-images.githubusercontent.com/9250262/41491346-80f890a0-70f0-11e8-9ab5-bb789454c134.png)
This means that people like me who have a shortcut to pwsh of the daily build pinned to the taskbar, probably need to re-pin it to the taskbar to receive all changes (otherwise one will only get the change in the icon of the window)

Note: The `Test-IsPreview` method had to be moved to the build module, which is OK because the packaging module has a declared dependency on the build module in its manifest.
2018-06-18 15:54:11 -07:00
Travis Plunk 4342922268
make sure all references to the Pkg ID for previews packages is powershell-preview (#7066)
* make sure all references to the Pkg ID for previews are com.microsoft.powershell-preview
fixes #7065
2018-06-14 10:01:09 -07:00
Dongbo Wang 9804ae5f97
Merge the v6.1.0-preview.3 release branch to master (#7060) 2018-06-13 15:59:27 -07:00
Steve Lee 11a98c47fb Update third party notices (#7042)
Based on adding a reference to new assemblies, need to update ThirdPartyNotices.txt
Add ThirdPartyNotices to all packages
2018-06-12 10:58:05 -07:00
Travis Plunk f08a031f88 Merged PR 3079: Resolve Linux SxS conflicts and issues
Fix man page conflict between stable and preview Linux package
  - rename preview man page pwsh-preview
Fix /etc/shell entries not being created correctly for preview packages
2018-06-08 23:31:38 +00:00
Travis Plunk 587ce9df81 fix mac package name 2018-06-06 13:28:34 -07:00
Travis Plunk 1aec38e14f make sure the path comparison is case insensitive. 2018-06-06 13:05:10 -07:00
Travis Plunk cecdd1ef80
make macOS package use a consistent path (#7006)
Address mac portions of PowerShell/PowerShell-RFC#115 (comment)

Make path when stable /usr/local/microsoft/powershell/6
when not stable (preview) /usr/local/microsoft/powershell/6-preview and symlink name pwsh-preview
allow side-by-side install of stable and preview
Also:

fix an issue where the utime work around for mac requires sudo
refactor some code into common functions
2018-06-06 10:28:22 -07:00
Robert Holt f559acfae1 Change packaging to differentiate only between major versions and previews (#6968)
Change the *nix packaging over with the following changes:

Package name (as used by e.g. apt):
Non-preview releases are namedpowershell
Preview releases are named powershell-preview
Installation path:
No longer looks like /opt/microsoft/powershell/6.1.0/ or /opt/microsoft/powershell/6.1.0-preview.1/
Non-previews go to a path like /opt/microsoft/powershell/6/
Previews go to a path like /opt/microsoft/powershell/6-preview/
Path to executable symlink:
Allows SxS with preview
Non-previews linked to /usr/bin/pwsh or /usr/local/bin/pwsh on macOS
Previews linked to /usr/bin/pwsh-preview or /usr/local/bin/pwsh-preview on macOS
Implements PowerShell/PowerShell-RFC#115 (comment)
2018-06-05 12:51:47 -07:00
Frederik Carlier d663b41bd5 Remove dependencies on libcurl, libunwind, matching the .NET Core behavior (#6964) 2018-06-04 13:15:27 -07:00
Steve Lee 5dc7a6cb07 Add Windows Compatibility Pack 2.0.0 to PS Core and adopt the official .NET Core 2.1 (#6958)
To support PowerShell modules built with .NET Windows Compatibility Pack, we decided that it was best to ship the WCP assemblies with PS Core. This also adds many new .NET APIs be default while only adding ~3.5 MB additional disk footprint (to a ~137 MB install currently).
Also update the build to adopt the official .NET Core 2.1.
2018-06-03 22:06:26 -07:00
Klaudia Algiz 4070d51ee1 Add functions into build.psm1 to Save and Restore PSOptions between different sessions. (#6884)
Add functions into build.psm1 to Save and Restore PSOptions between different sessions.
2018-05-17 19:04:20 -07:00
Robert Holt d96a321b49 Change packaging to support Ubuntu 17.10 and 18.04 (#6769)
Ubuntu 17.04 is EOL, so we need to update our packaging for Ubuntu 17.10. This updates the package script and build.psm1 to use 17.10 rather than 17.04.
2018-05-07 12:30:58 -07:00
Ilya 84344cbb32 Update PowerShell to build with .NET Core SDK 2.1.300-rc1-008662 (#6718)
* Build Update
- Change `TargetFramework` to `netcoreapp2.1` and removed unnecessary `RuntimeFrameworkVersion` from `PowerShell.Common.props`
- Update dotnet SDK to 2.1.300-rc1-008662
- Update `TypeGen` target in `Build.psm1` to work with 2.1
- Rename macOS runtime to `osx-x64` as the old build logic expects 10.12 and breaks running on 10.13 system.
- Remove `PackageReference` to `System.Memory` as it's part of dotnetcore 2.1
- Update search for `crossgen` executable to find the matching version

* Test Update
- Update test tools `WebListener` to latest `asp.net core`
- Marked `AuthHeader Redirect` tests as `Pending` due to change in CoreFX
2018-05-02 16:58:39 -07:00
Travis Plunk 77f36498e6
Simplify the paths the MSI uses (#6442)
- Implementation of PowerShell/PowerShell-RFC#115 (If anything changes in the RFC, we will treat it as a bug, and fix it later)
- Update registry and directory paths to use 6 for the version for stable and 6-preview for a preview release
- Add checkbox to set path
- default checkbox to off for preview builds and on for stable builds
2018-04-02 10:47:29 -07:00
Travis Plunk 701b919345
MSI: add function to generate a MSP (#6445)
add a function to generate an MSP
2018-03-26 14:39:48 -07:00
Dongbo Wang b49fb7f1b3
Update 'macos.md' and 'windows.md' with the version number '6.0.2' (#6416) 2018-03-19 11:38:27 -07:00
Aditya Patwardhan 71cb49a99d Build: Remov version forcing code from NuGet package generation (#6390) 2018-03-15 10:12:56 -07:00
Travis Plunk 8ba6f319f3
MSI: update architecture specific filenames (#6379) 2018-03-13 14:02:12 -07:00
Travis Plunk 25ecf8c83c Clean the intermediate artifact 'psoptions.json' from build (#6356) 2018-03-10 09:51:23 -08:00
Travis Plunk 2d58072460 Make sure package verification failure fails the AppVeyor build (#6337) 2018-03-08 15:58:59 -08:00
Dan Travison 0c845b94c7 Rename log and logerror to Write-Log [$message] [-error] (#6333)
Fix #6332
This change renames log and logerror functions to a single Write-Log [$message] [-error] function to avoid conflicting with the log command on MacOS.
2018-03-08 10:47:20 -08:00
Travis Plunk f1c0c2ade5
Clean build during daily build to ensure MSI package is generate correctly (#6334)
Clean build during the daily build to ensure MSI package is generated correctly
- Do another clean build directly before packaging to clean up files that test has added
2018-03-07 19:47:21 -08:00
Travis Plunk 8f4eaf3bbe
make Linux packages use correct version scheme for preview releases (#6318)
Fixes #6315

make Linux packages use correct version scheme for preview releases
- Now uses <Major>.<Minor>.<Patch>~<PreviewName> instead of <Major>.<Minor>.<Patch>-<PreviewName> as the - was interpretted as an iteration of the release not a preview.
2018-03-07 11:45:21 -08:00
Travis Plunk da905f891b
MSI: Make sure that file components are patchable (#6303)
MSI: Make sure that file components are patchable
- avoid changing names and guids of components between builds as this prevents patch generation
- This required submitting the file generated by heat
- add code to make sure the generated file is not out of date
2018-03-06 10:13:26 -08:00
Travis Plunk 7c7ec241a0
MSI: Cause preview builds to install Side by side with release builds (#6301)
MSI: Cause preview builds to install Side by side with release builds
- change the upgrade code if there is a preview part of the version
2018-03-05 10:27:47 -08:00
Travis Plunk 49ec403899
fix MSI creation errors, and capture wixpdb for later patch creation (#6221)
- add `wixpdb` output when creating `MSI` package
- capture `wixpdb` in official build
- clean up anything left behind from previous MSI builds before starting MSI build to prevent using dirty files.
- make sure MSI creation fails if there is an error
- ignore `.wixpdb` files in git
- Add functionality to `Start-NativeExecution` to 
    - only display output if there is an error 
    - log caller information
- WXS validation error fixes
    - Remove unused `ExitDialog` to fix ICE82
    - Add KeyPath to `SetPath` to fix ICE18
    - Use `HKMU` which translates to `HKLM` to runtime to fix various validation errors about creating the shortcut
- Suppress Validation errors
    - suppress ICE61, which is about same version upgrades being allowed
    - suppress ICE57, caused by the shortcut not being installed per user
2018-02-26 15:45:15 -08:00
Aditya Patwardhan a53547ce78 Add scripts to generate unified Nuget package (#6167)
Remove the functions which generated Nuget packages for Windows.
Add function New-UnifiedNugetPackage to generate nuget packages for each assembly with unix and windows runtimes.
Add function New-NuSpec and New-ReferenceAssembly for creating the required items forNew-UnifiedNugetPackage.
Add a sample for cross platform project with conditional compilation for Linux.
Add function Publish-NugetToMyGet to publish nuget packages to powershell.myget.or
2018-02-26 15:35:09 -08:00
Travis Plunk 9a46b3f3c0
Refactor new-msipackage into packaging.psm1 (#6208)
Refactor new-msipackage and related function into packaging.psm1
2018-02-22 13:31:00 -08:00
Steve Lee c1c5344a88 Update copyright and license headers (#6134)
Based on standard practices, we need to have a copyright and license notice at the top of each source file. Removed existing copyrights and updated/added copyright notices for .h, .cpp, .cs, .ps1, and .psm1 files.

Updated module manifests for consistency to have Author = "PowerShell" and Company = "Microsoft Corporation". Removed multiple line breaks.

Separate PR coming to update contribution document for new source files: #6140

Manually reviewed each change.

Fix #6073
2018-02-13 09:23:53 -08:00
Thomas Conté 7dcd4c83d9 Fix build/package/installation scripts for SLES (#5918)
Small changes to the SUSE installation script so that it allows installing on SLES 12+ in addition to openSUSE 42+
2018-01-22 14:58:17 -08:00
Christoph Bergmeister d3a775da9a Packaging: simplify building an installable package for Windows (#5871)
This is the continuation of PR 5499 that had to be abandoned due to a fatal merge conflict and I did not want to risk accidentally reverting recent fixes.

    Remove unnecessary/unused default for productGuid because it always gets a new Guid when being called from Start-PSPackage
    Add defaults for required files but also add extra path validation attribute
    Rename ProductGuid to ProductCode
2018-01-17 15:34:03 -08:00
Dongbo Wang 4dc5512c83
Update packaging and release build scripts to produce zip packages for win-arm/win-arm64 (#5664) 2017-12-11 13:57:02 -08:00
Travis Plunk abb6117b96 Add comment about 'productbuild' used in packaging script (#5654) 2017-12-08 13:47:54 -08:00
Travis Plunk 24298f76f5
Packaging: make mac package require 10.12 or newer (#5649)
Fixes #4290
Make mac package require 10.12 or newer.
Required that the package is installed to a disk with macOS installed.
The Apple example XML had a background image added as well, so I added a background image:
https://user-images.githubusercontent.com/10873629/33738943-014c9d00-db50-11e7-9628-310ce6427438.png
2017-12-08 10:55:34 -08:00
Travis Plunk c367a9def1 Packaging: Try to make New-Unix package more readable (#5625)
* refactor start-pspackage into functions

* [Package] Added instrumentation

* [Package] update change log

* [Package] Fix distribution parameter in get-dependecies

* [Package] fix dependencies

* [Package] fix issues with validate script
2017-12-07 10:48:00 -08:00
Dongbo Wang 233f35f68b Minor refactoring of the release build scripts (#5632)
* Update release build

* Minor refactoring of the build script
2017-12-06 15:51:33 -08:00
Steve Lee db0498da6b remove signed folder in zip during packaging (#5527) 2017-11-27 17:26:51 -08:00