Skip to content

Commit

Permalink
Add a new spec variable, "pypi_version" to templates, and use that
Browse files Browse the repository at this point in the history
rather than "version".  Where the RPM version is needed, use the
new macros to convert the original version string to the RPM
equivalent.
  • Loading branch information
gordonmessmer committed Feb 6, 2021
1 parent bb5c3ca commit eeaad79
Show file tree
Hide file tree
Showing 22 changed files with 124 additions and 103 deletions.
4 changes: 2 additions & 2 deletions pyp2rpm/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ def package_to_path(package, module):

def macroed_url(url):
if url.startswith('https://files.pythonhosted.org/packages/source/'):
if url.endswith('/%{pypi_name}/%{pypi_name}-%{version}.tar.gz'):
if url.endswith('/%{pypi_name}/%{pypi_name}-%{pypi_version}.tar.gz'):
return '%{pypi_source}'
elif url.endswith('/%{pypi_name}/%{pypi_name}-%{version}.zip'):
elif url.endswith('/%{pypi_name}/%{pypi_name}-%{pypi_version}.zip'):
return '%{pypi_source %{pypi_name} %{version} zip}'
return url

Expand Down
17 changes: 9 additions & 8 deletions pyp2rpm/templates/epel6.spec
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{{ data.credit_line }}
{% from 'macros.spec' import dependencies, for_python_versions, underscored_or_pypi -%}
%global pypi_name {{ data.name }}
%global pypi_version {{ data.version }}
{%- if data.srcname %}
%global srcname {{ data.srcname }}
{%- endif %}
Expand All @@ -9,13 +10,13 @@
{%- endfor %}

Name: {{ data.pkg_name|macroed_pkg_name(data.srcname) }}
Version: {{ data.version }}
Version: {{ data.version|rpm_version_410 }}
Release: 1%{?dist}
Summary: {{ data.summary }}

License: {{ data.license }}
URL: {{ data.home_page }}
Source0: {{ data.source0|replace(data.name, '%{pypi_name}')|replace(data.version, '%{version}') }}
Source0: {{ data.source0|replace(data.name, '%{pypi_name}')|replace(data.version, '%{pypi_version}') }}

{%- if not data.has_extension %}
BuildArch: noarch
Expand Down Expand Up @@ -43,7 +44,7 @@ Documentation for {{ data.name }}
{%- endif %}

%prep
%setup -q -n %{pypi_name}-%{version}
%setup -q -n %{pypi_name}-%{pypi_version}
{%- if data.has_bundled_egg_info %}
# Remove bundled egg-info
rm -rf %{pypi_name}.egg-info
Expand Down Expand Up @@ -131,19 +132,19 @@ popd
{%- endfor %}
{%- endif %}
{%- if data.has_pth %}
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}-*.pth
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}-*.pth
{%- endif %}
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}.egg-info
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}.egg-info
{%- else %}
{%- if data.has_packages %}
{%- for package in data.packages %}
%{python{{ pv }}_sitelib}/{{ package | package_to_path(data.name) }}
{%- endfor %}
{%- endif %}
{%- if data.has_pth %}
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}-*.pth
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}-*.pth
{%- endif %}
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}.egg-info
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}.egg-info
{%- endif %}
{% endcall %}
{%- if data.sphinx_dir %}
Expand All @@ -154,5 +155,5 @@ popd
{%- endif %}
{% endif %}
%changelog
* {{ data.changelog_date_packager }} - {{ data.version }}-1
* {{ data.changelog_date_packager }} - {{ data.version|rpm_version_410(False) }}-1
- Initial package.
21 changes: 11 additions & 10 deletions pyp2rpm/templates/epel7.spec
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
{{ data.credit_line }}
{% from 'macros.spec' import dependencies, for_python_versions, underscored_or_pypi -%}
%global pypi_name {{ data.name }}
%global pypi_version {{ data.version }}
{%- if data.srcname %}
%global srcname {{ data.srcname }}
{%- endif %}

Name: {{ data.pkg_name|macroed_pkg_name(data.srcname) }}
Version: {{ data.version }}
Version: {{ data.version|rpm_version_410 }}
Release: 1%{?dist}
Summary: {{ data.summary }}

License: {{ data.license }}
URL: {{ data.home_page }}
Source0: {{ data.source0|replace(data.name, '%{pypi_name}')|replace(data.version, '%{version}') }}
Source0: {{ data.source0|replace(data.name, '%{pypi_name}')|replace(data.version, '%{pypi_version}') }}

{%- if not data.has_extension %}
BuildArch: noarch
Expand All @@ -38,7 +39,7 @@ Documentation for {{ data.name }}
{%- endif %}

%prep
%autosetup -n {{ data.dirname|replace(data.name, '%{pypi_name}')|replace(data.version, '%{version}')|default('%{pypi_name}-%{version}', true) }}
%autosetup -n {{ data.dirname|replace(data.name, '%{pypi_name}')|replace(data.version, '%{pypi_version}')|default('%{pypi_name}-%{pypi_version}', true) }}
{%- if data.has_bundled_egg_info %}
# Remove bundled egg-info
rm -rf %{pypi_name}.egg-info
Expand All @@ -49,7 +50,7 @@ rm -rf %{pypi_name}.egg-info
{% if data.has_extension %}CFLAGS="$RPM_OPT_FLAGS" {% endif %}%{__python{{ pv }}} setup.py build
{%- endfor %}
{%- if data.sphinx_dir %}
# generate html docs
# generate html docs
PYTHONPATH=${PWD} {{ "sphinx-build"|script_name_for_python_version(data.base_python_version, False, False) }} {{ data.sphinx_dir }} html
# remove the sphinx-build leftovers
rm -rf html/.{doctrees,buildinfo}
Expand Down Expand Up @@ -99,28 +100,28 @@ rm -rf %{buildroot}%{_bindir}/*
{%- endfor %}
{%- endif %}
{%- if data.has_pth %}
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}-*.pth
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}-*.pth
{%- endif %}
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}.egg-info
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}.egg-info
{%- else %}
{%- if data.has_packages %}
{%- for package in data.packages %}
%{python{{ pv }}_sitelib}/{{ package | package_to_path(data.name) }}
{%- endfor %}
{%- endif %}
{%- if data.has_pth %}
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}-*.pth
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}-*.pth
{%- endif %}
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}.egg-info
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}.egg-info
{%- endif %}
{% endfor %}
{%- if data.sphinx_dir %}
%files -n python-%{pypi_name}-doc
%doc html
%doc html
{%- if data.doc_license %}
%license {{data.doc_license|join(' ')}}
{%- endif %}
{% endif %}
%changelog
* {{ data.changelog_date_packager }} - {{ data.version }}-1
* {{ data.changelog_date_packager }} - {{ data.version|rpm_version_410(False) }}-1
- Initial package.
17 changes: 9 additions & 8 deletions pyp2rpm/templates/fedora.spec
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
{{ data.credit_line }}
{% from 'macros.spec' import dependencies, for_python_versions, underscored_or_pypi, macroed_url -%}
%global pypi_name {{ data.name }}
%global pypi_version {{ data.version }}
{%- if data.srcname %}
%global srcname {{ data.srcname }}
{%- endif %}

Name: {{ data.pkg_name|macroed_pkg_name(data.srcname) }}
Version: {{ data.version }}
Version: {{ data.version|rpm_version }}
Release: 1%{?dist}
Summary: {{ data.summary }}

License: {{ data.license }}
URL: {{ data.home_page }}
Source0: {{ data.source0|replace(data.name, '%{pypi_name}')|replace(data.version, '%{version}')|macroed_url }}
Source0: {{ data.source0|replace(data.name, '%{pypi_name}')|replace(data.version, '%{pypi_version}')|macroed_url }}

{%- if not data.has_extension %}
BuildArch: noarch
Expand All @@ -39,7 +40,7 @@ Documentation for {{ data.name }}
{%- endif %}

%prep
%autosetup -n {{ data.dirname|replace(data.name, '%{pypi_name}')|replace(data.version, '%{version}')|default('%{pypi_name}-%{version}', true) }}
%autosetup -n {{ data.dirname|replace(data.name, '%{pypi_name}')|replace(data.version, '%{pypi_version}')|default('%{pypi_name}-%{pypi_version}', true) }}
{%- if data.has_bundled_egg_info %}
# Remove bundled egg-info
rm -rf %{pypi_name}.egg-info
Expand Down Expand Up @@ -102,19 +103,19 @@ rm -rf %{buildroot}%{_bindir}/*
{%- endfor %}
{%- endif %}
{%- if data.has_pth %}
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}-*.pth
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}-*.pth
{%- endif %}
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}.egg-info
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}.egg-info
{%- else %}
{%- if data.has_packages %}
{%- for package in data.packages %}
%{python{{ pv }}_sitelib}/{{ package | package_to_path(data.name) }}
{%- endfor %}
{%- endif %}
{%- if data.has_pth %}
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}-*.pth
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}-*.pth
{%- endif %}
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}.egg-info
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}.egg-info
{%- endif %}
{% endfor %}
{%- if data.sphinx_dir %}
Expand All @@ -125,5 +126,5 @@ rm -rf %{buildroot}%{_bindir}/*
{%- endif %}
{% endif %}
%changelog
* {{ data.changelog_date_packager }} - {{ data.version }}-1
* {{ data.changelog_date_packager }} - {{ data.version|rpm_version(False) }}-1
- Initial package.
15 changes: 8 additions & 7 deletions pyp2rpm/templates/mageia.spec
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
{{ data.credit_line }}
{% from 'macros.spec' import dependencies, for_python_versions, underscored_or_pypi -%}
%global pypi_name {{ data.name }}
%global pypi_version {{ data.version }}
{%- if data.srcname %}
%global srcname {{ data.srcname }}
{%- endif %}

Name: {{ data.pkg_name|macroed_pkg_name(data.srcname) }}
Version: {{ data.version }}
Version: {{ data.version|rpm_version }}
Release: %mkrel 1
Summary: {{ data.summary }}
Group: Development/Python
License: {{ data.license }}
URL: {{ data.home_page }}
Source0: {{ data.source0|replace(data.name, '%{pypi_name}')|replace(data.version, '%{version}') }}
Source0: {{ data.source0|replace(data.name, '%{pypi_name}')|replace(data.version, '%{pypi_version}') }}

{%- if not data.has_extension %}
BuildArch: noarch
Expand All @@ -39,7 +40,7 @@ Documentation for {{ data.name }}
{%- endif %}

%prep
%autosetup -n {{ data.dirname|replace(data.name, '%{pypi_name}')|replace(data.version, '%{version}')|default('%{pypi_name}-%{version}', true) }}
%autosetup -n {{ data.dirname|replace(data.name, '%{pypi_name}')|replace(data.version, '%{pypi_version}')|default('%{pypi_name}-%{pypi_version}', true) }}
{%- if data.has_bundled_egg_info %}
# Remove bundled egg-info
rm -rf %{pypi_name}.egg-info
Expand Down Expand Up @@ -102,19 +103,19 @@ rm -rf %{buildroot}%{_bindir}/*
{%- endfor %}
{%- endif %}
{%- if data.has_pth %}
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}-*.pth
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}-*.pth
{%- endif %}
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}.egg-info
%{python{{ pv }}_sitearch}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}.egg-info
{%- else %}
{%- if data.has_packages %}
{%- for package in data.packages %}
%{python{{ pv }}_sitelib}/{{ package | package_to_path(data.name) }}
{%- endfor %}
{%- endif %}
{%- if data.has_pth %}
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}-*.pth
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}-*.pth
{%- endif %}
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{version}-py%{python{{ pv }}_version}.egg-info
%{python{{ pv }}_sitelib}/{{ underscored_or_pypi(data.name, data.underscored_name) }}-%{pypi_version}-py%{python{{ pv }}_version}.egg-info
{%- endif %}
{% endfor %}
{%- if data.sphinx_dir %}
Expand Down
17 changes: 9 additions & 8 deletions pyp2rpm/templates/pld.spec
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,14 @@
%define module {{ data.name }}
%define egg_name {{ data.underscored_name }}
%define pypi_name {{ data.name }}
%define pypi_version {{ data.version }}
Summary: {{ data.summary }}
Name: python-%{pypi_name}
Version: {{ data.version }}
Version: {{ data.version|rpm_version }}
Release: 0.1
License: {{ data.license }}
Group: Libraries/Python
Source0: {{ data.source0|replace(data.name, '%{pypi_name}')|replace(data.version, '%{version}') }}
Source0: {{ data.source0|replace(data.name, '%{pypi_name}')|replace(data.version, '%{pypi_version}') }}
# Source0-md5: -
URL: {{ data.home_page }}
BuildRequires: rpm-pythonprov
Expand All @@ -63,7 +64,7 @@ BuildRequires: rpmbuild(macros) >= 1.714
{%- if not data.has_extension %}
BuildArch: noarch
{%- endif %}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
BuildRoot: %{tmpdir}/%{name}-%{pypi_version}-root-%(id -u -n)

%description
{{ data.description|truncate(400)|wordwrap }}
Expand All @@ -78,7 +79,7 @@ Group: Libraries/Python
{%- endcall %}

%prep
%setup -q -n %{pypi_name}-%{version}
%setup -q -n %{pypi_name}-%{pypi_version}
{%- if data.has_bundled_egg_info %}

# Remove bundled egg-info
Expand Down Expand Up @@ -149,18 +150,18 @@ rm -rf $RPM_BUILD_ROOT
{%- if data.has_extension %}
%{py{{ v }}_sitedir/%{module}
{%- if data.has_pth %}
%{py{{ v }}_sitedir/%{egg_name}-%{version}-py%{python{{ pv }}_version}-*.pth
%{py{{ v }}_sitedir/%{egg_name}-%{pypi_version}-py%{python{{ pv }}_version}-*.pth
{%- endif %}
%{py{{ v }}_sitedir/%{egg_name}-%{version}-py%{python{{ pv }}_version}.egg-info
%{py{{ v }}_sitedir/%{egg_name}-%{pypi_version}-py%{python{{ pv }}_version}.egg-info
{%- else %}
{%- if data.has_packages %}
%{py{{ v }}_sitescriptdir}/%{module}
{%- endif %}

{%- if data.has_pth %}
%{py{{ v }}_sitescriptdir}/%{egg_name}-%{version}-py%{python{{ pv }}_version}-*.pth
%{py{{ v }}_sitescriptdir}/%{egg_name}-%{pypi_version}-py%{python{{ pv }}_version}-*.pth
{%- endif %}
%{py{{ v }}_sitescriptdir}/%{egg_name}-%{version}-py%{python{{ pv }}_version}.egg-info
%{py{{ v }}_sitescriptdir}/%{egg_name}-%{pypi_version}-py%{python{{ pv }}_version}.egg-info
{%- endif %}

{%- endcall %}
9 changes: 5 additions & 4 deletions tests/test_data/python-Jinja2_dnfnc.spec
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Created by pyp2rpm-3.2.3
%global pypi_name Jinja2
%global pypi_version 2.8

Name: python-%{pypi_name}
Version: 2.8
Version: %{pypi_version}
Release: 1%{?dist}
Summary: A small but fast and easy to use stand-alone template engine written in pure python

Expand Down Expand Up @@ -64,7 +65,7 @@ Summary: Jinja2 documentation
Documentation for Jinja2

%prep
%autosetup -n %{pypi_name}-%{version}
%autosetup -n %{pypi_name}-%{pypi_version}
# Remove bundled egg-info
rm -rf %{pypi_name}.egg-info

Expand All @@ -90,13 +91,13 @@ rm -rf html/.{doctrees,buildinfo}
%license docs/_themes/LICENSE LICENSE
%doc README.rst
%{python2_sitelib}/jinja2
%{python2_sitelib}/%{pypi_name}-%{version}-py%{python2_version}.egg-info
%{python2_sitelib}/%{pypi_name}-%{pypi_version}-py%{python2_version}.egg-info

%files -n python3-%{pypi_name}
%license docs/_themes/LICENSE LICENSE
%doc README.rst
%{python3_sitelib}/jinja2
%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info
%{python3_sitelib}/%{pypi_name}-%{pypi_version}-py%{python3_version}.egg-info

%files -n python-%{pypi_name}-doc
%doc html
Expand Down
9 changes: 5 additions & 4 deletions tests/test_data/python-Jinja2_epel6_dnfnc.spec
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
# Created by pyp2rpm-3.2.3
%global pypi_name Jinja2
%global pypi_version 2.8

Name: python-%{pypi_name}
Version: 2.8
Version: %{pypi_version}
Release: 1%{?dist}
Summary: A small but fast and easy to use stand-alone template engine written in pure python

License: BSD
URL: http://jinja.pocoo.org/
Source0: https://files.pythonhosted.org/packages/source/J/%{pypi_name}/%{pypi_name}-%{version}.tar.gz
Source0: https://files.pythonhosted.org/packages/source/J/%{pypi_name}/%{pypi_name}-%{pypi_version}.tar.gz
BuildArch: noarch

BuildRequires: python2-devel
Expand All @@ -34,7 +35,7 @@ Summary: Jinja2 documentation
Documentation for Jinja2

%prep
%setup -q -n %{pypi_name}-%{version}
%setup -q -n %{pypi_name}-%{pypi_version}
# Remove bundled egg-info
rm -rf %{pypi_name}.egg-info

Expand All @@ -56,7 +57,7 @@ rm -rf html/.{doctrees,buildinfo}
%files
%doc README.rst
%{python2_sitelib}/jinja2
%{python2_sitelib}/%{pypi_name}-%{version}-py%{python2_version}.egg-info
%{python2_sitelib}/%{pypi_name}-%{pypi_version}-py%{python2_version}.egg-info

%files -n python-%{pypi_name}-doc
%doc html
Expand Down
Loading

0 comments on commit eeaad79

Please sign in to comment.