A patch to get libreoffice-{help,lang}pack.SlackBuild to properly generate slack-desc files.
by luvr from LinuxQuestions.org on (#4SF8Z)
The 'libreoffice-helppack' and 'libreoffice-langpack' SlackBuilds do not properly generate their package description files, 'slack-desc'. They simply install a fixed copy of the file, in which the base package name is invariably set to "libreoffice-helppack" and "libreoffice-langpack", respectively. Since this package name is incorrect, the package description will not get displayed while such a package is being installed.
The following patches will dynamically generate the package description files, with the correct base package names. I tested the patched SlackBuild scripts on the longest occurring language name, "ca-valencia", to verify that they would not produce any excessively long output lines.
Patch for 'libreoffice-helppack'.
Code:--- libreoffice-helppack.SlackBuild.orig 2019-10-13 16:24:54.593156985 +0200
+++ libreoffice-helppack.SlackBuild 2019-10-13 16:36:08.444184022 +0200
@@ -90,7 +90,31 @@
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
+SLACKDESC_BASENAME="${PRGNAM}"'_'"${PKG_LANG}"
+SLACKDESC_SPACENAM=$(echo "${SLACKDESC_BASENAME}" | sed 's/./ /g')
+LANGNAMES_JS="$PKG"'/opt/libreoffice'"${SRCSHORT}"'/help/'"${LOLANG}"'/langnames.js'
+SLACKDESC_LANGNAME=$(sed -nre 's~^ *"'"${LOLANG}"'" *: *"([^"]+)".*$~\1~p' "${LANGNAMES_JS}" 2> /dev/null || echo "${LOLANG}")
+cat > "$PKG"'/install/slack-desc' <<//*END_OF_SLACK_DESC
+# 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.
+
+${SLACKDESC_SPACENAM}|-----handy-ruler------------------------------------------------------|
+${SLACKDESC_BASENAME}: ${SLACKDESC_BASENAME} (for LibreOffice Productivity Suite)
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}: Built-in Help Pack for LibreOffice productivity suite.
+${SLACKDESC_BASENAME}: Language: ${SLACKDESC_LANGNAME}.
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}: Homepage: https://www.libreoffice.org
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+//*END_OF_SLACK_DESC
# Fix ownership and permissions and make the package
chown -R root:root .NOTE: In addition to getting the base package name right, this patch will include a line that shows the full name of the language to which the package applies. (It gets this name from the 'langnames.js' file extracted from the RPM).
Patch for 'libreoffice-langpack'.
Code:--- libreoffice-langpack.SlackBuild.orig 2019-10-13 16:42:19.642198915 +0200
+++ libreoffice-langpack.SlackBuild 2019-10-13 16:44:49.833204942 +0200
@@ -95,7 +95,29 @@
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
+SLACKDESC_BASENAME="${PRGNAM}"'_'"${PKG_LANG}"
+SLACKDESC_SPACENAM=$(echo "${SLACKDESC_BASENAME}" | sed 's/./ /g')
+cat > "$PKG"'/install/slack-desc' <<//*END_OF_SLACK_DESC
+# 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.
+
+${SLACKDESC_SPACENAM}|-----handy-ruler------------------------------------------------------|
+${SLACKDESC_BASENAME}: ${SLACKDESC_BASENAME} (for LibreOffice Productivity Suite)
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}: Built-in Help Pack for LibreOffice productivity suite.
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}: Homepage: https://www.libreoffice.org
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+//*END_OF_SLACK_DESC
# Fix ownership and permissions and make the package
chown -R root:root .(Unfortunately, the language pack RPMs do not come with something like the 'langnames.js' file, so the package description cannot show the full language name.)


The following patches will dynamically generate the package description files, with the correct base package names. I tested the patched SlackBuild scripts on the longest occurring language name, "ca-valencia", to verify that they would not produce any excessively long output lines.
Patch for 'libreoffice-helppack'.
Code:--- libreoffice-helppack.SlackBuild.orig 2019-10-13 16:24:54.593156985 +0200
+++ libreoffice-helppack.SlackBuild 2019-10-13 16:36:08.444184022 +0200
@@ -90,7 +90,31 @@
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
+SLACKDESC_BASENAME="${PRGNAM}"'_'"${PKG_LANG}"
+SLACKDESC_SPACENAM=$(echo "${SLACKDESC_BASENAME}" | sed 's/./ /g')
+LANGNAMES_JS="$PKG"'/opt/libreoffice'"${SRCSHORT}"'/help/'"${LOLANG}"'/langnames.js'
+SLACKDESC_LANGNAME=$(sed -nre 's~^ *"'"${LOLANG}"'" *: *"([^"]+)".*$~\1~p' "${LANGNAMES_JS}" 2> /dev/null || echo "${LOLANG}")
+cat > "$PKG"'/install/slack-desc' <<//*END_OF_SLACK_DESC
+# 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.
+
+${SLACKDESC_SPACENAM}|-----handy-ruler------------------------------------------------------|
+${SLACKDESC_BASENAME}: ${SLACKDESC_BASENAME} (for LibreOffice Productivity Suite)
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}: Built-in Help Pack for LibreOffice productivity suite.
+${SLACKDESC_BASENAME}: Language: ${SLACKDESC_LANGNAME}.
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}: Homepage: https://www.libreoffice.org
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+//*END_OF_SLACK_DESC
# Fix ownership and permissions and make the package
chown -R root:root .NOTE: In addition to getting the base package name right, this patch will include a line that shows the full name of the language to which the package applies. (It gets this name from the 'langnames.js' file extracted from the RPM).
Patch for 'libreoffice-langpack'.
Code:--- libreoffice-langpack.SlackBuild.orig 2019-10-13 16:42:19.642198915 +0200
+++ libreoffice-langpack.SlackBuild 2019-10-13 16:44:49.833204942 +0200
@@ -95,7 +95,29 @@
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
+SLACKDESC_BASENAME="${PRGNAM}"'_'"${PKG_LANG}"
+SLACKDESC_SPACENAM=$(echo "${SLACKDESC_BASENAME}" | sed 's/./ /g')
+cat > "$PKG"'/install/slack-desc' <<//*END_OF_SLACK_DESC
+# 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.
+
+${SLACKDESC_SPACENAM}|-----handy-ruler------------------------------------------------------|
+${SLACKDESC_BASENAME}: ${SLACKDESC_BASENAME} (for LibreOffice Productivity Suite)
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}: Built-in Help Pack for LibreOffice productivity suite.
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}: Homepage: https://www.libreoffice.org
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+${SLACKDESC_BASENAME}:
+//*END_OF_SLACK_DESC
# Fix ownership and permissions and make the package
chown -R root:root .(Unfortunately, the language pack RPMs do not come with something like the 'langnames.js' file, so the package description cannot show the full language name.)