https://github.com/bottlesdevs/components
Repository for Bottles components
https://github.com/bottlesdevs/components
bottles components dxvk repository wine
Last synced: 6 months ago
JSON representation
Repository for Bottles components
- Host: GitHub
- URL: https://github.com/bottlesdevs/components
- Owner: bottlesdevs
- Created: 2021-01-24T13:15:31.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-01T07:23:51.000Z (over 1 year ago)
- Last Synced: 2024-05-01T09:42:40.366Z (over 1 year ago)
- Topics: bottles, components, dxvk, repository, wine
- Language: Shell
- Homepage:
- Size: 996 KB
- Stars: 57
- Watchers: 8
- Forks: 41
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-starred - bottlesdevs/components - Repository for Bottles components (Shell)
- awesome-starred - bottlesdevs/components - Repository for Bottles components (Shell)
README
# 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](https://github.com/bottlesdevs/components/pulls) with the manifest of the component we want to add, here are some examples of manifest:
- [caffe-7.2](https://github.com/bottlesdevs/components/blob/main/runners/wine/caffe-7.2.yml)
- [Proton-5.21-GE-1](https://github.com/bottlesdevs/components/blob/main/runners/proton/Proton-5.21-GE-1.yml)
- [dxvk-1.9](https://github.com/bottlesdevs/components/blob/main/dxvk/dxvk-1.9.yml)
- [vkd3d-v2.4](https://github.com/bottlesdevs/components/blob/main/vkd3d/vkd3d-v2.4.yml)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](https://github.com/bottlesdevs/components/blob/main/.github/workflows/pull-components.yml) workflow, where components are described in the following format:```yaml
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](https://github.com/doitsujin/dxvk/tags) 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](https://github.com/bottlesdevs/components/blob/main/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](https://github.com/bottlesdevs/components/blob/main/input_files/14-dxvk.yml))### 2 - Manually (legacy method)
Each poster must follow the following layout:
```yaml
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](https://www.json2yaml.com).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:
```yaml
Post:
- action: rename
source: lutris-fshack-6.14-2
dest: lutris-6.14-2-fshack
```We provide an [automatic tools](https://github.com/bottlesdevs/tools/blob/main/MaintainersHelpers/component-generator.py) for generating the manifest.
In addition to the manifest, en entry must be created in the corresponding file located in the [input_files](https://github.com/bottlesdevs/components/blob/main/input_files) directory. The index can then be regenerated using the [generate_index.sh](https://github.com/bottlesdevs/components/blob/main/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](https://github.com/orgs/bottlesdevs/discussions), [Discord](https://discord.gg/wF4JAdYrTR), [Telegram](https://t.me/usebottles) or [Matrix](https://matrix.to/#/%23UseBottles:matrix.org).