Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
slackbuilds [2015/05/13 05:11]
slackermedia
slackbuilds [2021/06/03 19:48] (current)
Line 1: Line 1:
-[[{arrowp.png|border:​0;​background:​none;​width:​0;​display:​inline-block;​position:​absolute;​top:​0;​left:​0;​}pkg|]] 
  
-[[{arrown.png|border:​0;​background:​none;​width:​0;​display:​inline-block;​position:​absolute;​top:​0;​margin-left:​2.5em;​}dep|]] 
  
  
Line 30: Line 28:
   -Run the SlackBuild, as root: ''​su -c "​./​foo.SlackBuild"​ ''​   -Run the SlackBuild, as root: ''​su -c "​./​foo.SlackBuild"​ ''​
   -Install the resulting package: ''​su -c "​installpkg /​tmp/​foo_sbo.tgz"​ ''​   -Install the resulting package: ''​su -c "​installpkg /​tmp/​foo_sbo.tgz"​ ''​
 +
 +
 +
 +====Common SlackBuild Mods====
 +
 +The great thing about a SlackBuild script is that it can be modified by you, the user. SlackBuilds have several properties that are set by the script'​s author to default values, but which can be over-ridden by the user.
 +
 +It is a convention is SlackBuild scripts from SlackBuilds.org that any value that can be defined by the user is written in CAPS. In theory, you can see most of these values in a script use ''​egrep'':​
 +
 +<​code>​
 +$ egrep '​[A-Z]+='​ audacity.SlackBuild
 +</​code>​
 +
 +In practise, there are certain strings that you will modify more often than others.
 +
 +{{anchor:​versionmod}}
 +**VERSION**
 +
 +<WRAP indent>
 +If a site offers a SlackBuild for ''​foo-1.0''​ but you know that ''​foo-2.0''​ has just been released, update the VERSION string:
 +
 +<​code>​
 +$ VERSION=2.0 ./​foo.SlackBuild
 +</​code>​
 +
 +</​WRAP>​
 +
 +
 +{{anchor:​optionmod}}
 +**Options**
 +
 +<WRAP indent>
 +Sometimes a SlackBuild author offers the user a choice in what should or should not be included in a build. For example, if a plugin is offered as both an LV2 and a VST, the author might provide the option to build both by default, with manual over-rides to drop one or the other. This is usually communicated to you in the README file.
 +
 +<​code>​
 +$ VST=no ./​foo.SlackBuild
 +</​code>​
 +</​WRAP>​
 +
  
  
Line 71: Line 108:
 these are bug fixes in the scripts or updated packages. these are bug fixes in the scripts or updated packages.
  
 +Finding a package to install is done with the ''​Browse''​ menu selection, or the 
 +''​Search''​ selection. ''​Browse''​ shows a list of top-level categories as
 +defined by SlackBuilds.org;​ use the ''​Return''​ key to select a category and browse
 +through the packages. Pressing ''​Return''​ again displays the details about a
 +package. To return to the list of packages or to the list of categories, use the Right arrow to select the Back button on the bottom row of the ''​sbopkg''​ interface, and press ''​Return''​ or type ''​Alt B''​. ​
  
 +<WRAP tip>
 +The convention of using the ''​Up''​ and ''​Down''​ arrow keys for the top menu of ''​sbopkg''​ and the ''​Right''​ and ''​Left''​ arrows for the bottom row is used throughout ''​sbopkg'',​ except in textbox dialogs where the arrows scroll the text.
 +</​WRAP>​
  
-Finding a package to install is done with the Browse menu selection, or the  +The search function in ''​sbopkg'' ​works as would be expected: hit ''​Return'' ​on **Search** and type in term you are searching for into the search field. Searches are case-insensitive and wildcarded; if a search is performed for the term "​ink"​ 
-Search selection. Browse takes the user to a list of top-level categories as +then ''​sbopkg'' ​will return "​link-grammar",​ "​inkscape",​ "​libnfnetlink",​ "​elinks",​ 
-defined by SlackBuilds.org;​ use the Return key to select a category and browse +"​wink", ​and so on. Common ​''​BASH'' ​wildcard characters are also supported, such that a 
-through the packages. Hitting Return again will display the details about a +search for "?​ink*"​ returns the same list minus "​inkscape"​which has no
-package, such as the README file, the SlackBuild script itself, and more. To go +
-back in the list of packages or to the list of categories, use the Right arrow +
-to select the Back button on the bottom row of sbopkg'​s interface, and press  +
-Return or type Alt+B. The convention of using the Up and Down arrow keys (or +
-accelerators) for the top menu of sbopkg and the Right and Left arrows (or Alt+ +
-accelerator) for the bottom row is used throughout sbopkg, except in textbox +
-dialogs where the arrows scroll the text. +
- +
-The search function in sbopkg works as would be expected: hit Return on Search +
-to be taken to a pop-up search field, ​type in the term you are searching for +
-(it is case-insensitiveand hit Return again. Sbopkg returns all packages +
-matching the search termi.e., if a search is performed for the term "​ink"​ +
-then sbopkg will return "​link-grammar",​ "​inkscape",​ "​libnfnetlink",​ "​elinks",​ +
-"​wink", ​etc. Common ​bash wildcard characters are also supported, such that a +
-search for "?​ink*"​ returns the same list minus "​inkscape"​ which has no+
 character prior to "​ink"​. character prior to "​ink"​.
  
-Building and Installing ​Software ​with Sbopkg+==== Building and Installing with Sbopkg ​====
  
-Sbopkg can build and install software. These are two separate processes. If you +''​Sbopkg'' ​can build and install software. These are two separate processes. If you 
-elect to only build software, the resulting Slackware package (.tgz file) is +elect to only build software, the resulting Slackware package (the ''​.tgz'' ​file) is 
-left in /tmp by default. This location is controlled by the OUTPUT variable in +left in ''​/tmp'' ​by default. This location is controlled by the ''​OUTPUT'' ​variable in 
-the config ​file. It can then be installed via pkgtool or installpkg, or taken +the ''​sbopkg.conf'' ​file. It can then be installed via ''​pkgtool'' ​or ''​installpkg''​, or taken to other machines of the same architecture and installed on those, or simply 
-to other machines of the same architecture and installed on those, or simply +stored for later use. Alternatively, ​''​sbopkg'' ​can be set to install the software
-stored for later use. Alternatively,​ sbopkg can be set to install the software+
 after it has been compiled. after it has been compiled.
  
-Building and/or installing can be done from different places; the Build item is +Building and/or installing can be done from different places; the ''​Build'' ​item is the final menu item on each individual package menu of un-built ​packages, and it is invoked with the ''​Process Queue'' ​item in the ''​Queue'' ​sub-menus. ​''​Sbopkg'' ​will 
-the final menu item on each individual package menu of unbuilt ​packages, and it +prompt the user to perform only a build of the software or a build-and-install. ​
-is invoked with the Process Queue item in the Queue sub-menus. Sbopkg will +
-prompt the user to perform only a build of the software or a build-and-install+
-Slackermedia recommends build-and-install for single or small groups of users +
-in which compile time is not an issue; for building larger install bases, it +
-may be more efficient to build once and install the resulting binary rather +
-than having each computer compile it individually. +
- +
-To build or install a package via sbopkg, the first step should always be to +
-view the README file. This displays a brief description of the application +
-about to be installed, any options that may be passed to the SlackBuild, and +
-any applications upon which the application depends (required dependencies can +
-always be found on SlackBuilds.org). Sbopkg does not automatically resolve +
-dependencies so it is up to the user to ensure that all listed dependencies are +
-installed on the system before proceeding. READMEs can be viewed from various +
-places, including selecting Queue ? Process ? View READMEs when using the +
-dialog interface or using the -R flag from the command line.+
  
-Assuming, ​for the purpose ​of this example, that there are no dependencies,​ the +Slackermedia recommends build-and-install ​for single or small groups ​of users in which compile time is not an issue; ​for building larger install basesit may be more efficient to build once and install ​the resulting binary rather than having each computer compile it individually.
-next step might be to view the .info file, which is a SlackBuilds.org-specific +
-file of metadata which lists the canonical program name, the version ​for which +
-the SlackBuild script was writtenthe project'​s homepage, the exact link where +
-the source code for the program can be downloaded, the md5sum of that +
-downloadable package, the SlackBuild script'​s maintainer'​s name and email, and +
-the SlackBuilds.org administrator who approved ​the script.+
  
-Next, the SlackBuild script itself can be reviewedAlthough all SlackBuild +To build or install a package via ''​sbopkg''​, the first step should always ​be to view the ''​README''​ fileThis displays ​brief description of the application ​about to be installed, any options that may be passed to the SlackBuild, and any applications upon which the application depends (required dependencies ​can always be found on SlackBuilds.org). ''​Sbopkg''​ does not automatically resolve ​dependencies ​so it is up to the user to ensure ​that all listed dependencies are installed on the system before proceeding
-scripts have been reviewed and tested by SlackBuild maintainers,​ it is good +
-idea to review the script, both for security purposes as well as to ensure that +
-the application ​is going to be installed ​the way the user thinks it's going to +
-be installed. There are some scripts that feature ​options that the user can +
-take advantage of (like turning off or on codec or plugin support), while other +
-scripts simply help elucidate optional components that the application will use +
-if available but that are not dependencies ​themselves. Other applications +
-feature an unusual build process such that a SlackBuild script may be more +
-convenient for most users but a disadvantage ​to user who relies on that +
-program and would be better off installing directly from the project'​s code +
-repository.+
  
-If additional options ​are available in the SlackBuild script, the user's local +Assuming that there are no dependenciesview the ''.info'' ​file, which is a SlackBuilds.org-specific file of metadata which lists the canonical program namethe version for which the SlackBuild script was writtenthe project'​s homepage, the exact link where the source code for the program ​can be downloaded, ​and the md5sum ​of that downloadable package.
-copy of the script and/​or ​.info file can be edited from within sbopkg by +
-selecting the Custom menu itemThis will open the SlackBuild script in the +
-user's text editor ​of choice (defined by the EDITOR environmental variable). +
-For exampleif the SlackBuild script ​for LiVES was written ​for version 1.1.8 +
-but a new version of LiVES has been released and a user wishes to install ​the +
-newer versionall that is required of the user is that the version number be +
-changed from 1.1.8 to, for instance, 1.2.0 (making ​the corresponding changes to +
-the .info file's VERSION and DOWNLOAD fields). The script ​can be saved and run +
-in sbopkg ​and the correct version ​of LiVES would be downloaded, compiled, and +
-optionally installed.+
  
-Any change ​can be made to a SlackBuild script in this way, whether the user +You can also view and edit the build script itselfif you have the knowledge to do so. 
-wishes to hard code a unique feature into the script, or define a variable that +
-is described in the README file, update the version number, modify build paths, +
-and so on. If the only thing that is desired is to set a build optionhowever, +
-this can be done by selecting ​the Options item and typing OPTION=value ? in the +
-entry field. While editing the SlackBuild is a persistent change, the edited +
-version would have to be kept in sync with version changes which happen often. +
-Using custom options also persists but only needs to be kept in sync with +
-option changes which happen rarely. Changing a SlackBuild script, of course, +
-requires at least some very basic knowledge ​of bash scripting and the +
-installation process. It may be that a software package has changed +
-substantially from one version ​to the next and so a simple update of the +
-version number may not be all that is required, so if a user is opening a +
-SlackBuild script for modification then the user should truly understand what +
-is being done in the script, or be prepared for the build to potentially fail.+
  
 A list of all SlackBuild packages installed on the user's system may be viewed A list of all SlackBuild packages installed on the user's system may be viewed
Line 180: Line 152:
  
  
-The Sbopkg Queue+==== The Sbopkg Queue ====
  
-One of the most powerful features of sbopkg is its queue, which makes it +One of the most powerful features of ''​sbopkg'' ​is its queue, which makes it possible for a user to create a list of packages to have installed in a particular order and feed that list to ''​sbopkg''​ for batch builds and batch installs. Slackermedia makes extensive use of queue files to co-ordinate which packages should be installed as a basis for a good multimedia system. ​
-possible for a user to create a list of packages to have installed in a +
-particular order and use the list on other computers. Slackermedia makes +
-extensive use of queue files to co-ordinate which packages should be installed +
-as a basis for a good multimedia system. From the main sbopkg menu, select  +
-Queue and press Return. The Queue menu contains items to view the current +
-queue, to modify the queue, load an existing queue, save a queue, rename or +
-delete existing queues, add all installed packages to the queue (for creating +
-package templates to enable restoration of the current package list or to +
-transfer to another machine), and to process the current queue.+
  
-A queue is created from the sbopkg GUI by finding a package via either Browse +To load and process a queue file, launch ''​sbopkg''​ and select ''​Queue''​. The ''​Queue''​ menu contains items to view the current queue, where you can modify a queue, load an existing queue, save a queue, rename or delete existing queues, add all installed packages to the queue (for creating package templates to enable restoration of the current package list or to transfer to another machine), and to process the current queue. 
-or Search and selecting Add to Queue. This adds the package to a temporary+ 
 +A queue is created from the sbopkg GUI by finding a package via either Browse or Search and selecting Add to Queue. This adds the package to a temporary
 session-only queue file. session-only queue file.
  
-A typical use for this would be, for instance, when installing Inkscape. Doing +A typical use for this would be, for instance, when installing ​''​Inkscape''​. Doing a search for "​inkscape" ​reveals that there is a SlackBuild available, but that it depends on a number of other packages such as ''​pangomm''​''​cairomm''​, and others. Adding ​''​Inkscape'' ​to the queue allows the user to then go seek out SlackBuild packages for its dependencies and either install them one by one, or add them to the queue as well. If they are added to the queue, then the queue exists, essentially,​ in reverse order (that is, the dependencies need to be compiled ​before the application that depends upon them). Fix this in the ''​Sort Queue'' ​submenu ​by either manually ​rearranging ​the order of the queue, or have ''​sbopkg'' ​reverse it for you. A simple reversal of the queue sometimes does work, but it may be insufficient since a dependency of one application may have its own dependencies which may require manual re-ordering to do sub-sorts ​in the queue. ​
-a search for Inkscape ​reveals that there is a SlackBuild available, but that it +
-depends on a number of other packages such as pangomm, cairomm, and others. +
-Adding Inkscape to the queue allows the user to then go seek out SlackBuild +
-packages for Inkscape'​s ​dependencies and either install them one by one, or add +
-them to the queue as well. If they are added to the queue, then obviously ​the +
-queue will attempt ​to install Inkscape ​before ​it installs ​the dependencies,​ so +
-there are special functions ​in the Sort Queue submenu ​of sbopkg'​s Queue menu to +
-either manually ​rearrange ​the order of the queue, or simply ​reverse ​the queue +
-such that it is processed in reverse order. A simple reversal of the queue +
-sometimes does work, but it may be insufficient since a dependency of one +
-application may have its own dependencies which may require manual re-ordering +
-to do subsorts ​in the queue. Alternatively,​ queuefiles can be created and +
-edited with a text editor.+
  
-The Queue menu is accessed from the main sbopkg menu by selecting Queue and +<WRAP tip> 
-contains items to view the current queuewhich is dynamically created by the +As is usually ​the case with Slackwarethere is nothing being done here that you cannot do yourself. If you find the ''​sbopkg''​ interface limitingyou may create ​queue files manually ​in any text editor and load the file into ''​sbopkg''​. 
-user during an sbopkg ​session and will be erased (unless saved) when sbopkg is +</WRAP>
-stopped. The Sort item allows the user to reorder the list of applications in +
-the queue while Remove allows the user to delete items from the queue. Save +
-allows a queue file to be saved to the harddrive for later use; this is useful +
-when doing multiple installs of Slackware on a number of machines; a queue file +
-can be used on each machine so that the same packages are installed with +
-minimal effort. By default, queue files are saved in /var/lib/sbopkg/queues.+
  
-To load a pre-existent queue file into sbopkg, select ​Queue ? Load and check +The Queue menu is accessed from the main ''​sbopkg''​ menu by selecting ''​Queue''​. From within ​the ''​Queue''​ screen, you can view the current queue (dynamically created by the 
-the desired queuefile(s) in the list. To run a queue file, select Process ​Queue +user during an ''​sbopkg''​ session). Also in the ''​Queue''​ screen:
-from the Queue menu.+
  
-For example, if you have downloaded ​the av queue file from Slackermedia,​ then +  *''​Sort''​ re-orders the list of applications in the queue
-to load it into sbopkg, simply invoke sbopkg as QUEUEDIR=/path/to/dir/ +  *''​Remove''​ deletes items from the queue. 
-containing/​queuefile ​sbopkg ​and it will appear in the checklist and can be +  ​*''​Save''​ the current session'​s queue to ''​/var/lib/sbopkg''​for later use.
-checked as usual. The queue file would then be loaded into sbopkg and you can +
-view it, modify it, remove or reorder applications,​ and finally process it.+
  
-Advanced Uses of sbopkg+To load a saved queue file into ''​sbopkg'',​ select ''​Queue''​ → ''​Load''​ and check 
 +the desired queuefile(s) in the list. 
  
-Sbopkg can also be used directly from the command line. Its options can be +To run a queue fileselect ​''​Process Queue''​ from the ''​Queue''​ menu.
-listed with sbopkg -h and details can be found via its manual page (man sbopkg +
-)but the most direct and simple command is (to use the earlier example) su +
--lc 'sbopkg -i av' ​which will search for an application or queue file called +
-"​av"​ and install it (if an application) or the programs in it (if a queuefile). +
-If both a program and queuefile exist with the same name, you'll be prompted to +
-specify which. If a queuefile is intended, specifying the .sqf extension will +
-avoid the prompt. If you know the name of an application and feel confident +
-that you you have met all its dependencies (or can meet them all within the +
-same command), this is probably both easier and simpler than loading sbopkg'+
-graphical environment.+
  
-Other command line options include causing ​sbopkg to rsync to slackbuilds.org, +For example, if you have downloaded a queue file from Slackermedia,​ then to load it into ''​sbopkg'',​ you can invoke ''​sbopkg''​ as ''​QUEUEDIR=/​path/​to/​dir/​containing_the_queuefile sbopkg''​ and it will appear in the ''​Load''​ listThe queue file would then be loaded into ''​sbopkg''​ and you can view itmodify itremove or reorder applications, and finally process it.
-building without installingdiverse search optionsviewing changelogs, and so +
-on.+
  
-It is also possible to maintain a local repository of customized SlackBuilds 
-rather than, or in addition to, synchronizing with SlackBuilds.org. The local 
-repository is stored in /​var/​lib/​sbopkg/​local by default and can be made active 
-by either selecting it from Utilities ? Repository or by invoking sbopkg as  
-sbopkg -V local. Additionally,​ the location of the sbopkg repository can be 
-defined in the /​etc/​sbopkg/​sbopkg.conf file. If necessary, you may also pass 
-the -d flag to specify an alternate directory for SlackBuilds repositories or 
-by maintaining two configuration files, since sbopkg can be passed an alternate 
-configuration file (sbopkg -f FILE) on the command line. 
  
-sport+==== Advanced Uses of sbopkg ====
  
-Sport, the "​Slackware Port" system, is a simple shell frontend to +''​Sbopkg''​ can be used directly from the command line
-Slackbuilds.org. It is meant to be simpler and less interactive than sbopkg, +
-and instead emulate ​the BSD port system, or Gentoo'​s emerge.+
  
-Like other Slackware package installation applications,​ sport is not a package +Find its usage and options with ''​sbopkg -h''​or read about it in detail with ''​man sbopkg''​. The most direct ​and simple command is (to use the earlier example):
-manager. However, it does help you search through your collection of +
-SlackBuilds, read relevant files about each SlackBuild, ​and then execute ​the +
-build and install processes.+
  
-Note+<​code>​ 
 +su -lc "​sbopkg -i foo" 
 +</​code>​
  
-Since the most prolific ​and uniform collection of SlackBuilds ​is +This searches for an application or queue file called "​foo" ​and install it (if it is an application) or the programmes listed in it (if it is a queue file).
-SlackBuilds.org,​ and since Slackermedia is so heavily reliant upon +
-SlackBuilds.org,​ sport was largely modeled after the structure of SB.o, +
-although ​it is not restricted to it and technically will work with any +
-collection of builds ​(such as your own personal collection of modified builds, +
-or those of trusted associates).+
  
-To install sport, download its source code and use sport to install sport (yes, +If both an application ​and a queue file exists with the same name, you'll be prompted to specify which you meant. If a queue file is intended, using and specifying the ''​.sqf''​ extension ​to avoid the prompt.
-you can use sport to install itself):+
  
-  $ git clone gitorious.org/​slackport/​sport.git sport.git+If you know the name of an application and feel confident that you you have met all its dependencies (or can meet them all within the same command), using ''​sbopkg''​ as a command is the easier and simpler than loading the graphical environment.
  
-  $ cd sport.git +Other command line options include causing ​''​sbopkg''​ to rsync to slackbuilds.org, building without installing, diverse search options, viewing changelogs, and so on.
-  $ su -c +
-  ​'./sport install ​.'+
  
-To use sport, you must have a local repository of SlackBuilds. Since +It is also possible to maintain ​a local repository of customized SlackBuilds rather than, or in addition to, synchronizing with SlackBuilds.org. The local repository ​is stored in ''/​var/​lib/​sbopkg/​local''​ by default and can be made active by either selecting it from ''​Utilities''​ → ''​Repository''​ or by invoking ''​sbopkg''​ as:
-Slackermedia relies heavily upon slackbuilds.org, it is worth while to pull the +
-entire listing of SlackBuild scripts ​from the site:+
  
-  $ su -c 'mkdir -p /​usr/​ports'​ +<​code>​ 
-  $ su -c 'rsync -av rsync://​slackbuilds.org/​slackbuilds/​$(awk '​{print $2}' /​etc/​slackware-version)/​ /usr/ports/'+sbopkg ​-V local 
 +</code>
  
-If you want to use sport and sbopkg ​on the same system, you should use the same +Additionally,​ the location of the ''​sbopkg''​ repository can be defined in the ''/​etc/​sbopkg/​sbopkg.conf''​ file. If necessary, you may also pass the ''​-d''​ flag to specify an alternate directory for SlackBuilds repositories or by maintaining two configuration files, since ''​sbopkg''​ can be passed an alternate configuration file (with ''​sbopkg ​-f foo.conf''​) on the command line.
-location that sbopkg ​uses (or else use the sport location for sbopkg)An +
-example of the former:+
  
-  $ su -c 'mkdir -p /​var/​lib/​sbopkg/​SBo/​$(awk '​{print $2}' 
-  $ su -c 'rsync -av rsync://​slackbuilds.org/​slackbuilds/​$(awk '​{print $2}' /​etc/​slackware-version) /​var/​lib/​sbopkg/​SBo/​xx.x/'​ 
  
-Before you can use sport, you must set the location of your local SlackBuild +===== sport =====
-repository. Open /​etc/​sport.conf and edit the SBOPATH and MASTER variables. For +
-example, assuming xx.x is your version of Slackware:+
  
-   +''​Sport'',​ the "​Slackware Port" system, is Slackermedia'​s shell frontend to [[http://slackbuilds.org]]. It is meant to be simpler and less interactive than ''​sbopkg'',​ 
-    SBOPATH=/usr/ports +and it instead emulates the BSD ports system, or the ''​emerge''​ system from Gentoo.
-  ​+
  
-   +[{{ sport.png |The sport interface.}}]
-    MASTER="​rsync:?/​slackbuilds.org/​slackbuilds/​xx.x" +
-  ​+
  
-There are a few different ways to use sportbut it was written with BSD Ports +Like other Slackware package installation applications''​sport''​ is not a package manager as you would find in [[http://​debian.org|Debian]] or [[http://​redhat.com|Red Hat]]. Howeverit does help you search ​through ​your collection ​of SlackBuilds,​ read relevant files about each SlackBuild, and then execute the build and install processes.
-in mindso its intended workflow mimics the way that the BSD Handbook guides +
-users through ​the intended usage of their Ports system.+
  
-In general, ​the workflow would be:+<WRAP tip> 
 +Since the most prolific and uniform collection of SlackBuilds is [[http://​slackbuilds.org]],​ and since Slackermedia is so heavily reliant upon SlackBuilds.org,​ ''​sport''​ is largely modeled after the structure of SBo, although it is not restricted to it and technically will work with any collection of builds (such as your own personal collection of modified builds, or those of trusted associates). 
 +</​WRAP>​
  
- 1. Search for a term or package name that you want to install+To install ''​sport'',​ download its source code and use ''​sport''​ to install ''​sport''​ (yes, you use ''​sport'' ​to install ​itself):
  
- 2Read about the package you find in order to learn about what libraries and +<​code>​ 
-    other applications it depends on, as well as any important build notes+$ git clone https://​gitlab.com/​slackport/​sport.git sport.git 
 +$ cd sport.git 
 +$ su -lc '​./​sport install ​.' 
 +</​code>​
  
- 3. Download, build, install+==== Setup ====
  
-These tasks are each individual commands within the sport toolset. For each +To use ''​sport''​, you must have a local repository of SlackBuildsSince Slackermedia relies heavily upon slackbuilds.orgit is worth while to pull the entire listing of SlackBuild scripts from the site:
-flag, you can use every common convention for switchesFor examplethese +
-would all do the same thing:+
  
-  * sport --search foo+<​code>​ 
 +$ su -c '​mkdir ​-p /​usr/​ports'​ 
 +$ su -c 'rsync -av rsync://​slackbuilds.org /​slackbuilds/​$(awk '​{print $2}' /​etc/​slackware-version)/​ /​usr/​ports/'​ 
 +</​code>​
  
-  * sport search foo+If you want to use ''​sport''​ and ''​sbopkg''​ on the same system, consider using the same location that ''​sbopkg''​ uses (or else use the ''​sport''​ location for ''​sbopkg''​). An example of the former:
  
-  * sport s foo+<​code>​ 
 +$ su -c 'mkdir -p /​var/​lib/​sbopkg/​SBo/​$(awk '​{print $2}' 
 +$ su -c 'rsync -av rsync://​slackbuilds.org/​slackbuilds/​$(awk '​{print $2}' /​etc/​slackware-version) /​var/​lib/​sbopkg/​SBo/​xx.x/'​ 
 +</​code>​
  
-  * sport -s foo+Before you can use ''​sport'',​ verify the location of your local SlackBuild repository. Open ''/​etc/​sport.conf''​ and edit the ''​SBOPATH''​ and ''​MASTER''​ variables. For example, assuming ''​xx.x''​ is your version of Slackware:
  
-Sport Walkthrough+<​code>​  
 +SBOPATH=/​usr/​ports
  
-The first step in the workflow is to find what you want to installIf you only +MASTER="​rsync://​slackbuilds.org/​slackbuilds/​xx.x"​ 
-have an idea of what you want, then you'll want to search for matches to some +</​code>​
-keyword:+
  
-    # sport search foo+There are a few different ways to use ''​sport'',​ but it was written with BSD Ports in mind, so its intended workflow mimics the way that the [[https://​www.freebsd.org/​doc/​en_US.ISO8859-1/​books/​handbook/​|BSD Handbook]] guides users through the intended usage of their Ports system.
  
-    network/​emacs-foo.tar.gz ... emacs-foo +In general, the workflow would be:
-    (simple Emacs interface of foo)+
  
-    network/​foo.tar.gz ... foo (text based web +  -Search for a term or package name that you want to install 
-    ​browser ​and pager)+  -Read about the package you find in order to learn about what libraries ​and other applications it depends on, as well as any important build notes 
 +  -Download, build, install
  
-The search function of sport performs a fuzzy search on any term you provide. A 
-search for "​foo"​ therefore returns the category and packages names for both the 
-stand-alone foo and the Emacs foo mode. 
  
-Note+These tasks are each individual commands within the ''​sport''​ toolset. For each flag, you can use every common convention for switches. For example, these all do the same thing:
  
-If you only want to browse through your SlackBuilds tree without having to +  *''​sport --search foo''​ 
-think up search ​terms, cd into /usr/ports (or whatever you have set SBOPATH to) +  ​*''​sport ​search ​foo''​ 
-and browse its contents.+  *''​sport s foo''​ 
 +  ​*''​sport -s foo''​
  
-If you find something of interest but want to see if you already have it 
-installed, use sport check: 
  
-  ​# sport check foo+==== Sport Walkthrough ==== 
 + 
 +The first step in the workflow is to find what you want to install. If you only have an idea of what you want, then you'll want to search for matches to some keyword: 
 + 
 +<​code>​ 
 +# sport search foo 
 +network/​emacs-foo.tar.gz ... emacs-foo (imaginary emacs mode) 
 +network/​foo.tar.gz ... foo (fake network tool) 
 +audio/​kfooplayer.tar.gz ... kfooplayer (fake audio tool) 
 +</​code>​ 
 + 
 +The search function of ''​sport''​ performs a fuzzy search on any term you provide. A search for "​foo"​ therefore returns the category and packages names for both the stand-alone ''​foo''​ and, in this example, the ''​emacs-foo''​. It also returns a string in which "​foo"​ appears; as in ''​kfooplayer''​. 
 + 
 +<WRAP tip> 
 +If you only want to browse through your SlackBuilds tree without having to think up search terms, cd into ''/​usr/​ports''​ (or whatever you have set ''​SBOPATH''​ to) and browse its contents. 
 +</​WRAP>​ 
 + 
 +From this point on, ''​sport''​ interaction is //not// fuzzy as the ''​search''​ is; use the proper name of the application from here on: 
 + 
 +If you find something of interest but want to see if you already have it installed, use ''​sport check'':​ 
 + 
 +<​code>​ 
 +# sport check foo 
 +</​code>​
  
 If nothing is returned, then you do not have that application installed. If nothing is returned, then you do not have that application installed.
  
-The next step in the typical workflow is to read about the package you are +The next step in the typical workflow is to read about the package you are about to install, so that you know about any important build configuration 
-about to install, so that you know about any important build configuration +options, or dependencies that you should install first. Use ''​sport cat'' ​to see all relevant notes in a SlackBuild. ​
-options, or dependencies that you should install first. Use sport cat to see +
-all relevant notes in a SlackBuild. ​If the package search returned only one +
-match, then you can use just the packagename,​ but if there were multiple +
-matches then you should provide both the category and package name:+
  
-  ​$ sport c net*/foo+<​code>​ 
 +$ sport c foo 
 +</​code>​
  
-If you have changed directories into your SlackBuild tree and are in the same +If you have changed directories into your SlackBuild tree and are in the same directory as the SlackBuild file, you can cheat and provide the path to the package with a dot-slash:
-directory as the SlackBuild file, you can cheat and provide the path to the +
-package with a dot-slash:+
  
-  ​$ sport cat ./foo+<​code>​ 
 +$ sport cat ./foo 
 +</​code>​
  
 Or if you are in the SlackBuild'​s directory, just use a dot. Or if you are in the SlackBuild'​s directory, just use a dot.
  
-  ​$ sport cat .+<​code>​ 
 +$ sport cat . 
 +</​code>​
  
-This displays the README and the .info files of the package, so that you can +This displays the ''​README'' ​and the .info files of the package, so that you can see what the application claims to do, and what dependencies are recommended and required.
-see what the application claims to do, and what dependencies are recommended +
-and required.+
  
-If the package you want to install has dependencies,​ you should resolve those +If the package you want to install has dependencies,​ you should resolve those dependencies before continuing. Unlike the BSD Ports and Gentoo emerge systems, ​''​sport'' ​does not resolve dependencies for you. That way, if you have already have a package or a SlackBuild for a dependency (or you prefer to compile it yourself), you can use it instead of whatever an automated "​package manager"​
-dependencies before continuing. Unlike the BSD Ports and Gentoo emerge systems, +
-sport does not resolve dependencies for you. That way, if you have already have +
-a package or a SlackBuild for a dependency (or you prefer to compile it +
-yourself), you can use it instead of whatever an automated "​package manager"​+
 happens to find lying around. happens to find lying around.
  
-Note+<WRAP important>​ 
 +//Resolving dependencies//​ may sound mysterious but all it means is that you will have to install some additional system libraries or smaller applications before you install the application you are trying to obtain. To resolve the dependencies of ''​foo'',​ you would take note of the libraries it requires (''​bar''​ and ''​baz''​) and then use ''​sport''​ to install each one before then installing ''​foo''​ itself. 
 +</​WRAP>​
  
-"​Resolving dependencies"​ may sound mysterious but all it means is that you will +Once you have resolved all dependencies, ​you are ready to build the package. There are two commands ​you can use; ''​sport install''​ will build the package and install ​it onto your system ​(leaving a copy of the finished Slack package in the default build location for SBo packages: ''/​tmp''​), while ''​sport install ​--build-only''​ just compiles the code but does //not// install the package.
-have to install some additional system libraries or smaller applications before +
-you install the application ​you are trying ​to obtain. To resolve ​the +
-dependencies of foo, you would take note of the libraries ​it requires ​(bar and  +
-bazand then use sport to install ​each one before then installing foo itself.+
  
-Once you have resolved all dependencies,​ you are ready to build the package. +<​code>​ 
-There are two commands you can use; sport install ​will build the package and +$ su -lc 'sport install ​foo' 
-install it onto your system (leaving a copy of the finished Slack package in +</code>
-the default build location for SBo packages: ​/tmp), while sport install +
---build-only only builds but does not install the package. +
- +
-  # sport install foo+
  
-Again, if you are in the directory containing the SlackBuild you want to +Again, if you are in the directory containing the SlackBuild you want to install, you can cheat and provide the path to the package with a dot, meaning
-install, you can cheat and provide the path to the package with a dot, meaning+
 that the build script is in the current directory: that the build script is in the current directory:
  
-  # sport -i .+<​code>​ 
 +su -lc 'sport -i .
 +</​code>​
  
-If you are fastidious about disk space or keeping a tidy SlackBuilds tree, use  +If you are fastidious about disk space or keeping a tidy SlackBuilds tree, use ''​sport clean foo'' ​to remove the directory containing the source code and 
-sport clean foo to remove the directory containing the source code and +SlackBuild. It of course leaves any compressed copy of your SlackBuild directory (the SlackBuild.org structure).
-SlackBuild. It of course leaves any compressed copy of your SlackBuild +
-directory (the SlackBuild.org structure).+
  
-Warning+<WRAP alert> 
 +If you are //not// using the SlackBuild.org tree, then you should either keep your originals as compressed .tar.gz archives or you should either modify or not use the clean command. 
 +</​WRAP>​
  
-If you are not using the SlackBuild.org tree, then you should either keep your +''​sport''​ may be used from anywhere in your filesystem, or you can use it as you "​crawl"​ through your SlackBuild tree. It's a handy and flexible tool that can help make the potentially repetitious process of downloading,​ compiling, and installing software easier.
-originals as compressed ​.tar.gz archives or you should either modify or not use +
-the clean command.+
  
-As you can see, sport may be used from anywhere in your filesystem, or you can +==== Advanced Sport Usage ====
-use it as you "​crawl"​ through your SlackBuild tree. It's a handy and flexible +
-tool that can help make the potentially repetitious process of downloading,​ +
-compiling, and installing software easier.+
  
-Advanced Sport Usage+Since ''​sport''​ is just a BASH script, you can use the usual BASH conventions to add flexibility to your commands.
  
-Since sport is just a BASH scriptyou can use the usual BASH conventions to +To pass build options through ''​sport''​provide ​the option (usually defined in the ''​README''​ of the SlackBuild).
-add flexibility to your commands.+
  
-To pass build options through ​sport, provide the option (usually defined in the +<​code>​ 
-README of the SlackBuild).+# WIDGETS=yes ​sport install foo 
 +</​code>​
  
-  # WIDGETS=yes ​sport install foo+To pass make flags through ​sport, use ''​MAKEOPTS''​.
  
-To pass make flags through sport, use MAKEOPTS.+<​code>​ 
 +MAKEOPTS='​-j8'​ sport install foo 
 +</​code>​
  
-  # MAKEOPTS='-j8' sport install foo+If you need to do some special kind of install (such as an ''​upgradepkg''​ rather than an ''​installpkg''​) then preface your ''​sport ​-i''​ command with the ''​INSTALLER''​ environment variable:
  
-If you need to do some special kind of install (such as an upgradepkg rather +<​code>​ 
-than an installpkg) then preface your sport -i command with the INSTALLER +# INSTALLER=upgradepkg sport i . 
-environment variable: +</​code>​
- +
-  # INSTALLER=upgradepkg sport i .+
  
 Or something more complex: Or something more complex:
  
-  ​# INSTALLER="​upgradepkg --install-new"​ sport -i multi*/foo  +<​code>​ 
 +# INSTALLER="​upgradepkg --install-new"​ sport -i foo  
 +</​code>​
  
 And so on. And so on.
  
-Queue Files+==== Queue Files ====
  
-Sport supports batch, or queue, files.+''​Sport'' ​supports batch, or queue, files.
  
-For your initial Slackermedia install actions, you will use a Slackermedia +For your initial Slackermedia install actions, you will use a Slackermedia ​[[http://slackermedia.info/​downloads|queue file]] ​but you can also create and 
-queue files (slackermedia-huge.sqf, for example) ​but you can also create and +maintain your own queue files. To create your own queue, just echo the package names into a plain text file, newline delimited, in the order you wish for them to be installed.
-maintain your own queue files. To create your own queue, just echo the package +
-names into a plain text file, newline delimited, in the order you wish for them +
-to be installed.+
  
-Note+<WRAP alert> 
 +In the event of two packages sharing the same name, use both the category and package name. Usually, just the package name will do, as the SlackBuild maintainers try to keep all names unique. 
 +</​WRAP>​
  
-In the event of two packages sharing the same name, use both the category and +Here is an example of a simple queue file for the imaginary package ''​foo''​:
-package name, but usually just the package name will do. +
- +
-Here is an example of a simple queue file for foo:+
  
 +<​code>​
 baz baz
 bar bar
 foo foo
 +</​code>​
  
-Save these three lines as foo.list (or any filename) and then have sport +Save these three lines as ''​foo.list'' ​(or any filename; ''​sport''​ does not require any specific extension as long as the file is plain text) and then have ''​sport'' ​process it using standard BASH re-direction:​
-process it using standard BASH re-direction:​+
  
 +<​code>​
 # sport $( < foo.list) # sport $( < foo.list)
 +</​code>​
 +
 +''​Sport''​ is not a complex application,​ but it is quite flexible; for even more details on using ''​sport'',​ view the man and info pages bundled with it. 
  
-For full details on using sport, view the man and info pages bundled with it. 
  
 +<WRAP centeralign>​
 +<wrap fa>​[[pkg|R]]</​wrap>​ <wrap fa>​[[start|S]]</​wrap>​ <wrap fa>​[[dep|Q]]</​wrap>​
 +</​WRAP>​
  
-[[{arrown.png|border:​0;​background:​none;​width:​0;​display:​inline-block;​float:​right;​}dep|]][[{arrowp.png|border:​0;​background:​none;​width:​0;​float:​right;​}pkg|]]