Re: pacserve - easily share Pacman packages between computers

Python aur packages need to be rebuilt since Arch Linux updated Python to version 3.7. In case of pacserve run:

aurman -S python3-threaded_servers pacserve

to rebuild and reinstall the necessary python packages.

Then restart the pacserve server:

sudo systemctl start pacserve.service

Thanks. Should have thought of that - I saw quite a number of python updates come through earlier and didn't twig. I'll have to wait and see if that solves the problem of the new install not picking up on locally available files.

Re: pacserve - easily share Pacman packages between computers

All Python packages in my repo have been rebuilt with Python 3.7. AUR users while have to update manually as suggested above.

toothandnail wrote:

Second problem. I recently got a new (to me anyway) laptop. I've just installed Arch on it, and one of the first things I installed was pacserve, since I should already have most of the packages that I want on other machines in my local network. Before the error above came up, it was running without any apparent problems. However, it did not look as if it was using any of the locally available packages - even on a wifi connection, there is a very visible difference in download speed. When pacserve is working, I normally get around 7.5 mbs transfers on anything in my local network. On raw internet, I normally get around 3.5 mbs. Ever since I installed pacserve on the new machine, I'm getting no better than the normal internet transfer rate. So it looks as though pacserve is not picking anything up from the local network.

If the second problem is unrelated to the first, check systemctl status pacserve.service (or the console output if you are running it manually) on different systems to see which Pacserve instances are detected. Check your firewall settings too to make sure that you are allowing everything through (the Pacserve HTTP(S) port, and the multicast ports if you use that). If you use Avahi, make sure that it's up and running too.

Re: pacserve - easily share Pacman packages between computers

Pacserve has stopped working for me since updating from version 2018-9 to version 2018-11. My system is fully up to date - including python3-threaded_servers. What happens is that the pacserve service fails but pacserve-ports starts successfully. I don't see any errors in the journal. Here's some data. Not sure where to look next. Pointers/ideas/suggestions would be most appreciated.

Re: pacserve - easily share Pacman packages between computers

I have found an issue with pacserv which always gets me as it's happening once in a while and then I forget about it.

The issue is: *-any.pkg.tar.xz packages are signed by different build keys on different architectures.

In my home network, there are multiple instances of x64, 32bit and ARM Arch Linuxes, all set up to use pacserv. Usually, they get along pretty well. However, if a architecture-independent package is updated and cached by an pacserve instance on a different architecture, one gets a signature error, as the used key is not stored in the keyring on the local, to be updated machine. That may be obvious, and a design choice of Arch, but to me, that thwarts the idea of an universal, architecture-independent *-any.pkg.tar.xz idea.

Re: pacserve - easily share Pacman packages between computers

When Arch still supported i686, we shared -any packages across both.

The problem is that archlinuxarm and archlinux32 are different Linux distributions, and they rebuild their entire repository from scratch in order to be self-sufficient. The packages can share architectures, but rebuilding the same identical, -any package will still result in different checksums due to packaging metadata like file timestamps and the PACKAGER information, if nothing else.

One fix would be for those architectures to directly import our package pool when possible -- but that means less flexibility in rebuilding packages on their schedule.

Managing AUR repos The Right Way -- aurpublish (now a standalone tool)

Re: pacserve - easily share Pacman packages between computers

@romaxAs eschwartz has pointed out, you're mixing different package ecosystems. If the 32-bit and ARM "any" packages use the same PKGBUILDs as the official repos, then identical package versions should be interchangeable despite having been built by different packagers. If you can guarantee that, or are willing to risk breakage due to unforeseen incompatibility, then you should be able to pool packager keys from each distribution on each system to validate the "any" packages. The extra hassle and (minor) risk is probably not worth it though.

@julesmThanks for the follow-up and workaround. The IPv6 support in the pacserve backend is still wonky and untested. I'll make a note to try to fix it the next time I sit down with the code.

Re: pacserve - easily share Pacman packages between computers

I have a question about how to restrict network interface use with pacserve.

I have a peer-to-peer VPN that connects most of my machines (zerotier) and I want to restrict pacserve to operate over the local network only and not over the VPN, so I need to force pacserve to only listen on specific interfaces. However, it seems that pacserve has to listen on both the localhost interface as well as the external interface, while the command line only allows one interface to be selected. Is there another way of configuring what interfaces pacserve uses, or this this a bug in pacserve?

Also, the documentation refers to /etc/conf.d/pacserve , but this file does not appear to exist. Was this deprecated?