| | |
| | | # Usage: build_pkg [package name] [-f force] |
| | | function build_pkg { |
| | | #check if PKGBUILD has updated, don't rebuild if hasn't changed |
| | | if [[ -n "$(git pull | grep 'Already up to date.')" && -z "$(grep 'pkgver() {' PKGBUILD)" && -z "$2" ]]; then |
| | | if [[ -n $(git pull | grep 'Already up to date.') && -z $(grep 'pkgver() {' PKGBUILD) && -z "$2" ]]; then |
| | | return 2 |
| | | fi |
| | | |
| | | #remove old versions before build |
| | | rm -f *$1*.tar.* |
| | | |
| | | #make and force rebuild if is git package |
| | | # Mictosoft fonts have problems with checksums and need a seperate argument |
| | |
| | | "$1" == "ttf-office-2007-fonts" || |
| | | "$1" == "ttf-ms-win8" || |
| | | "$1" == "ttf-win7-fonts" ]]; then |
| | | makepkg -s --noconfirm $([[ $CLEAN == "Y" ]] && echo "-c") $([[ $SIGN == "Y" ]] && echo "--sign --key $KEY") $([[ "$2" == "-f" ]] && echo -f) --skipchecksums |
| | | makepkg -s --noconfirm $([[ $CLEAN == "Y" ]] && echo "-c") $([[ $SIGN == "Y" ]] && echo "--sign --key $KEY") $([[ "$2" == "-f" ]] && echo -f) --skipchecksums 2>&1 |
| | | else |
| | | makepkg -s --noconfirm $([[ $CLEAN == "Y" ]] && echo "-c") $([[ $SIGN == "Y" ]] && echo "--sign --key $KEY") $([[ "$2" == "-f" ]] && echo -f) 2>&1 |
| | | fi |
| | | if [[ $? != 0 ]]; then |
| | | if [[ $? != 0 && $? != 13 ]]; then |
| | | #Register error |
| | | echo $1 >> $ERRORFILE |
| | | return 1 |
| | | fi |
| | | |
| | | #Remove old packages from build directory |
| | | source PKGBUILD |
| | | srcdir="$(pwd)/src" |
| | | if grep -q 'pkgver() {' PKGBUILD; then |
| | | ver=$(pkgver) |
| | | else |
| | | ver=$pkgver |
| | | fi |
| | | find . -mindepth 1 -maxdepth 1 -type f \( -name "*.pkg.tar.*" -o -name "*.src.tar.*" \) -not -name "*$ver-$pkgrel*" -delete |
| | | |
| | | #Get build artifact names from PKGBUILD and build artifacts |
| | | #Remove duplicates from the list |
| | | source PKGBUILD |
| | | pkgs=() |
| | | ipkgs=() |
| | | for i in ${pkgname[@]}; do |
| | |
| | | ipkgs+=($(find . -mindepth 1 -maxdepth 1 -type f \( -name "$i*.pkg.tar.*" -o -name "$i*.src.tar.*" \) -not -name "*.sig" | sed 's/^\.\///')) |
| | | done |
| | | while read -r -d '' x; do pkgs+=("$x"); done < <(printf "%s\0" "${ipkgs[@]}" | sort -uz) |
| | | |
| | | # Weird exceptions |
| | | if [[ "$1" == "zoom" ]]; then |
| | | rm zoom*_orig* |
| | | for i in ${pkgs[@]}; do |
| | | if [ -z "${i##*_orig*}" ]; then |
| | | pkgs=(${pkgs[@]/$i}) |
| | | fi |
| | | done |
| | | fi |
| | | |
| | | #Move package to repodir and add to repo db |
| | | #Dont change the database if rebuilt the same package at same release and version |
| | |
| | | done |
| | | else |
| | | return; |
| | | fi |
| | | |
| | | # Weird exceptions |
| | | if [[ "$1" == "zoom" ]]; then |
| | | rm zoom*_orig*.pkg.tar.xz |
| | | for i in ${pkgs[@]}; do |
| | | if [ -z "${i##*orig*}" ]; then |
| | | pkgs=${pkgs[@]/$i} |
| | | fi |
| | | done |
| | | fi |
| | | |
| | | # Add package to waiting list to be added to repo db |
| | |
| | | sleep 1 |
| | | else |
| | | # Remove self from top of queue |
| | | echo 1 > $WAITLST_LCK |
| | | echo 1 > $WAITLIST_LCK |
| | | TEMP=$(mktemp) |
| | | tail -n +2 $WAITLIST > $TEMP |
| | | cp $TEMP $WAITLIST |
| | |
| | | #Adding build dependencies is |
| | | # Usage: add [package name] |
| | | function add { |
| | | echo @: $@ |
| | | # read |
| | | local i j k |
| | | for i in $@; do |
| | | cd $BUILDDIR |
| | | if [[ -z $(git ls-remote https://aur.archlinux.org/$i.git) ]]; then |
| | |
| | | fi |
| | | git clone https://aur.archlinux.org/$i.git |
| | | cd $i |
| | | unset depends |
| | | unset makedepends |
| | | local makedeps |
| | | source PKGBUILD |
| | | |
| | | #check for all build dependencies |
| | | for i in ${makedepends[@]}; do |
| | | if pacman -Si $i; then |
| | | makedepends=${makedepends[@]/$delete} |
| | | for j in ${makedepends[@]}; do |
| | | k=$(echo $j | sed 's/[>]=.*//g') |
| | | if ! pacman -Si $k; then |
| | | makedeps+=($k) |
| | | fi &>/dev/null |
| | | done |
| | | for i in ${makedepends[@]}; do |
| | | add $i |
| | | for j in ${depends[@]}; do |
| | | k=$(echo $j | sed 's/[>]=.*//g') |
| | | if ! pacman -Si $k; then |
| | | makedeps+=($k) |
| | | fi &>/dev/null |
| | | done |
| | | if [[ -n "${makedepends[@]}" ]]; then |
| | | echo $i: ${makedeps[@]} |
| | | # read |
| | | for j in ${makedeps[@]}; do |
| | | add $j |
| | | # read |
| | | done |
| | | echo $i: ${makedeps[@]} |
| | | # read |
| | | if [[ -n "${makedeps[@]}" ]]; then |
| | | sudo pacman -Sy |
| | | fi |
| | | |
| | | #read |
| | | #Actually build wanted package |
| | | cd $BUILDDIR/$i |
| | | build_pkg $i -f |
| | | done |
| | | return 0 |
| | |
| | | rmlist="$rmlist $(comm -12 <(pacman -Slq $REPONAME | sort) <(pacman -Slq core | sort) | tr '\n' ' ')" |
| | | rmlist="$rmlist $(comm -12 <(pacman -Slq $REPONAME | sort) <(pacman -Slq extra | sort) | tr '\n' ' ')" |
| | | rmlist="$rmlist $(comm -12 <(pacman -Slq $REPONAME | sort) <(pacman -Slq community | sort) | tr '\n' ' ')" |
| | | removed=() |
| | | TMPFILE=$(mktemp) |
| | | for i in $(find $BUILDDIR -mindepth 1 -maxdepth 1 -type d); do |
| | | check_pkg $TMPFILE "$(echo $i | rev | cut -d'/' -f1 | rev)" & |