CentOS 8 で FDclone のビルドに失敗する対策

同様の問題に直面している人がいないのか、直接的な情報を見つけられなかったので。

# 結論
ソースを展開してSPECファイルをUTF8で編集・修正して再度アーカイブして今まで通りにrpmbuildする

# 環境
- 記事執筆時点のさくらVPSでCentOS 8を選択しインストールした環境
- FD-3.01j(多分過去のバージョンも)

```
# uname -a
Linux ${HOSTNAME} 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00:20:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
```

#現象
rpmbuildすると、こんな表示が出てビルドが完了しない。


```
# rpmbuild -tb --clean ./FD-3.01j.tar.gz
warning: bogus date in %changelog: Tue Jul  7 2004 Takashi SHIRAI <shirai@unixusers.net>
warning: bogus date in %changelog: Tue Sep 17 2003 Takashi SHIRAI <shirai@unixusers.net>
warning: Package FDclone: invalid utf-8 encoding in Description: FDclone is a file& directory maintenance tool for the UNIX
based OS.  It is a clone of "FD" for MS-DOS, made by Mr.
A.Idei <SDI00544@niftyserve.or.jp> in 1989.

%description(ja)
FDclone �ϡ�1989ǯ�� A.Idei <SDI00544@niftyserve.or.jp> ����
���ˤ��ä� MS-DOS �Ѥ˺������줿�أƣġ٤��Ϥ�����UNIX �١�
���� OS ���ѤΥե����� & �ǥ��쥯�ȥ������ġ����Ǥ��� - Invalid or incomplete multibyte orwide character
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.oWoPi3
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD

中略


RPM build errors:
    bogus date in %changelog: Tue Jul  7 2004 Takashi SHIRAI <shirai@unixusers.net>
    bogus date in %changelog: Tue Sep 17 2003 Takashi SHIRAI <shirai@unixusers.net>
    Package FDclone: invalid utf-8 encoding in Description: FDclone is a file & directory maintenance tool for the UNIX
based OS.  It is a clone of "FD" for MS-DOS, made by Mr.
A.Idei <SDI00544@niftyserve.or.jp> in 1989.

%description(ja)
FDclone �ϡ�1989ǯ�� A.Idei <SDI00544@niftyserve.or.jp> ����
���ˤ��ä� MS-DOS �Ѥ˺������줿�أƣġ٤��Ϥ�����UNIX �١�
���� OS ���ѤΥե����� & �ǥ��쥯�ȥ������ġ����Ǥ��� - Invalid or incomplete multibyte orwide character
    Empty %files file /root/rpmbuild/BUILD/FD-3.01j/debugsourcefiles.list

```

# 調べたこと
### bogus dateの意味
偽りの曜日だそうで。
Tue Jul  7 2004 の日付が正しいとするなら、水曜日なので Tue ではなく Wed です。曜日が正しいなら 6 です。
Tue Sep 17 2003 の日付が正しいとするなら、水曜日なので Tue ではなく Wed です。曜日が正しいなら 16 です。

### 文字コード関連
rpmbuildのSPECファイルはUTF-8で書くそうですが、fd.specはEUCで書かれていました。

### error: Empty %files file /root/rpmbuild/BUILD/FD-3.01j/debugsourcefiles.list
ググってみると、有益な情報を得ることができました。debugsourcefiles.listを作成しないことで回避できるようです。

バグ #4555: RPM build errors: Empty %files file ...
https://www.openrtm.org/redmine/issues/4555

# やったこと
作業ディレクトリを作りソースファイルをダウンロードして展開

```
mkdir tmp
cd tmp
wget http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.01j.tar.gz
tar zxvf .FD-3.01j.tar.gz
```
./FD-3.01j/fd.specをUTF8で編集

```
vim ./FD-3.01j/fd.spec
```

%global debug_package %{nil} は %prep と %setup より前であることが必要。

29行目から3行を削除し・・・

```
FDclone ?ϡ?1989ǯ?ﾋ A.Idei <SDI00544@niftyserve.or.jp> ?皃ﾎ
?熙ﾋ?隍ﾃ?ﾆ MS-DOS ﾍﾑ?˺鋿????줿?أƣġ٤Ϥ?????UNIX ?١?
???ﾎ OS ﾈﾆﾍﾑ?Υե????・& ?ǥ??쥯?ȥ・ﾉﾍ?ġ??・ﾇ????
```
5行追加。

```
FDclone は、1989年に A.Idei <SDI00544@niftyserve.or.jp> 氏の
手によって MS-DOS 用に作成された『ＦＤ』を模した、UNIX ベー
スの OS 汎用のファイル & ディレクトリ管理ツールです。

%global debug_package %{nil}
```

日付は正しいと仮定して、173行目あたり（更新履歴の最後の方）にある曜日を修正
Tueから・・・

```
* Tue Jul  7 2004 Takashi SHIRAI <shirai@unixusers.net>
* Tue Sep 17 2003 Takashi SHIRAI <shirai@unixusers.net>
```

Wedへ

```
* Wed Jul  7 2004 Takashi SHIRAI <shirai@unixusers.net>
* Wed Sep 17 2003 Takashi SHIRAI <shirai@unixusers.net>
```

再度アーカイブ

```
tar czvf FD-3.01j.tar.gz ./FD-3.01j
```
あとはいつも通りrpmbuildしてできあがったrpmパッケージをインストール。

```
rpmbuild -tb FD-3.01j.tar.gz
rpm -ivh ~/rpmbuild/RPMS/x86_64/FDclone-3.01j-1.x86_64.rpm
```


以上。