From c226400096eb5ed87a7a5da47478ef616d3b5079 Mon Sep 17 00:00:00 2001 From: David P Date: Wed, 16 May 2018 15:01:05 -0400 Subject: add find-deprecated-pkgs script Signed-off-by: David P --- find-deprecated-pkgs | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100755 find-deprecated-pkgs (limited to 'find-deprecated-pkgs') diff --git a/find-deprecated-pkgs b/find-deprecated-pkgs new file mode 100755 index 0000000..c2e599c --- /dev/null +++ b/find-deprecated-pkgs @@ -0,0 +1,108 @@ +#!/bin/bash +# Copyright (C) 2018 David P. +# Find deprecated Arch packages that are still in our blacklists. + +set -e + +# Repositories for specific arch'es. +# Common repos are in 'repos' variable. +repos="core extra community" +repos_x86_64="$repos testing multilib multilib-testing" +repos_i686="$repos testing build-support" +repos_armv7h="$repos alarm" + +# Parabola repos for checking blacklists like your-privacy, +# which sometimes block [libre] and [pcr] packages. +# [nonprism] and [nonsystemd] are not listened because +# we do not blacklists those packages +repos_parabola="pcr pcr-multilib pcr-multilib-testing pcr-testing libre libre-multilib libre-multilib-testing libre-testing" + +# Set the blacklist files +# aur-blacklist.txt is not here since we want to check Arch's official repos +blacklists="blacklist.txt" + +# List here file that may also blacklist Parabola packages +blacklists_parabola="your-initfreedom-blacklist.txt your-privacy-blacklist.txt your-freedom_emu-blacklist.txt" + +# Mirrors. Please choose HTTPS over HTTP when possible +# x86_64 mirror +for r in $repos_x86_64; do + mirrors+=(https://mirrors.edge.kernel.org/archlinux/$r/os/x86_64/) +done +# i686 mirror +for r in $repos_i686; do + mirrors+=(https://mirror.archlinux32.org/i686/$r/) +done +# armv7h mirror +for r in $repos_armv7h; do + mirrors+=(https://fl.us.mirror.archlinuxarm.org/armv7h/$r/) +done + +# Parabola mirrors, used to check [libre] and [pcr] packages +if [ $1 = parabola ]; then +for r in $repos_parabola; do + mirrors+=(https://mirror.grapentin.org/parabola/$r/os/x86_64/) + mirrors+=(https://mirror.grapentin.org/parabola/$r/os/i686/) + mirrors+=(https://mirror.grapentin.org/parabola/$r/os/armv7h/) +done +fi + +# Sed expresion tested on Nginx, change if needed +sedexp='s/.*href="//;s/\-any.pkg.tar.xz.*//;s/\-x86_64.pkg.tar.xz.*//;s/\-i686.pkg.tar.xz.*//;s/\-armv7h.pkg.tar.xz.*//' +# extra sedexps for symbols +sedexp+=';s/%2B/+/g;s/%3A/:/g;s/%40/@/g' + +usage() { +cat < $parabola_pkgs + ;; + arch) curl -s ${mirrors[@]} | grep '".*.pkg.tar.xz"' | sed $sedexp > $arch_pkgs + ;; + esac +} + +check(){ + mkpkglist $1 + case $1 in + parabola) pkgs=$(cut -d ":" -f 1 $blacklists_parabola | grep -v ^#) + for p in $pkgs; do + grep ^$p $parabola_pkgs &> /dev/null || printf '%s was not found\n' "$p" + done + ;; + arch) pkgs=$(cut -d ":" -f 1 $blacklists | grep -v ^#) + for p in $pkgs; do + grep ^$p $arch_pkgs &> /dev/null || printf '%s was not found\n' "$p" + done + ;; + esac +} + +if [ -s $1 ]; then + usage +else + check $1 +fi -- cgit v1.2.2