#!/bin/bash # pkgbuild-check-nonfree # Copyright 2010 Joshua Ismael Haase Hernández, Joseph Graham # ---------- 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 [[ -f $XDG_CONFIG_HOME/libretools/libretools.conf ]] && \ source $XDG_CONFIG_HOME/libretools/libretools.conf pushd /tmp >/dev/null # This is the exit status. ev=0 # Check if the blacklist variable is empty, and if so error. [[ ${#BLACKLIST} -eq 0 ]] && { error "BLACKLIST variable is not set your libretools.conf file" exit 1 } # Download the blacklist. msg "Downloading the blacklist of proprietary software packages." wget -N -q -O blacklist.txt "${BLACKLIST}" 2>/dev/null || { error "Download failed, exiting" exit 1 } # Get everything before the `:' in the blacklist (that's the names of the # packages). unfree=($(cut -d: -f1 blacklist.txt)) popd >/dev/null source /etc/rc.d/functions # We want the `in_array' function. source ./PKGBUILD # The following piece of code will check whether a package is, or depends on; # any non free package(s). # The `pkgname', `depends', `makedepends' arrays have been sourced from # ./PKGBUILD. msg "Looking for unfree dependencies" for where in pkgname depends makedepends ; do msg2 " Cheking in «${where}»:" # We cycle through all of the programs in the array (if any), and check if # they are in the `unfree' array. for item in ${!where[@]} ; do if in_array $item ${unfree[@]} then ev=15 plain $item fi done done exit $ev