Code Monkey home page Code Monkey logo

components's Introduction

Components

Repository for Bottles components

Why a centralized repository?

With a centralized repository we can provide some data such as the checksum, which is useful for validate downloads.

How to contribute

To propose new components, it is necessary to open a Pull Request with the manifest of the component we want to add, here are some examples of manifest:

To do it, there is currently two methods.

1 - Add an entry to the CI (prefered method)

For most components, new stable versions (and experimental builds if they exist) are automatically pulled. This is accomplished by the pull-components.yml workflow, where components are described in the following format:

repo : "doitsujin/dxvk",
workflow: "artifacts.yml",
branch: "master",
name-prefix: "dxvk-",
name-suffix: "",
version-prefix: "v",
yaml-file: "14-dxvk.yml",
Category: "dxvk",
Sub-category: "",

where:

  • repo is the GitHub repository in the format owner/repository
  • workflow is the workflow filename used to generate exerimental builds, if any
  • branch is the workflow branch used to generate exerimental builds, if any
  • name-prefix is used to generate the full name of the component using name-prefix + version + name-suffix (e.g. dxvk- + 2.0 + ∅), and look for release/experimental asset whose filename is begining by name-prefix
  • name-suffix serves the exact same purpose as name-prefix, is only used when multiple variants are available for one component (e.g. -x86, -x64, etc)
  • version-prefix is used to find the latest release version whose tag is begining by version-prefix, and to remove version-prefix from the final version string (e.g. v2.0 will become 2.0)
  • yaml-file is the YAML component filename located in the input_files directory
  • Category and Sub-category are repectively the Category and Sub-category as described in the yaml-file (e.g. 14-dxvk.yml)

2 - Manually (legacy method)

Each poster must follow the following layout:

Name: caffe-7.2
Provider: bottles
Channel: stable
File:
- file_name: caffe-7.2-x86_64.tar.xz
  url: https://github.com/bottlesdevs/wine/releases/download/caffe-7.2/caffe-7.2-x86_64.tar.xz
  file_checksum: 659ee0ee3dbe5274825734ad19692e12
  rename: caffe-7.2-x86_64.tar.xz

old json manifests can be converted using this online tool.

where:

  • Name is a name without spaces, including version, of the component (must reflect the name of the manifest file)
  • Provider is the name of the component supplier (not the maintainer)
  • Channel should be stable or unstable
  • File is where it is stated how to get the component archive
    • file_name is the full name of the component archive
    • url is the direct URL to the archive download (only tarball are supported)
    • file_checksum is the MD5 checksum of the archive
    • rename this field should be the same as the name of the component for must cases (plus the extension), it is needed to rename the archive.

There is also an optional Post section, which can be used to rename the path after extraction:

Post:
- action: rename
  source: lutris-fshack-6.14-2
  dest: lutris-6.14-2-fshack

We provide an automatic tools for generating the manifest.

In addition to the manifest, en entry must be created in the corresponding file located in the input_files directory. The index can then be regenerated using the generate_index.sh script.

Please double check and test using the LOCAL_COMPONENTS=/path/to/components flatpak run com.usebottles.bottles command before open a pull request.

Guidelines

The sources of the components must be public and searchable and must not infringe any copyright. Also, each archive must contain the compiled version and not the source code.

Testing repository

There is also a testing repository to test components before publishing them to the main repository. To do so you need to add the new component to the testing.yml file (opening a Pull request) and run bottles with the environment variable TESTING_REPOS=1 to use the testing repository.

Need help?

Reach us on our Forums, Discord, Telegram or Matrix.

components's People

Contributors

aksdb avatar alvarlagerlof avatar asbachb avatar boltss73 avatar bpmooch avatar c0m3d1an avatar deathbot159 avatar dependabot[bot] avatar evoxcx avatar francescomasala avatar github-actions[bot] avatar gustavoperedo avatar imlinguin avatar jabybaby avatar jntesteves avatar joellarson avatar kaidelorenzo avatar keenanweaver avatar kinsteen avatar koplo199 avatar leandrostanger avatar leventehogger avatar mirkobrombin avatar orowith2os avatar pietrodicaprio avatar redemption198 avatar theevilskeleton avatar tiziodcaio avatar zsoli69 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

components's Issues

[Feature Request] Soda controller support

When I use Caffe to play any game on Bottles the controller support is great and basically out of the box, but not with Soda, basically no game recognizes my controller in that way with Soda

I'm using a PS4 controller.

Counter Strike 1.6 black screen with Caffe-7.10-1

Music playing, game running, just screen remains black.

Same game running will with sys-wine-7.10.
Problem tested with
Install: https://csko.cz/ke-stazeni (first link in the table)
SW: Debian; Kernel 5.18; Mesa 21.1, 21.2;
HW: Dell XPS 9310, Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics]

If you need any additional info, please write me.

Lutris-6.13-3 does not install

When I click on the button to install the Lutris-6.13-3 runner it does not install.
I have downloaded several times I always have the same error with the same checksum

2021-08-05 14:39:10 INFO: Installing component: [lutris-6.13-3].
2021-08-05 14:39:22 INFO: Renaming [wine-lutris-6.13-3-x86_64.tar.xz] to [wine-lutris-6.13-3-x86_64.tar.xz].
2021-08-05 14:39:22 ERROR: Downloaded file [wine-lutris-6.13-3-x86_64.tar.xz] looks corrupted.
2021-08-05 14:39:22 ERROR: Source checksum: [6d29199ce4465b38273a4ee8060951be] downloaded: [057af1b887ddca57c99a4ba7f897073f]

Delayed launching of games.

It takes about 27 seconds for games to launch from the time the game icon is double clicked. Other runners start to load within 2 seconds of launching.
This problem occurs irrespective of the game or app being launched.

Does the "soda" runner support futex2?

Asking because I'm confused if ANY runner supports it or not. The terminal says "using server side synchronization" while using esync or fsync says "e/fsync: enabled"

Remove vkd3d-2.4 from Components

Lutris' fork doesn't seem to be getting any updates, and the name makes it seem like the release is coming from winehq itself.

Wine Builds

Please create a repository of original wine builds from wine-mirror github repository that are not modified in any way unlike the Vaniglia builds.

Vaniglia is a modified version of the original Wine runners. Having the original Wine runner would allow users to ensure their Windows software and games do work in Wine if they decided to stop using Bottles or use a different runner manger like Lutris, PlayOnLinux, etc.

https://github.com/wine-mirror/wine

Please expose the wine-wayland runner

I see that there's already a reference to wine-wayland in the runners directory, but it's not accessible when I load up Bottles. I'm assuming this is because it's missing from the index?

I might be missing some kind of workaround though.

Context

I'm trying to run Bottles on Sway, a Wayland compositor based on wlroots.

Add runner: lutris-lol

Moved from: bottlesdevs/Bottles#456

Right now Bottles does not show/have the wine-lol build to run League of Legends (Lutris has one), such specific build is necessary for the game since it requires a wine hack to make the game anticheat system happy.

I'm using the Flatpak version.

Consenting Glorious Eggroll for providing Proton-GE and GE-Proton

This was reported by @RaduAvramescu. It seems like Glorious Eggroll, the maintainer of Proton-GE, is quite against third parties using Proton-GE outside of Steam, and recommends to use wine-ge-custom. Or so that's the impression I get.

In the README:

(1) RUNNING NON-STEAM GAMES WITH PROTON OUTSIDE OF STEAM IS NOT SUPPORTED. DO NOT ASK FOR HELP WITH THIS:

I suggest to either drop later versions of Proton-GE altogether, or the preferable approach to contact Glorious Eggroll. If we take the latter approach, I suggest to openly ask them so we can easily link the proof, in case anyone wants to use it against us. I do not mind writing them an email or pinging them. Perhaps even contact them on Discord so they can comment here.

Url for chardonnay-6.11 is incorrect / 404's

Chardonnay 6.11 was added recently with url https://github.com/bottlesdevs/wine/releases/download/6.10/chardonnay-6.11-x86_64.tar.gz, correct url would be https://github.com/bottlesdevs/wine/releases/download/6.11/chardonnay-6.11-x86_64.tar.gz. 6.10 vs 6.11 in tag specifier is the issue.

Commit where chardonnay-6.11 was added is 1dd5519.

Noticed due to Bottles getting stuck in the initial download phase and saw 404 exception on the command line + chardonnay-6.11 being indefinitely downloaded.

2021-06-28 20:49:33 INFO: Installing component: [chardonnay-6.11].
2021-06-28 20:49:33 INFO: Connection status: online2021-06-28 20:49:34 ERROR: Error while running async job: <bound method BottlesRunner.async_install_component of <bottles.runner.BottlesRunner object at
0x7fa7dba28eb0>>
Exception: HTTP Error 404: Not Found
  File "/usr/share/bottles/bottles/utils.py", line 181, in target
    result = self.task_func(*args, **kwargs)
  File "/usr/share/bottles/bottles/runner.py", line 319, in async_install_component
    download = self.download_component(component_type,
  File "/usr/share/bottles/bottles/runner.py", line 260, in download_component
    request = urllib.request.urlopen(request)
  File "/usr/lib/python3.9/urllib/request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.9/urllib/request.py", line 523, in open
    response = meth(req, response)
  File "/usr/lib/python3.9/urllib/request.py", line 632, in http_response
    response = self.parent.error(
  File "/usr/lib/python3.9/urllib/request.py", line 561, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.9/urllib/request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

Proton Builds

Please create a repository of original proton builds from the ValveSoftware/Proton github repository that are not modified in any way unlike Proton-GE builds.

Vaniglia is a forked repository of wine. By forking the ValveSoftware/Proton github repository, proton runners can be made available to download and run in Bottles. Having the original Proton runner would allow users to ensure their Windows games do work in Proton if they decided to stop using Bottles or use a different runner manger like Steam.

https://github.com/ValveSoftware/Proton

Place runners binaries path in manifest

Wine binaries path for runners should be placed in manifest. The manifest should also be locally installed with the component, so Bottles can take the paths from it.

{
  "Name": "Proton-6.8-GE-2",
  "Provider": "gloriouseggroll",
  "Channel": "stable",
  "BinariesPath": "files",
  "File": [
    {
      "file_name": "Proton-6.8-GE-2.tar.gz",
      "url": "..",
      "file_checksum": "..",
      "rename": ".."
    }
  ]
}


{
  "Name": "chardonnay-6.8",
  "Provider": "bottles",
  "Channel": "stable",
  "BinariesPath": "", # empty for root path
  "File": [
    {
      "file_name": "chardonnay-6.8-x86_64.tar.gz",
      "url": "..",
      "file_checksum": "..",
      "rename": ".."
    }
  ]
}

Ref: bottlesdevs/Bottles#284

Caffe updates

Two questions:

  1. What is the update schedule of Caffe? Versions based (4 main releases since 7.20) or time based (3 months since 7.20)?
  2. Can it be automatically updated like other components (DXVK, VKD3D)? Wine releases updates very quickly (usually 2 weeks) and it would be good to have a way to test the newest version.

[Request] Support for DXVK async patch

Is your feature request related to a problem? Please describe.
Some games perform poorly with default DXVK (e.g. some UE4 games). dxvk-async solves this problem, but is not supported by Bottles from what I can tell.

Describe the solution you'd like
Add an option to install DXVK with async patch.

Describe alternatives you've considered
As a workaround, I assume it's possible to install dxvk-async next to the executable and add a DLL override.

[Request]: Adding Lutris-GE-LoL versions as Runners

Tell us the problem or your need

Lutris currently provides LoL Support, from the seems of it, Bottles doesn't seem to ship them by default.

Describe the solution you'd like

Would love to have the Runners added to Bottles, as it isn't possible to manually add for Flatpaks

Here is the GH for further reference: https://github.com/GloriousEggroll/wine-ge-custom/releases/tag/7.0-GE-1-LoL

Other solutions?

No response

Additional context and references

No response

Vaniglia builds without staging patches?

The Request

Please consider having Vaniglia build be the exact same as Wine except using the modern theme created by Joshua Ashton.

This way you can choose between a Vaniglia runner or a Vaniglia-staging runner just as you do with Wine. For example, when Wine releases 7.2 and 7.2-staging, the following versions of Vaniglia will be released.

Vaniglia 7.2
Vaniglia 7.2-staging

The issue

Wine staging parches can either cause certain applications and games to work or not to work. When using a specific version of Wine to run an Windows application and the results are that the application works. You do know as a user that the version of the Windows application works with the version of Wine you are using.

When using Vaniglia, you are not certain since the staging patches that are added could be the reason the Windows application is working or is not working.

Therefore when users want to switch to or from Bottles, they will be certain that their Windows applications will still run as expected since they will know what versions of Wine works for their application.

Add new Lutris-GE-LoL build

Rename vkd3d to vkd3d-proton, and add version 2.5.

When I saw "vkd3d-v2.4" in the settings dialog, I was scared, thinking it's the basic VKD3D by the Wine project.

All development happens on VKD3D-Proton nowadays:

https://github.com/HansKristian-Work/vkd3d-proton/releases

It doesn't require Proton, it's just named that way because it's the Proton-project fork of VKD3D.

Well, I checked in the source files and was happy to see that you're actually using vkd3d-proton.

  1. Would be best to rename it to vkd3d-proton in Bottles menu, to not scare people by making them think it's the upstream Wine version with limited functionality.
  2. Version 2.5 is out so Bottles needs a small update of the installer menu to add this new version: https://github.com/HansKristian-Work/vkd3d-proton

:)

First run error: "Source cksum of caffe-7.6 looks corrupted"

Hello!

I tried installing your application on a freshly installed fedora 35 workstation.

When installing the required components of the first run in the terminal, the following error pops up and goes into a cyclic process.

Sorry for the english, I use google translate.

WARNING No runners found. 
INFO Installing component: [caffe-7.6]. 
Downloading caffe-7.6-x86_64.tar.xz: 100% [==================================================>

INFO Renaming [caffe-7.6-x86_64.tar.xz] to [caffe-7.6-x86_64.tar.xz]. 
ERROR Downloaded file [caffe-7.6-x86_64.tar.xz] looks corrupted. 
ERROR Source cksum: [9050f43bcb320fccba3b1dd9a25b9ac8] downloaded: [bcbcc047e908f75af1c8032ae492d487] 
INFO Removing corrupted file [caffe-7.6-x86_64.tar.xz]. 
ERROR Extraction failed! Archive ends earlier than expected. 
INFO Runners found:
	 - sys-wine-7.5
 
WARNING No runners found. 

[Discussion] Improvement ideas

Issue where new ideas could be discussed, before they are approved by a member of the @bottlesdevs organization.
I'll begin:

  • Automate components testing from PR's by simulating/using code from the Bottles back-end (download, decompress, check if directory exist with the righ name, maybe even try to select component...). This would benefit mainly PR's from the CI, so we're sure they don't break things unexpectedly before merging them.
    Difficulty: I'm not familiar enough with the Bottles source code so I'm unsure what would be the difficulty of this task.
  • Add experimental builds of dxvk-async for parity, as dxvk already supports experimental builds.
    Difficulty: easy

Improved naming of new component updates?

Hi! :) The current format is <project>-<packaging revision>-<suffix aka git commit id>, such as dxvk-2.0-1-d020f44.

https://github.com/bottlesdevs/components/tree/main/vkd3d
https://github.com/bottlesdevs/components/tree/main/dxvk

The naming idea is proper, but the way that the packaging revision is forever at 1 means it's very hard for people to know which installed component is their latest version.

Would it be possible to switch to updating the revision numbers for future component updates? Like this:

dxvk-2.0-1-12901b5
dxvk-2.0-2-18b0ef6
dxvk-2.0-3-196fefe
dxvk-2.0-4-7644776
dxvk-2.0-5-c55c093
dxvk-2.0-6-d020f44
dxvk-2.1 (the latest "stable")
dxvk-2.1-1-fe37bc2 (first git revision/commit after 2.1, hence start a new `-1-` sequence)

That way it's easy to see "6 is the latest revision, we should use that and we can delete all the other ones".

vaniglia-7.15 runner seems to be bugged, can't launch anything

When I switch runner to vaniglia-7.15 I can't launch anything in the bottle and get the following error:

002c:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -r" (2).
0070:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\wineusb": c0000142
wine client error:0: version mismatch 756/739.
Your wine binary was not upgraded correctly,
or you have an older one somewhere in your PATH.
Or maybe the wrong wineserver is still running?

Runtime always has an update

On new "Core" settings tab, runtime-0.2 always has an update. After applying the update and restarting Bottles, the update appears again.
It looks a little like #100

Kron4ek Wine Builds

Please add all the available wine builds from Kron4ek Wine Build repo to be available to download as bottle runners. This repo includes the vanilla wine repos of many wine versions and is dedicated to building wine and releasing these versions on github.

Wine (x86)
Wine (amd64)
Wine-Staging (x86)
Wine-Staging (amd64)
Wine-TkG-Staging (x86)
Wine-TkG-Staging (amd64)
Proton (x86)
Proton (amd64)
Wine-Wayland (x86)
Wine-Wayland (amd64)

https://github.com/Kron4ek/Wine-Builds

Caffe runner update

Hi. Was the Caffe runner dropped? It's on 7.10 while Wine released 7.15 two days ago. If not, can I know the schedule that is now used for this runner? I like it more than the Soda.

VKD3D is not correctly recognized in the general settings

If I go to the components installation tab in Bottles general settings and install vkd3d-v2.5, then after restarting Bottles in the same settings window this component will be marked as not installed. All files exist in the filesystem and in bottle specific settings this vkd3d can be used (but with name "vkd3d-proton-2.5"). And when running Bottles, the logs show that this vkd3d is detected. Only its status is incorrectly displayed in the general settings window.

Perhaps this problem is related to #92 .

vkd3d

vkd3d-proton 2.8 is released today, with massive performance improvements

https://github.com/HansKristian-Work/vkd3d-proton/releases/tag/v2.8

I wanted to make a pull request but saw that you're using a separate clone of their repo to distribute this component.

Wouldn't it be better to add ZSTD support to Bottles via one of the 3 Python libraries mentioned by Facebook? See below:

http://facebook.github.io/zstd/

Then we could point directly at the official repo to simplify maintenance of Bottles.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.