#!/bin/bash . /usr/share/slax/slaxbuildlib # # This is a template build script for Slax. # Read all the comments in order to understand how to use it. # Basically you fill in some necessary data and you run it. # # If it produces Slax module properly, you may upload it # to Slax server by using command: # # $ slax buildscript upload [ filename ] # # (where filename is path to the build script you're uploading) # The actual filename doesn't matter, your Slax bundle will be # called according to SLAX_BUNDLE_NAME # # --------------------------------------------------------------- # First of all, we're going to describe the package we're building. # These variables are read by Slax server in order to collect some # important metadata about your bundle. # --------------------------------------------------------------- # Specify name of this bundle. For example, if you're building # thunderbird, use "thunderbird" as bundle name. It has to be # unique name. It is recommended that you first check if the same # name is not already used, by $ slax buildscript download NAME. # If a buildscript downloads then it's already taken and you have # to either contact the author with your request for improvements, # or rename your bundle to something else. # Use english name only. Allowed characters are: a-z A-Z 0-9 - # Space is not allowed. Do not include version number in the name. # SLAX_BUNDLE_NAME="bluez" # Specify version of the module. It is recommended to # specify the same version as the software you're building, # for example if you're building firefox 17.0, put there "17.0" # SLAX_BUNDLE_VERSION="4.99" # Optional (but recommended) description. 65536 characters maximum. # Use only one line of text, do not split on more lines. # SLAX_BUNDLE_DESCRIPTION="Bluetooth libraries and utilities Bluez is the Bluetooth stack for Linux, allowing Bluetooth adaptors and devices to be used with Linux. This module contains the Bluez libraries, utilities, and other support files." # Category tags # Specify which categories the bundle you're building belongs. # You can specify more than one. Separate by space or comma. # Possible values are: # artwork, games, network, develop, console, graphics, # editors, security, drivers, libraries, education # multimedia, system, multilang, utilities # SLAX_BUNDLE_CATEGORIES="network, libraries" # Specify unique names of existing Slax bundles which must be # activated a priori in order for your bundle to work in Slax. # Separate by space or comma. For example, if you're building # xbmc, you may need to use "libmpeg2,libass" # SLAX_BUNDLES_REQUIRED="" # If you're going to compile from sources, and the compilation # requires some software, specify it here. Separate names by # space or comma. The software you're building must run # without these dependencies. If it doesn't list your deps # in the previous SLAX_BUNDLE_REQUIRES setting. For example, # some software may need perl or cmake, so use "perl,cmake" # in that case. # SLAX_BUNDLES_REQUIRED_TO_COMPILE_ONLY="" # Tell us who you are, so others can contact you in case of # suggestions or questions. Please use valid values. # SLAX_BUNDLE_MAINTAINER_NAME="Tomas M" SLAX_BUNDLE_MAINTAINER_EMAIL="tomas@slax.org" # All source packages which need to be downloaded, or basically # anything you need to download in order to produce your bundle. # Specify direct URL links to download. You can add just one URL # and leave the other empty or you can even add more than three, # just remember to increase the index in brackets like [4], [5]... # All protocols supported by wget are possible, eg http, ftp. # SLAX_BUNDLE_SOURCE_DOWNLOAD[0]="http://mirrors.slackware.com/slackware/slackware-current/slackware/n/bluez-4.99-i486-2.txz" SLAX_BUNDLE_SOURCE_DOWNLOAD[1]="http://mirrors.slackware.com/slackware/slackware64-current/slackware64/n/bluez-4.99-x86_64-2.txz" SLAX_BUNDLE_SOURCE_DOWNLOAD[2]="" # -------------------------------------------------------------------- # -------------------------------------------------------------------- # We're now all set. Next command automatically performs sanity checks # and reports all possible problems before build procedure starts. # No need to change anything here, just let it run. # check_variables_for_errors # The following command downloads automatically all sources # from the URLs mentioned above and stores them in current directory # under the same name as like specified in the URLs. If any download # fails, the whole build script stops. # No need to change anything here, just let it run. # download_all_sources # We assume that all downloads were compressed tar archives # The next command will attempt to extract them to current directory. # If the extraction fails for any given source, it silently continues # since the downloaded file may not be compressed or may be just a # graphical image or icon or diff/patch or whatever # No need to change anything here, just let it run. # extract_all_sources # This step creates empty directory somewhere in /tmp and stores # the path to it in $SLAX_BUNDLE_TARGET for you. You can think # of it as a virtual root filesystem for your bundle data. init_bundle_target_dir # Before the processing starts, the build script will automatically # download and activate all Slax Bundles mentioned in the appropriate # variables above. If the deps are already activated, it will skip # them silently, no need to download again. activate_required_bundles # Now it's up to you. Your buildscript must prepare the software # (for example compile it etc) and install or copy the result # to destination directory $SLAX_BUNDLE_TARGET # There are several variables prepared for you so you can use # them during configure. # # Those are: # # ${SLAX_ARCH} # ... architecture of currently running Slax, e.g. "i486" # # ${SLAX_CFLAGS} # ... compiler flags needed for current architecture # for example "-Os -march=i486 -mtune=i686" # # ${SLAX_LIBDIR} # ... library dir e.g. "/usr/lib64" # # ${SLAX_CURRENT_BUILDSCRIPT_DIR} # ... absolute path to current working directory, e.g. if you need # to copy something from there to the target directory # # ${SLAX_CONFIGURE_OPTIONS} # ... default value to pass to configure script. For example it # will be: --prefix=/usr --libdir=${SLAX_LIBDIR} --build=${SLAX_ARCH}-slackware-linux # This is built from a Slackwares TXZ package. Those are considered trusted. # You should AVOID this practice. Your buildscript WILL NOT be accepted # if it only downloads a precompiled package from untrusted source. # YOU MUST COMPILE THE SOFTWARE from sources. # mkdir -p "$SLAX_BUNDLE_TARGET"/{etc,bin,sbin,usr/bin,usr/sbin} if [ "$SLAX_ARCH" == "i486" ]; then installpkg -root "$SLAX_BUNDLE_TARGET" bluez-4.99-i486-2.txz; fi if [ "$SLAX_ARCH" == "x86_64" ]; then installpkg -root "$SLAX_BUNDLE_TARGET" bluez-4.99-x86_64-2.txz; fi rmdir --ignore-fail-on-non-empty "$SLAX_BUNDLE_TARGET"/{etc,bin,sbin,usr/bin,usr/sbin} # Since we have everything now installed in $TARGET, we can # finally make the bundle. The following command packs all # files and directories from SLAX_BUNDLE_TARGET to Slax bundle. # It is essentially the last command in this build script. # Bundle file will be saved in current directory as NAME.sb # where NAME is actually the value of SLAX_BUNDLE_NAME. # create_slax_bundle # cleanup is not performed. You have to remove everything from # the current working directory manually