プロジェクト

全般

プロフィール

機能 #53

完了

CentOS 6用のpython pywinrmパッケージのRPM作成

高橋 徹 さんが約8年前に追加. ほぼ8年前に更新.

ステータス:
終了
優先度:
通常
担当者:
カテゴリ:
-
対象バージョン:
-
開始日:
2016/01/28
期日:
進捗率:

100%

予定工数:

説明

pythonのパッケージ pywinrm は、CentOSの公式リポジトリにもEPELにも、その他のメジャーなRPMリポジトリにも見当たらない。
そこで、PythonモジュールからRPMパッケージを作成する。

状況

  • 試行1
    pythonの標準機能? bdist_rpmで、isodate RPMができた。
    ただし、RPMパッケージ名がCentOS/RHELの慣習から逸脱
  • 試行2
    bdist_rpmに--spec-onlyオプションを指定して生成されるSPECファイルを修正し、python-pywinrmという名前でPRMができた。

ここで、isodateとxmltodicはEPELリポジトリに存在することを知った・・・

高橋 徹 さんが約8年前に更新

  • ステータス新規 から 進行中 に変更
  • 進捗率0 から 50 に変更

インターネットに接続されたマシン上で、python の pywinrm パッケージをダウンロードする。

ダウンロードに使用するpipのインストール

# yum install python-setuptools
# easy_install pip

pywinrmとその依存パッケージのダウンロード

work$ pip install -d .
work$ ls
isodate-0.5.4.tar.gz  pywinrm-0.1.1.tar.gz  xmltodict-0.9.2.tar.gz

pywinrm が、isodateとxmltodictに依存している。

高橋 徹 さんが約8年前に更新

isodateのRPM化(試行1)

work$ tar xvzf isodate-0.5.4.tar.gz
work$ cd isodate-0.5.4
isodate-0.5.4$ python setup.py bdist_rpm
isodate-0.5.4$ ls dist
isodate-0.5.4-1.noarch.rpm  isodate-0.5.4-1.src.rpm  isodate-0.5.4.tar.gz
isodate-0.5.4$

できました!
が、RPMパッケージ名がisodateとなっています。CentOS/RHELでは、pythonパッケージのRPMパッケージ名はpython-isodateのように接頭辞python-を付けるのが慣習です。

高橋 徹 さんが約8年前に更新

isodateのRPM化(試行2)

SPECファイルを生成し、それを修正してRPMパッケージを作成する。

isodate-0.5.4$ python setup.py bdist_rpm --spec-only
isodate-0.5.4$ ls dist
isodate.spec

生成されたSPECファイルとパッケージのtarボールをRPMビルド作業用ディレクトリへコピー

isodate-0.5.4$ cp dist/isodate.spec ~/rpmbuild/SPECS/python-isodate.spec
isodate-0.5.4$ cp ../isodate-0.5.4.tar.gz ~/rpmbuild/SOURCES

SPECファイルの修正

@@ -1,14 +1,14 @@
-%define name isodate
+%define original_name isodate
 %define version 0.5.4
 %define unmangled_version 0.5.4
 %define unmangled_version 0.5.4
 %define release 1

 Summary: An ISO 8601 date/time/duration parser and formatter
-Name: %{name}
+Name: python-%{original_name}
 Version: %{version}
 Release: %{release}
-Source0: %{name}-%{unmangled_version}.tar.gz
+Source0: %{original_name}-%{unmangled_version}.tar.gz
 License: BSD
 Group: Development/Libraries
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
@@ -271,7 +271,7 @@

 %prep
-%setup -n %{name}-%{unmangled_version} -n %{name}-%{unmangled_version}
+%setup -n %{original_name}-%{unmangled_version}

 %build
 python setup.py build

RPMビルドの実行

~$ rpmbuild -ba ~/rpmbuild/SPECS/python-isodate.spec
  :

できた!

  • rpmbuild/RPMS/noarch/python-isodate-0.5.4-1.noarch.rpm

高橋 徹 さんが約8年前に更新

xmltodictのRPM化

同様に実施

@@ -1,14 +1,14 @@
-%define name xmltodict
+%define original_name xmltodict
 %define version 0.9.2
 %define unmangled_version 0.9.2
 %define unmangled_version 0.9.2
 %define release 1

 Summary: Makes working with XML feel like you are working with JSON
-Name: %{name}
+Name: python-%{original_name}
 Version: %{version}
 Release: %{release}
-Source0: %{name}-%{unmangled_version}.tar.gz
+Source0: %{original_name}-%{unmangled_version}.tar.gz
 License: MIT
 Group: Development/Libraries
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
@@ -21,7 +21,7 @@
 UNKNOWN

 %prep
-%setup -n %{name}-%{unmangled_version} -n %{name}-%{unmangled_version}
+%setup -n %{original_name}-%{unmangled_version}

 %build
 python setup.py build

高橋 徹 さんが約8年前に更新

pywinrmのRPM化

同様に実施

@@ -1,13 +1,13 @@
-%define name pywinrm
+%define original_name pywinrm
 %define version 0.1.1
 %define unmangled_version 0.1.1
 %define release 1

 Summary: Python library for Windows Remote Management
-Name: %{name}
+Name: python-%{original_name}
 Version: %{version}
 Release: %{release}
-Source0: %{name}-%{unmangled_version}.tar.gz
+Source0: %{original_name}-%{unmangled_version}.tar.gz
 License: MIT license
 Group: Development/Libraries
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
@@ -21,7 +21,7 @@
 UNKNOWN

 %prep
-%setup -n %{name}-%{unmangled_version}
+%setup -n %{original_name}-%{unmangled_version}

 %build
 python setup.py build

高橋 徹 さんが約8年前に更新

  • 説明 を更新 (差分)
  • ステータス進行中 から 解決 に変更
  • 進捗率50 から 80 に変更

高橋 徹 さんがほぼ8年前に更新

  • ステータス解決 から 終了 に変更
  • 進捗率80 から 100 に変更

他の形式にエクスポート: Atom PDF