GithubHelp home page GithubHelp logo

jguer / yay Goto Github PK

View Code? Open in Web Editor NEW
10.4K 70.0 345.0 6.9 MB

Yet another Yogurt - An AUR Helper written in Go

License: GNU General Public License v3.0

Makefile 0.60% Go 92.71% Shell 6.57% Dockerfile 0.12%
yay aur-helper aur-packages pacman yaourt archlinux aur-completions aur pkgbuild pacaur

yay's People

Contributors

agendator avatar akiirui avatar alexwayfer avatar ferdi265 avatar fifis avatar jdholtz avatar jguer avatar juneezee avatar l4rzy avatar lucasjome avatar maximbaz avatar morganamilo avatar moson-mo avatar mvdan avatar nycex avatar optiligence avatar peachicetea avatar porrumentzio avatar qrwteyrutiyoup avatar r3v1 avatar samuelhnrq avatar seankhliao avatar simon04 avatar smolx avatar sosiska avatar tomswartz07 avatar transifex-integration[bot] avatar x1b6e6 avatar xyproto avatar zenixthehusky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yay's Issues

Surprising automatic choices made for user

$ yay -S dbeaver # <enter>
==> Edit PKGBUILD? (y/N) # <enter>
=> Make Dependencies: 
==> Repository dependencies: maven 
==> Continue? (Y/n) # <enter>
resolving dependencies...
:: There are 2 providers available for java-environment:
:: Repository extra
   1) jdk7-openjdk  2) jdk8-openjdk

Enter a number (default=1): # <no user action, it automatically proceeds>
looking for conflicting packages...

Packages (5) java-environment-common-2-2  jdk7-openjdk-7.u111_2.6.7-1  jre7-openjdk-7.u111_2.6.7-1  jre7-openjdk-headless-7.u111_2.6.7-1  maven-3.3.9-1

Total Installed Size:  106.87 MiB

:: Proceed with installation? [Y/n] # <no user action, it automatically proceeds>

Suggests "upgrading" AUR packages to already-installed versions

So in considering this behavior I eventually realized that -Su does not upgrade AUR packages, by design. Is that right? Is there a particular logic behind that?

Anyway, here's an example:

$ yay -Su
:: Starting full system upgrade...
 there is nothing to do
$ yay -Syu
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
:: Starting full system upgrade...
 there is nothing to do
:: Starting AUR upgrade...
==> qtwebkit: 2.3.4-4 -> 2.3.4-4
==> tor-browser-en: 6.5-1 -> 6.5-1
==> Proceed with upgrade? (Y/n)

Does not install AUR package on the first try when AUR dependencies exist

I've been seeing this bug for quite a while now (I'm running build from dev branch), but I was never sure it is not just a random fluke. Now I have a reliable way to reproduce the issue.

  • Remove all unused dependencies: $ yay -Cd
  • Take an AUR package that has AUR dependency, I believe it doesn't have to be -git package but the smallest package I happen to have now for this example is compton-conf-git (the AUR dependency is lxqt-build-tools-git - make sure it is not installed).
  • yay -S compton-conf-git shows repository dependencies cmake and qt5-tools, as well as AUR dependency lxqt-build-tools-git.
    • Repository dependencies are installed first.
    • AUR dependency is installed next.
    • After lxqt-build-tools-git is installed, the installation finishes "successfully".
    • The compton-conf-git is not installed, only its dependencies.
  • yay -S compton-conf-git again, and this time because all the dependencies are already installed, the compton-conf-git will actually be installed.

To reproduce again: yay -Rs compton-conf-git; yay -Cd.

I think installation finishes after one successful installation of AUR package, regardless of whether it was just one of dependencies or not.

I remember now that I was installing fonts-meta-extended-lt which has like 10 of AUR dependencies, and I had to rerun yay -S fonts-meta-extended-lt 10 times before the installation finally finished.

Upgrade enhancements: list packages from all sources at once, allow user to filter the list before upgrading

@Jguer more requirements for the upgrade process that I could think of:

When upgrading, yay lists the packages to upgrade and asks Y/n for confirmation. First it lists pacman packages, after upgrading it lists -git packages, and then after upgrading it lists AUR packages. Yaourt combines these and outputs one list with all these packages at once, and asks for the Y/n confirmation once.

Furthermore, while asking for Y/n confirmation, yaourt allows typing m and choosing which packages from the list you want to upgrade, and which to skip this time. This applies to packages from any source, pacman or AUR. Right now I have one AUR package that I know has a broken new version, and with yay I cannot upgrade other packages without upgrading this one.

Redo Argument parsing

Argument parsing is a mess as it wasn't made for so many options and now it's suppose to interface over with the config structure.

Yay creates executable default config?

When I ran yay for the first time, it created a default config file. It works fine, but it has the execute permission bit enabled for some reason. Since it's definitely not a script, I don't think this should be the case.

I'd be happy to fix this if you'd like. I'm relatively confident that this is an accident though, so I might just start working on it.

Request: Equivalent of Yaourt's pacdiffviewer (-C)

yaourt -C, or sudo pacdiffviewer, checks the system for .pacorig, .pacnew, .pacsave, and orphaned files. If found, it facilitates deleting, merging (with a user-set mergetool), or replacing relevant files.

The script is available on github.

The most important type of file from those listed above is the .pacnew class.

man page

I would love to see a man page for yay ๐Ÿ˜ƒ

Add --noedit flag

Currently using pacaur, and I'd like to request a --noedit flag added to yay. I've got some of my installation process scripted and have a few AUR packages I'd like to continue to have my scripted installations "unattended" if switching to yay.

Use $XDG_CONFIG_HOME instead of ~/.config/yay?

The code currently looks in the path ~/.config/yay for the config.json file. That's the default location of the environment variable $XDG_CONFIG_HOME. The advantage of doing so is that users who choose to keep their config in abnormal locations can set the one variable and all of their tools will look in the right place. Since I think the goal is to use the user's configuration directory instead of just dumping crap right in their home directory, it seems like it would fit.

Additionally, changing it would be extremely unlikely to break existing installations, as those two paths should be identical for most users. Of course, if $XDG_CONFIG_HOME is unset, it should use the current hard-coded path.

I'd be happy to take this on myself if the change is wanted.

Some messages are not visible when term have white background

For exemple, in LocalStatistics method, the warnings use black background color, and default foreground color. In a white on black term, the message is written black on black !

yay/actions.go

Line 228 in 1ebe472

fmt.Printf("\x1b[1;31;40mWarning: \x1B[1;33;40m%s\x1b[0;;40m is orphaned.\x1b[0m\n", res.Name)

fmt.Printf("\x1b[1;31;40mWarning: \x1B[1;33;40m%s\x1b[0;;40m is orphaned.\x1b[0m\n", res.Name)

Naming convention for yay's AUR packages

Feels like the yay AUR package should really be named yay-git, while the yay-bin should be called just yay. Not sure if it is possible to rename packages, but if you agree on this suggestion, consider doing it earlier than later ๐Ÿ™‚

Just a suggestion, maybe it's something to do after #17.

Request: Column-oriented upgrade preview (yaourt-style)

I don't know about you or other users, but I like yaourt's column-oriented preview of upgrades, showing both the current and upcoming versions/releases of packages, and find it much easier to scan visually than the more block-quote style used by yay.

yay:

Packages (55) alsa-utils-1.1.3-2  aws-cli-1.11.51-1  bash-4.4.012-2  bind-tools-9.11.0.P3-2  btrfs-progs-4.9.1-1  bzip2-1.0.6-6
              ca-certificates-mozilla-3.29.1-1  cups-filters-1.13.4-1  dbus-1.10.16-1  fixesproto-5.0+9+g4292ec1-1  fzf-0.16.5-1  glib2-2.50.3-1
              gnupg-2.1.18-2  gssproxy-0.6.2-1  imagemagick-6.9.7.9-1  inkscape-0.92.1-1  iproute2-4.10.0-1  kpackage-5.31.0-2  lib32-mesa-17.0.0-1
              lib32-mesa-libgl-17.0.0-1  libao-1.2.2-1  libarchive-3.3.0-1  libdatrie-0.2.10-2  linux-4.9.11-1  linux-firmware-20170217.12987ca-1
              linux-zen-4.9.11-2  mesa-17.0.0-1  mesa-libgl-17.0.0-1  mesa-vdpau-17.0.0-1  nss-3.29.1-1  perl-net-http-6.13-1  poppler-0.52.0-1
              poppler-glib-0.52.0-1  poppler-qt5-0.52.0-1  pyqt5-common-5.8-1  python-botocore-1.5.14-1  python-chardet-2.3.0-4  python-hyperframe-4.0.2-1
              python-jsbeautifier-1.6.10-1  python-lxml-3.7.3-1  python-pyqt5-5.8-1  python-sip-4.19.1-1  python2-chardet-2.3.0-4  python2-lxml-3.7.3-1
              python2-virtualenv-15.1.0-1  qca-qt4-2.1.3-1  qca-qt5-2.1.3-1  signon-ui-0.17+20150611-1  sip-4.19.1-1  snappy-1.1.4-1
              startup-notification-0.12-5  xorg-server-1.19.1-5  xorg-server-common-1.19.1-5  xorg-server-xvfb-1.19.1-5  youtube-dl-2017.02.17-1

yaourt:

==> Package upgrade only (new release):
core/bash                     4.4.012-1             1 -> 2
core/bzip2                    1.0.6-5               5 -> 6
core/gnupg                    2.1.18-1              1 -> 2
extra/alsa-utils              1.1.3-1               1 -> 2
extra/bind-tools              9.11.0.P3-1           1 -> 2
extra/kpackage                5.31.0-1              1 -> 2
extra/libdatrie               0.2.10-1              1 -> 2
extra/python2-chardet         2.3.0-3               3 -> 4
extra/python-chardet          2.3.0-3               3 -> 4
extra/startup-notification    0.12-4                4 -> 5
extra/xorg-server             1.19.1-2              2 -> 5
extra/xorg-server-common      1.19.1-2              2 -> 5
extra/xorg-server-xvfb        1.19.1-2              2 -> 5
aur/qtwebkit                  2.3.4-4               4 -> 5

==> Software upgrade (new version) :
core/btrfs-progs              4.9-1                 -> 4.9.1-1
core/ca-certificates-mozilla  3.28.1-1              -> 3.29.1-1
core/dbus                     1.10.14-1             -> 1.10.16-1
core/glib2                    2.50.2-1              -> 2.50.3-1
core/gssproxy                 0.6.1-1               -> 0.6.2-1
core/iproute2                 4.9.0-1               -> 4.10.0-1
core/libarchive               3.2.2-4               -> 3.3.0-1
core/linux                    4.9.8-1               -> 4.9.11-1
core/linux-firmware           20161222.4b9559f-2    -> 20170217.12987ca-1
core/nss                      3.28.1-1              -> 3.29.1-1
extra/cups-filters            1.13.3-1              -> 1.13.4-1
extra/fixesproto              5.0-3                 -> 5.0+9+g4292ec1-1
extra/imagemagick             6.9.7.8-1             -> 6.9.7.9-1
extra/inkscape                0.92.0-6              -> 0.92.1-1
extra/libao                   1.2.0-1               -> 1.2.2-1
extra/linux-zen               4.9.9-1               -> 4.9.11-2
extra/mesa                    13.0.4-1              -> 17.0.0-1
extra/mesa-libgl              13.0.4-1              -> 17.0.0-1
extra/mesa-vdpau              13.0.4-1              -> 17.0.0-1
extra/perl-net-http           6.12-1                -> 6.13-1
extra/poppler                 0.51.0-1              -> 0.52.0-1
extra/poppler-glib            0.51.0-1              -> 0.52.0-1
extra/poppler-qt5             0.51.0-1              -> 0.52.0-1
extra/pyqt5-common            5.7.1-3               -> 5.8-1
extra/python2-lxml            3.7.2-1               -> 3.7.3-1
extra/python2-virtualenv      15.0.3-2              -> 15.1.0-1
extra/python-lxml             3.7.2-1               -> 3.7.3-1
extra/python-pyqt5            5.7.1-3               -> 5.8-1
extra/python-sip              4.19-1                -> 4.19.1-1
extra/qca-qt4                 2.1.1-7               -> 2.1.3-1
extra/qca-qt5                 2.1.1-7               -> 2.1.3-1
extra/signon-ui               0.17+15.10.20150810-2 -> 0.17+20150611-1
extra/sip                     4.19-1                -> 4.19.1-1
extra/snappy                  1.1.3-2               -> 1.1.4-1
community/aws-cli             1.11.48-1             -> 1.11.51-1
community/fzf                 0.16.4-1              -> 0.16.5-1
community/python-botocore     1.5.11-1              -> 1.5.14-1
community/python-hyperframe   4.0.1-2               -> 4.0.2-1
community/python-jsbeautifier 1.6.9-1               -> 1.6.10-1
community/youtube-dl          2017.02.14-1          -> 2017.02.17-1
multilib/lib32-mesa           13.0.4-2              -> 17.0.0-1
multilib/lib32-mesa-libgl     13.0.4-2              -> 17.0.0-1

Upgrade failes when Pkgrel is floating point

In Manjaro Linux the latest wpa_supplicant update was from version 1:2.6-8.1 to 1:2.6-11.
This caused a problem because in mikkeloscar's gopkgbuild this was not allowed resulting in this

wpa_supplicant strconv.Atoi: parsing "8.1": invalid syntax
0  core/wpa_supplicant                          panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x63ceaa]

goroutine 1 [running]:
main.upSlice.Print(0xc4201c8000, 0x1, 0x1, 0x0)
        /home/jguer/go/src/github.com/jguer/yay/upgrade.go:82 +0x49a
main.upgradePkgs(0x0, 0x0, 0x0, 0x0, 0x0)
        /home/jguer/go/src/github.com/jguer/yay/upgrade.go:292 +0x1de
main.main()
        /home/jguer/go/src/github.com/jguer/yay/cmd.go:245 +0x898

I addressed this issue with mikkeloscar and he fixed it by using a Version struct instead of an int for pkgrel in this PR.

This requires a small adjustment in yay for printing it correctly.

`yay -Cd` fails with: /usr/bin/pacman: unrecognized option '--noutil.Conf.rm'

I'm on the dev branch. Pretty sure it's not a duplicate ๐Ÿ˜„

โฏ  yay -Cd
cargo: 7MB
cmake: 30MB
dhclient: 1MB
gendesk: 5MB
gnome-themes-standard: 4MB
grunt-cli: 0MB
libdvdcss: 0MB
libutempter: 0MB
mcpp: 0MB
ntfs-3g: 1MB
opencolorio: 2MB
perl-image-exiftool: 10MB
phonon-qt5-gstreamer: 0MB
python2-pyopenssl: 0MB
qt5-tools: 18MB
speech-dispatcher: 1MB
==> Confirm Removal? [Y/n] y
/usr/bin/pacman: unrecognized option '--noutil.Conf.rm'
exit status 1

yay can't update AUR packages. Too many requests

Get https://aur.archlinux.org/rpc/?v=5&type=info&arg[]=bluez-alsa-git&arg[]=xde-session-git&arg[]=breeze-lxqt&arg[]=unity-like-plank-theme&arg[]=xde-menu-git&arg[]=plymouth-theme-arch-logo-gnomish&arg[]=python-iwlib&arg[]=gsignond-plugin-sasl-git&arg[]=icewm-git&arg[]=libcolumbus&arg[]=lxqt-openssh-askpass-git&arg[]=plasma5-applet-awesome-widgets&arg[]=lemonbar-xft-git&arg[]=texiteasy&arg[]=ttf-source-serif-pro-ibx&arg[]=gala-git&arg[]=indicator-kdeconnect&arg[]=ipager&arg[]=libnsutils-git&arg[]=acpitool&arg[]=archlabs-rofi-themes-git&arg[]=uzbl-core-next-git&arg[]=liri-wallpapers-git&arg[]=mpc-qt-git&arg[]=neovim-gtk3-git&arg[]=topmenu-mozilla-git&arg[]=xubuntu-artwork&arg[]=switchboard-plug-applications-git&arg[]=upterm&arg[]=wmutils-git&arg[]=shiki-colors-revival-git&arg[]=exaile-git&arg[]=neovim-gnome-terminal-wrapper&arg[]=winetricks-git&arg[]=cb-pipemenus-git&arg[]=cl-ppcre&arg[]=qtile-python3-git&arg[]=webkitgtk2&arg[]=xfce-theme-blackbird-git&arg[]=clementine-qt5-git&arg[]=vlc-clang-git&arg[]=qt-installer-framework&arg[]=ccsm-gtk3-git&arg[]=liri-platformtheme-git&arg[]=herbstluftwm-git&arg[]=jdk-devel&arg[]=otf-erewhon-kagayaki&arg[]=bash-preexec-git&arg[]=dwb-git&arg[]=fehlstart-git&arg[]=rescepy-git&arg[]=liri-text-git&arg[]=turses-git&arg[]=aconfmgr-git&arg[]=kirigami&arg[]=nerd-fonts-git&arg[]=tokyocabinet&arg[]=kupfer-git&arg[]=switchboard-git&arg[]=sxhkd-git&arg[]=lutris&arg[]=ttf-alef-ibx&arg[]=insync-nautilus&arg[]=vala-panel-extras-weather-git&arg[]=vncproto&arg[]=file-commander-git&arg[]=switchboard-plug-security-privacy-git&arg[]=ttf-ms-win10-zh_tw&arg[]=perl-gtk3-webkit&arg[]=rkward-frameworks-git&arg[]=sddm-theme-abstractdark-git&arg[]=ttf-ms-win10-zh_cn&arg[]=libwnck+-git&arg[]=osx-arc-white&arg[]=perl-gtk3&arg[]=jre-devel&arg[]=notify-when-done-i3-git&arg[]=xfce-theme-greybird-git&arg[]=lightdm-webkit-theme-google-git&arg[]=lilyterm-git&arg[]=pantheon-notes-bzr&arg[]=perl-glib-object-introspection&arg[]=scudcloud-git&arg[]=leiningen&arg[]=libtimezonemap&arg[]=openbox-shiki-colors-themes&arg[]=switchboard-plug-sharing-git&arg[]=libfm-qt-git&arg[]=swc-git&arg[]=xfce4-terminal-colors-seoul256&arg[]=chromium-dev&arg[]=ghetto-skype&arg[]=xdwm&arg[]=libast&arg[]=pantheon-screenshot-git&arg[]=ttf-roboto-ibx&arg[]=meliora-openbox-themes&arg[]=fluxbox-styles-mint-x&arg[]=general-preprocessor&arg[]=switchboard-plug-datetime-git&arg[]=jgmenu&arg[]=macos-arc-white-theme&arg[]=zenbooru&arg[]=byobu&arg[]=finch-hg&arg[]=ido&arg[]=archlinux-lxdm-theme-full&arg[]=google-talkplugin&arg[]=xombrero-git&arg[]=ly-git&arg[]=neovim-git&arg[]=ob-autostart&arg[]=python-pytaglib&arg[]=qutepart-git&arg[]=xfce4-wmdock-plugin&arg[]=lttng-ust&arg[]=wingpanel-indicator-power-git&arg[]=archlabs-pipemenus-git&arg[]=aurget&arg[]=blackmagic-decklink-sdk&arg[]=wingpanel-standalone-git&arg[]=enhanced-ctorrent&arg[]=linux-pf-haswell&arg[]=plenv&arg[]=topinambour-git&arg[]=pantheon-agent-polkit-bzr&arg[]=vala-panel-appmenu-valapanel-git&arg[]=yabar-git&arg[]=libc++abi&arg[]=libxvnc&arg[]=lightdm-webkit-theme-sequoia-git&arg[]=lightdm-webkit2-clean&arg[]=uppity-git&arg[]=gpodder3&arg[]=lib32-freetype2-infinality-ultimate&arg[]=mp-5-gtk&arg[]=latte-dock-git&arg[]=netsurf-git&arg[]=zuki-themes-git&arg[]=tsscreenlock&arg[]=xavs&arg[]=exa-git&arg[]=switchboard-plug-locale-git&arg[]=yaourt-git&arg[]=gsignond-plugin-oauth-git&arg[]=ttf-aller&arg[]=grub-customizer&arg[]=velox-git&arg[]=dkms-sorted&arg[]=gimp-plugin-resynthesizer-git&arg[]=liblxqt-git&arg[]=screenshot-tool-bzr&arg[]=vim-promptline-git&arg[]=xde-helpers&arg[]=evopop-icon-theme&arg[]=gtk-theme-iris-light-git&arg[]=qtcam-git&arg[]=linux-git-docs&arg[]=moneydance&arg[]=plasma5-applets-places-widget&arg[]=ttf-noto-fonts-emoji-ib&arg[]=xfwm4-theme-breeze&arg[]=bunsen-common-git&arg[]=contemporary-widgets&arg[]=libcompizconfig-git&arg[]=pantheon-polkit-agent-git&arg[]=qmenu_hud-git&arg[]=emerald-gtk3&arg[]=ne&arg[]=nm-tray-git&arg[]=ttf-carlito-kagayaki&arg[]=xfdashboard-git&arg[]=nodejs-electron-rebuild&arg[]=openbox-themes-ceti-2&arg[]=topmenu-qt-git&arg[]=vocal-git&arg[]=droidcam&arg[]=libhubbub-git&arg[]=lua51-luacheck&arg[]=zimg-git&arg[]=bunsen-utilities-git&arg[]=kagayaki-fonts-base&arg[]=volnoti&arg[]=python3-memoizedb&arg[]=rvi-git&arg[]=chromaprint-fftw&arg[]=emojione-picker-git&arg[]=kvantum-qt5&arg[]=fvwm-xdg-menu-git&arg[]=switchboard-plug-mouse-touchpad-git&arg[]=tomorrow-theme-gedit-git&arg[]=numix-themes-osx-git&arg[]=ttf-droid-ib&arg[]=gnome-shell-extension-workspaces-to-dock-git&arg[]=lua51-posix&arg[]=mdsplib&arg[]=burp-backup&arg[]=depot-tools-git&arg[]=wingo-git&arg[]=liri-workspace-git&arg[]=tomorrow-theme-vim-git&arg[]=ttf-yanone-kaffeesatz-ibx&arg[]=solar-python&arg[]=statnot&arg[]=ttf-sansation-ibx&arg[]=yltra-flat-icons-git&arg[]=argparser-java&arg[]=cmst-git&arg[]=gcsvedit&arg[]=crowd-greeter&arg[]=qmplay2-git&arg[]=screengrab-git&arg[]=slim-xdm&arg[]=solus-icon-theme-git&arg[]=cairo-infinality-ultimate&arg[]=dzen2-xft-xpm-xinerama-git&arg[]=lxqt-powermanagement-git&arg[]=proot&arg[]=qoauth-git&arg[]=xtitle-git&arg[]=arc-kde-git&arg[]=gitodo-git&arg[]=paper-gtk-theme-git&arg[]=tp_smapi-dkms&arg[]=libqtxdg-git&arg[]=nut-multimedia-git&arg[]=telepathy-kdeconnect-git&arg[]=cmake-extras&arg[]=lxqt-connman-applet-git&arg[]=sddm-maia-theme&arg[]=lxqt-build-tools-git&arg[]=lxqt-qtplugin-git&arg[]=oxygen-gtk3-git&arg[]=fluxbox-style-solarized-light&arg[]=shellcheck-git&arg[]=fzf-extras-git&arg[]=juffed-qt5-git&arg[]=xreader&arg[]=libgee06&arg[]=openbox-theme-bluebird-openboxed&arg[]=qt5-accountsservice-git&arg[]=yay&arg[]=libindicate&arg[]=lxqt-config-git&arg[]=python-tweepy&arg[]=ttf-ubuntu-font-family-ib&arg[]=numix-themes-archblue-git&arg[]=switchboard-plug-user-accounts-git&arg[]=ttf-sorts-mill-goudy-ibx&arg[]=libgamma&arg[]=pywebkitgtk&arg[]=python2-mygpoclient&arg[]=ruby-memoize&arg[]=vim-devicons&arg[]=goocanvas1&arg[]=otter-browser-git&arg[]=android-studio&arg[]=wingpanel-indicator-bluetooth-git&arg[]=lightdm-webkit-theme-userdock&arg[]=pac&arg[]=switchboard-plug-bluetooth-git&arg[]=ttf-ms-win10-thai&arg[]=grub-hook&arg[]=gtk-theme-elementary-git&arg[]=lxqt-about-git&arg[]=xfce-theme-cobibird&arg[]=trackma-git&arg[]=ttf-hack-ibx&arg[]=ttf-symbola-ib&arg[]=lightdm-webkit-theme-aether&arg[]=shimmer-wallpapers-git&arg[]=gtk-theme-iris-dark-git&arg[]=plasma5-applets-yahoo-weather-widget&arg[]=python3-aria2jsonrpc&arg[]=android-sdk-platform-tools&arg[]=vertex-themes-git&arg[]=cl-alexandria&arg[]=vo-aacenc&arg[]=terminology-git&arg[]=visual-studio-code-insiders&arg[]=nvm&arg[]=crypto++-git&arg[]=fbmenugen&arg[]=google-breakpad-git&arg[]=plymouth-theme-ozunity-gnomish&arg[]=gis-weather-git&arg[]=plank-theme-arc&arg[]=tunesviewer&arg[]=i3ipc-python-git&arg[]=obmenu-generator&arg[]=rbenv&arg[]=xonsh-git&arg[]=mikutter&arg[]=lxqt-policykit-git&arg[]=libbdplus&arg[]=xfce4-snw-plugin&arg[]=dee&arg[]=giteye&arg[]=ld-lsb&arg[]=xdg-launch&arg[]=xviewer-plugins&arg[]=jdk&arg[]=otf-tex-gyre-kagayaki&arg[]=pantheon-camera-git&arg[]=libindicate-gtk2&arg[]=lightdm-pantheon-greeter-git&arg[]=spotify&arg[]=clx-git&arg[]=ttf-source-sans-pro-ibx&arg[]=libmysofa&arg[]=ruby-delayer&arg[]=scratch-text-editor-git&arg[]=pyrescene-hg&arg[]=python-mpd2&arg[]=android-ndk&arg[]=lxqt-sudo-git&arg[]=mate-tweak-git&arg[]=packpack&arg[]=ruby-instance_storage&arg[]=thunarx-python&arg[]=contractor-git&arg[]=dmenuv-git&arg[]=ffmpeg-full-git&arg[]=ttf-ms-win10-korean&arg[]=yad&arg[]=trizen&arg[]=ttf-vlgothic-ibx&arg[]=ts-polkitagent&arg[]=vala-panel-appmenu-mate-git&arg[]=gnome-osx-ii-nt-gtk-theme&arg[]=gtk-theme-united-gnome&arg[]=qdmenu&arg[]=ttf-dejavu-kagayaki&arg[]=windows10-tint2rc&arg[]=archlabs-openbox-themes-git&arg[]=lightdm-mini-greeter&arg[]=pantheon-print-git&arg[]=obfilebrowser&arg[]=pbget&arg[]=vala-panel-extras-xkb-git&arg[]=msbuild-15-bin&arg[]=cerebro-git&arg[]=notion-git&arg[]=archlabs-arc-themes-git&arg[]=archlinux-lxqt-theme&arg[]=switchboard-plug-power-git&arg[]=ttf-fira-sans-ibx&arg[]=python2-podcastparser&arg[]=tilix-git&arg[]=vimix-gtk-themes-git&arg[]=xi-core-git&arg[]=bauerbill&arg[]=libaom-git&arg[]=openbox-arc-git&arg[]=geany-gtk3-git&arg[]=gnome-shell-extension-extend-left-box-git&arg[]=humanity-icon-theme&arg[]=breath-icon-theme&arg[]=findbrokenpkgs&arg[]=neovim-qt-git&arg[]=wingpanel-indicator-datetime-git&arg[]=wld-git&arg[]=xenlism-wildfire-icon-theme-git&arg[]=zeronet&arg[]=gtkd&arg[]=lib32-gdbm&arg[]=mist-icon-theme&arg[]=android-google-repository&arg[]=cmake-modules-elementary-git&arg[]=theshell&arg[]=compiz-fusion-plugins-main-git&arg[]=compton-conf-git&arg[]=keepassxc-git&arg[]=visual-studio-code&arg[]=fluxdgmenu&arg[]=rsound&arg[]=topmenu-gtk-git&arg[]=vala-panel-extras-gtop-git&arg[]=wingpanel-indicator-a11y-git&arg[]=xde-ctools&arg[]=libcommuni-git&arg[]=lxqt-notificationd-git&arg[]=ttf-fira-mono-ibx&arg[]=plasma5-applets-redshift-control-git&arg[]=vim-csv-git&arg[]=xfce4-terminal-base16-colors-git&arg[]=xfce4-terminal-colors-jellyx&arg[]=auto-auto-complete&arg[]=bear&arg[]=luv-icon-theme-git&arg[]=elementary-wallpapers-git&arg[]=forecast-git&arg[]=libbs2b&arg[]=bleachbit-git&arg[]=ruby-kwalify&arg[]=switchboard-plug-printers-git&arg[]=numix-themes-darkblue-git&arg[]=perl-gtk2-unique&arg[]=mate-panel-sntray&arg[]=moc-pulse-git&arg[]=obvious-git&arg[]=faba-icon-theme-git&arg[]=iat&arg[]=libindicate-gtk3&arg[]=switchboard-plug-network-git&arg[]=switchboard-plug-parental-controls-git&arg[]=archlinux-themes-sddm&arg[]=numix-themes-blue-git&arg[]=ttf-ms-win10-sea&arg[]=flatplat-theme-base16&arg[]=gtk-theme-numix-sx&arg[]=lubuntu-artwork&arg[]=vim-airline-gruvbox-git&arg[]=arc-icon-theme-git&arg[]=lightdm-slick-greeter&arg[]=gplugin&arg[]=perl-test-needsdisplay&arg[]=python-evdev&arg[]=triggerhappy-git&arg[]=xfce-slimlock&arg[]=faba-mono-icons-git&arg[]=gnome-osx-ii-gtk-theme&arg[]=plasma-theme-archlinux&arg[]=ttf-iosevka-ibx&arg[]=unity-api&arg[]=footnote-bzr&arg[]=fusion-icon-git&arg[]=pantheon-session-bzr&arg[]=mimeo&arg[]=xfce4-hotcorner-plugin&arg[]=chrome-shutdown-hook&arg[]=dinu-git&arg[]=mate-snw-plugin&arg[]=pantheon-calculator-git&arg[]=wallch&arg[]=wpgtk-git&arg[]=ghostwriter-git&arg[]=mujs&arg[]=pacgem&arg[]=linux-pf-headers&arg[]=nocturn&arg[]=wingpanel-indicator-notifications-git&arg[]=eidete-bzr&arg[]=enki-editor-git&arg[]=fzf-git&arg[]=pantheon-terminal-git&arg[]=pidgin-hg&arg[]=ttf-unfonts-core-ibx&arg[]=cinnamon-menus-git&arg[]=lightdm-webkit2-theme-bevel-git&arg[]=sway-dmenu-desktop&arg[]=ruby-twitter-text&arg[]=python2-beautifulsoup3&arg[]=vala-panel-git&arg[]=owlman&arg[]=pantheon-dpms-helper-bzr&arg[]=pantheon-files-bzr&arg[]=kitty-git&arg[]=oomox-git&arg[]=adjbacklight&arg[]=gsignond-extension-pantheon-git&arg[]=sntray-plugin-translations&arg[]=tscheckpass&arg[]=ttf-roboto-mono-ibx&arg[]=libunity&arg[]=mime-archpkg&arg[]=papirus-icon-theme-git&arg[]=plasma5-applets-todolist&arg[]=chicken-git&arg[]=gnome-shell-extension-appindicator-git&arg[]=goffice0.8&arg[]=argon&arg[]=nsgenbind-git&arg[]=qtermwidget-git&arg[]=sublime-text-nightly&arg[]=xfce4-composite-editor&arg[]=xfce4-panel-sntray&arg[]=xviewer&arg[]=xdg-traymenu&arg[]=openbox-theme-adwaita&arg[]=fluxbox-arc-dark&arg[]=qtcurve-git&arg[]=powerline-i3-git&arg[]=choqok-git&arg[]=netctlgui-helper&arg[]=vala-panel-sntray&arg[]=pcmanfm-qt-git&arg[]=perl-goo-canvas&arg[]=udisks&arg[]=perceptia-git&arg[]=gummi-gtk3-git&arg[]=linux-git&arg[]=tomorrow-theme-qtcreator-git&arg[]=python3-colorsysplus&arg[]=remarkable&arg[]=super-flat-remix-icon-theme&arg[]=ulauncher-git&arg[]=vim-airline-git&arg[]=gtk-theme-e17gtk-git&arg[]=linux-git-headers&arg[]=skim-git&arg[]=ts-bt&arg[]=lumina-desktop-git&arg[]=update-grub&arg[]=bunsen-openbox-pipemenus-git&arg[]=fluxbox-style-debian-dark&arg[]=google-earth&arg[]=osu-lazer-git&arg[]=argparser&arg[]=lightdm-webkit-theme-wisp&arg[]=netsurf-buildsystem-git&arg[]=lightdm-webkit-theme-tendou&arg[]=vala-panel-extras-battery-git&arg[]=breath-dark-icon-theme&arg[]=mate-indicator-applet&arg[]=windows10-icons&arg[]=ourico&arg[]=communi-desktop-git&arg[]=compiz-core-git&arg[]=liri-wayland-git&arg[]=archdroid-icon-theme&arg[]=libnsbmp-git&arg[]=lua51-luassert&arg[]=qterminal-git&arg[]=bamf-ubuntu&arg[]=granite-git&arg[]=libunity-misc&arg[]=remacs-git&arg[]=switchboard-plug-desktop-git&arg[]=ttf-font-awesome&arg[]=cerbere-git&arg[]=libvterm-bzr&arg[]=toxygen-git&arg[]=fbdesk&arg[]=kwaterfoxhelper&arg[]=nord-xfce-terminal&arg[]=rust-dwm-status&arg[]=xorg-xdm-xlogin&arg[]=bspwm-git&arg[]=liri-shell-git&arg[]=plasma-pk-updates-git&arg[]=sutils-git&arg[]=indicator-sound&arg[]=pantheon-applications-menu-git&arg[]=perl-linux-inotify2&arg[]=dotnet-host&arg[]=indicator-application&arg[]=ruby-delayer-deferred&arg[]=ttytter&arg[]=contemporary-icons&arg[]=libemf&arg[]=plymouth-theme-arch-charge&arg[]=pantheon-music-git&arg[]=ttf-wqy-microhei-ibx&arg[]=xweston-git&arg[]=pmenu&arg[]=pylibgamma&arg[]=sddm-config-editor-git&arg[]=shine&arg[]=ttf-iosevka-pack&arg[]=libcss-git&arg[]=libmygpo-qt5-git&arg[]=libsysstat-git&arg[]=xdgmenumaker&arg[]=budgie-sntray&arg[]=vala-panel-appmenu-budgie-git&arg[]=vim-colorschemes&arg[]=arc-dark-xfce4-terminal&arg[]=codelite&arg[]=compiz-gtk-git&arg[]=automounter&arg[]=ppub&arg[]=scenic-git&arg[]=fluxbox-style-numix&arg[]=pkgbuilder-git&arg[]=webkitgtk&arg[]=moka-icon-theme-git&arg[]=numix-gtk-theme-git&arg[]=plasma5-applets-eventcalendar&arg[]=weechat-git&arg[]=kawaii-player&arg[]=openbox-theme-arcbox&arg[]=osx-arc-shadow&arg[]=wingpanel-indicator-sound-git&arg[]=palemoon&arg[]=plasma5-applets-redshift-git&arg[]=rplay&arg[]=vol-git&arg[]=libopenssl-1.0-compat&arg[]=temps&arg[]=ts-bugreport&arg[]=xfce4-windowck-plugin&arg[]=dmenu-git&arg[]=lightdm-webkit-theme-archlinux&arg[]=switchboard-plug-a11y-git&arg[]=libpurple-hg&arg[]=android-sdk&arg[]=apacman-utils&arg[]=lib32-python2&arg[]=python3-aur&arg[]=topmenu-gtk3-git&arg[]=ttf-ms-win10-other&arg[]=argparser-doc&arg[]=lxqt-session-git&arg[]=pyenv&arg[]=bunsen-exit-ng-git&arg[]=git-hub&arg[]=lxqt-panel-git&arg[]=libilbc&arg[]=revolt-git&arg[]=slap&arg[]=ttf-vollkorn-ibx&arg[]=bemenu-git&arg[]=firejail-profiles&arg[]=gtk-theme-solarc-git&arg[]=gtkhotkey&arg[]=uzbl-tabbed-next-git&arg[]=wingpanel-indicator-keyboard-git&arg[]=package-query-git&arg[]=plasma5-applets-system-panel&arg[]=sidplay2-libs&arg[]=breeze-plymouth&arg[]=echo-icon-theme-git&arg[]=nylas-mail-bin&arg[]=v4l2loopback-dkms-git&arg[]=indicator-session&arg[]=nvim-pygtk3-git&arg[]=ttf-raleway-ibx&arg[]=appmenu-gtk-module-git&arg[]=flatman-git&arg[]=android-support-repository&arg[]=arc-dark-lxqt-manjaro&arg[]=gretl&arg[]=openbox-menu-git&arg[]=qtile-gnome&arg[]=tmuxline-git&arg[]=wine-gaming-nine&arg[]=gtk-theme-arc-flatabulous-git&arg[]=libmfx-git&arg[]=lxqt-globalkeys-git&arg[]=uzbl-browser-next-git&arg[]=keybase-git&arg[]=libqzeitgeist&arg[]=plasma5-themes-maia&arg[]=maia-icon-theme&arg[]=perl-term-readline-ttytter&arg[]=arc-firefox-theme-git&arg[]=simple-ccsm&arg[]=ttf-alegreya-ibx&arg[]=irssi-git&arg[]=libwapcaplet-git&arg[]=luakit-git&arg[]=ttf-sinkin-sans-ibx&arg[]=ttf-umeplus-ibx&arg[]=xde-styles&arg[]=xfce4-topmenu-plugin-git&arg[]=fbautostart&arg[]=grub2-theme-archlinux&arg[]=pantheon-mail-git&arg[]=libreoffice-extension-languagetool&arg[]=pantheon-photos-git&arg[]=wimlib&arg[]=xde-icons&arg[]=xpybar&arg[]=gpmdp&arg[]=jre&arg[]=polybar&arg[]=nodejs-base16-builder-git&arg[]=rhythmbox-plugin-alternative-toolbar-git&arg[]=deepin-social-sharing&arg[]=fluid-git&arg[]=lighthouse-git&arg[]=indicator-notifications&arg[]=osx-arc-plus&arg[]=sandbox&arg[]=vala-panel-extras-xkb-flags-git&arg[]=way-cooler-git&arg[]=apacman&arg[]=geany-plugins-gtk3-git&arg[]=gpp&arg[]=plasma5-themes-breath&arg[]=cinnamon-desktop-git&arg[]=fluxbox-styles-tenr&arg[]=gnome-colors-common-icon-theme&arg[]=openbox-theme-redmond-2009&arg[]=archlabs-wallpapers-git&arg[]=auracle-git&arg[]=maia-wallpaper&arg[]=compiz-bcop-git&arg[]=libc++experimental&arg[]=ahoviewer-git&arg[]=apacman-deps&arg[]=brisk-menu-git&arg[]=xt7-player-mpv-git&arg[]=pantheon-geoclue2-agent-git&arg[]=perl-cairo-gobject&arg[]=qt5-gsettings-git&arg[]=fluxbox-style-greybird&arg[]=peruse-git&arg[]=ts-qtplatform&arg[]=asp-git&arg[]=fluxable-newmenu&arg[]=haroopad&arg[]=rofi-git&arg[]=ttf-noto-fonts-ib&arg[]=daala-git&arg[]=fluxbox-style-zukitwo&arg[]=libc++&arg[]=skypeforlinux&arg[]=xfce-theme-manager&arg[]=archlabs-common-git&arg[]=aurutils-git&arg[]=emacs-git&arg[]=fontconfig-infinality-ultimate&arg[]=gdmenu&arg[]=mpv-ahjolinna-git&arg[]=spectrwm-git&arg[]=lib32-tk&arg[]=libgeonames&arg[]=wordgrinder-git&arg[]=dotnet-runtime-1.1&arg[]=elementary-xfce-icons-git&arg[]=freetype2-demos-infinality&arg[]=ttf-courier-prime-kagayaki&arg[]=vim-flagship-git&arg[]=appcenter-bzr&arg[]=ruby-totoridipjp&arg[]=pdfjs&arg[]=liri-settings-git&arg[]=ruby-xz&arg[]=xi-gtk-git&arg[]=archlabs-tint2-themes-git&arg[]=gtk-arc-flatabulous-theme-git&arg[]=gtk3-ubuntu&arg[]=libdesktop-agnostic-git&arg[]=poseidon-browser-git&arg[]=vala-panel-extras-volume-git&arg[]=windowchef-git&arg[]=komodo-edit&arg[]=lastpass&arg[]=gnome-shell-extension-topicons-plus-git&arg[]=kakoune-git&arg[]=artwork-maia&arg[]=discord-canary&arg[]=sddm-theme-deepin-git&arg[]=libcurl-openssl-1.0&arg[]=modprobed-db&arg[]=ruby-typed-array&arg[]=switchboard-plug-keyboard-git&arg[]=torrent-file-editor-qt5-git&arg[]=vim-plug-git&arg[]=ftmenu&arg[]=liri-themes-git&arg[]=lib32-fontconfig-infinality-ultimate&arg[]=libspotify&arg[]=the-libs&arg[]=gtksu-git&arg[]=ttf-pfennig-ibx&arg[]=gnome-menus2&arg[]=perl-linux-desktopfiles&arg[]=switchboard-plug-display-git&arg[]=ttf-source-code-pro-ibx&arg[]=vibe-git&arg[]=ambiance-graphite&arg[]=gnome-shell-extension-volume-mixer-git&arg[]=lightdm-settings&arg[]=obconf-qt-git&arg[]=playonlinux5-git&arg[]=pstoedit-nomagick&arg[]=elementary-icon-theme-git&arg[]=libutf8proc-git&arg[]=plotinus-git&arg[]=libparserutils-git&arg[]=luajit-2.1&arg[]=qcomicbook-git&arg[]=qutebrowser-git&arg[]=ttf-alegreya-sans-ibx&arg[]=compizconfig-python-git&arg[]=gsignond&arg[]=pantheon-videos-git&arg[]=persepolis-git&arg[]=plataro-icons&arg[]=siji-git&arg[]=vala-panel-appmenu-xfce-git&arg[]=cinnamon-translations-git&arg[]=lightdm-webkit2-theme-material2-git&arg[]=ninekey&arg[]=qt4-private-headers-dev&arg[]=switchboard-plug-about-git&arg[]=archlabs-oblogout-themes-git&arg[]=freetype2-infinality-ultimate&arg[]=ttf-playfair-display-ibx&arg[]=waterfox-kde-bin&arg[]=acpi_call-dkms&arg[]=flatplat-blue-theme&arg[]=fpm&arg[]=insync&arg[]=switchboard-plug-sound-git&arg[]=libnsgif-git&arg[]=ttf-wqy-zenhei-ibx&arg[]=xss-lock-git&arg[]=python-decorating&arg[]=ttf-ms-win10&arg[]=wingpanel-indicator-session-git&arg[]=ttf-signika-family-ib&arg[]=libliri-git&arg[]=libnetctlgui&arg[]=irccloud&arg[]=kvirc-git&arg[]=rrun&arg[]=cardapio-bzr&arg[]=ttf-contemporary&arg[]=material-gtk-theme-git&arg[]=ubuntu-mate-themes&arg[]=argparser-bash&arg[]=albert&arg[]=lxqt-admin-git&arg[]=vala-panel-appmenu-translations-git&arg[]=vala-panel-extras-common-git&arg[]=gnome-shell-extension-arch-update&arg[]=switchboard-plug-notifications-git&arg[]=vlc-arc-dark-git&arg[]=pantheon-calendar-git&arg[]=krunner-pass&arg[]=lua-posix&arg[]=xde-theme&arg[]=kvazaar&arg[]=smartgit&arg[]=breath-wallpaper&arg[]=dex-git&arg[]=blueshift-git&arg[]=grub2-theme-vimix-git&arg[]=libuvc-git&arg[]=luajit-lgi-git&arg[]=adapta-gtk-theme-git&arg[]=argparser-c&arg[]=bash-it-git&arg[]=vo-amrwbenc&arg[]=qpdfview-bzr&arg[]=qps-git&arg[]=tint3-cpp-git&arg[]=vim-airline-themes-git&arg[]=vim-webapi&arg[]=argparser-python&arg[]=lightdm-webkit-theme-petrichor-git&arg[]=python-pyalsaaudio&arg[]=xfce4-taskbar-plugin&arg[]=plank-bzr&arg[]=ttf-caladea-kagayaki&arg[]=budgie-desktop-git&arg[]=dockbarx-gtk3-git&arg[]=mutant&arg[]=dotnet-coreclr-git&arg[]=flite1&arg[]=connman-gtk&arg[]=corebird-git&arg[]=pulseaudio-ctl&arg[]=lxqt-runner-git&arg[]=gnome-mpv-git&arg[]=libdom-git&arg[]=openh264&arg[]=evopop-gtk-theme-git&arg[]=libtermkey-bzr&arg[]=ttf-triod-postnaja-ibx&arg[]=vertex-icons-git&arg[]=biicode&arg[]=linux-pf-preset-default&arg[]=preload&arg[]=sddm-breath-theme&arg[]=paper-icon-theme-git&arg[]=dapper&arg[]=flatabulous-theme-git&arg[]=flatwoken-icons-git&arg[]=ruby-pluggaloid&arg[]=archlabs-slimlock-themes-git&arg[]=libwm-git&arg[]=mylaunchpad-git&arg[]=qt5-styleplugins-git&arg[]=snorenotify&arg[]=ttf-ms-win10-japanese&arg[]=baka-mplayer-git&arg[]=i3-gaps-next-git&arg[]=menugenerator&arg[]=sndio&arg[]=wingpanel-indicator-network-git&arg[]=wingpanel-indicator-privacy-git&arg[]=osx-arc-darker&arg[]=svp&arg[]=wcmcommander&arg[]=ncurses5-compat-libs&arg[]=ttf-droid-nonlatin-ib&arg[]=wtftw-git&arg[]=dockmanager&arg[]=gtk-theme-arc-git&arg[]=libopenmpt-svn: http2: server sent GOAWAY and closed the connection; LastStreamID=1, ErrCode=ENHANCE_YOUR_CALM, debug=""

Add -git package Github support

When you yay -Syu --devel yay should check if the latest commit has a different SHA than the installed version and update accordingly.

Steps:

  • Get source URL
    RPC does not expose the source URL. Alternatively we could parse .SRCINFO, it makes me sad but it works.
  • if source does not include github.com and .git ignore
  • Compare saved SHA in ~/.config/yay/vcs.json with SHA from api.github.com/repos/user/repo/branches (only master branch for now)
  • If SHA differs add to update list

AUR tab completions

Hitting tab should also complete from AUR.

375f4d7 adds a primitive function to yay and fish where every autocomplete GETs the package list from the AUR.
2017-04-09-020800_3840x1080_scrot

The plan

  • First autocomplete of the day, we get a new version, we write it to a file stored in ~/.cache and return the autocomplete list.
  • If no connection is available the list will be empty and the file will not be written.
  • Second autocomplete. Check file modified date, if it's diff against current date is bigger than 24h/48h(?), back to First autocomplete of the day. Else, complete from file.

Search does not find npth

pacman -Ss npth

core/npth 1.4-1 [installed]
    New portable threads library
community/mingw-w64-winpthreads 5.0.2-1 (mingw-w64-toolchain mingw-w64)
    MinGW-w64 winpthreads library

yay -Ss npth

aur/npth-git 1.2+3_ga49a061-1 (2) 
A library to provide the GNU Pth API and thus a non-preemptive threads implementationA IPC library used by some GnuPG related software (git version).
aur/mingw-w64-winpthreads-git 4.0.rc1.r7.gc440466-1 (5) (Orphaned) 
MinGW-w64 winpthreads library
community/mingw-w64-winpthreads 5.0.2-1 (mingw-w64-toolchain,mingw-w64) 
MinGW-w64 winpthreads library

This one's really interesting. 1.115

AUR update fails with large number of packages

I have a very large number of AUR packages installed on my machine (most of them from https://aur.archlinux.org/packages/ros-lunar-desktop-full/, which is massive). When I try yay -Syu to update all packages (AUR and official repos), the GET request to the AUR RPC fails: The server closes the connection, sends GOAWAY, and gives error code ENHANCE_YOUR_CALM (as a side note, I was very pleased to discover that HTTP/2 has these wonderful error codes).

I haven't been able to debug this at all yet, but I would presume that it occurs because yay makes a single query for all packages. Perhaps making several queries limited at a certain number of packages each would be more robust?

For what it's worth, I've been using yaourt and pacaur with no trouble with the same set of packages.

small package size shows as 0MB


$ yay -Cd
gtk-engine-murrine: 0MB

made me think it was a null / empty package or worse.
but it's just that yay only knows whole MB? (i couldn't find option / flag in help)

Installed Size  : 295.00 KiB

(in fact yaourt, pacman prefer Mib, Kib notation?)

PKGBUILDs hosting multiple packages are upgraded multiple times

Take for example the Gogland PKGBUILD: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=gogland

Upgrading it should resolve the update step for both, gogland and gogland-jre, instead it offers to install the thing twice.

==> Installing gogland
==> Edit PKGBUILD? [y/N] 
==> Making package: gogland 173.3415.23-1 (Do 26. Okt 15:34:23 CEST 2017)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Downloading gogland-173.3415.23.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   154  100   154    0     0    154      0  0:00:01 --:--:--  0:00:01   875
100  199M  100  199M    0     0  18.1M      0  0:00:11  0:00:11 --:--:-- 19.7M
  -> Found jetbrains-gogland.desktop
==> Validating source files with sha512sums...
    gogland-173.3415.23.tar.gz ... Passed
    jetbrains-gogland.desktop ... Passed
==> Extracting sources...
  -> Extracting gogland-173.3415.23.tar.gz with bsdtar
==> Entering fakeroot environment...
==> Starting package_gogland()...
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Compressing man and info pages...
==> Checking for packaging issue...
==> Creating package "gogland"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Starting package_gogland-jre()...
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Compressing man and info pages...
==> Checking for packaging issue...
==> Creating package "gogland-jre"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: gogland 173.3415.23-1 (Do 26. Okt 15:34:44 CEST 2017)
==> Installing gogland package group with pacman -U...
loading packages...
resolving dependencies...
looking for conflicting packages...

Packages (2) gogland-173.3415.23-1  gogland-jre-173.3415.23-1

Total Installed Size:  497.52 MiB
Net Upgrade Size:        1.37 MiB

:: Proceed with installation? [Y/n] 
(2/2) checking keys in keyring                                                      [################################################] 100%
(2/2) checking package integrity                                                    [################################################] 100%
(2/2) loading package files                                                         [################################################] 100%
(2/2) checking for file conflicts                                                   [################################################] 100%
(2/2) checking available disk space                                                 [################################################] 100%
:: Processing package changes...
(1/2) upgrading gogland                                                             [################################################] 100%
(2/2) upgrading gogland-jre                                                         [################################################] 100%
cd :: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Updating the desktop file MIME type cache...
==> Installing gogland-jre
==> Directory exists. Clean Build? [y/N] 
==> Edit PKGBUILD? [y/N] 
==> WARNING: The package group has already been built, installing existing packages...
==> Installing gogland package group with pacman -U...
loading packages...
warning: gogland-173.3415.23-1 is up to date -- reinstalling
warning: gogland-jre-173.3415.23-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Packages (2) gogland-173.3415.23-1  gogland-jre-173.3415.23-1

Total Installed Size:  497.52 MiB
Net Upgrade Size:        0.00 MiB

:: Proceed with installation? [Y/n] 
(2/2) checking keys in keyring                                                      [################################################] 100%
(2/2) checking package integrity                                                    [################################################] 100%
(2/2) loading package files                                                         [################################################] 100%
(2/2) checking for file conflicts                                                   [################################################] 100%
(2/2) checking available disk space                                                 [################################################] 100%
:: Processing package changes...
(1/2) reinstalling gogland                                                          [################################################] 100%
(2/2) reinstalling gogland-jre                                                      [################################################] 100%
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Updating the desktop file MIME type cache...

Download everything and ask all the questions first, then build and install

I saw you have this on the projects page, I'm creating this issue for tracking purposes, something to subscribe to, in order to get updates when this works begins.

When installing or upgrading packages, it would be really nice to get all the questions asked first (do I want to edit PKGBUILD, install dependencies, confirm conflicting package replacement, etc.), answer to all of them in one go and let the installation proceed without further interruption.

[pkgbuild] arch arm -> armv7h

(maybe this should be an aur comment instead)

arch=('i686' 'x86_64' 'arm')
$ makepkg -s
==> ERROR: yay is not available for the 'armv7h' architecture.

it builds fine with

arch=('i686' 'x86_64' 'armv7h')

i notice yaourt uses


arch=('any')

Help flag requires sudo password?

When I run yay -h, I'm prompted for my sudo password.
This is not the case when I run yay --help.

I can't think why help messages should require sudo access, so I'm assuming that this is a bug?

I'm running 4b78c23, which is the current master commit. If this is a bug, I'd be happy to take a stab at correcting it myself.

Config File

The bloat is here.

Plan for config file:

  • When a user uses a cli arg like --topdown the setting will be saved and it won't be necessary to cast it again.
  • The config file will have a option to disable this type of setting keeping.
  • Since yay already uses encoding/json, it will be config.json. I would prefer another format, I would even prefer to use a framework but I'm worried about binary size
  • -noconfirm won't be saved after use, but it will be possible to toggle it in config.json ( at the user's responsibility)

Options:

  • Menu orientation
  • Pacman bin
  • Build Location
  • Makepkg Options

Package Install specifications

Managing install dependencies

Preamble

Dependency management is a critical part in the install process of packages, pacman's approach is seemingly to install packages with their dependencies in one go since they're prebuilt.
Most AUR packages require build dependencies without which the install process will fail.

The proposed solution for this problem in yay is creating an install graph and installing by tiers.

Behavior

The user selects what packages he wants to install from the yay menu.
The install package will be fed a slice of AUR packages and Repo packages.

These AUR and Repo packages will be tier 1, tier 1 is for explicitly installed packages.
If a tier 1 package is a dependency to another tier 1 package it will be installed on another tier and made an explicitly installed.

Already installed packages will be ignored.

Example:
To install yaourt-git (AUR) and caja (repo)

Final result after processing, git and pacman were already installed.
|----------------------Tier 1--------------------------|
|  caja yaourt-git                                     |
|------------------------------------------------------|

|----------------------Tier 2--------------------------|
| package-query-git                                    |
| exempi gvfs libexif libsm mate-desktop libnotify     |
|------------------------------------------------------|

|----------------------Tier 3--------------------------|
| yajl gcc-libs expat zlib                             |
| avahi dconf fuse libarchive libcdio-paranoia libsoup |
| udisks2  libsecret libbluray  libgudev  gcr  psmisc  |
|                       ....                           |
|------------------------------------------------------|

|----------------------Tier 4--------------------------|
| glibc  fuse-common                                   |
|                       ....                           |
|------------------------------------------------------|

Before install all tiers are shown to the user along with tier size for approval. After approval the user will only be prompted again at the tier 1 install. Rejecting the tier 1 install will remove the whole tree.

Implementation

Important points for implementation:

  • After editing the PKGBUILD a new .SRCINFO will need to be generated
  • Capture Ctrl-C and remove full tree.
  • Packages are stored as a graph.
  • Graph is DFSed before adding each package since adding the same package twice would be bad.
  • Nodes will be an interface with a Type function.
type Node interface {
    Type() //AUR or Repo (there probably is a better way, awaiting revision)
}  
  • Transversal will be made through a reverse BFS.

For the implementation of a reverse BFS, the graph will have a tier 0 (dummy head).

  • Package details will come from .SRCINFO parsing since it is the only one that accounts for split packages.

Objectives

  • Get another check on the wiki ( Resolve complex dependencies)
  • #5
  • #10

`yay -Syu` upgrades AUR packages that have no updates

I'm running code from the dev branch.

โฏ  yay -Syu
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
:: Starting full system upgrade...
warning: sakura: local (3.4.0-2) is newer than community (3.3.4-2)
warning: zsh: ignoring package upgrade (5.2-2 => 5.3.1-2)
 there is nothing to do
:: Starting AUR upgrade...
 Checking 61/61 packages...
==> cerebro: 0.2.8-1 -> 0.2.8-1
==> dunst-git: 1.1.0.221.g1d0bfb2.826-1 -> 1.1.0.221.g1d0bfb2.826-1
==> fonts-meta-base: 1-2 -> 1-2
==> fonts-meta-extended-lt: 2-2 -> 2-2
==> jdk7: 7u79-4 -> 7u79-4
==> kubectl-bin: 1.6.3-1 -> 1.6.4-1
==> python-pygame: 1.9.3-2 -> 1.9.3-2
==> python-tqdm: 4.11.2-1 -> 4.11.2-1
==> python2-tqdm: 4.11.2-1 -> 4.11.2-1
==> slack-desktop: 2.6.0-1 -> 2.6.2-1
==> ttf-merriweather: 2.001-1 -> 2.001-1
==> ttf-merriweather-sans: 1.006-3 -> 1.006-3
==> ttf-quintessential: 1.001-3 -> 1.001-3
==> wire-desktop-beta: 2.13.2741-1 -> 2.14.2743-1
==> Proceed with upgrade? [Y/n]

See for example cerebro: 0.2.8-1 -> 0.2.8-1 and similar - why does it suggest to upgrade if the versions are the same?

โฏ  yaourt -Syua
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 Foreign packages: / 61 / 61
==> Software upgrade (new version) :
aur/kubectl-bin       1.6.3-1     -> 1.6.4-1
aur/slack-desktop     2.6.0-1     -> 2.6.2-1
aur/wire-desktop-beta 2.13.2741-1 -> 2.14.2743-1
==> Continue upgrade ? [Y/n]

Yaourt attempts to upgrade fewer packages.

How can i update all package installed via aur?

Hi all.
Yay seem good to me now, thanks for created it. But some time i want to upgrade all packages installed from aur, any command such as with yaourt yaourt -Syyu --aur.
Many thanks.

Request: Show version change when upgrading packages

One thing I liked from yaourt is that it showed the current version of packages, alongside the new ones available. It's pretty nice to know when it's just a bug fix or a major version bump, which motivates me to go look for the changelog.

error when loading zsh competions

i have an error : /home/dsh/.zsh/yay-competion.zsh:68: no matches found: *-d[Skip dependency checks].
It this line : 68 _pacman_opts_remove=(

error with zsh comletions

hello thanks now the comletions work but :
_tags:comptags:36: can only be called from completion function
_tags:comptry:55: can only be called from completion function
_tags:comptags:60: can only be called from completion function

Feature request: update package without actually compiling and installing the new version (i.e. skip upgrade this time)

Imagine the following: you upgrade a certain package to a version X and discover that it has a nasty bug. You report the issue on the corresponding bug tracker and install the previous version X-1 of the package, waiting for the bug to be fixed. If you do nothing, you keep seeing yay suggesting you to upgrade from X-1 -> X.

Now, you don't want to see suggestions to upgrade X-1 -> X, so you add the package to the ignore list in pacman, and yay doesn't attempt to upgrade it anymore, instead it prints a shiny message warning: PKG (ignored pkg) ignoring upgrade (X-1 -> X).

But this makes user responsible to remember to "unignore" it once a new version is released - this is annoying to manually look after this message becoming ... (X-1 -> X+1) one day.

What I would like to see is some kind of ignore config in the Yay itself, that will allow me to specify the version X that I don't want to upgrade to. Once there is a version X+1 available, I want yay to automatically detect this and make it very visible, that this package has a new X+1 version and I should try to upgrade to it to see if the bug is fixed.

This is obviously open for discussion, maybe you have a different approach to handle such cases?

Select dependency

Sometimes more than one package provides the dependency. Displaying a menu with options would be nice.

Example: jre

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.