On Sat, Mar 21, 2009 at 09:42:08PM +0200, Led wrote: > On Saturday, 21 March 2009 21:27:10 Alexey Tourbin wrote: > > On Sat, Mar 21, 2009 at 08:15:37PM +0200, Led wrote: > > > > может быть стоит запатчить apt (или rpm), и в веса ещё добавлять некий > > > > "бранч" (по аналогии с эпохой) ? Что бы можно было вообще отказаться от > > > > дурацких release в виде alt0.M40.1.svn13421. > > > > > > В rpm5 это реализовано. > > > > [epoch:]version[-release][:distepoch] > > > > Какова должна быть семантика дист-эпохи? Либо дист-эпоха всего > > лишь дополняет релиз, что дает преимущество при обновлении при > > одинаковых EVR. Либо дист-эпоха радикально перебивает всё остальное. > > > > Реализация rpm5 не отличается последовательностью. > > Согласен. Как и любого варианта rpm (в т.ч. ALT-RPM - не в обиду вам будет > сказано). Нет, в alt-rpm сравнение версий не зависит от макросов, а захардкодено раз и навсегда. Правда, "неадекватные" проблемы сравнения версий в alt-rpm тоже существуют. Но они наследованы от rpm-4.0, и я считаю, что пока это лучше не трогать. > > Кто кого должен перебивать скрывается за макросом %evr_tuple_order. > Да, это не прибито гвоздями, решение отдано на откуп дистро/репо-строителям. Там отдано на откуп слишком много. Должна ли быть буква больше цифры? Это отдано на откуп. rpmdb/rpmevr.c: 49 /* XXX Force digits to beat alphas. See bugzilla #50977. */ 50 /*@unchecked@*/ 51 #if defined(RPM_VENDOR_MANDRIVA) /* old-comparision-behaviour */ 52 static int _invert_digits_alphas_comparison = -1; 53 #else 54 static int _invert_digits_alphas_comparison = 1; 55 #endif ... 77 int rpmEVRcmp(const char * a, const char * b) 78 /*@*/ 79 { ... 110 /* Calculate digit comparison return code. */ 111 if (a == ae || b == be) 112 rc = (int)(*a - *b) * _invert_digits_alphas_comparison; По-моему, это не серьезно. > > Ну и вообще этот хак придумали в мандриве. > ...также как и file-triggers, и lzma-compress? С lzma всё чисто. С файлтриггерами -- что делать. На самом деле, я подумываю над тем, чтобы все "модульные" обвязки к rpm переписать на коммон-лиспе. Но привязывать к rpm'у монстрика sbcl это слишком круто, это я сейчас не возьмусь. Есть другие проблемы за которые надо браться.