alterator-mirror-0.1/000075500000000000000000000000001114632104200146475ustar00rootroot00000000000000alterator-mirror-0.1/Makefile000064400000000000000000000006201114632104200163050ustar00rootroot00000000000000NAME=mirror all: clean: install: install-module install-data include /usr/share/alterator/build/module.mak install-data: install -d $(datadir)/install2 cp -a postinstall.d $(datadir)/install2 install -d $(sysconfdir)/alterator cp -a mirror $(sysconfdir)/alterator install -d $(localstatedir)/alterator/mirror install -Dpm 755 alterator-mirror.cron $(sysconfdir)/cron.daily/alterator-mirror alterator-mirror-0.1/alterator-mirror.cron000075500000000000000000000013561114632104200210470ustar00rootroot00000000000000#!/bin/sh -eu lockdir="/var/lib/alterator/mirror/.lock" pidfile="$lockdir/pid" configdir=/etc/alterator/mirror/config logdir=/var/log/alterator-mirror commonfile="$configdir/.common" exit_handler() { local rc="$?" trap - EXIT rm -rf "$lockdir" exit "$rc" } ! mkdir -- "$lockdir" && [ -s "$lockdir/pid" ] && kill -0 -- "$(cat "$lockdir/pid")" && exit 0 trap exit_handler EXIT HUP PIPE INT QUIT TERM mkdir -p -- "$lockdir" echo $$ >"$pidfile" [ ! -s "$commonfile" ] || . "$commonfile" [ "${ALTERATOR_ENABLED:-}" = "1" ] || exit 0 for i in "$configdir"/*; do [ -s "$i" ] || continue . "$i" [ -n "${SRCROOT:-}" -a -n "${ARCH:-}" -a -n "${LIST:-}" ] || continue HOME=/tmp sisyphus-mirror -c "$i" -L "$logdir" done alterator-mirror-0.1/alterator-mirror.logrotate000064400000000000000000000001771114632104200221030ustar00rootroot00000000000000/var/log/alterator-mirror/*.log { missingok notifempty sharedscripts create 0644 root root delaycompress } alterator-mirror-0.1/applications/000075500000000000000000000000001114632104200173355ustar00rootroot00000000000000alterator-mirror-0.1/applications/pkg-mirror.desktop000064400000000000000000000002761114632104200230260ustar00rootroot00000000000000[Desktop Entry] Type=Application Categories=X-Alterator-Pkg Icon=mirror Terminal=false Name=Local mirrors of repositories X-Alterator-URI=/mirror X-Alterator-Help=mirror X-Alterator-UI=html alterator-mirror-0.1/backend3/000075500000000000000000000000001114632104200163215ustar00rootroot00000000000000alterator-mirror-0.1/backend3/mirror000075500000000000000000000103321114632104200175600ustar00rootroot00000000000000#!/bin/sh repositorydir=/etc/alterator/mirror/repositories configdir=/etc/alterator/mirror/config mirrordir=/etc/alterator/mirror/mirrors destdir=/var/lib/alterator/mirror alterator_api_version=1 . alterator-sh-functions . shell-quote . shell-config ### low level repository_awk() { alterator-dump-desktop \ -v lang="$in_language" \ -v out="Filename;X-Alterator-Path;X-Alterator-Has-Noarch;Name" \ -v def="noname;/notfound;no" \ "$@" } mirror_awk() { alterator-dump-desktop \ -v lang="$in_language" \ -v out="X-Alterator-Repositories;X-Alterator-RSYNC-URI" \ -v def="all" \ "$@" } list_uri() { local path="$(quote_sed_regexp "$1")" sed -n "s/$prefix_re$path[[:space:]]\+.*/\2/p" $sourcelist } config_get() { local v="$(shell_config_get "$configdir/$1" "$2")" string_quote_remove "$v" } config_set() { local f="$configdir/$1" [ -s "$f" ] || echo ". $configdir/.common" >"$f" shell_config_set "$f" "$2" "\"$3\"" } ### high level list_repository() { repository_awk $repositorydir/*.desktop| while read name path noarch description;do name="${name##*/}" name="${name%.desktop}" local uri="$(config_get "$name" SRCROOT)" local arch="$(config_get "$name" ARCH)" [ -n "$uri" ] || uri="`_ "no mirroring"`" arch="${arch%% noarch}" local dusage="$(du -sh "$destdir/$path" 2>/dev/null|cut -f1)" [ -n "$dusage" ] || dusage="0 K" write_table_item \ name "$name" \ description "$description" \ uri "$uri" \ arch "$arch" \ du "$dusage" done } list_mirror() { local name="$1";shift write_enum_item "none" "`_ "no mirroring"`" mirror_awk $mirrordir/*.desktop| while read repo uri; do [ -n "$uri" ] || continue repo=";$repo;" [ "$repo" = ";all;" -o -z "${repo##*;$name;*}" ] || continue echo "$uri" done | write_enum } list_arch() { write_enum_item "i586" write_enum_item "x86_64" } read_storage() { df -lhP | sed 1d | sort -r -k 6,6 | while read fs total use avail percent mpoint; do [ -z "${destdir##$mpoint*}" ] || continue write_string_param "storage_avail" "$avail" break done } on_message() { case "$in_action" in list) case "$in__objects" in avail_repository) list_repository;; avail_arch) list_arch;; avail_mirror) [ -n "$in_name" ] && list_mirror "$in_name" ;; esac ;; read) case "$in__objects" in /) ! grep -qs "^$(quote_sed_regexp "$destdir")[[:space:]]" /etc/exports write_bool_param export_nfs "$?" write_bool_param enabled "$(shell_config_get "$configdir/.common" ALTERATOR_ENABLED)" read_storage ;; repository) [ -n "$in_name" ] || return repository_awk $repositorydir/$in_name.desktop| (read name path noarch description; write_string_param description "$description") local uri="$(config_get "$in_name" SRCROOT)" local arch="$(config_get "$in_name" ARCH|tr ' ' ';')" [ -n "$uri" ] || uri="none" write_string_param uri "$uri" write_string_param arch "$arch" ;; esac ;; write) case "$in__objects" in /) ! test_bool "$in_enabled" shell_config_set "$configdir/.common" ALTERATOR_ENABLED "$?" if test_bool "$in_export_nfs" ;then grep -qs "^$(quote_sed_regexp "$destdir")[[:space:]]" /etc/exports || echo "$destdir *(ro,all_squash,sync)" >>/etc/exports else sed "/^$(quote_sed_regexp "$destdir")[[:space:]]/d" -i /etc/exports fi /sbin/service nfs restart >/dev/null 2>/dev/null ;; repository) if [ -n "$in_clear" -a -n "$in_name" ];then repository_awk $repositorydir/$in_name.desktop| (read name path noarch description; [ -n "$path" ] && rm -rf "$destdir/$path") elif [ -n "$in_commit" ];then repository_awk $repositorydir/$in_name.desktop| (read name path noarch description; config_set "$in_name" LIST "$path" [ -n "$in_arch" -a "$noarch" = "yes" ] && in_arch="${in_arch};noarch" [ "$in_uri" != "none" ] || in_uri="" config_set "$in_name" SRCROOT "$in_uri" config_set "$in_name" ARCH "$(echo $in_arch|tr ';' ' ')") fi esac ;; write) ;; esac } message_loop alterator-mirror-0.1/mirror/000075500000000000000000000000001114632104200161615ustar00rootroot00000000000000alterator-mirror-0.1/mirror/config/000075500000000000000000000000001114632104200174265ustar00rootroot00000000000000alterator-mirror-0.1/mirror/config/.common000064400000000000000000000001351114632104200207160ustar00rootroot00000000000000ARGS="-rltvhmHP --delete-delay --delete-excluded --stats" DESTROOT=/var/lib/alterator/mirror alterator-mirror-0.1/mirror/mirrors/000075500000000000000000000000001114632104200176565ustar00rootroot00000000000000alterator-mirror-0.1/mirror/mirrors/alt.desktop000064400000000000000000000005051114632104200220310ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ftp.altlinux.org (ALT Linux, Moscow) X-Alterator-Country=ru X-Alterator-FTP-URI=ftp://ftp.altlinux.org/pub/distributions/ALTLinux X-Alterator-HTTP-URI=http://ftp.altlinux.org/pub/distributions/ALTLinux X-Alterator-RSYNC-URI=rsync://ftp.altlinux.org/ALTLinux alterator-mirror-0.1/mirror/mirrors/chg.desktop000064400000000000000000000003541114632104200220140ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ftp.chg.ru (Chg-FREEnet, Chernogolovka) X-Alterator-Country=ru X-Alterator-FTP-URI=ftp://ftp.chg.ru/pub/Linux/ALTLinux X-Alterator-RSYNC-URI=rsync://ftp.chg.ru/ALTLinux alterator-mirror-0.1/mirror/mirrors/heanet.desktop000064400000000000000000000005031114632104200225130ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ftp.heanet.ie (HEAnet, Ireland) X-Alterator-Country=ie X-Alterator-FTP-URI=ftp://ftp.heanet.ie/mirrors/ftp.altlinux.org X-Alterator-HTTP-URI=http://ftp.heanet.ie/mirrors/ftp.altlinux.org X-Alterator-RSYNC-URI=rsync://ftp.heanet.ie/mirrors/ftp.altlinux.org alterator-mirror-0.1/mirror/mirrors/ibiblio.desktop000064400000000000000000000006721114632104200226670ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ibiblio.org (public's library and digital archive, United States) X-Alterator-Country=us X-Alterator-Repositories=branch-4.1;desktop-4.1;updates-4.1;daedalus X-Alterator-FTP-URI=ftp://ibiblio.org/pub/linux/distributions/altlinux X-Alterator-HTTP-URI=http://distro.ibiblio.org/pub/linux/distributions/altlinux X-Alterator-RSYNC-URI=rsync://distro.ibiblio.org/distros/altlinux alterator-mirror-0.1/mirror/mirrors/ilim.desktop000064400000000000000000000003571114632104200222100ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ftp.ilim.ru (Ust-Ilimsk) X-Alterator-Country=ru X-Alterator-Repositories=updates-4.0;updates-4.1;sisyphus X-Alterator-FTP-URI=ftp://ftp.ilim.ru/pub/Linux/Distrib/ALTLinux alterator-mirror-0.1/mirror/mirrors/ipsl.desktop000064400000000000000000000006141114632104200222210ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=distrib-coffee.ipsl.jussieu.fr (Institut Pierre Simon Laplace, France) X-Alterator-Country=fr X-Alterator-FTP-URI=ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux X-Alterator-HTTP-URI=http://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux X-Alterator-RSYNC-URI=rsync://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux alterator-mirror-0.1/mirror/mirrors/jinr.desktop000064400000000000000000000003171114632104200222140ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=linux4u.jinr.ru (Joint Institute for Nuclear Research, Dubna) X-Alterator-Country=ru X-Alterator-FTP-URI=ftp://linux4u.jinr.ru/pub/ALTLinux alterator-mirror-0.1/mirror/mirrors/kiev.desktop000064400000000000000000000004531114632104200222110ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ftp.linux.kiev.ua (Kiev, Ukraine) X-Alterator-Country=ua X-Alterator-FTP-URI=ftp://ftp.linux.kiev.ua/pub/Linux/ALT X-Alterator-HTTP-URI=http://ftp.linux.kiev.ua/pub/Linux/ALT X-Alterator-RSYNC-URI=rsync://ftp.linux.kiev.ua/ALTLinux alterator-mirror-0.1/mirror/mirrors/mobicomk.desktop000064400000000000000000000004001114632104200230430ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ftp.mobicomk.ru (MegaFonGSM, Caucasus) X-Alterator-Country=ru X-Alterator-Repositories=updates-4.0;updates-4.1;sisyphus X-Alterator-FTP-URI=ftp://ftp.mobicomk.ru/pub/distributions/ALTLinux alterator-mirror-0.1/mirror/mirrors/psn.desktop000064400000000000000000000005111114632104200220460ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ftp.impb.psn.ru (Pushchino Scientific Center) X-Alterator-Country=ru X-Alterator-Repositories=server-4.0;updates-4.0;updates-4.1;sisyphus X-Alterator-FTP-URI=ftp://ftp.impb.psn.ru/pub/distributions/ALTLinux X-Alterator-RSYNC-URI=rsync://ftp.impb.psn.ru/ALTLinux alterator-mirror-0.1/mirror/mirrors/yandex.desktop000064400000000000000000000004361114632104200225440ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=mirror.yandex.ru (Yandex, Moscow) X-Alterator-Country=ru X-Alterator-FTP-URI=ftp://mirror.yandex.ru/altlinux X-Alterator-HTTP-URI=http://mirror.yandex.ru/altlinux X-Alterator-RSYNC-URI=rsync://mirror.yandex.ru/altlinux alterator-mirror-0.1/mirror/repositories/000075500000000000000000000000001114632104200207105ustar00rootroot00000000000000alterator-mirror-0.1/mirror/repositories/branch-4.0.desktop000064400000000000000000000003551114632104200240420ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ALT Linux 4.0 stable branch Name[ru]=Стабильная ветка ALT Linux 4.0 X-Alterator-Path=/4.0/branch X-Alterator-Has-Noarch=yes X-Alterator-Components=classic alterator-mirror-0.1/mirror/repositories/branch-4.1.desktop000064400000000000000000000003551114632104200240430ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ALT Linux 4.1 stable branch Name[ru]=Стабильная ветка ALT Linux 4.1 X-Alterator-Path=/4.1/branch X-Alterator-Has-Noarch=yes X-Alterator-Components=classic alterator-mirror-0.1/mirror/repositories/daedalus.desktop000064400000000000000000000002521114632104200240640ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ALT Linux Daedalus X-Alterator-Path=/Daedalus X-Alterator-Has-Noarch=no X-Alterator-Components=classic alterator-mirror-0.1/mirror/repositories/desktop-4.0.desktop000064400000000000000000000003271114632104200242550ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ALT Linux 4.0 Desktop Name[ru]=ALT Linux 4.0 Desktop X-Alterator-Path=/4.0/Desktop/current X-Alterator-Has-Noarch=no X-Alterator-components=classic alterator-mirror-0.1/mirror/repositories/desktop-4.1.desktop000064400000000000000000000003271114632104200242560ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ALT Linux 4.1 Desktop Name[ru]=ALT Linux 4.1 Desktop X-Alterator-Path=/4.1/Desktop/current X-Alterator-Has-Noarch=no X-Alterator-components=classic alterator-mirror-0.1/mirror/repositories/server-4.0.desktop000064400000000000000000000003311114632104200241050ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ALT Linux 4.1 Server Name[ru]=ALT Linux 4.1 Server X-Alterator-Path=/4.1/Server/current X-Alterator-Has-Noarch=no X-Alterator-Components=main contrib alterator-mirror-0.1/mirror/repositories/sisyphus.desktop000064400000000000000000000002531114632104200241720ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=ALT Linux Sisyphus X-Alterator-Path=/Sisyphus X-Alterator-Has-Noarch=yes X-Alterator-Components=classic alterator-mirror-0.1/mirror/repositories/updates-4.0.desktop000064400000000000000000000003471114632104200242530ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=Updates for ALT Linux 4.0 Name[ru]=Обновления для ALT Linux 4.0 X-Alterator-Path=/updates/4.0 X-Alterator-Has-Noarch=no X-Alterator-Components=updates alterator-mirror-0.1/mirror/repositories/updates-4.1.desktop000064400000000000000000000003471114632104200242540ustar00rootroot00000000000000[Desktop Entry] Type=Application Icon=sisyphus Terminal=false Name=Updates for ALT Linux 4.1 Name[ru]=Обновления для ALT Linux 4.1 X-Alterator-Path=/updates/4.1 X-Alterator-Has-Noarch=no X-Alterator-Components=updates alterator-mirror-0.1/postinstall.d/000075500000000000000000000000001114632104200174455ustar00rootroot00000000000000alterator-mirror-0.1/postinstall.d/40-iptables-nfs.sh000075500000000000000000000012271114632104200226160ustar00rootroot00000000000000#!/bin/sh . install2-init-functions mountd_port=800 nfsconf="$destdir/etc/sysconfig/nfs" iptablesdir="$destdir/etc/alterator/net-iptables" [ -d "$iptablesdir" -a ! -s "$iptablesdir/nfs.desktop" ] || exit 0 [ -f "$nfsconf" ] || return cat >"$iptablesdir/nfs.desktop"<