2020年9月25日金曜日

Athrill2 の deb パッケージを作成する

deb パッケージの作成に必要な環境を構築

# deb パッケージビルドに必要な環境変数を設定
export DEBFULLNAME="mikoto2000"
export DEBMAIL=mikoto2000@gmail.com
export LONGNAME="mikoto2000"
export USER="mikoto2000"

# 必要なパッケージのインストール
apt-get update
apt-get install -y build-essential dh-make fakeroot devscripts pbuilder cdbs git vim

deb パッケージビルドに必要なファイル群の取得・生成

# deb パッケージ用のディレクトリ作成
mkdir athrill
cd athrill

# オリジナルのソースコード取得
git clone --recurse-submodules https://github.com/toppers/athrill.git
git clone --recurse-submodules https://github.com/toppers/athrill-target-rh850f1x.git

# deb パッケージに必要なファイル群を生成
dh_make --createorig -s -e ${DEBMAIL} -p athrill_2.0.0

# サンプルファイル類削除
rm -rf debian/*.ex
rm -rf debian/*.EX

メタデータ編集

debian/control

Source: athrill
Section: misc
Priority: optional
Maintainer: kanetugu2015 <kanetugu2015@gmail.com>
Bugs: https://github.com/toppers/athrill-target-rh850f1x
Build-Depends: debhelper (>= 10)
Standards-Version: 4.1.2
Homepage: https://github.com/toppers/athrill-target-rh850f1x

Package: athrill
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Athrill emulator for RH850F1x.

コピーライト修正

debian/copyright

TOPPERS ライセンスに修正。

Format:  http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: athrill
Source: https://github.com/toppers/athrill-target-rh850f1x

Files: *
Copyright: 2019 by Center for Embedded Computing Systems
                     Graduate School of Informatics, Nagoya Univ., JAPAN
           2019 by ESM, Inc.
License: TOPPERS License
 上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
 ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
 再配布(以下,利用と呼ぶ)することを無償で許諾する.
 (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     表示,この利用条件および下記の無保証規定が,そのままの形でソース
     コード中に含まれていること.
 (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     証規定を掲載すること.
 (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     できない形で再配布する場合には,次のいずれかの条件を満たすこと.
   (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
       権表示,この利用条件および下記の無保証規定を掲載すること.
   (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
       告すること.
 (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.

 本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
 びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
 る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
 により直接的または間接的に生じたいかなる損害に関しても,その責任を負
 わない.

ビルドスクリプト修正

debian/rules

#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
 
install/athrill::
    install -pd $(DEB_DESTDIR)/usr/bin
    install -pm 755 athrill/bin/linux/* $(DEB_DESTDIR)/usr/bin

build/athrill::
    cd athrill-target-rh850f1x/build_linux; make

コミット・ビルド

# 初回は必要ない(`dpkg-source: info: there are no local changes to record` になるはず)
dpkg-source --commit

# ビルド・もろもろの成果物生成
debuild -rfakeroot -uc -us

ビルドが実行され、 athrill_2.0.0-1_amd64.deb が生成される。

成果物の確認

./
 +- athrill/                          : deb パッケージ用ディレクトリ
 |   +- athrill/                      : clone した athrill リポジトリ
 |   +- athrill-target-rh850f1x/      : clone した athrill-target-rh850f1x リポジトリ
 |   +- debian/                       : deb パッケージに必要な情報を入れたディレクトリ
 +- athrill_2.0.0-1.debian.tar.xz     : debian ディレクトリの中身を圧縮したもの
 +- athrill_2.0.0-1_amd64.build       : ビルドログ
 +- athrill_2.0.0-1_amd64.changes     : 変更履歴
 +- athrill_2.0.0.orig.tar.xz         : オリジナルソースコードを圧縮したもの
 +- athrill-dbgsym_2.0.0-1_amd64.ddeb : デバッグシンボルパッケージ
 +- athrill_2.0.0-1.dsc               : ソースコードの概要が記述されたファイル
 +- athrill_2.0.0-1_amd64.buildinfo   : ビルド時の環境情報
 +- athrill_2.0.0-1_amd64.deb         : apt, dpkg でインストールできるバイナリパッケージ

あとは、生成された athrill_2.0.0-1_amd64.deb を配布すれば OK。

一般的には、これを git-buildpackage で管理するらしいので、その方法を勉強しないと…

以上。

参考資料

0 件のコメント:

コメントを投稿