pacman-mirrors 4.15.0.dev5

From this post it was made clear that something was off creating doubled entries.

The issue is fixed.

While I was at it - a feature request was implemented too - I really can't see the use for it but it really was very little work so to make @petsam happy - and maybe others too - I did it.

Feedback is much appreciated - but, please don't bug me for adding a seemingly useless argument to the palette - I know it is. :laughing:

You can install the latest development version from an up-to-date unstable mirror

pacman-mirrors 4.15.0.dev5

sudo pacman -Syu pacman-mirrors-dev
3 Likes

Thanks. When I 'll have some spare time I'll check it out to see if it does what I needed (then).

Since my feature request (one month ago), I have designed and created my own script and completely replaced pacman-mirrors (no offense :stuck_out_tongue_winking_eye:), following your challenge advice.
I now use exclusively safesync (soon to be renamed to a cooler name) and I am very happy, as it is my child and listens to dad :smile:.
Feel free to try it and give some feedback on functional usage. I would be glad to here.

How about:

syncpet
1 Like

Even I need some spare time now and then. :stuck_out_tongue_winking_eye:


I looked at your script but I am lost when it comes to bash :slight_smile:

I only have one mirror - ever in my mirror list - had for a long time.

If I understand you correct, your point is, that you - in case of installation packages not already present on the system - are in risk of installing files from a mirror which is not up-to-date. Is this the reason for having every other mirror disabled?

  • The idea of having every other mirror in the mirror list disabled is good from the point made that the next mirror might not have the same set of database files.
  • The download and parsing of the status json is clever.
  • The idea of grouping the countries is also a good idea.
  • The grouping is subjective to a degree unless you have gone with the continents (which I actually did not look for).
  • The hard coded country groups requires maintenance as countries are subject to change without any notice.

None taken :slight_smile:


When? Where?


Since pacman-mirrors already - if my memory is good - contains a country timezone database it would be trivial to implement a grouping functionality.


Long ago..:wink:

I was looking/fishing for feedback complaining about it :rofl:. A dead program is always dead. Even the TZ standard might change in the far future!

Exactly. And I am not sure it is different in Arch. The black hole is the servers syncing times IMHO. Each has different. Not all sync immediately on main server updates.

Keeping only one active will never create system failure. Then, on mirror/server change, checking for DBs last update time ensures no syncing to older package versions.

Stay in your field and let @papajoke and others correct my bugs :laughing:

So it wasn't me :innocent:

:edit:

➜ sudo pacman-mirrors -f5             
::INFO Downloading mirrors from repo.manjaro.org
::INFO Using custom mirror file
::INFO Querying mirrors - This may take some time
  0.282 Germany        : https://mirror.23media.com/manjaro/
  0.169 Germany        : http://mirror.23media.com/manjaro/
  0.414 United_Kingdom : https://www.mirrorservice.org/sites/repo.manjaro.org/repos/
  0.474 Germany        : http://mirror.ragenetwork.de/manjaro/
  0.418 Germany        : https://ftp.halifax.rwth-aachen.de/manjaro/
  0.805 Germany        : ftp://ftp.halifax.rwth-aachen.de/manjaro/
  0.850 United_Kingdom : http://repo.manjaro.org.uk/
::INFO Writing mirror list
::Germany         : https://mirror.23media.com/manjaro/stable/$repo/$arch
::United_Kingdom  : https://www.mirrorservice.org/sites/repo.manjaro.org/repos/stable/$repo/$arch
::Germany         : https://ftp.halifax.rwth-aachen.de/manjaro/stable/$repo/$arch
::Germany         : http://mirror.ragenetwork.de/manjaro/stable/$repo/$arch
::United_Kingdom  : http://repo.manjaro.org.uk/stable/$repo/$arch
::INFO Mirror list generated and saved to: /etc/pacman.d/mirrorlist
12:16:25 ➜ dotfiles on ξ‚  master [?] ➜ sudo pacman -Syyu      
:: Synchronizing package databases...
 core                                           149.8 KiB  1665K/s 00:00 [#########################################] 100%
 extra                                         1807.2 KiB  3.31M/s 00:01 [#########################################] 100%
 community                                        5.2 MiB  2.63M/s 00:02 [#########################################] 100%
 multilib                                       184.9 KiB  3.41M/s 00:00 [#########################################] 100%
 archlinuxcn                                   1276.8 KiB  3.33M/s 00:00 [#########################################] 100%
:: Starting full system upgrade...
warning: android-tools: local (9.0.0_r35-1) is newer than community (9.0.0_r30-2)
warning: apr: local (1.7.0-1) is newer than extra (1.6.5-1)
warning: ark: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: attica: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: baloo: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: baloo-widgets: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: bash: local (5.0.003-1) is newer than core (5.0.002-1)
warning: bashrc-manjaro: local (5.0.003-1) is newer than core (5.0.002-1)
warning: binutils: local (2.32-1) is newer than core (2.31.1-4)
warning: bluez-qt: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: breeze-icons: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: cmake: local (3.14.3-1) is newer than extra (3.14.2-1)
warning: colord: local (1.4.4-2) is newer than extra (1.4.4-1)
warning: cracklib: local (2.9.7-1) is newer than core (2.9.6-3)
warning: cups: local (2.2.11-2) is newer than extra (2.2.11-1)
warning: cups-filters: local (1.22.5-2) is newer than extra (1.22.5-1)
warning: dconf: local (0.32.0-3) is newer than extra (0.32.0-1)
warning: device-mapper: local (2.02.184-4) is newer than core (2.02.184-3)
warning: dolphin: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: dolphin-plugins: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: efivar: local (37-1) is newer than core (35-1)
warning: ffmpeg: local (1:4.1.3-1) is newer than extra (1:4.1.2-2)
warning: ffmpegthumbs: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: filelight: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: flatpak: local (1.3.2+6+g00dfce52-1) is newer than extra (1.3.1-1)
warning: fluidsynth: local (2.0.5-1) is newer than extra (2.0.4-1)
warning: frameworkintegration: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: freetype2: local (2.10.0-2) is newer than extra (2.10.0-1)
warning: fuse-common: local (3.5.0-1) is newer than extra (3.4.2-1)
warning: fuse3: local (3.5.0-1) is newer than extra (3.4.2-1)
warning: gcc: local (8.3.0-1) is newer than core (8.2.1+20181127-1)
warning: gcc-libs: local (8.3.0-1) is newer than core (8.2.1+20181127-1)
warning: glib2: local (2.60.1-1) is newer than core (2.60.0-1)
warning: glibc: local (2.29-1) is newer than core (2.28-5)
warning: glslang: local (7.11.3188-1) is newer than extra (7.11.3113-1)
warning: groff: local (1.22.4-1) is newer than core (1.22.3-8)
warning: gssproxy: local (0.8.2-1) is newer than core (0.8.0-1)
warning: gst-libav: local (1.16.0-1) is newer than extra (1.14.4+2+gc324028-1)
warning: gst-plugins-bad: local (1.16.0-1) is newer than extra (1.14.4+22+ge87fb02c1-1)
warning: gst-plugins-base: local (1.16.0-2) is newer than extra (1.14.4+18+g3cc7cc757-1)
warning: gst-plugins-base-libs: local (1.16.0-2) is newer than extra (1.14.4+18+g3cc7cc757-1)
warning: gst-plugins-good: local (1.16.0-1) is newer than extra (1.14.4-2)
warning: gst-plugins-ugly: local (1.16.0-1) is newer than extra (1.14.4-2)
warning: gstreamer: local (1.16.0-1) is newer than extra (1.14.4-1)
warning: gvfs: local (1.40.1-2) is newer than extra (1.40.1-1)
warning: gvfs-afc: local (1.40.1-2) is newer than extra (1.40.1-1)
warning: gvfs-gphoto2: local (1.40.1-2) is newer than extra (1.40.1-1)
warning: gvfs-mtp: local (1.40.1-2) is newer than extra (1.40.1-1)
warning: gvfs-nfs: local (1.40.1-2) is newer than extra (1.40.1-1)
warning: gvfs-smb: local (1.40.1-2) is newer than extra (1.40.1-1)
warning: gwenview: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: hwids: local (20190316-1) is newer than core (20180917-1)
warning: iana-etc: local (20190415-1) is newer than core (20190329-1)
warning: icu: local (64.2-1) is newer than core (64.1-1)
warning: imagemagick: local (7.0.8.42-1) is newer than extra (7.0.8.39-1)
warning: inkscape: local (0.92.4-5) is newer than extra (0.92.4-4)
warning: inxi: local (3.0.33-1) is newer than community (3.0.32-1)
warning: kaccounts-integration: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kaccounts-providers: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kactivities: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kactivities-stats: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kamera: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: karchive: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kate: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kauth: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kbookmarks: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kcalc: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kcmutils: local (5.57.0-1) is newer than extra (5.56.0-2)
warning: kcodecs: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kcompletion: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kconfig: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kconfigwidgets: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kcoreaddons: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kcrash: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kdbusaddons: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kdeclarative: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kded: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kdegraphics-thumbnailers: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kdelibs4support: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kdenetwork-filesharing: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kdesu: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kdialog: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kdnssd: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kdoctools: local (5.57.0-1) is newer than extra (5.56.0-2)
warning: keditbookmarks: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kemoticons: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kfilemetadata: local (5.57.0-1) is newer than extra (5.56.0-2)
warning: kfind: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kget: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kglobalaccel: local (5.57.0-2) is newer than extra (5.56.0-1)
warning: kguiaddons: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: khelpcenter: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kholidays: local (1:5.57.0-1) is newer than extra (1:5.56.0-1)
warning: khtml: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: ki18n: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kiconthemes: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kidletime: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kimageformats: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kinit: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kio: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kio-extras: local (19.04.0-1) is newer than extra (18.12.3-2)
warning: kirigami2: local (5.57.0-1) is newer than extra (5.56.1-1)
warning: kitemmodels: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kitemviews: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kjobwidgets: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kjs: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kjsembed: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: knewstuff: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: knotifications: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: knotifyconfig: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: konsole: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kpackage: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kparts: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kpeople: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kpty: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: krunner: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kservice: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: ksystemlog: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: ktexteditor: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: ktextwidgets: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kunitconversion: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kwallet: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kwalletmanager: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: kwayland: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kwidgetsaddons: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kwindowsystem: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: kxmlgui: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: latte-dock: local (0.8.8-1) is newer than community (0.8.7-1)
warning: lib32-gcc-libs: local (8.3.0-1) is newer than core (8.2.1+20181127-1)
warning: lib32-glibc: local (2.29-1) is newer than core (2.28-5)
warning: lib32-libdrm: local (2.4.98-1) is newer than multilib (2.4.97-1)
warning: lib32-systemd: local (242.0-2) is newer than multilib (241.607-1)
warning: lib32-wayland: local (1.17.0-1) is newer than multilib (1.16.0-1)
warning: libaio: local (0.3.112-1) is newer than core (0.3.111-2)
warning: libcap: local (2.27-1) is newer than core (2.26-1)
warning: libcdio: local (2.1.0-1) is newer than extra (2.0.0-1)
warning: libcdio-paranoia: local (10.2+2.0.0-2) is newer than extra (10.2+2.0.0-1)
warning: libcups: local (2.2.11-2) is newer than extra (2.2.11-1)
warning: libdrm: local (2.4.98-1) is newer than extra (2.4.97-1)
warning: libkdcraw: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: libkexiv2: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: libkipi: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: libksane: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: libmagick6: local (6.9.10.41-1) is newer than extra (6.9.10.35-1)
warning: libmediainfo: local (19.04-1) is newer than community (18.12-1)
warning: libmwaw: local (0.3.15-1) is newer than extra (0.3.14-1)
warning: libnice: local (0.1.15+47+g62cbfbd-1) is newer than extra (0.1.15-2)
warning: libnm: local (1.18.0-1) is newer than extra (1.16.0-1)
warning: libnm-glib: local (1.18.0-1) is newer than extra (1.16.0-1)
warning: libpng: local (1.6.37-1) is newer than extra (1.6.36-1)
warning: libqalculate: local (3.1.0-1) is newer than extra (3.0.0-2)
warning: libqtxdg: local (3.3.1-3) is newer than community (3.3.1-2)
warning: libreoffice-fresh: local (6.2.3-2) is newer than extra (6.2.2-4)
warning: libreoffice-fresh-en-gb: local (6.2.3-1) is newer than extra (6.2.2-1)
warning: libtool: local (2.4.6+42+gb88cebd5-3) is newer than core (2.4.6+42+gb88cebd5-2)
warning: libuv: local (1.28.0-1) is newer than extra (1.27.0-1)
warning: libva-mesa-driver: local (19.0.3-1) is newer than extra (19.0.2-1)
warning: linux-api-headers: local (5.0.7-1) is newer than core (4.17.11-1)
warning: linux50: local (5.0.9-2) is newer than core (5.0.7-1)
warning: linux50-headers: local (5.0.9-2) is newer than core (5.0.7-1)
warning: lz4: local (1:1.9.1-1) is newer than core (1:1.8.3-1)
warning: manjaro-settings-manager: local (0.5.6-2) is newer than extra (0.5.5-7)
warning: manjaro-settings-manager-kcm: local (0.5.6-2) is newer than extra (0.5.5-7)
warning: manjaro-settings-manager-knotifier: local (0.5.6-2) is newer than extra (0.5.5-7)
warning: mdadm: local (4.1-1) is newer than core (4.0-2)
warning: mediainfo: local (19.04-1) is newer than community (18.12-1)
warning: mesa: local (19.0.3-1) is newer than extra (19.0.2-1)
warning: mesa-vdpau: local (19.0.3-1) is newer than extra (19.0.2-1)
warning: modemmanager-qt: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: mono: local (5.20.1.19-1) is newer than extra (5.18.1.0-1)
warning: mpd: local (0.21.8-1) is newer than extra (0.21.7-2)
warning: mpv: local (1:0.29.1-6) is newer than community (1:0.29.1-5)
warning: nano: local (4.2-1) is newer than core (4.0-2)
warning: networkmanager: local (1.18.0-1) is newer than extra (1.16.0-1)
warning: networkmanager-qt: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: nuitka: local (0.6.3-1) is newer than community (0.6.2-1)
warning: okular: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: openssh: local (8.0p1-1) is newer than core (7.9p1-1.1)
warning: opus: local (1.3.1-1) is newer than extra (1.3-1)
warning: orc: local (0.4.29-1) is newer than extra (0.4.28-1)
warning: oxygen-icons: local (1:5.57.0-1) is newer than extra (1:5.56.0-1)
warning: pango: local (1:1.43.0-2) is newer than extra (1:1.43.0-1)
warning: perl: local (5.28.2-1) is newer than core (5.28.1-1)
warning: perl-alien-build: local (1.68-1) is newer than extra (1.65-1)
warning: plasma-framework: local (5.57.0-1) is newer than extra (5.56.1-4)
warning: poppler: local (0.76.0-1) is newer than extra (0.75.0-1)
warning: poppler-glib: local (0.76.0-1) is newer than extra (0.75.0-1)
warning: poppler-qt5: local (0.76.0-1) is newer than extra (0.75.0-1)
warning: print-manager: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: prison: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: purpose: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: pygobject-devel: local (3.32.1-1) is newer than extra (3.32.0-1)
warning: python-cffi: local (1.12.3-1) is newer than extra (1.12.2-1)
warning: python-gobject: local (3.32.1-1) is newer than extra (3.32.0-1)
warning: python-hyperlink: local (19.0.0-1) is newer than extra (18.0.0-2)
warning: python-pyparsing: local (2.4.0-1) is newer than extra (2.3.1-1)
warning: python-setuptools: local (1:41.0.1-1) is newer than extra (1:40.9.0-1)
warning: python-urllib3: local (1.24.2-1) is newer than extra (1.24.1-2)
warning: python2-gobject: local (3.32.1-1) is newer than extra (3.32.0-1)
warning: python2-pyparsing: local (2.4.0-1) is newer than extra (2.3.1-1)
warning: python2-setuptools: local (1:41.0.1-1) is newer than extra (1:40.9.0-1)
warning: qca: local (2.2.1-1) is newer than extra (2.2.0-1)
warning: qqc2-desktop-style: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: qt5-base: local (5.12.3-2.1) is newer than extra (5.12.2-2.1)
warning: qt5-charts: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-declarative: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-graphicaleffects: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-imageformats: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-location: local (5.12.3-1) is newer than extra (5.12.2-2)
warning: qt5-multimedia: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-quickcontrols: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-quickcontrols2: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-script: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-sensors: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-speech: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-svg: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-tools: local (5.12.3-1) is newer than extra (5.12.2-3)
warning: qt5-translations: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-virtualkeyboard: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-webchannel: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: qt5-webengine: local (5.12.3-1) is newer than extra (5.12.2-2)
warning: qt5-webkit: local (5.212.0alpha2-28) is newer than extra (5.212.0alpha2-26)
warning: qt5-x11extras: local (5.12.3-1) is newer than extra (5.12.2-1)
warning: ripgrep: local (11.0.1-1) is newer than community (0.10.0-2)
warning: ruby: local (2.6.3-1) is newer than extra (2.6.2-1)
warning: signon-kwallet-extension: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: solid: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: sonnet: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: spectacle: local (19.04.0-1) is newer than extra (18.12.3-1)
warning: sqlite: local (3.28.0-1) is newer than core (3.27.2-1)
warning: sshfs: local (3.5.2-1) is newer than community (3.5.1-2)
warning: steam-manjaro: local (1.0.0.59-2) is newer than multilib (1.0.0.56-2)
warning: syntax-highlighting: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: systemd: local (242.0-2) is newer than core (241.607-1)
warning: systemd-libs: local (242.0-2) is newer than core (241.607-1)
warning: systemd-sysvcompat: local (242.0-2) is newer than core (241.607-1)
warning: thin-provisioning-tools: local (0.8.0-1) is newer than core (0.7.6-1)
warning: threadweaver: local (5.57.0-1) is newer than extra (5.56.0-1)
warning: v4l-utils: local (1.16.5-1) is newer than extra (1.16.3-1)
warning: vte-common: local (0.56.2-1) is newer than extra (0.56.1-1)
warning: vte3: local (0.56.2-1) is newer than extra (0.56.1-1)
warning: vulkan-intel: local (19.0.3-1) is newer than extra (19.0.2-1)
warning: vulkan-radeon: local (19.0.3-1) is newer than extra (19.0.2-1)
warning: wireless-regdb: local (2019.03.01-1) is newer than core (2018.10.24-2)
warning: xmlsec: local (1.2.28-1) is newer than extra (1.2.27-2)
warning: zstd: local (1.4.0-1) is newer than core (1.3.8-1)
 there is nothing to do

@linux-aarhus - here we go again :smiley:
:edit 2:
Reverting fixes.

Just for the fun, I suggest you use safesync for testing.
This issue should never happen with safesync (Manjaro One-Mirror Syncing, aka MOMS/M1MS).

What is safesynce??? Never stumbled across it.

No complaining just making notes :slight_smile:


@xircon
What again?

Probing two protocols - that it the nature of the list - if several protocols is available. Which one to use? Sometimes one of the protocols fails e.g. https due to invalid certificate.

But the doubling - which you made me aware of - I am sure I got hold of.

The other thing - all the info on newer package on system than in repo - I am sure this is a branch issue. If you look at the mirror list information you will note that ii is stable branch and my guess you have changed branch.

sudo pacman-mirrors -aS testing

I think the pacman-mirrors-dev is messing with the branch - I wouldn't note it as I am always on unstable

How to solve branch issue? As soon as I reverted back to none-dev version all worked again.

Edit - it was the newer than installed thing I was worried about.

Edit 2 - Sorry door/phone going crazy- I have always been on unstable

Edit 3 - forget it - I didn't read the pacsave correctly :raised_hands:

Exactly what was intended! :stuck_out_tongue_winking_eye:

End of topic hijacking

SafeSync for always safe updates
https://github.com/petsam/safesync

:smile:

This is quite valid points - and very good, checking the database time.

1 Like

for this moment not tested and not all understand/read, so a few bash comments

  • can use pacman-conf
    line 80: grep '^[' /etc/pacman.conf | tr -d '[:punct:] ' | grep -v options
    == pacman-conf --repo-list
    ? as SysBranch= we can use pacman-conf -r core | grep ...

  • you can create a function : create_tmp_dir() : you repeat 2 times 14 lines "Create work directory"

    • if [ -w /tmp ];then strange for me : all user can write in this directory ?
  • elif [ $1 = "-h" ] || [ $1 = "--help" ]; then
    why not the first test in script and not limit to first parameter

if [[ " $* " =~ " -h " || " $* " =~ " --help " ]]; then
    echo "usage ..."
    exit 0
fi
if [ $1 = ... ]
  • line 345 you write :
CountryGroup[1]="Austria Belgium Czech Denmark France Germany Netherlands"
echo "(1) Austria Belgium Czech Denmark France Germany Netherlands"

why not

for i in "${!CountryGroup[@]}"; do
    echo "($i) ${CountryGroup[i]}"
done
  • you use extern command: echo "$selCountriesSingle" | tr '[:upper:]' '[:lower:]'
    tolower exist in bash : echo "${selCountriesSingle,,}"

  • after, the part where you create the proberepos.conf file seems too complicated to me but without testing it, is difficult for me to understand
    but my first idea:
    in selCountriesSingle:

    • replace the numbers by the content of CountryGroup[i]
    • replace all char "," by a space
    • remove duplicates ?
      So, a loop on only country names in selCountriesSingle
3 Likes

@petsam
With respect to the checking of database time vs. local - an easier method already exist.

When you pull the status.json - branches with 1 is up-to-date, 0 is not, -1 is representing a non responding mirror.

That is what pacman-mirrors use, to eliminate mirrors from the mirrorlist.

Some mirrors like one specific iranian mirror has a redirect from http to https and an expired certificate which makes the response die.

Due to this specific situation I am reconsidering an earlier suggestion of implementing some sort of country exclusion list.

And your arguments on having only one active mirror in the mirror list is very valid so I am considering implementing this in pacman-mirrors - so pacman-mirrors write the only the first in the selection of updated mirror instead of writing all probed mirrors.

If this is what some have been trying to tell me for a long time - I apologize for not having understood you correct.

1 Like

I appreciate very much!! Thanks.
As I have said in my introductions, this was a learning path for me, that's why many "not so smart" methods are still there. Since there is no error or functional bug (it's working as intended), I am happy for now. I have learned a lot. I 'll improve the code as you suggested in time.

A distinguished gain from testing repo DB times is the elimination of the unnecessary Database downloads, in whatever case (with -yy).
Checking file time-stamps is very cheap, comparing to re-downloading all DB files, even if they may already be up-to-date.
So, only pacman -Syu.

It 's complicated (maybe) but in the long run, you have guarantied safety (from partial update state) and always the fastest server from your (always) same preferred server list (no need to re-test servers for speed, only for risk).

BTW, safesync is renamed to M1mS.

I get that - but I am thinking that checking that will ultimately download the file and yet again makes me wonder how pacman distinguish between the server vs. remote files?

What do you mean?

I mean when you are using a single -y only database where local differ from server will be downloaded.

Using a double -yy will download even if identical. Pacman must have some means of differentiating if download is necessary. That differentiating information must somehow be supplied by the transport mechanism used mostly http using curl or wget otherwise pacman would download the database on every run and seems to defy the nature of checking vs. updating.

This is DBs time-stamps, checked by curl (I suppose, as it's a dep).

Edit: what creates the partial update mess is the frequent (with no aparent reason) mirror server change, or the multi-mirrors list (instead of only one). If the second mirror is not up2date, while the first is good, when the 1st mirror fails or is slow, pacman will not check the next server for validity (timestamp), creating a partial.

Yes the local time stamps are easy - but get the remote without downloading?