#!/bin/bash # Copyright 2010 Nicolás Reynolds, Joshua Ismael # ---------- GNU General Public License 3 ---------- # This file is part of Parabola. # Parabola is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # Parabola is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with Parabola. If not, see . source /etc/libretools.conf source /etc/abs.conf function usage { echo "Usage: $0 pkgname-from-aur1 [pkgname-from-aur2 ...]" echo echo "This script will download packages from aur to the current dir" echo "and check their license for nonfree issues." } while getopts 'h' arg; do case $arg in h) usage; exit 0 ;; *) usage; exit 1 ;; esac done missing_deps=() for _pkg in ${@}; do # Remove the version # TODO check downloaded PKGBUILD version _pkg="${_pkg%%[<>=]*}" msg "Downloading $_pkg..." wget -O - -q http://aur.archlinux.org/packages/$_pkg/$_pkg.tar.gz | \ tar xzf - >/dev/null 2>&1 [[ $? -ne 0 ]] && { error "Couldn't get $_pkg" continue } stdnull "pushd $_pkg" source PKGBUILD pkgbuild-check-nonfree || { if [ $? -eq 15 ]; then warning "This PKGBUILD links to known unfree packages" fi } msg2 "Checking license..." free=0 for _license in ${license[@]}; do if [ ! -d /usr/share/licenses/common/$_license ]; then warning "License $_license is not a common license" free=1 fi done if [ $free -eq 1 ]; then plain "Please check that the license is included in the package and *specially* that it respects your freedom." fi for _dep in ${depends[@]} ${makedepends[@]}; do if ! is_built $_dep; then if ! find ${ABSROOT} -maxdepth 2 -type d -name "$_dep" | egrep "*" >/dev/null ; then missing_deps=(${missing_deps} $_dep) fi else msg2 "$_dep is on repos" fi done stdnull popd done [[ ${#missing_deps[*]} -gt 0 ]] && { msg2 "Retrieving missing deps: ${missing_deps[@]}" $0 ${missing_deps[@]} } exit 0