目次

Samba AD DCパッケージの再構築

rpmbuild 環境を整える

Fedora 16 - 20
注意: 以下の文献は古いです😅 yum を dnf に置き換えて作業する必要がありそうです🤔
dnf / yum 比較 - パッケージ管理関連

$ sudo yum install @development-tools
$ sudo yum install fedora-packager


CentOS 7

$ sudo yum groupinstall "Development Tools"
$ sudo yum install fedora-packager

※インストール可能なグループ一覧を取得するには、 bash -c 'LANG=C;yum grouplist' を実行する。

rpmbuild を行うためのディレクトリ構造を作成

必ず root 以外で作業すること。

$ rpmdev-setuptree

ホームディレクトリに以下の構造が作成される。

rpmbuild
   +-- BUILD
   +-- BUILDROOT
   +-- RPMS
   +-- SOURCES
   +-- SPECS
   +-- SRPMS

ソースパッケージのダウンロード

Fedora 20

$ yumdownloader --source samba


直接最新をダウンロードする場合
$ curl -O https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/source/SRPMS/s/samba-4.1.1-2.fc21.src.rpm
※fc22用はlibldb-devel-1.1.17を要求するので、Fedora20ではビルドできない。
$ curl -O https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/source/SRPMS/s/samba-4.1.11-1.fc22.2.src.rpm

$ curl -O https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/SRPMS/Packages/s/samba-4.9.0-0.2.rc3.fc30.src.rpm

curl: (35) SSL connect error が発生する場合

$ sudo yum update nss

ソースパッケージのインストール

$ sudo useradd mockbuild
$ sudo passwd mockbuild
$ rpm -ivh samba-4.9.0-0.2.rc3.fc30.src.rpm

specファイルを修正してSamba AD DCを有効化

$ cp ~/rpmbuild/SPECS/samba.spec ~/rpmbuild/SPECS/samba.spec.org
$ vi ~/rpmbuild/SPECS/samba.spec
変更箇所 変更前 変更後 備考
46行目付近
%global with_mitkrb5 1
%global with_dc 0
%global with_mitkrb5 0
%global with_dc 1
MIT Kerberos 5を無効にしてheimdal kerberosを組み込む。
Samba AD DCの機能を有効化する。
66行目付近
Release:        %{samba_release}
Release:        %{samba_release}.mgc
本家のパッケージ名と衝突しないようにする。
samba-4.1.1-2.fc19.mgc.x86_64.rpmにする。

その他changelogの曜日を修正。

$ diff ~/rpmbuild/SPECS/samba.spec.org ~/rpmbuild/SPECS/samba.spec
46,47c46,47
< %global with_mitkrb5 1
< %global with_dc 0
---
> %global with_mitkrb5 0
> %global with_dc 1
66c66
< Release:        %{samba_release}
---
> Release:        %{samba_release}.mgc

ビルドに必要なパッケージのインストール

$ sudo yum-builddep ~/rpmbuild/SPECS/samba.spec
読み込んだプラグイン:refresh-packagekit
エラー: 371 行目: 不明なタグ: パッケージ libldb はインストールされていません。
Bad spec: /home/tomoyan/rpmbuild/SPECS/samba.spec
No uninstalled build requires
371 %requires_eq libldb

Bug 1597701 - samba-4.8.3-1.fc29.2 FTBFS: %requires_eq breaks building in non-English locale

RPMパッケージの再構築

$ rpmbuild -ba rpmbuild/SPECS/samba.spec

野良リポジトリに野良パッケージをコピー

野良リポジトリの構築方法はyumプライベートリポジトリの構築を参照のこと。

Webサーバーで公開用ディレクトリを作成

$ sudo mkdir -p /usr/share/nginx/html/pub/fedora/20/x86_64/
$ sudo mkdir -p /usr/share/nginx/html/pub/fedora/20/SRPMS/

パッケージの配置

$ scp -P 22 ~/rpmbuild/RPMS/x86_64/* tomoyan@tomoyan.net:/usr/share/nginx/html/pub/fedora/20/x86_64/
$ scp -P 22 ~/rpmbuild/SRPMS/* tomoyan@tomoyan.net:/usr/share/nginx/html/pub/fedora/20/SRPMS/

Webサーバーでリポジトリデータの作成

$ sudo createrepo -v /usr/share/nginx/html/pub/fedora/19/x86_64/
$ sudo createrepo -v /usr/share/nginx/html/pub/fedora/19/SRPMS/

野良リポジトリからのインストール

野良リポジトリの設定

インストール先のマシンに野良リポジトリの設定を行う。

$ sudo vi /etc/yum.repos.d/mgc.repo
[mgc]
name=Fedora $releasever - $basearch Monster's Garage Repository
failovermethod=priority
baseurl=http://monsters-g.com/pub/fedora/$releasever/$basearch/
enabled=0
gpgcheck=0
priority=1

[mgc-source]
name=Fedora $releasever - $basearch Monster's Garage Source Repository
failovermethod=priority
baseurl=http://monsters-g.com/pub/fedora/$releasever/SRPMS/
enabled=0
gpgcheck=0
priority=1

野良リポジトリからのインストール

野良リポジトリを有効にしてyumを実行する。

$ sudo yum install samba samba-dc samba-pidl samba-client \
samba-winbind samba-winbind-clients samba-winbind-krb5-locator \
--enablerepo=mgc
mgc                                                                            | 2.9 kB  00:00:00
mgc/19/x86_64/primary_db                                                       |  52 kB  00:00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ samba.x86_64 2:4.0.9-1.fc19.mgc を インストール
...
依存性を解決しました

======================================================================================================
 Package                            アーキテクチャー
                                                   バージョン                   リポジトリー     容量
======================================================================================================
インストール中:
 samba                              x86_64         2:4.0.9-1.fc19.mgc           mgc             529 k
 samba-client                       x86_64         2:4.0.9-1.fc19.mgc           mgc             453 k
 samba-dc                           x86_64         2:4.0.9-1.fc19.mgc           mgc             754 k
 samba-pidl                         x86_64         2:4.0.9-1.fc19.mgc           mgc             150 k
 samba-winbind                      x86_64         2:4.0.9-1.fc19.mgc           mgc             434 k
 samba-winbind-clients              x86_64         2:4.0.9-1.fc19.mgc           mgc             140 k
 samba-winbind-krb5-locator         x86_64         2:4.0.9-1.fc19.mgc           mgc              61 k
依存性関連でのインストールをします:
 iniparser                          x86_64         3.1-2.fc19                   fedora           13 k
 libsmbclient                       x86_64         2:4.0.9-1.fc19.mgc           mgc             109 k
 libwbclient                        x86_64         2:4.0.9-1.fc19.mgc           mgc              77 k
 perl                               x86_64         4:5.16.3-265.fc19            updates         8.3 M
 perl-Carp                          noarch         1.26-243.fc19                fedora           19 k
 perl-Encode                        x86_64         2.54-1.fc19                  updates         1.5 M
 perl-Filter                        x86_64         1.49-1.fc19                  fedora           76 k
 perl-Parse-Yapp                    noarch         1.05-50.fc19                 fedora           47 k
 perl-PathTools                     x86_64         3.40-3.fc19                  updates          82 k
 perl-Pod-Escapes                   noarch         1:1.04-265.fc19              updates          47 k
 perl-Pod-Simple                    noarch         1:3.20-265.fc19              updates         236 k
 perl-Scalar-List-Utils             x86_64         1.27-246.fc19                fedora           36 k
 perl-Socket                        x86_64         2.009-2.fc19                 fedora           48 k
 perl-libs                          x86_64         4:5.16.3-265.fc19            updates         668 k
 perl-macros                        x86_64         4:5.16.3-265.fc19            updates          40 k
 perl-threads                       x86_64         1.87-1.fc19                  fedora           49 k
 perl-threads-shared                x86_64         1.43-2.fc19                  fedora           38 k
 samba-common                       x86_64         2:4.0.9-1.fc19.mgc           mgc             694 k
 samba-dc-libs                      x86_64         2:4.0.9-1.fc19.mgc           mgc             776 k
 samba-libs                         x86_64         2:4.0.9-1.fc19.mgc           mgc             4.8 M
 samba-python                       x86_64         2:4.0.9-1.fc19.mgc           mgc             1.9 M

トランザクションの要約
======================================================================================================
インストール  7 パッケージ (+21 個の依存関係のパッケージ)

総ダウンロード容量: 22 M
インストール容量: 83 M
Is this ok [y/d/N]: y <-- 野良と依存パッケージを確認してyを入力。

Sambaのインストール確認

$ samba -V
Version 4.0.9
$ samba-tool -V
4.0.9
$ smbclient -V
Version 4.0.9

参考文献

Samba 4/OS Requirements - SambaWiki
[samba] Add support to conditionally enable the testsuite.
Fedora 18/19/... AD DC?