Skip to content
An AUR helper with a pacman-like interface
C Shell
Find file
Latest commit ffe597e @yanhan Support bash variable substitution for dependency resolution
It is perfectly valid for PKGBUILDS to make use of bash variable substitution.
For instance, a look at lib32-curl's PKGBUILD gives us these few interesting
lines:

_pkgbase=curl
pkgname=lib32-$_pkgbase
depends=('lib32-zlib' 'lib32-openssl' 'ca-certificates' 'lib32-libssh2'
		 "${_pkgbase}")

The depends array is parsed by powaur for dependency resolution. And this
results in us trying to resolve a "${_pkgbase}" package, which fails.

Implement bash variable substitution to enable us to resolve dependencies
listed as bash variables.

Signed-off-by: Pang Yan Han <pangyanhan@gmail.com>
Failed to load latest commit information.
.gitignore
COPYING Initial commit.
INSTALL Initial commit.
Makefile.in Add -larchive flag
NEWS
POWAUR-VERSION-GEN v0.1.6
README.md Prepare for v0.1.4
TECHNICAL Prepare for v0.1.4
autoclean.sh Initial commit.
autogen.sh Initial commit.
conf.c Updated to use libalpm 7
conf.h Updated to use libalpm 7
configure.ac Add per user temporary directory
curl.c Remove outdated TODO comments
curl.h curl_init: return -1 to indicate failure
download.c Style cleanup
download.h Remove deprecated functions
environment.c Add missing parse_powaur_config call to parse powaur.conf in $HOME
environment.h Updated to use libalpm 7
error.c Updated to use libalpm 7
error.h Remove deprecated functions
graph.c Report packages involved in cyclic deps during -Su
graph.h Report packages involved in cyclic deps during -Su
handle.c
handle.h Initial commit.
hash.c Add hash_walk function to HASH_TABLE
hash.h Add hash_walk function to HASH_TABLE
hashdb.c Provides: Cast alpm_list contents to alpm_depend_t *
hashdb.h Updated to use libalpm 7
json.c Make yajl_init static
json.h Make yajl_init static
memlist.c Add string and pkgpair memlists to pw_hashdb
memlist.h Add string and pkgpair memlists to pw_hashdb
package.c Support bash variable substitution for dependency resolution
package.h Updated to use libalpm 7
powaur.1.txt
powaur.c Updated to use libalpm 7
powaur.conf Add NoConfirm config file option
powaur.h Updated to use libalpm 7
query.c Updated to use libalpm 7
query.h Change FORCE_DL and NOFORCE
sync.c Updated to use libalpm 7
sync.h Initial commit.
util.c Updated to use libalpm 7
util.h -S: Colorize and block print final targets
wrapper.c wrapper.c: add xrealloc
wrapper.h

README.md

WHAT IS POWAUR?

powaur is an AUR helper written in C. Its main objective is to provide a yaourt / pacman esque interface to the AUR.

Currently, powaur supports:

  • Installing packages from the AUR with dependency resolution (v0.1.4)
  • Checking for outdated AUR packages and updating them (v0.1.4)
  • Showing a valid topological order for packages (v0.1.4)
  • Multithreaded downloading of packages from the AUR with dependency resolution
  • Searching for packages on the AUR
  • Querying local and sync databases for package information
  • Backing up your pacman local database
  • Colorized output (new in v0.1.3)

Unlike full featured AUR helpers such as clyde, powaur is not meant to replace pacman.

OBJECTIVES

powaur provides an interface which is as close to that of yaourt and pacman as possible, without sacrificing too much performance. After all, why learn an additional set of commands when you are already familiar with one that works? =)

powaur seeks to:

  • provide an interface as similar to pacman as possible
  • do things efficiently. Hence C is the language of choice

Inspiration for powaur has come from:

  • cower
  • pacman
  • yaourt
  • git

A NOTE ABOUT THE AUR

The Arch User Repository (AUR) is a community driven repository. As such, AUR packages are unsupported and come with a certain level of security risk.

As such, use of the -S flag to install AUR packages is highly discouraged. You are highly advised to look through the PKGBUILDS before invoking makepkg to build the packages.

CREDITS

Dave Reisner for allowing me to use code from cower (json parsing using yajl)

Some source code in powaur comes from the following projects:

  • pacman
  • git

BUG REPORTS

Please email bug reports to pangyanhan@gmail.com .

AUTHOR

Pang Yan Han pangyanhan@gmail.com

Something went wrong with that request. Please try again.