%{?nodejs_find_provides_and_requires} %{?nodejs_default_filter} %global pkg_name Podman-Desktop %global _optpkgdir /opt/%{pkg_name} %global _icondir %{_datadir}/icons/hicolor/512x512/apps %global debug_package %{nil} Name: podman-desktop Version: 1.16.1 Release: 1%{?dist} Summary: Manage Podman and other container engines from a single UI and tray License: Apache-2.0 URL: https://github.com/containers/%{name} Source0: %{url}/archive/v%{version}.tar.gz Source1: %{name}.desktop Patch0: 0001-remove-post-install-browser-download.patch Patch1: 0002-remove-flatpak-build-option-and-fuses.patch Patch2: 0003-remove-playwright-image-prebuilt.patch BuildRequires: nodejs-electron-devel BuildRequires: pnpm BuildRequires: rubygem-fpm BuildRequires: nodejs-devel BuildRequires: nodejs-packaging BuildRequires: git-core BuildRequires: nodejs-npm # TODO: These don't work #BuildRequires: npm(vite) #BuildRequires: npm(electron-builder) Requires: nodejs-electron%{?_isa} Requires: nodejs Suggests: libappindicator3-1 ExclusiveArch: x86_64 aarch64 %description %{summary} %prep %autosetup -Sgit -n %{name}-%{version} %build # define exports for local source build export ELECTRON_SKIP_BINARY_DOWNLOAD=1 export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 export MODE=production export USE_SYSTEM_FPM="true" export COREPACK_ENABLE_STRICT=0 export CXXFLAGS="%{optflags}" # TODO: In theory, one could do --prod --frozen-lockfile # This would make path0 and patch3 obsolete # However, vite and electron-builder are dev-deps, so prod can't be used pnpm install --ignore-scripts # For some reason nodejs-electron's node has a few undefined http methods # To avoid crashin on startup, add optional chain sed -i 's/method.toLowerCase()/method?.toLowerCase()/g' node_modules/methods/index.js pnpm run build pnpm electron-builder build --linux dir --universal --config .electron-builder.config.cjs -c.electronDist=%{_libdir}/electron rm -rf dist/linux-universal-unpacked/resources/app.asar.unpacked/node_modules/win-ca %install # install everything to /opt/%%{pkg_name} install -dp %{buildroot}%{_optpkgdir} cp -Rp dist/linux-universal-unpacked/* %{buildroot}%{_optpkgdir} # install icon install -dp %{buildroot}%{_icondir} install -Dp -m0755 buildResources/icon-512x512.png %{buildroot}%{_icondir}/%{name}.png # install desktop file install -dp %{buildroot}%{_datadir}/applications install -Dp -m0755 %{SOURCE1} %{buildroot}%{_datadir}/applications # symlink main binary to /usr/bin install -dp %{buildroot}%{_bindir} ln -s %{_optpkgdir}/%{name} %{buildroot}%{_bindir}/%{name} %files %license LICENSE %doc CODE-OF-CONDUCT.md CONTRIBUTING.md README.md SECURITY.md %{_bindir}/%{name} %dir %{_optpkgdir} %{_optpkgdir}/* %dir %{_icondir} %{_icondir}/%{name}.png %dir %{_datadir}/applications %{_datadir}/applications/%{name}.desktop %changelog * Fri Feb 07 2025 curtisy - 1.16.1-1 - Update to new minor version * Sun Feb 02 2025 curtisy - 1.16.0-1 - Initial version of the package