Зачем deltup?

Долго сидел - думал. Так и не понял шутки юмора.

>>> Fetching (36 of 46) media-libs/gst-plugins-bad-0.10.19
>>> Downloading 'http://trumpetti.atm.tut.fi/gentoo/distfiles/gst-plugins-bad-0.10.19.tar.bz2'
Searching for a previously downloaded file in /mnt/dist/all/Gentoo/distfiles/

We have the following candidates to choose from 
gst-plugins-bad-0.10.18.tar.bz2 

The best of all is ... gst-plugins-bad-0.10.18.tar.bz2

Checking if this file is OK.

Trying to download gst-plugins-bad-0.10.18.tar.bz2-gst-plugins-bad-0.10.19.tar.bz2.dtu

--2010-08-27 23:52:06--  http://linux01.gwdg.de/~nlissne/deltup.php?have=gst-plugins-bad-0.10.18.tar.bz2&want=gst-plugins-bad-0.10.19.tar.bz2&url=http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-0.10.19.tar.bz2&version=0.7&time=1282924326
Распознаётся linux01.gwdg.de... 134.76.13.21
Устанавливается соединение с linux01.gwdg.de|134.76.13.21|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 302 Found
Адрес: http://91.191.147.227:81/gst-plugins-bad-0.10.18.tar.bz2-gst-plugins-bad-0.10.19.tar.bz2.dtu [переход]
--2010-08-27 23:52:08--  http://91.191.147.227:81/gst-plugins-bad-0.10.18.tar.bz2-gst-plugins-bad-0.10.19.tar.bz2.dtu
Устанавливается соединение с 91.191.147.227:81... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 215885 (211K) [application/octet-stream]
Saving to: «deltup.php?have=gst-plugins-bad-0.10.18.tar.bz2&want=gst-plugins-bad-0.10.19.tar.bz2&url=http:%2F%2Fgstreamer.freedesktop.org%2Fsrc%2Fgst-plugins-bad%2Fgst-plugins-bad-0.10.19.tar.bz2&version=0.7&time=1282924326»

100%[==================================================================================>] 215 885     7,76K/s   в 23s      

2010-08-27 23:52:32 (9,30 KB/s) - «deltup.php?have=gst-plugins-bad-0.10.18.tar.bz2&want=gst-plugins-bad-0.10.19.tar.bz2&url=http:%2F%2Fgstreamer.freedesktop.org%2Fsrc%2Fgst-plugins-bad%2Fgst-plugins-bad-0.10.19.tar.bz2&version=0.7&time=1282924326» saved [215885/215885]

GOT deltup.php?have=gst-plugins-bad-0.10.18.tar.bz2&want=gst-plugins-bad-0.10.19.tar.bz2&url=http:%2F%2Fgstreamer.freedesktop.org%2Fsrc%2Fgst-plugins-bad%2Fgst-plugins-bad-0.10.19.tar.bz2&version=0.7&time=1282924326

The dtu could not be fetched, downloading full file from original URL

--2010-08-27 23:52:32--  http://trumpetti.atm.tut.fi/gentoo/distfiles/gst-plugins-bad-0.10.19.tar.bz2
Распознаётся trumpetti.atm.tut.fi... 130.230.54.100
Устанавливается соединение с trumpetti.atm.tut.fi|130.230.54.100|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 3009513 (2,9M) [application/x-bzip2]
Saving to: «gst-plugins-bad-0.10.19.tar.bz2»

 5% [===>                                                                               ] 152 025     17,0K/s  ост 4m 14s

Или я чего-то не понимаю? Зачем он скачивает разницу, а потом всё же её отвергает? Смысла вообще качать тогда?

cat /etc/make.conf
CFLAGS="-O2 -pipe -march=k8 -mtune=k8 -msse3"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS=~amd64
GENTOO_MIRRORS="http://trumpetti.atm.tut.fi/gentoo http://distfiles.gentoo.org"
FEATURES="ccache -buildpkg userfetch collision-protect metadata-transfer preserve-libs sandbox"
CCACHE_DIR="/var/tmp/ccache"
CCACHE_SIZE="4G"
PORTDIR_OVERLAY="/usr/local/portage"
DISTDIR="/mnt/dist/all/Gentoo/distfiles/"
FETCHCOMMAND="/usr/bin/getdelta.sh \"\${URI}\" -O \"\${DISTDIR}/\${FILE}\""

The dtu could not be fetched,

The dtu could not be fetched, downloading full file from original URL

Он попытался скачать разницу, но не получилось...
UPD У меня работает
http://paste.pocoo.org/show/255149/

Nosk написал(а): Долго сидел

Nosk написал(а):
Долго сидел - думал. Так и не понял шутки юмора.

FETCHCOMMAND="/usr/bin/getdelta.sh \"\${URI}\" -O \"\${DISTDIR}/\${FILE}\""

вообще-то надо вот так:

FETCHCOMMAND="/usr/bin/getdelta.sh \${URI}"

У него тоже правильно. Более

У него тоже правильно. Более того, на твою команду портаж ругаться будет, что не используется ${FILE}

да. ругается, но работает. а

да. ругается, но работает. а у Nosk сохраняет разницу вместо
gst-plugins-bad-0.10.18.tar.bz2-gst-plugins-bad-0.10.19.tar.bz2.dtu
в
«deltup.php?have=gst-plugins-bad-0.10.18.tar.bz2&want=gst-plugins-bad-0.10.19.tar.bz2&url=http:%2F%2Fgstreamer.freedesktop.org%2Fsrc%2Fgst-plugins-bad%2Fgst-plugins-bad-0.10.19.tar.bz2&version=0.7&time=1282924326»

eegorov@EGOROV ~ $ grep FETCH

eegorov@EGOROV ~ $ grep FETCH /etc/make.conf
FETCHCOMMAND="/usr/bin/getdelta.sh \"\${URI}\" -O \"\${DISTDIR}/\${FILE}\""

и все работает....

хм. правда пашет. может у

хм. правда пашет.
может у топикстартера скрипт не тот? старый или ещё что.
не так у него работает как-то.

Предложу неправильный способ.

Столкнулся с подобным не так давно (гентучан в курсе).

Решил для себя эту проблему грубым хаком /usr/bin/getdelta.sh:

@@ -711,6 +711,7 @@
 		if $FETCH "${DELTUP_SERVER}${query}"
 		then
 			# thanks to deelkar for this much more elegant solution to the "broken pipe" problem with "head -n1"
+			mv $(ls -c | sed -n 1p) ${best_candidate}-${NEW_FILE}.dtu
 			GOTFILE=$(ls -c | sed -n 1p) 
 			output "${YELLOW}GOT ${CYAN}${GOTFILE}\n"

Суть - переименование скачанной дельты для обеспечения нормальной работы скрипта.

2eegorov - хм.. до твоего решения почему-то не додумался. Спасибо.

Да пребудет с тобой великий Linux.

Jam666 написал(а): Столкнулся

Jam666 написал(а):
Столкнулся с подобным не так давно (гентучан в курсе).

Решил для себя эту проблему грубым хаком /usr/bin/getdelta.sh:

@@ -711,6 +711,7 @@
 		if $FETCH "${DELTUP_SERVER}${query}"
 		then
 			# thanks to deelkar for this much more elegant solution to the "broken pipe" problem with "head -n1"
+			mv $(ls -c | sed -n 1p) ${best_candidate}-${NEW_FILE}.dtu
 			GOTFILE=$(ls -c | sed -n 1p) 
 			output "${YELLOW}GOT ${CYAN}${GOTFILE}\n"

Суть - переименование скачанной дельты для обеспечения нормальной работы скрипта.

2eegorov - хм.. до твоего решения почему-то не додумался. Спасибо.

Yahoo!!! Спасибо! Именно этот грязный хак помог. Началась вся эта непонятка после обновления с portage-2.2_rc67 до portage-2.2_rc69

Раз пошла такая пьянка, может

Раз пошла такая пьянка, может выяснить причину все-таки?
UPD Проверь, чему равна переменная FETCH в скрипте

Это?

cat /usr/bin/getdelta.sh | grep FETCH
#		- handle metadata.dtd as exception (repoman uses FETCHCOMMAND)
add_to_configfile FETCH "/usr/bin/wget -t 1 --passive-ftp" "command to use for downloading"
	echo -e "${GREEN}FETCHCOMMAND=\"$0 \\\${URI}\""
	output "use getdelta.sh for your FETCHCOMMAND, only." &&
# repoman downloads metadata.dtd with FETCHCOMMAND
	$FETCH $@
	if $FETCH "${localn}${NEW_FILE}" 
		if $FETCH "${DELTUP_SERVER}${query}"
						$FETCH "${DELTUP_SERVER}${query}"
		fi # if $FETCH "${DELTUP_SERVER}${query}"
	$FETCH $ORIG_URI

Да нет.

eegorov@EGOROV ~ $ diff -uN /usr/bin/getdelta.sh /tmp/getdelta.sh 
--- /usr/bin/getdelta.sh        2009-06-28 05:35:43.000000000 +0700
+++ /tmp/getdelta.sh    2010-08-29 10:52:36.577000000 +0700
@@ -479,6 +479,8 @@
        exit $?
 fi
 
+echo $FETCH
+exit 0
 
 [ -e deltup-server.msg ] && rm -f deltup-server.msg
 
eegorov@EGOROV ~ $ /tmp/getdelta.sh test
/usr/bin/wget -t 1 --passive-ftp

UPD
а лучше так

eegorov@EGOROV /tmp $ diff -uN /usr/bin/getdelta.sh /tmp/getdelta.sh 
--- /usr/bin/getdelta.sh        2009-06-28 05:35:43.000000000 +0700
+++ /tmp/getdelta.sh    2010-08-29 12:32:28.103488620 +0700
@@ -708,6 +708,10 @@
                let TIMELIMIT=${FILESIZE}/${BANDWIDTH}
                [[ $TIMELIMIT -lt $QUEUETIMEOUT ]] && QUEUETIMEOUT=$TIMELIMIT
 
+               echo ""
+               echo $FETCH "${DELTUP_SERVER}${query}"
+               echo ""
+               exit 0
                if $FETCH "${DELTUP_SERVER}${query}"
                then
                        # thanks to deelkar for this much more elegant solution to the "broken pipe" problem with "head -n1"

и посмотреть, какой командой он пытаеися вытянуть дельту. В моем случае это

/usr/bin/wget -t 1 --passive-ftp http://linux01.gwdg.de/~nlissne/deltup.php?have=gst-plugins-bad-0.10.18.tar.bz2&want=gst-plugins-bad-0.10.19.tar.bz2&url=&version=0.7&time=1283059951

wget-1.12-r2 -вот в чём

wget-1.12-r2 -вот в чём собака порылась. изменилось правило для имён файлов при редиректе.
у меня такое же началось после обновления wget
надо в файле

/etc/deltup/getdelta.rc 

изменить параметр:

FETCH="/usr/bin/wget -t 1 --passive-ftp"

на

FETCH="/usr/bin/wget --trust-server-names -t 1 --passive-ftp"

Спасибо!

Благодарю за фикс!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".