id summary reporter owner description type status priority milestone component version resolution keywords cc port 49498 Switching to a mirror causes a complete rebuild of the port index lpancescu admin@… "I switched to a local mirror as a workaround to the network problems described in bug #49452. The rsync-ing was very fast, but the lack of an index made mirror switching pretty annoying: the first ""port selfupdate"" thinks that every single port is new, and rebuilds the entire index. So mirror users have to wait 30+ minutes for the index to build (see bug #49050) not once, but //two times//. I was curious why that happens, so I base.tar from three different mirrors (sea.us.rsync.macports.org, lil.fr.rsync.macports.org and nue.de.rsync.macports.org). Since MacPorts 2.3.4 was released some time ago, I expected the archives to be identical. They aren't, although the file size is the same: diff reports every archive as binary different from the other two. The timestamps also differ: 20:02, 23:02, respectively 22:02 - all from today. After unpacking the archives into different directories, I used FileMerge to directly compare the directories: every single file is identical, but the tar archives aren't. So I redirected the output of ""ls -lR"" in each directory to a different file, then ran ""diff -u"" to compare them. Here's a part of the result: {{{ -rw-r--r-- 1 laur staff 1922 May 24 2014 pkg_mkindex.sh.in -drwxr-xr-x 8 laur staff 272 Oct 28 19:31 port -drwxr-xr-x 35 laur staff 1190 Oct 28 19:31 port1.0 -drwxr-xr-x 4 laur staff 136 Oct 28 19:31 programs -drwxr-xr-x 36 laur staff 1224 Oct 28 19:31 registry2.0 +drwxr-xr-x 8 laur staff 272 Oct 28 22:31 port +drwxr-xr-x 35 laur staff 1190 Oct 28 22:31 port1.0 +drwxr-xr-x 4 laur staff 136 Oct 28 22:31 programs +drwxr-xr-x 36 laur staff 1224 Oct 28 22:31 registry2.0 drwxr-xr-x 11 laur staff 374 May 24 2014 tclobjc1.0 drwxr-xr-x 19 laur staff 646 May 24 2014 thread2.6 --rwxr-xr-x 1 laur staff 4311 Oct 28 19:30 upgrade_sources_conf_default.tcl +-rwxr-xr-x 1 laur staff 4311 Oct 28 22:30 upgrade_sources_conf_default.tcl -rwxr-xr-x 1 laur staff 4265 May 24 2014 upgrade_sources_conf_default.tcl.in }}} It seems that the timestamps of //every single directory// and of the few generated files (files like Makefile probably generated from Makefile.in) are set to the timestamp of the archive on the mirror. Perhaps the ""fresh"" directory timestamps are the reason for the index being rebuilt, and that each mirror runs some sort of build locally, at least daily, even when nothing has actually changed? I should have downloaded ports.tar.gz, to be sure, but it's quite big." defect closed Low server/hosting fixed ryandesign