SHA256
1
0
forked from pool/pyenv
pyenv/pyenv.spec

186 lines
5.3 KiB
RPMSpec
Raw Normal View History

#
# spec file for package pyenv
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define pyenv_dir %{_libexecdir}/pyenv
#
Name: pyenv
Version: 2.4.11
Release: 0
Summary: Python Version Management
License: MIT
Group: Development/Languages/Python
URL: https://github.com/pyenv/pyenv
Source: https://github.com/pyenv/pyenv/archive/refs/tags/v%{version}.tar.gz#/pyenv-%{version}.tar.gz
#
BuildRequires: bash-completion
BuildRequires: bats
BuildRequires: fdupes
BuildRequires: fish
BuildRequires: gcc
BuildRequires: make
BuildRequires: pkgconfig
BuildRequires: zsh
#
Requires: pkgconfig
#
# Additional soft build requirements.
# Use list from https://github.com/pyenv/pyenv/wiki#suggested-build-environment
#
# Once pyenv is installed and user requests a new Python version,
# we need to make sure it will build:
Recommends: automake
Recommends: bzip2
Recommends: findutils
Recommends: gcc
#
Recommends: gdbm-devel
Recommends: gmp-devel
Recommends: openssl-devel
Recommends: patch
Recommends: readline-devel
#
Recommends: pkgconfig(bzip2)
Recommends: pkgconfig(clzma)
Recommends: pkgconfig(expat)
Recommends: pkgconfig(libffi)
Recommends: pkgconfig(liblzma)
Recommends: pkgconfig(ncurses)
Recommends: pkgconfig(sqlite3)
Recommends: pkgconfig(tcl)
Recommends: pkgconfig(tk)
Recommends: pkgconfig(uuid)
Recommends: pkgconfig(zlib)
%description
pyenv lets the user switch between multiple versions of Python.
This project was forked from rbenv and ruby-build, and modified for Python.
%package bash-completion
Summary: Bash completion for %{name}
Group: System/Shells
Requires: %{name} = %{version}
Supplements: (pyenv and bash-completion)
BuildArch: noarch
%description bash-completion
Bash command line completion support for %{name}.
%package fish-completion
Summary: Fish completion for %{name}
Group: System/Shells
Requires: %{name} = %{version}
Supplements: (pyenv and fish)
BuildArch: noarch
%description fish-completion
Fish command line completion support for %{name}.
%package zsh-completion
Summary: Zsh completion for %{name}
Group: System/Shells
Requires: %{name} = %{version}
Supplements: (pyenv and zsh)
BuildArch: noarch
%description zsh-completion
Zsh command line completion support for %{name}.
%prep
%autosetup -p1 -n %{name}-%{version}
sed -i -e '1s,^#!%{_bindir}/env bash,#!/bin/bash,' libexec/* pyenv.d/exec/pip-rehash/* plugins/python-build/bin/*
%build
##
pushd src
%configure
%make_build
popd
%install
mkdir -p %{buildroot}%{pyenv_dir} \
%{buildroot}%{pyenv_dir}/plugins \
%{buildroot}%{pyenv_dir}/shims/ \
%{buildroot}%{pyenv_dir}/share/python-build/ \
%{buildroot}%{_sysconfdir}/pyenv.d/ \
%{buildroot}%{_bindir}
cp -R libexec %{buildroot}%{pyenv_dir}
cp -R bin %{buildroot}%{pyenv_dir}
cp -a pyenv.d %{buildroot}%{_sysconfdir}/
## Install shell completions:
install -D -m0644 completions/pyenv.bash %{buildroot}%{_datadir}/bash-completion/completions/pyenv
install -D -m0644 completions/pyenv.zsh %{buildroot}%{_sysconfdir}/zsh_completion.d/pyenv
install -D -m0644 completions/pyenv.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/pyenv.fish
## Install manpage
install -D -m0644 man/man1/%{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1
pushd %{buildroot}%{_mandir}/man1/
ln -s %{name}.1 python-build.1
popd
ln -s %{pyenv_dir}/bin/pyenv %{buildroot}%{_bindir}/pyenv
## python-build
pushd plugins/python-build
install -m755 bin/* %{buildroot}%{pyenv_dir}/libexec
cp -a share/python-build %{buildroot}%{pyenv_dir}/share/
popd
%fdupes %{buildroot}%{pyenv_dir}
%check
export PATH="$PATH:%{buildroot}%{_libexecdir}/pyenv/libexec"
bats test/{pyenv,hooks,versions}.bats
%files
%doc CHANGELOG.md COMMANDS.md README.md
%license LICENSE
%exclude %{_sysconfdir}/pyenv.d/rehash/*/.gitignore
%config %{_sysconfdir}/pyenv.d/rehash/*.d/default.list
%config %{_sysconfdir}/pyenv.d/exec/pip-rehash.bash
%config %{_sysconfdir}/pyenv.d/rehash/*.bash
%config %{_sysconfdir}/pyenv.d/install/*.bash
%{pyenv_dir}
%dir %{_sysconfdir}/pyenv.d
%dir %{_sysconfdir}/pyenv.d/exec/
%dir %{_sysconfdir}/pyenv.d/rehash/
%dir %{_sysconfdir}/pyenv.d/rehash/*.d/
%dir %{_sysconfdir}/pyenv.d/install/
%{_sysconfdir}/pyenv.d/exec/pip-rehash
%{_bindir}/pyenv
#
%{_mandir}/man1/%{name}.1%{?ext_man}
%{_mandir}/man1/python-build.1%{?ext_man}
%files bash-completion
%{_datadir}/bash-completion/completions/pyenv
%files fish-completion
%{_datadir}/fish/vendor_completions.d/pyenv.fish
%files zsh-completion
%config %{_sysconfdir}/zsh_completion.d/pyenv
%changelog