%global forgeurl https://github.com/bottlesdevs/Bottles %global version %(date +%Y%m%d) %global commit 0b0b6dc6aced0c539adc97879030a3133ab6cc42 %global _forgeversionsuffix %{scm}%(printf %.7s %{commit}) %global source_date_epoch_from_changelog 0 %forgemeta Name: bottles Epoch: 2 Version: %{forgeversion} Release: %autorelease Summary: Run Windows in a Bottle # The following two files are licensed as MIT: # bottles/backend/models/vdict.py # bottles/backend/utils/vdf.py License: GPL-3.0-or-later AND MIT URL: %{forgeurl} Source0: %{forgesource} # Make sure bottles dir exists when opening executable directly # https://bugzilla.redhat.com/show_bug.cgi?id=2249922 # https://bugzilla.redhat.com/show_bug.cgi?id=2257180 Patch: 0001-Make-sure-Paths.bottles-exists.patch # Don't fail on AttributeError # https://bugzilla.redhat.com/show_bug.cgi?id=2260135 # Downstream only patches counteracting upstream's enforcement of Flatpak Patch: 1001-Revert-meson-Add-check-for-Flatpak.patch BuildArch: noarch BuildRequires: desktop-file-utils BuildRequires: libappstream-glib BuildRequires: meson BuildRequires: python3-devel BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gtk4) BuildRequires: pkgconfig(libadwaita-1) >= 1.1.99 BuildRequires: blueprint-compiler Requires: cabextract Requires: glibc(x86-32) %dnl # https://github.com/bottlesdevs/Bottles/issues/601#issuecomment-936772762 Requires: gtk4 Requires: gtksourceview5 Requires: hicolor-icon-theme Requires: libadwaita >= 1.1.99 Requires: p7zip p7zip-plugins %dnl # needed by the dependencies manager Requires: patool Requires: xdpyinfo %dnl # needed by the display util Requires: ImageMagick %dnl # https://bugzilla.redhat.com/show_bug.cgi?id=2227538 # Use `generate_requires.sh` to generate Python runtime dependencies # using upstream's `requirements.txt`, which is included in the tarball, # but not used by Meson. Requires: python3dist(pyyaml) Requires: python3dist(pycurl) Requires: python3dist(chardet) Requires: python3dist(requests) Requires: python3dist(markdown) Requires: python3dist(icoextract) Requires: python3dist(patool) Requires: python3dist(pathvalidate) Requires: python3dist(fvs) Requires: python3dist(orjson) Requires: python3dist(pycairo) Requires: python3dist(pygobject) Requires: python3dist(charset-normalizer) Requires: python3dist(idna) Requires: python3dist(urllib3) Requires: python3dist(certifi) Requires: python3dist(pefile) Requires: python3dist(yara-python) # Requirements not listed in upstream's `requirements.txt` Requires: python3dist(vkbasalt-cli) # Optional dependencies which may be required for running 32-bit bottles. # We recommend those in order to allow users to opt out. Recommends: freetype.i686 Recommends: mesa-dri-drivers.i686 Recommends: mesa-filesystem.i686 Recommends: mesa-libEGL.i686 Recommends: mesa-libgbm.i686 Recommends: mesa-libglapi.i686 Recommends: mesa-libGL.i686 Recommends: mesa-libGLU.i686 Recommends: mesa-va-drivers.i686 Recommends: mesa-vulkan-drivers.i686 Recommends: SDL2.i686 Recommends: vulkan-loader.i686 # Optional dependencies that will provide extra features in Bottles # when installed. Recommends: gamemode Recommends: gamescope Recommends: mangohud # Since this pulls in OBS Studio and is not generally required for gaming # setups, we only suggest. Suggests: obs-studio-plugin-vkcapture Recommends: vkBasalt Recommends: vmtouch %description Bottles lets you run Windows software on Linux, such as applications and games. It introduces a workflow that helps you organize by categorizing each software to your liking. Bottles provides several tools and integrations to help you manage and optimize your applications. Features: - Use pre-configured environments as a base - Change runners for any bottle - Various optimizations and options for gaming - Repair in case software or bottle is broken - Install various known dependencies - Integrated task manager to manage and monitor processes - Backup and restore %prep %forgeautosetup -p1 # F40 only has meson 1.4.1. Lower requirement. sed -r -i 's/(meson_version.*)1\.[0-9]\.[0-9]/\11.4.1/' meson.build %__sed -i -e "/CPAK_CONTAINER_ID/s/:$/ and False&/" \ bottles/frontend/windows/window.py %__sed -i -e "/licenses/s/APP_ID/\x27bottles\x27/" data/meson.build %build %meson %meson_build %install %meson_install %find_lang com.use%{name}.%{name} %check appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %files -f com.use%{name}.%{name}.lang %license %{_licensedir}/* %doc README.md %{_bindir}/%{name} %{_bindir}/%{name}-cli %{_datadir}/%{name}/ %{_datadir}/applications/*.desktop %{_datadir}/glib-2.0/schemas/*.gschema.xml %{_datadir}/icons/hicolor/*/apps/*.svg %{_metainfodir}/*.xml