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

Allow dependencies to be installed in 32 bits bottle #2861

Closed
wants to merge 5 commits into from

Conversation

Kinsteen
Copy link
Contributor

@Kinsteen Kinsteen commented Apr 25, 2023

Description

This continues the work discussed in #2684.

What changed

Now, we can have the for verb on each action in a dependency manifest, like this:

Name: d3dx9
Description: Microsoft d3dx9 DLLs from DirectX 9 redistributable
Provider: Microsoft
License: Microsoft EULA
License_url: https://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm
Dependencies: []
Steps:
- action: archive_extract
  file_name: d3dx9.tar.xz
  url: https://proxy.usebottles.com/redistributable/dependencies/d3dx9.tar.xz
  file_checksum: 0e444b86310e732f50a971466f3f06a3
  file_size: 19651992
  dest: temp/d3dx9/
  
- action: copy_dll
  url: temp/d3dx9.tar/d3dx9/win32/
  file_name: d3dx9_*.dll
  dest: win32
  
- action: copy_dll
  url: temp/d3dx9.tar/d3dx9/win64/
  file_name: d3dx9_*.dll
  dest: win64
  for:
    - win64

...

This clause takes a list, with ["win32, win64"], as valid values. This means that the action will only be executed on a Bottle with the architecture specified. If the for verb is not specified, then the action will take place in both architecture.

If a dependency is not supported on one architecture, it should be written in the index.yml, like so:

...

msxml3:
  Description: Microsoft Core XML Services (MSXML) 3.0
  Category: Essentials
msxml4:
  Description: Microsoft Core XML Services (MSXML) 4.0
  Category: Essentials
msxml6:
  Description: Microsoft Core XML Services (MSXML) 6.0
  Category: Essentials
  Arch: win64
mediafoundation:
  Description: Microsoft Media Foundation
  Category: Essentials
jet40:
  Description: MS Jet 4.0 Service Pack 8
  Category: Essentials

...

This way, when we open the dependency view, we can show a message that the dependency is not compatible with our Bottle, like this:

image

Another PR is opened on the dependencies repo, here.

Fixes #2166 and a lot more.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update -> docs should be updated about how to add dependencies

How Has This Been Tested?

Please describe the tests that you ran to verify your changes.
Provide instructions so we can reproduce.

  • locally

@Kinsteen Kinsteen changed the title 32bits dependencies Allow dependencies to be installed in 32 bits bottle Apr 25, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Apr 25, 2023

Pylint result on modfied files:
************* Module bottles.frontend.widgets.dependency
bottles/frontend/widgets/dependency.py:22:0: E0611: No name 'Adw' in module 'gi.repository' (no-name-in-module)
bottles/frontend/widgets/dependency.py:59:12: W0105: String statement has no effect (pointless-string-statement)
bottles/frontend/widgets/dependency.py:90:12: W0105: String statement has no effect (pointless-string-statement)
bottles/frontend/widgets/dependency.py:99:12: W0105: String statement has no effect (pointless-string-statement)
bottles/frontend/widgets/dependency.py:166:49: W0613: Unused argument 'error' (unused-argument)
************* Module bottles.frontend.views.bottle_dependencies
bottles/frontend/views/bottle_dependencies.py:20:0: E0611: No name 'Adw' in module 'gi.repository' (no-name-in-module)
bottles/frontend/views/bottle_dependencies.py:86:12: C0103: Variable name "r" doesn't conform to snake_case naming style (invalid-name)
************* Module bottles.backend.managers.dependency
bottles/backend/managers/dependency.py:84:12: W0105: String statement has no effect (pointless-string-statement)
bottles/backend/managers/dependency.py:102:12: W0105: String statement has no effect (pointless-string-statement)
bottles/backend/managers/dependency.py:113:12: W0105: String statement has no effect (pointless-string-statement)
bottles/backend/managers/dependency.py:126:12: W0105: String statement has no effect (pointless-string-statement)
bottles/backend/managers/dependency.py:145:12: W0105: String statement has no effect (pointless-string-statement)
bottles/backend/managers/dependency.py:162:12: W0105: String statement has no effect (pointless-string-statement)
bottles/backend/managers/dependency.py:434:12: C0103: Variable name "d" doesn't conform to snake_case naming style (invalid-name)
bottles/backend/managers/dependency.py:500:15: W0718: Catching too general exception Exception (broad-exception-caught)
bottles/backend/managers/dependency.py:500:8: C0103: Variable name "e" doesn't conform to snake_case naming style (invalid-name)
bottles/backend/managers/dependency.py:577:15: W0718: Catching too general exception Exception (broad-exception-caught)
bottles/backend/managers/dependency.py:551:20: C0103: Variable name "fg" doesn't conform to snake_case naming style (invalid-name)
bottles/backend/managers/dependency.py:577:8: C0103: Variable name "e" doesn't conform to snake_case naming style (invalid-name)
bottles/backend/managers/dependency.py:676:8: C0103: Variable name "rk" doesn't conform to snake_case naming style (invalid-name)
bottles/backend/managers/dependency.py:683:8: C0103: Variable name "rk" doesn't conform to snake_case naming style (invalid-name)

@TheEvilSkeleton TheEvilSkeleton added this to the 52.0 milestone Jun 8, 2023
@orowith2os
Copy link
Contributor

If you can resolve the merge conflicts and update, I can merge.

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.

[Bug]: On New Custom 32bit Bottle - it doesn't list out the Dependencies.
4 participants