aura
A secure package manager for Arch Linux and the AUR.
https://github.com/fosskers/aura
Version on this page: | 3.1.0 |
LTS Haskell 20.26: | 3.2.9 |
Stackage Nightly 2022-11-17: | 3.2.9 |
Latest on Hackage: | 3.2.9@rev:3 |
aura-3.1.0@sha256:cc3bed8f5d0077c193516cfec2881a0010d1c4d249b5845347457a7b44ac72c2,3423
Module documentation for 3.1.0
- Aura
Aura
Aura is a package manager for Arch Linux. Visit its main README here: https://github.com/fosskers/aura
Changes
Aura Changelog
3.1.0 (2020-05-27)
Added
- The
--skipdepcheck
flag to skip all dependency solving. Combine this with--hotedit
to avoid discrepancies in custom dependency listings. --skippgpcheck
is now available to pass through tomakepkg
.aura.conf
now has a man page.
Changed
- Bumped
aeson
andhttp-client
bounds.
3.0.0 (2020-05-20)
Added
- Aura is now configurable via a conf file! Aura expects it at
/etc/aura.conf
, but will not break if it’s missing. If you install Aura via its AUR package, this file will be installed for you automatically. - A new top-level command:
-P
. This allows users to analyse PKGBUILD files manually, as is usually done during building.-Pf
accepts a path to a PKGBUILD.-Pd
accepts a path to a directory containing a PKGBUILD.-Pa
to scan the PKGBUILDs of all locally installed AUR packages.-P
on its own will read from stdin. Combine this with-Ap
to pull from the AUR:
> aura -Ap myget | aura -P
sudo pacman -S aurvote
aura >>= sudo indicates that someone may be trying to gain root access to your machine.
aura >>= Potential PKGBUILD vulnerabilities detected.
- A new flag
--vcspath
to accompany the new VCS build behaviour (see below). - A new flag
--allsourcepath
to accompany the restored--allsource
functionality (see below). -O --adopt
can now be called as-Oa
.
Changed
- VCS packages (e.g.
*-git
,*-svn
, etc.) and their cloned sources are now built and stored in/var/cache/aura/vcs
. Subsequent builds will no longer reclone everything. #462 --hotedit
will now offer to edit.install
and.patch
files. #208- Some modules have been renamed and moved around.
Aura.Diff
andAura.Pkgbuild.Base
have had their contents folded into other modules.
Fixed
- A regression that broke
-Bc
. #592 - The functionality of
--allsource
has been restored. #538 - A minor difference in the behaviour of
-Ss
relative topacman
. #599
2.3.0 (2020-04-22)
Added
- Allow
--asdeps
to be passed to-A
commands. -y
can be passed to-A
commands again, like-Ayu
.- Dutch translations. Thank you, Joris Blanken!
Changed
- ~15% reduction in binary size and much faster compiles due to removal of unnecessary dependencies.
-Cc
now reports how much storage space was cleared.- A few more messages when using
--log-level=debug
.
Removed
makepkgConfFile
wasn’t being used anywhere.
Fixed
- A bug involving multiple prompts appearing at the same time when more than one package needs a custom provider selection. #541
- A bug involving the
+
character appearing in package names, likecrypto++
. #520 - A regression where the name of a parent package wouldn’t be displayed when a dependency couldn’t be found. #513
2.2.1 (2020-03-01)
Changed
- Further improved Italian translations.
Fixed
- Pass the Pacman flag
--overwrite
through properly.
2.2.0 (2020-02-25)
Added
--log-level
flag. Setting this todebug
will give you some verbose logging output. This is different from the usual-x
behaviour.
Changed
- Updated Italian translations. Grazie, Cristian Tentella!
- Support for GHC 8.8.2.
Fixed
- Users with many AUR packages installed will no longer see mysterious AUR connection failures. (#528)
2.1.0 (2020-02-17)
Added
- Reinstated
-Aw
, which downloads a snapshot tarball of an AUR package.
2.0.6 (2020-02-16)
Fixed
- Fixed the broken
-S
.
2.0.5 (2020-02-16)
Fixed
- Fixed a bug that prevented
-Syuu
and-Scc
.
2.0.4 (2020-02-08)
Changed
- Removed
fused-effects
dependency in favour ofrio
to simplify code.
2.0.3
Changed
- Updated Spanish translations. Thanks to Max Ferrer!
Fixed
- Bug #543 involving locales. Thanks to Alexey Kotlyarov!
2.0.2
- Bug fixes and performance improvements.
2.0.0
This is a large update representing about a month of full-time effort. Aura is now much faster, solves dependencies more reliably, has a few new features, and many fewer bugs. This is all while modernizing the code and seeing a ~15% decrease in overall code size.
Improvements
Dependency Handling
- Dependency resolution is now much faster and handles split packages correctly.
As such, the following troublesome packages now build correctly:
android-sdk
backintime
clion
libc++
mysql-connector-c++
telegram-desktop-dev
zoom
- Dependency provider selection for AUR packages.
- Example:
cron
is a legal dependency to specify, but there exists no package with that name.cronie
andfcron
both “provide”cron
, and now the user can manually make a selection. - Including
--noconfirm
will have Aura make its best guess.
- Example:
- If the exact version of an AUR package is available in the package cache, it
will be used automatically instead of being rebuilt. You can instead force a
rebuild with
--force
.
PKGBUILD Analysis
- In light of the recent compromise of the Acroread package,
Aura nows performs static PKGBUILD analysis before building, and warns the user if
potentially malicious terms like
curl
are found.- This feature can be disabled with
--noanalysis
. Caveat emptor! - This feature is a supplement in checking PKGBUILD safety, not a fool-proof replacement. It is always your responsiblity to understand what build scripts are running on your machine.
- This feature can be disabled with
Saved Package State
-Su
and-Au
automatically save a package state before updating (unless you’re doing--dryrun
). This lets you more easily roll back from problematic updates.- Saved package states can now be “pinned”, which will protect them from removal via
-Bc
. To pin a certain state, open its JSON file (see below in Breaking Changes) and edit thepinned
field fromfalse
totrue
.
CLI Flags
- Various CLI flag improvements:
-A --json <packages>
. Query the AUR directly for a package’s raw JSON data. Great for debugging.-Br
has been restored as short-hand for-B --restore
.- Added
-Bl
to list all saved package state filenames. -Cb
added as a short-hand for-C --backup
.- The Pacman flags
--ignoregroup
,--cachedir
,--config
, and--logfile
also now affect Aura. --dryrun
no longer requires sudo.--color never
turns off all text colouring. Further, by default, Aura will only automatically colour text when it detects that the output device is a terminal (and not a Unix pipe, say). These behaviours match Pacman.
Translations
- Improved Japanese translations thanks to Onoue Takuro.
- Improved Portuguese translations thanks to Wagner Amaral.
- Improved Russian translations thanks to Alexey Kotlyarov.
Misc.
- Packages that aren’t interdependent will be built in succession without prompting
the user, only calling down to
pacman
once per group. - Modernized the Haskell code:
- Removed custom CLI flag handling in favour of
optparse-applicative
. - Removed custom package version number parsing in favour of
versions
. - Removed custom text colouring code in favour of
prettyprinter
. - Removed the
Aura
Monad in favour of Extensible Effects viafreer-simple
. - Removed custom shell interaction code in favour of
typed-process
. - Used
async
to make AUR andpacman
calls concurrent. megaparsec
parsers used in place of hacky Regexes.
- Removed custom CLI flag handling in favour of
aura
is now a library as well, and can be pulled into other Haskell projects.
Breaking Changes
-B
now saves package states as JSON. This makes them readable by other tools, and also improves internal code quality. All old package state files are no longer readable by Aura.- The
"time"
field in these files is now a HaskellZonedTime
.
- The
- Various CLI flag changes:
--auradebug
is now just--debug
, matching Pacman.--aurignore
is now just--ignore
, matching Pacman.-Aw
has been removed.-y
no longer works with-A
. Perform an-Sy
ahead of time instead.-O
no longer accepts arguments to adopt packages, it only displays current orphans. Use-O --adopt
instead for the old behaviour.-Ccc
is now-C --notsaved
.
- Help messages (
-h
) are no longer localised. - Support for
powerpill
removed. - Support for
customizepkg
removed.
Bug Fixes
- Aura no longer returns an exit code of 1 if no packages are available to upgrade.
-Aq
no longer fails at the package installation step.- Ctrl+C at certain moments no longer preserves the Pacman lock file.
makepkg
output is no longer coloured green.
1.4.0
- Dependency resolution vastly improved. We removed the Bash parser that used to poorly handle the bulk of this.
- Chinese translations thanks to Kai Zhang.
-M
operator and associated code fully removed.
1.3.9
- Updated Swedish translations
- Disabled
-M
operator due to theabs
tool being deprecated by Arch Linux
1.3.8
- Fixed behaviour of
-B
flags. For restoring of saved states, use the long form:aura -B --restore
. Cache backups also need to take their long form:aura -C --backup
. - Fixed handling of language flags. Thanks to Doug Patti!
1.3.5
- Aura now uses version 5 of the
aur
package, to fix a critial bug - Updated Spanish and Polish
1.3.4
- Bash parser bug fix. Fixes some packages.
1.3.3
- Bash parser extended to be able to handle bash array expansions. This enables packages with more (Bash-wise) complex PKGBUILDs to build properly.
1.3.2.1
-Ai
and-As
show popularity values.aur4
is no longer referenced.Yes/No
prompts are now localized.- Aura can be built with
stack
. - Updated German translation.
1.3.1.0
- Aura builds against GHC 7.10.
- Updated German and Russian translations.
1.3.0.4
- Must use
--builduser
when building as root. - Bug fix regarding
--needed
. - Updated Portuguese translation.
1.3.0.3
- Pacman flags
--ignore
and--ignoregroup
now work. - Bug fixes.
1.3.0.2
- (Bug fix) If a user tries to install a package in
IgnorePkg
, they will now be prompted. - Man page updated.
- Dependencies updated.
1.3.0.1
- (Bug fix) Tarballs are now downloaded from a URL provided by the RPC.
1.3.0.0
-
Last major version of Aura 1! We have entered the design phase for Aura 2, the implementation of which will transform Aura into a multi-distro package management platform.
-
Aura 1 itself has entered “legacy” mode. The only releases to be made on Aura 1 after this will be of
1.3.0.x
. You’ll likely never see1.3.1.x
. -
Befitting a major release, we have:
- New AUR interaction layer via the
aur
package. This fixes nasty “AUR lookup failed” errors. http-conduit
dropped forwreq
, which is much easier to use.- Better version number parsing/comparison on installation/upgrading.
- Package state backups have had their format changed. This BREAKS all previously saved states. Please delete your old ones!
- Implemented extended
--needed
functionality for the AUR side of Aura. AUR packages won’t build if they’re already installed. - Indonesian translations!
- Other updated translations.
- New AUR interaction layer via the
1.2.3.4
- zsh completions completely redone (thanks to Sauyon Lee!)
Having
aur-git
installed will let you auto-complete on AUR packages.
1.2.3.3
-As --{head,tail}
can now be passed numbers to truncate the results to any number you want. The default is 10.- Updated Russian translation.
1.2.3.2
- Expanded Bash completions: Aura Only * Expanded completion for all options and search sub-options * Package completion for -M/–abssync * Completion for orphans using self-generated list Pacman * Include completion for all pacman options * Directory or file completion for some common options
- Use
--dryrun
with-A
and-M
install options to test everything up until actual building would occur (dependency checks, etc.)
1.2.3.1
- Network.HTTP.Conduit errors are now caught properly and don’t crash aura.
customizepkg
usage corrected.- zsh completions slightly expanded.
1.2.3.0
- Moved to
Network.HTTP.Conduit
fromNetwork.Curl
This fixes the AUR connection issues. Binary size has increased by quite a bit.
1.2.2.1
-Ai
now shows dependencies.
1.2.2.0
- Happy New Year!
- makepkg’s
--ignorearch
flag is now visible to Aura. This allows users to build AUR packages on ARM devices without worrying about architecture restrictions in PKGBUILDs. - Use
--head
and--tail
to truncate-As
results. -B
now uses local time.- Bug fixes and translation updates
1.2.1.3
-As
results now sort by vote. Use--abc
to sort alphabetically.- “[installed]” will now be shown in
-As
results if you have it. - Fixed Bash parsing bug involving
\\
in arrays - Fixed broken
-C
- Updated Italian translation
- Updated French translation
1.2.1.2
- Happy Canadian Thanksgiving
- Bug fixes
1.2.1.1
- Norwegian translation added!
- Dependency checks slightly faster
--hotedit
and--custom
can now be used together- Bug fixes
1.2.1.0
- New
builduser
option Prelude.head
bug fixed- Dependency checking is faster
- New
-k
output --absdeps
works properly now- Other bug fixes
1.2.0.2
- Bug fixes and spelling corrections.
1.2.0.1
- Fixes dependency build order bug.
1.2.0.0
- New operator
-M
for building ABS packages. Has its own family of options. - Pre-built binary package available (x86_64 only)
- Updates to Aura are now prioritized like pacman updates.
- Dependency checking is now faster.
- Use
-Ccc
to clean the cache of only packages not saved in any package record. -Ai
now shows Maintainer name.- Extensive API changes.
1.1.6.2
- New option
--no-pp
. Disables use of powerpill, even if you have it. - This is a light release, as major work is being done on version 1.2 on another development branch.
1.1.6.1
- Compatable with pacman 4.1
- All pacman-color support removed
-As
output slightly altered to match pacman.- Bug fixes.
1.1.6.0
- New option
--build
for specifying AUR package build path. - Vote number now shown in
-As
output. - Fixed Repo/AUR name collision bug.
- API Change: Argument order for functions in
Aura/Languages
changed.
1.1.5.0
customizepkg
now usable with Aura. Activate with the--custom
option.- API Change: Aura/Pkgbuilds now a set of libraries as Aura/Pkgbuild/*
1.1.4.3
- Fixed flaw in
-Br
. - Fixed repititious
-Ad
output. - API Change: Aura/AurConnection renamed to Aura/AUR
- API Change: function names in Aura/Languages now have better names.
1.1.4.2
- Haskell deps have been moved back to
makedepends
. - haskell-http removed as dependency.
- API Change: function naming conventions in
Aura/Languages.hs
has been changed. The localisation guide was also updated to reflect this.
1.1.4.1
- Support for the $LANG environment variable.
- Aura will now pause before post-build installation if the package database lock exists. This means you can run multiple instances of Aura and avoid crashes.
1.1.4.0
- Serbian translation added. Thank you, Filip Brcic!
- Fixed bug that was breaking
aura -Ss
.
1.1.3.0
- Changed
--save
and--restore
to-B
and-Br
.--save
is now just an alias for-B
, but--restore
must be used with-B
. - New option
-Bc
for removing old unneeded package states. -Br
output is now sorted better and makes more sense.- Bash Parser can now properly parse
if
blocks, meaning packages that have conditional dependencies based on architecutre will now build properly. - API Change:
Aura.General
is nowAura.Core
- Dep Change:
haskell-url
no longer needed.
1.1.2.1
- Added message to
--save
.
1.1.2.0
- Bash parser completely rewritten.
- Bug fixes (thanks to the new parser)
1.1.1.0
- New option
--devel
. Rebuilds all devel packages installed. - Italian translation added! Thank you Bob Valantin!
- Support for
powerpill
added. It will be used if installed, unless the PACMAN variable is specifically set to something different. - Aura can now handle PKGBUILDs that produce multiple .pkg.tar files.
- Bug fixes
1.1.0.0
- New
--save
and--restore
options. - New option
-Ak
for showing PKGBUILD diffs when upgrading. - New option
--aurignore
for ignoring AUR packages. - Aura now reads
color.conf
. - Massive breaking API changes everywhere.
- Aura now runs on the Aura Monad.
- Code is quite cleaner now.
1.0.8.1
- Bash completions added.
- zsh completions added.
- Changed
--conf
to--viewconf
- Fixed bug involving “symlink” Haskell error.
1.0.8.0
- Moved certain general functions to
Aura.Utils
- Moved
-L
,-O
,-A
functions out ofaura.hs
. --hotedit
functionality altered (fix).- The license message is now more badass.
1.0.7.0
- New libraries: Aura.Time, Aura.State
- Moved
-C
functionality toAura.C
- New secret option you don’t get to find out about until 1.1
- Fixed manually alignment stupidity with
-Li
. - Bug fixes
1.0.6.0
- New libraries: ColourDiff, Data.Algorithm.Diff, Aura.Pkgbuilds
- Aura.AuraLib split into Aura.General, Aura.Build, Aura.Dependencies
- New secret option you don’t get to find out about until 1.1
1.0.5.0
- Fixed bug where packages with
+
in their name couldn’t be searched or built. -As
now allows multi-word searches, as it always should have.pacman-color
integration is more complete. Still does not read the color.conf directly.
1.0.4.0
- Added French translation. Thanks to Ma Jiehong!
- Added Russian translation. Thanks to Kyrylo Silin!
- Fixed bug where packages with dots in their name wouldn’t build.
1.0.3.2
- Moved haskell dependencies out of
makedepends
field and intodepends
field in PKGBUILD. Makedepends can usually be ignored after building, but haskell packages are a pain to rebuild and reregister at every build. It’s more realistic to just keep them installed. This is what other haskell packages in the AUR do as well. - Fixed pacman-color issues.
1.0.3.1
- Added
--auradebug
option.
1.0.3.0
- Compatibility with AUR 2.0 added.
- Portuguese translation added. Thanks to Henry “Ingvij” Kupty!
- Support for
pacman-color
added. Run sudo with-E
a la: sudo -E aura -Ayu - Fixed backslash parsing bug in
Bash
.
1.0.2.2
- Fixed parsing bug in
Bash
. If one package fell victim, a whole-Au
session would fail.
1.0.2.1
- Added License info to source files.
- Fixed virtual package recognition bug.
- Altered version conflict error message.
- Fixed bug in Bash parser that would occasionally break parsing.
1.0.2.0
- Bug fixes.
- Extended the Bash parser. PKGBUILDs that had bash variables in their dependency arrays will now be parsed correctly.
1.0.1.0
- German translation (use with –german). Thanks to Lukas Niederbremer!
- Spanish translation (use with –spanish) Thanks to Alejandro Gómez!
- Replaced regex-posix with regex-pcre.
-As
now highlights properly.- Moved a number of modules to
Aura/
1.0.0.0
- Fixed
-V
message in terminals other than urxvt. - New
haskell-ansi-terminal
library to do this.
0.10.0.0
-
Internet access moved to Network.Curl library.
-
Bash.hs
library created to help with PKGBUILD parsing. Can currently handle string expansions a la::“this-is-{awesome,neat}” => [“this-is-awesome”,“this-is-neat”]
0.9.2.3
- Dependency determining speed up.
- Added AUR URL to
-Ai
.
0.9.3.2
- Swedish translation. Thanks to Fredrik Haikarainen!
0.9.2.0
-Ai
and-As
!
0.9.1.0
-Au
is about 20 times faster.
0.9.?.?
- Polish translation. Thanks to Chris “Kwpolska” Warrick!
- Croatian translation. Thanks to Denis Kasak!
0.9.0.0
- New
-O
operation for dealing with orphan packages. - A man page!
0.8.0.0
- Help message now supports multiple languages.
- Broke “no overlapping options” convention.
-Cz
is now-Cb
.- New option
-Ad
. Lists all dependencies of an AUR package. This is to aid pre-building research. This option shows information you can’t get from looking at PKGBUILDS!
0.7.3.0
- New option
--conf
. Lets you quickly view your pacman.conf.
0.7.2.3
--log
is now-L
.- New option
-Ls
. Search the log file via a regex. - New option
-Li
. Reports information on a given package that has had any appearance in the log file.
0.7.0.0
--hotedit
option added.Shell
library added.
0.6.0.0
- Aura passes proper exit codes to the shell upon completion.