6.4.4. サンプル Python プログラムの spec ファイルの例
Python プログラミング言語 (pello) で書かれたサンプルプログラムのアノテーション付きサンプル 仕様 ファイルを確認してください。
spec ファイル内にインラインでラッパースクリプトを作成するこの例は、spec ファイル自体がスクリプト可能であることを示しています。このラッパースクリプトは、ヒア ドキュメントを使用して、Python のバイトコンパイルされたコードを実行します。
例6.4 pello プログラムの仕様ファイルの例
Name: pello
Version: 0.1.1
Release: 1%{?dist}
Summary: Hello World example implemented in Python
License: GPLv3+
URL: https://www.example.com/%{name}
Source0: https://www.example.com/%{name}/releases/%{name}-%{version}.tar.gz
BuildRequires: python
Requires: python
Requires: bash
BuildArch: noarch
%description
The long-tail description for our Hello World Example implemented in Python.
%prep
%setup -q
%build
python -m compileall %{name}.py
%install
mkdir -p %{buildroot}/%{_bindir}
mkdir -p %{buildroot}/usr/lib/%{name}
cat > %{buildroot}/%{_bindir}/%{name} <<EOF
#!/bin/bash
/usr/bin/python /usr/lib/%{name}/%{name}.pyc
EOF
chmod 0755 %{buildroot}/%{_bindir}/%{name}
install -m 0644 %{name}.py* %{buildroot}/usr/lib/%{name}/
%files
%license LICENSE
%dir /usr/lib/%{name}/
%{_bindir}/%{name}
/usr/lib/%{name}/%{name}.py*
%changelog
* Tue May 31 2016 Adam Miller <maxamillion@fedoraproject.org> - 0.1.1-1
- First pello package
Requiresディレクティブ (パッケージにランタイム依存関係を指定) には、以下の 2 つのパッケージが含まれます。-
実行時にバイトコンパイルされたコードを実行するために必要な
Pythonパッケージ。 -
小さなエントリーポイントスクリプトを実行するために必要な
bashパッケージ。
-
実行時にバイトコンパイルされたコードを実行するために必要な
-
BuildRequiresディレクティブは、パッケージのビルド時の依存関係を指定し、pythonパッケージのみを含みます。Pelloプログラムは、バイトコンパイルのビルドプロセスを実行するためにPythonを必要とします。 -
ソフトウェアのビルド方法を指定する
%buildセクションでは、スクリプトのバイトコンパイルバージョンを作成します。実際のパッケージングでは、使用されるディストリビューションに応じて、通常は自動的に実行されることに注意してください。 -
%installセクションは、バイトコンパイルされたファイルをシステム上のライブラリーディレクトリーにインストールしてアクセスできるようにする必要があるという事実に一致しています。