Nothin' but Slackware

バイクとLinuxに戯れる日々

2024年09月

x265-4.0 new API 対応 vlc-3.0.21 patch

x265-4.0 がリリースされているが、 vlc-3.0.21 のソースmodules/codec/x265.c)が x265-4.0 の
新APIに対応していないためコンパイルエラーになってパッケージ作成に失敗する。

これに関する vlc-3.0.21用のパッチが以下に出ている。
同パッチは vlcの上流Gitにmerge request が提出されているようだ。



Here is a patch to fix compilation error under new x265-4.0 API.

[code]  6092.patch
From a72e324974737c393b74d933e9699feea3e4468a Mon Sep 17 00:00:00 2001
From: Francois Cartegnie <fcvlcdev@free.fr>
Date: Tue, 24 Sep 2024 18:53:11 +0700
Subject: [PATCH] codec: x265: handle 4.0 encoding API change

refs #28799
---
 modules/codec/x265.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/modules/codec/x265.c b/modules/codec/x265.c
index 97ea3709a598..63fd10b72751 100644
--- a/modules/codec/x265.c
+++ b/modules/codec/x265.c
@@ -67,6 +67,11 @@ static block_t *Encode(encoder_t *p_enc, picture_t *p_pict)
     x265_picture pic;
 
     x265_picture_init(&p_sys->param, &pic);
+#ifdef MAX_SCALABLE_LAYERS
+    /* Handle API changes for scalable layers output in x265 4.0 */
+    x265_picture *pics[MAX_SCALABLE_LAYERS] = {NULL};
+    pics[0] = &pic;
+#endif
 
     if (likely(p_pict)) {
         pic.pts = p_pict->date;
@@ -85,8 +90,13 @@ static block_t *Encode(encoder_t *p_enc, picture_t *p_pict)
 
     x265_nal *nal;
     uint32_t i_nal = 0;
+#ifdef MAX_SCALABLE_LAYERS
+    x265_encoder_encode(p_sys->h, &nal, &i_nal,
+                        likely(p_pict) ? &pic : NULL, pics);
+#else
     x265_encoder_encode(p_sys->h, &nal, &i_nal,
             likely(p_pict) ? &pic : NULL, &pic);
+#endif
 
     if (!i_nal)
         return NULL;
--
GitLab




Create partclone package which includes ntfs support

SBoに登録されている partclone は、configure オプションに --enable-ntfs を含んでいないため
作成されるパッケージに partclone.ntfs が入っていない。
そこで、--enable-ntfs を追加して自前のパッケージを作成した。

しかし、単に --enable-ntfs を追加しただけでは ntfs関連のコンパイルに差し掛かったときに
エラーを吐いてコンパイルが通らない。
これを回避するために SlackBuild を一部修正した。

また、ついでに日本語メッセージファイルを作成してソースに組み込み、コマンド動作中のメッセージに
日本語が表示されるようにした。
(日本語訳はけっこう適当... あしからず)

以下に SlackBuild のみ記す。


Create partclone package which includes ntfs support

Foolowing slackbuild enable (1)partclone.ntfs and (2)Japanese LC_MESSAGE.


[code] partclone.SlackBuild
#!/bin/bash

# Slackware build script for partclone
# 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.

# was previously maintained by Kevin Paulus

# 20230803 bkw: Modified by SlackBuilds.org: fix conflict with dpkg.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=partclone
VERSION=${VERSION:-
0.3.32}
BUILD=${BUILD:-3}
TAG=${TAG:-jw}
PKGTYPE=${PKGTYPE:-txz}

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

if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
  FAILMBR="prebuilt"    # 20230803 bkw: see below.
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
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 {} +

# 20230803 bkw: force use of precompiled fail-mbr.bin, if needed.
# Without this, the build will fail on x86_64 if dpkg happens to be
# installed, because our gcc isn't biarch as Debian's is. If dpkg
# *isn't* installed (the normal case), it just uses the prebuilt
# binary. All this change does is make it always use the prebuilt
# fail-mbr.bin on x86_64.
if [ "$FAILMBR" = "prebuilt" ]; then
  sed -i 's,sh compile-mbr.sh,cp fail-mbr.bin.orig fail-mbr.bin,' \
         fail-mbr/Makefile.am
fi

# Fix error on ntfsclone-ng.c when "--enable-ntfs"
  sed -i '/#include <errno.h>/a #include <time.h>' src/ntfsclone-ng.c

# Add japanese translation in po/
sed 's/de fr_FR pt_BR ru vi zh_CN zh_TW/de fr_FR ja pt_BR ru vi zh_CN zh_TW/g' -i po/LINGUAS
cp $CWD/ja.{po,gmo} po/


./autogen

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --docdir=/usr/doc/$PRGNAM-$VERSION \
  --build=$ARCH-slackware-linux \
  --enable-extfs \
  --enable-hfsp \
  --enable-fat \
  --enable-exfat \
  --enable-btrfs \
  --enable-minix \
  --enable-ncursesw \
  --enable-xfs \
 
--enable-ntfs \
  --enable-reiser4
  #--enable-ufs \
  #--enable-jfs \

make $NUMJOBS
make install DESTDIR=$PKG

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 ABOUT-NLS AUTHORS ChangeLog COPYING HACKING IMAGE_FORMATS.md NEWS README.md \
  $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




Mozc用 郵便番号辞書データ生成ツール

epsilon phoenix氏作成によるスクリプトを利用させていただき、Slackware環境向けに
Mozc用 郵便番号辞書データ生成ツール パッケージを作成した。
epsilon phoenix氏に感謝します。


拙作のパッケージ作成用スクリプトからパッケージを作成するためのソースファイルは
gen_zipcode-dic.info に記載したダウンロードアドレスをブラウザのアドレスバーにコピー&ペーストすることで、
私の MEGAドライブからダウンロードすることができます。

[code] README
### gen_zipcode-dic_for_Mozc (version 2.0) ###

Slackware64-current/Plamolinux 8.x の mozc ユーザー辞書にインポート可能
な形式の「日本郵政郵便番号最新データ」を生成するツールです。

データ生成の主スクリプトは epsilon phoenix氏作成によるものです。
Brog Home:
 https://zenn.dev/phoepsilonix/articles/japanese-zip-code-dictionary
source:
 https://github.com/phoepsilonix/japanese-zip-code-dictionary

郵便番号データは日本郵政が提供するものを使用します。
https://www.post.japanpost.jp/zipcode/download.html
------------------------------------------------------------------------

【郵便番号辞書 生成方法】
 ※ ネットワーク接続環境が必要

 gen_zipcode-dic_for_Mozc-2.0.tar.xz を展開したディレクトリで
 install.sh を実行すると/usr/lib/mozc/tools に必要なツールが
 インストールされ、
 /usr/bin に辞書生成用スクリプト(/usr/lib/mozc/generate-zipcode-dic.sh)
 へのシンボリックリンク generate-zipcode-dic が作成されます。

 コマンド generate-zipcode-dic を実行すると、/tmp ディレクトリに
 郵便番号データ zipcode-dic_yyyy-mm-dd.txt が生成されます。
 
 (参考)
 日本郵政の郵便番号データは、通常毎月月末に更新されます。
 従って、データ生成日付が 2024-09-16 または 2024-09-29等 いずれにしても
 2024/08/31 時点の最新データになります。

 郵便番号変更案内(pdf)
 https://www.post.japanpost.jp/zipcode/zip_info.pdf

【ユーザー辞書への追加方法】
 Step-1. 辞書ツールを起動する
         Mozc IMEが立ち上がっている場合、Mozcトレイアイコンを
         右クリックして辞書ツールを選択する。

      Mozc IMEを立ち上げていない場合、ターミナルから
      /usr/lib/mozc/mozc_tool --mode=dictionary_tool

Step-2. 郵便番号辞書データをインポートする
     管理 > 新規辞書にインポート または 選択した辞書にインポート
        から辞書データを読み込む
      
---
履歴)
2024-09-17 : version 2.0

[code] gen_zipcode-dic.SlackBuild
#!/bin/sh

# Slackware build script for gen_zipcode-dic_for_Mozc

# Copyright 2024 JW(Shinichi Abe) <shin1.abe@nifty.com>
# 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=gen_zipcode-dic
SRCNAM=gen_zipcode-dic_for_Mozc
VERSION=${VERSION:-2.0}
BUILD=${BUILD:-1}
TAG=${TAG:-jw}

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

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

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -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/$SRCNAM-$VERSION.tar.xz
cd $SRCNAM-$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" \
MOZC_TOOL_PATH=/usr/lib/mozc

mkdir -p ${PKG}/${MOZC_TOOL_PATH}/tools
cp jigyosyo-convert-mozc-dictionary.awk ${PKG}/${MOZC_TOOL_PATH}/tools/
cp ken_all-convert-mozc-dictionary.awk ${PKG}/${MOZC_TOOL_PATH}/tools/

cp generate-zipcode-dic.sh ${PKG}/${MOZC_TOOL_PATH}/tools/
chmod 755 ${PKG}/${MOZC_TOOL_PATH}/tools/generate-zipcode-dic.sh

# LICENCE: https://github.com/phoepsilonix/japanese-zip-code-dictionary/blob/main/LICENSE
cp LICENSE ${PKG}/${MOZC_TOOL_PATH}/tools/

mkdir -p ${PKG}/usr/bin

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 -name perllocal.pod \
  -o -name ".packlist" \
  -o -name "*.bs" \
  | xargs rm -f

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

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

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

[code] doinst.sh
MOZC_TOOL_PATH=/usr/lib/mozc

(cd /usr/bin
 ln -sf ${MOZC_TOOL_PATH}/tools/generate-zipcode-dic.sh generate-zipcode-dic
)

[code] slack-desk
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':' except on otherwise blank lines.

               |-----handy-ruler------------------------------------------------------|
gen_zipcode-dic: gen_zipcode-dic (script and tools of Japan zipcode data for Mozc)
gen_zipcode-dic:
gen_zipcode-dic: Tool set of creating Japan zipcode dictionary for Mozc.
gen_zipcode-dic: The original script is written by
gen_zipcode-dic:
gen_zipcode-dic: HOME: https://github.com/phoepsilonix/japanese-zip-code-dictionary
gen_zipcode-dic:
gen_zipcode-dic:
gen_zipcode-dic:
gen_zipcode-dic:
gen_zipcode-dic:


[code] gen_zipcode-dic.info
PRGNAM="gen_zipcode-dic"
VERSION="2.0"
HOMEPAGE=""
DOWNLOAD="https://mega.nz/file/NqQzBQLA#aKFb61bA1nAuCfKLl7sVy00u2uFp9V2ERCSYL2xgjAE"
MD5SUM="523d7757167eb117519951fd5e67fb64"
DOWNLOAD_x86_64="direct download link(s) of application source tarball(s), x86_64 only"
MD5SUM_x86_64=""
REQUIRES="mozc (or fcitx5-mozc)"
MAINTAINER="JW(Shinichi Abe)"
EMAIL="shin1.abe_at_nifty_dot_com"




引き続き更新予定








ギャラリー
  • deepl-clip.sh で簡単翻訳 [更新:2025-04-29]
  • Avidemux 2.8.2_20250323_7cf15b3
  • Avidemux 2.8.2_20250323_7cf15b3
  • Avidemux 2.8.x with Qt6 GUI
  • Avidemux 2.8.x with Qt6 GUI
  • MEGAcmd-2.0.0_Linux
  • gcolor3 with Japanese menu and LC_MESSAGES
  • avidemux2 TEST package from the latest git source (on jul.23.2024)
  • fcitx5-mozc-2.29.5135.102.1 (15jw) -- Added "merge-ut-dictionaries"