milis/bin/mpsd

1539 lines
37 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# error codes
E_GENERAL=1
E_PKGFILE=2 # invalid Pkgfile
E_DIR_PERM=3 # (source/build) directory missing or missing read/write permission
E_DOWNLOAD=4 # error during download
E_UNPACK=5 # error during unpacking of source file(s)
E_MD5=6 # md5sum verification failed
E_FOOTPRINT=7 # footprint check failure
E_BUILD=8 # error while running 'build()'
E_INSTALL=9 # error while installing the package via 'pkgadd'
E_DEPS=10 # error while searching runtime deps via 'pkginfo -b'
info() {
echo "=======> $1"
}
warning() {
info "WARNING: $1" >&2
}
error() {
info "ERROR: $1" >&2
}
abort_on_build() {
error $1
exit $E_BUILD
}
get_filename() {
if [[ $1 =~ ^(http|https|ftp|file)://.*/(.+) ]]; then
echo "$PKGMK_SOURCE_DIR/${BASH_REMATCH[2]}"
else
echo $1
fi
}
get_basename() {
local FILE="`echo $1 | sed 's|^.*://.*/||g'`"
echo $FILE
}
check_pkgfile() {
local NAME_TEST
if [ "${name}" == "" ]; then
error "Variable 'name' not initiated or not found in $PKGMK_PKGFILE."
exit $E_PKGFILE
elif [ "`type -t build`" != "function" ]; then
error "Function 'build' not specified in $PKGMK_PKGFILE."
exit $E_PKGFILE
fi
NAME_TEST=`echo "${name}" | sed 's@[[a-z0-9]*[-_+]*]*@@g'`
if [ "$NAME_TEST" != "" ]; then
error "Variable 'name' contains illegal characters: $NAME_TEST"
exit $E_PKGFILE
fi
if [ ${#name} -gt 50 ];then
error "Variable 'name' length higher then 50 characters."
exit $E_PKGFILE
fi
if [ "${version}" == "" ]; then
error "Variable 'version' not initiated or not found in $PKGMK_PKGFILE."
exit $E_PKGFILE
fi
if [ "$PKGMK_IGNORE_RELEASE" = "no" ]; then
if [ "${release}" == "" ]; then
error "Variable 'release' not initiated or not found in $PKGMK_PKGFILE."
exit $E_PKGFILE
fi
fi
}
get_package_name() {
local NAME EXT
if [ "${1:$((${#1} - ${#PKGMK_PACKAGE_EXT} ))}" == "$PKGMK_PACKAGE_EXT" ]; then
EXT=$PKGMK_PACKAGE_EXT
else
EXT=$PKGMK_PACKAGE_EXT.$PKGMK_COMPRESSION_MODE
fi
#eski
#NAME=`echo $1|sed "s/i686.$EXT//"|sed "s/x86_64.$EXT//"|sed "s/any.$EXT//"`
#echo "${NAME:0:$((${#NAME} - 10 ))}"
NAME=`echo "$1" | cut -d'#' -f1`
echo "$NAME"
}
get_package_builddate() {
local NAME BUILD_DATE EXT
if [ "${1:$((${#1} - ${#PKGMK_PACKAGE_EXT} ))}" == "$PKGMK_PACKAGE_EXT" ]; then
EXT=$PKGMK_PACKAGE_EXT
else
EXT=$PKGMK_PACKAGE_EXT.$PKGMK_COMPRESSION_MODE
fi
NAME="`get_package_name $1`"
BUILD_DATE=`echo $1|sed "s/i686.$EXT//"|sed "s/x86_64.$EXT//"|sed "s/any.$EXT//"`
echo "${BUILD_DATE:$((${#NAME}))}"
}
get_package_extension() {
local EXTENSION
if [ "${1:$((${#1} - ${#PKGMK_PACKAGE_EXT} ))}" == "$PKGMK_PACKAGE_EXT" ]; then
EXTENSION=".$PKGMK_PACKAGE_EXT"
else
EXTENSION=".$PKGMK_PACKAGE_EXT.$PKGMK_COMPRESSION_MODE"
fi
echo $EXTENSION
}
get_package_arch() {
local NAME BUILD_DATE EXTENSION
NAME=`get_package_name $1`
BUILD_DATE=`get_package_builddate $1`
EXTENSION=`get_package_extension $1`
echo $1|sed "s/$NAME$BUILD_DATE//"|sed "s/$EXTENSION//"
}
check_directory() {
if [ ! -d $1 ]; then
error "Directory '$1' does not exist."
exit $E_DIR_PERM
elif [ ! -w $1 ]; then
error "Directory '$1' not writable."
exit $E_DIR_PERM
elif [ ! -x $1 ] || [ ! -r $1 ]; then
error "Directory '$1' not readable."
exit $E_DIR_PERM
fi
}
check_file() {
if [ -e $1 ] && [ ! -w $1 ]; then
error "File '$1' is not writable."
exit $E_GENERAL
fi
}
downloads_file_with_curl() {
if [ ! "`type -p curl`" ]; then
error "Command 'curl' not found."
exit $E_GENERAL
fi
DOWNLOAD_OPTS="--ftp-pasv --retry 3 --retry-delay 3 \
-R -o $1 --fail -#"
error=1
curl $DOWNLOAD_OPTS $2
error=$?
if [ $error != 0 ]; then
error "Downloading '$2' failed."
exit $E_DOWNLOAD
fi
}
download_file() {
info "Downloading '$1'."
LOCAL_FILENAME=`get_filename $1`
if [ ! "`type -p wget`" ]; then
warning "Command 'wget' not found."
info "You should install 'wget' as soon as possible, trying with curl ..."
downloads_file_with_curl $LOCAL_FILENAME $1
else
LOCAL_FILENAME_PARTIAL="$LOCAL_FILENAME.partial"
DOWNLOAD_OPTS="--passive-ftp --no-directories --tries=3 --waitretry=3 \
--directory-prefix=$PKGMK_SOURCE_DIR \
--output-document=$LOCAL_FILENAME_PARTIAL --no-check-certificate"
if [ -f "$LOCAL_FILENAME_PARTIAL" ]; then
info "Partial download found, trying to resume"
RESUME_CMD="-c"
fi
error=1
BASENAME=`get_basename $1`
for REPO in ${PKGMK_SOURCE_MIRRORS[@]}; do
REPO="`echo $REPO | sed 's|/$||'`"
wget $RESUME_CMD $DOWNLOAD_OPTS $PKGMK_WGET_OPTS $REPO/$BASENAME
error=$?
if [ $error == 0 ]; then
break
fi
done
if [ $error != 0 ]; then
while true; do
wget $RESUME_CMD $DOWNLOAD_OPTS $PKGMK_WGET_OPTS $1
error=$?
if [ $error != 0 ] && [ "$RESUME_CMD" ]; then
info "Partial download failed, restarting"
rm -f "$LOCAL_FILENAME_PARTIAL"
RESUME_CMD=""
else
break
fi
done
fi
if [ $error != 0 ]; then
error "Downloading '$1' failed."
exit $E_DOWNLOAD
fi
mv -f "$LOCAL_FILENAME_PARTIAL" "$LOCAL_FILENAME"
fi
}
download_source() {
local FILE LOCAL_FILENAME
for FILE in ${source[@]}; do
LOCAL_FILENAME=`get_filename $FILE`
if [ ! -e $LOCAL_FILENAME ]; then
if [ "$LOCAL_FILENAME" = "$FILE" ]; then
error "Source file '$LOCAL_FILENAME' not found (can not be downloaded, URL not specified)."
exit $E_DOWNLOAD
else
if [ "$PKGMK_DOWNLOAD" = "yes" ]; then
download_file $FILE
else
error "Source file '$LOCAL_FILENAME' not found (use option -d to download)."
exit $E_DOWNLOAD
fi
fi
fi
done
}
remove_source() {
local FILE LOCAL_FILENAME
for FILE in ${source[@]}; do
LOCAL_FILENAME=`get_filename $FILE`
if [ -e $LOCAL_FILENAME ] && [ "$LOCAL_FILENAME" != "$FILE" ]; then
info "Removing $LOCAL_FILENAME"
rm -f $LOCAL_FILENAME
fi
done
}
unpack_source() {
local FILE LOCAL_FILENAME COMMAND
for FILE in ${source[@]}; do
LOCAL_FILENAME=`get_filename $FILE`
case $LOCAL_FILENAME in
*.tar|*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm)
if [ "$PKGMK_IGNORE_UNPACK" != "yes" ];then
COMMAND="bsdtar -p -o -C $SRC -xf $LOCAL_FILENAME"
else
COMMAND="cp $LOCAL_FILENAME $SRC"
fi ;;
*)
COMMAND="cp $LOCAL_FILENAME $SRC" ;;
esac
echo "$COMMAND"
$COMMAND
if [ $? != 0 ]; then
if [ "$PKGMK_KEEP_WORK" = "no" ]; then
rm -rf $PKGMK_WORK_DIR
fi
error "Building '$TARGET' failed."
exit $E_UNPACK
fi
done
}
get_package_list() {
local ARCHFILE i
i=0
for ARCH in x86_64 i686 any; do
for FILE in `find $PKGMK_PACKAGE_DIR -name "${name}*$ARCH.$PKGMK_PACKAGE_EXT*"`; do
TARGETS[i]=`basename $FILE`
i=$((i+1))
done
done
}
make_md5sum() {
local FILE LOCAL_FILENAMES
if [ "$source" ]; then
for FILE in ${source[@]}; do
LOCAL_FILENAMES="$LOCAL_FILENAMES `get_filename $FILE`"
done
md5sum $LOCAL_FILENAMES | sed -e 's| .*/| |' | sort -k 2
fi
}
make_footprint() {
if ! (echo $TARGET| grep "kernel" >/dev/null); then
pkginfo --footprint $TARGET | \
sed "s|\tlib/modules/`uname -r`/|\tlib/modules/<kernel-version>/|g" | \
sort -k 3
else
pkginfo --footprint $TARGET | sort -k 3
fi
}
check_md5sum() {
local FILE="$PKGMK_WORK_DIR/.tmp"
cd $PKGMK_ROOT
if [ -f $PKGMK_MD5SUM ]; then
make_md5sum > $FILE.md5sum
sort -k 2 $PKGMK_MD5SUM > $FILE.md5sum.orig
diff -w -t -U 0 $FILE.md5sum.orig $FILE.md5sum | \
sed '/^@@/d' | \
sed '/^+++/d' | \
sed '/^---/d' | \
sed 's/^+/NEW /g' | \
sed 's/^-/MISSING /g' > $FILE.md5sum.diff
if [ -s $FILE.md5sum.diff ]; then
error "Md5sum mismatch found:"
cat $FILE.md5sum.diff >&2
if [ "$PKGMK_KEEP_WORK" = "no" ]; then
rm -rf $PKGMK_WORK_DIR
fi
if [ "$PKGMK_CHECK_MD5SUM" = "yes" ]; then
error "Md5sum not ok."
exit $E_MD5
fi
error "Building '$TARGET' failed."
exit $E_MD5
fi
else
if [ "$PKGMK_CHECK_MD5SUM" = "yes" ]; then
if [ "$PKGMK_KEEP_WORK" = "no" ]; then
rm -rf $PKGMK_WORK_DIR
fi
info "Md5sum not found."
exit $E_MD5
fi
warning "Md5sum not found, creating new."
make_md5sum > $PKGMK_MD5SUM
fi
if [ "$PKGMK_CHECK_MD5SUM" = "yes" ]; then
if [ "$PKGMK_KEEP_WORK" = "no" ]; then
rm -rf $PKGMK_WORK_DIR
fi
info "Md5sum ok."
exit 0
fi
}
strip_files() {
local FILE FILTER
cd $PKG
if [ -f $PKGMK_ROOT/$PKGMK_NOSTRIP ]; then
FILTER="grep -v -f $PKGMK_ROOT/$PKGMK_NOSTRIP"
else
FILTER="cat"
fi
find . -type f -printf "%P\n" | $FILTER | while read FILE; do
case $(file -b "$FILE") in
*ELF*executable*not\ stripped)
strip --strip-all "$FILE"
;;
*ELF*shared\ object*not\ stripped)
strip --strip-unneeded "$FILE"
;;
current\ ar\ archive)
strip --strip-debug "$FILE"
esac
done
}
compress_manpages() {
local FILE DIR TARGET
cd $PKG
find . -type f -path "*/share/man*/*" | while read FILE; do
if [ "$FILE" = "${FILE%%.gz}" ]; then
gzip -9 "$FILE"
fi
done
find . -type l -path "*/share/man*/*" | while read FILE; do
TARGET=`readlink -n "$FILE"`
TARGET="${TARGET##*/}"
TARGET="${TARGET%%.gz}.gz"
rm -f "$FILE"
FILE="${FILE%%.gz}.gz"
DIR=`dirname "$FILE"`
if [ -e "$DIR/$TARGET" ]; then
ln -sf "$TARGET" "$FILE"
fi
done
find . -type f -path "*/share/info/*" | while read FILE; do
if [ "$FILE" = "${FILE%%.gz}" ]; then
gzip -9 "$FILE"
fi
done
find . -type l -path "*/share/info/*" | while read FILE; do
TARGET=`readlink -n "$FILE"`
TARGET="${TARGET##*/}"
TARGET="${TARGET%%.gz}.gz"
rm -f "$FILE"
FILE="${FILE%%.gz}.gz"
DIR=`dirname "$FILE"`
if [ -e "$DIR/$TARGET" ]; then
ln -sf "$TARGET" "$FILE"
fi
done
}
check_footprint() {
local TARGET FILE="$PKGMK_WORK_DIR/.tmp"
cd $PKGMK_PACKAGE_DIR
if [ -z $TARGETS ]; then
get_package_list
if [ -z $TARGETS ]; then
error "Unable to update footprint"
fi
fi
for TARGET in ${TARGETS[@]}; do
if [ -f $TARGET ]; then
PKGMK_FOOTPRINT="`get_package_name $TARGET`".footprint
make_footprint > $FILE.footprint
if [ -f $PKGMK_FOOTPRINT ]; then
sort -k 3 $PKGMK_FOOTPRINT > $FILE.footprint.orig
diff -w -t -U 0 $FILE.footprint.orig $FILE.footprint | \
sed '/^@@/d' | \
sed '/^+++/d' | \
sed '/^---/d' | \
sed 's/^+/NEW /g' | \
sed 's/^-/MISSING /g' > $FILE.footprint.diff
if [ -s $FILE.footprint.diff ]; then
if [ "$PKGMK_IGNORE_NEW" = "yes" ]; then
mv $FILE.footprint $PKGMK_FOOTPRINT
warning "Footprint mismatch found:"
else
error "Footprint mismatch found:"
BUILD_SUCCESSFUL="no"
fi
cat $FILE.footprint.diff >&2
fi
else
warning "Footprint not found, creating new."
mv $FILE.footprint $PKGMK_FOOTPRINT
fi
else
error "Package '$TARGET' was not found."
BUILD_SUCCESSFUL="no"
fi
done
}
make_work_dir() {
export PKG="$PKGMK_WORK_DIR/pkg"
export SRC="$PKGMK_WORK_DIR/src"
umask 022
cd $PKGMK_ROOT
remove_work_dir
mkdir -p $SRC $PKG
if [ "$PKGMK_IGNORE_MD5SUM" = "no" ]; then
check_md5sum
fi
}
remove_work_dir() {
rm -rf $PKGMK_WORK_DIR
}
pack_lib() {
local DIR SUBDIR
for DIR in usr opt/*; do
for SUBDIR in lib lib64; do
if [ -d $DIR/$SUBDIR/pkgconfig ]; then
mv $DIR/$SUBDIR/pkgconfig $PKG
fi
if [ -d $DIR/$SUBDIR ]; then
bsdtar -r -f \
$PKGMK_PACKAGE_DIR/${name}.${group}#$version-${PKGMK_ARCH}.${PKGMK_PACKAGE_EXT} \
$DIR/$SUBDIR || BUILD_SUCCESSFUL="no"
rm -r $DIR/$SUBDIR
j=1
fi
if [ -d $PKG/pkgconfig ]; then
mkdir $DIR/$SUBDIR
mv $PKG/pkgconfig $DIR/$SUBDIR/pkgconfig
fi
done
done
}
remove_lib() {
local DIR SUBDIR
for DIR in usr opt/*; do
for SUBDIR in lib lib64;do
if [ -d $DIR/$SUBDIR ]; then
rm -r $DIR/$SUBDIR
fi
done
done
}
pack_devel() {
local DIR SUBDIR
for DIR in usr opt/*; do
for SUBDIR in include lib/pkgconfig; do
if [ -d $DIR/$SUBDIR ]; then
bsdtar -r -f \
$PKGMK_PACKAGE_DIR/${name}.${group}#$version-any.${PKGMK_PACKAGE_EXT} \
$DIR/$SUBDIR || BUILD_SUCCESSFUL="no"
rm -r $DIR/$SUBDIR
j=1
fi
done
done
}
remove_devel() {
local DIR SUBDIR
for DIR in usr opt/*; do
for SUBDIR in include lib/pkgconfig; do
if [ -d $DIR/$SUBDIR ]; then
rm -r $DIR/$SUBDIR
fi
done
done
}
pack_doc() {
local DIR SUBDIR
for DIR in usr/share opt/*/share; do
for SUBDIR in doc gtk-doc; do
if [ -d $DIR/$SUBDIR ]; then
bsdtar -r -f \
$PKGMK_PACKAGE_DIR/${name}.${group}#$version-any.${PKGMK_PACKAGE_EXT} \
$DIR/$SUBDIR || BUILD_SUCCESSFUL="no"
j=1
fi
done
done
}
remove_doc() {
local DIR SUBDIR
for DIR in usr/share opt/*/share; do
for SUBDIR in doc gtk-doc; do
if [ -d $DIR/$SUBDIR ]; then
rm -r $DIR/$SUBDIR
fi
done
done
}
pack_man() {
local DIR SUBDIR
for DIR in usr/share opt/*/share; do
for SUBDIR in info man; do
if [ -d $DIR/$SUBDIR ]; then
bsdtar -r -f \
$PKGMK_PACKAGE_DIR/${name}.${group}#$version-any.${PKGMK_PACKAGE_EXT} \
$DIR/$SUBDIR || BUILD_SUCCESSFUL="no"
j=1
fi
done
done
}
remove_man() {
local DIR SUBDIR
for DIR in usr/share opt/*/share; do
for SUBDIR in info man; do
if [ -d $DIR/$SUBDIR ]; then
rm -r $DIR/$SUBDIR
fi
done
done
}
pack_service() {
local DIR="etc/rc.d"
if [ -d $DIR ]; then
bsdtar -r -f \
$PKGMK_PACKAGE_DIR/${name}.${group}#$version-any.${PKGMK_PACKAGE_EXT} \
$DIR || BUILD_SUCCESSFUL="no"
j=1
fi
}
remove_service() {
local DIR="etc/rc.d"
if [ -d $DIR ]; then
rm -r $DIR
fi
}
add_meta_files() {
local NAME
NAME="`get_package_name $1`"
cd $PKG
if [ -f $PKGMK_ROOT/${NAME}.okubeni ]; then
cp $PKGMK_ROOT/${NAME}.okubeni .README
fi
if [ -f $PKGMK_ROOT/${NAME}.kos-kur ]; then
cp $PKGMK_ROOT/${NAME}.kos-kur .PRE
fi
if [ -f $PKGMK_ROOT/${NAME}.kur-kos ]; then
cp $PKGMK_ROOT/${NAME}.kur-kos .POST
fi
for file in .README .PRE .POST; do
if [ -f $file ]; then
bsdtar -r -f $PKGMK_PACKAGE_DIR/$1 \
$file
rm $file
fi
done
}
add_meta_to_archive() {
local NAME TAR SIZE_I DESC URL PACK MAINT ARCH
NAME="`get_package_name $1`"
ARCH="`get_package_arch $1`"
info "$NAME arşivine üstbilgiler ekleniyor."
TAR="$PKGMK_WORK_DIR/tar"
mkdir -p $TAR
cd $TAR
bsdtar xf $PKGMK_PACKAGE_DIR/$1
if [ ! -z "`cat $PKGMK_ROOT/$PKGMK_PKGFILE |sed "s@^[ ,\t,#]*@@"|grep -i ^desc|cut -d : -f1 --complement|sed "s@^[ ,\t]*@@"`" ]; then
DESC="`cat $PKGMK_ROOT/$PKGMK_PKGFILE |sed "s@^[ ,\t,#]*@@"|grep -i ^desc|cut -d : -f1 --complement|sed "s@^[ ,\t]*@@"`"
else
DESC="n.a"
fi
if [ ! -z "`cat $PKGMK_ROOT/$PKGMK_PKGFILE |sed "s@^[ ,\t,#]*@@"|grep -i ^pack|cut -d : -f1 --complement|sed "s@^[ ,\t]*@@"`" ]; then
PACK="`cat $PKGMK_ROOT/$PKGMK_PKGFILE |sed "s@^[ ,\t,#]*@@"|grep -i ^pack|cut -d : -f1 --complement|sed "s@^[ ,\t]*@@"`"
else
PACK="n.a"
fi
if [ ! -z "`cat $PKGMK_ROOT/$PKGMK_PKGFILE |sed "s@^[ ,\t,#]*@@"|grep -i ^maint|cut -d : -f1 --complement|sed "s@^[ ,\t]*@@"`" ]; then
MAINT="`cat $PKGMK_ROOT/$PKGMK_PKGFILE |sed "s@^[ ,\t,#]*@@"|grep -i ^maint|cut -d : -f1 --complement|sed "s@^[ ,\t]*@@"`"
else
MAINT="n.a"
fi
if [ ! -z "`cat $PKGMK_ROOT/$PKGMK_PKGFILE |sed "s@^[ ,\t,#]*@@"|grep -i ^url|cut -d : -f1 --complement|sed "s@^[ ,\t]*@@"`" ]; then
URL="`cat $PKGMK_ROOT/$PKGMK_PKGFILE |sed "s@^[ ,\t,#]*@@"|grep -i ^url|cut -d : -f1 --complement|sed "s@^[ ,\t]*@@"`"
else
URL="n.a"
fi
SIZE_I="`du -b $PKGMK_PACKAGE_DIR/$1|sed "s/\t/ /"|cut -d " " -f1`"
echo "N$NAME" > .META
echo "D$DESC" >> .META
echo "U$URL" >> .META
echo "M$MAINT" >> .META
echo "P$PACK" >> .META
echo "S$SIZE_I" >> .META
echo "V$version" >> .META
echo "r$release" >> .META
echo "B$PKGMK_BUILDVER" >> .META
echo "a$ARCH" >> .META
# TODO improve the pkginfo --runtimedepfiles functionnality
if [ "$PKGMK_IGNORE_RUNTIMEDEPS" == "no" ];then
for dep in `pkginfo --runtimedepfiles $TAR|grep -v ^[A-Z]`; do
echo "R$dep" >> .META
done
# We don't want any .devel dependencies here
sed -i '/^R[[a-z0-9]*[-_+]*]*\.devel/d' .META
if [ ! -z $run ] && [ "$NAME" == "$name" ]; then
info "Adding runtime deps to Archive $NAME"
for rd in ${run[@]}; do
if [ "`pkginfo -b $rd`" == "0" ] || [ "`pkginfo -b $rd`" == "" ]; then
error "Runtime dependencie $rd not found, cannot continue"
clean
exit $E_DEPS;
fi
echo "R$rd`pkginfo -b $rd`" >> .META
done
fi
if [ -f $PKGMK_ROOT/${NAME}.run ]; then
info "Adding runtime deps to Archive $NAME"
for rd in `cat $PKGMK_ROOT/${NAME}.run`; do
if [ "`pkginfo -b $rd`" == "0" ] || [ "`pkginfo -b $rd`" == "" ]; then
error "Runtime dependencie $rd not found, cannot continue"
clean
exit $E_DEPS;
fi
echo "R$rd`pkginfo -b $rd`" >> .META
done
fi
fi
bsdtar -tf $PKGMK_PACKAGE_DIR/$1 > .MTREE
rm $PKGMK_PACKAGE_DIR/$1
for file in .META .MTREE .README .PRE .POST .INFO; do
if [ -f $file ]; then
bsdtar -r -f $PKGMK_PACKAGE_DIR/$1 \
$file
fi
done
bsdtar -r -f $PKGMK_PACKAGE_DIR/$1 *
cd ..
rm -rf $TAR
}
compress_archive() {
info "$1 sıkıştırılıyor."
case $PKGMK_COMPRESSION_MODE in
lz) lzip -9 $1;;
gz) gzip -9 $1;;
bz2) bzip2 -9 $1;;
xz) xz -z -9 $1;;
esac
}
derle() {
if [ "$PAKETSIZ_DERLEME" = "evet" ]; then
paketsiz_derle
else
build_package
fi
}
paketsiz_derle() {
local BUILD_SUCCESSFUL="no"
export PKG="/"
export SRC="$PKGMK_WORK_DIR/src"
umask 022
cd $PKGMK_ROOT
rm -rf $PKGMK_WORK_DIR
mkdir -p $SRC
info "Building '$TARGET'."
if [ "$PKGMK_DOWNLOAD" = "yes" ]; then
download_source
fi
unpack_source
cd $SRC
(set -e -x ; build)
# cd $PKG
if [ $? = 0 ]; then
BUILD_SUCCESSFUL="yes"
fi
if [ "$PKGMK_KEEP_WORK" = "no" ]; then
rm -rf $PKGMK_WORK_DIR
fi
if [ "$BUILD_SUCCESSFUL" = "yes" ]; then
info " '$TARGET' derleme basarili"
else
if [ -f $TARGET ]; then
touch -r $PKGMK_ROOT/$PKGMK_PKGFILE $TARGET &> /dev/null
fi
error " '$TARGET' derleme basarisiz"
exit 1
fi
}
build_package() {
# TODO find a better solution for the hardcoded folders
local BUILD_SUCCESSFUL="no"
if [ "$1" != "$TARGET" ]; then
if [ ! -z $TARGETS ]; then
for TARGET in ${TARGETS[@]}; do
error "$TARGET should be remove"
done
error "Remove the binaries first..."
exit $E_BUILD
fi
fi
check_file "$TARGET"
make_work_dir
if [ "$UID" != "0" ]; then
warning "Packages should be built as root."
fi
info "Building '$TARGET'."
unpack_source
cd $SRC
(set -e -x ; build)
if [ $? = 0 ]; then
if [ "$PKGMK_NO_STRIP" = "no" ]; then
strip_files
fi
compress_manpages
cd $PKG
i=0
j=0
for group in ${PKGMK_GROUPS[@]}; do
BUILD_SUCCESSFUL="yes"
if [ "`type -t ${group}`" == "function" ]; then
(set -e -x ;${group})
j=1
if [ $? = 0 ]; then
BUILD_SUCCESSFUL="yes"
else
error "Building '$TARGET' failed."
exit $E_BUILD
fi
else
if [ "$1" != "$TARGET" ]; then
if [ -f $PKGMK_PACKAGE_DIR/${name}.${group}#$version-* ]; then
rm $PKGMK_PACKAGE_DIR/${name}.${group}#$version-}*
fi
pack_${group}
fi
remove_${group}
if [ "$BUILD_SUCCESSFUL" == "no" ]; then
error "Building '$TARGET' failed."
exit $E_BUILD
fi
fi
# Add the meta in each package
if [ $j == 1 ]; then
if [ "$BUILD_SUCCESSFUL" == "no" ]; then
error "Building '$TARGET' failed."
exit $E_BUILD
fi
j=0
fi
j=0
done
if [ ! -z PKGMK_LOCALES ]; then
local DIR PKGMK_LOCALE LOC
for DIR in usr/share/locale opt/*/share/locale; do
if [ -d $DIR ]; then
for LOC in `cd $DIR && ls`; do
# Need to double check because glibc for exemple create a file in this directory
if [ -d $DIR/$LOC ];then
for PKGMK_LOCALE in ${PKGMK_LOCALES[@]}; do
if [ "$PKGMK_LOCALE" == "$LOC" ]; then
if [ "$1" != "$TARGET" ]; then
bsdtar -r -f $PKGMK_PACKAGE_DIR/${name}.${LOC}#$version-any.${PKGMK_PACKAGE_EXT} \
$DIR/$LOC || abort_on_build "${name}.${LOC}#$version-any.${PKGMK_PACKAGE_EXT}"
fi
rm -rf $DIR/$LOC
break
fi
done
fi
done
fi
done
fi
for DIR in usr/share/locale opt/*/share/locale; do
if [ -d $DIR ]; then
rm -rf $DIR
fi
done
if [ "`ls|wc -l`" != "0" ]; then
bsdtar -r -f $PKGMK_PACKAGE_DIR/${name}#$version-${PKGMK_ARCH}.${PKGMK_PACKAGE_EXT} *
else
error "No files found in $PKG..."
exit $E_BUILD
fi
if [ $? = 0 ]; then
BUILD_SUCCESSFUL="yes"
if [ "$PKGMK_IGNORE_FOOTPRINT" == "yes" ]; then
warning "Footprint ignored."
else
check_footprint
fi
fi
fi
if [ "$BUILD_SUCCESSFUL" = "yes" ]; then
if [ "$1" != "$TARGET" ]; then
get_package_list
if [ -z $TARGETS ]; then
error "Paket(ler) bulunamadı..."
exit $E_BUILD
fi
for TARGET in ${TARGETS[@]}; do
add_meta_files $TARGET
add_meta_to_archive $TARGET
done
else
add_meta_files `basename $TARGET`
add_meta_to_archive `basename $TARGET`
fi
if [ "$PKGMK_KEEP_WORK" = "no" ]; then
remove_work_dir
fi
else
if [ -f $TARGET ]; then
touch -r $PKGMK_ROOT/$PKGMK_PKGFILE $TARGET &> /dev/null
fi
error "Building '$TARGET' failed."
exit $E_BUILD
fi
}
install_package() {
local COMMAND
get_package_list
if [ -z $TARGETS ]; then
error "kurulacak paket bulunamadı..."
exit $E_INSTALL
fi
for TARGET in ${TARGETS[@]}; do
if [ "`get_package_arch $TARGET`" = "$PKGMK_ARCH" ] || [ "`get_package_arch $TARGET`" = "any" ]; then
info "kuruluyor '$TARGET'."
if [ "$PKGMK_INSTALL" = "install" ]; then
COMMAND="mps -k $PKGMK_PACKAGE_DIR/$TARGET"
else
COMMAND="mps -k $PKGMK_PACKAGE_DIR/$TARGET"
fi
cd $PKGMK_ROOT
echo "$COMMAND"
$COMMAND
if [ $? = 0 ]; then
info " '$TARGET' basarili sekilde kuruldu."
else
error " '$TARGET' kurulum basarisiz."
exit $E_INSTALL
fi
fi
done
}
paket_kur() {
local COMMAND
get_package_list
if [ -z $TARGETS ]; then
error "kurulacak paket bulunamadı..."
exit $E_INSTALL
fi
for TARGET in ${TARGETS[@]}; do
if [ "`get_package_arch $TARGET`" = "$PKGMK_ARCH" ] || [ "`get_package_arch $TARGET`" = "any" ]; then
info "kuruluyor '$TARGET'."
#paket_kurulum
if [ "$PAKET_KURMA" = "evet" ]; then
COMMAND2="echo :::::::::::::::::::::::: $PKGMK_PACKAGE_DIR/$TARGET"
fi
echo "$COMMAND2"
$COMMAND2
if [ "$PKGMK_INSTALL" = "install" ]; then
COMMAND="pkgadd $PKGMK_PACKAGE_DIR/$TARGET"
else
COMMAND="pkgadd -u $PKGMK_PACKAGE_DIR/$TARGET"
fi
cd $PKGMK_ROOT
echo "$COMMAND"
$COMMAND
if [ $? = 0 ]; then
info " '$TARGET' basarili sekilde kuruldu."
else
error " '$TARGET' kurulum basarisiz."
exit $E_INSTALL
fi
fi
done
}
recursive() {
local ARGS FILE DIR
[ -f $PKGMK_REPO ] && rm -v $PKGMK_REPO
ARGS=`echo "$@" | sed -e "s/--recursive//g" -e "s/-r//g"`
for FILE in `find $PKGMK_ROOT -name $PKGMK_PKGFILE | sort`; do
DIR="`dirname $FILE`/"
if [ -d $DIR ]; then
info "Entering directory '$DIR'."
(cd $DIR && $PKGMK_COMMAND $ARGS)
info "Leaving directory '$DIR'."
fi
done
}
clean() {
unset TARGETS
get_package_list
if [ ! -z $TARGETS ]; then
for TARGET in ${TARGETS[@]}; do
if [ -f $PKGMK_PACKAGE_DIR/$TARGET ]; then
info "Removing $TARGET"
rm -f $PKGMK_PACKAGE_DIR/$TARGET
fi
done
else
warning "$TARGETS not found"
fi
find $PKGMK_ROOT -name "*.md5sum" -exec rm -v {} \; 2> /dev/null
find $PKGMK_ROOT -name "*.footprint" -exec rm -v {} \; 2> /dev/null
unset TARGETS
}
update_footprint() {
cd $PKGMK_PACKAGE_DIR
if [ -z $TARGETS ]; then
get_package_list
if [ -z $TARGETS ]; then
error "Package(s) not found(s), unable to update footprint."
exit $E_FOOTPRINT
fi
fi
for TARGET in ${TARGETS[@]}; do
if [ ! -f $TARGET ]; then
error "Unable to update footprint. File '$TARGET' not found."
exit $E_FOOTPRINT
fi
PKGMK_FOOTPRINT="`get_package_name $TARGET`".footprint
check_file "$PKGMK_FOOTPRINT"
make_footprint > $PKGMK_FOOTPRINT
touch $TARGET
info "Footprint updated for $TARGET"
done
}
build_needed() {
local FILE RESULT
RESULT="yes"
if [ -f $TARGET ]; then
RESULT="no"
FILE=`get_filename $PKGMK_PKGFILE`
if [ ! -e $FILE ] || [ ! $TARGET -nt $FILE ]; then
RESULT="yes"
break
fi
fi
echo $RESULT
}
update_collection_repo()
{
local HEAD BUILD_DATE RELEASE DESCRIPTION URL MAINTAINER PACKAGER EXTENSION
if [ -f $PKGMK_REPO ]; then
HEAD=`head -1 $PKGMK_REPO`
if [ "${HEAD:10:1}" = "#" ]; then
BUILD_DATE="`echo $HEAD|cut -d "#" -f1`"
EXTENSION="`echo $HEAD|cut -d "#" -f2`"
VERSION="`echo $HEAD|cut -d "#" -f3`"
RELEASE="`echo $HEAD|cut -d "#" -f4`"
DESCRIPTION="`echo $HEAD|cut -d "#" -f5`"
URL="`echo $HEAD|cut -d "#" -f6`"
MAINTAINER="`echo $HEAD|cut -d "#" -f7`"
PACKAGER="`echo $HEAD|cut -d "#" -f8`"
[ -f ../$PKGMK_REPO ] && sed -i "/#$name#/d" ../$PKGMK_REPO
echo "`md5sum $PKGMK_REPO|cut -d " " -f1`#$BUILD_DATE#$name##$version-#$RELEASE#$DESCRIPTION#$URL#$MAINTAINER#$PACKAGER#$EXTENSION" \
>> ../$PKGMK_REPO
fi
fi
}
update_repo()
{
local FILE MD5SUM EXT
cd $PKGMK_ROOT
get_package_list
if [ ! -z $TARGETS ]; then
EXT="`get_package_extension $TARGETS`"
echo -n "`get_package_builddate $TARGETS`#$EXT##$version-#$release" > $PKGMK_REPO
for string in desc url maint pack; do
if [ ! -z "`cat $PKGMK_ROOT/$PKGMK_PKGFILE |sed "s@^[ ,\t,#]*@@"|grep -i ^$string|cut -d : -f1 --complement|sed "s@^[ ,\t]*@@"`" ]; then
echo -n "#"`cat $PKGMK_PKGFILE |sed "s@^[ ,\t,#]*@@"|grep -i ^$string|cut -d : -f1 --complement|sed "s@^[ ,\t]*@@"`"" \
>> .PKGREPO
else
echo -n "#n.a" >> .PKGREPO
fi
done
printf "\n" >> .PKGREPO
for TARGET in ${TARGETS[@]}; do
FILE=`basename $TARGET`
MD5SUM=`md5sum $TARGET|cut -d " " -f1`
echo "$MD5SUM#`get_package_name $TARGET`#`get_package_arch $TARGET|sed "s/-//"`" >> $PKGMK_REPO
done
for FILE in ${name}*
do
[ ! -f "$FILE" ] && break
if [ "${FILE:$((${#FILE} - ${#EXT} ))}" != "$EXT" ]; then
echo "`md5sum $FILE|cut -d " " -f1`#$FILE" >> $PKGMK_REPO
fi
done
else
rm -f $PKGMK_REPO
fi
echo "`md5sum $PKGMK_PKGFILE|cut -d " " -f1`#$PKGMK_PKGFILE" >> $PKGMK_REPO
}
clean_repo_files()
{
cd $PKGMK_ROOT
if [ -f $PKGMK_REPO ]; then
rm $PKGMK_REPO
info "Removing $PKGMK_REPO"
fi
if [ -f MD5SUM ]; then
rm MD5SUM
info "Removing MD5SUM"
fi
}
interrupted() {
echo ""
error "Interrupted."
if [ "$PKGMK_KEEP_WORK" = "no" ]; then
rm -rf $PKGMK_WORK_DIR
fi
exit $E_GENERAL
}
print_help() {
echo "usage: `basename $PKGMK_COMMAND` [options]"
echo "options:"
echo " -i, --install build and install packages"
echo " -u, --upgrade build and install packages (as upgrade)"
echo " -r, --recursive search for and build packages recursively"
echo " -d, --download download missing source file(s)"
echo " -cv, --show-version-only do not build, only show the version of the port and exit"
echo " -do, --download-only do not build, only download missing source file(s)"
echo " -eo, --extract-only do not build, only extract source file(s)"
echo " -utd, --up-to-date do not build, only check if package is up to date"
echo " -ur, --update-repo do not build, only update the $PKGMK_REPO file"
echo " -uc, --update-collection do not build, only update the $PKGMK_REPO file of the collection means from the parent directory"
echo " -uf, --update-footprint update footprint using result from last build"
echo " -ic, --ignore-collection build packages without update the $PKGMK_REPO file of the collection means from the parent directory"
echo " -if, --ignore-footprint build packages without checking footprint"
echo " -in, --ignore-new build packages, ignore new files in a footprint missmatch"
echo " -um, --update-md5sum update md5sum"
echo " -im, --ignore-md5sum build packages without checking md5sum"
echo " -cm, --check-md5sum do not build, only check md5sum"
echo " -ns, --no-strip do not strip executable binaries or libraries"
echo " -f, --force build packages even if it appears to be up to date"
echo " -co, --clean-only do not build, only remove packages and downloaded files, update $PKGMK_REPO file"
echo " -kw, --keep-work keep temporary working directory"
echo " -cf, --config-file <file> use alternative configuration file"
echo " -v, --version print version and exit "
echo " -h, --help print help and exit"
}
parse_options() {
while [ "$1" ]; do
case $1 in
-i|--install)
PKGMK_INSTALL="install" ;;
-pk|--pkur)
PAKET_KURMA="evet" ;;
-u|--upgrade)
PKGMK_INSTALL="upgrade" ;;
-r|--recursive)
PKGMK_RECURSIVE="yes" ;;
-d|--download)
PKGMK_DOWNLOAD="yes" ;;
-do|--download-only)
PKGMK_DOWNLOAD="yes"
PKGMK_DOWNLOAD_ONLY="yes" ;;
-eo|--extract-only)
PKGMK_EXTRACT_ONLY="yes" ;;
-cv|--show-version-only)
PKGMK_SHOW_VERSION="yes";;
-utd|--up-to-date)
PKGMK_UP_TO_DATE="yes" ;;
-uc|--update-collection)
PKGMK_UPDATE_COLLECTION="yes";;
-ur|--update-repo)
PKGMK_UPDATE_REPO="yes" ;;
-uf|--update-footprint)
PKGMK_UPDATE_FOOTPRINT="yes" ;;
-if|--ignore-footprint)
PKGMK_IGNORE_FOOTPRINT="yes" ;;
-in|--ignore-new)
PKGMK_IGNORE_NEW="yes" ;;
-um|--update-md5sum)
PKGMK_UPDATE_MD5SUM="yes" ;;
-im|--ignore-md5sum)
PKGMK_IGNORE_MD5SUM="yes" ;;
-ic|--ignore-collection)
PKGMK_IGNORE_COLLECTION="yes" ;;
-ir|--ignore-repo)
PKGMK_IGNORE_REPO="yes" ;;
-cm|--check-md5sum)
PKGMK_CHECK_MD5SUM="yes" ;;
-ns|--no-strip)
PKGMK_NO_STRIP="yes" ;;
-f|--force)
PKGMK_FORCE="yes" ;;
-co|--clean-only)
PKGMK_CLEAN_ONLY="yes" ;;
-kw|--keep-work)
PKGMK_KEEP_WORK="yes" ;;
-cf|--config-file)
if [ ! "$2" ]; then
echo "`basename $PKGMK_COMMAND`: option $1 requires an argument"
exit 1
fi
PKGMK_CONFFILE="$2"
shift ;;
-v|--version)
echo "`basename $PKGMK_COMMAND` (cards) $PKGMK_VERSION"
exit 0 ;;
-h|--help)
print_help
exit 0 ;;
*)
echo "`basename $PKGMK_COMMAND`: invalid option $1"
exit 1 ;;
esac
shift
done
}
main() {
if [ -f /etc/noprofile ]; then
source /etc/noprofile
fi
parse_options "$@"
if [ ! -f $PKGMK_CONFFILE ]; then
error "File '$PKGMK_CONFFILE' not found."
exit $E_GENERAL
fi
. $PKGMK_CONFFILE
PKGMK_ARCH=`uname -m`
if ! (`which pkginfo > /dev/null`); then
warning "pkginfo NOT FOUND, footprint ignored."
PKGMK_IGNORE_FOOTPRINT="yes"
fi
local FILE TARGET
name=`basename $PKGMK_ROOT`
if [ "$PKGMK_RECURSIVE" = "yes" ]; then
recursive "$@"
exit 0
fi
if [ ! -f $PKGMK_PKGFILE ]; then
error "File '$PKGMK_PKGFILE' not found."
exit $E_PKGFILE
fi
. $PKGMK_PKGFILE
if [ -z $group ]; then
group="`echo $name | cut -d "-" -f1`"
fi
if [ "$group" == "$name" ]; then
unset group
fi
if [ -z "$version" ]; then
if [ ! -z "$group" ];then
if [ -f ../$group/$PKGMK_PKGFILE ];then
. ../$group/$PKGMK_PKGFILE
unset run
. $PKGMK_PKGFILE
else
warning "Variable 'version' not initiated or not found in $PKGMK_PKGFILE."
fi
else
warning "Variable 'version' not initiated or not found in $PKGMK_PKGFILE."
fi
fi
if [ "$PKGMK_SHOW_VERSION" == "yes" ]; then
echo "$version"
exit 0
fi
info "PKGMK_INSTALL: $PKGMK_INSTALL"
info "PAKET_KURMA: $PAKET_KURMA"
info "PKGMK_WORK_DIR: $PKGMK_WORK_DIR"
info "PKGMK_SOURCE_DIR: $PKGMK_SOURCE_DIR"
if [ "$PKGMK_INSTALL" = "no" ]; then
PKGMK_CLEAN="no"
warning "CLEAN IGNORED"
else
info "PKGMK_KEEP_SOURCES: $PKGMK_KEEP_SOURCES"
info "PKGMK_CLEAN: $PKGMK_CLEAN"
fi
if [ "$PKGMK_CLEAN" != "no" ]; then
PKGMK_IGNORE_FOOTPRINT="yes"
PKGMK_IGNORE_MD5SUM="yes"
warning "FOOTPRINT AND MD5SUM IGNORED"
else
if [ "$PKGMK_UPDATE_REPO" != "yes" ]; then
info "PKGMK_IGNORE_REPO: $PKGMK_IGNORE_REPO"
else
info "PKGMK_UPDATE_REPO: $PKGMK_UPDATE_REPO"
fi
info "PKGMK_IGNORE_FOOTPRINT: $PKGMK_IGNORE_FOOTPRINT"
info "PKGMK_IGNORE_MD5SUM: $PKGMK_IGNORE_MD5SUM"
fi
if [ "$PKGMK_IGNORE_REPO" == "yes" ]; then
info "$PKGMK_REPO file will be deleted"
fi
info "PKGMK_COMPRESS_PACKAGE: $PKGMK_COMPRESS_PACKAGE"
if [ "$PKGMK_COMPRESS_PACKAGE" != "no" ]; then
info "PKGMK_COMPRESSION_MODE: $PKGMK_COMPRESSION_MODE"
fi
info "name: ${name}"
if [ ! -z "$version" ]; then
info "version: $version"
fi
if [ ! -z "$release" ]; then
info "release: $release"
fi
if [ ! -z "$group" ]; then
info "group: $group"
fi
PKGMK_MD5SUM="$name.`uname -m`.md5sum"
check_directory "$PKGMK_SOURCE_DIR"
check_directory "$PKGMK_PACKAGE_DIR"
check_directory "`dirname $PKGMK_WORK_DIR`"
check_pkgfile
get_package_list
case $PKGMK_COMPRESSION_MODE in
lz|gz|bz2|xz)
if [ -z $TARGETS ]; then
TARGET="$PKGMK_PACKAGE_DIR/${name}#$version-PKGMK_ARCH.$PKGMK_PACKAGE_EXT.$PKGMK_COMPRESSION_MODE"
fi;;
*)
error "Compression mode '$PKGMK_COMPRESSION_MODE' not supported"
exit $E_GENERAL
;;
esac
case $PKGMK_COMPRESSION_MODE in
gz) COMPRESSION="-z" ;;
bz2) export COMPRESSION="-j" ;;
xz) export COMPRESSION="-J" ;;
esac
if [ "$PKGMK_CLEAN_ONLY" = "yes" ]; then
clean
remove_source
update_repo
exit 0
fi
if [ "$PKGMK_UPDATE_COLLECTION" = "yes" ]; then
update_collection_repo
exit 0
fi
if [ "$PKGMK_UPDATE_REPO" = "yes" ]; then
update_repo
exit 0
fi
if [ "$PKGMK_UPDATE_FOOTPRINT" = "yes" ]; then
update_footprint
exit 0
fi
if [ "$PKGMK_UPDATE_MD5SUM" = "yes" ]; then
download_source
check_file "$PKGMK_MD5SUM"
make_md5sum > $PKGMK_MD5SUM
info "Md5sum updated."
exit 0
fi
if [ "$PKGMK_DOWNLOAD_ONLY" = "yes" ]; then
download_source
exit 0
fi
if [ "$PKGMK_EXTRACT_ONLY" = "yes" ]; then
download_source
make_work_dir
info "Extracting sources of package '${name}-$version'."
unpack_source
exit 0
fi
if [ "$PKGMK_UP_TO_DATE" = "yes" ]; then
if [ ! -z $TARGETS ]; then
for TARGET in ${TARGETS[@]}; do
if [ "`build_needed`" = "yes" ]; then
info "Package '$TARGET' is not up to date."
else
info "Package '$TARGET' is up to date."
fi
done
else
if [ "`build_needed`" = "yes" ]; then
info "Package '$TARGET' is not up to date."
else
info "Package '$TARGET' is up to date."
fi
fi
exit 0
fi
# From here on it's need to check the base package not any group which means
if [ -z $TARGETS ]; then
TARGET=$PKGMK_PACKAGE_DIR/${name}#$version-$PKGMK_ARCH.$PKGMK_PACKAGE_EXT.$PKGMK_COMPRESSION_MODE
if [ "`build_needed`" = "no" ] && [ "$PKGMK_FORCE" = "no" ] && [ "$PKGMK_CHECK_MD5SUM" = "no" ]; then
info "Package '$TARGET' is up to date."
else
download_source
derle
fi
else
FOUND=false
for TARGET in ${TARGETS[@]}; do
if [ "`build_needed`" = "no" ] && [ "$PKGMK_FORCE" = "no" ] && [ "$PKGMK_CHECK_MD5SUM" = "no" ]; then
if [ "`get_package_arch $TARGET`" = "$PKGMK_ARCH" ]; then
FOUND=true
fi
info "Package '$TARGET' is up to date."
else
download_source
derle
break
fi
done
fi
if [ ! -z $FOUND ] ; then
if [ $FOUND != true ]; then
download_source
PKGMK_BUILDVER="`get_package_builddate $TARGET`"
TARGET=$PKGMK_PACKAGE_DIR/${name}#$version-$PKGMK_ARCH.$PKGMK_PACKAGE_EXT
derle $TARGET
fi
fi
if [ "$PKGMK_INSTALL" != "no" ]; then
install_package
fi
if [ "$PKGMK_COMPRESS_PACKAGE" = "yes" ]; then
cd $PKGMK_PACKAGE_DIR
get_package_list
for TARGET in ${TARGETS[@]}; do
if [ "${TARGET:$((${#TARGET} - ${#PKGMK_PACKAGE_EXT} ))}" == "$PKGMK_PACKAGE_EXT" ]; then
compress_archive $TARGET
fi
done
fi
if [ "$PKGMK_KEEP_SOURCES" != "yes" ]; then
remove_source
fi
if [ "$PKGMK_CLEAN" != "no" ]; then
clean
unset TARGETS
if [ "$PKGMK_IGNORE_REPO" == "yes" ];then
clean_repo_files
fi
fi
if [ "$PKGMK_IGNORE_REPO" != "yes" ] && [ "$PKGMK_CLEAN" != "yes" ]; then
update_repo
fi
if [ "$PKGMK_IGNORE_COLLECTION" != "yes" ]; then
update_collection_repo
fi
exit 0
}
trap "interrupted" SIGHUP SIGINT SIGQUIT SIGTERM
export LC_ALL=POSIX
PKGMK_CONFFILE="/etc/mpsd.conf"
readonly PKGMK_VERSION="1.0"
readonly PKGMK_COMMAND="$0"
readonly PKGMK_ROOT="$PWD"
PKGMK_PACKAGE_DIR="$PWD"
PKGMK_BUILDVER=`date +%s`
#PKGMK_BUILDVER="#"
PKGMK_PACKAGE_EXT="mps"
PKGMK_REPO=".PKGREPO"
PKGMK_PKGFILE="talimat"
PKGMK_MD5SUM="$name.`uname -m`.md5sum"
PKGMK_NOSTRIP=".nostrip"
PKGMK_KEEP_SOURCES="no"
PKGMK_CLEAN="yes"
PAKET_KURMA="evet"
PKGMK_GROUPS=()
PKGMK_LOCALES=(tr)
PKGMK_SOURCE_MIRRORS=()
PKGMK_SOURCE_DIR="$PWD"
PKGMK_WORK_DIR="$PWD/work"
PKGMK_DOWNLOAD="no"
PKGMK_IGNORE_FOOTPRINT="yes"
PKGMK_IGNORE_NEW="yes"
PKGMK_IGNORE_MD5SUM="yes"
PKGMK_IGNORE_RELEASE="no"
PKGMK_IGNORE_REPO="yes"
PKGMK_IGNORE_COLLECTION="yes"
PKGMK_IGNORE_RUNTIMEDEPS="yes"
PKGMK_NO_STRIP="no"
PKGMK_COMPRESSION_MODE="lz"
PKGMK_COMPRESS_PACKAGE="no"
PKGMK_INSTALL="no"
PKGMK_RECURSIVE="no"
PKGMK_DOWNLOAD_ONLY="no"
PKGMK_EXTRACT_ONLY="no"
PKGMK_IGNORE_UNPACK="no"
PKGMK_UP_TO_DATE="no"
PKGMK_UPDATE_FOOTPRINT="no"
PKGMK_FORCE="no"
PKGMK_KEEP_WORK="no"
PKGMK_UPDATE_MD5SUM="no"
PKGMK_CHECK_MD5SUM="no"
main "$@"
# End of file