LINUX.ORG.RU

Официально стартовал проект eudev — форк udev от Gentoo

 , ,


3

4

Впервые о форке udev от Gentoo заговорили около месяца назад, и теперь проект приобрел официальный статус.

Udev часто ломает совместимость со старыми системами из-за зависимости от новых версий ядра Linux, даже если такой зависимости можно избежать. Ситуация ухудшилась после того как Udev стал частью Systemd, который поставил под угрозу способность поддерживать существующие установки. Разработчики Gentoo намерены продолжить развитие udev в виде отдельного проекта (без зависимости от systemd) — eudev — своими силами. При этом они заявляют, что в идеале eudev не будет ограничен использованием в Gentoo: после того как eudev достигнет стабильного состояния в Gentoo, они намерены начать сотрудничать с другими дистрибутивами для дальнейшего развития. В идеале, все дистрибутивы cмогут использовать eudev в качестве замены для Systemd-udevd.

Среди ключевых целей eudev называется улучшение поддержки udev существующего программного обеспечения: init-систем OpenRC (используется в Gentoo) и Upstart (Ubuntu), старых версий ядра, утилит разработки и т. п.

Исходный код eudev будет распространяться на условиях свободной лицензии GNU LGPL. На GitHub уже около месяца существует репозиторий для eudev.

>>> Подробности

★★★★★

Проверено: JB ()
Последнее исправление: Silent (всего исправлений: 4)
Ответ на: История успеха от leg0las

Вы его патчили?

У меня вылетает с ошибкой.

./configure --disable-selinux

...

make

...

test-udev.c:40:19: error: static declaration of ‘unshare’ follows non-static declaration
In file included from /usr/include/sched.h:43:0,
                 from test-udev.c:31:
/usr/include/i386-linux-gnu/bits/sched.h:87:12: note: previous declaration of ‘unshare’ was here
make[2]: *** [test_udev-test-udev.o] Ошибка 1
make[2]: Leaving directory `/home/at/eudev/eudev/test'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/home/at/eudev/eudev'
make: *** [all] Ошибка 2
gcc 4.7.2, systemd собирается нормально. debian/sid

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

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

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

В генте он лежит в основном дереве портежа, хз, патчи накладывали или нет, не обратил внимания во время сборки. GCC 4.6.3.

leg0las ★★★★★
()
Ответ на: комментарий от at
>>> Preparing source in /var/tmp/portage/sys-fs/eudev-1_beta1-r1/work/eudev-1_beta1 ...
 * Applying eudev-1_beta1-include-all-search-paths.patch                                                                                    [ ok ]
 * Running elibtoolize in: eudev-1_beta1/
 *   Applying portage/1.2.0 patch ...
 *   Applying sed/1.5.6 patch ...
 *   Applying as-needed/2.2.6 patch ...
>>> Source prepared.

Патчик в дереве:

eudev-1_beta1-include-all-search-paths.patch 
--- a/src/udev/Makefile.in      2012-12-08 10:20:52.000000000 -0500
+++ b/src/udev/Makefile.in      2012-12-12 11:19:34.000000000 -0500
@@ -371,6 +371,7 @@
        -DROOTPREFIX=\"$(rootprefix)\" \
        -DUDEV_HWDB_DIR=\"$(udevhwdbdir)\" \
        -DUDEV_HWDB_BIN=\"$(udevhwdbbin)\" \
+       -DUDEV_CONF_DIR=\"$(udevconfdir)\" \
        -DUDEV_RULES_DIR=\"$(udevrulesdir)\" \
        -DUDEV_LIBEXEC_DIR=\"$(udevlibexecdir)\" \
        -I $(top_srcdir)/src/libudev
--- a/src/udev/udev-event.c
+++ b/src/udev/udev-event.c
@@ -687,10 +687,13 @@ int udev_event_spawn(struct udev_event *event,
         }
 
         /* allow programs in /usr/lib/udev/ to be called without the path */
+       /* NOTE - paths need reworking, see note in udev-rules.c */
         if (argv[0][0] != '/') {
                 util_strscpyl(program, sizeof(program), UDEV_LIBEXEC_DIR "/", argv[0], NULL);
 #ifdef HAVE_SPLIT_USR
                 if(access(program, X_OK))
+                        util_strscpyl(program, sizeof(program), "/usr/lib/udev/", argv[0], NULL);
+                if(access(program, X_OK))
                         util_strscpyl(program, sizeof(program), "/lib/udev/", argv[0], NULL);
 #endif
                 argv[0] = program;
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
@@ -1600,11 +1600,28 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
         if (!rules->strbuf)
                 return udev_rules_unref(rules);
 
-        rules->dirs = strv_new(UDEV_RULES_DIR,
+       /* Note - need a better way to manage these paths:
+        * ie, should have a list of paths we always support, and
+        * do not include the #define vars if they are duplicates
+        *
+        * original - UDEV_RULES_DIR should be /etc/udev/rules.d
+        * ..but we have it set to UDEV_LIBEXEC_DIR "/rules.d" so that
+        * ..the default rules are installed there instead of in /etc
+        * 
+        * original2 - UDEV_LIBEXEC_DIR used to be forced to /usr/lib/udev
+        * ..by default, we have it as /lib/udev (or whatever rootlibdir is)
+        * ..therefore we did not include /usr/lib/udev/rules.d.
+        * 
+        * Reworked code; there are duplicate paths here but at least
+        * everyting is listed.
+        */
+        rules->dirs = strv_new(UDEV_CONF_DIR "/rules.d",
+                               UDEV_RULES_DIR,
                                "/run/udev/rules.d",
                                UDEV_LIBEXEC_DIR "/rules.d",
 #ifdef HAVE_SPLIT_USR
                                "/lib/udev/rules.d",
+                               "/usr/lib/udev/rules.d",
 #endif
                                NULL);
         if (!rules->dirs) {

Пардон за простыню, может кому-то пригодится.

leg0las ★★★★★
()
Последнее исправление: leg0las (всего исправлений: 1)

«мама - анархия, папа - стакан Портвейна»

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

Ковырять историю коммитов очередного форка (сколько их уже было-то) для того, чтобы понять включили они туда своё публичное позорище или нет мне элементарно лень
мне элементарно лень

4.2

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

«тобы использовать базовую функциональность, достаточно прочитать ман. чтобы знать, что там под капотом - да, смотрите сырцы. что удивляет-то?» это не «подкапотом». это то что без потееро-поделий обеспечивается «изкаробки» с приненением стандартных, проверенных и не имеющих не то что критических а просто серьезных неисправленных багов unix-средств.

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

Да ладно — потерплю еще немножко. А вдруг чудо случится?

Eddy_Em ☆☆☆☆☆
()
Ответ на: Хачуууууу в арчигеееее от Eddy_Em

У меня же острое рукожопие: какая мне, нафиг, гента?

ArchLinux: пусть рукожопят разработчики дистрибутива!

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

это «подкапотом». интерфейс - не «подкапотом». реализация - «подкапотом». если в syslog реализация и интерфейс - одно и то же, это не означает, что все, что устроено чуть сложнее, не нужно.

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

Лично я после новости в emerge о том, что после 181-го удева поломается куча всего, просто замаскировал на всякий случай у себя >=sys-fs/udev-181 и пока живой.

Стоит udev-196-r1, ничего не поломалось. Может, у меня нет каких-то особенных задач, но факт есть факт - не поломалось. Можете попробовать :)

Хорошо, что они будут держаться подальше от этого Поттеринга с его поделием. Но самое главное, что у людей есть выбор, ставить ли гентушный ойдеф или удеф.

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

жду ебилдов

А чего ждать-то? Он уже в дереве, но пока для нестабильной ветки. Лично я пока ставить не хочу, подожду появления официальных руководств.

GluckMan ★★★
()

В идеале, все дистрибутивы cмогут использовать eudev в качестве замены для Systemd-udevd.

Но зачем?

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

Чтобы когда udev совсем прирастет к systemd, было на что переходить

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

Может, у меня нет каких-то особенных задач, но факт есть факт - не поломалось.

/usr отдельный? Без initrd работает? Если так, то можно и размаскировать, да. :)

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

HTTP сервер нужен для отдачи бинарных логов? Но бинарные логи не нужны.

Мда... похоже проблема не в английском, а в восприятии текстовой информации в целом. Ну попробуй видео что-ли посмотреть - сердобольные люди даже ссылку нашли :-)

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

у большинства испытывающих баттхёрт от systemd те же проблемы :)

Испытываю лютую НЕНАВИСТЬ к поттерингоподелию, рукожопием не страдаю. amd64 дома и ~x86 на работе.

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

рукожопием не страдаю. amd64 дома и ~x86 на работе.

Спасибо, очень смеялся. Это ты в качестве доказательства нерукажопости привёл я так полагаю? :)

Попробуй ещё arm прикупить - тогда-то уж точно все поймут насколько ты гений! :-D

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

Это гента. Две рабочие лошадки. Без поттерингоподелия.

leg0las ★★★★★
()
Ответ на: Поттерингофилы вперёд от qnikst

И поттерингоненавистикам, если вы видите, что Леннарт в этом посте ведёт себя как asshole, а так же пишет про вещи, которые не знает (там есть пара заблуждений, которые кочуют у него из поста в пост), то не нужно это ему прямо так говорить. А если охота общаться то пишете подробно и аргументировано, спасибо.

qnikst ★★★★★
()

Внезапно обнаружил, что нулевая версия уже стабильна. Кто-нибудь пробовал?

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

зачем смысл - главное еда! А пост отличный, фразы вырванные из контекста, перевирание смысла, утверждение неверной информации как фактов в перемешку с толковой это всегда прекрасно, почти эталонный троллинг.

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

Lennart, такой Lennart ...

И буквы то у него английские, и смысл к ним прибит гвоздями...
Причем даже не прибит - вмурован!

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

libc? x-сервер?

подозреваю, что они не лезут на запись в свои конфиги

хотя принципиально не исключена возможность, аналогичная exim: в /etc лежат куски конфигов, а настоящий конфиг не инклюдится из кусков, а собирается где-то в /var из кусков + выхлопа неких утилит, которые могут быть потенциально из пакета х-сервера, ну и дальше опять несовместимость форматов

ну и пакеты, которые libc и x-сервер подтянут по зависимостям, тоже могут писать в свои конфиги

фф для линукса можно скачать с мозиллы в виде все-свое-тяну-с-собой и поставить в другой /home/$user"

Преврати свою систему в Слаку" (ц)

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

грубо говоря, никс занимается

1. управлением версией (справятся dpkg+apt)

2. дедубликацией файлов (нафиг надо это глюкалово)

это примерно как если бы при fork вместо copy_on_write у нас была бы необходимость руками указывать те области памяти, которые надо скопировать, да еще и язык вроде си, который не позволяет гарантировать невыход за границы этих областей (т.е. при наличии (динамической строгой) типизации, запрещающей писать в свои конфиги, скажем, в виде selinux это еще как-то катит)

но при всем этом, если очень хочется, можно попробовать сделать nix-образный довесок к dpkg и apt

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

А вот когда перестанут грузиться твои «устаревшие» железки - станет понятно.

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

После очередного обновления udev-а моя 3c59x и snd-intel-hd перестали загружаться.
Откатил версию - вернулась нормальная работоспособность.
Что - «руки кривые»? Или «нищеброд»?

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

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

В NixOS все эти файлы будут под учетом и управлением пакетного менеджера.

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

После очередного обновления udev-а моя 3c59x и snd-intel-hd перестали загружаться.

По четвергам телепатией не занимаюсь - бог подаст.

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

После очередного обновления udev-а моя 3c59x и snd-intel-hd перестали загружаться.

По четвергам телепатией не занимаюсь - бог подаст.

Юноша, у тебя, похоже, поттеринг головного мозга ;)
Я не совета просил - сам в состоянии разобраться. Виноват udev.
В частности - его неудержимое стремление в светлое капиталистическое будущее, где за systemd пользователи будут баблять.

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

Я не совета просил - сам в состоянии разобраться.

А чего тогда ты собственно хотел - поплакаться в жилетку? Ну иди сюда, маленький, я тебя пожалею :-D :-D :-D

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

Я не совета просил - сам в состоянии разобраться.
А чего тогда ты собственно хотел - поплакаться в жилетку? Ну иди сюда, маленький, я тебя пожалею :-D :-D :-D

Губёнки подожми и памперсы поменяй, дерс-с-ский ты наш кулхацкер...

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

ставить и использовать
/Кэп
зачем? - затем, что рано или поздно udev прирастёт к systemd(ermo)
таки дела
/me перешёл на eudev и клал МПХ на долбо...клоуна поттеринга

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

Редхатофанатик - что-то новенькое!

с разморозкой:)

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

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

А при чем тут хомяк? Когда я последний раз листал доки на nix, в хомяк он никак не лез.

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