Advertisement
Guest User

AUR Powershell PKGBUILD

a guest
Nov 15th, 2021
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. # Maintainer: Rikarnto Bariampa <richard1996ba@gmail.com>
  2. # Maintainer: Kyle Sferrazza <kyle.sferrazza@gmail.com>
  3. # Contributor: Max Liebkies <mail@maxliebkies.de>
  4.  
  5. pkgname=powershell
  6. _binaryname=pwsh
  7. _pkgver=7.2.0
  8. _pkgnum=${_pkgver:0:1}
  9. pkgver=${_pkgver/-/.}
  10. pkgrel=1
  11. pkgdesc='A cross-platform automation and configuration tool/framework (latest release)'
  12. arch=('x86_64')
  13. url='https://github.com/PowerShell/PowerShell'
  14. license=('MIT')
  15. makedepends=('git' 'cmake' 'dotnet-sdk>=5.0.9')
  16. depends=('krb5' 'gcc-libs' 'glibc' 'lttng-ust' 'zlib' 'openssl-1.0' 'icu')
  17. source=($pkgname::"git+https://github.com/PowerShell/PowerShell.git#tag=v$_pkgver"
  18. 'powershell-native::git+https://github.com/PowerShell/PowerShell-Native.git'
  19. 'Microsoft.PowerShell.SDK.csproj.TypeCatalog.targets')
  20. sha256sums=('SKIP'
  21. 'SKIP'
  22. 'SKIP')
  23. install=powershell.install
  24. options=(staticlibs !strip)
  25.  
  26. prepare() {
  27. cd "$srcdir/powershell-native"
  28. git submodule init
  29. git submodule update
  30. rm "$srcdir/powershell/global.json"
  31. }
  32.  
  33. build() {
  34. cd $pkgname
  35. export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
  36. export DOTNET_CLI_TELEMETRY_OPTOUT=true
  37.  
  38. ## Restore
  39. dotnet restore src/powershell-unix
  40. dotnet restore src/ResGen
  41. dotnet restore src/TypeCatalogGen
  42.  
  43. ## Setup the build target to gather dependency information
  44. cp "$srcdir/Microsoft.PowerShell.SDK.csproj.TypeCatalog.targets" "src/Microsoft.PowerShell.SDK/obj/Microsoft.PowerShell.SDK.csproj.TypeCatalog.targets"
  45. dotnet msbuild src/Microsoft.PowerShell.SDK/Microsoft.PowerShell.SDK.csproj /t:_GetDependencies "/property:DesignTimeBuild=true;_DependencyFile=$(pwd)/src/TypeCatalogGen/powershell.inc" /nologo
  46.  
  47. ## Generate 'powershell.version'
  48. git --git-dir="$(pwd)/.git" describe --dirty --abbrev=60 > "$(pwd)/powershell.version"
  49.  
  50. ## create the telemetry flag file
  51. touch "$(pwd)/DELETE_ME_TO_DISABLE_CONSOLEHOST_TELEMETRY"
  52.  
  53. ## Generate resource binding C# files
  54. pushd src/ResGen
  55. dotnet run
  56. popd
  57.  
  58. ## Generate 'CorePsTypeCatalog.cs'
  59. pushd src/TypeCatalogGen
  60. dotnet run ../System.Management.Automation/CoreCLR/CorePsTypeCatalog.cs powershell.inc
  61. popd
  62.  
  63. ## Build native component
  64. pushd $srcdir/powershell-native/src/libpsl-native
  65. cmake -DCMAKE_BUILD_TYPE=Debug .
  66. make -j
  67. popd
  68.  
  69. ## Build powershell core
  70. dotnet publish --configuration Linux "src/powershell-unix/" --output bin --runtime "linux-x64"
  71. }
  72.  
  73. check() {
  74. cd "$srcdir/powershell-native/src/libpsl-native"
  75. make test
  76.  
  77. cd "$srcdir/powershell/test/xUnit"
  78. dotnet test
  79. }
  80.  
  81. package() {
  82. mkdir -pv "$pkgdir/opt/microsoft/$pkgname/$_pkgnum"
  83. cd "$srcdir/$pkgname/src/powershell-unix/bin/Linux/net6.0/linux-x64/"
  84.  
  85. cp -ar ./ "$pkgdir/opt/microsoft/$pkgname/$_pkgnum/"
  86.  
  87. mkdir -p "$pkgdir/usr/share/licenses/$pkgname"
  88. cp LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  89. mkdir -p "$pkgdir/usr/bin"
  90. ln -s "/opt/microsoft/$pkgname/$_pkgnum/$_binaryname" "$pkgdir/usr/bin/$_binaryname"
  91. }
  92.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement