From 76ed0ac12ddb7709072e79aa2ce4c6058a17e2b8 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 20 Jun 2014 12:18:17 -0400 Subject: (crosses fingers) automate updating of libre/your-freedom --- libre/your-freedom/PKGBUILD | 40 +++++++++++++---------- libre/your-freedom/post-recieve-hook.sh | 56 +++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 17 deletions(-) create mode 100644 libre/your-freedom/post-recieve-hook.sh diff --git a/libre/your-freedom/PKGBUILD b/libre/your-freedom/PKGBUILD index 6f2b209d5..1c15ca6ed 100644 --- a/libre/your-freedom/PKGBUILD +++ b/libre/your-freedom/PKGBUILD @@ -1,25 +1,31 @@ -# Maintainer: Parabola Project +# Maintainer: Parabola Project + pkgname=your-freedom -pkgver=$(LC_ALL=C date -u +%Y%m%d) -pkgrel=1 +pkgver=... +_gitver=... pkgdesc="This package conflicts with every nonfree package known to date to ensure your system is free." -arch=('any') -url="https://parabolagnulinux.org" license=('GPL3') +url="https://projects.parabolagnulinux.org/blacklist.git" + +pkgrel=1 +arch=('any') groups=('base') install=${pkgname}.install -source=(blacklist-${pkgver}.txt::https://projects.parabolagnulinux.org/blacklist.git/plain/blacklist.txt) + +makedepends=(librelib) +source=(blacklist-${_gitver}.txt::https://projects.parabolagnulinux.org/blacklist.git/plain/blacklist.txt?id=${_gitver}) +md5sums=('5fd14982619414fea1882b351607291e') package() { - conflicts=($(cut -d: -f1,2 blacklist-${pkgver}.txt | \ - sed "s/:$//" | \ - grep -v ":" | \ - grep -v '^#' | \ - sort -u - )) - cd ${srcdir} - install -d ${pkgdir}/usr/share/doc/${pkgname} - install -m644 blacklist-${pkgver}.txt ${pkgdir}/usr/share/doc/${pkgname}/ -} + cd "$srcdir" -md5sums=('5fd14982619414fea1882b351607291e') + conflicts=($( + < blacklist-${pkgver}.txt \ + libreblacklist normalize | + cut -d: -f1,2 | + sed -n 's/:$//p' | + sort -u + )) + + install -Dm644 blacklist-${_gitver}.txt "$pkgdir"/usr/share/doc/${pkgname}/blacklist.txt +} diff --git a/libre/your-freedom/post-recieve-hook.sh b/libre/your-freedom/post-recieve-hook.sh new file mode 100644 index 000000000..4da0cd147 --- /dev/null +++ b/libre/your-freedom/post-recieve-hook.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +# Get this first thing +newpkgver_date=$(LC_ALL=C date -u +%Y%m%d) + +. "$(librelib messages)" +setup_traps +lock 9 "${0}.lock" "Waiting for previous run of %q to finish" "$0" + +. "$(librelib conf)" +load_files libretools +check_vars libretools WORKDIR ABSLIBRERECV ABSLIBRESEND + +# Start in the blacklist.git directory +newgitver=$(git log -n1 --format='%H' master -- blacklist.txt) + +# Get the ABSLibre tree +gitget -f -p "$ABSLIBRESEND" checkout "$ABSLIBRERECV" "$WORKDIR/abslibre" +cd "$WORKDIR/abslibre/libre/your-freedom" + +# Figure out info about the last version of your-freedom +oldgitver=$(sed -n 's/^_gitver=//p' PKGBUILD) +oldpkgver=$(sed -n 's/^pkgver=//p' PKGBUILD) +oldpkgver_date=${oldpkgver%%.*} +oldpkgver_rel=${oldpkgver#${oldpkgver_date}}; oldpkgver_rel=${oldpkgver_rel#.} oldpkgver_rel=${oldpkgver_rel:-0} + +# Make sure we actually have changes +if [[ "$newgitver" == "$oldgitver" ]]; then + msg 'blacklist.txt has not changed, nothing to do' + exit 0 +fi + +# Handle doing multiple versions in the same day +if [[ "$newpkgver_date" == "$oldpkgver_date" ]]; then + declare -i newpkgver_rel=${oldpkgver_rel}+1 + newpkgver=${newpkgver_date}.${newpkgver_rel} +else + newpkgver=${newpkgver_date} +fi + +# Update the PKGBUILD +sed -i -e 's|^pkgver=.*|pkgver=${newpkgver}|' \ + -e 's|^_gitver=.*|_gitver=${newgitver}|' \ + -e 's|^pkgrel=.*|pkgrel=1|' \ + PKGBUILD +updpkgsums +git add PKGBUILD +git commit -m 'Update libre/your-freedom' + +# Build the new package +makepkg +librestage libre + +# Publish the updates +git push +librerelease -- cgit v1.2.3-2-g168b