e00c2bc5a3
There was an assumption that DIRINDEXES are always sorted ascending, which actually does not hold. This means we CANNOT use inplace replacement in "dirnames" array, so as to append "later dirs" on top of "older dirs". The bug can actually be more subtle. It is very well possible that I simply cannot understand that previous "inplace optimization" logic. But I think that it sucks anyway. I choose to rewrite this piece of code for the sake of clarity and correctness. I hope that the correctness of the code now should be a bit more obvious, even for a casual reader. |
||
---|---|---|
apt | ||
.gear-rules | ||
apt-0.5.4cnc9-alt-getsrc-debug.patch | ||
apt-0.5.4cnc9-alt-pkgorderlist-score.patch | ||
apt-0.5.5cnc4.1-alt-PrioComp.patch | ||
apt-0.5.5cnc5-alt-rsync.patch | ||
apt-0.5.15cnc5-alt-debsystem.patch | ||
apt-0.5.15cnc5-alt-distro.patch | ||
apt-0.5.15cnc5-alt-execrpm-cmd.patch | ||
apt-0.5.15cnc5-alt-getsrc.patch | ||
apt-0.5.15cnc5-alt-gettext.patch | ||
apt-0.5.15cnc5-alt-gpg-homedir.patch | ||
apt-0.5.15cnc5-alt-libtool.patch | ||
apt-0.5.15cnc5-alt-md5hash-debug.patch | ||
apt-0.5.15cnc5-alt-packagemanager-CheckRConflicts.patch | ||
apt-0.5.15cnc5-alt-rpm-build.patch | ||
apt-0.5.15cnc6-alt-apt-get-TryToInstall.patch | ||
apt-0.5.15cnc6-alt-apt-pipe.patch | ||
apt-0.5.15cnc6-alt-apt-shell-dl.patch | ||
apt-0.5.15cnc6-alt-apt-shell.patch | ||
apt-0.5.15cnc6-alt-dash-cmd.patch | ||
apt-0.5.15cnc6-alt-defaults.patch | ||
apt-0.5.15cnc6-alt-lsgroup.patch | ||
apt-0.5.15cnc6-alt-parseargs.patch | ||
apt-0.5.15cnc6-alt-pkgcachegen.patch | ||
apt-0.5.15cnc6-alt-PrintLocalFile.patch | ||
apt-0.5.15cnc6-alt-quiet-update.patch | ||
apt-0.5.15cnc6-alt-rpm-fancypercent.patch | ||
apt-0.5.15cnc6-alt-rpm-order.patch | ||
apt-0.5.15cnc6-alt-umount.patch | ||
apt-0.5.15cnc6-alt-vendor.patch | ||
apt-0.5.15cnc6-alt-virtual-scores.patch | ||
apt-0.5.15cnc6-apt-utils-locale.patch | ||
apt-0.5.15lorg2-alt-apt-get-simple-output.patch | ||
apt-0.5.15lorg2-alt-apt-get-TryToInstall-PrvPkgCandVer.patch | ||
apt-0.5.15lorg2-alt-apt-shell-resetconfig.patch | ||
apt-0.5.15lorg2-alt-buildlib.patch | ||
apt-0.5.15lorg2-alt-exit-status.patch | ||
apt-0.5.15lorg2-alt-fixes.patch | ||
apt-0.5.15lorg2-alt-genpkglist-reqfiles.patch | ||
apt-0.5.15lorg2-alt-i18n-apt-shell-typo.patch | ||
apt-0.5.15lorg2-alt-lua51.patch | ||
apt-0.5.15lorg2-alt-manifest.patch | ||
apt-0.5.15lorg2-alt-pkgCache-PrvIterator.patch | ||
apt-0.5.15lorg2-alt-pkgInitConfig-cpu.patch | ||
apt-0.5.15lorg2-alt-readline.patch | ||
apt-0.5.15lorg2-alt-realloc.patch | ||
apt-0.5.15lorg2-alt-rpmSystem-DistroVer.patch | ||
apt-0.5.15lorg2-alt-src-apt-shell-wrong_message_fix.patch | ||
apt-0.5.15lorg2-alt-versionmatch-TryToChangeVer.patch | ||
apt.be.po | ||
apt.conf | ||
apt.ru.po | ||
apt.spec | ||
ChangeLog-rpm.old | ||
genbasedir | ||
README.rsync |
Пакет apt-rsync предоставляет метод 'rsync' для APT. Это значит, что apt-get сможет выкачивать пакеты по протоколу rsync. Поддерживается работа через HTTP-proxy. Для работы метода 'rsync' необходимо, чтобы был установлен пакет rsync, скомпилированный с патчем для поддержки опции "--apt-support". В ALT Linux Sisyphus поддерживается начиная с rsync-2.5.5-alt3. Чтобы использовать метод 'rsync', необходимо добавить в /etc/apt/sources.list строчки вида: rpm [alt] rsync://rsync.altlinux.ru/ALTLinux/Sisyphus i586 classic rpm-src [alt] rsync://rsync.altlinux.ru/ALTLinux/Sisyphus i586 classic Для конфигурирования можно использовать следующие параметры (в /etc/apt/apt.conf или из командной строки): Debug::rsync = "true|false" Разрешает вывод отладочной информации. По умолчанию: false Acquire::rsync::program Указывает путь к программе rsync. По умолчанию: /usr/bin/rsync Acquire::rsync::Timeout Передаёт параметр "--timeout" с указанным значением программе rsync. По умолчанию: не передаёт этот параметр для rsync. Acquire::rsync::proxy Acquire::rsync::proxy::hostname Указывает, что необходимо использовать HTTP-proxy. Для этого будет установлена переменная окружения RSYNC_PROXY при вызове программы rsync. При использовании репозитариев на разных хостах возможно задание proxy для всех хостов и для каждого в отдельности. Значение для конкретного хоста перекрывает глобальное значение. Можно использовать специальное значение "none" для указания, что необходимо использовать прямое соединение. Формат: hostname:port или "none" Пример: Acquire::rsync::proxy="192.168.1.1:3128" Acquire::rsync::proxy::mirror.localdomain="none" Будет использоваться http-proxy "192.168.1.1:3128" для всех хостов, кроме mirror.localdomain, для которого будет использоваться прямое соединение. Acquire::rsync::options:: Позволяет задавать любые дополнительные опции при вызове программы rsync. Примеры: Acquire::rsync::options:: "-z"; Acquire::rsync::options { "-z"; "--some-other-option"; }; Первый вариант можно использовать, если все необходимые опции можно указать одной строкой. При наличии нескольких раздельных опций необходимо использовать второй вариант.