Commit graph

219 commits

Author SHA1 Message Date
Jguer
b01790f752
Moved StringSet definition to types package 2019-10-05 18:39:31 +01:00
Jguer
9e205eef4b
Move MultiError to types package 2019-10-05 17:35:46 +01:00
Jguer
5fa3557817
Store completions in yay's cache folder instead of build directory 2019-10-05 02:10:15 +01:00
Jguer
c5c2e906d3
Move completion to submodule 2019-10-05 02:02:30 +01:00
Jguer
2214bc0cb2
Revert "Merge pull request #778 from Morganamilo/group-transactions"
This reverts commit 6cd47dd83c, reversing
changes made to 16fddae8b6.

Signed-off-by: Jguer <me@jguer.space>
2019-10-04 19:42:17 +01:00
morganamilo
80e66ce479
Allow many aur packages to be installed at once.
After building an AUR package don't install it right away. Instead queue
it for install.

Then when a package comes along that does not have all of its
dependencies satisfied, install the queued packages before builting.

This allows a standard AUR update to be done with one transaction, while
building AUR packages with long dependency chains will work as normal.

This feature is behind the `--batchinstall` flag.
2019-06-17 14:25:59 +01:00
morganamilo
e01af5dfd6
Fixup asdeps logic 2019-06-17 13:15:54 +01:00
morganamilo
c717b61e69
Extract dep and exp setting to their own functions 2019-06-17 13:08:23 +01:00
morganamilo
5ac36ad97e
Ensure global pacman arguments are always used 2019-06-17 13:03:57 +01:00
Jordan Day
37f3309917 Defer clean and remove make 2019-06-11 08:54:24 -05:00
morganamilo
112046853b
Use correct case on go-alpm import 2019-04-23 16:53:20 +01:00
Jguer
e1bc834f5b
Fix #918. Get back in the groove 2019-03-29 22:05:04 +00:00
Motkov Kirill
14ac756298 Code improvements
- Removed yoda condition.
- Renamed/removed variables which shadows built-in names.
- Rewrited if-else-if-else chains to switch statements.
2019-03-10 16:36:01 +03:00
morganamilo
895788e01b
Update go-alpm 2019-02-14 20:45:18 +00:00
morganamilo
5ce4a49687
Update go-alpm 2019-02-04 16:56:02 +00:00
morganamilo
4ab7814af1
Revert "Merge pull request #767 from Morganamilo/merge-dep-pool-order"
This reverts commit c2aeb4bc4e, reversing
changes made to 1f1cee7023.
2019-01-15 18:43:46 +00:00
Jguer
5bcadc58ac
Fix tests and prepare for release 2018-12-01 15:03:46 +00:00
Joe Groocock
52bf777e67
Print errors on stderr
This makes a start on fixing https://github.com/Jguer/yay/issues/715
It is by no means a complete solution, but instead a start
2018-11-20 22:27:30 +00:00
Jguer
2ed7df4f5a
Unexport consts. Make default a literal
Signed-off-by: Jguer <me@jguer.space>
2018-10-22 21:00:16 +01:00
Anna
c2aeb4bc4e
Merge pull request #767 from Morganamilo/merge-dep-pool-order
Merge dep pool order and rework inner conflicts
2018-10-18 10:15:40 +01:00
dvejmz
d42f737849 Handle libalpm callbacks when checking DB satisfiers for a package
Hide provider menu when checking for the existence of a package in
the repos
2018-10-16 23:55:35 +01:00
morganamilo
4ff36fbd4b
Use depSolver in install 2018-10-13 17:04:21 +01:00
morganamilo
704e8406d1
Merge depOrder with depSolver
merge both dependency resolving parts into depSolver. The name was
choosen simply to not colide with the current code.

depSolver works but it not implemented in the install process and is
missing conflict checking.
2018-10-13 17:04:21 +01:00
Anna
6ee14d44b8
Merge pull request #738 from Morganamilo/fix#736
Rework cleanafter
2018-10-04 09:18:57 +01:00
Tom Swartz
ae7400890d Fix Typos 2018-10-02 16:30:18 -04:00
morganamilo
98e6caefef
Fix dangling src/ directory
Yay first calls 'makepkg --nobuild -fC' to update the pkver. Later on we
call 'makepkg -cf --noectract --noprepare --holdver' to actually build
the package.

Inbetween these two calls we keep the already extracted
sources to save time on the reextract and duplicated call to prepare
(pkgbuilds should not require user input but things such as linux-ck do
and calling prepare twice will actually cause them to promt twice)

We also have two checks. First we see if the package is already
installed and up to date (--needed) and secondly we check if the
package is already built.

If any of these conditions are met we skip building the package. This
leaves a dangling src/ directory as 'makepkg -c' was never ran.

Now if these conditions are met tell makepkg to cleanup and exit.
2018-09-27 15:55:43 +01:00
morganamilo
bf0ab3216a
Leave VCS files when using clean after 2018-09-27 15:55:43 +01:00
morganamilo
5c7d6fa3be
Fix --rebuild logic 2018-09-04 20:03:27 +01:00
morganamilo
1beeaaf299
Limit download concurrency to 25 threads 2018-09-04 20:03:23 +01:00
morganamilo
2b6a73041f
Fix redownload logic
--redownload was reversed and redownloaded the deps instead of the
targets.
2018-09-04 19:39:15 +01:00
morganamilo
0454e8918b
Add --aururl 2018-08-19 05:10:24 +01:00
Anna
23ff1e79df
Merge pull request #642 from Morganamilo/needed
skip build when package is up to date and --needed
2018-08-18 21:02:40 +01:00
morganamilo
0f324b37a6
Only print the clean number menu when needed
The input is only asked when needed, but the numbered package list was
still printed either way. This fixes it so the list is not shown unless
needed.
2018-08-18 20:50:20 +01:00
morganamilo
aca65e743a
parsePackageList: include pkgrel in version 2018-08-18 17:54:20 +01:00
morganamilo
907bf3a30e
skip build when package is up to date and --needed
Before --needed was left purerly to pacman. The problem with this is
that if a package is not in the cache, it will end up being build just
for pacman to skip over the install.

Now Yay will handle this and skip the build and install if --needed is
used. The inital clone and pkgver bumb is still donw.
2018-08-18 17:54:17 +01:00
morganamilo
cba56c3f9e
Use downloadPkgbuilds for -G 2018-08-18 17:12:42 +01:00
morganamilo
40776fa184
implement formatPkgbase as Base.String
Now that Base is its own type, it is much neater to have this as its
stringer function.
2018-08-18 17:05:12 +01:00
morganamilo
afee400662
Use formatPkgbase with getIncompatible
There was a possibly that getIncompatible could be broken when working
with split packages. After looking into it, this does not seem to be the
case, as long as we only work with pkgbases.

arch may be overriden inside of a package function. The global arch
array may be 'any' but package_foo could say arch=('x86_64'). If you
were running arm then should yay warn about this?

I have decided the answer is no. This is because makepkg doesn't care.
It would seem makepkg only checks the global arch array. This leads me
to believe that the global array should contain a the required arch.

Therefore the correct way to do the former example would be to declare
the global arch as 'x86_64' and then override package_bar with 'any'.

So all that we should do is properly use formatPkgbase to list all the
packages under the base.
2018-08-18 17:05:12 +01:00
morganamilo
cd21298355
Return srcinfos instead of using it as a parameter
Also, we do not do a pre and post pkgverbump pass anymore, so theres no
need to name it stale.
2018-08-18 17:05:12 +01:00
morganamilo
29fdf23f50
Remove unneeded code, consistent function names 2018-08-18 17:05:12 +01:00
morganamilo
43feb12c85
Merge handles.Aur and depOrder.Bases
depOrder.Aur contains the order in which AUR packages are to be
installed. While depOrder.bases contains the actual package data
organized by pkgbase.

deoOrder.AUR is kind of counterintuitive, as it only contains one
package from each package base.

For example if you were to install libc++{,abi,experimental},
depOrder.Aur would only contain one of those packages, which one
actually being quite random. depOrder.Bases[pkg.Pkgbase] will then be
looked up and everything under that slice would be installed.

This means that the only real use depOrder.Aur has, is to give the
pkgbase. So to cut out the middleman, lets merge .Aur and .Bases into
a single field.

Doing this has also heped to spot som subtle bugs:

Fix subtle split package errors.

The number menus now correctly list and respect (installed) for bases
that have atleast one of their packages installed.

Entering package names in number menus now always expects the pkgbase
name instead of the random package which happened to make it into .Aur.

--rebuild and --redownload correctly handles split packages.

formatPkgbase is also used more.
2018-08-18 17:05:12 +01:00
morganamilo
3dc350d3ac
Simplify formatPkgBase
Only pass the packages belonging to the desired pkgbase. Before our
entire list of every pkgbase had to be passed, as well as an example
package from the base we are looking for.

This lets use use formatPkgBase easier in other places outside of
install.

Many of the functions in install could also be simplified in a similar
way, although that has not been done in this commit.
2018-08-15 20:11:19 +01:00
morganamilo
284c87afb6
Parallelize gendb 2018-08-09 16:25:14 +01:00
morganamilo
ff5ed12181
Parallelize pkgbuild download 2018-08-09 16:25:14 +01:00
morganamilo
08ac9036ad
Ensure AUR upgrades actually use the AUR
Yay's dependency resolving takes provides into account. When upgrading
AUR package 'foo', if a repo package provides 'foo' then yay would get
confused and pull in the package providing 'foo' instead of the AUR
package.

This commit ensures AUR upgrades always exclusively check the AUR.
2018-08-03 23:15:01 +01:00
morganamilo
4a254303c5
Don't show .SRCINFO in diffs 2018-08-02 15:21:01 +01:00
morganamilo
2a60dd7052
Remove unneeded variables 2018-07-30 14:14:16 +01:00
morganamilo
9c882614a3
Rework completion
Bash seperates on whitespace, so the fish completion file
actually works for bash and zsh. So remove the concept of shells
entirley and just use the singular aur_sh.cache file.

If for some reason output without the repository data is needed, the
user could always just pipe it into awk like so
`yay -Pc | awk '{print $1}'`. Or perhaps a --quiet option could be added
where yay will strip the output itself.

The completion cache now updates when installing AUR packages. This is
done as a goroutine with no wait groups. This ensures the program will
never hang if there is a problem.

The completion is stil updated during -Pc but as long as an AUR package
has been installed recently it should not need to update.

The cache will now also wait 7 days instead of 2 before refreshing.
A refresh can be forced using -Pcc.
2018-07-26 13:54:10 +01:00
morganamilo
0ebaa8a750
Don't print nothing to do every time
When using nocombinedupgrade "there is nothing to do" is printed when
insinstalling repo packages. This is because as far as AUR
installer is concerned, there is nothing to do. Instead only print that
when doing a sysupgrade.
2018-07-24 00:13:34 +01:00
morganamilo
e28f4f3431
Refactor continueTask()
The main reason behind this is for future localisation. yes and no can
be set to the localized equivalent and it should just work.

This Refactor also changes the function in ways which make it much less
confusing.

The param is no longer reversed and changed to a boolean. Before you had
to pass in Yy to get a default of no and vice versa.

The function now retuens false for no and true for yes. Before it would
return true if the default option was choosen.
2018-07-23 13:49:45 +01:00