LINUX.ORG.RU
ФорумTalks

equery - тормозная кривая [вырезано]!

 , ,


1

1

Давненько я не писал гневных отзывов :3
и так, поехали:
equery умеет проверять mtime, md5sum и вообще наличие файлов пакета.
отлично, запускаем

 time equery k -o media-sound/*

* Checking media-sound/alsa-utils-1.0.26 ...
!!! /usr/share/locale/ja/LC_MESSAGES/alsaconf.mo does not exist
!!! /usr/share/man/fr/man8/alsaconf.8.bz2 does not exist
!!! /etc/modprobe.d/alsa.conf has incorrect MD5sum
   98 out of 101 files passed

real	0m39.001s
user	0m12.596s
sys	0m15.984s
теперь баше-поделка
time sh scripts/portage/TEST media-sound/*
media-sound/alsa-utils-1.0.26: /etc/modprobe.d/alsa.conf has incorrect MD5sum
5462042462f06a0c15b2e9c9a5a81210 VS ccc2347c7466759e6155c3cdba15ec49
media-sound/alsa-utils-1.0.26: /etc/modprobe.d/alsa.conf has wrong mtime
1266641774 VS 1347201798
media-sound/alsa-utils-1.0.26: /usr/bin/aseqnet has incorrect MD5sum
6e7585b0da8f4dce1468333d5f866697 VS 2fd0f9ab382d49236a8de292952fbfd2
media-sound/alsa-utils-1.0.26: /usr/bin/aseqdump has incorrect MD5sum
6d3f033ff57e906a63aa0c777ae26b0d VS 8e1836c09aa19325001c89fd18e80b6e
media-sound/alsa-utils-1.0.26: /usr/bin/arecordmidi has incorrect MD5sum
46eaeba8c136f0e6d94b68ec2dd10fb5 VS dc403643d049dc3c332c661f05a22193
media-sound/alsa-utils-1.0.26: /usr/bin/aplaymidi has incorrect MD5sum
9dbe13f518aa7805832f778433fe3703 VS 169b5c456c445b9826f3537cbafdc51d
media-sound/alsa-utils-1.0.26: /usr/bin/aconnect has incorrect MD5sum
4c1229b9796e4e94b87e57763ab78c5b VS b413545a98030d53395b10ab7a343955
media-sound/alsa-utils-1.0.26: /usr/bin/alsaloop has incorrect MD5sum
09d6e1c5c68ee2f94c094abc5c6d8e76 VS a14e58bb8b1f89396f4d154f4f49fc96
media-sound/alsa-utils-1.0.26: /usr/bin/speaker-test has incorrect MD5sum
a93764cd4150b7fef14341c060886377 VS 0221c4e3796105e15a8a5cab6cd46e47
media-sound/alsa-utils-1.0.26: /usr/bin/iecset has incorrect MD5sum
6af1967e400160563be811670606b1fc VS fd481036578fbe0bb110e60e79bd2810
media-sound/alsa-utils-1.0.26: /usr/bin/aplay has incorrect MD5sum
edb9cfb8bd6743da5c54235bef9529c6 VS f2cd03a46d3f605d79820477eb5052e9
media-sound/alsa-utils-1.0.26: /usr/bin/amidi has incorrect MD5sum
7f91333592620b3e17131bf9fcc2fd42 VS d724d116dbd14ba6a3e71e03166bb55e
media-sound/alsa-utils-1.0.26: /usr/bin/amixer has incorrect MD5sum
12b49fdfd0578a1d76a5c1def6f92eea VS 065fea890aad3db9d038c9785f0ed0c0
media-sound/alsa-utils-1.0.26: /usr/bin/alsamixer has incorrect MD5sum
5966c39232ef2fd7d0609d596170fe83 VS 8eb3047d82464325aef85986d8505ab4
media-sound/alsa-utils-1.0.26: /usr/bin/alsaucm has incorrect MD5sum
e0f338a448f8ee7761fae31f072cb8aa VS b1f8ef5dee593e48a4f9aa0fa80e04ef
media-sound/alsa-utils-1.0.26: /usr/sbin/alsactl has incorrect MD5sum
34644aa083fac782fef497c7c364385c VS ee283adf83fec91e079a55f1884172b7
media-sound/alsa-utils-1.0.26: OBJ /usr/share/locale/ja/LC_MESSAGES/alsaconf.mo doesn't exist
media-sound/alsa-utils-1.0.26: OBJ /usr/share/man/fr/man8/alsaconf.8.bz2 doesn't exist
media-sound/cdparanoia-3.10.2-r4: /usr/lib/libcdda_paranoia.so.0.10.2 has incorrect MD5sum
d6d0067a20876b678aee46fe6736f35b VS b6aa617bdf90c5a8a224ca59045c2ba5
media-sound/cdparanoia-3.10.2-r4: /usr/lib/libcdda_interface.so.0.10.2 has incorrect MD5sum
02530220bf9ec37d4b7a3e846c3fc5ec VS 485f93b485dcb5727144a445d708b820
media-sound/cdparanoia-3.10.2-r4: /usr/bin/cdparanoia has incorrect MD5sum
3fc21e13cf5c1895275d5eff048c2828 VS fd33354e93810cf31190f11f468cf0a3
media-sound/deadbeef-9999: /usr/bin/deadbeef has incorrect MD5sum
b04d9afa1df6c0f981fec0d0be8cbf67 VS 4e521d9f2e2904056fd6325b52833ddf
media-sound/lame-3.99.5: /usr/bin/lame has incorrect MD5sum
586e358aadfb0b5d91d8bfe6647b8170 VS b3ec9d5107826c3bfa1bb34e40392bd9
media-sound/lame-3.99.5: /usr/lib/libmp3lame.so.0.0.0 has incorrect MD5sum
57a088da8b5518c85d7e6f466ef216c1 VS 668b2cb4598e850eae8b94ef8dcd7d9e
media-sound/mpg123-1.14.4: /usr/bin/mpg123 has incorrect MD5sum
37e0e00e2c591378499ac2c5fd624517 VS e86ca6bd9a9c95472ef4d2a68816f71a
media-sound/mpg123-1.14.4: /usr/lib/libmpg123.so.0.36.6 has incorrect MD5sum
686e622490a771bb902a1066e4c7c0e3 VS 5baf67ed743449fd64e9d1668f301564
media-sound/musepack-tools-465: /usr/bin/mpcgain has incorrect MD5sum
732fa9b4704421e63968d7f9a238fdd7 VS b08ed092c2bbf3ed40e9c908cd645b36
media-sound/musepack-tools-465: /usr/bin/mpcdec has incorrect MD5sum
97e9b2eb273184380f44da5f6cbd5625 VS 0669182d04ea1bc211fdff879b3c6175
media-sound/musepack-tools-465: /usr/bin/mpcenc has incorrect MD5sum
bee67878a0b52845dab04079ae53cddb VS ec600671d008f1c6d2946ba247333bd7
media-sound/musepack-tools-465: /usr/bin/mpc2sv8 has incorrect MD5sum
295f763d097499430583d405a326d461 VS f9f204507e3dfa14ff642c34c2d29a66
media-sound/musepack-tools-465: /usr/bin/mpccut has incorrect MD5sum
bb05150a5b80384c9c58bcc91922ae0a VS f02a319e893a5f24cd9226a5629ffd66
media-sound/musepack-tools-465: /usr/bin/mpcchap has incorrect MD5sum
69404023295888367142aeb223775991 VS 18669a9e207184545005526b1dac8a30
media-sound/musepack-tools-465: /usr/bin/wavcmp has incorrect MD5sum
3f281e21b5fc3f32813987cb4abc4f6b VS 9444631c99ca615ebc0b15deef21e3a9
media-sound/musepack-tools-465: /usr/lib/libmpcdec.so.7.0.1 has incorrect MD5sum
4c260731519c5f0e68cb5aaf602d6937 VS 51ceb8ccba5b39850a9bbd254a677785
media-sound/soundkonverter-1.6.3: /usr/bin/soundkonverter has incorrect MD5sum
18c712d156d64e648af9d90d536c034a VS 782e507357c51ecdd57fcde7421e6324
media-sound/soundkonverter-1.6.3: /usr/lib/libsoundkonvertercore.so has incorrect MD5sum
bce0ae0e85860e5dfa8b0c540e0dd3e5 VS d985f24134c005ef3cfdc7d9620f3b47
media-sound/twolame-0.3.13: /usr/bin/twolame has incorrect MD5sum
e0fd5312e39244142b9025c127fe219a VS 48fc02c71d7ccab9bafab88b5faf000e
media-sound/twolame-0.3.13: /usr/lib/libtwolame.so.0.0.0 has incorrect MD5sum
0b4c6db0c716bb71006ec89ab7925753 VS 48c95722af2bfb77b8a9753804770761
media-sound/vkplayer-0.08.16.4: /usr/bin/vkplayer has incorrect MD5sum
3850b447ca43ded496c64a30c7d92042 VS 47e6c1f473f18972e81e5757b06cf45f
media-sound/wavpack-4.60.1: /usr/bin/wavpack has incorrect MD5sum
f5b76a27b9a50ec6d9ec58f3663b38eb VS 686305b8531a00fc30ee4bafe8154087
media-sound/wavpack-4.60.1: /usr/bin/wvunpack has incorrect MD5sum
6451e812665f2001dc9f02a2bcbb69ff VS 68ce1843d2b1852797d2bc6aa41ec923
media-sound/wavpack-4.60.1: /usr/bin/wvgain has incorrect MD5sum
2661925b646968cd8ab61c0e8ea689be VS d53183f8191a765780961e74808786d4
media-sound/wavpack-4.60.1: /usr/lib/libwavpack.so.1.1.4 has incorrect MD5sum
fbdc4665c8627d19c69acd4157a3d87b VS 3358082ed7b14499db2658e22c772ccf

real	0m0.996s
user	0m0.224s
sys	0m0.018s
ШТО o_O?
в 40! раз быстрей
собственно скрипт, который выполнил задачу equery k быстрей и корректно
#!/bin/bash
PKGDB="/var/db/pkg"
green="\033[01;32m"
red="\033[01;31m"
restore="\033[00m"
contrast="\033[1m"
underline="\033[4m"

[ -n "${@}" ] && packages="${@}"

check(){
	while read type name sum time;do
		[[ "${type}" == "obj" && ! -f "${name}" ]] && echo -e "${green}${1}${restore}: OBJ ${red}${name}${restore} doesn't exist" && fail="1"
		[[ "${type}" == "dir" && ! -d "${name}" ]] && echo -e "${green}${1}${restore}: DIR ${red}${name}${restore} doesn't exist" && return
		[[ "${type}" == "sym" && ! -h "${name}" ]] && echo -e "${green}${1}${restore}: SYM ${red}${name}${restore} doesn't exist" && return
		if [[  -z "${fail}" && "${type}" == "obj" ]];then
			my_sum="$(md5sum ${name} | awk '{print $1}')"
			if [[ "${my_sum}" != "${sum}" ]];then
				echo -e "${green}${1}${restore}: ${red}${name}${restore} has incorrect MD5sum"
				echo -e "${my_sum} ${contrast}VS${restore} ${sum}"
			fi
			my_time="$(stat -c %Y ${name})"
			if [[ "${my_time}" != "${time}" ]];then
				echo -e "${green}${1}${restore}: ${red}${name}${restore} has wrong mtime"
				echo -e "${my_time} ${contrast}VS${restore} ${time}"
			fi
		fi
		unset fail
	done < ${PKGDB}/${1}/CONTENTS
} 2>/dev/null

if [ -n "${packages}" ];then
	for package in ${packages};do
		pre_package="$(ls -d1 ${PKGDB}/{*/,}${package}{*,/*} 2>/dev/null)"
		pre_package="$(sort -u <<< "${pre_package//'//'//}")"
		package="${pre_package//${PKGDB}\//}"
		for pack in ${package};do
			check "${pack}"
		done
	done
else
	for package in `find "${PKGDB}" -mindepth 2 -maxdepth 2 -type d | cut -d\/ -f5,6`;do
		check "${package}"
	done
fi
итого:

  • equery НЕ умеет сравнивать цифры
  • тормозное говно

Уххх...даже легче стало :3
<вброс>Привет, питонисты :3</вброс>

★★★★

Уххх...даже легче стало :3

Ты это, дыши ровнее, спокойнее, прими валидолу, а то, того и гляди, кондрашка хватит :D

Boba_Fett ()
Ответ на: комментарий от Boba_Fett

да вот дышу
но глядя в историю...охереваю
некий клоун предложил забивать на контрольные суммы файлов, по которым прошёлся прелинк
дегенераты-разрабы поддержали
вместо того, чтобы сделать обёртку над прелинком и фиксить базу пакетов на предмет изменившихся хэшей, они тупо забивают хер на это
в чём смысл тогда этих контрольных сумм?
ненавижу дегенератов!

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

Тихо, тихо. Сделай свою генту с бд и ш или переходи на exherbo. Палудис на сях написан.

sgasgar1234 ()
Ответ на: комментарий от kerneliq

а толку их пинать?
эти клоуны даже # обработать нормально не хотят, хотя препятствий никаких нет
«мы хотим 'правильно', а не 'хорошо'» <--- официальный ответ

megabaks ★★★★ ()

Да чё-то питоноподелия вообще тормозят безбожно. И portage последнее время стал просто адово тормозить.

Kindly_Cat ()
Ответ на: комментарий от stevejobs

комментарий
/Кэп
конкретно: речь о инлайн камментах
-use # обработает нормально
как и
useX # где X цЫыыферка
а вот
-use#
или
useX# будут криво обработаны
такие они...дегенераты-разрабы

megabaks ★★★★ ()

Поди ты и emerge перепиешь, а то он зависимости долго считает :3

xorik ★★★★★ ()

на правах кэпа: тут либо форкать gentoolkit, либо патчить и слать все в апстрим, либо изобрести gentoolkit с нуля(чем ты и начал заниматься). Любой из путей по-своему хорош...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от qnikst

плохо то, что хаскелев форк не в основном дереве, в отличии от кривого и тормозного сабжа

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

я вот не уверен, что оно соберётся на том, что в дереве. А в дерево пихать upstream не хочется потому, что мороки много. Хотя если fquery будет нужно, то впихнуть могу.

qnikst ★★★★★ ()
Ответ на: комментарий от megabaks

вместо того, чтобы сделать обёртку над прелинком и фиксить базу пакетов на предмет изменившихся хэшей, они тупо забивают хер на это

ещё какие-либо проблемы кроме неконсистентности базы возникают? можешь скинуть ссылку на баг?

qnikst ★★★★★ ()

Видимо в equerry дофига всяких проверок, перепроверок и ветвлений, которых нет в баш-скрипте. Вот что бывает, когда ООП-еры до прикладных утилит свои некромантские ручищи дотягивают ((

anonymoos ★★★★★ ()
Ответ на: комментарий от megabaks

так а ты прелинк через FEATURES делаешь или так руками?

qnikst ★★★★★ ()
Ответ на: комментарий от qnikst

руками
да и профита от той «фичи» ноль
If prelink(8) is installed then use it to undo any prelinks on files before computing checksums for merge and unmerge.
спасибо, кушайте такое сами

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

мне как-то лень щас пинать zmedico, и других портаж девов по поводу того, где ещё используется md5 (т.к. сам пока не до конца разобрался в вопросе), оно точно в quickpkg используется и возможно где-то ещё. В общем, если в базе по каким-то причинам должно храниться оригинальное значение md5 то решение оправдано.

И да, оно ж щас само при equery check за тебя всё делает, во всяком случае у тех, кого попросил воспроизвести ситуацию.

qnikst ★★★★★ ()
Ответ на: комментарий от megabaks

«мы хотим 'правильно', а не 'хорошо'» <--- официальный ответ

комментарий /Кэп конкретно: речь о инлайн камментах -use # обработает нормально как и useX # где X цЫыыферка а вот -use# или useX# будут криво обработаны такие они...дегенераты-разрабы

А я считаю, что хорошо — это когда комменты начинаются с двух слэшей (//). Разрабы дегенераты, потому что в шеллах и в стандарте posix синтаксис комментариев сделан не так, как я хочу, и не хотят тратить время на написание нужных только мне костылей?

damnemall ()
Ответ на: комментарий от qnikst

тебе не кажется, что откатывать прелинк при ПРОВЕРКЕ, мягко говоря, дебилизм?
может проще обёртку над прелинком, которая будет фиксить хэши в базе?
при прелинке потери времени будут 0 целых хрен сотых секунды
а при проверке с откатом...в 40 медленнее нормальной проверки
подумай

megabaks ★★★★ ()
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от qnikst

опять же - быстропакеты
при создании пакета потери на откат прелинка для одного пакета будут тоже 0 целых хрен сотых
а вот проверка всех установленных пакетов...да-да - в 40 раз тормознее
если ушло 40 сек на 14 пакетов, то представь себе средненький десктоп в 1000 пакетов

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

не кажется, что откатывать прелинк при ПРОВЕРКЕ, мягко говоря, дебилизм?

да, если в базе портежа не нужны оригинальные md5. В случае если нужны нужно или расширять набор переменных или откатывать прелинк. Я не могу ответить на вопрос о всех юзкейсах, где нужна md5.

может проще обёртку над прелинком, которая будет фиксить хэши в базе?

проще.

qnikst ★★★★★ ()

Пичалька, ничего за последние 6 лет не изменилось. На мощных серверах всё работает шустро, а вот в слабой виртуалке любой emerge/equery заканчивается болью. Поэтому и держу eix.

true_admin ★★★★★ ()

Ух ты, мегабаксик бугуртит. Ждем Портаж Мегабакс Эдишен. Единственный и хороший.

PaxtonFettel ()

<offtop>еда!! :)<offtop>

  • Python как ЯП здесь абсолютно не причем. Надеюсь мегабакс ты это понимаешь.
  • «привет» можна передавать программеру на любом ЯП, в тч и фанату Bash ;)
  • А тормозит оно скорее всего по той же причине (или похожей) по котороя я создал этот тред

теперь моя очередь показать велосипед

vv@crusader ~/work/own/python/portage3/bin/samples $ time ./equery2.rb -k media-sound/alsa-utils
 * Checking of media-sound/alsa-utils-1.0.24.2-r1:
Next files have mismatch
/etc/conf.d/alsasound: ctime  mismatch
/etc/modprobe.d/alsa.conf: hash, ctime  mismatch
	106 out of 108 files passed

real	0m2.757s
user	0m0.219s
sys	0m0.055s
vv@crusader ~/work/own/python/portage3/bin/samples $ time ./equery2.rb -k media-sound/alsa-utils
 * Checking of media-sound/alsa-utils-1.0.24.2-r1:
Next files have mismatch
/etc/conf.d/alsasound: ctime  mismatch
/etc/modprobe.d/alsa.conf: hash, ctime  mismatch
	106 out of 108 files passed

real	0m0.255s
user	0m0.210s
sys	0m0.026s
vv@crusader ~/work/own/python/portage3/bin/samples $ 
ZuBB ★★★★★ ()
Ответ на: комментарий от ZuBB

Надеюсь мегабакс ты это понимаешь.

иначе не было бы тега...

А тормозит оно скорее всего по той же причине (или похожей) по котороя я создал этот тред

мне лень разбираться

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

А тормозит оно скорее всего по той же причине (или похожей) по котороя я создал этот тред

мне лень разбираться

ну там все просто: функция, которая делает сравнение версий ебилда (кто «больше»: 1.0.0-r1 или 1.0.0-beta2-r3) при установке пакета вызывается всего-то 689 раз..

ZuBB ★★★★★ ()
Ответ на: комментарий от shell-script

здесь этого никто не знает. и кажется знать не хочет. пинай разрабов портажа

ZuBB ★★★★★ ()

А что ты хотел, «петон: глобально и надежно.»

AiFiLTr0 ★★★★★ ()

Питон, он такой.

# time equery k media-sound/alsa-utils
* Checking media-sound/alsa-utils-1.0.25-r1 ...
!!! /etc/conf.d/alsasound has wrong mtime (is 1338839783, should be 1334096414)
   101 out of 102 files passed

real	0m1.809s
user	0m1.660s
sys	0m0.080s
# time qcheck media-sound/alsa-utils
Checking media-sound/alsa-utils-1.0.25-r1 ...
 MTIME: /usr/share/man/man1/arecord.1.bz2
 MTIME: /usr/lib/systemd/system/basic.target.wants/alsa-restore.service
 MTIME: /usr/lib/systemd/system/shutdown.target.wants/alsa-store.service
 MTIME: /usr/bin/arecord
 MTIME: /etc/conf.d/alsasound
  * 97 out of 102 files are good

real	0m0.115s
user	0m0.090s
sys	0m0.020s
gadfly ★★ ()

Гентушники написали на питоне тормозный говноскрипт?
Да не может быть.

thesis ★★★★★ ()
Ответ на: комментарий от qnikst

пообщайся с разрабами - пусть объяснят почему врапера до сих пор нет
а я пока запилил таки обёртку над прелинком:
фиксит хэши в базе и при связывании и при откате оного
сам врапер

#!/bin/bash

############################################################################
################ init ######################################################
PKGDB="/var/db/pkg"
CONTENT="${PKGDB}/*/*/CONTENTS"
opts="-v"
OPTS="${opts} ${*}"
################ colors ####################################################
green="\033[01;32m"
red="\033[01;31m"
restore="\033[00m"
contrast="\033[1m"
underline="\033[4m"
################ check_openrc ##############################################
[ -f "/etc/init.d/functions.sh" ] && . /etc/init.d/functions.sh
############################################################################
################ run #######################################################
echo -e "${green}Prelink${restore}"

if ! grep -q "u" <<< "${OPTS}";then
	TARGETS="$(prelink ${OPTS} | awk '/Prelinking/ {print $2}')"
else
	TARGETS="$(prelink ${OPTS} | awk '/Undoing/ {print $2}')"
fi
COUNT="$(wc -l <<< "${TARGETS}")"
############################################################################
################ fixing db #################################################
#field
field(){
 echo $(( ${#} - 1 ))
}

echo -e "${green}Database${restore}"

while read target;do
	einfon $((COUNT--)) "files left:" 2>/dev/null
	all="$(grep -m1 "obj ${target/[/\[} " ${CONTENT})"
	if [[ -n "${all}" ]];then
		file="${all%%:*}"
		package="$(cut -d\/ -f5,6 <<< "${file}")"
		old_stuff="${all#${file}* }"
		x="$(field ${old_stuff})"
		old_md5="$(cut -d " " -f${x} <<< "${old_stuff}")"
		new_md5="$(md5sum "${target}" | cut -d " " -f1)"
		new_stuff="${old_stuff/${old_md5}/${new_md5}}"
		echo -e "\t${red}${old_md5}${restore} ---> ${green}${new_md5}${restore} for ${contrast}${package}${restore}"
		sed -e "s|${old_stuff}|${new_stuff}|" -i "${file}" 2>/dev/null
		eend $? 2>/dev/null
	else
		echo -e "\tCan't find ${contrast}${target}${restore} in ${PKGDB}!"
		eend 1 2>/dev/null
	fi
done <<< "${TARGETS}"
echo -e "${green}Fixed!${restore}"
eend 0 2>dev/null
выхлоп как-то так выглядит http://ompldr.org/vZndhcw/16.10.2012-00:40.png

megabaks ★★★★ ()
Ответ на: комментарий от Pinkbyte

на правах кэпа: тут либо форкать gentoolkit, либо патчить и слать все в апстрим, либо изобрести gentoolkit с нуля(чем ты и начал заниматься).

они вырезали из апстрима все утилиты(или не пустили в него), которые делали всё тоже самое, или многое похожее, но были на компилируемых языках.

был ept-get и что то ещё вместе с ним. Не фонтан, но маленькие и быстрые, при определённом уровне функциональности. этот проект мог вырасти во что то большее, если бы он активнее использовался

подозреваю тысячи подобных историй

argin ★★★★★ ()
Последнее исправление: argin (всего исправлений: 1)
Ответ на: комментарий от megabaks

не, так лучше

#!/bin/bash

############################################################################
################ init ######################################################
PKGDB="/var/db/pkg"
CONTENT="${PKGDB}/*/*/CONTENTS"
opts="-v"
OPTS="${*} ${opts}"
################ colors ####################################################
green="\033[01;32m"
red="\033[01;31m"
restore="\033[00m"
contrast="\033[1m"
underline="\033[4m"
################ check_openrc ##############################################
[ -f "/etc/init.d/functions.sh" ] && . /etc/init.d/functions.sh
############################################################################
################ run #######################################################
echo -e "${green}Prelink${restore}"

if ! grep -q "u" <<< "${OPTS}";then
	TARGETS="$(prelink ${OPTS} | awk '/Prelinking/ {print $2}')"
else
	TARGETS="$(prelink ${OPTS} | awk '/Undoing/ {print $2}')"
fi
COUNT="$(wc -l <<< "${TARGETS}")"
############################################################################
################ fixing db #################################################
#field
field(){
 echo $(( ${#} - 1 ))
}

echo -e "${green}Database${restore}"

while read target;do
	einfon $((COUNT--)) "files left:" 2>/dev/null
	all="$(grep -m1 "obj ${target/[/\[} " ${CONTENT})"
	if [[ -n "${all}" ]];then
		file="${all%%:*}"
		package="$(cut -d\/ -f5,6 <<< "${file}")"
		old_stuff="${all#${file}* }"
		x="$(field ${old_stuff})"
		old_md5="$(cut -d " " -f${x} <<< "${old_stuff}")"
		new_md5="$(md5sum "${target}" | cut -d " " -f1)"
		if [[ "${old_md5}" != "${new_md5}" ]];then
			new_stuff="${old_stuff/${old_md5}/${new_md5}}"
			echo -e "\t${red}${old_md5}${restore} ---> ${green}${new_md5}${restore} for ${contrast}${package}${restore}"
			sed -e "s|${old_stuff}|${new_stuff}|" -i "${file}" 2>/dev/null
			eend $? 2>/dev/null
		else
			echo -e "\t${old_md5} ${green}<-->${restore} ${new_md5} for ${contrast}${package}${restore}"
			eend 0 2>/dev/null
		fi
	else
		echo -e "\tCan't find ${contrast}${target}${restore} in ${PKGDB}!"
		eend 1 2>/dev/null
	fi
done <<< "${TARGETS}"
echo -e "${green}Fixed!${restore}"
eend 0 2>/dev/null
хотя не важно - врапер это мелочь

megabaks ★★★★ ()
Ответ на: комментарий от argin

они вырезали из апстрима все утилиты(или не пустили в него), которые делали всё тоже самое, или многое похожее, но были на компилируемых языках.

ой какие подлые..

qnikst ★★★★★ ()

<вброс>Привет, питонисты :3</вброс>

Привет. Шли патчи, ваяй свои костыли, что ты как маленький, ну :3

jessey ()
Ответ на: комментарий от qnikst

подлые не подлые( скорее просто недалёкие ), но кучу софта, который так или иначе мог конкурировать с этими подделиями они просто не впускали в апстрим, я сам читал переписку

argin ★★★★★ ()
Ответ на: комментарий от argin

ну так «это же опенсорс, детка» (c). Форк решает проблему нерадивого апстрима. Небольшой положительный пример: слияние форка qxmpp, который поддерживал 0xd34df00d(автор LeechCraft) с апстримом после >года раздумий апстрима на тему внесенных изменений.

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от argin

и прям таки отдельными пакетами не брали в ни дерево и ни в какие оверлеи? а fquery наверное миф.

Ну и как обычно ссылки на переписки привествуются.

qnikst ★★★★★ ()
Последнее исправление: qnikst (всего исправлений: 1)
Ответ на: комментарий от qnikst

проект где то существует, пакеты можно скачать, но были бы пакеты в апстриме, было бы больше пользователей, проект развивался бы.

ты что, думаешь я разработчик этого пакета, и ищу поддержки ? много воды утекло с тех пор, когда то я это читал. Названия пакета я привёл, там была группа из трёх пакетов - epkg, eorphan, ept-get, если мне память не изменяет.

Я просто вспомнил по случаю.

argin ★★★★★ ()
Ответ на: комментарий от argin

ept-get и компания прекрасно живут в оверлеях, и то, что их нет в дереве это скорее проблема качества данной программы, а не девелоперов. Тем более eix решающий почти всё что делают эти утилиты там живёт.

qnikst ★★★★★ ()
Ответ на: комментарий от qnikst

ты так и не понял, или не захотел понять простых вещей - я не защищаю конкретные пакеты, и я не нападаю на ментейнеров/разработчиков генты, я просто анализирую их позицию применительно к теме

и да, сейчас, никакого оверлея для названных мной пакетов не существует.

argin ★★★★★ ()
Ответ на: комментарий от argin

плохо анализируешь. и плохо ищешь. Никто не запрещает писать годные аналоги питоноутилит и как только они будут - они будут в дереве, в указанных пакетах проблема исключительно в них (и возможно в авторах). На закуску:

http://gpo.zugaina.org/Search?search=ept-get
http://gpo.zugaina.org/Search?search=epkg
qnikst ★★★★★ ()
Ответ на: комментарий от qnikst

я хорошо делаю и то, и другое.

И то, что ты утверждаешь, что я плохо ищу, как раз доказывает, что я ищу хорошо, а ты плохо. Иначе ты уже задал бы вопрос самому автору...

argin ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.