diff options
-rwxr-xr-x | libremakepkg | 2 | ||||
-rwxr-xr-x | pkgbuild-check-nonfree | 14 |
2 files changed, 11 insertions, 5 deletions
diff --git a/libremakepkg b/libremakepkg index 8cce89d..988b6f2 100755 --- a/libremakepkg +++ b/libremakepkg @@ -27,7 +27,7 @@ fi msg "Checking PKGBUILD for non-free issues" pkgbuild-check-nonfree ||{ - if [[$?=15]]; then + if [[ $? -eq 15 ]]; then error "PKGBUILD contains non-free issues" exit 15 else diff --git a/pkgbuild-check-nonfree b/pkgbuild-check-nonfree index c55e7f6..67c562d 100755 --- a/pkgbuild-check-nonfree +++ b/pkgbuild-check-nonfree @@ -23,7 +23,7 @@ source /etc/libretools.conf [[ -f $XDG_CONFIG_HOME/libretools/libretools.conf ]] && \ source $XDG_CONFIG_HOME/libretools/libretools.conf -pushd /tmp >/dev/null +pushd $(mktemp -d) >/dev/null # This is the exit status. ev=0 @@ -44,6 +44,7 @@ wget -N -q -O blacklist.txt "${BLACKLIST}" 2>/dev/null || { # Get everything before the `:' in the blacklist (that's the names of the # packages). unfree=($(cut -d: -f1 blacklist.txt)) +freerep=($(cut -d: -f2 blacklist.txt)) popd >/dev/null @@ -59,10 +60,15 @@ msg "Looking for unfree dependencies" for item in ${pkgname[@]} ${depends[@]} ${makedepends[@]} ; do # We cycle through all of the programs in the array (if any), and check if # they are in the `unfree' array. - if in_array $item ${unfree[@]} - then - ev=15 + if in_array $item ${unfree[@]} ; then + # if item has a free replacement, use error 16. + if in_array $item-libre ${freerep[@]} and [[ $ev -ne 15 ]] ; then + ev=16 + warning "$item -> $item-libre" + else + ev=15 msg2 "found $item" + fi fi done |