Slackware で SlackBuilds.org を利用する／SlackBuilds.org や公式リポジトリの更新通知を受けとる


[当方執筆の技術情報に関するライセンス、免責事項、禁止事項](https://qiita.com/EarthSimilarityIndex/items/6b9bb2ccacb38aae15b1)

****

**注意事項**
**Slackware のバージョンを current に上げるとビルドがコケるものがあります**
SlackBuilds.org 公式サイトの [HOWTO](https://slackbuilds.org/howto/) によると
>All of our scripts are written and tested for usage on the latest stable release of Slackware with full installation and updated with latest patches

SlackBuilds.org がサポートするのは **the latest stable release** 、つまり最新安定版です。なお、sbopkg を使うと SlackBuilds.org に**サポートされない** current 用リポジトリを利用出来ます（トラブルが生じても楽しめる方向けであると思われます）。

![スクリーンショット_2019-06-28_14-35-22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/e9c73cbf-0c16-a0c3-6ad2-16e4beeff824.png)

# 要約
## SBo の使い方
1. SBo のソースをダウンロード＆展開
2. **展開されたディレクトリ内に**オリジナルのソースをダウンロード
3. **ルートで** SlackBuild スクリプトを実行すると /tmp 以下にパッケージ

## 更新通知の受け取り方
1. /etc/slackpkg/mirrors で最新安定版向けのミラーを**ひとつだけ**選ぶ
2. 通知アプリをダウンロード＆ビルド＆インストール
3. 通知アプリを自動起動するように設定

# 基本的な利用の流れ
## SlackBuild Usage HOWTO
https://slackbuilds.org/howto/
## sl をインストールしてみる

### sl
#### 公式サイト
http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index.html
https://github.com/mtoyoda/sl

#### SlackBuilds.org
https://slackbuilds.org/repository/14.2/games/sl/

### 0.作業用ディレクトリの作成
まずは /tmp や /var/tmp などに一時的な作業領域を作る。

```
$ mkdir /tmp/Downloads
$ cd /tmp/Downloads
```
※ 作業が終わったら作成したディレクトリは削除すること。一時的ではなく恒久的なディレクトリとしたいなら、ユーザーのホームディレクトリ内や /root ディレクトリ内で作業すると良いだろう。

### 1.ダウンロードと展開

```
$ pwd
/tmp/Downloads
$ wget https://slackbuilds.org/slackbuilds/14.2/games/sl.tar.gz
$ tar zxf sl.tar.gz
$ cd sl
$ ls
README  sl.SlackBuild*  sl.info  slack-desc
$ cat sl.info | grep DOWNLOAD
DOWNLOAD="https://github.com/mtoyoda/sl/archive/5.02.tar.gz"
DOWNLOAD_x86_64=""
$ wget https://github.com/mtoyoda/sl/archive/5.02.tar.gz
$ ls
5.02.tar.gz  README  sl.SlackBuild*  sl.info  slack-desc
```

#### 1.1 *.tar.gz.asc の使い道
https://slackbuilds.org/faq/#asc より。

>What are all of those .asc files in the repository?
　
    Those files are GPG signatures. They can be used to verify that the SlackBuild script tarball is exactly the one that we placed on the site. Assuming you have both the script tarball and the .asc file in the same directory, this process is as simple as:
>
    gpg --verify app.tar.gz.asc


[SlackBuilds.orgの公開鍵](https://slackbuilds.org/GPG-KEY)をインポート済み、信用度を決定済みの場合

```
$ pwd
/tmp/Downloads
$ wget https://slackbuilds.org/slackbuilds/14.2/games/sl.tar.gz.asc
$ gpg --verify sl.tar.gz.asc
```
これでダウンロードした sl.tar.gz が SlackBuilds.org に置かれているものと等しいか確認出来る。

### 2.READMEを読む

https://slackbuilds.org/slackbuilds/14.2/games/sl/README

```
$ pwd
/tmp/Downloads/sl
$ less README
sl is a program that displays animations aimed to correct you if you type
sl instead of ls by mistake.

'sl' stands for Steam Locomotive.
README lines 1-4/4 (END)
```
しゅっしゅっぽっぽ [^sl] 。

[^sl]: 筆者の地元では子供たちが SL の駆動音を「なんださっか、こんなさっか、のぼるに、ほねだよ、どかたの、ばかやろ」と囃したらしい。

### 3.必要に応じ SlackBuild スクリプトを編集する

https://slackbuilds.org/slackbuilds/14.2/games/sl/sl.SlackBuild

```
$ cat sl.SlackBuild
#!/bin/sh

# Slackware build script for sl.

# Copyright 2010  V'yacheslav Stetskevych
# Copyright 2012  Niels Horn, Rio de Janeiro, RJ, Brazil
# Copyright 2015  Philip van der Hoeven, Almere, The Netherlands
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

PRGNAM=sl
VERSION=${VERSION:-5.02}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i486 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$VERSION.tar.gz || tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \

make

# Manual installation follows...
mkdir -p $PKG/usr/games # binaries
cp -p sl $PKG/usr/games
( cd $PKG/usr/games; ln -s sl LS; )

mkdir -p $PKG/usr/man # man pages
mkdir -p $PKG/usr/man/man1
mkdir -p $PKG/usr/man/ja.UTF-8/man1
cp -p sl.1 $PKG/usr/man/man1
cp -p sl.1.ja $PKG/usr/man/ja.UTF-8/man1

# End of manual installation

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README* LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
```

編集するなら例えば

```elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"```

を

```elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O3 -march=native -fPIC"
  LIBDIRSUFFIX="64"```

などとして、最適化することが考えられる。

**蛇足:**
sl の日本語 manpage が読み込まれない場合も sl.SlackBuild の編集で対応出来る。UTF-8 で記述された manpage は、current ならば /usr/share/man/ja.UTF-8 を読んでくれるようだが、14.2 では ja_JP.UTF-8 としないと読んでくれないようである。[man の文字化け問題については man.conf における JNROFF の指定について適正化すると文字コードが euc だろうが sjis だろうが nkf の文字コードの自動判別によって utf8 で読めるように出来る。](https://qiita.com/EarthSimilarityIndex/items/69526591a5156df6f236)

### 4.SlackBuild スクリプトを root で実行
実行権限が付与されていなければ以下のコマンドで付与する。

```
$ chmod +x sl.SlackBuild
```
ルートアカウントにログインし sl.SlackBuild を実行する（一般ユーザーでログイン中でもコマンドラインから```su -```や```su -l```でルートアカウントにログイン出来る）。

```
$ su -
# pwd
/root
# cd /tmp/Downloads/sl
# ./sl.SlackBuild
# exit
```

※ パッケージによっては SlackBuild スクリプトに環境変数としてビルドオプションが渡せるものがある。

ルートでログインが必要な理由は、[howto によると以下の通り](https://slackbuilds.org/howto/)
>Note that for many builds, you will need to have a true login shell in order to have a correctly populated environment. Among other things, /usr/share/texmf/bin will not be in your PATH if you simply do "su" -- therefore, you will need to either use "su -l" when switching to root, or source the /etc/profile script after doing "su", or perhaps modifying /root/.bashrc to include necessary PATH elements.

一部パスが参照されない恐れがあるからルートでログインするか、"su"で済ませるなら /etc/profile を source するように、ということらしい。bash なら ```source /etc/profile``` 、それ以外なら ```. /etc/profile``` 。

### 5.パッケージのインストール
通常 sl.SlackBuild のような SlackBuilds.org のビルドスクリプトが生成するパッケージは /tmp 以下に出力されるので、それをインストールする。

※ 以下の例ではものぐさしているが、ポストインストールスクリプトが参照できないPATHがあると問題であるので、インストール作業もrootでログインして行う方が無難。

```
$ su -c 'installpkg /tmp/sl-5.02-x86_64-1_SBo.tgz'
```

/tmp はあくまでも一時作業領域である為、確実に保存しておきたいパッケージはユーザーのホームディレクトリ内や /root ディレクトリ内に移しておくのが良い。
# ツールを介して SlackBuilds.org を利用する
## sbopkg
![スクリーンショット_2019-06-28_17-32-27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/766cc4d8-c416-32e3-2200-899d7bd6ad60.png)

・一番日本語の情報が多いように思う。
・Slackware 自身と同様、構築依存やパッケージの依存性は解決しない。
・一方で強力で柔軟なビルドオプション管理機能やインストールキュー管理機能を持つ。
・哲学の部分で一番 Slackware 的かもしれない。

以下は公式サイトより引用。

>About
>
>Sbopkg is a command-line and dialog-based tool to synchronize with the SlackBuilds.org ("SBo") repository, a collection of third-party SlackBuild scripts to build Slackware packages. Sbopkg is actively maintained and a new version is released one or more times per Slackware/SBo release. Numerous people have contributed diffs, bug reports, and helpful suggestions and they are all mentioned in the THANKS file in /usr/doc/sbopkg-$VERSION. This utility would not be anywhere close to its present state without the help of these folks.
>
>Features
>
>Sbopkg will allow the user to:
>
>    Create, browse, and search a local copy of the SBo repository for any supported Slackware version.
>    Read the SBo ChangeLog.txt.
>    Display a list of all SBo packages installed on the user's system.
>    Display potential updates to packages installed from SlackBuilds.org.
>    View the README, SlackBuild, .info, and slack-desc files for each individual piece of software in the repository.
>    Copy the original .info file or SlackBuild for editing.
>    Automatically download the source code, check the md5sum, and build or build and install a Slackware package from either the original .info file and SlackBuild or the locally-edited copies.
>    Batch queue packages for building or building and installing.
>    Load, save, and use sbopkg queuefiles (.sqf), several of which are included with the package.
>    View the contents of the cache directory (where source code tarballs are stored).
>    View the permanent build log that is optionally maintained to keep a record of the entire compilation process.
>    Check for an update to sbopkg itself.
>
>Sbopkg will not check dependencies since that is not a feature native to Slackware. Sbopkg is one thing and one thing only: a medium to easily browse a local copy of the SlackBuilds.org repository and build packages from it.
>
>Sbopkg can be also be used strictly from the command line without the dialog interface, to perform most, if not all, of the same functions listed above. Typing sbopkg -h will display the command line options.
>
>Please note that while sbopkg has performed well for many users, it is still advised to read the ChangeLog and READMEs before building package(s).

### 公式サイト
https://sbopkg.org/index.php
https://github.com/sbopkg/sbopkg
### インストール例（2019年6月28日時点）

```
$ wget https://github.com/sbopkg/sbopkg/releases/download/0.38.1/sbopkg-0.38.1-noarch-1_wsr.tgz
$ su
# source /etc/profile
# installpkg ./sbopkg-0.38.1-noarch-1_wsr.tgz
```

※ bash 以外の環境では ```. /etc/profile``` で環境変数を設定。
※ [bash - source command not found in sh shell - Stack Overflow](https://stackoverflow.com/questions/13702425/source-command-not-found-in-sh-shell)

### インストール例（ワンライナーっぽくしてみました）
```sh:2019/07/29時点
wget https://github.com/sbopkg/sbopkg/releases/download/0.38.1/sbopkg-0.38.1-noarch-1_wsr.tgz && su -l -c "upgradepkg $(pwd)/sbopkg-0.38.1-noarch-1_wsr.tgz" || su -l -c "installpkg $(pwd)/sbopkg-0.38.1-noarch-1_wsr.tgz"
```

## sboui
![スクリーンショット_2019-06-28_17-29-44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/b5450c27-15b6-46f7-5a94-780535f17e97.png)

・初期設定で構築依存を考慮しつつダウンロードとビルドを行ってくれる。
・ビルドオプション```INSTALL_SYSTRAY_NOTIFIER=yes```を渡すことで、SBoからインストールしたパッケージのアップデートがある場合に通知してくれるコマンド```sboui-update-notifier```を生成可能。
### 公式サイト
https://github.com/montagdude/sboui
### インストール
[SlackBuilds.org からダウンロード＆インストール](https://slackbuilds.org/repository/14.2/system/sboui/)
### 構築依存
[libconfig](https://slackbuilds.org/repository/14.2/libraries/libconfig/)
（ [python-requests](https://slackbuilds.org/repository/14.2/python/python-requests/) 　※ sboui-update-notifier をインストールする場合 ）

構築依存が複雑になるので、python-requests のインストールは libconfig をビルド&インストールして sboui をインストールした上で sboui 上から行うと楽。python-requests のインストールに成功後、必要なオプションを渡して sboui を再度ビルドし再インストールすることで sboui-update-notifier が使えるようになる。

###（通知機能無し版）オートインストーラー
書いてみました。

https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/blob/master/install_sboui-2.0.1.sh
https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/raw/master/install_sboui-2.0.1.sh
ダウンロードしたスクリプトを /usr/local/**sbin** 等に置いて実行権限を付与。
使用時は **root** で実行。

```sh:使用例
wget https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/raw/master/install_sboui-2.0.1.sh && chmod +x $(pwd)/install_sboui-2.0.1.sh && su -l -c $(pwd)/install_sboui-2.0.1.sh
```

## sbotools
![スクリーンショット_2019-06-28_18-04-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/07d0b562-ffe4-5ebb-408e-f808f002509f.png)

・初期設定で~~ある程度~~ [^sboinstall] 構築依存を考慮しつつダウンロードとビルドを行ってくれる。
・標準（全部乗せ）インストール済みであれば、構築依存なし。
・ライセンスが [WTFPL](https://ja.wikipedia.org/wiki/WTFPL) （うぼぁ！？）
・初回起動時はSBoのツリーのローカルコピーを用意する為に ```sbosnap fetch``` を実行する必要がある。
・次回以降のツリー更新には ```sbocheck``` を使うのが良さそう。こちらのコマンドは SBo 由来のパッケージのアップデートも確認してくれる。

[^sboinstall]: 記述が不正確でした。構築依存の計算そのものは再帰的に行われますが、「 README を読まずに全自動処理」は出来ない仕様です。また、三すくみのような相互に参照する構築依存が存在する場合は警告を発するとのことです。

以下は公式サイトより引用。

>For Slackware 14.0, 14.1, 14.2, and -current, handling of requirements from a slackbuild’s .info file, or for Slackware 13.37, parsing requirement lists from a slackbuild’s README, and asking the user if s/he wishes to install them. Note this is not at all automatic; user input and intelligence is required.

<details><summary>こちらは sboinstall の manpage より。</summary><div>
>sboupgrade(1) and sboinstall(1) on 14.0, 14.1, or 14.2 will pull the list of requirements from a given slackbuild’s .info file, or on 13.37 will look at a given slackbuild’s README for a list of requirements and, if found, will check to see whether or not those requirements are already installed. For any not installed, sbotools will ask whether or not it should attempt to install it first. This is recursive so that ordering happens correctly. This functions correctly for -compat32 packages as well, and since a -compat32 is only somewhat useful without its 64-bit counterpart installed since the compat32 will have its headers stripped out, sbotools will offer to install the 64-bit version first if it’s not already installed. For various sanity reasons, if the -r flag is provided to bypass viewing the README, no requirement handling/parsing is done. Asking a tool to automatically do such things without reading the relevant README files is a bad, bad, bad idea.
>
When working with slackbuilds from the 14.0, 14.1, or 14.2 trees, sbotools will refuse to handle circular requirements. It will tell you as much, and ask if you want to continue, if it encounters any. Note that circular requirements do not always constitute bugs in the slackbuilds, since the REQUIRES field in the .info files includes both build-time and run-time requirements. As always, the user is expected to read and understand what s/he is doing and utilize the tools accordingly.
>
If there are useradd or groupadd commands in the README which need to be run prior to running a slackbuild, sboupgrade and sboinstall will ask if it should run those commands first. Depending on the format that they’re placed in the README, sbotools may occasionally fail to see them; as always again, the user is expected to read and understand and utilize the tools accordingly.
>
For slackbuilds with options documented in the README, of the form KEY=value, sboupgrade and sboinstall will provide an opportunity to set any options which one wishes to specify. This is yet another area where parsing mishaps may occur… as always yet again, read, understand, utilize accordingly.
</div></details>
“For various sanity reasons, if the -r flag is provided to bypass viewing the README, no requirement handling/parsing is done. Asking a tool to automatically do such things without reading the relevant README files is a bad, bad, bad idea.”
とのこと。「 README 読まないなら構築依存は考慮出来ないよ」という方針。

### 公式サイト
https://pink-mist.github.io/sbotools/

### 公式ドキュメント
https://pink-mist.github.io/sbotools/documentation/

### インストール
[SlackBuilds.org からダウンロード＆インストール](https://slackbuilds.org/repository/14.2/system/sbotools/)

### オートインストーラー

書いてみました。

https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/blob/master/install_sbotools-2.7.sh
https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/raw/master/install_sbotools-2.7.sh
ダウンロードしたスクリプトを /usr/local/**sbin** 等に置いて実行権限を付与。
使用時は **root** で実行。

```sh:使用例
wget https://gitlab.com/earthsimilarityindex/watermenou-sbo-installhelper/raw/master/install_sbotools-2.7.sh && chmod +x $(pwd)/install_sbotools-2.7.sh && su -l -c $(pwd)/install_sbotools-2.7.sh
```

# SlackBuilds や公式リポジトリの更新通知を受けとる
## 公式リポジトリの更新通知を受けとる
事前に /etc/slackpkg/mirrors を編集し適切なミラーを設定しておく（使いたいミラーを**一つだけ**選び行頭の#を消して有効化する）。

以下は /etc/slackpkg/mirrors 冒頭より引用

```
# You only need to select one mirror and uncomment it.
# ONLY ONE mirror can be uncommented.
```

###参考：
#### パッケージ管理について
Package Management
http://www.slackware.com/config/packages.php
#### パッケージ管理補助ユーティリティー slackpkg
![スクリーンショット_2019-06-28_18-24-27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/49a3bcd1-81a8-4d3d-942d-efc374f61be0.png)

slackpkg - utility to help package management in Slackware
https://slackpkg.org/

slackpkg の使い方など
https://slackpkg.org/documentation.html
※ Installation は読み飛ばして良い。
※ man slackpkg で詳細を参照可能。

#### Slackware 14.2 x86_64 向けの日本のミラーサイト
ftp://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware64-14.2/
http://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware64-14.2/
ftp://ftp-srv2.kddilabs.jp/Linux/distributions/Slackware/slackware64-14.2/
http://ftp-srv2.kddilabs.jp/Linux/distributions/Slackware/slackware64-14.2/
ftp://riksun.riken.go.jp/Linux/slackware/slackware64-14.2/
http://riksun.riken.go.jp/Linux/slackware/slackware64-14.2/

※ kddilabs のリポジトリのアドレスが変更になっている模様。
旧：ftp-srv2.kddilabs.jp/032/Linux/packages/Slackware/slackware64-14.2/
↓
新：ftp-srv2.kddilabs.jp/Linux/distributions/Slackware/slackware64-14.2/
詳細は http://mirrors.slackware.com/mirrorlist/ 及び http://ftp-srv2.kddilabs.jp/ を参照。ftp.kddilabs.jp と ftp-srv2.kddilabs.jp の近い方を使うと良さそう。

#### /etc/slackpkg/blacklist

サードパーティのパッケージを ```slackpkg clean-system``` 等の対象から除外する場合、/etc/slackpkg/blacklist に記述する。

```
# This is a blacklist file. Any packages listed here won't be
# upgraded, removed, or installed by slackpkg.
#
# The correct syntax is:
#
# To blacklist the package xorg-server-1.6.3-x86_64-1 the line will be:
# xorg-server
#
# DON'T put any space(s) before or after the package name or regexp.
# If you do this, the blacklist will NOT work.

#
# Automated upgrade of kernel packages aren't a good idea (and you need to
# run "lilo" after upgrade). If you think the same, uncomment the lines
# below 
#
#kernel-firmware
#kernel-generic
#kernel-generic-smp
#kernel-headers
#kernel-huge
#kernel-huge-smp
#kernel-modules
#kernel-modules-smp
#kernel-source

#
# aaa_elflibs should NOT be blacklisted!
#

# You can blacklist using regular expressions.
#
# Don't use *full* regex here, because all of the following 
# will be checked for the regex: series, name, version, arch, 
# build and fullname.
#
# This one will blacklist all SBo packages:
[0-9]+_SBo
```

### SUN - Slackware Update Notifier
![スクリーンショット_2019-06-28_18-16-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/91e00668-da0c-fd24-60dd-c51352322f26.png)

#### 公式サイト
☀ SUN - Slackware Update Notifier
https://gitlab.com/dslackw/sun

#### インストール
[SlackBuilds.org からダウンロード＆インストール](https://slackbuilds.org/repository/14.2/desktop/sun/)

#### 構築依存
[python-notify2](https://slackbuilds.org/repository/14.2/python/python-notify2/)

#### 使い方
以下を Window Manager や Desktop Environment の機能で呼び出す。

```
/usr/bin/sun_gtk &
```

### SWUN (simple SoftWare Update Notifier) 
![スクリーンショット_2019-06-28_18-14-35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/1dab6233-8b8e-8bfe-a9e2-e7cfa64ee9ac.png)

#### 公式サイト
swun SlackWare Update Notifier
https://fwxx.github.io/swun/
https://github.com/fwxx/swun

#### インストール例

```
$ wget https://github.com/fwxx/swun/releases/download/v0.0.3/swun-0.0.3-x86_64-1_fwxx_slackware64_14.2.tgz
$ su
# source /etc/profile
# installpkg ./swun-0.0.3-x86_64-1_fwxx_slackware64_14.2.tgz
```
※ bash 以外の環境では ```. /etc/profile``` で環境変数を設定 [^source] 。

#### 使い方
公式サイトより
>======== GETTING STARTED =========
* First of all you need a working slackpkg setup(-> slackpkg manpage for this.)
* You will find Swun in KDE menu under Applications -> System,
  probably also on other desktops. 
* After Start, you will recognize a new icon in the notification area 
  of your desktop environment. 
* After a few seconds it should turn green or red depending on the 
  actually installed Software on your system.
* In KDE it will be automatically restarted in a later login.
* swun is documented on its man page(man swun)

## SlackBuilds.org の更新通知を受けとる
![スクリーンショット_2019-06-29_08-20-40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/5e53e569-8515-5809-2a2f-0cbddf8b0422.png)

### sboui-update-notifier / sboui
詳細は前述のとおり。

#### ビルドスクリプトにオプションを渡す
```
# INSTALL_SYSTRAY_NOTIFIER=yes ./sboui.SlackBuild
```

試したところ、sboui を用いて sboui の再構築と再導入に成功した（あまり行儀の良いやり方ではないかも）。

![スクリーンショット_2019-06-28_20-08-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/423e10c7-601f-0a10-0017-eab12659cc6f.png)

#### 使い方
以下を Window Manager や Desktop Environment の機能で呼び出す。

```
/usr/bin/sboui-update-notifier &
```

[^source]: [bash - source command not found in sh shell - Stack Overflow](https://stackoverflow.com/questions/13702425/source-command-not-found-in-sh-shell)

# オートインストーラー修正履歴
20190801 ハッシュ値まわりでコマンド引数指定が間違っていたので訂正。
　× md5sum hogefuga -c hogefuga.md5
　○ md5sum -c hogefuga.md5