[arch-general] best practices for rebuilding packages

Squires, Eric Eric.Squires at gtri.gatech.edu
Tue Dec 8 04:30:59 UTC 2015


I apparently messed up the date command in the script below. Here is an update

aurPkgs=$(pacman -Qm | cut -d ' ' -f 1)

for aurPkg in $aurPkgs; do

    aurDte=$(pacman -Qi $aurPkg | grep "Install Date" | cut -d ':' -f 2-)
    aurDte=$(date --date="$aurDte" "+%s")

    depPkgs=$(pacman -Qi $aurPkg | grep "Depends On" | cut -d ':' -f 2-)

    for depPkg in $depPkgs; do 

        depDte=$(pacman -Qi $depPkg | grep "Install Date" | cut -d ':' -f 2-)
        depDte=$(date --date="$depDte" "+%s")
        if [[ $aurDte -lt $depDte ]]; then 
            echo "update $aurPkg given $depPkg is more recent"
        fi

    done 

done

Eric 
________________________________________
From: arch-general <arch-general-bounces at archlinux.org> on behalf of Squires, Eric <Eric.Squires at gtri.gatech.edu>
Sent: Monday, December 7, 2015 11:17 PM
To: General Discussion about Arch Linux
Subject: Re: [arch-general] best practices for rebuilding packages

Here are a few ideas:

For checking if a dependency is newer, use this script:

aurPkgs=$(pacman -Qm | cut -d ' ' -f 1)

for aurPkg in $aurPkgs; do

    aurDte=$(pacman -Qi $aurPkg | grep "Install Date" | cut -d ':' -f 2- | date '+%s')

    depPkgs=$(pacman -Qi $aurPkg | grep "Depends On" | cut -d ':' -f 2-)

    for depPkg in $depPkgs; do

        depDte=$(pacman -Qi $depPkg | grep "Install Date" | cut -d ':' -f 2- | date '+%s')
        if [[ $aurDte < $depDte ]]; then
            echo "update $aurPkg given $depPkg is more recent"
        fi

    done

done

I keep all my aur git repos in a directory and execute the following to see if there is anything new. It cd's into any git repo and fetches, printing out any updates:

    TEMP_OLDPWD=$OLDPWD

    for d in $(dirname $(find -name "\.git")); do
        cd $d
        echo "fetching " $d
        git fetch
        cd $OLDPWD
    done

    OLDPWD=$TEMP_OLDPWD

To make custom changes to pkgbuilds, just create a branch in git (this assumes you are using aur4) and merge each time there is an update. The workflow would look something like this:

git checkout -b my_branch
git fetch
git merge master
# now do normal makepkg build/install step

Eric
________________________________________
From: arch-general <arch-general-bounces at archlinux.org> on behalf of Michał Zegan <webczat_200 at poczta.onet.pl>
Sent: Sunday, December 6, 2015 12:52 PM
To: General Discussion about Arch Linux
Subject: [arch-general] best practices for rebuilding packages

Hello.

If I have a package build from aur that depends on a library, and the
library is updated, and package from aur requires rebuild, is it
possible to somehow track and automate that?
In other cases maintaining such configurations may be the trouble as you
have to remember what aur packages depend on your library.
Another question: what about modifying aur/abs pkgbuilds, like I replace
the whole configure line because I want to do so, but to do such a
configuration for a new version of the package, I have to manually
modify any new pkgbuild I get to get the same result. How to make it nicer?


More information about the arch-general mailing list