You are not logged in.
Thanks I'll try this next time.
I have one more follow-up question though. As of now, I converged on using aurutils like this when upgrading packages:
aur repo --upgrades # Check for upgrades. This is somewhat redundant but gives a nice overview I guess.
aur sync --upgrades --no-build # Check for differences by looking at the diff (this should hopefully become easier if I can actually make something out
aur sync --upgrades --no-view # Build and sync packages
sudo pacman -Syu
There are two problems with this:
I can't invoke the --no-build step twice to see the diff, since by then the changes have already been merged. Is it possible to actually only fetch (not pull) and diff with remote?
Between the two last steps, the system is theoretically in an inconsistent state. Is it possible to only build the packages, so that they are synced only in the very last step?
My intention is to have the flow like this:
Check for upgrades
git-fetch and check for differences
If OK, git-pull and build
Sync everything with pacman -Syu
Is this reasonable and possible with aur-sync?
Offline
I can't invoke the --no-build step twice to see the diff, since by then the changes have already been merged. Is it possible to actually only fetch (not pull) and diff with remote?
You can just look at the diffs and abort the process with :cq in vifm. This (exits vifm with status 1 and) will keep the diffs available for later inspection. It also doesn't require a separate --no-build step.
Between the two last steps, the system is theoretically in an inconsistent state. Is it possible to only build the packages, so that they are synced only in the very last step?
Either run pacman -Syu before aur-sync, or build in a container (aur sync --chroot).
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
Between the two last steps, the system is theoretically in an inconsistent state. Is it possible to only build the packages, so that they are synced only in the very last step?
Either run pacman -Syu before aur-sync, or build in a container (aur sync --chroot).
I am trying to understand how chroot changes things here.
Does it prevent packages from being synced? After all, many (all?) AUR packages enter a chroot jail during upgrade.
Or does supplying --chroot change the inherent behavior of aur-sync?
Ok, after looking at the source, I traced it to /usr/lib/aurutils/aur-build.407, where syncing the package is skipped if either chroot or no_sync is set.
If this is in the aur-sync documentation, I did not see it.
Offline
pacman -Syu is always run inside the container before the build. Thus, any packages you build are built against latest repo packages. The container has write access to your local repository, so the newly built packages and repository are written there.
When you then run pacman -Syu yourself (on the host) , pacman's copy of your local repository is updated, together with the AUR packages built int he container.
Last edited by Alad (2023-09-29 13:10:31)
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
First, thanks very much to AladW and everyone that has contributed to this project. It's been exactly what I need to maintain the custom packages on my arch systems for many years now.
However, lately I have been suffering a lot of pain with building using nspawn containers.
I am using aurutils 18.3 and have rebuilt my chroot envs following the recommendation from #477
Building outside of the chroot with aurutils works fine.
Command:
aur sync --rebuild --sign --chroot --pacman-conf <my_custom_pacman_conf>
Some examples:
linux-bcachefs-git:
note: this build failed after 45 minutes compile and on the last steps:
==> Starting package_linux-bcachefs-git-docs()...
/startdir/PKGBUILD: line 389: version: No such file or directory
==> ERROR: Build failed, check /var/lib/aurbuild/x86_64/demizer/build
And AppImage based packages, tested orca-slicer-bin and superslicer-bin:
/startdir/PKGBUILD: line 25: /build/superslicer-bin/src/SuperSlicer-ubuntu_18.04-2.4.58.5.AppImage: cannot execute: required file not found
==> ERROR: A failure occurred in prepare().
Aborting...
==> ERROR: Build failed, check /var/lib/aurbuild/x86_64/demizer/build
and ...
==> Starting prepare()...
/startdir/PKGBUILD: line 18: ./OrcaSlicer_Linux_V1.7.0.AppImage: cannot execute: required file not found
==> ERROR: A failure occurred in prepare().
Aborting...
==> ERROR: Build failed, check /var/lib/aurbuild/x86_64/demizer/build
It seems these packages are having trouble with the bindmounts from the package extract dir from the host to the container. I searched the docs and the source code to see if I can disable mounting into the container but I haven't found anything relevant. I want everything to happen in the container and then copy the files back to the host when done as this is less likely to cause issues with the various PKGBUILDS. I believe this is how it used to work.
Does anyone know how to overcome these issues while still building in a container?
Offline
Have you edited and saved the PKGBUILD while the build was in progress? This behavior is exactly what you get when you change a bash script while it is running...
Offline
Have you edited and saved the PKGBUILD while the build was in progress? This behavior is exactly what you get when you change a bash script while it is running...
No not at all. aurutils copies the package srcs to /tmp
Offline
aurutils copies the package srcs to /tmp
No such copy is performed. Any source repositories are retrieved to and built in XDG_CACHE_HOME/aurutils/sync by default (if using aur-sync) or the current directory (if using aur-fetch + aur-build).
To the issue at hand, it looks like a problem with devtools. Check if you can reproduce your issue with extra-x86_64-build.
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
To the issue at hand, it looks like a problem with devtools. Check if you can reproduce your issue with extra-x86_64-build.
Ah of course. I will take a look at that and report an issue if anything comes up. Thank you!
Offline
I had a similar issue, but the fatal error only occurred after "Starting package()..." stage. Maybe it's needed to add AURUTILS_VERSION=$pkgver in the PKGBUILD in package() too? After that I had no problems
Current output:
==> Making package: aurutils 18.5-1 (Wed 29 Nov 2023 21:44:00 MSK)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found aurutils-18.5.tar.gz
==> Validating source files with sha256sums...
aurutils-18.5.tar.gz ... Passed
==> Extracting sources...
-> Extracting aurutils-18.5.tar.gz with bsdtar
==> Removing existing $pkgdir/ directory...
==> Starting build()...
sed -e 's|AURUTILS_LIB_DIR|/usr/lib/aurutils|' \
-e 's|AURUTILS_VERSION|18.5|' aur.in >aur
make[1]: Entering directory '/home/qubeck/aurutils/src/aurutils-18.5/completions'
make[1]: Nothing to be done for 'bash'.
make[1]: Nothing to be done for 'zsh'.
make[1]: Leaving directory '/home/qubeck/aurutils/src/aurutils-18.5/completions'
==> Entering fakeroot environment...
==> Starting package()...
fatal: No names found, cannot describe anything.
sed -e 's|AURUTILS_LIB_DIR|/usr/lib/aurutils|' \
-e 's|AURUTILS_VERSION|18.5|' aur.in >aur
make[1]: Entering directory '/home/qubeck/aurutils/src/aurutils-18.5/completions'
make[1]: Leaving directory '/home/qubeck/aurutils/src/aurutils-18.5/completions'
make[1]: Entering directory '/home/qubeck/aurutils/src/aurutils-18.5/perl'
make[1]: Leaving directory '/home/qubeck/aurutils/src/aurutils-18.5/perl'
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Removing static library files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "aurutils"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Adding changelog file...
-> Adding install file...
-> Generating .MTREE file...
-> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: aurutils 18.5-1 (Wed 29 Nov 2023 21:44:02 MSK)
Modified PKGBUILD:
build() {
cd "$pkgname-$pkgver"
make AURUTILS_VERSION=$pkgver
}
package() {
cd "$pkgname-$pkgver"
make PREFIX=/usr ETCDIR=/etc DESTDIR="$pkgdir" AURUTILS_VERSION=$pkgver install
}
Last edited by qubeck (2023-11-29 19:56:21)
Offline
Not sure how that would happen unless `aur` is removed between build() and package() ...
With the PKGBUILD above you could leave out build() entirely as well.
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
No idea how to get past this:
aur sync -u 15:50:15
==> Using [redfruit] repository
-> cython2 (none) -> 0.29.36-1
-> python2 (none) -> 2.7.18-9
-> python2-appdirs (none) -> 1.4.4-6
-> python2-atomicwrites (none) -> 1.4.1-1
-> python2-attrs (none) -> 21.4.0-1
-> python2-automat (none) -> 20.2.0-7
-> python2-backports (none) -> 1.1-2
-> python2-backports-abc (none) -> 0.5-3
-> python2-backports.functools_lru_cache (none) -> 1.6.4-3
-> python2-cachecontrol (none) -> 0.12.6-7
-> python2-cffi (none) -> 1.15.1-3
-> python2-chardet (none) -> 4.0.0-3
-> python2-colorama (none) -> 0.4.5-1
-> python2-configparser (none) -> 4.0.2-3
-> python2-constantly (none) -> 15.1.0-9
-> python2-contextlib2 (none) -> 0.6.0.post1-2
-> python2-coverage (none) -> 5.5-3
-> python2-cryptography (none) -> 3.3.2-2
-> python2-cryptography-vectors (none) -> 3.3.2-1
-> python2-csv23 (none) -> 0.3.4-1
-> python2-dateutil (none) -> 2.8.2-3
-> python2-distlib (none) -> 0.3.3-1
-> python2-distro (none) -> 1.6.0-1
-> python2-docutils (none) -> 0.18.1-1
-> python2-enum34 (none) -> 1.1.10-2
-> python2-flaky (none) -> 3.7.0-4
-> python2-freezegun (none) -> 0.3.15-8
-> python2-funcsigs (none) -> 1.0.2-4
-> python2-futures (none) -> 3.3.0-3
-> python2-genty (none) -> 1.3.2-8
-> python2-graphviz (none) -> 0.16-1
-> python2-html5lib (none) -> 1.1-12
-> python2-hyperlink (none) -> 21.0.0-3
-> python2-hypothesis (none) -> 4.57.1-1
-> python2-idna (none) -> 2.10-4
-> python2-importlib-metadata (none) -> 2.1.3-2
-> python2-incremental (none) -> 21.3.0-1
-> python2-ipaddress (none) -> 1.0.23-2
-> python2-iso8601 (none) -> 0.1.16-1
-> python2-linecache2 (none) -> 1.0.0-5
-> python2-m2r (none) -> 0.2.1-7
-> python2-mistune (none) -> 0.8.4-6
-> python2-mock (none) -> 3.0.5-9
-> python2-monotonic (none) -> 1.6-2
-> python2-more-itertools (none) -> 5.0.0-3
-> python2-msgpack (none) -> 1.0.4-2
-> python2-nose (none) -> 1.3.7-13
-> python2-numpy (none) -> 1.16.6-3
-> python2-packaging (none) -> 20.9-7
-> python2-pathlib2 (none) -> 2.3.7.post1-2
-> python2-pbr (none) -> 5.9.0-2
-> python2-pep517 (none) -> 0.11.0-2
-> python2-pexpect (none) -> 4.8.0-1
-> python2-pip (none) -> 20.3.4-1
-> python2-pluggy (none) -> 0.13.1-9
-> python2-ply (none) -> 3.11-8
-> python2-pretend (none) -> 1.0.9-9
-> python2-progress (none) -> 1.3-2
-> python2-ptyprocess (none) -> 0.7.0-1
-> python2-py (none) -> 1.11.0-2
-> python2-pyasn1 (none) -> 0.4.8-5
-> python2-pyasn1-modules (none) -> 0.2.8-4
-> python2-pycparser (none) -> 2.21-1
-> python2-pycurl (none) -> 7.45.1-7
-> python2-pygments (none) -> 2.5.2-2
-> python2-pyhamcrest (none) -> 1.10.1-1
-> python2-pyopenssl (none) -> 21.0.0-6
-> python2-pyparsing (none) -> 2.4.7-1
-> python2-pytest (none) -> 4.6.11-2
-> python2-pytest-cov (none) -> 2.12.1-3
-> python2-pytest-expect (none) -> 1.1.0-8
-> python2-pytest-freezegun (none) -> 0.4.2-1
-> python2-pytest-runner (none) -> 5.2-5
-> python2-pytest-timeout (none) -> 1.4.2-5
-> python2-pytz (none) -> 2024.1-1
-> python2-requests (none) -> 2.27.1.r5.gfa1b0a36-1
-> python2-resolvelib (none) -> 0.5.5-1
-> python2-retrying (none) -> 1.3.3-13
-> python2-scandir (none) -> 1.10.0-8
-> python2-service-identity (none) -> 21.1.0-1
-> python2-setuptools-scm 5.0.2-1 -> 5.0.2-2
-> python2-singledispatch (none) -> 3.7.0-3
-> python2-sortedcontainers (none) -> 2.4.0-1
-> python2-toml (none) -> 0.10.2-7
-> python2-tornado (none) -> 5.1.1-3
-> python2-traceback2 (none) -> 1.4.0-7
-> python2-trollius (none) -> 2.2.1-1
-> python2-trustme (none) -> 0.9.0-5
-> python2-twisted (none) -> 20.3.0-5
-> python2-typing (none) -> 3.10.0.2-1
-> python2-u-msgpack (none) -> 2.8.0-3
-> python2-unittest2 (none) -> 1.1.0-8
-> python2-urllib3 (none) -> 1.26.15-1
-> python2-wcwidth (none) -> 0.2.5-6
-> python2-webencodings (none) -> 0.5.1-7
-> python2-wheel (none) -> 0.37.1-5
-> python2-yaml (none) -> 5.4.1.1-1
-> python2-zipp (none) -> 1.2.0-1
-> python2-zope-interface (none) -> 5.5.2-1
dependency python2 satisfied by redfruit/python2-bin
dependency python2-distribute satisfied by redfruit/python2-setuptools
dependency python2-distribute satisfied by redfruit/python2-setuptools
tsort: -: input contains a loop:
tsort: python2-pretend
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: python2-pytest-runner
tsort: -: input contains a loop:
tsort: python2-pyopenssl
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: python2-pytest-runner
tsort: -: input contains a loop:
tsort: python2-cryptography
tsort: python2-pyopenssl
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: python2-pytest-runner
tsort: -: input contains a loop:
tsort: python2-pytest
tsort: python2-flaky
tsort: python2-pyopenssl
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: -: input contains a loop:
tsort: python2-backports.functools_lru_cache
tsort: python2-wcwidth
tsort: python2-pytest
tsort: python2-flaky
tsort: python2-pyopenssl
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: -: input contains a loop:
tsort: python2-importlib-metadata
tsort: python2-pytest
tsort: python2-flaky
tsort: python2-pyopenssl
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: -: input contains a loop:
tsort: python2-zipp
tsort: python2-importlib-metadata
tsort: python2-pytest
tsort: python2-flaky
tsort: python2-pyopenssl
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: -: input contains a loop:
tsort: python2-configparser
tsort: python2-importlib-metadata
tsort: python2-pytest
tsort: python2-flaky
tsort: python2-pyopenssl
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: -: input contains a loop:
tsort: python2-pluggy
tsort: python2-pytest
tsort: python2-flaky
tsort: python2-pyopenssl
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: -: input contains a loop:
tsort: python2-py
tsort: python2-pytest
tsort: python2-flaky
tsort: python2-pyopenssl
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: -: input contains a loop:
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: python2-pytest-runner
tsort: -: input contains a loop:
tsort: python2-dateutil
tsort: python2-freezegun
tsort: -: input contains a loop:
tsort: python2-dateutil
tsort: python2-freezegun
tsort: python2-pytest-freezegun
tsort: python2-urllib3
tsort: python2-requests
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: -: input contains a loop:
tsort: python2-urllib3
tsort: python2-requests
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: python2-pytest-runner
tsort: -: input contains a loop:
tsort: python2-automat
tsort: python2-twisted
tsort: python2-tornado
tsort: python2-urllib3
tsort: python2-requests
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: python2-pytest-runner
tsort: python2-m2r
tsort: -: input contains a loop:
tsort: python2-automat
tsort: python2-twisted
tsort: python2-tornado
tsort: python2-urllib3
tsort: python2-requests
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: -: input contains a loop:
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: python2-pytest-runner
tsort: python2-hyperlink
tsort: python2-twisted
tsort: python2-tornado
tsort: python2-urllib3
tsort: python2-requests
tsort: -: input contains a loop:
tsort: python2-cachecontrol
tsort: python2-pip
tsort: python2-setuptools-scm
tsort: python2-pytest-runner
tsort: python2-hyperlink
tsort: python2-twisted
tsort: python2-tornado
tsort: python2-urllib3
tsort: python2-requests
sync: dependency cycle detected
Please help!
Offline
That is a lot of Python 2 stuff. Python 2 was deprecated four years ago.
Arch dropped Python 2 and it is no longer in the official repositories. I have no idea what is in the 'redfruit' repository, but I would seriously consider determining what code you are using that requires Python 2 and find an upgrade path if at all possible.
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
sync: dependency cycle detected
This usually happens when a package dependency has a checkdepends that depends on the package itself. You can bootstrap it with --no-checkdepends in that case, or as hinted at above, find out what package introduced the python2 dependency.
Last edited by Alad (2024-02-04 20:35:26)
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
I did remove the python2 dependency - but thank you, Alad, for also highlighting the fix in case it happens again since removing python2 is only a fix in this case.
Offline
I have something I am running into with aurutils and my custom local repo, if someone can help me figure that out. As described in "man aur" under the section "Pacman configuration" and in " CacheDir (optional)" I setup my local repo and my pacman configuration.
This what my pacman options look like for the recommended options
CacheDir = /var/cache/pacman/pkg /var/cache/pacman/aurpkg
CleanMethod = KeepCurrent
This is what the custom repo section looks like in pacman.conf
[aur]
SigLevel = Never
Server = file:///var/cache/pacman/aurpkg
As stated in the "CacheDir section"
In addition, SigLevel should be set to Never or Required, if pac In addition, SigLevel should be set to Never or Required, if package signing is disabled or enabled, respectively. This avoids pacman copying over packages to the main CacheDir, if signature files are missing and SigLevel = Optional is set. (FS#71109)kage signing is disabled or enabled, respectively. This avoids pacman copying over packages to the main CacheDir
The problem is it seems when installing a package from the core or extra repo the packages are placed in my custom repo and not in /var/cache/pacman/pkg
At the bottom of pacman.conf I do see this example.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
So that seems to be the opposite of what is mentioned in the aur man page for aurutils which I quoted here above. So my question is what am I missing or overlooking that packages from the core and extra
repo are being placed in the location which I have configured for my aur packages where aurutils places the built AUR packages?
Last edited by inittux (2024-02-13 16:22:31)
Offline
I have something I am running into with aurutils and my custom local repo, if someone can help me figure that out. As described in "man aur" under the section "Pacman configuration" and in " CacheDir (optional)" I setup my local repo and my pacman configuration.
This what my pacman options look like for the recommended options
CacheDir = /var/cache/pacman/pkg /var/cache/pacman/aurpkg
I figured out my mistake, I had these listed in the wrong order, I think I made a copy/past error when having updated my pacman.conf at some point but when creating my question I had just typed them out of the top of my head. Problem solved.
Last edited by inittux (2024-02-13 23:10:50)
Offline
I'm getting a really strange issue with aurutils and collabora-online-server-nodocker (using aurto):
Running
sudo -u build aur sync --no-view --no-confirm --database=aurto -k0 --chroot --makepkg-conf=/etc/aurto/makepkg-chroot.conf --pacman-conf=/etc/aurto/pacman-chroot.conf collabora-online-server-nodocker
leads to
collaboraoffice-dict-pt-br_23.05.9-4_amd64.deb ... FAILED
besides several other checksum errors. I deleted "/var/lib/build/.cache/aurutils/sync/collabora-online-server-nodocker", but no luck. But running "makepkg -rs" within "/var/lib/build/.cache/aurutils/sync/collabora-online-server-nodocker" just works fine and the checksums pass.
The checks of always the same files fail.
Offline
Maybe SRCDEST is set somewhere? The makepkg.conf shipped with aurto and your environment variables are likely culprits.
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
I've switched back to aurutils standalone, the issue also exists. And in this case, building with and without chroot should use the same makepkg.conf.
Maybe I missed to mention that not all source files of collabora-online-server-nodocker fail, only a few when using the chroot - while without chroot the checksums of all files are fine.
Offline
repo-add script was changed some time ago and no longer create empty database if called like this:
repo-add /path/to/custom.db.tar
aur-sync needs database to exist before it can add packages to it.
So, what is a proper way to create local repository database now?
Offline
I also ran into this. The obvious way to init now is with the aurutils package itself.
repo-add custom.db.tar aurutils-*.pkg.tar.zst
Offline
https://gitlab.archlinux.org/pacman/pac … df609969b7
Does it work by reverting that pacman commit?
edit: you can also create an empty archive with tar zcf custom.db.tar.gz -T /dev/null. However having repo-add work as before is preferable.
Last edited by Alad (2024-04-04 20:23:03)
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
Yes, exactly this commit breaks previous behavior
There are several possible solutions:
1) adding options "--create" to options list [610] and setting DB_MODIFIED=1 in options parsing case [620-646]
2) setting DB_MODIFIED if number of arguments is zero before cycling through them [695]
3) setting DB_MODIFIED if base mentioned does not exist
I don't understand which fix is better, so leave it for more competent programmers
Offline
@AladW:
I've switched back to aurutils standalone, the issue also exists. And in this case, building with and without chroot should use the same makepkg.conf.
Maybe I missed to mention that not all source files of collabora-online-server-nodocker fail, only a few when using the chroot - while without chroot the checksums of all files are fine.
Could you try to build collabora-online-server-nodocker with aur sync in a chroot yourself?
Offline