sudo-give-me-coffee / wine32-deploy

A tool to creating AppImages for 32-bit Microsoft Windows® applications
Other
61 stars 2 forks source link

Ideas for recipes similar to pkg2appimage #9

Open probonopd opened 4 years ago

probonopd commented 4 years ago

Maybe this can be reused? https://github.com/PhoenicisOrg/scripts

probonopd commented 4 years ago

Or Crossover CrossTie files like this: https://www.codeweavers.com/bin/c4p/14101

They seem to exist for a lot of Windows applications: https://www.codeweavers.com/compatibility

sudo-give-me-coffee commented 4 years ago

Good! But, reusing, I need to implement all the mechanisms behind them, and it is very complicated, I like the pkg2appimage format and it is relatively easy to implement with the new structure, but to use this approach it will be necessary to write all the recipes, fortunately exist a considerably database of application with a simple language (PoL, see tis example)

sudo-give-me-coffee commented 4 years ago

I'm using the following structure as reference:


app: My App
app_full_name: My_App.x.y.z
icon: icon.png
category: Utility
executable: "C:/Program Files/example/app.exe"
keep_registry: false

flags:
  - flag1
  - flag2

ingredients: 
  download:
    - https://www.example.com/example.exe
    - https://www.example.com/icon.png
    - https://www.example.com/example.zip
    - https://www.example.com/example-portable.7z
preparation:
  winetricks:
    - resource 1
    - resource 2
  extract:
    - example.zip
  install:
    - example.exe
  install-compressed:
    - example-portable.7z "C:/test"
  remove:
    - C:/test/how-to-install.txt
sudo-give-me-coffee commented 4 years ago

At the end of build the script will create a "dist" version of recipe with the list of unneeded files

sudo-give-me-coffee commented 4 years ago

I've added initial support for recipes https://github.com/sudo-give-me-coffee/win32-appimage/commit/97a586bf20eedca55b2c05520e7d7155cb7e038c:

Wine-*-x86_64.AppImage --recipe file.yml
probonopd commented 4 years ago

Looking forward to the first recipe to test this with. Well done, keep it up :+1:

sudo-give-me-coffee commented 4 years ago

I wrote 3 recipes in 5f8fb8003f92b451e3660fb01f1b66f26f57c577

probonopd commented 4 years ago

Do you know why https://github.com/sudo-give-me-coffee/win32-appimage/releases/tag/continuous still says "January"?

probonopd commented 4 years ago

Woo-hoo! It works! It works!!! :+1: Awesome.

(Still running into some minor issues but I guess they will be ironed out quickly.)

probonopd commented 4 years ago

Namely,

/tmp/.mount_Wine-4L6Fsn7/AppRun: line 16: [: too many arguments
(...)
wine: configuration in L"/home/me/VisualG3/prefix" has been updated.
regedit: The file '' was not found.
regedit: The file '' was not found.
regedit: The file '' was not found.
regedit: The file '' was not found.
regedit: The file '' was not found.
regedit: The file '' was not found.
regedit: The file '' was not found.
probonopd commented 4 years ago

It would be nice if it would download the recipe if it is not yet there, kinda like how pkg2appimage does it.

sudo-give-me-coffee commented 4 years ago

Do you know why https://github.com/sudo-give-me-coffee/win32-appimage/releases/tag/continuous still says "January"?

I have no idea why :confused:

/tmp/.mount_Wine-4L6Fsn7/AppRun: line 16: [: too many arguments

Fixed in https://github.com/sudo-give-me-coffee/win32-appimage/commit/fbb73d7e009b7119c807bce007dac1d15c6cc131

wine: configuration in L"/home/me/VisualG3/prefix" has been updated.

This is a normal Wine message

regedit: The file '' was not found.
regedit: The file '' was not found.
regedit: The file '' was not found.
regedit: The file '' was not found.
regedit: The file '' was not found.
regedit: The file '' was not found.
regedit: The file '' was not found

It is not fixable by me, it seems to be a Wine bug, with side by echo's the echos is called only a single time, but regedit is called 7 times, owthever is safe ignore them

sudo-give-me-coffee commented 4 years ago

It would be nice if it would download the recipe if it is not yet there, kinda like how pkg2appimage does it.

I will implement them, but i need 2 things first:

1) Make AppRun less verbose 2) Add support for silent install

Probably tomorrow I will finish them, and will start implement this

sudo-give-me-coffee commented 4 years ago

I'm created a separate recipes repository at https://github.com/sudo-give-me-coffee/wine_recipes

sudo-give-me-coffee commented 4 years ago

@probonopd implemented on https://github.com/sudo-give-me-coffee/win32-appimage/commit/d8047c0bb757ed2af24e5b6418e830c0f42da3f0 thanks for the suggestions

probonopd commented 4 years ago

Thank you @sudo-give-me-coffee. You are doing really amazing work here. It's so exciting to see this happen. Do you hang out on IRC?

probonopd commented 4 years ago

As a "stress test" for your yml format, would you be able to e.g., port over (ideally automatically) something like https://www.codeweavers.com/bin/c4p/14101?

sudo-give-me-coffee commented 4 years ago

Theoretically yes, but in practice no, CrossOver isn't fully compatible with traditional wine. Somethings are different and breaks "traditional" bottles, for example, in automatic conversion, is needed install:

    <app appid="com.codeweavers.c4.15248" timestamp="2017-05-11T14:44:50-05:00">
      <cxversion product="cxoffice">16.2</cxversion>
      <name>Microsoft XML Parser (MSXML) 6.0 SP2</name>
      <name lang="en">Microsoft XML Parser (MSXML) 6.0 SP2</name>
      <appprofile>
        <description>&lt;p&gt;Update for MSXML Core Services 6.0 Service Pack 2 (KB973686). Install this update to prevent applications from sending too many HTTP requests while a well-known Document Type Definition (DTD) is included.&lt;/p&gt;</description>
        <description lang="en">&lt;p&gt;Update for MSXML Core Services 6.0 Service Pack 2 (KB973686). Install this update to prevent applications from sending too many HTTP requests while a well-known Document Type Definition (DTD) is included.&lt;/p&gt;</description>
        <comment>20170509 - Set dll override to native and remove existing Wine dll so it doesn't block MS installer. -Balfs
20170426 - Initial creation. Needs Win2000 bottle to install, set that bottle type override in Install profile. -Balfs</comment>
        <medal rating="4" platform="Linux" version="16.2.0" num="1" last="2017-04-26T11:06:05-05:00">unsilver</medal>
        <medal rating="4" platform="Mac" version="16.2.0" num="1" last="2017-04-26T11:06:00-05:00">unsilver</medal>
        <medal rating="1" platform="Linux" version="19.0.1" num="1" last="2020-03-02T12:08:25-06:00">knownnottowork</medal>
        <category>Non-Applications/Components/Service Packs</category>
        <flag>component</flag>
        <installedkeypattern>{56EA8BC0-3751-4B93-BC9D-6651CC36E5AA}</installedkeypattern>
        <bottletemplate>win2000</bottletemplate>
        <downloadurl>https://download.microsoft.com/download/1/5/8/158F681A-E595-472B-B15E-62B649B1B6FF/msxml6-KB973686-enu-x86.exe</downloadurl>
        <downloadpageurl>https://www.microsoft.com/en-us/download/details.aspx?id=9774</downloadpageurl>
        <downloadglob>msxml6-KB973686-enu-x86.exe</downloadglob>
      </appprofile>
      <installprofile>
        <installerwinver>win2000</installerwinver>
        <prermfakedll>msxml6.dll</prermfakedll>
        <preinstallregistry>
          <key>HKEY_CURRENT_USER\Software\Wine\DllOverrides</key>
          <value>
            <name>msxml6</name>
            <data>native, builtin</data>
          </value>
        </preinstallregistry>
        <skipmenu>true</skipmenu>
      </installprofile>
    </app>

But installing it makes MS Office crashes when loading .*x files if do this. Another things is missing such as C2R32.dll and AppvIsvSubsystems32.dll, they need to be copied from C:/Program Files/Common Files/Microsoft Shared/ClickToRun/ to C:\Program Files\Microsoft Office but isn't present on .tie


These things makes an automated conversion from .tie to .yml (or even read .tie directly) inviable

sudo-give-me-coffee commented 4 years ago

You are doing really amazing work here.

Thanks a lot

Do you hang out on IRC?

Currently no

probonopd commented 4 years ago

Did you know https://github.com/winepak/?

They also have yml files, e.g, https://github.com/winepak/applications/blob/master/com.worldoftanks.Client/com.worldoftanks.Client.yml

Maybe one could collaborate?

probonopd commented 4 years ago

Here is a killer app: https://gist.github.com/probonopd/0fab254aa0b6fc371d8db641822bd530#gistcomment-3190402