You are not logged in.
Yet another case of "not a valid architecture".
It's been a long time since I've updated my system and in such case, I usually start a test on a VM.
Everything goes well (but the VM runs on an i7 system, so still a different architecture).
I then proceed to upgrade the real system. Everything goes almost well: all packages but pamac-aur upgrade properly.
I uninstall it, reboot the system and proceed to compile that AUR package manually (git > makepkg).
But I end up with a "not a valid architecture" error and I'm stuck here (also tried with trizen).
uname -m reports i686
pacman-conf architecture reports pentium4
pacman.conf still has the architecture setting on auto
I've read the news regarding the new pacman version, but the architecture setting in pacman.conf hasn't changed from auto.
Is there a way to fix this?
Last edited by shroom (2019-08-05 20:42:42)
Offline
Yes, rework your PKGBUILD from the AUR package to be valid on your current architecture. Basically you need to understand what it's doing first of all, but if it builds from source, adding 'pentium4' to the arch variable in there should be enough. If it pulls down a zip file then more work will be needed, but in this particular case I'd expect a build from source, so won't document any further at this juncture.
Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.
Offline
Yes, it's just a git clone followed by a makepkg -sri (or a trizen -S pamac-aur).
I've added the pentium4 to the list of available arch but that doesn't change as it builds for the i686 architecture: "pamac-aur-8.0.3.1-i686 doesn't have a valid architecture".
Last edited by shroom (2019-08-05 10:33:13)
Offline
uname -m always reports i686, pentium4 is something we invented. :-)
if the architecture is set to auto and pacman-conf reports pentium4, it should install pentium4
packages.
wget 'https://aur.archlinux.org/cgit/aur.git/ … aur.tar.gz'
tar zxvf pamac-aur.tar.gz
cd pamac-aur/
makepkg -si
I get tons of errors inside makepkg (which points to some trickery in PKGBUILD violating some makepkg rules, but
this is not the problem discussed here):
/usr/share/makepkg/buildenv/makeflags.sh: line 28: build_options: readonly variable
/usr/share/makepkg/lint_pkgbuild/arch_specific.sh: line 73: exists_function_variable: command not found
/usr/share/makepkg/lint_pkgbuild/package_function_variable.sh: line 54: exists_function_variable: command not found
Maybe the problem is in /etc/makepkg.conf on your machine, do you have
CARCH="pentium4"
This must fit to the Architecture entry in /etc/pacman.conf.
Then your package should be called 'pamac-aur-8.0.3-1-pentium4.pkg.tar.xz'.
Also note: just renaming the package doesn't work, as the build architecture is also part of the package metadata
Offline
CARCH is also set to i686 here.
I've set it to pentium4, recloned the repo, added the pentium4 architecture to the PKGBUILD and finally, it works again!
Since apparently the CPU supports SSE2 (but won't install x64 OSes), I think this was the best solution.
Thanks
Offline
Yes, that's exactly what pentium4 is for.
np. :-)
Offline
Well, but the AUR stuff didn't have pentium4 architecture enabled and that leads into problems.
Is there a need of editing /etc/makepkg.conf CFLAGS and PKGBUILD?
Last edited by redqueen (2019-08-06 09:42:05)
Offline
Well, but the AUR stuff didn't have pentium4 architecture enabled and that leads into problems.
Is there a need of editing /etc/makepkg.conf CFLAGS and PKGBUILD?
I'm not sure really; don't know why pamac-aur updated itself without any issue on the VM and not on the laptop as they both share the exact same configuration.
Both makepkg.conf had i686 and both returned pentium4 when asked with pacman-conf architecture.
Offline
My makepkg.conf has CARCH set to pentium4 here, and I've never knowingly edited that file myself as I can recall. According to pacman, it's part of the pacman package, which was updated at the very least at the end of may to be pentium 4. Did you follow the instructions when the system migrated to pentium4 from the news thread?
Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.
Offline
Actually, this raises an interesting querstion: do we patch makepkg.conf when installing it with pacman on i486, i686 or pentium4?
makepkg.conf contains i686 in packages/core/pacman.
But PKGBUILD patches for _not_ i686:
sed -i "s@i686@'"${CARCH}"'@g; /^CHOST/ s/pentium4-/i686-/" "$pkgdir/etc/makepkg.conf"
So CARCH should be pentium4 when building in a pentium4 chroot, so makepkg.conf should get installed
correctly.
Offline
Yes, only pure i686 isos are still being built. I'm not entirely sure what pacstrap will do when you tell it to install the base group into your newly formatted filesystems. Presumably if a new enough pacman is in the iso then it'll do the test when invoked to do a -S and install to your mountpoint.
Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.
Offline
levi, you're right: pacstrap will use the currently installed pacman (e.g. on the iso). And iff that is new enough, it will install pentium4 packages, so you get the pentium4 pacman in your chroot which will have the correct CARCH in /etc/makepkg.conf - this is the reason, why we don't need a pentium4 iso.
As a side note: if i486 would have more packages, we would not need an i686 iso either and just could always install from the i486 one
Offline
but... but.. then the ISO is not SSE2-optimized and will boot too slowly for me to install systems.. ;-)
Offline
In this thread it's solved a bit different.
If I need, for example some printer drivers from AUR I have to edit the PKGBUILD of that driver. The original printer driver PKGBUILD is:
...
arch=('i686' 'x86_64')
...
...so I have to edit this to:
...
arch=('i686' 'pentium4')
...
else its not possible to install. It onlysays "... steht für die 'pentium4'-Architektur nicht zur Verfügung. "
Offline
yes, you have to add pentium4 to the arch=() array, too - but also makepkg should have CARCH=pentium4 in it.
Offline