Special files used by or generated by src2pkg This file briefly explains the purpose and use of special 'extra' files which are used by src2pkg or that src2pkg can create during package building. Where $NAME is used, this means the bare case-sensitive name of the software being packaged. xprog != XProg The files are listed below in sections. First those files which are common to any package format -like patches. Then files which are specific to a certain package format are listed First Column Second Column Name of file Search locations ******************************************** Files common to any package format ### *.patch and *.diff files # patch and diff files are handled automatically. They can be plain files or # compressed files (*.gz, *.bz2, *.lzma or *.xz), or even debian *.dpatch files. # patches are applied automatically in 'natural' sort order. If you need to # change the order of applying them, the easiest way is to rename them # with numbers as the first part of the name 00-some.diff, 01-another.patch # Patches whose names don't include 'patch', 'diff' or 'dpatch' can also # be used, but src2pkg cannot automatically generate a PATCHLIST of them. # Patches are applied at the end of the 'fix_source_perms' function, just # before sources are configured by the 'configure_source' function. # Paths searched:CWD, PATCHES_DIR/NAME-patches, PATCHES_DIR/NAME, CWD/patches CWD/Resources # (PATCHES_DIR defaults to CWD unless you set it to something else) # Note: The src2pkg 'AUTO_PATCH' features does not automatically apply patches # which are contained *inside* the sources. *.diff *.diff.gz/bz2/lzma/xz *.patch *.patch.gz/bz2/lzma/xz *.dpatch # some patch files(usually from debian) have the '.gz' ending, but are not really # compressed files. These are correctly handled as uncompressed plain-text files. ### ### # Patches will be detected automatically by src2pkg simply by placing them in # the CWD (Current Working Directory) where src2pkg is run from, or in a subdir # of the CWD. The subdir can be named Resources, patches or $NAME-patches (where # NAME is the name of the package, of course). Once you have the build working # correctly, you can create a .tar.gz or .tar.bz2 archive of the Resources, # patches or $NAME-patches subdirectory to save space. src2pkg will automatically # unzip the archive before applying the patches and will automatically remove # the directory when finished if the -W or --cleanup option is used. # Patches can also be placed in a separate PATCHES_DIR or PATCHES_DIR/NAME-patches # PATCHES_DIR defaults to CWD ******************************************** ******************************************** ### md5sums optionally generated by 15-make_package $NAME-$VERSION-$ARCH-$BUILD$SIG.md5 CWD ### $NAME.src2pkg and $NAME.src2pkg.auto scripts # When using -N or -A a src2pkg script is generated in CWD named $NAME.src2pkg.auto # Always change the name to simply $NAME.src2pkg to keep it from being overwritten # Running repeatedly using -N will clobber any *.src2pkg.auto already present # Running again using -A may update or edit an existing *.src2pkg.auto script # Scripts named without '.auto' have precedence when using -X to search and run $NAME.src2pkg.auto CWD $NAME.src2pkg CWD # It's handy to always have a script for the build, even if no special code or # extra instructions are needed for the build. In these cases, I leave the build # script named $NAME.src2pkg.auto to disinguish them from the ones that *do* need # extra stuff. If you are going to edit your build script, be sure to change the # the name first, to just plain $NAME.src2pkg. That way it never gets clobbered and # the name provides a visual clue so just one look at the file and you know whether # it contains something special. ### ******************************************** ******************************************** ### these are handled by 11-create_docs ## document items # these get automatically installed to DOC_DIR -usually PKG_DIR/usr/doc/$NAME-$VERSION $NAME.html CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources $NAME.xpm SRC_DIR, CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources $NAME.png SRC_DIR, CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources $NAME.svg SRC_DIR, CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources #### pkgconfig and *desktop files # these go to LIB_DIR/pkgconfig -usually: /usr/lib(64)/pkgconfig *.pc SRC_DIR, CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources # these go in DATA_DIR/applications -usually: /usr/share/applications # a routine gets added to doinst.sh ro update the desktop database *.desktop SRC_DIR, CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources ### ******************************************** Files specific to Slackware-type packages ### configuration files under /etc, /etc/rc.d and /etc/X11/xinit # Window Manager Xinitrc files are put in PKG_DIR/etc/X11/xinit xinitrc.*.new CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources xinitrc.* CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources # init files for 'services' go to PKG_DIR/etc/rc.d # these get a routine written in doinst.sh which creates and entry # in /etc/rc.d/rc.local for the new service, when the package is installed rc.* CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources rc.*.new CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources $NAME.conf CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources *.new CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources # Any *.new files also get a routine written for them in doinst.sh # which upgrades the file using the familiar config() function ### ******************************************** ### these are handled in 13-make_description # these can actually have another name (like pkg-desc) by setting PKG_DESC # patterns: $PKG_DESC-$NAME $PKG_DESC $NAME-$PKG_DESC $NAME.$PKG_DESC $NAME.txt # paths: PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources slack-desc new.slack.desc when using -A, generated slack-desc files gets copied to CWD/new.slack.desc If you supply one it will be used, but only after verifying that there are 9-13 $NAME: lines. Otherwise, one is always generated. Using -A only makes it get copied to CWD/.new.slack-des ******************************************** ### these are all handled in 14-make_doinst and go in the /install directory ## doinst.sh -these get used as-is if they are present: # doinst.sh-$NAME doinst.sh-$NAME.gz doinst.sh doinst.sh.gz $NAME-doinst.sh # $NAME-doinst.sh.gz $NAME.doinst.sh $NAME.doinst.sh.gz doinst.sh CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources doinst.sh.gz CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources ### doinst.prepend & doinst.append # these files let mix hard-code with auto-generated link routines # from above. If you have har-coded lines you want inserted in the doinst.sh # script before the link-creation lines, put the code in doinst.prepend # if you want coded after the link-creation lines, use doinst.append doinst.prepend CWD CWD/Resources PATCHES_DIR/NAME-patches CWD/patches doinst.append CWD CWD/Resources PATCHES_DIR/NAME-patches CWD/patches # when using -A, new doinst.sh gets copied from the package to CWD/new.doinst.sh new.doinst.sh ### ### # by default a doinst.sh gets created if needed and one is not already # in the PKG_DIR or found in the search paths above. The may be named # using any of the follwing formats and are searched in this order: # doinst.sh-$NAME doinst.sh-$NAME.gz doinst.sh doinst.sh.gz # $NAME-doinst.sh $NAME-doinst.sh.gz $NAME.doinst.sh $NAME.doinst.sh.gz ### *************************************************************** Package-manager compatibility files slapt-get, gslapt (others?) *************************************************************** ### slack-required and slack-supplies # used as-is if already present or generated if you use -E # generating these causes the creation of several temporary files, all in CWD, # but they are removed before package building proceeds. # if using -A, these get copied to CWD if not already there slack-required CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources slack-supplies CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources ### ### these must be manually created if you want them # they can also have another name like pkg-suggests or pkg-conflicts slack-suggests CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources slack-conflicts CWD, PATCHES_DIR/NAME-patches, CWD/patches CWD/Resources ### ******************************************** ******************************************** Files specific to debian-type *.deb packages ******************************************** ### # debian packages must contain a file named 'control' for use by the # debian package manager. src2pkg will generate one for you if none # is supplied. If you supply your own, simply place it in the CWD # (the current working directory) to have it inseretd in the package control # section incomplete ### ******************************************** ******************************************** Files specific to Puppy *.pet packages ******************************************** ### # Puppy pet packages may contain a couple of extra files for use # by the petget package manager # pinstall.sh files are post-installation scripts -funtionally # equivalent to the Slackware doinst.sh scripts # since src2pkg already creates doinst.sh scripts when needed, # these are simply renamed for placement in pet packages, # unless a pinstall.sh script is found first. pinstall.sh # A $NAME.puppy.specs file should also be included in most pet # packages. src2pkg will generate one for you, unless it finds # one already in the CWD. $NAME.puppy.specs # # section incomplete ### ********************************************