Nimbin[12]?Mirrors & Forks / jhalfs / commits / f6420b0

jhalfs git · trunk

jhalfs LFS build automation (mirror)

lfs mirror bash · first commit 2005-09-11 · last commit 2024-02-13 (2 years ago) · synced 3 days ago · upstream: git.linuxfromscratch.org/jhalfs

Python 78.4% Shell 19.8% Makefile 1.8%
git clone https://git.christianimmanuel.de/mirrors-forks/jhalfs.gitwget https://git.christianimmanuel.de/mirrors-forks/jhalfs/archive/jhalfs.tar.gz

Add a script for plasma post-install instructions

Pierre Labastie · 2023-11-01 22:34 · f6420b0ff593b395295b946d51005b72c14f0601

This is needed the first time plasma is installed. There are
some links from /usr/share to $KF5_PREFIX, and also the
pam.d files.
 BLFS/gen-special.sh    | 25 +++++++++++++++++++
 BLFS/xsl/make_book.xsl | 65 ++++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 88 insertions(+), 2 deletions(-)

diff --git a/BLFS/gen-special.sh b/BLFS/gen-special.sh
index 7f34fff..533bdff 100755
--- a/BLFS/gen-special.sh
+++ b/BLFS/gen-special.sh
@@ -194,6 +194,31 @@ EOF
 #EOF
     precpack=$packname
   done
+# We need a dummy package for plasma post install instructions
+  if [ $(basename $file .xml) = plasma-all ]; then
+    cat >>$SPECIAL_FILE << EOF
+        <module><xsl:text>&#xA;          </xsl:text>
+          <xsl:element name="name">plasma-post-install</xsl:element>
+          <xsl:element name="version">1.0.0</xsl:element>
+          <xsl:if test="document(\$installed-packages)//package[name='$packname']">
+            <xsl:element name="inst-version">
+              <xsl:value-of
+                select="document(\$installed-packages
+                                )//package[name='$packname']/version"/>
+            </xsl:element>
+          </xsl:if>
+<!-- Dependencies -->
+          <xsl:element name="dependency">
+            <xsl:attribute name="status">required</xsl:attribute>
+            <xsl:attribute name="build">before</xsl:attribute>
+            <xsl:attribute name="name">$precpack</xsl:attribute>
+            <xsl:attribute name="type">ref</xsl:attribute>
+          </xsl:element>
+<!-- End dependencies -->
+        </module>
+EOF
+  fi
+
   cat >>$SPECIAL_FILE << EOF
      </package>
    </xsl:when>
diff --git a/BLFS/xsl/make_book.xsl b/BLFS/xsl/make_book.xsl
index 960627a..3cf4401 100644
--- a/BLFS/xsl/make_book.xsl
+++ b/BLFS/xsl/make_book.xsl
@@ -64,7 +64,9 @@
      We need special instructions in that case.
      The difficulty is that some of those names *are* id's,
      because they are referenced in the index.
-     Hopefully, none of those id's are sect{1,2}...-->
+     Hopefully, none of those id's are sect{1,2}...
+     We also need a special template for plasma-post-install,
+     because this one is not an id at all!-->
   <xsl:template name="apply-list">
     <xsl:param name="list" select="''"/>
     <xsl:if test="string-length($list) &gt; 0">
@@ -114,6 +116,11 @@
                 <xsl:apply-templates select="id($real-id)" mode="pass1-sect2"/>
               </xsl:if>
             </xsl:when>
+            <xsl:when test="$list='plasma-post-install'">
+              <xsl:apply-templates
+                select="//sect1[@id='plasma5-build']"
+                mode="plasma-post-install"/>
+            </xsl:when>
             <xsl:when test="not(id($list)[self::sect1 or self::sect2])">
               <!-- This is a sub-package: parse the corresponding compound
                    package-->
@@ -123,7 +130,7 @@
                                  contains(@id,'plasma5'))
                                  and .//userinput/literal[contains(string(),
                                             concat($list,'-'))]]"
-                   mode="compound">
+                 mode="compound">
                 <xsl:with-param name="package" select="$list"/>
               </xsl:apply-templates>
             </xsl:when>
@@ -752,4 +759,58 @@ name=$(echo $packagedir | sed 's/-[[:digit:]].*//')
       </xsl:otherwise>
     </xsl:choose>
   </xsl:template>
+
+  <xsl:template match="sect1" mode="plasma-post-install">
+    <xsl:variable name="package" select="'plasma-post-install'"/>
+    <xsl:element name="sect1">
+      <xsl:attribute name="id">
+        <xsl:value-of select="$package"/>
+      </xsl:attribute>
+      <xsl:processing-instruction name="dbhtml">
+         filename="<xsl:value-of select='$package'/>.html"
+      </xsl:processing-instruction>
+      <title><xsl:value-of select="$package"/></title>
+      <sect2 role="installation">
+        <title>Installation of <xsl:value-of select="$package"/></title>
+
+        <para>
+          Install <application><xsl:value-of select="$package"/></application>
+          by running the following commands:
+        </para>
+        <screen role="root">
+          <userinput>
+            <xsl:call-template name="plasma-sessions">
+              <xsl:with-param
+                name="p-sessions-text"
+                select="string(.//userinput[contains(text(),'xsessions')])"/>
+            </xsl:call-template>
+          </userinput>
+        </screen>
+        <xsl:copy-of select=".//screen[@role='root']"/>
+      </sect2>
+    </xsl:element><!-- sect1 -->
+  </xsl:template>
+
+  <xsl:template name="plasma-sessions">
+    <xsl:param name="p-sessions-text"/>
+    <xsl:choose>
+      <xsl:when test="string-length($p-sessions-text)=0"/>
+      <xsl:when test="contains($p-sessions-text,'as_root')">
+        <xsl:call-template name="plasma-sessions">
+          <xsl:with-param
+            name="p-sessions-text"
+            select="substring-before($p-sessions-text,'as_root')"/>
+        </xsl:call-template>
+        <xsl:call-template name="plasma-sessions">
+          <xsl:with-param
+            name="p-sessions-text"
+            select="substring-after($p-sessions-text,'as_root ')"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$p-sessions-text"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
 </xsl:stylesheet>