#!/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="rpm2tgz" # 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="1.2.2" # Optional (but recommended) description. 65536 characters maximum. # Use only one line of text, do not split on more lines. # SLAX_BUNDLE_DESCRIPTION="RPM archive into a tar+gz convertor Converts RPM format to Slackware's GNU tar + GNU zip format. (view converted packages with \"less\", install and remove with \"installpkg\", \"removepkg\", \"pkgtool\", or manually with \"tar\"). Converted packages come with no warranty. ;-)" # 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="console, utilities" # 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="rpm2cpio" # 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/a/rpm2tgz-1.2.2-i486-1.txz" SLAX_BUNDLE_SOURCE_DOWNLOAD[1]="http://mirrors.slackware.com/slackware/slackware64-current/slackware64/a/rpm2tgz-1.2.2-x86_64-1.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" rpm2tgz-1.2.2-i486-1.txz; fi if [ "$SLAX_ARCH" == "x86_64" ]; then installpkg -root "$SLAX_BUNDLE_TARGET" rpm2tgz-1.2.2-x86_64-1.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