Coder Social home page Coder Social logo

aurto's People

Contributors

alexheretic avatar coderobe avatar ew4n1011 avatar setser 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

aurto's Issues

Changing name of repo from aurto

In order to use aurto, the repo HAS to be named "aurto", and this is hard-coded into the program, can this be changed to use the value from a config?

When a package in the repo fails to build on update, no packages are updated

mullvad-vpn currently doesn't build in a clean chroot because it depends on rpm-tools, which has an optional dependency on lmdb when it should be a hard dependency. This caused all other updated packages in the repo to be held back.

aurto remove mullvad-vpn fixed the issue for now, but it seems like a bug if one failed package keeps other good packages from updating.

[ARM] Synchronizing package databases return error 404

aurto v0.9.10
$ aurto add downgrade
aurto: Checking maintainer trust... ✓
aurto: Running: aur sync --no-view --no-confirm --chroot --database=aurto --makepkg-conf=/etc/aurto/makepkg-chroot.conf downgrade
 ERROR: Failed to install all packages
==> Using [aurto] repository
  -> downgrade: (none) -> 8.0.0-1
==> Retrieving package files
Cloning into 'downgrade'...
==> Creating install root at /var/lib/aurbuild/armv7l/root
==> Installing packages to /var/lib/aurbuild/armv7l/root
:: Synchronizing package databases...
error: failed retrieving file 'core.db' from mirror.archlinuxarm.org : The requested URL returned error: 404
error: failed to update core (failed to retrieve some files)
error: failed retrieving file 'extra.db' from mirror.archlinuxarm.org : The requested URL returned error: 404
error: failed to update extra (failed to retrieve some files)
error: failed retrieving file 'community.db' from mirror.archlinuxarm.org : The requested URL returned error: 404
error: failed to update community (failed to retrieve some files)
error: failed retrieving file 'multilib.db' from mirror.archlinuxarm.org : The requested URL returned error: 404
error: failed to update multilib (failed to retrieve some files)
downloading aurto.db...
error: failed to synchronize all databases
==> ERROR: Failed to install packages to new root
==> ERROR: Failed to install all packages
`aur sync --no-view --no-confirm --chroot --database=aurto --makepkg-conf=/etc/aurto/makepkg-chroot.conf downgrade` failed with exit code 255 ✗
$ sudo pacman -Sy
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 alarm is up to date
 aur is up to date
 aurto is up to date
$ cat /etc/pacman.d/mirrorlist
Server = http://mirror.archlinuxarm.org/$arch/$repo

I only have this issue on my raspberry pi 2. No issue on my desktop.

(Feature Request) Ignore arch option

With makepkg you can append the argument --ignore-arch, with aur-utils, you can append the argument -A. Is this feature planned? A the moment, I have to edit the source code and add the option -A, whenever aur-utils is run.

My repo is running on Arch Linux Arm, Raspberry Pi 4, with an aarch64 kernel. So many aur packages don't have official support for aarch64, but builds and runs fine, w/o any issues.

Enable multilib repo

Currently aurto doesn't seem to recognise packages in the multilib repo, so fails to build all AUR packages that depend on them (e.g. openmpt→wine; air-for-steam→steam).

Can't add aurto if repo isn't in /etc/aurto/pacman-chroot.conf

I had some issues with my aurto Server that I couldn't figure out so I installed from scratch.
When getting to the step aurto add aurto it would fail because it couldn't statisfy the dependency "aurutils" from the repos.
It took me a while to figure out that the pacman config in the chroot is now pulled from /etc/aurto/pacman-chroot.conf.
After addding the aurto repo to that file (including /etc/pacman.d/aurto wont work since that isn't accessible in the chroot) adding aurto works as expected.

Maybe it makes sense to add the aurto repo to the /etc/aurto/pacman-chroot.conf on aurto init.

synchronize failed

Hello,
i use manjaro and i wanted to try auroto.

I installed with "paru -S aurto"
then "aurto init"
then i try "aurto add aurto" and get errors and i dont now why.

aurto add aurto aurto: Checking maintainer trust... ✓ aurto: Running: aur sync --no-view --no-confirm --chroot --database=aurto --makepkg-conf=/etc/aurto/makepkg-chroot.conf --pacman-conf=/etc/aurto/pacman-chroot.conf aurto Retrieving package files Running aur chroot --create --makepkg-conf /etc/aurto/makepkg-chroot.conf --pacman-conf /etc/a Retrieving package files Running aur chroot --update --makepkg-conf /etc/aurto/makepkg-chroot.conf --pacman-conf /etc/a Retrieving package files error: failed retrieving file 'core.db' from mirror.tuchola-dc.pl : The requested URL returned Retrieving package files error: failed retrieving file 'core.db' from mirror.math.princeton.edu : The requested URL ret Retrieving package files error: failed retrieving file 'core.db' from repo.ialab.dsu.edu : The requested URL returned e Retrieving package files error: failed retrieving file 'core.db' from mirror.is.co.za : The requested URL returned erro Retrieving package files error: failed retrieving file 'core.db' from manjaro.re : The requested URL returned error: 40 Retrieving package files error: failed retrieving file 'core.db' from mirrors.ucr.ac.cr : The requested URL returned er Retrieving package files error: failed retrieving file 'core.db' from mirror.xeonbd.com : The requested URL returned er Retrieving package files error: failed retrieving file 'core.db' from ct.mirror.garr.it : The requested URL returned er Retrieving package files error: failed retrieving file 'community.db' from mirror.tuchola-dc.pl : The requested URL ret Retrieving package files error: failed retrieving file 'community.db' from mirror.math.princeton.edu : The requested UR Retrieving package files error: failed retrieving file 'community.db' from repo.ialab.dsu.edu : The requested URL retur Retrieving package files error: failed retrieving file 'community.db' from mirror.is.co.za : The requested URL returned Retrieving package files error: failed retrieving file 'community.db' from manjaro.re : The requested URL returned erro Retrieving package files error: failed retrieving file 'community.db' from mirrors.ucr.ac.cr : The requested URL return Retrieving package files error: failed retrieving file 'community.db' from mirror.xeonbd.com : The requested URL return Retrieving package files error: failed retrieving file 'community.db' from ct.mirror.garr.it : The requested URL return Retrieving package files error: failed retrieving file 'multilib.db' from mirror.tuchola-dc.pl : The requested URL retu Retrieving package files error: failed retrieving file 'multilib.db' from mirror.math.princeton.edu : The requested URL Retrieving package files error: failed retrieving file 'multilib.db' from repo.ialab.dsu.edu : The requested URL return Retrieving package files error: failed retrieving file 'multilib.db' from mirror.is.co.za : The requested URL returned Retrieving package files error: failed retrieving file 'multilib.db' from manjaro.re : The requested URL returned error Retrieving package files error: failed retrieving file 'multilib.db' from mirrors.ucr.ac.cr : The requested URL returne Retrieving package files error: failed retrieving file 'multilib.db' from mirror.xeonbd.com : The requested URL returne Retrieving package files error: failed retrieving file 'multilib.db' from ct.mirror.garr.it : The requested URL returne Retrieving package files error: failed to synchronize all databases ==> Using [aurto] repository -> aurto: (none) -> 0.10.6-1 -> aurutils: (none) -> 3.1.2-2 ==> Retrieving package files Von https://aur.archlinux.org/aurutils = [aktuell] master -> origin/master Von https://aur.archlinux.org/aurto = [aktuell] master -> origin/master Running aur chroot --create --makepkg-conf /etc/aurto/makepkg-chroot.conf --pacman-conf /etc/aurto/pacman-chroot.conf Running aur chroot --update --makepkg-conf /etc/aurto/makepkg-chroot.conf --pacman-conf /etc/aurto/pacman-chroot.conf :: Synchronizing package databases... error: failed retrieving file 'core.db' from mirror.tuchola-dc.pl : The requested URL returned error: 404 error: failed retrieving file 'core.db' from mirror.math.princeton.edu : The requested URL returned error: 404 error: failed retrieving file 'core.db' from repo.ialab.dsu.edu : The requested URL returned error: 404 error: failed retrieving file 'core.db' from mirror.is.co.za : The requested URL returned error: 404 error: failed retrieving file 'core.db' from manjaro.re : The requested URL returned error: 404 error: failed retrieving file 'core.db' from mirrors.ucr.ac.cr : The requested URL returned error: 404 error: failed retrieving file 'core.db' from mirror.xeonbd.com : The requested URL returned error: 404 error: failed retrieving file 'core.db' from ct.mirror.garr.it : The requested URL returned error: 404 error: failed to update core (failed to retrieve some files) extra is up to date error: failed retrieving file 'community.db' from mirror.tuchola-dc.pl : The requested URL returned error: 404 error: failed retrieving file 'community.db' from mirror.math.princeton.edu : The requested URL returned error: 404 error: failed retrieving file 'community.db' from repo.ialab.dsu.edu : The requested URL returned error: 404 error: failed retrieving file 'community.db' from mirror.is.co.za : The requested URL returned error: 404 error: failed retrieving file 'community.db' from manjaro.re : The requested URL returned error: 404 error: failed retrieving file 'community.db' from mirrors.ucr.ac.cr : The requested URL returned error: 404 error: failed retrieving file 'community.db' from mirror.xeonbd.com : The requested URL returned error: 404 error: failed retrieving file 'community.db' from ct.mirror.garr.it : The requested URL returned error: 404 error: failed to update community (failed to retrieve some files) error: failed retrieving file 'multilib.db' from mirror.tuchola-dc.pl : The requested URL returned error: 404 error: failed retrieving file 'multilib.db' from mirror.math.princeton.edu : The requested URL returned error: 404 error: failed retrieving file 'multilib.db' from repo.ialab.dsu.edu : The requested URL returned error: 404 error: failed retrieving file 'multilib.db' from mirror.is.co.za : The requested URL returned error: 404 error: failed retrieving file 'multilib.db' from manjaro.re : The requested URL returned error: 404 error: failed retrieving file 'multilib.db' from mirrors.ucr.ac.cr : The requested URL returned error: 404 error: failed retrieving file 'multilib.db' from mirror.xeonbd.com : The requested URL returned error: 404 error: failed retrieving file 'multilib.db' from ct.mirror.garr.it : The requested URL returned error: 404 error: failed to update multilib (failed to retrieve some files) aurto 1024.0 B 0.00 B/s 00:00 [######################] 100% error: failed to synchronize all databases aur sync --no-view --no-confirm --chroot --database=aurto --makepkg-conf=/etc/aurto/makepkg-chroot.conf --pacman-conf=/etc/aurto/pacman-chroot.conf aurtofailed with exit code 1 ✗

When i try to open for example the url "mirror.xeonbd.com" in my webbrowser, the page will displayed.

I dont now whot i make wrong.

Thanks.

Improve aurto add output summarizing

Currently only certain lines are shown and are overwritten to reduce the output compared to normal aurutils.

It can get stuck easily as only shows lines that start with ==>, ->. We should show the latest line always, or maybe just remove the summary totally and print everything.

Cannot build signed packages with alternative GNUPGHOME

The update-aurto service is not able to find PGP keys for building signed AUR packages:

% gpg --recv-keys DBE7D3DD8C81D58D0A13D0E76BC26A17B9B7018A
gpg: key 6BC26A17B9B7018A: 12 duplicate signatures removed
gpg: key 6BC26A17B9B7018A: 33 signatures not checked due to missing keys
gpg: key 6BC26A17B9B7018A: 12 signatures reordered
gpg: key 6BC26A17B9B7018A: "Alad Wenter <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
Oct 28 16:27:01 leo update-aurto[90105]: ==> WARNING: PACKAGER should have the format 'Example Name <[email protected]>'
Oct 28 16:27:01 leo update-aurto[90105]: ==> Making package: aurutils 2.3.2-1 (Mon Oct 28 16:27:01 2019)
Oct 28 16:27:01 leo update-aurto[90105]: ==> Retrieving sources...
Oct 28 16:27:01 leo update-aurto[90105]:   -> Found aurutils-2.3.2.tar.gz
Oct 28 16:27:01 leo update-aurto[90105]:   -> Found aurutils-2.3.2.tar.gz.asc
Oct 28 16:27:01 leo update-aurto[90105]: ==> Validating source files with sha256sums...
Oct 28 16:27:01 leo update-aurto[90105]:     aurutils-2.3.2.tar.gz ... Passed
Oct 28 16:27:01 leo update-aurto[90105]:     aurutils-2.3.2.tar.gz.asc ... Skipped
Oct 28 16:27:01 leo update-aurto[90105]: ==> Verifying source file signatures with gpg...
Oct 28 16:27:01 leo update-aurto[90105]:     aurutils-2.3.2.tar.gz ... FAILED (unknown public key 6BC26A17B9B7018A)
Oct 28 16:27:01 leo update-aurto[90105]: ==> ERROR: One or more PGP signatures could not be verified!
Oct 28 16:27:01 leo update-aurto[90105]: ==> ERROR: Could not download sources.
Oct 28 16:27:01 leo update-aurto[90105]: `aur sync --no-view --no-confirm --database=aurto --makepkg-conf=/etc/aurto/makepkg-chroot.conf --chroot --upgrades` failed with exit code 255 ✗
Oct 28 16:27:01 leo sudo[90119]: pam_unix(sudo:session): session closed for user patrick
Oct 28 16:27:01 leo systemd[1]: update-aurto.service: Main process exited, code=exited, status=255/EXCEPTION
Oct 28 16:27:01 leo systemd[1]: update-aurto.service: Failed with result 'exit-code'.

I'm 99% certain this is because I use an alternate GNUPGPHOME.

I should be able to make this available to the service, by:

% sudo systemctl cat update-aurto.service
# /usr/lib/systemd/system/update-aurto.service
[Unit]
Description=Updates 'aurto' repo
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/lib/aurto/update-aurto

# /etc/systemd/system/update-aurto.service.d/10-gnupg.conf
[Service]
Environment=GNUPGHOME=/home/patrick/.config/gnupg

But this does not work.

I believe it comes down to how you invoke sudo, e.g.:

echo "Running: aur sync --no-view --no-confirm --database=aurto --makepkg-conf=/etc/aurto/makepkg-chroot.conf $chroot_arg --upgrades" >&2
sudo -u "$user" \

Without --preserve-env/-E, sudo will not pass that GNUPGHOME on to the invoked command, so it won't be able to find my keys.

I'm not sure the best way to fix this, since my initial attempt at just adding -E lead to other issues with other environment variables.

Error code 13 PermissionDenied

Hi, new install on my vps..

Error: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }

the /var/cache/pacman/aurto directory belongs to my user. how i can debug this?

thanks a lot

Choose provider when making package

aurto fails adding gala-git to the aurto repo because it requires granite-git as a make dep, but only requires libgranite.so as a runtime dep. This results in aurto installing granite first, then trying to replace it with granite-git and failing.

Is there any way to choose a provider when adding a package?

update-aurto fails silently

Hi, aurto is failing to update. It seems to have something to do with sudo requiring a password---which I would have thought was the normal behavior, but seeing as if aurto was expecting something else to happen, I'm not so sure.

This is the output of systemctl status update-aurto:

● update-aurto.service - Updates 'aurto' repo
     Loaded: loaded (/usr/lib/systemd/system/update-aurto.service; static)
     Active: failed (Result: exit-code) since Wed 2021-03-03 11:25:47 CET; 17min ago
TriggeredBy: ● update-aurto-startup.timer
             ● update-aurto.timer
    Process: 146112 ExecStart=/usr/lib/aurto/update-aurto (code=exited, status=1/FAILURE)
   Main PID: 146112 (code=exited, status=1/FAILURE)

Mar 03 11:25:47 beagle update-aurto[146506]: Cloning into 'dropbox'...
Mar 03 11:25:47 beagle update-aurto[146506]: Cloning into 'clight-git'...
Mar 03 11:25:47 beagle update-aurto[146506]: Running aur chroot --create --makepkg-conf /etc/aurto/makepkg-chroot.conf --pacman-conf /etc/aurto/pacman-chroot.conf
Mar 03 11:25:47 beagle update-aurto[146506]: Running aur chroot --update --makepkg-conf /etc/aurto/makepkg-chroot.conf --pacman-conf /etc/aurto/pacman-chroot.conf
Mar 03 11:25:47 beagle update-aurto[146506]: sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
Mar 03 11:25:47 beagle update-aurto[146506]: sudo: a password is required
Mar 03 11:25:47 beagle update-aurto[146127]: `aur sync --no-view --no-confirm --database=aurto --makepkg-conf=/etc/aurto/makepkg-chroot.conf --chroot --pacman-conf=/etc/aurto/pacman-chroot.conf --upgrades` failed with exit code 1 ✗
Mar 03 11:25:47 beagle sudo[146126]: pam_unix(sudo:session): session closed for user manolo
Mar 03 11:25:47 beagle systemd[1]: update-aurto.service: Main process exited, code=exited, status=1/FAILURE
Mar 03 11:25:47 beagle systemd[1]: update-aurto.service: Failed with result 'exit-code'.

Thanks!

Can't verify public key

Running $ aurto add lib32-ncurses5-compat-libs results in

==> Verifying source file signatures with gpg...
    ncurses-6.1.tar.gz ... FAILED (unknown public key 702353E0F7E48EDB)
==> ERROR: One or more PGP signatures could not be verified!
==> ERROR: Could not download sources.

I've tried running

$ sudo pacman-key --recv-keys 702353E0F7E48EDB
$ sudo pacman-key --lsign-key 702353E0F7E48EDB

Which worked fine, but I guess it doesn't carry over into the chroot.

Allow custom makepkg.conf

Aurto currently seems to ignore makepkg.conf, meaning it uses xz to compress packages even though I have chosen pixz as my compressor. It would be nice to allow a custom makepkg.conf to enable the use of other compressors, though this would probably need some mechanism for installing that software in the chroot in the first place.

Add `info` command

Add an info command that prints aurto repo:

  • Packages names
  • Version / installed version
  • Added date
  • Last built date
  • Last check date
  • Last build successful/failed

Pacman 6 support - ParallelDownloads option

Pacman 6 will be introducting a new pacman.conf option for ParallelDownloads

Here is the error with aurto

warning: config /etc/pacman.conf line 40: unknown option 'ParallelDownloads'
/usr/bin/aurto: line 25: 2198725 Segmentation fault      sudo pacsync aurto > /dev/null

Even though pacman 6 is just in Alpha currently, I wanted to get this note here so support for the ParallelDownloads option can be added before it comes out.

Transition to aurutils 2

Once aurutils releases version 2.0.0 on the aur this project will transition to using it.

aurutils-2 brings many changes, in particular it allows aurto to drop the -git package update checks making aurto much simpler.

update-aurto password is required

Hi, installed aurto and made aurto init.
Yet it fails to update packages with the following error:

  -- Journal begins at Wed 2020-10-14 12:48:22 MSK, ends at Fri 2021-02-26 14:27:48 MSK. --
  Feb 26 13:33:32 jp-laptop.local.domain update-aurto[114403]:  Using [aurto] repository
  Feb 26 13:33:34 jp-laptop.local.domain update-aurto[114403]:  Using [aurto] repository wee-slack: 2.6.0-1 -> 2.7.0-1
  Feb 26 13:33:34 jp-laptop.local.domain update-aurto[114403]:  Retrieving package files
  Feb 26 13:33:34 jp-laptop.local.domain update-aurto[114403]:  Retrieving package files Cloning into 'wee-slack'...
  Feb 26 13:33:35 jp-laptop.local.domain update-aurto[114403]:  Retrieving package files Running aur chroot --create --makepkg-conf /etc/aurto/makepkg-chroot.conf --pacman-conf /etc/aurto/pacman-chroot.conf
  Feb 26 13:33:35 jp-laptop.local.domain update-aurto[114403]:  Retrieving package files Running aur chroot --update --makepkg-conf /etc/aurto/makepkg-chroot.conf --pacman-conf /etc/aurto/pacman-chroot.conf
  Feb 26 13:33:35 jp-laptop.local.domain sudo[114597]: pam_unix(sudo:auth): conversation failed
  Feb 26 13:33:35 jp-laptop.local.domain sudo[114597]: pam_unix(sudo:auth): auth could not identify password for [jp]

What did I do wrong?

error: no sync db 'aurto' configured?

I'm a new user who just installed Arch. I followed the instructions in the aurto README.md, but I run into this error when trying to run "aurto add aurto"

"deltas" causing errors

score@kirisame ~ % sudo pacman -Syu
:: Synchronising package databases...
 testing                                            14.9 KiB  1061K/s 00:00 [###########################################] 100%
 core                                              135.0 KiB  2.64M/s 00:00 [###########################################] 100%
 extra                                            1691.4 KiB  3.24M/s 00:01 [###########################################] 100%
 community-testing                                  12.5 KiB  4.08M/s 00:00 [###########################################] 100%
 community                                           4.8 MiB  3.33M/s 00:01 [###########################################] 100%
 multilib-testing                                    3.5 KiB   272K/s 00:00 [###########################################] 100%
 multilib                                          177.0 KiB  3.46M/s 00:00 [###########################################] 100%
 aurto is up to date
:: Starting full system upgrade...
error: invalid name for database entry 'retroshare-git.deltas'
error: could not parse package description file 'retroshare-git.deltas' from db 'aurto'
error: invalid name for database entry 'retroshare-git.deltas'
error: could not parse package description file 'retroshare-git.deltas' from db 'aurto'
[repeated for a further 820 lines]
score@kirisame ~ % tar tvf /var/cache/pacman/aurto/aurto.db.tar  | grep delta
-rw-r--r-- score/score     452 2019-01-22 01:06 discord-0.0.8-2/deltas
-rw-r--r-- score/score     356 2019-01-22 01:04 discord-canary-0.0.68-1/deltas
-rw-r--r-- score/score     759 2019-01-25 08:43 dolphin-emu-nogui-git-5.0.r9427.224b23b979-1/deltas
-rw-r--r-- score/score     265 2019-01-25 02:27 hydrus-337-1/deltas
-rw-r--r-- score/score     150 2019-01-22 01:02 jdk8-8u202-1/deltas
-rw-r--r-- score/score     177 2019-01-22 19:52 mingw-w64-gcc-8.2.0-3/deltas
-rw-r--r-- score/score     251 2019-01-22 00:57 retroshare-git.deltas
-rw-r--r-- score/score     145 2019-01-22 00:53 yay-9.1.0-1/deltas

Not sure how it got in there, but it's a file in aurto.db.tar called retroshare-git.deltas. I had a similar problem on another PC a week or so ago (for discord-canary.deltas I believe) but I worked around it before I could find anything interesting.

This error goes away if I delete that file (I chose to do so by archivemounting it and rming the specific file in question).

I am guessing this is probably going to go straight upstream to aurutils, but I'm reporting it here as this tool is what managed to hit the bug for me.

Documentation / recommendations about automatic updates

Hi!

I like aurto, it seems to fit quite will into my workflow.

However, I find it's default services a bit too intrusive - namely, updating the repo on every startup and upgrading all cvs packages daily.

Now, in my use case the computer is a desktop computer. I might be doing something graphics sensitive - working, gaming, organizing things or whatever - and definitely don't want a huge compile to start in the background when I actually need the computer.

What I'm suggesting is documentation about how to disable the default behavior, and perhaps a few alternatives or recommendations for different kind of use cases (for example: change time to one where the computer is not used etc.; use cron instead or whatever). IMHO the default should be something less intrusive (i.e. disabled), but maybe that's just me. It's good there is the facility to do it available but perhaps it should be opt-in?

My goal: I don't want any automatic updates from AUR, but to trigger all updates manually (only). I've disabled all services and timers which came with aurto.

Add zsh completion

Zsh completion would compliment the existing bash & fish shell completion. It should:

  • Complete basic subcommands add|addpkg|remove
  • Complete aurto remove with current aurto packages
  • Complete aurto add with a aur package search

As I'm not currently a zsh user I'm unlikely to do this myself any time soon.

Migrate away from bash

I'm not 100% comfortable with adding more features to what's there now as bash is quite horrible, even with shellcheck.

Improve root & user separation

Can we improve what bits of aurto are root or user?

Currently we require both concepts, the systemd timers run as root, so some root-owned config makes sense for them.

Customise PKGBUILD when adding package

Is there anyway to edit the PKGBUILD of a package that you want to add? When I was using aurutils standalone, I was able to do this but I'm not sure how to go about it with the aurto repository.

Fails to build python split package

The python-usbtmc package fails to build:

$ aurto add python-usbtmc                                                                      
aurto: Checking maintainer trust... ✓
aurto: Running: aur sync --no-view --no-confirm --chroot --database=aurto --makepkg-conf=/etc/aurto/makepkg-chroot.conf python-usbtmc
 ERROR: Build failed, check /var/lib/aurbuild/x86_64/nicoulaj/build 
==> Using [aurto] repository
  -> python-usbtmc: (none) -> 0.8-1
==> Retrieving package files
From https://aur.archlinux.org/python-usbtmc
 = [up to date]      master     -> origin/master
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 aurto is up to date
:: Starting full system upgrade...
 there is nothing to do
container path: /var/lib/aurbuild/x86_64
Running makechrootpkg -cu --
==> Synchronizing chroot copy [/var/lib/aurbuild/x86_64/root] -> [nicoulaj]...done
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 aurto is up to date
:: Starting full system upgrade...
 there is nothing to do
==> Making package: python-usbtmc 0.8-1 (Fri Feb  8 10:52:19 2019)
==> Retrieving sources...
  -> Found python-usbtmc-0.8.tar.gz
==> Validating source files with sha256sums...
    python-usbtmc-0.8.tar.gz ... Passed
==> Making package: python-usbtmc 0.8-1 (Fri 08 Feb 2019 10:52:20 AM CET)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found python-usbtmc-0.8.tar.gz
==> WARNING: Skipping all source file integrity checks.
==> Extracting sources...
  -> Extracting python-usbtmc-0.8.tar.gz with bsdtar
==> Entering fakeroot environment...
==> Starting package_python-usbtmc()...
/startdir/PKGBUILD: line 17: python: command not found
==> ERROR: A failure occurred in package_python-usbtmc().
    Aborting...
==> ERROR: Build failed, check /var/lib/aurbuild/x86_64/nicoulaj/build
`aur sync --no-view --no-confirm --chroot --database=aurto --makepkg-conf=/etc/aurto/makepkg-chroot.conf python-usbtmc` failed with exit code 255 ✗

It seems the python dependency does not get installed in the chroot:

$ ls /var/lib/aurbuild/x86_64/root/usr/bin/python                                              
ls: cannot access '/var/lib/aurbuild/x86_64/root/usr/bin/python': No such file or directory

The PKGBUILD looks correct to me though ?

My guess is that dependencies declared in package() are not installed at all, can't see any trace of python-pyusb in the chroot either:

$ ls /var/lib/aurbuild/x86_64/root/usr/lib/python3.7/site-packages/                            
libmount/  drv_libxml2.py  libxml2mod.so*  libxml2.py

Modularize trust system

Hi,

I would like to be able to manually review changes to packages, using a (Telegram/Slack/Whatever)Bot or a Webinterface with E-Mail notifications. To be able to do this: I propose the following trust system:
To determine if an update is trusted, a list of modules will be provided in the config. Then when an update is available, every trust module is executed with some metadata and the repo diff as arguments. Every module can return three values: "Trust", "Don't Trust", "Can't decide" and "WaitOnCallback". "Can't decide" will cause the next module in the list to be called. User prompts should be allowed to modules when a special argument is given. "WaitOnCallback" means that the module can't currently decide and will present it's decision in the future.

Example list of modules:

  • Trivialdiff: Accept any diff where only the package version and the hashes change
  • Maintainer: Accept any package by a trusted maintainer. This would be the only configured module by default, since it reflects the current behaviour. With the interactive flag set, this module can ask the user whether the maintainer should be trusted
  • Ask user: Ask the user via some kind of Notification system.

Unable to lock database ?

anthony@hillserve ~ % aurto add aurto
aurto: Checking maintainer trust... ✓
aurto: Running: aur sync --no-view --no-confirm --chroot --database=aurto --make                                                                                                                                                             pkg-conf=/etc/aurto/makepkg-chroot.conf aurto
 Retrieving package files
==> Using [aurto] repository
  -> aurto: (none) -> 0.9.7-1
  -> aurutils: (none) -> 2.3.3-1
==> Retrieving package files
From https://aur.archlinux.org/aurutils
 = [up to date]      master     -> origin/master
From https://aur.archlinux.org/aurto
 = [up to date]      master     -> origin/master
:: Synchronizing package databases...
error: failed to update core (unable to lock database)
error: failed to update extra (unable to lock database)
error: failed to update community (unable to lock database)
error: failed to update multilib (unable to lock database)
error: failed to update aurto (unable to lock database)
error: failed to synchronize all databases
`aur sync --no-view --no-confirm --chroot --database=aurto --makepkg-conf=/etc/a                                                                                                                                                             urto/makepkg-chroot.conf aurto` failed with exit code 1 ✗
aurto add aurto  5.49s user 1.23s system 68% cpu 9.833 total

I completely uninstalled aurto and I'm still unable to add packages or let aurto update. The database seems to be locked though I can't find a lock anywhere in my filesystem.

Main process exited, code=exited, status=1/FAILURE

I'm a little confused, I just started using aurto, and it seems to be working fine, but I'm afraid the background rebuilding and updating of packages may not be working. Please see my logs below:

-- Logs begin at Fri 2019-07-05 22:55:18 PDT, end at Tue 2019-07-09 20:19:45 PDT. --
Jul 09 19:05:11 archi systemd[1]: Started Updates 'aurto' repo.
Jul 09 19:05:11 archi update-aurto[800]: aurto: Checking maintainer trust...
Jul 09 19:05:11 archi update-aurto[800]: Error: Error { description: "Couldn\'t resolve host name", code: 6, extra: None }
Jul 09 19:05:11 archi systemd[1]: update-aurto.service: Main process exited, code=exited, status=1/FAILURE
Jul 09 19:05:11 archi systemd[1]: update-aurto.service: Failed with result 'exit-code'.
Jul 09 19:27:20 archi systemd[1]: Started Updates 'aurto' repo.
Jul 09 19:27:20 archi update-aurto[7459]: aurto: Checking maintainer trust...
Jul 09 19:27:21 archi update-aurto[7459]: Checking maintainer trust... ✓
Jul 09 19:27:21 archi update-aurto[7459]: Running: aur sync --no-view --no-confirm --database=aurto --makepkg-conf=/etc/aurto/makepkg-chroot.conf --chroot --upgrades
Jul 09 19:27:21 archi sudo[7473]:     root : TTY=unknown ; PWD=/ ; USER=chris ; COMMAND=/usr/lib/aurto/summerize-build aur sync --no-view --no-confirm --database=aurt>
Jul 09 19:27:21 archi sudo[7473]: pam_unix(sudo:session): session opened for user chris by (uid=0)
Jul 09 19:27:21 archi update-aurto[7459]:  Using [aurto] repository
Jul 09 19:27:22 archi update-aurto[7459]:  Using [aurto] repository there is nothing to do
Jul 09 19:27:22 archi sudo[7473]: pam_unix(sudo:session): session closed for user chris
Jul 09 19:27:22 archi systemd[1]: update-aurto.service: Main process exited, code=exited, status=1/FAILURE
Jul 09 19:27:22 archi systemd[1]: update-aurto.service: Failed with result 'exit-code'.

It appears to be giving a positive "there is nothing to do" message, but it's sandwiched in between a couple of errors, and I'm not sure why.

Is this just normal operation?

Empty default-trusted-users.txt

This can go out of sync. This sticks around after install so if trusted users are removed it could be improperly trusting.

update-aurto fails silently due to repo desync

To preface, I am a strong opponent of the use of set -e, but I shall try not to let that get the better of me here.

The update-aurto script currently fails silently for me:

% sudo systemctl status update-aurto
● update-aurto.service - Updates 'aurto' repo                  
   Loaded: loaded (/usr/lib/systemd/system/update-aurto.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2019-07-29 01:12:55 BST; 4min 26s ago
  Process: 53039 ExecStart=/usr/lib/aurto/update-aurto (code=exited, status=1/FAILURE)
 Main PID: 53039 (code=exited, status=1/FAILURE)

Jul 29 01:12:55 kirisame systemd[1]: Started Updates 'aurto' repo.
Jul 29 01:12:55 kirisame update-aurto[53039]: aurto: Checking maintainer trust...
Jul 29 01:12:55 kirisame sudo[53189]:     root : TTY=unknown ; PWD=/ ; USER=score ; COMMAND=/usr/bin/aurto remove qt4
Jul 29 01:12:55 kirisame sudo[53189]: pam_unix(sudo:session): session opened for user score by (uid=0)
Jul 29 01:12:55 kirisame sudo[53189]: pam_unix(sudo:session): session closed for user score
Jul 29 01:12:55 kirisame systemd[1]: update-aurto.service: Main process exited, code=exited, status=1/FAILURE
Jul 29 01:12:55 kirisame systemd[1]: update-aurto.service: Failed with result 'exit-code'.

After running it under bash -x, it says this:

% sudo bash -x /usr/lib/aurto/update-aurto
+ set -eu
+ readonly 'AURVCS=.*-(bzr|git|hg|svn)$'
+ AURVCS='.*-(bzr|git|hg|svn)$'
+ [[ 0 -ne 0 ]]
+++ dirname /usr/lib/aurto/update-aurto
++ cd /usr/lib/aurto
++ pwd
+ lib_dir=/usr/lib/aurto
++ cat /usr/lib/aurto/user
+ user=score
+ source /usr/lib/aurto/shared-functions
++ test -t 1
++ export chroot_arg=--chroot
++ chroot_arg=--chroot
++ test -f /usr/lib/aurto/conf-disable-chroot
+ '[' -z score ']'
+ pacsync aurto
+ '[' -f /etc/aurto/trusted-users ']'
+ echo 'aurto: Checking maintainer trust...'
aurto: Checking maintainer trust...
+++ pacman -Slq aurto
++ /usr/lib/aurto/trust-check {snip huge package list}
+ mistrust=qt4:dviktor
+ '[' -z qt4:dviktor ']'
++ not_in_aur_packages qt4:dviktor
++ local packages=
++ read -r line
++ '[' -n qt4:dviktor ']'
++ [[ qt4:dviktor = *\:\:\n\o\t\-\i\n\-\a\u\r* ]]
++ read -r line
++ echo ''
++ sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
++ tr -s ' '
+ not_in_aur=
+++ echo qt4:dviktor
+++ grep -v ::
+++ cut -d: -f1
++ new_line_to_space_separated_unique qt4
++ local space_sep=
++ read -r line
++ '[' -n qt4 ']'
++ [[ '' != *\ \q\t\4\ * ]]
++ space_sep=' qt4 '
++ read -r line
++ echo ' qt4 '
++ sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
++ tr -s ' '
+ mistrusted_pkgs=qt4
+ '[' -n '' ']'
+ '[' -n qt4 ']'
+ aurto remove qt4

This is failing silently with set -e, but what's weird is that aurto remove is also failing silently.

% bash -x aurto remove qt4                  
+ set -eu
+ version=0.9.4
+ command=remove
+ arg1=qt4
+ [[ 1000 -eq 0 ]]
+++ dirname /bin/aurto
++ cd /bin
++ pwd
+ bin_dir=/bin
+ lib_dir=/bin/../lib/aurto
+ source /bin/../lib/aurto/shared-functions
++ test -t 1
++ export chroot_arg=--chroot
++ chroot_arg=--chroot
++ test -f /usr/lib/aurto/conf-disable-chroot
+ '[' remove == add ']'
+ '[' remove == addpkg ']'
+ '[' remove == remove ']'
+ '[' -n qt4 ']'
+ removed=
+ for pkg in "${@:2}"
++ repo-remove /var/cache/pacman/aurto/aurto.db.tar qt4
+ remove_out='==> Extracting database to a temporary location...
==> Extracting database to a temporary location...
==> Searching for package '\''qt4'\''...
==> ERROR: Package matching '\''qt4'\'' not found.
==> No packages modified, nothing to do.'

This seems to be a similar culprit: unexpected false exit code under set -e.

Not sure how the desynchronisation happened but the fix seemed to be to run:

sudo rm /var/lib/pacman/sync/aurto.db
sudo pacman -Syu

Which got the aurto database back in line with the pacman sync database (note that the rm was required; otherwise it falsely reported that it was up-to-date).
In the past I have had to poke around in the db before to remove things like delta files for packages that no longer exist, but otherwise I'm not sure what the cause might have been. This seems to have been more of a recent development, unrelated to that.

So I wanted to report this as two problems:

  1. The db getting out of sync(?) causing failure in an early stage of update-aurto (maybe there is a cheap way to sync it before the script sets off properly?)
  2. No error message for failed package removal

Stuck validating source files

I have not seen this mentioned anywhere yet, but no matter which aur package I try to add, aurto never advances past the validation stage. sha256sum is installed, no further output or error is given. No verbose or debug options seem to exist.

Add simple maintainer trust system

aurto is based on maintainer trust but these maintainers can change from one version to the next to people a user may trust less so.

A better system may be:

  • on aurto add foo prompt to add the maintainers of package foo to the local TU set
  • before each auto-update check with aurweb for the current maintainer and if they are not a local TU remove the package from the aurto repo.
  • maintainerless packages are allowed, even the most paranoid people trust no-one.

Local TUs are stored in a \n separated list of aur usernames initially populated with remote TUs.

If no local TU file is present the trust system is disabled (current behaviour).

This should allow updating current users without changing behaviour, (no local TU file created on update).

Difference beetwen db and real packages

Hi there,
first of all: Thanks for this great software

My problem is simple: i don't know how but a lot of package is missing from the repo but are listed in the aurto repo db:


aurto status:
aurto v0.9.0 managing 122 aur packages

but


 ls -lrt /var/cache/pacman/aurto/ | wc -l
32

I don't now this is possible and how i can easy rebuild all packages.

Thanks

Packager email warnings in aurto status

I noticed recently that something (I think makepkg) has started showing this warning for a lot of packages:

WARNING: PACKAGER should have the format 'Example Name <[email protected]>'

Would it be possible to have this entry excluded as a possible match for the Log Warnings shown by aurto status? It would make it easier to see where actual issues may exist.

Perhaps with (assuming I got my grep-fu right):

journalctl -eu update-aurto --since '1 week ago' | grep -Ev 'Skipping all source file integrity|PACKAGER should have the format' | grep -E 'ERROR|WARNING' -A5 -B5

[doc] Advanced documentation / add wiki section

At the moment most documentation is in README.md. While this is sufficient for most basic stuff it took quite some time to understand how the tools used work together, especially when dealing with GPG or custom repositories. I couldn't really find any advanced documentation for either aurto or aurutils and while the aurto repo would be the place I would look for this first I'm not sure the readme is a good place for this rather specific stuff. Any ideas on how to make this knowledge accessible or easier to find for other aurto users? Maybe enable the wiki section?

Things I have on my notebook:

  • Importing GPG-keys, for example to allow signed packages to be verified
    aurto uses a dedicated user for most operations. Keys must be added to the keyring of this user, for example:
    sudo -u aurto gpg --search 0x123456789abcdef
  • Adding a key to the pacman keystore
    aurto uses aurutils/aurbuild to build packages. Since their chroot is synced, keys added there will also be available during aurto builds. For example:
    arch-chroot /var/lib/aurbuild/x86_64/root pacman-key -r 0x123456789abcdef
  • Adding an repository
    Additional repositorys may be specified in /etc/aurto/pacman-chroot.conf.
    (granted, thats somewhat already in readme...)

Support for custom vcs PKGBUILDs not in aur

Note: I am currently using #36 for my repo.

Is custom PKGBUILDs a feature in aurto? I run a repo for raspberry pi 4 aarch64 on arch linux arm. My pkgbuilds (https://github.com/Titaniumtown/raspi4_pkgbuilds) aren't in the aur. So I have to manually check the raspberry pi kernel github for updates to see if I need to rebuild by using aur build... and not aurto. It would be super handy to be able to have my custom vcs PKGBUILDs just update when the aurto service is run.

Is this feature planned?

Thanks

Require/hint `wheel` group on aurto init

wheel group is needed for passwordless sudo commands that update-aurto uses. Currently it's just assumed that the user will already be in this group.

Warning or failing aurto init if the user is not in wheel should solve this.

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.