[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
howtos:misc:anatomy_of_a_slackbuild [2019/12/22 17:59 (UTC)] – [Anatomy Of a Slackbuild] captain_sensiblehowtos:misc:anatomy_of_a_slackbuild [2020/01/05 16:49 (UTC)] (current) – [Anatomy Of a Slackbuild] captain_sensible
Line 154: Line 154:
 </code> </code>
  
-Before we go into this let me have a look in my slackware file  system and see whats there at /tmp/SBo.Taking a quick look at the image will give you a clue that the slackbuild works, by using the /tmp/SBo/ directory and creates a directory with the syntax package-packagename.So if we now have a look at the code above. CWD (current working directory)  is a  variable and is set to the value of pwd. If you run that in a terminal window, it will tell you where you in a bash context where you are working from.{{howtos:misc:tmp_Sbo.gif}}+Before we go into this let me have a look in my slackware file  system and see whats there at /tmp/SBo.Taking a quick look at the image will give you a clue that the slackbuild works, by using the /tmp/SBo/ directory and creates a directory with the syntax package-packagename.So if we now have a look at the code above. CWD (current working directory)  is a  variable and is set to the value of pwd. If you run that in a terminal window, it will tell you where you in a bash context where you are working from.{{ howtos:misc:tmp_Sbo.gif }}
  
 TMP is going to be set to /tmp/SBo. TMP is going to be set to /tmp/SBo.
Line 282: Line 282:
 But what about the likes of  --enable-eps , where does that come from ? But what about the likes of  --enable-eps , where does that come from ?
  
-Well if you take the source code  [[https://github.com/latex2html/latex2html/archive/v2019.2/latex2html-2019.2.tar.gz]] unpack it ( a quick way is right click , open with Ark) cd into it and run :+Well if you take the source code  [[https://github.com/latex2html/latex2html/archive/v2019.2/latex2html-2019.2.tar.gz | latex2html source]]unpack it ( a quick way is right click , open with Ark) cd into it and run :
  
  
Line 290: Line 290:
  
 Then you will get some useful information from the developers. It tells you the option and how you can enable some of them.  Then you will get some useful information from the developers. It tells you the option and how you can enable some of them. 
 +
 +<code>
 +make
 +make install DESTDIR=$PKG
 +</code>
 +
 +Here, make, make install are carried out.Note DESTDIR is a flag to say where the package will go. \\
 + 
 +$PKG equates to /tmp/SBo/package-latex2html
 +
 +Next Block of code:\\
 +
 +<code>
 +
 +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
 +
 +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
 +cp -a \
 + FAQ INSTALL LICENSE MANIFEST README.md TODO  \
 +  $PKG/usr/doc/$PRGNAM-$VERSION
 +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
 +cp $CWD/manual.pdf  $PKG/usr/doc/$PRGNAM-$VERSION
 +
 +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}
 +
 +</code>
 +
 +The first two lines of this block are a bit of a mouth-full:
 +<code>
 +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
 +</code>
 +
 +We can however pick out key words that are commands and that can help to make some sense of it.
 +ind" located at /usr/bin/find is a powerful utility  that has around 50 options. It basically does what it says on the can.With the -print0 option it separates what it finds with "\000"  - in a word NULL. 
 +
 +The "|" or pipe is used to pass the results of a command to another;in this case xargs which has a flag -0. This option  is for xargs to accept input that has /000 between them. ELF is is Executable & Linkable Format.
 +
 +To give a succinct answer the two lines are removing debugging symbols and other unnecessary stuff to make the binaries smaller, faster and take up less memory.
 +
 +<code>
 +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
 +</code>
 +
 +Here we are preparing a directory which will be called "latex2html-2019.2" located at  /usr/doc. This is so we an put relevant documentation into a directory relevantly called, so that a user can access documentation on the package.
 +The next lines put files such as  README.md into the /usr/doc/latex2html-2019.2 directory.
 +
 +<code>
 +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
 +</code>
 +
 +That line goes back to the original directory that Latex2html.SlackBuild was run from ( i previously quoted Desktop) opens up the SlackBuild with "cat"  command and copies it to the documentation directory. 
 +Now before I submitted latex2html to slackbuilds obviously I did some testing and found that when the package was installed it had a fairly comprehensive output of what it could do just using: 
 +
 +<code>
 +$ latex2html --help
 +</code> 
 +
 +Also I had access to a comprehensive manual in pdf format; so in my case I did not write code for man pages. Instead I simply put a copy of "manual.pdf" into the /usr/doc/latex2html-2019.2 directory.
 +
 +
 + --- //[[wiki:user:captain_sensible|andy brookes]] 2020/01/05 16:29 (UTC)//
 +
 +//If you teach maths it doesn't stop you  embedding a little English.//  
  
  
- --- //[[wiki:user:captain_sensible|andy brookes]] 2019/12/12 20:43 (UTC)//and iu embedding a little English.  +Blank slackbuild templates can be obtained from : [[https://slackbuilds.org/templates/]]
  
 ====== Sources ====== ====== Sources ======
Line 298: Line 367:
 <!-- * Original source: [[http://some.website.org/some/page.html]] --> <!-- * Original source: [[http://some.website.org/some/page.html]] -->
  
-I am using a SlackBuild script that i submitted to slackbuilds.org: [[https://slackbuilds.org/repository/14.2/academic/latex2html/?search=latex2html]]+I am using a SlackBuild script that i submitted to slackbuilds.org: [[https://slackbuilds.org/repository/14.2/academic/latex2html/?search=latex2html | latex2html slackbuild]]
 <!-- Authors are allowed to give credit to themselves! --> <!-- Authors are allowed to give credit to themselves! -->
 * Originally written by [[wiki:user:captain_sensible|andy brookes]] * Originally written by [[wiki:user:captain_sensible|andy brookes]]
 howtos:misc:anatomy_of_a_slackbuild ()