SUSEでsambaをコンパイル?

Page content

suseでSambaを入れる奇特なケースに備えて調査を行った。とりあえずconfigureが通ればコンパイルはできるだろうという仮定でやってみる。

ダウンロード https://www.samba.org/samba/download/

依存関係

ソースの中に依存関係を解決するいい感じのスクリプトを発見。

$ cd <samba-source-dir>/bootstrap/generated-dists/<distrowithversion>
$ ./bootstrap.sh
$ cd ../../../..

基本的にこれをやれば通るはず….

Opensuse15用のBootstrapは下記のとおりとなっている。 SLES12でも対して依存関係は変わらないと思われるので、これを一回流しておくのが良いはず。

#!/bin/bash

#
# This file is generated by 'bootstrap/template.py --render'
# See also bootstrap/config.py
#

set -xueo pipefail

zypper --non-interactive refresh
zypper --non-interactive update
zypper --non-interactive install \
    --no-recommends \
    system-user-nobody \
    ShellCheck \
    acl \
    attr \
    autoconf \
    avahi-devel \
    bind-utils \
    binutils \
    bison \
    ccache \
    chrpath \
    crypto-policies-scripts \
    cups-devel \
    curl \
    dbus-1-devel \
    docbook-dtds \
    docbook-xsl-stylesheets \
    flex \
    gawk \
    gcc \
    gdb \
    git \
    glib2-devel \
    glibc-locale \
    glusterfs-devel \
    gnutls \
    gnutls-devel \
    gpgme-devel \
    gzip \
    hostname \
    htop \
    jq \
    keyutils-devel \
    krb5-client \
    krb5-devel \
    krb5-server \
    lcov \
    libacl-devel \
    libarchive-devel \
    libattr-devel \
    libblkid-devel \
    libbsd-devel \
    libcap-devel \
    libcephfs-devel \
    libicu-devel \
    libjansson-devel \
    libpcap-devel \
    libtasn1-devel \
    libtirpc-devel \
    libunwind-devel \
    liburing-devel \
    libuuid-devel \
    libxslt \
    lmdb \
    lmdb-devel \
    lsb-release \
    make \
    mingw64-gcc \
    ncurses-devel \
    openldap2-devel \
    pam-devel \
    patch \
    perl \
    perl-Archive-Tar-Wrapper \
    perl-ExtUtils-MakeMaker \
    perl-JSON \
    perl-JSON-XS \
    perl-Parse-Yapp \
    perl-Test-Base \
    pkgconfig \
    popt-devel \
    procps \
    psmisc \
    python3 \
    python3-Markdown \
    python3-cryptography \
    python3-devel \
    python3-dnspython \
    python3-gpg \
    python3-policycoreutils \
    python3-pyasn1 \
    python3-python-dateutil \
    python3-requests \
    python3-semanage \
    python3-setproctitle \
    readline-devel \
    rng-tools \
    rpcgen \
    rpcsvc-proto-devel \
    rsync \
    sed \
    sudo \
    systemd-devel \
    tar \
    tracker-devel \
    tree \
    wget \
    which \
    xfsprogs-devel \
    xz \
    zlib-devel

zypper --non-interactive clean

if [ -f /usr/lib/mit/bin/krb5-config ]; then
    ln -sf /usr/lib/mit/bin/krb5-config /usr/bin/krb5-config

GCPで標準で利用可能なリポジトリでインストールができた。 標準で追加されているリポジトリは下記の通り。

社内のリポジトリサーバに阻まれている人は、似たような名称のリポジトリを追加しておこう。

# Alias Name
1 repo-backports-debug-update Update repository with updates for openSUSE Leap debuginfo packages from openSUSE Backports
2 repo-backports-update Update repository of openSUSE Backports
3 repo-debug Debug Repository
4 repo-debug-update Update Repository (Debug)
5 repo-non-oss Non-OSS Repository
6 repo-oss Main Repository
7 repo-sle-debug-update Update repository with debuginfo for updates from SUSE Linux Enterprise 15
8 repo-sle-update Update repository with updates from SUSE Linux Enterprise 15
9 repo-source Source Repository
10 repo-update Main Update Repository
11 repo-update-non-oss Update Repository (Non-Oss)

この状態でconfigureを通してみる。

Checking configure summary                                                                      : ok 
Checking compiler for PIE support                                                               : yes 
Checking compiler for full RELRO support                                                        : yes 
Checking if compiler accepts -fstack-protector-strong                                           : no 
Checking if compiler accepts -fstack-protector                                                  : no 
Checking if compiler accepts -fstack-clash-protection                                           : yes 
'configure' finished successfully (4m27.545s)

依存関係が通ったっぽいので make -j 2

コンパイルが進んでいるので、まあ多分きっとOKでしょう。