Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

powershell: New app #1391

Closed
wants to merge 1 commit into from
Closed

Conversation

Kreyren
Copy link
Contributor

@Kreyren Kreyren commented Oct 20, 2019

Apparently required for VS-style installers of some games (Magic: The
Gathering arena)

Signed-off-by: Jacob Hrbek

Apparently required for VS-style installers of some games (Magic: The 
Gathering arena)

Signed-off-by: Jacob Hrbek
@Kreyren Kreyren mentioned this pull request Oct 20, 2019
publisher="Microsoft" \
year="2006" \
media="download" \
file1="ProtectionId.685.December.2016.rar" \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Draft merge request -> Not expected to be reviewed untill finished.

Using draft so that i could get feedback for compatibility which makes the whole process easier.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah i think that this is a feedback? sorry will fix the metadata last since i don't know what to fill in them untill load_powershell is working

year="2006" \
media="download" \
file1="ProtectionId.685.December.2016.rar" \
installed_file1="$W_SYSTEM32_DLLS_WIN/protection_id.exe"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Draft merge request -> Not expected to be reviewed untill finished.

Using draft so that i could get feedback for compatibility which makes the whole process easier.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah i think that this is a feedback? sorry will fix the metadata last since i don't know what to fill in them untill load_powershell is working

w_call dotnet462

# Download 64-bit WMF (Windows Management Framework)
w_download "http://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/Win7AndW2K8R2-KB3191566-x64.zip"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should only occur for 64-bit prefixes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like making WMF verb for 32-bit and 64-bit ?

# Unzip
## Duplicate files, using directories
[ ! -d "$W_CACHE/$W_PACKAGE/WMF_32" ] && w_try mkdir "$W_CACHE/$W_PACKAGE/WMF_32"
[ ! -d "$W_CACHE/$W_PACKAGE/WMF_64" ] && w_try mkdir "$W_CACHE/$W_PACKAGE/WMF_64"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

w_try mkdir -p

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i don't like using -p to avoid making unexpected directories and $W_CACHE/$W_PACKAGE is created on w_download()

Or what is the reasoning?


w_try "$WINE" start wusa.exe "$W_CACHE/$W_PACKAGE/WMF_32/Win7-KB3191566-x86.msu"

w_try "$WINE64" start wusa.exe "$W_CACHE/$W_PACKAGE/WMF_64/Win7AndW2K8R2-KB3191566-x64.msu"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

64 only

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

true, will adapt.

w_download https://github.com/PowerShell/PowerShell/releases/download/v6.2.3/PowerShell-6.2.3-win-x86.msi

# Doesn't work
w_download https://github.com/PowerShell/PowerShell/releases/download/v6.2.3/PowerShell-6.2.3-win-x64.msi
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If these don't work, then why are you downloading/running them?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because these are the official files from upstream afaik. Seems that wusa.exe in wine is missing implementation to install powershell..

Probably workaround needed and i'm currently investigating.

@Kreyren
Copy link
Contributor Author

Kreyren commented Oct 21, 2019

RESERVED


INVESTIGATION

Powershell has dependency on WMF where we can extract is using cabextract assuming that wine-staging's wusa is not sufficient for the installation (returns 0, winebug needed)

/home/kreyren/.cache/winetricks/powershell/WMF_64/Win7AndW2K8R2-KB3191566-x64.msu: WARNING; possible 15712 extra bytes at end of file.
Extracting cabinet: /home/kreyren/.cache/winetricks/powershell/WMF_64/Win7AndW2K8R2-KB3191566-x64.msu
  extracting /home/kreyren/testing//WSUSSCAN.cab
  extracting /home/kreyren/testing//Windows6.1-3191566-x64-pkgProperties.txt
  extracting /home/kreyren/testing//PkgInstallOrder.txt
  extracting /home/kreyren/testing//Windows6.1-3191566-x64.xml
  extracting /home/kreyren/testing//Windows6.1-KB2809215-x64.cab
  extracting /home/kreyren/testing//Windows6.1-KB2872035-x64.cab
  extracting /home/kreyren/testing//Windows6.1-KB2872047-x64.cab
  extracting /home/kreyren/testing//Windows6.1-KB3033929-x64.cab
  extracting /home/kreyren/testing//Windows6.1-KB3191566-x64.cab

All done, no errors.

kreyren@dreamon:~/testing$ ls -la
total 67200
drwxr-sr-x   2 kreyren kreyren      315 Oct 21 18:41 .
drwxrwsr-x 104 kreyren kreyren    12288 Oct 21 18:39 ..
-rw-r--r--   1 kreyren kreyren      179 Jan 13  2017 PkgInstallOrder.txt
-rw-r--r--   1 kreyren kreyren      394 Jan 13  2017 Windows6.1-3191566-x64-pkgProperties.txt
-rw-r--r--   1 kreyren kreyren     1691 Jan 13  2017 Windows6.1-3191566-x64.xml
-rw-r--r--   1 kreyren kreyren   234189 Feb 15  2013 Windows6.1-KB2809215-x64.cab
-rw-r--r--   1 kreyren kreyren   120460 Jul 18  2013 Windows6.1-KB2872035-x64.cab
-rw-r--r--   1 kreyren kreyren   118436 Jul 18  2013 Windows6.1-KB2872047-x64.cab
-rw-r--r--   1 kreyren kreyren 45796115 Feb  3  2015 Windows6.1-KB3033929-x64.cab
-rw-r--r--   1 kreyren kreyren 22131780 Dec 10  2016 Windows6.1-KB3191566-x64.cab
-rw-r--r--   1 kreyren kreyren   372476 Jan 13  2017 WSUSSCAN.cab
kreyren@dreamon:~/testing$ cat PkgInstallOrder.txt 
[MSUInstallOrder]
0=Windows6.1-KB2809215-x64.cab
1=Windows6.1-KB2872035-x64.cab
2=Windows6.1-KB2872047-x64.cab
3=Windows6.1-KB3033929-x64.cab
4=Windows6.1-KB3191566-x64.cab
kreyren@dreamon:~/testing$ mkdir 0 1 2 3 4
kreyren@dreamon:~/testing$ cabextract --directory 0/ Windows6.1-KB2809215-x64.cab 
Windows6.1-KB2809215-x64.cab: WARNING; possible 15416 extra bytes at end of file.
Extracting cabinet: Windows6.1-KB2809215-x64.cab
  extracting 0//_manifest_.cix.xml
  extracting 0//wow64_microsoft-windows-eventcollector_31bf3856ad364e35_6.1.7601.22252_none_63e490cfd8f343aa.manifest
  extracting 0//wow64_microsoft-windows-eventcollector_31bf3856ad364e35_6.1.7601.18079_none_634c544cbfdf8ffc.manifest
  extracting 0//0
  extracting 0//1
  extracting 0//2
  extracting 0//3
  extracting 0//4
  extracting 0//5
  extracting 0//6
  extracting 0//7
  extracting 0//8
  extracting 0//9
  extracting 0//update.mum
  extracting 0//update.cat
  extracting 0//update-bf.mum
  extracting 0//update-bf.cat
  extracting 0//package_for_kb2809215_sp1~31bf3856ad364e35~amd64~~6.1.1.1.mum
  extracting 0//package_for_kb2809215_sp1~31bf3856ad364e35~amd64~~6.1.1.1.cat
  extracting 0//package_for_kb2809215_sp1_bf~31bf3856ad364e35~amd64~~6.1.1.1.mum
  extracting 0//package_for_kb2809215_sp1_bf~31bf3856ad364e35~amd64~~6.1.1.1.cat
  extracting 0//package_3_for_kb2809215~31bf3856ad364e35~amd64~~6.1.1.1.mum
  extracting 0//package_3_for_kb2809215~31bf3856ad364e35~amd64~~6.1.1.1.cat
  extracting 0//package_3_for_kb2809215_bf~31bf3856ad364e35~amd64~~6.1.1.1.mum
  extracting 0//package_3_for_kb2809215_bf~31bf3856ad364e35~amd64~~6.1.1.1.cat
  extracting 0//package_2_for_kb2809215~31bf3856ad364e35~amd64~~6.1.1.1.mum
  extracting 0//package_2_for_kb2809215~31bf3856ad364e35~amd64~~6.1.1.1.cat
  extracting 0//package_2_for_kb2809215_bf~31bf3856ad364e35~amd64~~6.1.1.1.mum
  extracting 0//package_2_for_kb2809215_bf~31bf3856ad364e35~amd64~~6.1.1.1.cat
  extracting 0//package_1_for_kb2809215~31bf3856ad364e35~amd64~~6.1.1.1.mum
  extracting 0//package_1_for_kb2809215~31bf3856ad364e35~amd64~~6.1.1.1.cat
  extracting 0//package_1_for_kb2809215_bf~31bf3856ad364e35~amd64~~6.1.1.1.mum
  extracting 0//package_1_for_kb2809215_bf~31bf3856ad364e35~amd64~~6.1.1.1.cat
  extracting 0//amd64_microsoft-windows-eventcollector_31bf3856ad364e35_6.1.7601.22252_none_598fe67da49281af.manifest
  extracting 0//amd64_microsoft-windows-eventcollector_31bf3856ad364e35_6.1.7601.18079_none_58f7a9fa8b7ece01.manifest
  extracting 0//amd64_microsoft-windows-e..tcollector-wmf3-qfe_31bf3856ad364e35_6.1.7601.22252_none_78bfc2754585f6de.manifest
  extracting 0//amd64_microsoft-windows-e..tcollector-wmf3-qfe_31bf3856ad364e35_6.1.7601.18079_none_782785f22c724330.manifest
  extracting 0//amd64_6f21d0255db9651290b6baee830f5232_31bf3856ad364e35_6.1.7601.22252_none_8bc125ed3570e7ea.manifest
  extracting 0//amd64_68bd2409daf407bdf286ae5242cee3ec_31bf3856ad364e35_6.1.7601.22252_none_7eddb98dea98d4a1.manifest
  extracting 0//amd64_62e4852e384a7f02a05dd7feb7c3a22e_31bf3856ad364e35_6.1.7601.18079_none_5ec2396b6813e212.manifest
  extracting 0//amd64_56228e2ae1cae6720c2beb58dbe36b5b_31bf3856ad364e35_6.1.7601.18079_none_4e7e88ae1c39ff62.manifest

All done, no errors.
kreyren@dreamon:~/testing$ cabextract --directory 1/ Windows6.1-KB2872035-x64.cab
Windows6.1-KB2872035-x64.cab: WARNING; possible 15544 extra bytes at end of file.
Extracting cabinet: Windows6.1-KB2872035-x64.cab
  extracting 1//_manifest_.cix.xml
  extracting 1//0
  extracting 1//1
  extracting 1//2
  extracting 1//amd64_microsoft-windows-powershell_31bf3856ad364e35_6.1.7601.22396_none_5b8bb9d8d6b7b37c.manifest
  extracting 1//3
  extracting 1//4
  extracting 1//wow64_microsoft-windows-powershell_31bf3856ad364e35_6.1.7601.22396_none_65e0642b0b187577.manifest
  extracting 1//amd64_microsoft-windows-powershell_31bf3856ad364e35_6.1.7601.18216_none_5b589c6dbd59342a.manifest
  extracting 1//wow64_microsoft-windows-powershell_31bf3856ad364e35_6.1.7601.18216_none_65ad46bff1b9f625.manifest
  extracting 1//package_for_kb2872035_sp1~31bf3856ad364e35~amd64~~6.1.1.0.mum
  extracting 1//5
  extracting 1//6
  extracting 1//amd64_c47c61b3ef0bb40709a223cb8597ee40_31bf3856ad364e35_6.1.7601.22396_none_b6f274cbb60f2cac.manifest
  extracting 1//7
  extracting 1//8
  extracting 1//9
  extracting 1//10
  extracting 1//package_for_kb2872035_sp1~31bf3856ad364e35~amd64~~6.1.1.0.cat
  extracting 1//amd64_6a6f9f5f1f92b9bbb3412508912ccb88_31bf3856ad364e35_6.1.7601.18216_none_58b9cc75fc3a6ac5.manifest
  extracting 1//update.mum
  extracting 1//package_for_kb2872035_sp1_bf~31bf3856ad364e35~amd64~~6.1.1.0.mum
  extracting 1//11
  extracting 1//12
  extracting 1//amd64_5cbf10e185f5d9225cf7e237682e7fd0_31bf3856ad364e35_6.1.7601.18216_none_1f86235fa20703a8.manifest
  extracting 1//update.cat
  extracting 1//package_for_kb2872035_sp1_bf~31bf3856ad364e35~amd64~~6.1.1.0.cat
  extracting 1//13
  extracting 1//amd64_38042973acc3779b0f5865190e58209d_31bf3856ad364e35_6.1.7601.18216_none_21f55af4d16cc8b6.manifest
  extracting 1//update-bf.mum
  extracting 1//package_3_for_kb2872035~31bf3856ad364e35~amd64~~6.1.1.0.mum
  extracting 1//amd64_3523a6823bbb005a9e27370470e37a4b_31bf3856ad364e35_6.1.7601.22396_none_e54f0cee17f994b1.manifest
  extracting 1//update-bf.cat
  extracting 1//package_3_for_kb2872035~31bf3856ad364e35~amd64~~6.1.1.0.cat
  extracting 1//amd64_253c1c144a344ed3f53a5b6110bb0aa7_31bf3856ad364e35_6.1.7601.22396_none_4fc28cb70eacc94f.manifest
  extracting 1//package_3_for_kb2872035_bf~31bf3856ad364e35~amd64~~6.1.1.0.mum
  extracting 1//14
  extracting 1//15
  extracting 1//16
  extracting 1//package_3_for_kb2872035_bf~31bf3856ad364e35~amd64~~6.1.1.0.cat
  extracting 1//package_2_for_kb2872035~31bf3856ad364e35~amd64~~6.1.1.0.mum
  extracting 1//package_2_for_kb2872035~31bf3856ad364e35~amd64~~6.1.1.0.cat
  extracting 1//package_2_for_kb2872035_bf~31bf3856ad364e35~amd64~~6.1.1.0.mum
  extracting 1//package_2_for_kb2872035_bf~31bf3856ad364e35~amd64~~6.1.1.0.cat
  extracting 1//package_1_for_kb2872035~31bf3856ad364e35~amd64~~6.1.1.0.mum
  extracting 1//package_1_for_kb2872035~31bf3856ad364e35~amd64~~6.1.1.0.cat
  extracting 1//package_1_for_kb2872035_bf~31bf3856ad364e35~amd64~~6.1.1.0.mum
  extracting 1//package_1_for_kb2872035_bf~31bf3856ad364e35~amd64~~6.1.1.0.cat

All done, no errors.

Conclusion: Seems that cabextract is able to extract .msu files where each file has PkgInstallOrder.txt file (seems case sensitive) with order alike:

0=Windows6.1-KB2809215-x64.cab
1=Windows6.1-KB2872035-x64.cab
2=Windows6.1-KB2872047-x64.cab
3=Windows6.1-KB3033929-x64.cab
4=Windows6.1-KB3191566-x64.cab
...

Assuming that this is the order in which these cabinet archives are expected to be extracted on the system where each cabinet file has .cat, .mum and .manifest files with metadata? and 'data' files named 0..999 which seems to be alternative to .rar compressed on multiple parts.

@Kreyren
Copy link
Contributor Author

Kreyren commented Oct 28, 2019

@Kreyren
Copy link
Contributor Author

Kreyren commented Nov 8, 2019

Transfered in Kreytricks#21

@Kreyren Kreyren closed this Nov 8, 2019
@theli-ua
Copy link

FWIW I posted my verb for powershell that satisfies Magic Arena installer here: #1440

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants