Yet another Yogurt - An AUR Helper written in Go
Go to file
morganamilo 6125dd979e
Fix versioned dep checking
Before versioned deps with the same name would be combined into a single
version range.

For example:
`foo>1 foo>3 foo<4 foo<5` would be merged into the range `3<foo<4`

This was assumed to be fine because of course no package is going to
have conflicting dependencies `foo>3 foo<1` but what was not thought
about it that a package or packages could provide multiple versions of
a provider. Java being example, you could have 8 and 9 provided for at
the same time.

This then causes a problem when you try to install two packages at once,
one requiring `java<8` and the other `java>9` when combined this leads
to a range that can not be satisfied.

Instead we now never merge dependencies but check them all individually.

We also make sure to pull in all already installed providers. The reason
for this is, before if a package did not apear in the dep tree we
assumed it to be satisfied because of the .FindSatisfier in the dep
resolving. So if you installed a package that needs `foo=1` and you
already had a package providing that it would not be in the dep tree and
we assume it is fine. But if you install a package that needs `foo=1`
and install a package that prvoides `foo=2` then foo will all of
a sudden be in the dep tree but only version 2 will be there. For this
reason we also load all the already installed packages in so that the
`foo=1` will be there.
2018-04-03 01:47:42 +01:00
.go Improve makefile 2018-03-23 05:36:19 +00:00
completions Add shell completion for --rebuild* flags 2018-03-27 17:46:04 +01:00
doc Merge pull request #309 from Morganamilo/fix#306 2018-03-31 22:50:11 +01:00
testdata/keys Do not depend on the Internet for keys_test.go 2018-03-23 14:17:47 -04:00
vendor/github.com Update vendor dependencies 2018-03-20 08:55:08 +01:00
.gitignore fix Makefile and fix README 2018-02-17 18:27:36 +00:00
callbacks.go Fix missing %s in callbacks.go 2018-03-23 04:45:59 +00:00
clean.go Use git ls-remote to track devel updates 2018-03-05 23:05:13 +00:00
cmd.go Try each search term against RPC if one fails 2018-04-02 15:27:07 +01:00
completions.go New print option, added new completion syntax, fixed fish completion 2018-01-21 02:48:40 +09:00
config.go Respect --color 2018-03-21 05:42:19 +00:00
conflicts.go Add missing err check 2018-03-22 19:48:43 +00:00
dependencies.go Fix versioned dep checking 2018-04-03 01:47:42 +01:00
download.go Fix -G for non split packages and support multilib 2018-03-11 23:23:24 +00:00
Gopkg.lock Update vendor dependencies 2018-03-20 08:55:08 +01:00
Gopkg.toml dep: prune all dependencies by default 2018-02-27 10:14:26 +00:00
install.go Fix versioned dep checking 2018-04-03 01:47:42 +01:00
ISSUE_TEMPLATE.md Fix strange linting applied 2018-02-28 14:11:40 +00:00
keys_test.go Do not depend on the Internet for keys_test.go 2018-03-23 14:17:47 -04:00
keys.go Handle pkgbuilds with an unsupported arch 2018-03-19 19:24:51 +00:00
LICENSE Create LICENSE 2016-09-05 03:43:29 +01:00
main.go Supress pacman error printing 2018-03-23 19:56:28 +00:00
Makefile Improve makefile 2018-03-23 05:36:19 +00:00
parser_test.go Add parseNumberMenu() 2018-03-10 03:04:44 +00:00
parser.go Default action (running yay without any args) is now to -Syu. 2018-03-31 22:55:15 +02:00
print_test.go Fixed tests for unified structure 2017-08-07 10:53:20 +01:00
print.go Only pass needed upgrades to deptree 2018-03-29 19:05:38 +01:00
query_test.go Fixed tests for unified structure 2017-08-07 10:53:20 +01:00
query.go Try each search term against RPC if one fails 2018-04-02 15:27:07 +01:00
README.md Update README for release 2018-03-28 19:59:02 +02:00
upgrade.go Only pass needed upgrades to deptree 2018-03-29 19:05:38 +01:00
utils.go Add utils.go 2018-03-22 16:38:21 +00:00
vcs_test.go Add parseNumberMenu() 2018-03-10 03:04:44 +00:00
vcs.go Rename functions to more standard go form and typo fix some variables 2018-04-01 19:54:33 +02:00

yay

Yet another Yogurt - An AUR Helper written in Go

Packages

yay yay-bin yay-git GitHub license

There's a point in everyone's life when you feel the need to write an AUR helper because there are only about 20 of them. So say hi to 20+1.

Yay was created with a few objectives in mind and based on the design of yaourt and apacman:

  • Have almost no dependencies.
  • Provide an interface for pacman.
  • Have yaourt like search.
  • Minimize user input
  • Know when git packages are due for an upgrade.

Features

  • AUR Tab completion
  • Download PKGBUILD from ABS or AUR
  • Ask all questions first and then start building
  • Search narrowing (yay linux header will first search linux and then narrow on header)
  • No sourcing of PKGBUILD is done
  • The binary has no dependencies that pacman doesn't already have.
  • Sources build dependencies
  • Removes make dependencies at the end of build process

Frequently Asked Questions

  • Yay does not display colored output. How do I fix it?
    Make sure you have the Color option in your /etc/pacman.conf #123

Example of Custom Operations

  • yay <Search Term> presents package selection menu
  • yay -Ps prints system statistics
  • yay -Pu prints update list
  • yay -Yc cleans unneeded dependencies
  • yay -G downloads PKGBUILD from ABS or AUR
  • yay -Y --gendb generates development package DB used for devel updates.

Changelog

v5.608

  • Updated Shell completions
  • Added -Qu to extended pacman options
  • Provides now supported in -Si
  • Improved build method
  • Improved conflict checking
  • PKGBUILDs with unsupported arch can force build now
  • PGP Key automatic importing
  • GPG option passing
  • db/name support readded

4.505

  • yay used to auto save permanent configuration options, now --save must be passed to save permanent configuration options
  • Competions updated
  • Number menu is now used to edit PKGBuilds and Clean Builds
  • Devel updates of -git packages now uses git ls-remote which makes it compatible with other platforms besides github.
  • Devel update checking is faster as well
  • Updated man page

3.440

  • Closed a lot of issues
  • Updated bash and zsh completions
  • New colour scheme
  • Small parsing fixes
  • Automatically delete package from transaction if $EDITOR exits with non-zero #140
  • Added check depends support

3.373

  • Version bump to V3 to reflect all of the changes to syntax
  • yay -Pd prints default config
  • yay -Pg prints current config
  • Fixes #174
  • Fixes #176
  • Fixes -G being unable to download split packages
  • Fixes #171
  • Fixes -Si failing when given a non existing package on https://github.com/Jguer/yay/pull/155
  • Fixes other small bugs on 2.350 without adding new features

2.350

  • Adds sudo loop (off by default, enable only by editing config file) #147
  • Adds replace package support #154 #134
  • Minor display improvements #150 for example
  • Fixes GenDB
  • Fixes Double options passing to pacman
  • Noconfirm works more as expected
  • Minor fixes and refactoring
  • Yay filters out the repository name if it's included.
  • Fixes #122

2.298

  • Adds #115

2.296

  • New argument parsing @Morganamilo (check manpage or --help for new information)
  • yay -Qstats changed to yay -Ps or yay -P --stats
  • yay -Cd changed to yay -Yc or yay -Y --clean
  • yay -Pu (--upgrades) prints update list
  • yay -Pn (--numberupgrades) prints number of updates
  • yay -G also possible through -Yg or -Y --getpkgbuild (yay -G will be discontinued once it's possible to add options to the getpkgbuild operation)
  • yay now counts from 1 instead of 0 @Morganamilo
  • Support for ranges when selecting packages @samosaara
  • Pacaur style ask all questions first and download first @Morganamilo
  • Updated vendor dependencies (Fixes pacman.conf parsing errors and PKGBUILD parsing errors)
  • Updated completions

2.219

  • Updated manpage
  • Updated --help
  • Fixed AUR update fails with large number of packages #59
  • Check if package is already in upgrade list and skip it. #60
  • Add -V and -h for flag parsing @AnthonyLam
  • Prevent file corruption by truncating the files @maximbaz
  • Print VCS error details @maximbaz
  • Using '-' doesn't raise an error @PietroCarrara
  • use Command.Dir in aur.PkgInstall; Fixes #32 #47 @afg984
  • Suffix YayConf.BuildDir with uid to avoid permission issues @afg984 (Not included in last changelog)

2.200

  • Development github package support readded

2.196

  • XDG_CONFIG_HOME support
  • XDG_CACHE_HOME support

2.165

  • Upgrade list now allows skipping upgrade install

2.159

  • Qstats now warns about packages not available in AUR

2.152

  • Fetching backend changed to Mikkel Oscar's Aur
  • Added support for development packages from github.
  • Pacman backend rewritten and simplified
  • Added config framework.

1.115

  • Added AUR completions (updates on first completion every 48h)

1.101

  • Search speed and quality improved #3

1.100

  • Added manpage
  • Improved search #3
  • Added -G to get pkgbuild from the AUR or ABS. #6
  • Fixed #8
  • Completed and decluttered zsh completions
  • If $EDITOR or $VISUAL is not set yay will prompt you for an editor #7

1.91

  • --downtop has been replaced with --bottomup (as is logical)
  • yay -Ssq and yay -Sqs now displays AUR packages with less information
  • Repository search now uses the same criteria as pacman

1.85

  • yay now does -Si for AUR packages
  • Fixed package install bugs

1.83

  • Added new dependency resolver for future features
  • Sort package statistics

1.80

  • yay now warns when installing orphan packages
  • Added orphan status to number menu
  • Qstats now checks if system has orphan packages installed

1.78

  • Added foreign package statistics to Qstats
  • Group installing is now possible
  • Better handling of package dependency installing

1.76

  • Fixed critical bug that prevented AUR dependencies from being installed.

1.70

  • Stable for everyday use
  • Bottom up package display
  • Number menu like yaourt/apacman
  • System package statistics