====== Building Slackermedia ====== You should have at this point a fully functional Slackware system. You can use this system as you would any computer for any other task, but the goal for this handbook is to build upon the base install to create a multimedia studio. There are a number of small programmes, libraries, and applications that a typical multimedia system, regardless of what you intend to do on it, should have installed, simply because they are so ubiquitous that the major media apps you install probably require them anyway. These dependencies and libraries are usually small pieces of software that you will not use directly, but that are important for the larger applications to be able to function properly. In some cases, these dependencies are also fully-featured applications in themselves, and are also used by other applications. In any case, they are good to have as a common base from which you can build upon; think of it as the missing "base install" components that you didn't get with stock Slackware. Determining what your system will need in order to process all the different kinds of media that a multimedia artist typically encounters can be confusing and overwhelming. This burden is alleviated in this chapter. ===== Which Dependencies Should You Install? ===== Slackware is a nice all-purpose distribution, so many of the dependencies, libraries, and backend apps required for a Slackermedia system are already installed by default, and many others can be obtained easily and quickly via slackbuilds.org and other resources outlined in [[slackbuilds]]. As such, Slackermedia offers a list of the common multimedia-related libraries that you should install so that time spent manually installing dependencies is minimised. This list of Slackermedia dependencies can be installed manually, or you can pipe it into ''sport'' or loaded into ''sbopkg'' for automated processing. The Slackermedia dependency list is not literally all-inclusive. You may have to install more than those listed here, depending on what you intend to install for your multimedia work. But if you performed the default, full Slackware install and do a complete Slackermedia dependency install, then most everything you'll need will be ready for you when you need it. ==== On Building and Installing ==== **TL;DR** Be sure to build applications in order; if you try to build one before building a library it uses, then it will fail! Mind the order in which you build libraries and dependencies; if you attempt to compile, for instance, ''Inkscape'' before you compile ''libsigc++'' then the build will certainly fail since Inkscape depends on ''libsig++'' to compile from source code. The sequence of building //is important//. You can think of building and installing software like a puzzle. Building the dependencies are like gathering up all the puzzle pieces, and installing them is like putting the puzzle together. Without all the pieces, you would not want to try to assemble the puzzle, but as long as all of them are present, the puzzle works as expected. So the order of //installing// is unimportant. For example, a system admin managing several systems can build the software in the requisite order, place the packages on a hard drive, and take those packages round to each computer and install them in bulk. As long as all the pieces are present, everything will work as expected. ===== Structure of Slackermedia Queue Files ===== **TL;DR** Download the Slackermedia queue file and install everything listed in it with ''sport''. To use the Slackermedia lists of dependencies and libraries, you may download queue files from [[http://slackermedia.info/downloads]]. To use the queue file with ''sport'': $su - #sport install $( < /path/to/slackermedia-huge.sqf ) To use it with sbopkg: $su - #sbopkg -i /path/to/slackermedia-huge.sqf Slackermedia originally provided four queue files, dividing installable libraries into groups like ''av'' for audio and video producers, ''vg'' for video and graphic artists, and so on, plus a ''huge'' queue file containing everything from all of those groups. This proved to be confusing and arbitrary, and most people just used the ''-huge'' file anyway. As of 2015, Slackermedia provides four queue files: the huge file, plus three discipline-specific files in the interest of letting the user opt for a potentially faster install by excluding some large programmes that are probably only useful within a different discipline. It is strongly recommended that you install the ''slackermedia-huge.sqf'' file. Chances are that as an artist, you do not only do one artistic thing, so the ''-huge'' support will almost certainly be useful either as an artist or simply just as a modern computer user (the added codecs, for example, will impact you every time you attempt to play non-open media types). The directory on the Slackermedia server also contains the master file from which the other queue files are generated, as well as the shell script that generates them. You are free to download these resources, but they will not work as a queue file, since they are not queue files. Download the queue files from [[http://slackermedia.info/downloads/queues]] and process with ''sport'' or the installer of your choice. ==== Combining Queues ==== If you are unable or unwilling to to install the ''-huge'' set for whatever reason, but you do wish to combine two queue files, you should prune out duplicate entries. For instance, to combine the audio set with the video set: # sport -i $( < sort slackermedia-a.sqf \ slackermedia-v.sqf | uniq ) Of course, by the time you have combined two sets, you are probably only excluding one or two packages from being installed, so it would be easier to do the recommended ''-huge'' install. ==== Troubleshooting ==== Sometimes an automated install fails due to the loss of network connectivity, or a source code package having been moved from its known location on the internet, or an md5 checksum failure, or some other error. Should this happen, take note of what package caused the failure. **Attempt a manual install** (using the Slackbuild script, but with a manual download of the source code from the location listed in the ''.info'' file in the SlackBuild tree. If that install works (it usually does), then you can resume the automated install by skipping all installed packages: # for i in $( < slackermedia-huge.sqf ); \ do if [ ! -e /var/log/packages/"$i"* ]; \ then sport install $i "hello" ; \ fi ; \ done Or open the queue file in a text editor and manually delete the entries leading up to and including the failed package. Do not proceed with more installs without resolving any issue that prevents an install. At best, some of the following installs will fail because they relied upon the package that you skipped. At worst, everything will appear to have succeeded, and then you will experience failures later because the package that got skipped is being requested by some other application during runtime and is not being found. If something fails to install and you do not know why, post a question about it in the Slackware forums at [[http://linuxquestions.org]] (you may send a private message to user ''notklaatu'' if you wish) detailing what happened during your manual attempt to install the SlackBuild. It is vital that you make an attempt to install the SlackBuild manually before asking for help! Slackbuilds.org itself does not support frontends like ''sport'' or ''sbopkg'', nor does Slackware; and they shouldn't, because the SlackBuild system is well-designed and mostly flawless. It's usually the assistance of an automated frontend that tempts a user to forego reading how to install something correctly and thereby introduces a problem (or a change in the source code location). An attempt at a manual install will most likely reveal the exact stage at which the install process fails, and that's vital information. ==== Queue File Manifest ==== **huge set** ''huge'' installs all Slackermedia deps and libs, and a few important applications for good measure. Highly recommended. Without going into specifics due to additions and subtractions and other changes that the list is inevitably subject to, this set contains: * GUI frontends like ''fltk'' and ''wxGTK'', which are the GUI basis for many other applications. * Over 20 freely-available codecs and graphic libraries so that no matter what kind of file a client delivers to you, your system will most likely be able to play (decode) it. Many of these codecs support an "everything and the kitchen sink" build of ''ffmpeg'', which is a video and audio encoding and decoding engine, and tends to be important to serious multimedia work. * Essential multimedia tools like the system-wide sound server ''JACK'', some of the most versatile soft synths available, the video effect library ''frei0r'', audio effects plugins, several ''GIMP'' plugins, ''Inkscape'' (the entire application, which is not included with Slackware), the ''MediaInfo'' analytic tool so that you can get specs on video and audio files, and much more. * System-level tools and libraries that you may or may not use directly but which will be needed by one or more of the applications that you will, as a multimedia artist, certainly install at some point in the future. This includes XML parsers, ''libdvdcss'' for commercial DVD playback, ''SDL'', ''GNOME'' components that many ''GTK'' multimedia applications need, EXIF tools, ID3 libraries, ''Cython'', and more. Slackermedia recommends that you install this one, no matter what your artistic discipline. **a Set** Set a installs the Slackermedia dependencies and libraries that primarily relate to audio work, but also those that support ffmpeg, which is primarily a video tool but is also useful for audio conversion. If you install the ''huge'' set, then you get everything in this set plus a lot more. It is recommended that you install the ''huge'' set. Without going into specifics due to additions and subtractions and other changes that the list is inevitably subject to, this set contains: * GUI frontends like ''fltk'' and ''wxGTK'', which are the GUI basis for many other applications. * Over 20 freely-available codecs and graphic libraries so that no matter what kind of file a client delivers to you, your system will most likely be able to play (decode) it. * Essential multimedia tools like the system-wide patchbay JACK, some of the most versatile soft synths available, including ''Zyn'', ''Alsa Modular'', ''AmSynth'', and ''Fluidsynth'', audio effects plugin sets such as ''Steve Harris'', ''CALF'', ''TAP'', and ''Invada'', ''Rakarrack'', the ''MediaInfo'' analytic tool so that you can get specs on video and audio files, and much more. * System-level tools and libraries that you may or may not use directly but which will be needed by one or more of the applications that you will, as a multimedia artist, certainly install at some point in the future. This includes XML parsers, ''libdvdcss'' for commercial DVD playback, ''SDL'', ''GNOME'' components that many GTK multimedia applications need, EXIF tools, ID3 libraries, ''Cython'', and more. Do not install this if you have already installed the ''huge'' set, and you should not combine this with another set (if you want to do that, just install ''huge''. **v Set** Set v installs the Slackermedia dependencies and libraries that primarily relate to motion and stop-motion (animated) visual work, including those that support ''ffmpeg'' (the most ubiquitous video engine on Linux) but not ''ffmpeg'' itself. Since there are so many ways to build ''ffmpeg'', Slackermedia offers a custom-built ''ffmpeg'' package that includes nearly all available codecs listed as the ''ffmpeg'' config options, which you will install later. If you install the ''huge'' set, then you get everything in this set plus a lot more. It is recommended that you install the ''huge'' set. Without going into specifics due to additions and subtractions and other changes that the list is inevitably subject to, this set contains: * GUI frontends like ''fltk'' and ''wxGTK'', which are the GUI basis for many other applications. * Over 20 freely-available codecs and graphic libraries so that no matter what kind of file a client delivers to you, your system will most likely be able to play (decode) it. * Essential multimedia tools like the system-wide sound mixer ''JACK'', the ''frei0r'' video effect set some basic audio effects, ''Inkscape'' and a number of ''GIMP'' plugins (meant for titling and animation), the ''POVray'' renderer, the ''MediaInfo'' analytic tool so that you can get specs on video and audio files, and much more. * System-level tools and libraries that you may or may not use directly but which will be needed by one or more of the applications that you will, as a multimedia artist, certainly install at some point in the future. This includes XML parsers, ''libdvdcss'' for commercial DVD playback, ''SDL'', ''GNOME'' components that many GTK multimedia applications need, EXIF tools, ID3 libraries, ''Cython'', and more. Do not install this if you have already installed the ''huge'' set, and you should not combine this with another set (if you want to do that, just install ''huge''. **g Set** Set g installs the Slackermedia dependencies and libraries that primarily relate to graphic and non-motion visual work, including those that support ffmpeg (the most ubiquitous video engine on Linux) but not ffmpeg itself. Since there are so many ways to build ''ffmpeg'', Slackermedia offers a custom-built ffmpeg package that includes nearly all available codecs listed as the ffmpeg config option, which you will install later. If you install the ''huge'' set, then you get everything in this set plus a lot more. It is recommended that you install the ''huge'' set. Without going into specifics due to additions and subtractions and other changes that the list is inevitably subject to, this set contains: * RAW image tools, including ''raw-thumbnailer'', ''dcraw'', and the ''luminanceHDR'' application. It does not install flagship applications like ''Darktable'', ''Lightzone'', or ''DigiKam'', but these can be installed later. foobaz * Over 20 freely-available codecs and graphic libraries so that no matter what kind of file a client delivers to you, your system will most likely be able to play [decode] it. * SDL tools, used in video games and other works of art that may involve non-traditional use of graphical elements. * System-level tools and libraries that you may or may not use directly but which will be needed by one or more of the applications that you will, as a multimedia artist, certainly install at some point in the future. This includes XML parsers, libdvdcss for commercial DVD playback, the POVray renderer, some GNOME components that many GTK multimedia applications need, EXIF tools, ID3 libraries, Cython, and more. Do not install this if you have already installed the Huge set, and you should not combine this with another set (if you want to do that, just install Huge. ==== Coffee Break ==== A very robust Slackermedia install will involve over 100 packages from slackbuilds.org . The huge queue file can be downloaded at [[http://slackermedia.info/downloads/queues/slackermedia-huge.sqf]]. This gives you a solid foundation for a wide variety of more discipline-specific applications. Feel free to customise and maintain your own base install list as you see fit; you may not need so many video codecs, or you may opt for a different id3 tag editor, and so on. However, installing the ''huge'' set of dependencies and libraries prepares your system quite well for a more discipline-specific set of applications. The full ''huge'' install will take some time, so you may find this to be a good time for a coffee break. Next, we will look at a number of important multimedia components that you can install to get your artwork done, different options you have while installing them, as well as how many of them work together. [[slackbuilds|R]] [[start|S]] [[colour|Q]]