summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-rpmfile.spec415
-rw-r--r--sources1
3 files changed, 417 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..eb6cec6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/rpmfile-1.1.1.tar.gz
diff --git a/python-rpmfile.spec b/python-rpmfile.spec
new file mode 100644
index 0000000..f85ccdd
--- /dev/null
+++ b/python-rpmfile.spec
@@ -0,0 +1,415 @@
+%global _empty_manifest_terminate_build 0
+Name: python-rpmfile
+Version: 1.1.1
+Release: 1
+Summary: Read rpm archive files
+License: MIT
+URL: https://github.com/srossross/rpmfile
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/df/a1/4ef3aba6c4c23e38b0ec766f0cd01c9db4abbe6febaa557b47541dc18000/rpmfile-1.1.1.tar.gz
+BuildArch: noarch
+
+Requires: python3-zstandard
+
+%description
+# rpmfile
+
+[![Build Status](https://travis-ci.org/srossross/rpmfile.svg?branch=master)](https://travis-ci.org/srossross/rpmfile)
+[![Actions Status](https://github.com/srossross/rpmfile/workflows/Tests/badge.svg?branch=master&event=push)](https://github.com/srossross/rpmfile/actions)
+[![PyPI version](https://img.shields.io/pypi/v/rpmfile.svg)](https://pypi.org/project/rpmfile)
+
+Tools for inspecting RPM files in python. This module is modeled after the
+[tarfile](https://docs.python.org/3/library/tarfile.html) module.
+
+## Install
+
+```console
+$ python -m pip install -U rpmfile
+```
+
+If you want to use `rpmfile` with `zstd` compressed rpms, you'll need to install
+the [zstandard](https://pypi.org/project/zstandard/) module.
+
+`zstd` also requires that you are using Python >= 3.5
+
+```console
+$ python -m pip install -U zstandard
+```
+
+## Example
+
+See the [tests](tests/test_extract.py) for more examples.
+
+```python
+import rpmfile
+
+with rpmfile.open('file.rpm') as rpm:
+
+ # Inspect the RPM headers
+ print(rpm.headers.keys())
+ print(rpm.headers.get('arch', 'noarch'))
+
+ # Extract a fileobject from the archive
+ fd = rpm.extractfile('./usr/bin/script')
+ print(fd.read())
+
+ for member in rpm.getmembers():
+ print(member)
+```
+
+## Command line usage
+
+You can use `rpmfile` via it's module invocation or via `rpmfile` command if
+your `PATH` environment variable is configured correctly. Pass `--help` for all
+options.
+
+List RPM contents
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | python -m rpmfile -l -
+./path/to/file
+```
+
+Extract files
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | rpmfile -xv -
+./path/to/file
+```
+
+Extract files to directory
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | rpmfile -xvC /tmp -
+/tmp/path/to/file
+```
+
+Display RPM information (similar to command `rpm -qip` in Linux)
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' |gzip -d - | rpmfile -i -
+Name : something
+Version : 1.02
+Release : 1
+Architecture: noarch
+Group : default
+Size : 1234
+License : BSD
+Signature : None
+Source RPM : some.src.rpm
+Build Date : Tue Apr 9 08:55:16 2019
+Build Host : demo
+URL : http://example.com/some
+Summary : Example of something
+Description :
+The description of something.
+It can display more than one line.
+```
+
+
+## Classes
+
+* rpmfile.RPMFile: The RPMFile object provides an interface to a RPM archive
+* rpmfile.RPMInfo: An RPMInfo object represents one member in a RPMFile.
+
+## Contributing
+
+The [black](https://github.com/psf/black) formater should be used on all files
+before submitting a contribution. Version 19.10b0.
+
+```console
+$ pip install black==19.10b0
+$ black .
+```
+
+## Code in this module was borrowed from:
+
+* https://bitbucket.org/krp/cpiofile
+* https://github.com/mjvm/pyrpm
+
+
+%package -n python3-rpmfile
+Summary: Read rpm archive files
+Provides: python-rpmfile
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-rpmfile
+# rpmfile
+
+[![Build Status](https://travis-ci.org/srossross/rpmfile.svg?branch=master)](https://travis-ci.org/srossross/rpmfile)
+[![Actions Status](https://github.com/srossross/rpmfile/workflows/Tests/badge.svg?branch=master&event=push)](https://github.com/srossross/rpmfile/actions)
+[![PyPI version](https://img.shields.io/pypi/v/rpmfile.svg)](https://pypi.org/project/rpmfile)
+
+Tools for inspecting RPM files in python. This module is modeled after the
+[tarfile](https://docs.python.org/3/library/tarfile.html) module.
+
+## Install
+
+```console
+$ python -m pip install -U rpmfile
+```
+
+If you want to use `rpmfile` with `zstd` compressed rpms, you'll need to install
+the [zstandard](https://pypi.org/project/zstandard/) module.
+
+`zstd` also requires that you are using Python >= 3.5
+
+```console
+$ python -m pip install -U zstandard
+```
+
+## Example
+
+See the [tests](tests/test_extract.py) for more examples.
+
+```python
+import rpmfile
+
+with rpmfile.open('file.rpm') as rpm:
+
+ # Inspect the RPM headers
+ print(rpm.headers.keys())
+ print(rpm.headers.get('arch', 'noarch'))
+
+ # Extract a fileobject from the archive
+ fd = rpm.extractfile('./usr/bin/script')
+ print(fd.read())
+
+ for member in rpm.getmembers():
+ print(member)
+```
+
+## Command line usage
+
+You can use `rpmfile` via it's module invocation or via `rpmfile` command if
+your `PATH` environment variable is configured correctly. Pass `--help` for all
+options.
+
+List RPM contents
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | python -m rpmfile -l -
+./path/to/file
+```
+
+Extract files
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | rpmfile -xv -
+./path/to/file
+```
+
+Extract files to directory
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | rpmfile -xvC /tmp -
+/tmp/path/to/file
+```
+
+Display RPM information (similar to command `rpm -qip` in Linux)
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' |gzip -d - | rpmfile -i -
+Name : something
+Version : 1.02
+Release : 1
+Architecture: noarch
+Group : default
+Size : 1234
+License : BSD
+Signature : None
+Source RPM : some.src.rpm
+Build Date : Tue Apr 9 08:55:16 2019
+Build Host : demo
+URL : http://example.com/some
+Summary : Example of something
+Description :
+The description of something.
+It can display more than one line.
+```
+
+
+## Classes
+
+* rpmfile.RPMFile: The RPMFile object provides an interface to a RPM archive
+* rpmfile.RPMInfo: An RPMInfo object represents one member in a RPMFile.
+
+## Contributing
+
+The [black](https://github.com/psf/black) formater should be used on all files
+before submitting a contribution. Version 19.10b0.
+
+```console
+$ pip install black==19.10b0
+$ black .
+```
+
+## Code in this module was borrowed from:
+
+* https://bitbucket.org/krp/cpiofile
+* https://github.com/mjvm/pyrpm
+
+
+%package help
+Summary: Development documents and examples for rpmfile
+Provides: python3-rpmfile-doc
+%description help
+# rpmfile
+
+[![Build Status](https://travis-ci.org/srossross/rpmfile.svg?branch=master)](https://travis-ci.org/srossross/rpmfile)
+[![Actions Status](https://github.com/srossross/rpmfile/workflows/Tests/badge.svg?branch=master&event=push)](https://github.com/srossross/rpmfile/actions)
+[![PyPI version](https://img.shields.io/pypi/v/rpmfile.svg)](https://pypi.org/project/rpmfile)
+
+Tools for inspecting RPM files in python. This module is modeled after the
+[tarfile](https://docs.python.org/3/library/tarfile.html) module.
+
+## Install
+
+```console
+$ python -m pip install -U rpmfile
+```
+
+If you want to use `rpmfile` with `zstd` compressed rpms, you'll need to install
+the [zstandard](https://pypi.org/project/zstandard/) module.
+
+`zstd` also requires that you are using Python >= 3.5
+
+```console
+$ python -m pip install -U zstandard
+```
+
+## Example
+
+See the [tests](tests/test_extract.py) for more examples.
+
+```python
+import rpmfile
+
+with rpmfile.open('file.rpm') as rpm:
+
+ # Inspect the RPM headers
+ print(rpm.headers.keys())
+ print(rpm.headers.get('arch', 'noarch'))
+
+ # Extract a fileobject from the archive
+ fd = rpm.extractfile('./usr/bin/script')
+ print(fd.read())
+
+ for member in rpm.getmembers():
+ print(member)
+```
+
+## Command line usage
+
+You can use `rpmfile` via it's module invocation or via `rpmfile` command if
+your `PATH` environment variable is configured correctly. Pass `--help` for all
+options.
+
+List RPM contents
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | python -m rpmfile -l -
+./path/to/file
+```
+
+Extract files
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | rpmfile -xv -
+./path/to/file
+```
+
+Extract files to directory
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' | gzip -d - | rpmfile -xvC /tmp -
+/tmp/path/to/file
+```
+
+Display RPM information (similar to command `rpm -qip` in Linux)
+
+```conosle
+curl -sfL 'https://example.com/some.rpm.gz' |gzip -d - | rpmfile -i -
+Name : something
+Version : 1.02
+Release : 1
+Architecture: noarch
+Group : default
+Size : 1234
+License : BSD
+Signature : None
+Source RPM : some.src.rpm
+Build Date : Tue Apr 9 08:55:16 2019
+Build Host : demo
+URL : http://example.com/some
+Summary : Example of something
+Description :
+The description of something.
+It can display more than one line.
+```
+
+
+## Classes
+
+* rpmfile.RPMFile: The RPMFile object provides an interface to a RPM archive
+* rpmfile.RPMInfo: An RPMInfo object represents one member in a RPMFile.
+
+## Contributing
+
+The [black](https://github.com/psf/black) formater should be used on all files
+before submitting a contribution. Version 19.10b0.
+
+```console
+$ pip install black==19.10b0
+$ black .
+```
+
+## Code in this module was borrowed from:
+
+* https://bitbucket.org/krp/cpiofile
+* https://github.com/mjvm/pyrpm
+
+
+%prep
+%autosetup -n rpmfile-1.1.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-rpmfile -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.1-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..05594ce
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+1827aa3096833dbea55d21d2a7c3f849 rpmfile-1.1.1.tar.gz