Giter Club home page Giter Club logo

yaourt's People

Contributors

addisonamiri avatar alexriley avatar andrewazores avatar aneeshusa avatar arthurborsboom avatar benjarobin avatar bstefanski avatar daltones avatar damien43 avatar derektbrown avatar dffischer avatar ericzinnikas avatar f2404 avatar freso avatar goreliu avatar itoijala avatar japgolly avatar larchunix avatar magicarbon avatar muchweb avatar nullptrt avatar omid avatar peterzhizhin avatar piec avatar rmarquis avatar scimmia22 avatar skunnyk avatar stevenhoneyman avatar tuxce avatar vejobuj 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

yaourt's Issues

All packages made in split PKGBUILD

When installing a subpackage (transmission-sequential-cli) from a split PKGBUILD, yaourt build and install all packages (yaourt -S transmission-sequential-cli).

However when I do yaourt --pkg transmission-sequential-cli -S transmission-sequential-cli, yaourt build/install only the requested package (since it's passing the --pkg transmission-sequential-cli option to makepkg).

I think the default behavior should be to build/install only the requested package when it's a split PKGBIULD, which mean pass the --pkg option to makepkg

Small typo in alpm_stats.sh

Just two letters missing :)
This should be "Theoretical" not "Theorical":

echo -e "$CGREEN$(gettext 'Theorical space used by packages:') $CYELLOW$(($size_t/1048576))M"

Redownloading of git/hg repositories

yaourt seems to clone the entire repository on each and every upgrade of aur packages, which i consider a borderline crazy waste of bandwidth. Is there some way to stop it from doing that (setting DEVELBUILDDIR="/var/abs/local/yaourtbuild" and TMPDIR="/var/tmp/yaourt" did not change that behaviour) or is this actually intended behaviour? I really do not want to reclone the entire fife repository each time.

sudo double prompt on raspberry pi

Hi

On my laptop, yaourt works fine. On my raspberry pi, when I run it with user yamakaky, sudo prompts me two times : for the root password then for the user's one. sudo only have this behavior with yaourt. I don't have access to my raspberry pi now, but I can give you my config files latter if you need it.

Thanks

Breakage with zsh when doing Ctrl+C

Since recently, in zsh, doing yaourt -Su followed by Ctrl+C at the "Continue upgrade ? [Y/n]" prompt results in shell breakage; password prompts no longer work properly for example.

This doesn't happen on bash. I haven't tested in yaourt-git yet.

stats should handle optional deps

If i execute:
yaourt --stats

the entry "packages no more used by any package" it's wrong because doesn't keep in mind optional dependencies

e.g.: I have meld which has "pygtksourceview2" as optional dependency
but pygtksourceview2 is listed as package that is no more used by any package

Annoying error message, appears while updating: A file is owned by two packages at the same time

I recently updated my system and now every time I update via yaourt a weird error-message appears:
file owned by 'pass-git' and 'zsh-completions-git': 'usr/share/zsh/site-functions/_pass'
It looks like the problem is yaourt-specific because with AUR-helpers like pacaur or packer the error-message does not appear.
At reddit a user mentioned the pass-package is out-of-date so I switched to the pass-git package but nothing changes.

AUR packages not updating properly when also in repo

When trying to update the aur dropbox package after adding the archlinux.fr repository i noticed that it was no longer updating because the same package is in a repository as well as the aur.

We need an option to either skip a repo or update from aur even if the package exists in a repository

Unhandled exception with munged json data

$ yaourt -Ss fontforge
extra/fontforge 20140101-2
    Outline and bitmap font editor
lexical error: invalid char in json text.
                                       Error - Could not connect to AU
                     (right here) ------^

I can't reproduce this bug it so it may have been due to network issues. Nevertheless perhaps an exception handler is possible for when fetched json data can't be interpreted.

VCS auto-update

It would be nice to have a commandline option ( --vcs) to update all packages that are coming from vcs's (git, bzr etc.) as they are rarely updated

yaourt -Qdqt exits with status 1 whether there are any packages found or not

Steps to reproduce:

(With unneeded packages on system):
$ yaourt -Qdqt
[ list of packages ]
$ echo $?
1

 (Without any)
 $ yaourt -Qdqt
 $ echo $?
 1

This behavior makes no sense as both states cannot be an error. Arguably, pacman does this the correct way by returning 0 when packages are found and indicating an error (1) when none are, since this is a search. I could easily be convinced the other way was correct indicating 0 (good status) if there are no packages on the system listed as 'unneeded', with the presence of any creating a fail state (1).

Practically speaking, this limits command line usage as well as Bash scripting. Consider that if this returned differently in different cases, the following would be possible:

$ yaourt -Qdqt && yaourt -Qdqt | yaourt -Rns -

or:

$ yaourt -Qdqt || yaourt -Qdqt | yaourt -Rns -

whereas this is currently required:

$ if $(yaourt -Qdqt); then yaourt -Qdqt | yaourt -Rns -; fi

which is both less concise and less readable.

Let yaourt run makepkg, curl etc as unprivileged user if executed as root

Currently the recommend workflow to use yaourt is to execute it as an unprivileged user, and it will call sudo when it comes to package installation.

While this is better than running yaourt and makepkg as root I think this workflow still has some serious issues:

First of all, the processes are executed as the current user, still exposing everything owned by this user to them (especially to PKGBUILD). Secondly, an attacker could execute sudo on it's own to gain root privileges.

So let me suggest to create a unprivileged extra user on installation (e.g. "yaourt") dedicated to this one task. If yaourt is executed with root privileges, every process spawn by it (apart from the actual installation) will be su'd to this user.

This would change the normal workflow to use "sudo yaourt...". The dangerous parts would still be executed using an unprivileged account, and if for example the user is asked for his sudo password during installation he should be totally alerted that something is wrong (although the build user shouldn't be allowed to sudo, of course - this is why yaourt should keep it's privileges until the package is installed).

Unnecessary root warning

The "fix" for #13 in ec38666 is silly. There is no need to print a warning message about 'building as root' and delay for 2 secs when installing normal packages or querying the local database.
That warning is only relevant for when actually building packages and most operations already have a 'wait for keypress' before actually proceeding.

I request a revert of ec38666

Set umask 022 before extracting AUR tarballs

Hello!

Some AUR packages will install binary wrappers extracted from the AUR tarball into system-wide locations. Currently, yaourt seems to keep the users umask when extracting the tarball, such that these wrappers wind up as non-world readable if the user has a restrictive umask. This is pretty much never a desired behavior.

Makepkg itself will reset the umask to 022 when building a package. It would be useful if yaourt did this, as well, before extracting the AUR tarballs.

makepkg -A, --ignorearch

makepkg has this option which is definitely more handy than editing the PKGBUILD. Is there a way to use this in yaourt?


-A, --ignorearch

Ignore a missing or incomplete arch field in the build script. This is for rebuilding packages from source when the PKGBUILD may be slightly outdated and not updated with an arch=('yourarch') field.

Hidden Prompt For Fingerprint Sudo Auth

I have my fingerprint reader set up to authenticate for sudo (using fprint), which works fine. But when yaourt needs sudo permission, it does not show the fingerprint reader prompt - which makes it look like it is hanging. If I swipe my finger, it authenticates just fine so it is really just the prompt that is hidden.

If I don't swipe, eventually the fingerprint reader times out and yaourt shows the regular sudo password prompt.

/usr/lib/yaourt/pacman.sh: line 18: : command not found -- (only in zsh)

When running yaourt from zsh, it fails when running commands that install aur packages. I thought it might be caused by something in my .zshrc/.zshenv, but running zsh with the NO_RCS option had no effect. Example:

$ zsh -f -c 'yaourt gcalcli'
/usr/lib/yaourt/pacman.sh: line 18:  : command not found
1 aur/gcalcli 2.4.2-1 (109)
    Google Calendar Command Line Interface
2 aur/gcalcli-git 20130415-1 (12)
    Allows you to access you Google Calendar from a command line, git version
==> Enter n° of packages to be installed (ex: 1 2 3 or 1-3)
==> -------------------------------------------------------
==> 1

error: database not found: aur

The same command works fine if run from a bash shell. The error arises from the following lines from pacman.sh:

eval $(pacman_parse --debug -T |&
  sed -n -e 's/"/\\"/g' \
         -e 's/^[\[\]0-9: ]//' \
         -e 's/^debug: config: \([a-zA-Z]\+\): \(.*\)/P[\1]="${P[\1]}\2 "/p' \
         -e 's/^debug: config: \([a-zA-Z]\+\)$/P[\1]=1/p' \
         -e "s/^debug: option '\([a-zA-Z]\+\)' = \(.*\)/P[\1]=\"\2\"/p"
)

I gather the command substitution is spawning a subshell that runs in zsh and produces (almost) blank output. I temporarily changed eval to echo and ran it again in zsh and bash. In zsh it outputs:

" " " " " "

bash output:

P[HoldPkg]="${P[HoldPkg]}pacman " P[HoldPkg]="${P[HoldPkg]}glibc " 
P[arch]="${P[arch]}x86_64 " P[totaldownload]=1 P[verbosepkglists]=1 
P[SigLevel]="${P[SigLevel]}Required " 
P[SigLevel]="${P[SigLevel]}DatabaseOptional " 
P[LocalFileSigLevel]="${P[LocalFileSigLevel]}Optional " 
P[logfile]="/var/log/pacman.log" P[gpgdir]="/etc/pacman.d/gnupg/" 
P[cachedir]="/var/cache/pacman/pkg/"

I'm not sure why those sed commands don't work in zsh, something to do with quoting/escaping I guess. I'm working around it for now by sourcing a function in my .zshrc that overrides the yaourt command:

yaourt () {
        bash -c "yaourt $@"
}

yaourt -U does not install dependencies from AUR

When issuing the following command to install a locally build PKGBUILD:

yaourt -U some-package-1.0-1.pkg.tar.xz

the command seems to be immediately passed on to pacman and package dependencies that are not on official repositories but are on AUR are therefore not installed.

yaourt should instead inspect these dependencies to see if one or more are not in the official repos and then try to install them as if by yaourt -S --asdeps.

Multi-Installation Depedency Detection

Yaourt does not check for inter-dependencies when install multiple packages. I'm not quite sure how to word this, so here is how to reproduce:

  • Attempt to install perl-file-find-rule, perl-text-glob, perl-number-compare using yaourt -S.
  • Yaourt will attempt to install perl-file-find-rule, which depends on perl-text-glob and perl-number-compare
  • Yaourt will install perl-text-glob and perl-number-compare, then install perl-file-find-rule
  • Yaourt will move to the next install target, perl-text-glob, and treat it as a package that needs to be installed, even though it was already installed as a dependency for the previous package

Another Typo

On line 36 of the yaourtrc man page it should be $HOME/.yaourtrc (the period is missing)

stats ui bug

yaourt --stats prints a line after 1000th package counted in the "space used by packages" count

e.g.: I have 1276 packages installed in my system.
yaourt --stats before prints result "Theoretical space used by packages: 12146M
Real space used by packages: 12074M"
it prints 276 line with " Theoretical - Real space used by packages: 12144M - 12073M progression: 1273/1276"

Yaourt does not install checkdepends, leading to pacman error

Example python2-vdirsyncer:

==> python2-vdirsyncer dependencies:
 - python2-click (already installed)
 - python2-setuptools (already installed)
 - python2-lxml (already installed)
 - python2-icalendar (already installed)
 - python2-requests-toolbelt (already installed)


==> Continue building python2-vdirsyncer ? [Y/n]
==> --------------------------------------------
==> 
==> Building and installing package
==> Making package: python2-vdirsyncer 0.2.5-1 (Mon Sep  8 18:45:49 CEST 2014)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Installing missing dependencies...
error: target not found: python2-wsgi-intercept>=0.6.1
error: target not found: python2-radicale
==> ERROR: 'pacman' failed to install missing dependencies.
==> ERROR: Makepkg was unable to build python2-vdirsyncer.
==> Restart building python2-vdirsyncer ? [y/N]

Feature request: give summary of updated packages and commits

When yaourt has updated all the packages from the official Arch and unofficial AUR repository, a huge list of console output has been generated.

To prevent scrolling through this list to see what has been updated I would like to have a summary at the end of this console output, preferably with a one-line comment of each commit per package (when it is a GIT package).

yaourt - tmpfs error: No space left on device

Hi,

I have been told on [email protected] mailing list that that this problem
should be post here too, because this is a yaourt problem.

So, the story is as it follows.

I was tried to install on my archlinux system icecat with yaourt but get always error: No
space left on device.

$ df -H
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 66G 38G 26G 60% /
tmpfs 3.2G 0 3.2G 0% /dev/shm
tmpfs 3.2G 0 3.2G 0% /sys/fs/cgroup
tmpfs 3.2G 3.2G 160k 100% /tmp
tmpfs 627M 4.1k 627M 1% /run/user/1000

I have installed my arch linux on one partition only, on /dev/sda3.

I tried to install icecat several times, moreover after a reboot too, but always get this error message.

I tried also to setup yaourt and makepkg:
/etc/yaourtrc
TMPDIR="/tmp"

/etc/makepkg.conf
BUILDDIR=/tmp/makepkg

Still get the above error.

$ free -h

total used free shared buffers cached
Mem: 5.8G 4.2G 1.6G 2.9G 64M 3.2G
-/+ buffers/cache: 928M 4.9G
Swap: 511M 0B 511M

/etc/fstab

/dev/sda3 / ext4 rw,relatime,data=ordered 0 1
/dev/cdrom /media/cdrom iso9660 ro,user,noauto,unhide 0 0
/swapfile none swap defaults 0 0

On the arch-general mailing list I get the following advices.

  • From Daniel Micay:
    Stop building a very large package in a filesystem of very limited size.
    The BUILDDIR option is unset by default, and if you leave it unset
    makepkg will work fine.
  • From me:
    Before I edited the file: /etc/makepkg.conf

I tried to install with yaourt the icecat package but get the same
error message.
That is way I edited the /etc/makepkg.conf file and set the BUILDDIR option to:
BUILDDIR=/tmp/makepkg

So, leaving it unset doesn't work here.

  • From Daniel Micay:
    Leave it unset and build with makepkg directly.

Set BUILDDIR=/var/tmp instead, /tmp is filling up.

Or just use the default of not building in a global directory...
especially /tmp which is a ramdisk.

  • From Mark Lee:
    I just looked at yaourt's yaourtrc and it's clear that it's storing
    its temporary files in /tmp. Building with yaourt means building in
    tmpfs which would for large compilation jobs can exhaust the tmpfs
    file system. Either extend the size of /tmp by specifying a larger
    size when mounting in /tmp (using fstab or just command line) or set a
    different direcotry via yaourt --tmp .

This should really be posted to the AUR mailing list since it's an AUR
issue. I hope this helps.

  • From Ralf Mardorf:
    [rocketmouse@archlinux ~]$ grep tmp /etc/fstab
    #tmpfs /tmp tmpfs nodev,nosuid,size=3G 0 0

It's commented out, but I once had to use it and it solved the issue for
me.

  • From John Broggs:
    The best way to overcome this error is to allocate the space you need in
    fstab as per the instructions on the fstab page on ArchWiki.
  • From Bigby James:
    systemd will allocate /tmp to a ramdisk by default, whether you specify it or
    not. Specifying tmpfs in /etc/fstab allows you to dictate how large the ramdisk
    is, but unless you explicitly stop systemd from mounting /tmp in RAM that's
    where it will go.

I solve this problem by building icecat directly with makepkg.

So, why can't I setup yaourt in /etc/yaourtrc wuth the line:
TMPDIR="/tmp"
to uses the /tmp directory in the / directory? Why it always uses the tmpfs in the RAM memory?

Regards, from Pal

[RFC] No compress aur packages before installing

When yaourt install packages from AUR, he do this steps:
[1]. Download archive file with PKGBUILD to install
[2]. Extract package and do compile || download & etc
[3]. Compress package to install it with using packman
[4]. Run pacman
[5]. Pacman >extract< files, and install hims.

I think if we can remove [3], this is speed up installing || upgrading
process from AUR.

How it can be implemented? Can i help with it?

yaourt asking for root privileged when using params such as --asdep

Hi,
I've recently noticed something weird about yaourt. When I try using parameters that would need pacman to be launched as root like "--asdep" or "--asexplicit", yaourt ask to be launched at root like pacman would instead of asking for sudo or root password like it would normally do for other operations requiring root packages like installing a package with a "-S" option.

spotify using yaourt

Hello,

I don't know if this is a package or a yaourt bug, but I wanted to report it anyway.

After installing spotify on I686 when doing youart -Syua it keeps on telling me spottify wants to update
( aur/spotify 0.9.4.183-4 -> 0.9.10.17-1 )
but when updating I always get
warning: spotify-0.9.4.183-4 is up to date -- reinstalling

This probably has something to do with this section of pkgbuild:

if [ "${CARCH}" = "x86_64" ]; then
md5sums=('379cd63fb9f138928b30e3586a20ef29')
_carch=_amd64
pkgver=0.9.10.17
_anotherpkgver=.g4129e1c.78-1
pkgrel=1
elif [ "${CARCH}" = "i686" ]; then
md5sums=('20113ac3d6760ded6940fef8143fa9a3')
_carch=_i386
fi

Once again I don't know if this is a bug for yaourt; or if the package is wrong.

Thanks in advance!

Exports more than the built package

If you set the EXPORT and EXPORTDIR variables in yaourtrc, Yaourt sometimes exports (caches) more than just the finished package.

As an example, if you build spambayes ( https://aur.archlinux.org/packages/spambayes ) the downloaded source ( spambayes-1.1a6.tar.gz ) will also be exported.

A possibility would be to only export files that ends with PKGEXT defined in makepkg.conf and not every archive.

sanitize_pkgbuild() fail to output correctly multiline arrays

sanitize_pkgbuild() doesn't skip the first line of multiline array declarations in the second sed command, leading to that line to be printed alone and causing a syntax error when sourcing the result through source_pkgbuild() (it is then printed correctly with the other lines in the third sed command)

For instance:
% PKGBUILD
optdepends=(
'foo: info'
'bar: info'
)
%

produces the output

declare optdepends=(
declare optdepends=(
'foo: info'
'bar: info'
)

yaourt asking for both user and root password

Just a heads-up : as of sudo 1.8.10, sudo -l will always prompt for the user password.

For people with targetpw/rootpw/runaspw options in their sudoers file, this means that they now have to type in two passwords instead of one.

By itself, this would only be mildly annoying, but combined with sudo bug 639 which makes sudo -l ask for the password of the wrong user, it results in this very very confusing scenario :

└─[$] yaourt -Syua
[sudo] password for root:   # now asking for root password
[sudo] password for root:   # actually asking for user password
:: Synchronizing package databases...

In any case, yaourt should no longer use "sudo -l command" before running the actual command so that users of targetpw do not have to enter both root password and their own password.

In the meantime, SUDONOVERIF=1 in .yaourtrc will work as a quick fix.

Empty 'required by' message when dependency provided by other package

E.g. I want to update skype and it has new dependency, lib32-pulseaudio:

==> Software upgrade (new version) :
multilib/skype            4.2.0.13-4 -> 4.3.0.37-1

==> New package :
multilib/lib32-json-c     0.12-1     (required by lib32-libpulse)
multilib/lib32-libasyncns 0.8-6      (required by lib32-libpulse)
multilib/lib32-libcap     2.24-1     (required by lib32-libpulse)
multilib/lib32-libxtst    1.2.2-1    (required by lib32-libpulse)
multilib/lib32-libogg     1.3.1-1    (required by lib32-flac)
multilib/lib32-flac       1.3.0-1    (required by lib32-libsndfile)
multilib/lib32-libvorbis  1.3.4-1    (required by lib32-libsndfile)
multilib/lib32-libsndfile 1.0.25-2   (required by lib32-libpulse)
multilib/lib32-libpulse   5.0-1      (required by -)

The thing is that repository doesn't contains lib32-pulseaudio, but it has lib32-libpulse which provides that package.

Feature Request: backup existing PKGBUILD, etc. on -G

For many AUR packages that are based on Git, Hg, SVN repos, I prefer to keep offline copies of the repositories so that the next upgrade will not download the entire repo afresh. I use yaourt -G for updating just the PKGBUILD, .install, and other such files.

The issue is that I always want to do a diff between the old PKGBUILD (etc.) file the new one. For this I always manually save a backup of the old PKGBUILD and invoke the diff program.

Can you please add an option to "-G" to save backups of files that are going to be overwritten by it?

Split packages result in duplicate updates

Since AUR v3.0.0, Yaourt currently tries to update all packages in a split package separately, resulting in duplicate updates:

└┌(%:~/Desktop)┌- yaourt -Su --aur
Foreign packages: / 61 / 61
==> Software upgrade (new version) :
aur/linux-ck 3.14.7-1 -> 3.14.8-1
aur/linux-ck-headers 3.14.7-1 -> 3.14.8-1

Maybe make use of pkgbase rather than pkgname?

AUR support doesn't seem consistent

Why does "yaourt -Ss" search in all packages incl. AUR, while you need to append "a" to -Syu if you want to upgrade AUR packages too doing an update?

This doesn't seem consistent to me.
I would prefer to have to include "a" in both cases if I want to use AUR packages.

stats

yaourt --stats when try to find for no more used packages doesn't handle dependencies for unsupported installed packages.

e.g.: I have "python2-setproctitle" from AUR which was an optional deps for kupfer.
if I uninstall kupfer yaourt --stats doesn't show me "python2-setproctitle" as unused package

Yaourt doesn't catch a sigstp after the first one

I was updating my system, had not done it about half a month so there were a lot of updates to do. I was using a slow public wifi while also doing work, so I stopped it at one point using ctrl-z to send a sigstp. It worked fine, pulled it to the foreground again (fg) in case I needed to stop it again. When I tried stopping it again however, it would not catch the input. Using htop, I sent a sigstp to yaourt. It reported from the original terminal that it stopped and I could input commands (gave me the prompt). However, it continued to spew out that it was still updating. So, I pulled it once again to the foreground and this time ctrl-z worked. If I tried to start and then stop it again, the same thing happened.
2014-05-18-160627_1280x800_scrot

Check for superuser should come first

As an Arch newbie, I sometimes forget to use yaourt as normal user, because all other adminstrative tasks are done as root.
When using yaourt as root, it warns me about that, but it has already done some things before the warning.
I think, the check for superuser and the corresponding warning should be the very first thing, before any other task is performed. A "would you like to continue" confirmation would also be nice.

[PATCH] Improve bad keypress handling

Using pacman as an example, when you get asked a question that has a default answer; if you press Enter, it uses the default. If you press a random letter (e.g. accidently pressing M instead of N), it stops/exits, but Yaourt would instead just use the default. The patch below makes it behave like pacman - unhandled keys mean exit, but ENTER still uses default.

--- a/src/lib/abs.sh.in 2014-06-06 13:30:36.000000000 +0100
+++ b/src/lib/abs.sh.in 2014-06-16 20:52:11.705753729 +0100
@@ -188,8 +188,8 @@
               SP_ARG="" sync_packages "$YAOURTTMPDIR/sysuplist"
               return 2
               ;;
-           N) return 1;;
-           *) break;;
+           Y) break;;
+           *) return 1;;
        esac
    done
 }
--- a/src/lib/io.sh 2014-06-06 13:30:36.000000000 +0100
+++ b/src/lib/io.sh 2014-06-16 20:48:33.555750222 +0100
@@ -76,7 +76,9 @@
    else
        read -en $NOENTER
        [[ $REPLY ]] && answer=$(echo ${REPLY^^*} | tr "$(gettext $_key)" "$_key") || answer=$default
-       [[ "${_key/$answer/}" = "$_key" ]] && answer=$default
+       if [[ "${_key/$answer/}" = "$_key" ]]; then
+           [[ -z "$answer" ]] && answer=$default || answer="Q"
+       fi
    fi
    echo $answer
    [[ "$answer" = "$default" ]]

sysupgrade blocked because package provides not taken into account

I'm trying to upgrade my system, but it fails with an error message:

$ yaourt -Suy                    
Password:                    
:: Synchronizing package databases...
 core                                                                                                                  111,8 KiB  1451K/s 00:00 [########################################################################################] 100%
 extra                                                                                                                1490,9 KiB   774K/s 00:02 [########################################################################################] 100%
 community                                                                                                               2,2 MiB  1086K/s 00:02 [########################################################################################] 100%
 multilib                                                                                                              115,9 KiB   762K/s 00:00 [########################################################################################] 100%
 archlinuxfr is up to date
error: failed to prepare transaction (could not satisfy dependencies)
:: Starting full system upgrade...
:: haskell-transformers: requires ghc=7.6.3-1

Apparently, it tries to upgrade ghc to version 7.8.2-3, but haskell-transformers still requires ghc=7.6.3-1.

Doing the same thing directly with pacman succeeds:

# pacman -Su 
:: Starting full system upgrade...
:: Replace haskell-transformers with extra/ghc? [Y/n]
[...]

verbose option (-v)

please add an option for a verbose mode, i did not find it in the man page

reason: I always got a package not found in AUR if i tried to update or install new AUR packages, i had no clue until i tried to make it manually and found out that I had a problem with curl. Maybe an more verbose error output would also solve this problem.

Add the --yolo option

(This is a repost of #328 on the previous bug tracker)

--sucre is a great option, it gives more taste to the daily little sys admin job and makes a great shortcut for the otherwise tricky -Sfyyua --devel --noconfirm option. It's short and convenient and allows us to immediately dive into the action and watch the whole system upgrade and recompile, a beautiful vision indeed.

However, as Archlinux is a changing distribution, error appears. This breaks our trip into the usually fascinating world of recompilation. On top of that, I think the pacman part of the trip isn't as entertaining as it should be. Finally, terminals doesn't always export correct color informations, making the output a dull and boring monochrome.

We need more.
I propose the --yolo option, an alias for --sucre --insecure --force --really-force -vv --debug --color always
I would also like to add the --skipchecksums as proposed by this feature request : http://bugs.archlinux.fr/task/322, as those pesky little checksums are a huge source of interruptions.

Of course, I could add this as a local alias, but I want other people to enjoy this wonderful journey as much as I do.

Thanks.

P.S. : I'm so very sorry, I'm 4 days late.

Version predicates don't work inside depends array

I'm the maintainer of the unvanquished and unvanquished-data AUR packages. There is a strict dependency of unvanquished on the version of unvanquished-data: If unvanquished-data is outdated, the program installed by unvanquished won't work properly. I want to model this kind of dependency using the ">=VERSION" predicate inside the "depends" array of the unvanquished PKGBUILD.

While yaourt invocations such »yaourt -S unvanquished-data=0.24.1« or »yaourt -S "unvanquished-data>=0.24.1"« both work as expected by installing the unvanquished-data package only if it fulfils the predicate, adding either predicate to the "depends" array of the unvanquished PKGBUILD would result in yaourt not being able to locate the dependency in the AUR. Example output for the ">=" predicate:

% LANG=C yaourt -S unvanquished

==> Downloading unvanquished PKGBUILD from AUR...
x unvanquished.install
x PKGBUILD
x ChangeLog

[AUR user comments]

unvanquished 0.24.1-1 (Tue Jul 24 15:59:31 CEST 2012)
( Unsupported package: Potentially dangerous ! )
==> Edit PKGBUILD ? [Y/n] ("A" to abort)
==> ------------------------------------
==> n

==> unvanquished dependencies:
- zlib (already installed)

[more already installed dependencies]

- cmake (already installed)
- unvanquished-data>=0.24.1 (building from AUR)


==> Edit unvanquished.install ? [Y/n] ("A" to abort)
==> ------------------------------------------------
==> n

==> Continue building unvanquished ? [Y/n]
==> --------------------------------------
==>
==> Building and installing package
==> Install or build missing dependencies for unvanquished:
==> Making package: unvanquished 0.24.1-1 (Thu Feb 13 23:21:18 CET 2014)
==> Checking runtime dependencies...
==> Installing missing dependencies...
error: target not found: unvanquished-data>=0.24.1
==> ERROR: 'pacman' failed to install missing dependencies.
==> ERROR: Makepkg was unable to build unvanquished.
==> Restart building unvanquished ? [y/N]
==> -------------------------------------
==>

It appears that yaourt uses a different method to look for a dependency as it would use when you specified the same dependency (including the same predicate) on the command line. This results in yaourt falsly not locating the dependency in the AUR and handing it over to pacman, which fails, since it's not inside the official repositories.

The version of yaourt used is archlinuxfr/yaourt 1.3-1.

EXPORTDIR should not be used for SRCDEST

From documentation it is not clear that yaourt will in fact use EXPORTDIR for SRCDEST.

By setting EXPORTDIR one would expect PKGDEST and SRCPKGDEST overridden but not SRCDEST. It doesn't make sense to mix sources with packages, and source packages, not mentioning that the sources are already inside source packages.

Setting EXPORTSRC=0 doesn't disable exporting of sources (or in fact setting SRCDEST) it only doesn't export resulting source package (or rather doesn't generate it at all).

I think it would be more consistent and logical to keep SRCDEST as is set by makepkg.

yaourt -Syu bug when one package uses customizepkg

Doing a full upgrade with yaourt -Syu... if one of the packages that needs upgrading makes yaourt run customizepkg, when that is finished installing, it tries to install the uncustomized version afterwards.

use git clone --depth 1

when cloning from git repos, we DON'T need to download ALL the history, but just the actual state of the repo. This is done by --depth 1 and will speed un A LOT the clone of repo, especially big one or much used ones.

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.