summaryrefslogtreecommitdiff
path: root/sh/mpra
diff options
context:
space:
mode:
Diffstat (limited to 'sh/mpra')
-rwxr-xr-xsh/mpra28
1 files changed, 28 insertions, 0 deletions
diff --git a/sh/mpra b/sh/mpra
index 38e605f..abf0884 100755
--- a/sh/mpra
+++ b/sh/mpra
@@ -23,6 +23,7 @@ fn () {
ext=zst
copy_any=
+copy=
while getopts ac opt; do
case $opt in
@@ -30,6 +31,19 @@ while getopts ac opt; do
a) ext=xz;;
# copy arch linux fly-any repo
c) copy_any=1;;
+ # Copy arch linux fly repo, needed because of pacman 7.0's
+ # `DownloadUser = alpm` new feature in /etc/pacman.conf, else this
+ # error: "error: failed retrieving file 'fly.db' from disk : Couldn't
+ # open file /home/xyz/programs/repos/fly/x86_64/repo/fly.db". More see
+ # https://archlinux.org/news/manual-intervention-for-pacman-700-and-local-repositories-required/.
+ # I think it is due to now pacman try download as alpm:alpm user, but
+ # my old repo is inside /home/xyz. The url's solution is not enough
+ # because /home/xyz is 700, so I choose to mkdir a new dir in /var/lib.
+ # I'm currently using fly repo for xyzinsp computer only, which has
+ # native optimizations enabled in /etc/makepkg.conf. for backward
+ # compatibility, I keep -c, but it maybe better if I make copying to
+ # other directories the default behavior, or other ways.
+ C) copy=1;;
\?) exit 1;;
esac
done
@@ -45,3 +59,17 @@ else
fi
[ "$copy_any" ] && sudo rsync -vPrlu --delete ../repo/ /srv/http/mirrors/archlinux/fly/os/any
+
+if [ "$copy" ]; then
+ if ! [ -d /var/lib/mpra ]; then
+ # If then `sudo chown xyz:wheel /var/lib/mpra`, no need sudo to copy to
+ # that dir, but not sure if this is safe. Because /var/cache/pacman is
+ # root:root 755 permission, I choose to follow its permission and leave
+ # it as default.
+ sudo mkdir /var/lib/mpra
+ fi
+ # now only xyzinsp computer need this, but in the future maybe consider
+ # following fly/os/any like naming conventions for different repo and
+ # architecture.
+ sudo rsync -vPrlu --delete ../repo/ /var/lib/mpra
+fi