From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 22 Dec 2006 20:10:07 +0200 From: Michael Shigorin To: ALT Linux Sisyphus discussion list Message-ID: <20061222181005.GP12587@osdn.org.ua> Mail-Followup-To: ALT Linux Sisyphus discussion list References: <200612142138.29401@ruslandh> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="J2SCkAp4GZ/dPZZf" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <200612142138.29401@ruslandh> User-Agent: Mutt/1.4.2.1i Subject: [sisyphus] =?koi8-r?b?W3NjcmlwdF0gUmU6IFNpc3lwaHVzIGJhY2t1cCDJ?= =?koi8-r?b?IGFwdA==?= X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: shigorin@gmail.com, ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Dec 2006 18:10:10 -0000 Archived-At: List-Archive: List-Post: --J2SCkAp4GZ/dPZZf Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit On Thu, Dec 14, 2006 at 09:38:21PM +0300, Хихин Руслан wrote: > 1 Можно-ли сделать так, что-бы в Back-Sisyphus оставались > только последние (в смысле предпоследние) версии пакетов. Я так > понимаю нужно писать отдельный скрипт на основе rpmvercmp ? > Ничего готового уже нет ? (я понимаю, что надо ещё и смотреть > в orphaned ) Можешь посмотреть в пакет sisyphus. Также в аттаче скриптик, который вычищает дубли и делает ссылку на требуемый (специфический) пакет в фиксированное место (для более деревянного обновления -- в данном случае репозиторий именно для этой штуки заводить было неосмысленно). -- ---- WBR, Michael Shigorin ------ Linux.Kiev http://www.linux.kiev.ua/ --J2SCkAp4GZ/dPZZf Content-Type: application/x-sh Content-Disposition: attachment; filename="update_ftp.sh" Content-Transfer-Encoding: quoted-printable #!/bin/sh=0A# a script to update repository hashes and relink __softinka__.= rpm=0A# to the lastest package; the latter part is based on =0A# "sisyphus_= cleanup_dups" from http://sisyphus.ru/srpm/sisyphus=0A=0A# (c) 2006 by Mich= ael Shigorin =0A# for $CUSTOMER, covered by GPL=0A=0A# Re= quires: apt-utils, rpm-utils=0A# Requires: rpm-build (due to /usr/bin/relat= ive)=0A=0ALC_COLLATE=3DC =0A=0AFTPDIR=3D"/var/ftp/pub/Linux/Favorit/updates= "=0AVERSION=3D"1.0"=0AARCH=3D"i586"=0ACOMPONENT=3D"hasher" # I've decided t= o leave it alone for easier rsync=0A=0A__SOFTINKA__=3D"__softinka__" # dir/= prefix for the special package=0AARCHIVE=3D"archive" # pruned old versions = recycle bin=0ADUPLIST=3D`mktemp`=0A=0Afatal()=0A{=0A echo $0: $* >&2=0A exi= t 1=0A}=0A=0Apushd "$FTPDIR/$VERSION" >/dev/null || fatal "Toplevel directo= ry missing"=0A # just in case=0A mkdir -p "$ARCHIVE" "$__SOFTINKA__"=0A # p= rocess dups=0A pushd "$ARCH/RPMS.$COMPONENT" >/dev/null || fatal "RPMS dire= ctory missing"=0A RPMDIR=3D"`pwd`"=0A for i in `ls -1 | grep ".$ARCH.rpm\= $" | cut -c1 | sort -u`; do=0A rpmrdups "$i"*.$ARCH.rpm >> "$DUPLIST" \= =0A || fatal "rpmrdups failed (install rpm-utils?)"=0A done=0A popd >/de= v/null=0A [ -s "$DUPLIST" ] && {=0A echo '*** dups found, moving to '$ARCH= IVE:=0A cut -d' ' -f2- -- "$DUPLIST" \=0A | tr ' ' '\n' \=0A | sort -u \= =0A | while read i; do=0A mv -v "$ARCH/RPMS.$COMPONENT/$i" "$ARCHIVE"=0A= done=0A }=0A # now symlink current __softinka__ rpm to fixed location=0A = # NB: should be relative due to ftpd/rsyncd chrooting=0A pushd "$__SOFTINKA= __" >/dev/null=0A __SOFTINKA___ABS=3D"`ls "$RPMDIR/$__SOFTINKA__"-*.rpm 2>= /dev/null`"=0A [ -s "$__SOFTINKA___ABS" ] || fatal "missing or ambiguous $= __SOFTINKA__ package"=0A __SOFTINKA___FIXED=3D"`pwd`/$__SOFTINKA__.rpm"=0A= ( rpm --checksig "$__SOFTINKA___ABS" || fatal "rpm --checksig failed" ) \= =0A | fgrep -q ' NOT ' \=0A && fatal "ALERT: $__SOFTINKA___ABS IS CORRUPT= , CHECKSUM MISMATCH!" \=0A || ln -sf "`relative "$__SOFTINKA___ABS" "$__SO= FTINKA___FIXED"`" "$__SOFTINKA___FIXED"=0A popd >/dev/null=0A # finish with= the rest=0A echo=0A echo '*** generating repository hashes:'=0A genbasedir= --topdir=3D. "$ARCH" "$COMPONENT" \=0A || fatal "genbasedir failed (instal= l apt-utils?)"=0Apopd >/dev/null=0A=0Arm "$DUPLIST"=0Aecho '*** done.'=0A --J2SCkAp4GZ/dPZZf--