Re: [gentoo-user] udev + /usr
On 09/17/2011 07:00 PM, Alan McKinnon wrote: There was a standards body tracking ORB, I forget which one, but none of that matters as the folks who should use it - system builders - saw it's flaws quite quickly. Even Gnome has dropped it and are now moving over to dbus. Ooh, I know this one, because it's my all-time favorite website: http://www.omg.org/
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 11:25:11PM +0200, Joost Roeleveld wrote On Thursday, September 15, 2011 01:43:17 PM Canek Pel??ez Vald??s wrote: On Thu, Sep 15, 2011 at 10:58 AM, Canek Pel??ez Vald??s can...@gmail.com wrote: (This mail is to keep the guys un -user in the loop about -devel). OK, so Joost posted his proposal to -dev: snipped brief discussion on gentoo-dev The thread on gentoo-dev is not yet finished and I intend to try to get some more information. As I mentioned in my other email. I've asked on the busybox list, and one of the people there says he does have a chrooted Gentoo running with mdev (a busybox tool) replacing udev. There were various other changes he had to make to get it working, but it obviously can be done. He's busy for the next couple of weeks, but has offered (offline) to work on generalizing it to work in more general cases. Apparently, the mdev code is a small part of busybox, so he figures it would be simplest to copy the code out of busybox, and make a standalone mdev. The busybox mdev doesn't have all the features of udev, and busybox's developers will obviously want to keep their code lean-and-mean. That's why a standalone mdev seems to be the way to go. -- Walter Dnes waltd...@waltdnes.org
Re: [gentoo-user] udev + /usr
On Sat, 17 Sep 2011 19:31:31 -0400 Michael Mol mike...@gmail.com wrote: There are two principle things I dislike about D-Bus. 1) It doesn't support live upgrading of the daemon. We discussed the reasons behind this several weeks ago, as I recall. Transparent session control handoff is, of course, complicated, and nobody has seen the work as worthwhile. If your 2nd objection changes, this one will probably get looked at. 2) It comes with (or appears to come with) a Linux-centric (sometimes even a Linux-only) view. I love Linux, and I would love to see Linux grow and improve. I also use (and am comfortable with) Windows and Android (which I would consider Not Really Linux) and other platforms*. Attitudes and actions which push Linux as the One Ring smack of 'Embrace, Extend, Extinguish'. dbus is a freedesktop project so will live or die by it's merits. Other systems may start to use it if it proves itself useful. Lucky for us, it doesn't obsolete anything else, just adds functionality to what is already there. -- Alan McKinnnon alan.mckin...@gmail.com
Re: [gentoo-user] udev + /usr
On Saturday, September 17, 2011 02:43:00 PM Canek Peláez Valdés wrote: On Sat, Sep 17, 2011 at 10:50 AM, Canek Peláez Valdés can...@gmail.com wrote: On Sat, Sep 17, 2011 at 2:45 AM, Joost Roeleveld jo...@antarean.org wrote: On Friday, September 16, 2011 10:53:47 AM Canek Peláez Valdés wrote: On Fri, Sep 16, 2011 at 5:08 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 05:05:00 PM Canek Peláez Valdés wrote: Last time I checked, neither GNOME nor Emacs demanded that Gentoo developers or users had to write a fork/replacement for a core component of the system. GNOME and Emacs just need ebuilds and adapting their configuration to Gentoo-isms. Testing and bug reporting, as usual. The only code needed is some small patches for both and around 200 lines of emacslisp for site-gentoo.el. Funny that you mention this. There might be something similar brewing for users of Gnome where quite a few low-level parts will end up being mandatory for Gnome: ...but I'm increasingly seeing talk on the gnome side of the Gnome OS, to include pulse-audio, systemd, policykit, udev/u* (thus forcing lvm as well, at least lvm installation tho nothing forces one to use it... yet, since lvm is required for udisks), etc. I'm pretty sure the last part is false. I certainly have udisk installet (it's pulled by gnome-disk-utility), but I don't use LVM. So there. I don't use Gnome and haven't looked into all this. Udev also doesn't appear to have a LVM-useflag. But as I do use LVM, I can't actually check. Do you have sys-fs/lvm2 on your system? The ebuild does list it as RDEPEND. Yes, I got it installed. I didn't noticed until now. Then again, it takes 1 minute to install in my puny laptop, and uses 7 Mb of hard drive. But anyhow, I was mistaken: it is forced by udisks. I think udisks depending on LVM is an error, so I decided I would took this Saturday and see if I was able to write a patch that makes it optional. However, as per free software rules, I first visited the Freedesktop.org bugzilla. Gustavo Barbieri (who I mentioned before) got there first: https://bugs.freedesktop.org/show_bug.cgi?id=37647 As I said before, Gustavo has contributed a lot to systemd, usually making stuff optional. I'm sure his patch (or a similar version of it) will be accepted. I hope so too. I do use LVM, so having LVM used by udisks is logical. But if LVM isn't used, the tools shouldn't have to be present. I did notice on that bug-link that it was raised nearly 4 months ago with no response from the developers even though a patch exists was provided. As I keep saying: code talks. Yes, but the developers are quiet with regards to that patch. I can understand if it takes some time to analyse a patch, but 4 months with no response is, in my view, similar to the devs saying they don't care. -- Joost
Re: [gentoo-user] udev + /usr
On Sep 18, 2011 9:50 PM, Joost Roeleveld jo...@antarean.org wrote: On Saturday, September 17, 2011 02:43:00 PM Canek Peláez Valdés wrote: As I keep saying: code talks. Yes, but the developers are quiet with regards to that patch. I can understand if it takes some time to analyse a patch, but 4 months with no response is, in my view, similar to the devs saying they don't care. Code talks. Except when it runs counter to the devs'/upstream's wishes, where it will be silenced. Rgds,
Re: [gentoo-user] udev + /usr
On Sat, 17 Sep 2011 17:13:36 -0400, Canek Peláez Valdés wrote: ORBit was the GNOME implementation of ORB; I don't remember what KDE used, but I believe it was also ORB based. KDE 2/3 used DCOP, their own IPC as there was no decent standard system at the time. DBus was heavily influenced by DCOP and is used by KDE4. -- Neil Bothwick Q: Why is top-posting evil? A: backwards read don't humans because signature.asc Description: PGP signature
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 06:59:44PM +0100, Mick wrote The only drawback is the 2 minutes it will take a user the first time this change is introduced to build the initramfs and change the kernel line in grub.conf. I am warming up to this proposal because it seems to me that it will end up being less painful that I originally thought. Good for GRUB. But what about those of us who use lilo? -- Walter Dnes waltd...@waltdnes.org
Re: [gentoo-user] udev + /usr
On Friday, September 16, 2011 11:21:12 PM Pandu Poluan wrote: On Sep 16, 2011 11:00 PM, Dale rdalek1...@gmail.com wrote: Canek Peláez Valdés wrote: On Fri, Sep 16, 2011 at 5:29 AM, Pandu Poluanpa...@poluan.info wrote: Speaking of fsck, didn't someone lamented the fact that fsck can no longer be statically linked, thus making initr* 'blew up' in size? When more and more utilities go the non-statically-linked way... congratulations! You now have an initr* that's practically a cpio-ized version of / Now, common: that's an exaggeration. My dracut generated initramfs (with systemd, plymouth, udev, and I don't remember what many things more) is 5 Mb. That's a little less than my several-gigabytes /. Regards. Give it time. Something will need /home on the root partition next. Like someone else posted, we are headed towards windows land with this. I won't be surprised if /boot will have to be on / next too. Heh. If it's only limited to 'everything in /' it's still acceptable. MIGHTY annoying, and most likely an admin hell, but workable. Would it? :) If there would be a filesystem that reads from the in-memory-part and only accesses the disk for write-actions, then the / can be a ramdisk... :) Now, if everything needs to go into initr* (yes, I'm exaggerating, but...) Like a live-dvd? -- Joost
Re: [gentoo-user] udev + /usr
On Friday, September 16, 2011 10:53:47 AM Canek Peláez Valdés wrote: On Fri, Sep 16, 2011 at 5:08 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 05:05:00 PM Canek Peláez Valdés wrote: Last time I checked, neither GNOME nor Emacs demanded that Gentoo developers or users had to write a fork/replacement for a core component of the system. GNOME and Emacs just need ebuilds and adapting their configuration to Gentoo-isms. Testing and bug reporting, as usual. The only code needed is some small patches for both and around 200 lines of emacslisp for site-gentoo.el. Funny that you mention this. There might be something similar brewing for users of Gnome where quite a few low-level parts will end up being mandatory for Gnome: ...but I'm increasingly seeing talk on the gnome side of the Gnome OS, to include pulse-audio, systemd, policykit, udev/u* (thus forcing lvm as well, at least lvm installation tho nothing forces one to use it... yet, since lvm is required for udisks), etc. I'm pretty sure the last part is false. I certainly have udisk installet (it's pulled by gnome-disk-utility), but I don't use LVM. So there. I don't use Gnome and haven't looked into all this. Udev also doesn't appear to have a LVM-useflag. But as I do use LVM, I can't actually check. Do you have sys-fs/lvm2 on your system? The ebuild does list it as RDEPEND. It's a reply in the gentoo-dev thread I started. Requiring pulse-audio and policykit, I can understand. But requiring a specific init-system for the desktop seems a bit overkill. I don't think that will happen, although certainly is what Lennart (and probably Kay) wants. What I think will happen is that, if available, GNOME will use systemd. FreeBSD does not have udev, and GNOME works there (with diminished functionality). That's the future, I believe: you will be able to use GNOME without systemd, but it will be like more awesomer with systemd. I still think Gnome (or any other desktop environment) should not care about which init-system is being used. I'm not a gnome user and am happy with my KDE-desktop. But the same post also mentions KDE seems to be headed in a similar direction. Just slower. Because it makes sense for the full-fledge desktop. Notice that Gustavo Barbieri (who works a lot on e17) is a heavy promoter of systemd. Maybe even makes sense for Xfce, but that I don't know. At the end of the day, systemd manages how to start and stop processes. Which is basically the task of gnome-session-manager (and whatever is the equivalent in KDE). systemd, like any init-system, should start services. KDE has some kde-services like akonadi, nepomuk,... that get controlled by the kde-system internally. I would NOT want to see these controlled by systemd. These are running for the user that is logged in. Having these running for all users at once leads to the multi-user-kludge that MS Windows tries to have and for which Citrix was invented ontop of MS Windows We already have a decent multi-user environment, why would we want to kill that? If I wanted a single-user system, I'd be running MS Windows. Mind you, I do think systemd is nice and usefull on a desktop machine, but I don't see much need for this on a server where the sysadmins generally prefer to have a much more detailed control of what is happening. I think systemd gives you that in servers. With OpenRC and Apache with user CGI scripts, ¿do you know how to list the httpd daemon spawned processes, and only those? Remember that a CGI script can double fork. With systemd is a matter of: systemctl status apache-httpd.service Did you look at the output of pstree? Try pstree -pu and you see all the PIDs and whenever there is a user- switch, it also lists the new user. And you can kill every process related to a daemon, no matter how many forks its children process make. That alone makes systemd more usefull for servers thatn SysV+OpenRC, I think. Systemd handles this through process-groups. This can be done in different ways. Then again, I don't feel Gnome or KDE have any reason to be installed on a server, but that's just how I see it. Dear evolution, of course not. Why would you install GNOME or KDE in a server? My two servers run with systemd, and not a single GUI library is installed in them. I consider dbus to be part of the GUI as I don't see a reason for apache, syslog, nfs, samba, to be using dbus to communicate with each other. There are already well-tested and working mechanisms for communication where needed. -- Joost
Re: [gentoo-user] udev + /usr
On Saturday, September 17, 2011 08:45:15 AM Joost Roeleveld wrote: On Friday, September 16, 2011 10:53:47 AM Canek Peláez Valdés wrote: I think systemd gives you that in servers. With OpenRC and Apache with user CGI scripts, ¿do you know how to list the httpd daemon spawned processes, and only those? Remember that a CGI script can double fork. With systemd is a matter of: systemctl status apache-httpd.service Did you look at the output of pstree? Try pstree -pu and you see all the PIDs and whenever there is a user- switch, it also lists the new user. Had a quick look to get a more detailed list: Specifically only for apache: # pstree -pu `cat /var/run/apache2.pid` /var/run/apache2.pid gets the PID for the parent process automatically. With this list, I can get a more detailed picture of which process calls which child-process / thread and which user(s) are used for which process. -- Joost
Re: [gentoo-user] udev + /usr
On Sat, 17 Sep 2011 08:45:15 +0200 Joost Roeleveld jo...@antarean.org wrote: I consider dbus to be part of the GUI as I don't see a reason for apache, syslog, nfs, samba, to be using dbus to communicate with each other. To be fair, dbus could be useful for service apps too. It provides a standard message bus that everything can understand, it's small, light, with a clearly defined focus and even better, could be entirely optional. -- Alan McKinnnon alan.mckin...@gmail.com
Re: [gentoo-user] udev + /usr
On Sat, Sep 17, 2011 at 2:45 AM, Joost Roeleveld jo...@antarean.org wrote: On Friday, September 16, 2011 10:53:47 AM Canek Peláez Valdés wrote: On Fri, Sep 16, 2011 at 5:08 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 05:05:00 PM Canek Peláez Valdés wrote: Last time I checked, neither GNOME nor Emacs demanded that Gentoo developers or users had to write a fork/replacement for a core component of the system. GNOME and Emacs just need ebuilds and adapting their configuration to Gentoo-isms. Testing and bug reporting, as usual. The only code needed is some small patches for both and around 200 lines of emacslisp for site-gentoo.el. Funny that you mention this. There might be something similar brewing for users of Gnome where quite a few low-level parts will end up being mandatory for Gnome: ...but I'm increasingly seeing talk on the gnome side of the Gnome OS, to include pulse-audio, systemd, policykit, udev/u* (thus forcing lvm as well, at least lvm installation tho nothing forces one to use it... yet, since lvm is required for udisks), etc. I'm pretty sure the last part is false. I certainly have udisk installet (it's pulled by gnome-disk-utility), but I don't use LVM. So there. I don't use Gnome and haven't looked into all this. Udev also doesn't appear to have a LVM-useflag. But as I do use LVM, I can't actually check. Do you have sys-fs/lvm2 on your system? The ebuild does list it as RDEPEND. Yes, I got it installed. I didn't noticed until now. Then again, it takes 1 minute to install in my puny laptop, and uses 7 Mb of hard drive. But anyhow, I was mistaken: it is forced by udisks. It's a reply in the gentoo-dev thread I started. Requiring pulse-audio and policykit, I can understand. But requiring a specific init-system for the desktop seems a bit overkill. I don't think that will happen, although certainly is what Lennart (and probably Kay) wants. What I think will happen is that, if available, GNOME will use systemd. FreeBSD does not have udev, and GNOME works there (with diminished functionality). That's the future, I believe: you will be able to use GNOME without systemd, but it will be like more awesomer with systemd. I still think Gnome (or any other desktop environment) should not care about which init-system is being used. And they will not. They will only use some capabilities that a system provides, and use it if available. It's the exact same thing as udev. I'm not a gnome user and am happy with my KDE-desktop. But the same post also mentions KDE seems to be headed in a similar direction. Just slower. Because it makes sense for the full-fledge desktop. Notice that Gustavo Barbieri (who works a lot on e17) is a heavy promoter of systemd. Maybe even makes sense for Xfce, but that I don't know. At the end of the day, systemd manages how to start and stop processes. Which is basically the task of gnome-session-manager (and whatever is the equivalent in KDE). systemd, like any init-system, should start services. KDE has some kde-services like akonadi, nepomuk,... that get controlled by the kde-system internally. I would NOT want to see these controlled by systemd. It would be a different process from PID 1. systemd call be called with --user: every user will get it's own instance (replacing what now is controlled by gnome-session-manager and [I presume] kde-system), but that instance will be able to use all the plumbing that systemd provides. These are running for the user that is logged in. Having these running for all users at once leads to the multi-user-kludge that MS Windows tries to have and for which Citrix was invented ontop of MS Windows As I explained, it will be an instance per user. Nothing like Windows. We already have a decent multi-user environment, why would we want to kill that? If I wanted a single-user system, I'd be running MS Windows. See above, you are wrong on how systemd will handle it. Mind you, I do think systemd is nice and usefull on a desktop machine, but I don't see much need for this on a server where the sysadmins generally prefer to have a much more detailed control of what is happening. I think systemd gives you that in servers. With OpenRC and Apache with user CGI scripts, ¿do you know how to list the httpd daemon spawned processes, and only those? Remember that a CGI script can double fork. With systemd is a matter of: systemctl status apache-httpd.service Did you look at the output of pstree? Try pstree -pu and you see all the PIDs and whenever there is a user- switch, it also lists the new user. Yeah, and I specifically said: do you know how to list the httpd daemon spawned processes, **and only those**? (emphasis mine). pstree (or ps) will show the processes with **user** apache, not those spawned by httpd. And you can kill every process related to a daemon, no matter how many forks its children
Re: [gentoo-user] udev + /usr
On Sat, Sep 17, 2011 at 3:04 AM, Joost Roeleveld jo...@antarean.org wrote: On Saturday, September 17, 2011 08:45:15 AM Joost Roeleveld wrote: On Friday, September 16, 2011 10:53:47 AM Canek Peláez Valdés wrote: I think systemd gives you that in servers. With OpenRC and Apache with user CGI scripts, ¿do you know how to list the httpd daemon spawned processes, and only those? Remember that a CGI script can double fork. With systemd is a matter of: systemctl status apache-httpd.service Did you look at the output of pstree? Try pstree -pu and you see all the PIDs and whenever there is a user- switch, it also lists the new user. Had a quick look to get a more detailed list: Specifically only for apache: # pstree -pu `cat /var/run/apache2.pid` /var/run/apache2.pid gets the PID for the parent process automatically. With this list, I can get a more detailed picture of which process calls which child-process / thread and which user(s) are used for which process. Yeah, but apparently you have never had a rogue (or just poorly written) CGI script. If inside a CGI script you do a double fork, and kill the first child, the second child (the grandchild of apache) will get reattached to PID 1. This is the POSIX defined behaviour. But then your pstree -pu $(cat /var/run/apache2.pid) doesn't work. Again, with cgroups (and without systemd) you can handle it. But then you need to do it manually for every daemon in the system. systemd allows you to do it for you. And it will be the same with user sessions, because is (for all that matters) the same problem. Your desktop session will have its own cgroup, and every application run by the user will be a subgroup of the session group. With systemd, my slow laptop boots from GRUB2 to GDM in 15 seconds. That's almost three times better than with OpenRC. But from GDM to full started desktop (before lauching applications) it takes almost 45 seconds. If I get to shave 15 seconds of it (and I am sure it will be more) by using systemd --user, I will be a really, really happy man. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Sat, Sep 17, 2011 at 10:50 AM, Canek Peláez Valdés can...@gmail.com wrote: On Sat, Sep 17, 2011 at 2:45 AM, Joost Roeleveld jo...@antarean.org wrote: [[snippage]] I still think Gnome (or any other desktop environment) should not care about which init-system is being used. And they will not. They will only use some capabilities that a system provides, and use it if available. It's the exact same thing as udev. [[snippage]] a) dbus is not part of the GUI, b) like it or not, it's the standardized IPC mechanism in Linux. If it's available, let's use it. This is exactly the same attitude of convenience that led to udev being abused, and then to the very decisions by udev's maintainer that started off the firestorm on this list over the last couple weeks. The system is *bloating* at an incredible rate. There are already well-tested and working mechanisms for communication where needed. I would like for you to be more specific about them. Sockets, be they UNIX domain sockets, IPv4 or IPv6. * Very common, very stable, very standard interface. * IPv4 sockets exist on every major operating system. * The sockets API has a common, portable C-level API going back to the 1980s, thanks to BSD 4.2. * IP sockets support multicast, both host-local and as part of networking. * Protocols implemented on top of IP make up the largest continual IPC environment in existence...the Internet itself. * IP sockets may have ACLs applied by kernel firewall rules. * UNIX domain sockets get the full benefit of filesystem ACLs. Shared memory: * Exists in various forms. Pipes: * Exist in named and anonymous forms. * If you use the command-line much, you might use them so much you've taken them for granted. * Some platforms support opening named pipes on remote systems. (I know Windows can do this. I don't know about Linux.) * 'nc' makes for an incredibly simple adapter to work with IP sockets. Not sure what others there are, but those have existed longer than I've been alive, and been standard since the early 1990s. Progress is adding new functionality, not reimplementing existing functionality as new APIs on top of the existing functionality. That's little better than busywork for people who could be building something actually new. -- :wq
Re: [gentoo-user] udev + /usr
On Sat, Sep 17, 2011 at 11:41 AM, Michael Mol mike...@gmail.com wrote: On Sat, Sep 17, 2011 at 10:50 AM, Canek Peláez Valdés can...@gmail.com wrote: On Sat, Sep 17, 2011 at 2:45 AM, Joost Roeleveld jo...@antarean.org wrote: [[snippage]] I still think Gnome (or any other desktop environment) should not care about which init-system is being used. And they will not. They will only use some capabilities that a system provides, and use it if available. It's the exact same thing as udev. [[snippage]] a) dbus is not part of the GUI, b) like it or not, it's the standardized IPC mechanism in Linux. If it's available, let's use it. This is exactly the same attitude of convenience that led to udev being abused, and then to the very decisions by udev's maintainer that started off the firestorm on this list over the last couple weeks. The system is *bloating* at an incredible rate. There are already well-tested and working mechanisms for communication where needed. I would like for you to be more specific about them. Sockets, be they UNIX domain sockets, IPv4 or IPv6. [snip] Shared memory: [snip] Pipes: [snip] Yeah, but then you need to design, implement and debug a protocol communication: what part of the wire speaks first, what does it says, what are the valid responses, etc. And then, if other component wants to communicate, it has to learn your little protocol. dbus standardize this. And it uses sockets, shared memory and pipes as building blocks, I believe, Not sure what others there are, but those have existed longer than I've been alive, and been standard since the early 1990s. They are standard in the sense that they are a low level communication standard API. An IPC is *way* more than that; dbus is an IPC, because then you have high level objects and methods, no matter the language of the two sides of the wire communicating, or even if the objects live in the same computer or not. BTW, there *was* an standard that did everything dbus does: ORB, the Object Request Broker. They tried to use that as IPC years ago, but is so damn complicated to implement right they decided to better implement a new standard. The standard is dbus. Progress is adding new functionality, not reimplementing existing functionality as new APIs on top of the existing functionality. I think you are wrong if you believe that dbus is just existing functionality as new APIs on top of the existing functionality. dbus is a complete IPC system. Neither sockets, shared memory nor pipes are an IPC, because they lack a well defined protocol. You *can* do the same you do with dbus if you only use sockets/sharedmem/pipes, but then you need to do it over and over and over again. Is like the difference between assembler and C: you *can* do the same with both, but that does not mean that is actually a good idea to only use assembler. That's little better than busywork for people who could be building something actually new. dbus offers new functionality, like I said. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Sat, Sep 17, 2011 at 10:50 AM, Canek Peláez Valdés can...@gmail.com wrote: On Sat, Sep 17, 2011 at 2:45 AM, Joost Roeleveld jo...@antarean.org wrote: On Friday, September 16, 2011 10:53:47 AM Canek Peláez Valdés wrote: On Fri, Sep 16, 2011 at 5:08 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 05:05:00 PM Canek Peláez Valdés wrote: Last time I checked, neither GNOME nor Emacs demanded that Gentoo developers or users had to write a fork/replacement for a core component of the system. GNOME and Emacs just need ebuilds and adapting their configuration to Gentoo-isms. Testing and bug reporting, as usual. The only code needed is some small patches for both and around 200 lines of emacslisp for site-gentoo.el. Funny that you mention this. There might be something similar brewing for users of Gnome where quite a few low-level parts will end up being mandatory for Gnome: ...but I'm increasingly seeing talk on the gnome side of the Gnome OS, to include pulse-audio, systemd, policykit, udev/u* (thus forcing lvm as well, at least lvm installation tho nothing forces one to use it... yet, since lvm is required for udisks), etc. I'm pretty sure the last part is false. I certainly have udisk installet (it's pulled by gnome-disk-utility), but I don't use LVM. So there. I don't use Gnome and haven't looked into all this. Udev also doesn't appear to have a LVM-useflag. But as I do use LVM, I can't actually check. Do you have sys-fs/lvm2 on your system? The ebuild does list it as RDEPEND. Yes, I got it installed. I didn't noticed until now. Then again, it takes 1 minute to install in my puny laptop, and uses 7 Mb of hard drive. But anyhow, I was mistaken: it is forced by udisks. I think udisks depending on LVM is an error, so I decided I would took this Saturday and see if I was able to write a patch that makes it optional. However, as per free software rules, I first visited the Freedesktop.org bugzilla. Gustavo Barbieri (who I mentioned before) got there first: https://bugs.freedesktop.org/show_bug.cgi?id=37647 As I said before, Gustavo has contributed a lot to systemd, usually making stuff optional. I'm sure his patch (or a similar version of it) will be accepted. As I keep saying: code talks. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Sat, Sep 17, 2011 at 2:36 PM, Canek Peláez Valdés can...@gmail.com wrote: On Sat, Sep 17, 2011 at 11:41 AM, Michael Mol mike...@gmail.com wrote: On Sat, Sep 17, 2011 at 10:50 AM, Canek Peláez Valdés I would like for you to be more specific about them. Sockets, be they UNIX domain sockets, IPv4 or IPv6. [snip] Shared memory: [snip] Pipes: [snip] Yeah, but then you need to design, implement and debug a protocol communication: what part of the wire speaks first, what does it says, what are the valid responses, etc. And then, if other component wants to communicate, it has to learn your little protocol. dbus standardize this. And it uses sockets, shared memory and pipes as building blocks, I believe, Reasonable points, all, up to the term 'standardize'. How stable is the API? Apart from our discussions of dbus from a few weeks ago, that's most of what I know about it, quoted from the gpsd man page: USE WITH D-BUS On operating systems that support D-BUS, gpsd can be built to broadcast GPS fixes to D-BUS-aware applications. As D-BUS is still at a pre-1.0 stage, we will not attempt to document this interface here. Read the gpsd source code to learn more. Not sure what others there are, but those have existed longer than I've been alive, and been standard since the early 1990s. They are standard in the sense that they are a low level communication standard API. An IPC is *way* more than that; dbus is an IPC, because then you have high level objects and methods, no matter the language of the two sides of the wire communicating, or even if the objects live in the same computer or not. BTW, there *was* an standard that did everything dbus does: ORB, the Object Request Broker. They tried to use that as IPC years ago, but is so damn complicated to implement right they decided to better implement a new standard. The standard is dbus. Interesting. I'd heard of ORB, even tried to play with it a bit, but the documentation I've found is terrible. Like a number of fields I've poked at, if you wan to understand how to do something, you have to do it, making for a tricky. That said, who is They, and who decided that The standard is D-Bus? Progress is adding new functionality, not reimplementing existing functionality as new APIs on top of the existing functionality. I think you are wrong if you believe that dbus is just existing functionality as new APIs on top of the existing functionality. dbus is a complete IPC system. Neither sockets, shared memory nor pipes are an IPC, because they lack a well defined protocol. You *can* do the same you do with dbus if you only use sockets/sharedmem/pipes, but then you need to do it over and over and over again. Is like the difference between assembler and C: you *can* do the same with both, but that does not mean that is actually a good idea to only use assembler. I take (and even accept) your points on D-Bus having more functionality than the three other IPC mechanisms I described. That said, I disagree that D-Bus is an inter-process control mechansim, but sockets, shm and pipes are not. To draw from networking terminology, sockets, shm and pipes could be seen as being on layers 2 and/or 3 of the OSI stack (shm and unix domain sockets being a definite layer 2, IP sockets being layer 3), and D-Bus represents a mixture of layers 3-5. An application may choose to use only layers 2-3 for IPC, or it may choose to use D-Bus. -- :wq
Re: [gentoo-user] udev + /usr
On 2011-09-17 20:36, Canek Peláez Valdés wrote: They are standard in the sense that they are a low level communication standard API. An IPC is *way* more than that; dbus is an IPC, because https://secure.wikimedia.org/wikipedia/en/wiki/Inter-process_communication then you have high level objects and methods, no matter the language of the two sides of the wire communicating, or even if the objects live in the same computer or not. Acc. to this link, dbus currently only uses unix sockets (so the objects must live on the same computer)... https://secure.wikimedia.org/wikipedia/en/wiki/D-Bus is a complete IPC system. Neither sockets, shared memory nor pipes are an IPC, because they lack a well defined protocol. You *can* do the See above. Also: https://www.ibm.com/developerworks/aix/library/au-ipc/ dbus is installed in my system, but only because I run Xfce4 (I am thinking of installing something else due to it's becoming bloated just like gnome). And I have -dbus in my global make.conf. PS. I am quite astonished at the fact that I have a computer that is _way_ faster than the first machine I installed GNU/Linux (an Amiga 4000 with a 68040 cpu at 40Mhz) on but the experience is still the same; it takes about the same time to boot, the same time (or even slower) to load a program. It seems the faster the computer the more I have to wait for it to finish some task. Contradictory, no? Wonder why that is... (bloat?). Best regards Peter K
Re: [gentoo-user] udev + /usr
On Sat, Sep 17, 2011 at 3:24 PM, Michael Mol mike...@gmail.com wrote: On Sat, Sep 17, 2011 at 2:36 PM, Canek Peláez Valdés can...@gmail.com wrote: On Sat, Sep 17, 2011 at 11:41 AM, Michael Mol mike...@gmail.com wrote: On Sat, Sep 17, 2011 at 10:50 AM, Canek Peláez Valdés I would like for you to be more specific about them. Sockets, be they UNIX domain sockets, IPv4 or IPv6. [snip] Shared memory: [snip] Pipes: [snip] Yeah, but then you need to design, implement and debug a protocol communication: what part of the wire speaks first, what does it says, what are the valid responses, etc. And then, if other component wants to communicate, it has to learn your little protocol. dbus standardize this. And it uses sockets, shared memory and pipes as building blocks, I believe, Reasonable points, all, up to the term 'standardize'. How stable is the API? Between major releases, pretty stable. And new releases usually add functionality; I haven't used that much dbus, but I don't think the developers had deprecated much. Apart from our discussions of dbus from a few weeks ago, that's most of what I know about it, quoted from the gpsd man page: USE WITH D-BUS On operating systems that support D-BUS, gpsd can be built to broadcast GPS fixes to D-BUS-aware applications. As D-BUS is still at a pre-1.0 stage, we will not attempt to document this interface here. Read the gpsd source code to learn more. That's old, obviously. I have dbus 1.4.12, pretty much post-1.0. gpsd should update its documentation. Not sure what others there are, but those have existed longer than I've been alive, and been standard since the early 1990s. They are standard in the sense that they are a low level communication standard API. An IPC is *way* more than that; dbus is an IPC, because then you have high level objects and methods, no matter the language of the two sides of the wire communicating, or even if the objects live in the same computer or not. BTW, there *was* an standard that did everything dbus does: ORB, the Object Request Broker. They tried to use that as IPC years ago, but is so damn complicated to implement right they decided to better implement a new standard. The standard is dbus. Interesting. I'd heard of ORB, even tried to play with it a bit, but the documentation I've found is terrible. Like a number of fields I've poked at, if you wan to understand how to do something, you have to do it, making for a tricky. ORBit was the GNOME implementation of ORB; I don't remember what KDE used, but I believe it was also ORB based. That said, who is They, and who decided that The standard is D-Bus? The desktop developers. They needed an IPC (because, even if you don't agree, sockets/shrmem/pipes is not an IPC), and they settled on dbus, hosted in freedesktop. Almost everybody else then jumped on dbus, because is light, it works, and is an standard. From http://dbus.freedesktop.org: D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a single instance application or daemon, and to launch applications and daemons on demand when their services are needed. Progress is adding new functionality, not reimplementing existing functionality as new APIs on top of the existing functionality. I think you are wrong if you believe that dbus is just existing functionality as new APIs on top of the existing functionality. dbus is a complete IPC system. Neither sockets, shared memory nor pipes are an IPC, because they lack a well defined protocol. You *can* do the same you do with dbus if you only use sockets/sharedmem/pipes, but then you need to do it over and over and over again. Is like the difference between assembler and C: you *can* do the same with both, but that does not mean that is actually a good idea to only use assembler. I take (and even accept) your points on D-Bus having more functionality than the three other IPC mechanisms I described. That said, I disagree that D-Bus is an inter-process control mechansim, but sockets, shm and pipes are not. To draw from networking terminology, sockets, shm and pipes could be seen as being on layers 2 and/or 3 of the OSI stack (shm and unix domain sockets being a definite layer 2, IP sockets being layer 3), and D-Bus represents a mixture of layers 3-5. Technically you are right. But in that case, a file written in /tmp with permissions 777 and file locking can be used as IPC. In practice, sockets/pipes/shrmem is not an IPC, because they lack a standard protocol. An application may choose to use only layers 2-3 for IPC, or it may choose to use D-Bus. Yeah, and they can choose to use assembler. Doesn't mean it actually makes sense to use it. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad
Re: [gentoo-user] udev + /usr
On Sat, Sep 17, 2011 at 5:03 PM, pk pete...@coolmail.se wrote: On 2011-09-17 20:36, Canek Peláez Valdés wrote: They are standard in the sense that they are a low level communication standard API. An IPC is *way* more than that; dbus is an IPC, because https://secure.wikimedia.org/wikipedia/en/wiki/Inter-process_communication then you have high level objects and methods, no matter the language of the two sides of the wire communicating, or even if the objects live in the same computer or not. Acc. to this link, dbus currently only uses unix sockets (so the objects must live on the same computer)... https://secure.wikimedia.org/wikipedia/en/wiki/D-Bus You can use AF_INET and AF_INET6 sockets for dbus messages (I *think* I even remember seeing an implementation), but in practive I believe nobody actually has done it. is a complete IPC system. Neither sockets, shared memory nor pipes are an IPC, because they lack a well defined protocol. You *can* do the See above. Also: https://www.ibm.com/developerworks/aix/library/au-ipc/ dbus is installed in my system, but only because I run Xfce4 (I am thinking of installing something else due to it's becoming bloated just like gnome). And I have -dbus in my global make.conf. PS. I am quite astonished at the fact that I have a computer that is _way_ faster than the first machine I installed GNU/Linux (an Amiga 4000 with a 68040 cpu at 40Mhz) on but the experience is still the same; it takes about the same time to boot, the same time (or even slower) to load a program. It seems the faster the computer the more I have to wait for it to finish some task. Contradictory, no? Wonder why that is... (bloat?). I like to call them new features, but I see your point. I myself prefer the new features. I gladly sacrifice a few cycles from my CPU and a few megabytes from my harddrive to run my GNOME 3 desktop. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Sat, 17 Sep 2011 15:24:39 -0400 Michael Mol mike...@gmail.com wrote: BTW, there *was* an standard that did everything dbus does: ORB, the Object Request Broker. They tried to use that as IPC years ago, but is so damn complicated to implement right they decided to better implement a new standard. The standard is dbus. Interesting. I'd heard of ORB, even tried to play with it a bit, but the documentation I've found is terrible. Like a number of fields I've poked at, if you wan to understand how to do something, you have to do it, making for a tricky. You did well to walk away from ORB and it's implementation layer CORBA. It was one of those things not designed by real engineers but by bloated committees. It tried to be all things to all systems and ended up being useable by none, much like XML and Java. There was a standards body tracking ORB, I forget which one, but none of that matters as the folks who should use it - system builders - saw it's flaws quite quickly. Even Gnome has dropped it and are now moving over to dbus. Dbus is an interesting piece of technology and rather useful, it does it a disservice to knock it. As Canek posted a few mails higher up, it implements a standard messaging layer on top of existing mechanisms. You know about the existing mechanisms so you also know that they only provide a means for communication, not the language used for the communication. And developing a language for every IPC you want to do becomes tiresome very quickly. As an analogy (albeit a poor one) dbus relates to IPC as TCP relates to IP - all the boring plumbing underneath your communication that makes it work at all is already there. It would work best if dbus doesn't become yet another way to do IPC, but replaces many of them. Imagine how much unbloat you could accomplish if you could remove all the little bits of IPC plumbing scattered throughout the average Unix system's codebase. There are many code projects out there that deserves to be maligned to the point of painful death, then killed. But I honestly beleive dbus is not one of them. -- Alan McKinnnon alan.mckin...@gmail.com
Re: [gentoo-user] udev + /usr
On Sat, Sep 17, 2011 at 7:00 PM, Alan McKinnon alan.mckin...@gmail.com wrote: On Sat, 17 Sep 2011 15:24:39 -0400 Michael Mol mike...@gmail.com wrote: Dbus is an interesting piece of technology and rather useful, it does it a disservice to knock it. Honestly, I really only want to provide reasonable criticism. I just tend to get hung up on the nitty gritty details and where I think I see something illogical. As Canek posted a few mails higher up, it implements a standard messaging layer on top of existing mechanisms. You know about the existing mechanisms so you also know that they only provide a means for communication, not the language used for the communication. And developing a language for every IPC you want to do becomes tiresome very quickly. Don't I know it. I have to maintain proprietary, network binary protocols passing data between propriety applications I also maintain. I don't _like_ that architecture in the slightest, but it's what I get paid for. As an analogy (albeit a poor one) dbus relates to IPC as TCP relates to IP - all the boring plumbing underneath your communication that makes it work at all is already there. It would work best if dbus doesn't become yet another way to do IPC, but replaces many of them. Imagine how much unbloat you could accomplish if you could remove all the little bits of IPC plumbing scattered throughout the average Unix system's codebase. There's the terminology confusion that I got hung up on in the last email; D-Bus is a higher-level IPC mechanism than the ones it's implemented on top of. There are many code projects out there that deserves to be maligned to the point of painful death, then killed. But I honestly beleive dbus is not one of them. There are two principle things I dislike about D-Bus. 1) It doesn't support live upgrading of the daemon. We discussed the reasons behind this several weeks ago, as I recall. Transparent session control handoff is, of course, complicated, and nobody has seen the work as worthwhile. 2) It comes with (or appears to come with) a Linux-centric (sometimes even a Linux-only) view. I love Linux, and I would love to see Linux grow and improve. I also use (and am comfortable with) Windows and Android (which I would consider Not Really Linux) and other platforms*. Attitudes and actions which push Linux as the One Ring smack of 'Embrace, Extend, Extinguish'. That latter point, really, bothers me greatly. Market disruption happens, and sometimes it's even necessary for advancement, sure. Other than those two things, D-Bus seems interesting and useful. If it manages to obsolete system-local IPC mechanisms, that's great. If it manages to get out into the local network and be used to pass messages back and forth between my local systems? That's awesome. If it manages to allow applications to talk back and forth in a secure fashion between Linux and non-Linux systems? Now we're talking about some real improvement on the status quo. * I think I could get by on a Mac, but it's difficult getting past some prejudices and annoying fanboys I know IRL. It's also difficult getting past the price tag; I don't see myself buying the hardware or software unless I intend to develop for them. As for what I use? All five computers at home run Linux; one Debian, three Ubuntu, one Gentoo. My fiancee and I both have Android phones. -- :wq
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 06:44:58 PM Canek Peláez Valdés wrote: On Thu, Sep 15, 2011 at 6:26 PM, Mark Knecht markkne...@gmail.com wrote: On Thu, Sep 15, 2011 at 3:05 PM, Mike Edenfield kut...@kutulu.org wrote: On Thursday, September 15, 2011 11:16:03 PM Joost Roeleveld wrote: On Thursday, September 15, 2011 04:42:23 PM Mike Edenfield wrote: I would estimate that the vast, vast, vast majority of users are those such as myslelf, who have no opinion whatsoever, and either will not be affected at all by these changes (because they don't separate / and /usr), or will simply apply the proposed initramfs solution and move on. You also don't have /var (or /var/log) seperated? Or any of the other parts of the filesystem that might be required by udev-rules? Speaking solely for myself, no. Years ago I routinely split /, /usr, and /var when setting up my FreeBSD systems, and found that it only ever caused problems when I could not get /usr or /var mounted when I needed them. At least since I switched to Gentoo, I've simply set up one partition with everything on it, and kept regular backups in case of failure. I clearly recognize that there are valid reasons to split your partitions, I have just never found any of them applicable to my situations. --Mike My first response to this 300+ post thread, and only to say that in something like 15 years of playing with using Linux I've never split /usr no longer split /var. I also don't use LVM or anything fancy like that. I just keep backups and use them if there's a failure. Life is pretty simple. My suspicion is that by far most casual desktop users of Linux, Gentoo based or not, run pretty much this way and will be unaffected by this whole change and as such have no reason to post. Ubuntu recommends /, /home and swap [1]. Fedora recommends /, /boot and swap [2]. OpenSUSE has several sets, but the simple and dual booting recommends /, /boot, /home and swap [3]. Debian says [4]: For new users, personal Debian boxes, home systems, and other single-user setups, a single / partition (plus swap) is probably the easiest, simplest way to go. However, this might not be such a good idea when you have lots of disk capacity, e.g., 20GB or so. Ext2 partitions tend to perform poorly on file system integrity checking when they are larger than 6GB or so. For multi-user systems or systems with lots of disk, it's best to put /usr, /var, /tmp, and /home each on their own partitions separate from the / partition. Interestingly, the Gentoo handbook [5] recommends /, /boot and swap. Damn, I haven't installed Gentoo in a long time, I hadn't looked at the handbook in years. Anyway, Debian is the only big distro recommending separated /usr, and then only for multiuser setups. It's really years since I've looked at the recommended partition schemes: when I started using Linux, a separated /home was almost a must. And we had tiny hard drives then. Now get out of my lawn. Gentoo still has some guides recommending split /usr: http://www.gentoo.org/doc/en/gentoo-x86+raid+lvm2-quickinstall.xml There are several people using this type of layout. The suggested partitioning scheme is usually for beginner installations. Not necessarily for larger installations with specific requirements. The debian guide talks about 20GB drives. I don't have those anymore. the smallest drive I have is a 320GB IDE-drive for the database server in the lab. The server has 2 mirrored 500GB drives for the OS, email and websites. The rest of the data is on drives larger then 1TB. Sticking all these on a single partition is going to take forever to fsck and will make maintenance a nightmare. I like the flexibility LVM brings me. On the gentoo-dev list, I am now hearing that in future, I will need to use a full initramfs for my usecase. I'm trying to find out if there is a way to avoid this. Once I find out, I will post the info here. -- Joost Regards. [1] http://www.easy-ubuntu-linux.com/ubuntu-installation-606-7.html [2] http://docs.fedoraproject.org/en-US/Fedora/13/html/Installation_Guide/s2-di skpartrecommend-x86.html [3] http://en.opensuse.org/SDB:Partitioning [4] http://www.debian.org/releases/woody/i386/ch-partitioning.en.html [5] http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?full=1
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 05:34:11 PM Canek Peláez Valdés wrote: On Thu, Sep 15, 2011 at 5:25 PM, Joost Roeleveld jo...@antarean.org wrote: [ Hugemongous snip ] If the Gentoo-devs come up with a fool-proof solution No such thing in computing, I think. I'm afraid you're right on this as that is also my experience. And not just in computing. The biggest difficult with designing fool-proof systems is the fact that designers will always underestimate the ingenuity of fools. But I also think is really laudable that you want to ensure no many users will get bitten by this change. I work in IT. Currently in support (enterprise-software, not home users) and moving into consulting soon. I don't like to see broken systems and always want to find solutions to problems I encounter. I might not always succeed, but I will certainly try. And I also tend to believe that Gentoo users are more than able to deal with this and almost any other thing. I agree, the vast majority of people on this list know how to solve issues for themselves or are able to formulate their problems/questions in such a way that others with more experience in that particular field can come up with the answer. However, I also think there are plenty of Gentoo-users who don't subscribe to this list and may easily get caught out when this situation really starts affecting them. -- Joost
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 05:38:41 PM Canek Peláez Valdés wrote: On Thu, Sep 15, 2011 at 5:30 PM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 03:04:37 PM Canek Peláez Valdés wrote: On Thu, Sep 15, 2011 at 1:59 PM, Mick michaelkintz...@gmail.com wrote: On Thursday 15 Sep 2011 16:13:26 Michael Schreckenbauer wrote: 1. The minimal initramfs will only need to be built once (and rarely rebuilt thereafter). This removes one of my fears and it was a main objection for me - I would hate to have to rebuild initramfs every time I roll a new kernel, or libs and what not of fs happen to be udpated, etc. In my experience, it takes more time to build the kernel than it takes to rebuild the initramfs. And if you choose to use dracut, the process is automatic (you always call dracut with the same options, unless you suddenly add LVM or something similar). Canek, as you've been using dracut already extensively, is it possible to set default options/modules/whatever to get to the situation where simply running dracut without any extra options will always recreate the correct initramfs? The modules get defined by the DRACUT_MODULES variable, which is use-expanded. The options are configured in /etc/dracut.conf, but I believe there are some command line options not configurable. The developers suggested I try dracut and I do intend to do that. My problem is, the one most likely affected by this is also the one I want to experiment the least with. Guess I'll have to test this inside a VM. I didn't use an initramfs for my first years using Gentoo. Since I started to use media-gfx/splashutils a couple of years ago, every time I upgraded my kernel, I splash_geninitramfs'd my initramfs. Now I do the same, but with plymouth and systemd using dracut. It's just part of the process of getting a new kernel. And, if the initramfs has other tools in it, after every emerge of these tools. This is where I see a possible cause for failure as then the situation arises where the initramfs will still start correctly, but because it's using older tools it's possible that older versions and new versions start running simultaneously and get mixed up in a way that is not immediately apparent. I see it the other way around: you ensure that your initramfs is in sync with your system. In other words: the initramfs contains a subset of your normal installation. That is why it makes redundant /lib, /sbin and /bin. The reason I ditched lilo when grub came out was because I always would forget to run the lilo-command. (Another was that lilo wouldn't work on a new machine, but that's not important) The same will be true for dracut. And probably not just for me. The on-disk-format may stay the same and the tools (am thinking LVM here) should always be able to find my filesystems. But, what if the initramfs does the fsck with older tools? Currently, the fsck runs before actually mounting the filesystems. If the filesystems end up being pre-mounted, when will fsck run and which version? -- Joost
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 05:05:00 PM Canek Peláez Valdés wrote: On Thu, Sep 15, 2011 at 4:53 PM, Sebastian Beßler sebast...@darkmetatron.de wrote: Am 15.09.2011 22:27, schrieb Canek Peláez Valdés: On Thu, Sep 15, 2011 at 4:05 PM, Sebastian Beßler sebast...@darkmetatron.de wrote: Am 15.09.2011 16:57, schrieb Canek Peláez Valdés: with an initramfs you will be able to do anything, so it will make no sense to keep supporting initramfs-less systems. With Microsoft Windows you will be able to do anything, so it will make no sense to keep supporting Microsoft Windows-less systems. Irrelevant: see the name on the list? It's called Gentoo Linux. I know you are trying to be witty, but only shows you are comparing apples and oranges. No, because first it was sarcasm and second it shows that your argument is invalid. For near to every X there is some Y that can do what X can do, but there are still many good and valid reasons to have X. So it will make sense to keep supporting Y-less systems. And you conveniently skipped my answer to your last two examples. No problem, here it goes again: Last time I checked, neither GNOME nor Emacs demanded that Gentoo developers or users had to write a fork/replacement for a core component of the system. GNOME and Emacs just need ebuilds and adapting their configuration to Gentoo-isms. Testing and bug reporting, as usual. The only code needed is some small patches for both and around 200 lines of emacslisp for site-gentoo.el. Funny that you mention this. There might be something similar brewing for users of Gnome where quite a few low-level parts will end up being mandatory for Gnome: ...but I'm increasingly seeing talk on the gnome side of the Gnome OS, to include pulse-audio, systemd, policykit, udev/u* (thus forcing lvm as well, at least lvm installation tho nothing forces one to use it... yet, since lvm is required for udisks), etc. It's a reply in the gentoo-dev thread I started. Requiring pulse-audio and policykit, I can understand. But requiring a specific init-system for the desktop seems a bit overkill. I'm not a gnome user and am happy with my KDE-desktop. But the same post also mentions KDE seems to be headed in a similar direction. Just slower. Mind you, I do think systemd is nice and usefull on a desktop machine, but I don't see much need for this on a server where the sysadmins generally prefer to have a much more detailed control of what is happening. Then again, I don't feel Gnome or KDE have any reason to be installed on a server, but that's just how I see it. -- Joost
Re: [gentoo-user] udev + /usr
On Sep 16, 2011 4:03 PM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 05:38:41 PM Canek Peláez Valdés wrote: [--major snippage--] I see it the other way around: you ensure that your initramfs is in sync with your system. In other words: the initramfs contains a subset of your normal installation. That is why it makes redundant /lib, /sbin and /bin. The reason I ditched lilo when grub came out was because I always would forget to run the lilo-command. (Another was that lilo wouldn't work on a new machine, but that's not important) The same will be true for dracut. And probably not just for me. The on-disk-format may stay the same and the tools (am thinking LVM here) should always be able to find my filesystems. But, what if the initramfs does the fsck with older tools? Currently, the fsck runs before actually mounting the filesystems. If the filesystems end up being pre-mounted, when will fsck run and which version? Speaking of fsck, didn't someone lamented the fact that fsck can no longer be statically linked, thus making initr* 'blew up' in size? When more and more utilities go the non-statically-linked way... congratulations! You now have an initr* that's practically a cpio-ized version of / Rgds,
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On Thursday, 15. September 2011 20:22:17 Michael Mol wrote: On Thu, Sep 15, 2011 at 3:59 PM, Chris Brennan xa...@xaerolimit.net wrote: On Thu, Sep 15, 2011 at 3:47 PM, Leonardo Guilherme leonardo.guilhe...@gmail.com wrote: I do not know the state of Geanny since I last checked (couple of years ago), but the highlight capabilites of KDevelop got my eye. It highlights local variables in different colors in the same context, so something like int foo(float bar, float baz) { } will have bar and baz in different colors. Also, support for CMake in KDevelop got really great and useful. Plus, it supports debugging inside the editor. Its awesome. If you want something in a gui, what about Code::Blocks? It's also multi-platform dev-util/codeblocks is masked. How well (or poorly) does it work on Gentoo AMD64? I did an emerge -p kdevelop...that'd pull back in the large bulk of KDE. I'm going to have to pass for now. I' using kdevelop a lot. It's a nice IDE. At least, if you already use KDE as I am :) qt-creator has some use flag changes, but only requires bits of KDE I already have, so I'll be trying it. I don't show an ebuild for eclipse (I see dev-java/ant-eclipse-ecj, dev-java/eclipse-ecj and dev-util/eclipse-sdk). Last time I poked eclipse, it was a royal pain using any *DT unless one downloaded it as a packaged deal. Same as my experience. But it's nice, if you do java. Version dependencies were a pain. (That said, I settled into it fairly quickly. But that was a long time ago) I don't see an ebuild for Emacs CC-Mode. app-xemacs/cc-mode Regards, Michael
Re: [gentoo-user] udev + /usr
On Fri, 16 Sep 2011 10:46:02 +0200 Joost Roeleveld jo...@antarean.org wrote: Anyway, Debian is the only big distro recommending separated /usr, and then only for multiuser setups. It's really years since I've looked at the recommended partition schemes: when I started using Linux, a separated /home was almost a must. And we had tiny hard drives then. Now get out of my lawn. Gentoo still has some guides recommending split /usr: http://www.gentoo.org/doc/en/gentoo-x86+raid+lvm2-quickinstall.xml There are several people using this type of layout. The suggested partitioning scheme is usually for beginner installations. Not necessarily for larger installations with specific requirements. Using layout suggestions from install docs to justify what the udev maintainers want to do is simply disingenuous. The install docs are obviously a guideline only and do not form any sort of requirement. That is obvious to anyone with some experience in the field. Anyone suggesting otherwise is either being hyper-literal or is following some sneaky agenda. Either way, neither type should be allowed anywhere near policy making as their goals conflict with the community. The debian guide talks about 20GB drives. I don't have those anymore. the smallest drive I have is a 320GB IDE-drive for the database server in the lab. I need 73G SCSI drives for some old servers still running, they cost a fortune from Dell. The nice man from Dell sales tells me they haven't had 20G drives in the stores for years and years, he mentioned numbers like 5 or 8 :-) -- Alan McKinnnon alan.mckin...@gmail.com
Re: [gentoo-user] udev + /usr
On Friday, September 16, 2011 12:00:16 PM Alan McKinnon wrote: On Fri, 16 Sep 2011 10:46:02 +0200 Joost Roeleveld jo...@antarean.org wrote: Anyway, Debian is the only big distro recommending separated /usr, and then only for multiuser setups. It's really years since I've looked at the recommended partition schemes: when I started using Linux, a separated /home was almost a must. And we had tiny hard drives then. Now get out of my lawn. Gentoo still has some guides recommending split /usr: http://www.gentoo.org/doc/en/gentoo-x86+raid+lvm2-quickinstall.xml There are several people using this type of layout. The suggested partitioning scheme is usually for beginner installations. Not necessarily for larger installations with specific requirements. Using layout suggestions from install docs to justify what the udev maintainers want to do is simply disingenuous. I referenced that asa response to the list of distro-guides. The install docs are obviously a guideline only and do not form any sort of requirement. That is obvious to anyone with some experience in the field. Anyone suggesting otherwise is either being hyper-literal or is following some sneaky agenda. Either way, neither type should be allowed anywhere near policy making as their goals conflict with the community. I agree and I used my example to point out that any layout that is used by a few people is likely to be documented somewhere on the internet. The debian guide talks about 20GB drives. I don't have those anymore. the smallest drive I have is a 320GB IDE-drive for the database server in the lab. I need 73G SCSI drives for some old servers still running, they cost a fortune from Dell. The nice man from Dell sales tells me they haven't had 20G drives in the stores for years and years, he mentioned numbers like 5 or 8 Yes, the 320GB disk is in a machine that was written off by some company about 4 or 5 years ago. Not sure how long that company used it before they got rid of it. -- Joost
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On 9/15/2011 8:22 PM, Michael Mol wrote: I don't show an ebuild for eclipse (I see dev-java/ant-eclipse-ecj, dev-java/eclipse-ecj and dev-util/eclipse-sdk). Last time I poked eclipse, it was a royal pain using any *DT unless one downloaded it as a packaged deal. Version dependencies were a pain. (That said, I settled into it fairly quickly. But that was a long time ago) You want the one called eclipse-sdk. The actual Eclipse product is just a shell that you can then plug in development environments -- the JDT (for Java) is the default but you can also install the CDT (for C/C++) or tons of others. If you want the latest release of Eclipse you'll have to download or build it yourself; the Ganymeade (3.5) in the ebuild works fine but it doesn't support some of the newer plug-ins built for Helios (3.6) or Indigo (3.7). But 3.6 introduced a *ton* of new dependencies that the Gentoo folks haven't been able to work out properly in portage.[1] Of course, that's also likely an indication that Eclipse is getting way to big for it's own good, especially if you don't want to do any Java development, so you may just want to pass :) --Mike [1] https://bugs.gentoo.org/325271?id=325271
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On Fri, Sep 16, 2011 at 8:30 AM, Mike Edenfield kut...@kutulu.org wrote: On 9/15/2011 8:22 PM, Michael Mol wrote: But 3.6 introduced a *ton* of new dependencies that the Gentoo folks haven't been able to work out properly in portage.[1] Of course, that's also likely an indication that Eclipse is getting way to big for it's own good, especially if you don't want to do any Java development, so you may just want to pass :) I feel like there's an Eclipse is the new Emacs joke in there somewhere. ;P -- :wq
Re: [gentoo-user] udev + /usr
On Fri, 16 Sep 2011 12:54:46 +0200 Joost Roeleveld jo...@antarean.org wrote: Using layout suggestions from install docs to justify what the udev maintainers want to do is simply disingenuous. I referenced that asa response to the list of distro-guides. I was backing you up, not arguing against you :-) -- Alan McKinnnon alan.mckin...@gmail.com
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
Hi, Michael. On Thu, Sep 15, 2011 at 08:22:17PM -0400, Michael Mol wrote: I don't see an ebuild for Emacs CC-Mode. CC Mode is distributed along with the rest of {,X}Emacs (although I think XEmacs half-splits all its packages off from its cord). Those version of CC Mode are somewhat out of date, as the newer versions have not yet percolated their way through to {,X}Emacs themselves. The most recent version is available from http://cc-mode.sourceforge.net/release.php -- :wq -- Alan Mackenzie (Nuremberg, Germany).
Re: [gentoo-user] udev + /usr
On Fri, Sep 16, 2011 at 5:08 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 05:05:00 PM Canek Peláez Valdés wrote: On Thu, Sep 15, 2011 at 4:53 PM, Sebastian Beßler sebast...@darkmetatron.de wrote: Am 15.09.2011 22:27, schrieb Canek Peláez Valdés: On Thu, Sep 15, 2011 at 4:05 PM, Sebastian Beßler sebast...@darkmetatron.de wrote: Am 15.09.2011 16:57, schrieb Canek Peláez Valdés: with an initramfs you will be able to do anything, so it will make no sense to keep supporting initramfs-less systems. With Microsoft Windows you will be able to do anything, so it will make no sense to keep supporting Microsoft Windows-less systems. Irrelevant: see the name on the list? It's called Gentoo Linux. I know you are trying to be witty, but only shows you are comparing apples and oranges. No, because first it was sarcasm and second it shows that your argument is invalid. For near to every X there is some Y that can do what X can do, but there are still many good and valid reasons to have X. So it will make sense to keep supporting Y-less systems. And you conveniently skipped my answer to your last two examples. No problem, here it goes again: Last time I checked, neither GNOME nor Emacs demanded that Gentoo developers or users had to write a fork/replacement for a core component of the system. GNOME and Emacs just need ebuilds and adapting their configuration to Gentoo-isms. Testing and bug reporting, as usual. The only code needed is some small patches for both and around 200 lines of emacslisp for site-gentoo.el. Funny that you mention this. There might be something similar brewing for users of Gnome where quite a few low-level parts will end up being mandatory for Gnome: ...but I'm increasingly seeing talk on the gnome side of the Gnome OS, to include pulse-audio, systemd, policykit, udev/u* (thus forcing lvm as well, at least lvm installation tho nothing forces one to use it... yet, since lvm is required for udisks), etc. I'm pretty sure the last part is false. I certainly have udisk installet (it's pulled by gnome-disk-utility), but I don't use LVM. So there. It's a reply in the gentoo-dev thread I started. Requiring pulse-audio and policykit, I can understand. But requiring a specific init-system for the desktop seems a bit overkill. I don't think that will happen, although certainly is what Lennart (and probably Kay) wants. What I think will happen is that, if available, GNOME will use systemd. FreeBSD does not have udev, and GNOME works there (with diminished functionality). That's the future, I believe: you will be able to use GNOME without systemd, but it will be like more awesomer with systemd. I'm not a gnome user and am happy with my KDE-desktop. But the same post also mentions KDE seems to be headed in a similar direction. Just slower. Because it makes sense for the full-fledge desktop. Notice that Gustavo Barbieri (who works a lot on e17) is a heavy promoter of systemd. Maybe even makes sense for Xfce, but that I don't know. At the end of the day, systemd manages how to start and stop processes. Which is basically the task of gnome-session-manager (and whatever is the equivalent in KDE). Mind you, I do think systemd is nice and usefull on a desktop machine, but I don't see much need for this on a server where the sysadmins generally prefer to have a much more detailed control of what is happening. I think systemd gives you that in servers. With OpenRC and Apache with user CGI scripts, ¿do you know how to list the httpd daemon spawned processes, and only those? Remember that a CGI script can double fork. With systemd is a matter of: systemctl status apache-httpd.service And you can kill every process related to a daemon, no matter how many forks its children process make. That alone makes systemd more usefull for servers thatn SysV+OpenRC, I think. Then again, I don't feel Gnome or KDE have any reason to be installed on a server, but that's just how I see it. Dear evolution, of course not. Why would you install GNOME or KDE in a server? My two servers run with systemd, and not a single GUI library is installed in them. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Fri, Sep 16, 2011 at 5:29 AM, Pandu Poluan pa...@poluan.info wrote: On Sep 16, 2011 4:03 PM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 05:38:41 PM Canek Peláez Valdés wrote: [--major snippage--] I see it the other way around: you ensure that your initramfs is in sync with your system. In other words: the initramfs contains a subset of your normal installation. That is why it makes redundant /lib, /sbin and /bin. The reason I ditched lilo when grub came out was because I always would forget to run the lilo-command. (Another was that lilo wouldn't work on a new machine, but that's not important) The same will be true for dracut. And probably not just for me. The on-disk-format may stay the same and the tools (am thinking LVM here) should always be able to find my filesystems. But, what if the initramfs does the fsck with older tools? Currently, the fsck runs before actually mounting the filesystems. If the filesystems end up being pre-mounted, when will fsck run and which version? Speaking of fsck, didn't someone lamented the fact that fsck can no longer be statically linked, thus making initr* 'blew up' in size? When more and more utilities go the non-statically-linked way... congratulations! You now have an initr* that's practically a cpio-ized version of / Now, common: that's an exaggeration. My dracut generated initramfs (with systemd, plymouth, udev, and I don't remember what many things more) is 5 Mb. That's a little less than my several-gigabytes /. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
Canek Peláez Valdés wrote: On Fri, Sep 16, 2011 at 5:29 AM, Pandu Poluanpa...@poluan.info wrote: Speaking of fsck, didn't someone lamented the fact that fsck can no longer be statically linked, thus making initr* 'blew up' in size? When more and more utilities go the non-statically-linked way... congratulations! You now have an initr* that's practically a cpio-ized version of / Now, common: that's an exaggeration. My dracut generated initramfs (with systemd, plymouth, udev, and I don't remember what many things more) is 5 Mb. That's a little less than my several-gigabytes /. Regards. Give it time. Something will need /home on the root partition next. Like someone else posted, we are headed towards windows land with this. I won't be surprised if /boot will have to be on / next too. Dale :-) :-)
Re: [gentoo-user] udev + /usr
On Fri, Sep 16, 2011 at 11:57 AM, Dale rdalek1...@gmail.com wrote: Canek Peláez Valdés wrote: On Fri, Sep 16, 2011 at 5:29 AM, Pandu Poluanpa...@poluan.info wrote: Speaking of fsck, didn't someone lamented the fact that fsck can no longer be statically linked, thus making initr* 'blew up' in size? When more and more utilities go the non-statically-linked way... congratulations! You now have an initr* that's practically a cpio-ized version of / Now, common: that's an exaggeration. My dracut generated initramfs (with systemd, plymouth, udev, and I don't remember what many things more) is 5 Mb. That's a little less than my several-gigabytes /. Regards. Give it time. Something will need /home on the root partition next. Like someone else posted, we are headed towards windows land with this. I won't be surprised if /boot will have to be on / next too. I think I know what I am talking about when I say this: The sky is, in fact, not falling. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Fri, Sep 16, 2011 at 8:57 AM, Dale rdalek1...@gmail.com wrote: Canek Peláez Valdés wrote: On Fri, Sep 16, 2011 at 5:29 AM, Pandu Poluanpa...@poluan.info wrote: Speaking of fsck, didn't someone lamented the fact that fsck can no longer be statically linked, thus making initr* 'blew up' in size? When more and more utilities go the non-statically-linked way... congratulations! You now have an initr* that's practically a cpio-ized version of / Now, common: that's an exaggeration. My dracut generated initramfs (with systemd, plymouth, udev, and I don't remember what many things more) is 5 Mb. That's a little less than my several-gigabytes /. Regards. Give it time. Something will need /home on the root partition next. Like someone else posted, we are headed towards windows land with this. I won't be surprised if /boot will have to be on / next too. Dale Not the case IMO. My read of all this stuff is that within a few months we'll be back to allowing /usr to be anywhere without an initramfs or initramfs generated automagically such that you hardly know it's there. While I'm no expert on initramfs technology, it's not large. Mine is only a bit larger than 2MB. Likely it doesn't contain whatever is required to deal with systemd/udev but it's not like it's much disk space... c2stable ~ # ls -al /boot/my-initramfs.cpio.gz -rw-r--r-- 1 root root 2296212 Jan 1 2011 /boot/my-initramfs.cpio.gz c2stable ~ # - Mark
Re: [gentoo-user] udev + /usr
On Sep 16, 2011 11:00 PM, Dale rdalek1...@gmail.com wrote: Canek Peláez Valdés wrote: On Fri, Sep 16, 2011 at 5:29 AM, Pandu Poluanpa...@poluan.info wrote: Speaking of fsck, didn't someone lamented the fact that fsck can no longer be statically linked, thus making initr* 'blew up' in size? When more and more utilities go the non-statically-linked way... congratulations! You now have an initr* that's practically a cpio-ized version of / Now, common: that's an exaggeration. My dracut generated initramfs (with systemd, plymouth, udev, and I don't remember what many things more) is 5 Mb. That's a little less than my several-gigabytes /. Regards. Give it time. Something will need /home on the root partition next. Like someone else posted, we are headed towards windows land with this. I won't be surprised if /boot will have to be on / next too. Heh. If it's only limited to 'everything in /' it's still acceptable. MIGHTY annoying, and most likely an admin hell, but workable. Now, if everything needs to go into initr* (yes, I'm exaggerating, but...) ... Rgds,
Re: [gentoo-user] udev + /usr
Mark Knecht wrote: On Fri, Sep 16, 2011 at 8:57 AM, Dalerdalek1...@gmail.com wrote: Canek Peláez Valdés wrote: On Fri, Sep 16, 2011 at 5:29 AM, Pandu Poluanpa...@poluan.infowrote: Speaking of fsck, didn't someone lamented the fact that fsck can no longer be statically linked, thus making initr* 'blew up' in size? When more and more utilities go the non-statically-linked way... congratulations! You now have an initr* that's practically a cpio-ized version of / Now, common: that's an exaggeration. My dracut generated initramfs (with systemd, plymouth, udev, and I don't remember what many things more) is 5 Mb. That's a little less than my several-gigabytes /. Regards. Give it time. Something will need /home on the root partition next. Like someone else posted, we are headed towards windows land with this. I won't be surprised if /boot will have to be on / next too. Dale Not the case IMO. My read of all this stuff is that within a few months we'll be back to allowing /usr to be anywhere without an initramfs or initramfs generated automagically such that you hardly know it's there. While I'm no expert on initramfs technology, it's not large. Mine is only a bit larger than 2MB. Likely it doesn't contain whatever is required to deal with systemd/udev but it's not like it's much disk space... c2stable ~ # ls -al /boot/my-initramfs.cpio.gz -rw-r--r-- 1 root root 2296212 Jan 1 2011 /boot/my-initramfs.cpio.gz c2stable ~ # - Mark I hope you are right about sanity returning. I have been wrong before but I have also been right too. I picture this going bad for a lot of people and the dev getting a lot of emails about it. Someone is going to try rebooting and have a jaw dropping experience. One that comes to mind is hal but there are others that went south too. Dale :-) :-)
Re: [gentoo-user] udev + /usr
On Fri, 2011-09-16 at 10:57 -0500, Dale wrote: Give it time. Something will need /home on the root partition next. Like someone else posted, we are headed towards windows land with this. I won't be surprised if /boot will have to be on / next too. Dale :-) :-) Funnily enough, Windows 7 implements a separate boot partition from the default system partition. The partition is not only a boot partition but a has rescue environment also. How the tables are turning ... go figure. Carlos -- Sent using GNU/Linux - Perpetuate Freedom.
Re: [gentoo-user] udev + /usr
On Wednesday, September 14, 2011 10:30:03 AM Canek Peláez Valdés wrote: On Wed, Sep 14, 2011 at 1:52 AM, Joost Roeleveld jo...@antarean.org wrote: On Tuesday, September 13, 2011 06:33:01 PM Canek Peláez Valdés wrote: On Tue, Sep 13, 2011 at 6:10 PM, Michael Schreckenbauer grim...@gmx.de wrote: If gentoo follows fedora on this mandatory initramfs trail, I'll switch to FreeBSD completely. My software works on way more systems than just Linux. That's of course your prerogative. And, as I said before: Linux strives to be much more than Unix, and that means do things differently. If you want to do things the same way that it was done in the last 20 years, maybe Linux is not the best of choices. I read it before, but to be much more then Unix, Linux should be doing things better. Being different is what led to MS Windows' But that's the thing: we (you and me) don't see the situation the same way. To me, the proposed changes are for the better. There are not many people who agree with you here. The changes will lead to a C:-drive, similar to MS Windows, where everything has to be a single partition. For various reasons, using seperate partitions are a better solution: - It allows for the use of filesystems better suited to the type of files and usage on each partition. - It prevents a single part of the filesystem to kill the entire system. (I can risk loosing 1 partition and not loose the rest of my data) I myself think the new technologies are worth to change the way we did things before. But that's just me. The new technologies have great merit. But, the implementation of it isn't thought through. In my humble opinion, what you just said is a little pedantic. You can disagree with the proposed changes, you can argue why you think another approach could be better. But just saying the implementation of it isn't thought through, is a little insulting to the devs. I think they though about the implementation a lot. They may have thought about it, but didn't think things through. I have already stated a better way of doing it in the past few days. I will repeat it here. The problem-scope that udev is TRYING to solve should NOT be solved in a single tool. The main purpose of udev is to populate the /dev-tree. The running of scripts based on /dev-tree events should be in a seperate tool that starts later in the boot-process. Merging these 2, without properly handling failures, is bad design. Forcing ALL Linux users to use a C-drive is one of the worst design flaws I have ever encountered. Forcing the use of an init* which can leave systems unbootable, is also a design flaw. How do you propose to fix the situation where the init* is broken and someone is unable to mount all the filesystems needed to rebuild the init* because udev, which SHOULD be populating the /dev-tree, refuses to do the single job it is designed to do? Then rethink about the fact that not all computers are easily accessible and/or have cd-drives/usb-ports active. My desktop has them active, my servers don't as I do not need USB on the server. And maybe I shouldn't even mention it, but I don't use OpenRC. I use systemd. And it works great on Gentoo. Well. Linux only. If I wanted a monoculture, I would use MS-Windows or OSX. Relax man. I mention what I use: I'm not forcing you (or anybody else) to use it. But I repeat (because I said it before) that I care about Linux, and Linux only. If you care about Linux, why do you allow it to be broken in such a fundamental way? Again, to me is not breaking it. To me is improving it. Adding another SPOF (Single Point Of Failure) is not an improvement. -- Joost
Re: [gentoo-user] udev + /usr
On Wednesday, September 14, 2011 10:37:14 AM Canek Peláez Valdés wrote: On Wed, Sep 14, 2011 at 5:06 AM, Neil Bothwick n...@digimed.co.uk wrote: On Tue, 13 Sep 2011 17:10:40 -0400, Canek Peláez Valdés wrote: No, by you know what needs to be done I mean: code. Contribute. Become a developer. Make shit happens the way you think it should happen. You're happy to run an important system service coded by someone with less experience than their dislike of the way things are going. Someone with less experience? As I said before, Kay has been working in udev for more than eight years. I think he's entitle to receive the acknowledge of his experience. A certain amount of years of experience doesn't mean the person can not make mistakes. Kay has done a lot of good work with udev, but he should rethink his design and breaking a lot of systems just to satisfy his insane desire to make everyone do whatever he dreamed up is simply wrong. -- Joost
Re: [gentoo-user] udev + /usr
On Wednesday, September 14, 2011 06:40:44 PM Sebastian Beßler wrote: This thread goes in endless circles, round and round and round. In the last 20 posts or so is not one new argument pro or con can be found, both sides only repeating their pov over and over again. Nothing will be achieved by that, it is only a big waste of time and energy that could be used better. Create documents with all your arguments, maybe a reply to that blog post that claims that split of /usr is broken. Flameing here on -user helps noone, because the devs must be convinced not the users. Just my 2 €-cent Greetings Sebastian Beßler I agree, I also wanted to leave a comment on that page about systemd and /usr written by the same guy who is making this decision for udev. Comments and changes are not possible on that page at all. -- Joost
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 3:01 AM, Joost Roeleveld jo...@antarean.org wrote: There are not many people who agree with you here. The changes will lead to a C:-drive, similar to MS Windows, where everything has to be a single partition. Technically, this isn't true. %PROGRAMFILES need not be on %SYSTEMDRIVE%. %PROGRAMFILES(x86)% need not be on the same drive as %PROGRAMFILES%. I believe most of the system key locations are allowed to be in disparate locations. For various reasons, using seperate partitions are a better solution: - It allows for the use of filesystems better suited to the type of files and usage on each partition. - It prevents a single part of the filesystem to kill the entire system. (I can risk loosing 1 partition and not loose the rest of my data) Fully concur. In my humble opinion, what you just said is a little pedantic. You can disagree with the proposed changes, you can argue why you think another approach could be better. But just saying the implementation of it isn't thought through, is a little insulting to the devs. I think they though about the implementation a lot. They may have thought about it, but didn't think things through. I have already stated a better way of doing it in the past few days. I will repeat it here. The problem-scope that udev is TRYING to solve should NOT be solved in a single tool. Concur. The main purpose of udev is to populate the /dev-tree. The running of scripts based on /dev-tree events should be in a seperate tool that starts later in the boot-process. I'm not *entirely* convinced this is the case, because it feels like some situations like network devices (nbd, iSCSI) or loopback would require userland tools to bring up once networking is up. Merging these 2, without properly handling failures, is bad design. Concur. Again, to me is not breaking it. To me is improving it. Adding another SPOF (Single Point Of Failure) is not an improvement. Concur. -- :wq
Re: [gentoo-user] udev + /usr
On 14 September 2011, at 22:34, Alan Mackenzie wrote: … That's got nothing to do with it, and it's rude of you to make this about Canek, IMO. Given how much Canek has been saying about free/open source recently, the attitudes he's been attributing to its developers (which don't accord with my experience of them), and the number of times he's told people, in a manner I find very rude, to stop moaning and code it yourself - given all of this, I find it reasonable to question Canek's background. I'm not the only one of us getting irritated by him. Personally, I'm getting really irritated with all the people who expect someone else to fix their problems. It's a fact of open-source software that you can write the dev a polite note saying have you considered this approach? and if you don't like the answer then you can code it yourself. Use BSD, write your own kernel, buy a copy of Windows - those are your other alternatives. Bitching about the author on here, 100 posts of complaining, does naff all good. That doesn't solve the problem. The only people who are listening are your mates, who already agree with you. You're not trying to persuade anyone to your point of view in accusing the software authors of being stupid or short-sighted. Yes, I *still* think it was rude of you to try to make this issue about Canek. I don't know what attitude you think Canek is attributing to OSS developers, because what I'm mostly seeing is those on your side of the field accusing the udev devs of being shallow and single-distro orientated. Of not talking to anyone. This is not about Canek. Or me. Or you. This is about udev, a piece of software. If you don't like it, you have the source code. I'm not going to respond in detail to the rest of your post. It sounds like you have an excellent background to go fixing the problems. If you've got questions for the udev authors, ask them, but they're probably not reading this list. Note that you're not required to talk to anyone else before coding your solution. If people like it, they'll use it. If you go talking to other people first you'll probably get a thousand different answers and options and a thousand different people telling you to do it some other way. So it's probably better if you get your code into some kind of working state and just worry about it solving your problem. Stroller.
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 09:47:34 AM Michael Mol wrote: The main purpose of udev is to populate the /dev-tree. The running of scripts based on /dev-tree events should be in a seperate tool that starts later in the boot-process. I'm not entirely convinced this is the case, because it feels like some situations like network devices (nbd, iSCSI) or loopback would require userland tools to bring up once networking is up. Yes, but the kernel-events referencing those devices won't appear untill after the networking is brought up. The scripts that udev starts are run *after* a device-event is created. If the device itself has not been spotted by the kernel (for instance, the networking doesn't exist yet), the event won't be triggered yet. This situation does not require udev to start all these tools when network- devices appear. I hope the following would make my thoughts a bit clearer: 1) kernel boots 2) kernel detects network device and places network-device-event in the queue 3) further things happen and kernel places relevant events in the queue (some other events may also already be in the queue before step 2) 4) udev starts and starts processing the queue 5) For each event, udev creates the corresponding device-entry and places action-entries in a queue 6) system-init-scripts mount all local filesystems 7) udev-actions starts (I made up this name) 8) udev-actions processes all the entries in the action-queue From step 4, udev will keep processing further events it gets, which means that if any action taken by udev-actions causes further devices to become available, udev will create the device-entries and place the action in the action-queue. If anyone has a setup where /usr can not be mounted easily, it won't work currently either and a init* would be necessary anyway. (Am thinking of NFS, CIFS, iSCSI, NBD, special raid-drivers, hosting /usr or other required filesystems) But anyone with a currently working environment should be able to expect a currently working environment. If it fails to boot with only updating versions, it's a regression. And one of the worst kinds of all. -- Joost
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 10:11 AM, Joost Roeleveld jo...@antarean.org wrote: I'm not entirely convinced this is the case, because it feels like some situations like network devices (nbd, iSCSI) or loopback would require userland tools to bring up once networking is up. Yes, but the kernel-events referencing those devices won't appear untill after the networking is brought up. The scripts that udev starts are run *after* a device-event is created. If the device itself has not been spotted by the kernel (for instance, the networking doesn't exist yet), the event won't be triggered yet. This situation does not require udev to start all these tools when network- devices appear. I hope the following would make my thoughts a bit clearer: 1) kernel boots 2) kernel detects network device and places network-device-event in the queue 3) further things happen and kernel places relevant events in the queue (some other events may also already be in the queue before step 2) 4) udev starts and starts processing the queue 5) For each event, udev creates the corresponding device-entry and places action-entries in a queue 6) system-init-scripts mount all local filesystems 7) udev-actions starts (I made up this name) 8) udev-actions processes all the entries in the action-queue From step 4, udev will keep processing further events it gets, which means that if any action taken by udev-actions causes further devices to become available, udev will create the device-entries and place the action in the action-queue. So, if I read this correctly, there are two classes of processing events. kernel events and scripted actions. Here's rough pseudocode describing what I think you're saying. (Or perhaps what I'm hoping you're saying) while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } else { aevent* pAction = NULL; if(get_waiting_action(pAction)) // Returns true if there's an action waiting. { process_action(pAction); } } } So, udev processes one event at a time, and always processes kernel events with a higher priority than resulting scripts. This makes a certain amount of sense; an action could launch, e.g. nbdclient, which would cause a new kernel event to get queued. If anyone has a setup where /usr can not be mounted easily, it won't work currently either and a init* would be necessary anyway. (Am thinking of NFS, CIFS, iSCSI, NBD, special raid-drivers, hosting /usr or other required filesystems) I don't see how this is relevant to actually fixing udev. (See below) But anyone with a currently working environment should be able to expect a currently working environment. If it fails to boot with only updating versions, it's a regression. And one of the worst kinds of all. I agree that the direction udev is going is a regression. There aren't very many people active in this thread who would disagree with that point. So let's just drop it and focus on what a good, general solution would look like. (And anyone who says something amounting to 'status quo' for udev needs another explanation of why the udev developer sees the current scenario as broken. And he's right; the current scenario is architecturally unsound. I just think he's wrong about the solution.) -- :wq
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 10:32:50 AM Michael Mol wrote: On Thu, Sep 15, 2011 at 10:11 AM, Joost Roeleveld jo...@antarean.org wrote: I'm not entirely convinced this is the case, because it feels like some situations like network devices (nbd, iSCSI) or loopback would require userland tools to bring up once networking is up. Yes, but the kernel-events referencing those devices won't appear untill after the networking is brought up. The scripts that udev starts are run *after* a device-event is created. If the device itself has not been spotted by the kernel (for instance, the networking doesn't exist yet), the event won't be triggered yet. This situation does not require udev to start all these tools when network- devices appear. I hope the following would make my thoughts a bit clearer: 1) kernel boots 2) kernel detects network device and places network-device-event in the queue 3) further things happen and kernel places relevant events in the queue (some other events may also already be in the queue before step 2) 4) udev starts and starts processing the queue 5) For each event, udev creates the corresponding device-entry and places action-entries in a queue 6) system-init-scripts mount all local filesystems 7) udev-actions starts (I made up this name) 8) udev-actions processes all the entries in the action-queue From step 4, udev will keep processing further events it gets, which means that if any action taken by udev-actions causes further devices to become available, udev will create the device-entries and place the action in the action-queue. So, if I read this correctly, there are two classes of processing events. kernel events and scripted actions. Here's rough pseudocode describing what I think you're saying. (Or perhaps what I'm hoping you're saying) while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } else { aevent* pAction = NULL; if(get_waiting_action(pAction)) // Returns true if there's an action waiting. { process_action(pAction); } } } This is, sort-of, what I feel should happen. But currently, in pseudo-code, the following seems to happen: while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } } I would prefer to see 2 seperate processes: --- process 1 --- while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { action_event = process_kernel_event(pkEvent); if (action_event != NULL) { put_action_event(pkEvent); } } } -- --- process 2 --- while(wait_for_event()) { aevent* paEvent = NULL; if(get_waiting_action_event(paEvent)) // returns true if an event was waiting { process_action_event(paEvent); } } --- So, udev processes one event at a time, and always processes kernel events with a higher priority than resulting scripts. This makes a certain amount of sense; an action could launch, e.g. nbdclient, which would cause a new kernel event to get queued. Yes, except that udev ONLY handles kernel-events and doesn't process any actions itself. These are placed on a seperate queue for a seperate process. If anyone has a setup where /usr can not be mounted easily, it won't work currently either and a init* would be necessary anyway. (Am thinking of NFS, CIFS, iSCSI, NBD, special raid-drivers, hosting /usr or other required filesystems) I don't see how this is relevant to actually fixing udev. (See below) But anyone with a currently working environment should be able to expect a currently working environment. If it fails to boot with only updating versions, it's a regression. And one of the worst kinds of all. I agree that the direction udev is going is a regression. There aren't very many people active in this thread who would disagree with that point. So let's just drop it and focus on what a good, general solution would look like. (And anyone who says something amounting to 'status quo' for udev needs another explanation of why the udev developer sees the current scenario as broken. And he's right; the current scenario is architecturally unsound. I just think he's wrong about the solution.) I agree he is wrong about the solution as well. I have actually just posted my idea to the gentoo-dev list to see how the developers actually feel about possible splitting udev into 2 parts. I'm not a good enough programmer to do this myself. But if anyone who can code and who also agrees with me that my idea for a solution is actually a good idea, please let me know and lets see how far we can get with implementing this solution. -- Joost
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 10:32 AM, Michael Mol mike...@gmail.com wrote: On Thu, Sep 15, 2011 at 10:11 AM, Joost Roeleveld jo...@antarean.org wrote: I'm not entirely convinced this is the case, because it feels like some situations like network devices (nbd, iSCSI) or loopback would require userland tools to bring up once networking is up. Yes, but the kernel-events referencing those devices won't appear untill after the networking is brought up. The scripts that udev starts are run *after* a device-event is created. If the device itself has not been spotted by the kernel (for instance, the networking doesn't exist yet), the event won't be triggered yet. This situation does not require udev to start all these tools when network- devices appear. I hope the following would make my thoughts a bit clearer: 1) kernel boots 2) kernel detects network device and places network-device-event in the queue 3) further things happen and kernel places relevant events in the queue (some other events may also already be in the queue before step 2) 4) udev starts and starts processing the queue 5) For each event, udev creates the corresponding device-entry and places action-entries in a queue 6) system-init-scripts mount all local filesystems 7) udev-actions starts (I made up this name) 8) udev-actions processes all the entries in the action-queue From step 4, udev will keep processing further events it gets, which means that if any action taken by udev-actions causes further devices to become available, udev will create the device-entries and place the action in the action-queue. So, if I read this correctly, there are two classes of processing events. kernel events and scripted actions. Here's rough pseudocode describing what I think you're saying. (Or perhaps what I'm hoping you're saying) while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } else { aevent* pAction = NULL; if(get_waiting_action(pAction)) // Returns true if there's an action waiting. { process_action(pAction); } } } So, udev processes one event at a time, and always processes kernel events with a higher priority than resulting scripts. This makes a certain amount of sense; an action could launch, e.g. nbdclient, which would cause a new kernel event to get queued. If anyone has a setup where /usr can not be mounted easily, it won't work currently either and a init* would be necessary anyway. (Am thinking of NFS, CIFS, iSCSI, NBD, special raid-drivers, hosting /usr or other required filesystems) I don't see how this is relevant to actually fixing udev. (See below) But anyone with a currently working environment should be able to expect a currently working environment. If it fails to boot with only updating versions, it's a regression. And one of the worst kinds of all. I agree that the direction udev is going is a regression. There aren't very many people active in this thread who would disagree with that point. So let's just drop it and focus on what a good, general solution would look like. (And anyone who says something amounting to 'status quo' for udev needs another explanation of why the udev developer sees the current scenario as broken. And he's right; the current scenario is architecturally unsound. I just think he's wrong about the solution.) Let me throw my own guess of how they came out with the corrent proposed solution. I repeat: is my own guess: I am not the one calling the shots, so maybe I'm completely wrong. As many of you guys said, there are ways of solving the problem without requiring an initramfs. Note that if you decide to use an initramfs, every use case works: You can have a practically empty /, throw everything in /usr, and have /usr in another partition, maybe even an encrypted remote NFS share. With an initramfs you can have a separate /var, you can even have a separated /etc, mounted even by NFS too. You can do pretty much whatever you want, because you have a full userspace *the moment you boot*. Bluetooth, network, LVM, crypto-filesystems: Everything is available from the instant zero. From that perspective, the problem then is trying to support the initramfs-less setups. Putting myself in the shoes of the developers, the smart solution is to simply force an initramfs. KISS is to force an initramfs, because it solves everything. The Gentoo devs are working in a minimal initramfs that works for most normal usecases. Everything else will be handled by dracut or genkernel. An initramfs is not an initrd. And is not a binary blob coming who knows from where; with dracut, your initramfs is simply a subset of your normal installation, and can be as simple (just mount /usr) or as complicated (LVM+crypto+network+NFS+whatever) as you want. Of course you can solve it differently, for example splitting udev
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 10:48 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 10:32:50 AM Michael Mol wrote: On Thu, Sep 15, 2011 at 10:11 AM, Joost Roeleveld jo...@antarean.org wrote: I'm not entirely convinced this is the case, because it feels like some situations like network devices (nbd, iSCSI) or loopback would require userland tools to bring up once networking is up. Yes, but the kernel-events referencing those devices won't appear untill after the networking is brought up. The scripts that udev starts are run *after* a device-event is created. If the device itself has not been spotted by the kernel (for instance, the networking doesn't exist yet), the event won't be triggered yet. This situation does not require udev to start all these tools when network- devices appear. I hope the following would make my thoughts a bit clearer: 1) kernel boots 2) kernel detects network device and places network-device-event in the queue 3) further things happen and kernel places relevant events in the queue (some other events may also already be in the queue before step 2) 4) udev starts and starts processing the queue 5) For each event, udev creates the corresponding device-entry and places action-entries in a queue 6) system-init-scripts mount all local filesystems 7) udev-actions starts (I made up this name) 8) udev-actions processes all the entries in the action-queue From step 4, udev will keep processing further events it gets, which means that if any action taken by udev-actions causes further devices to become available, udev will create the device-entries and place the action in the action-queue. So, if I read this correctly, there are two classes of processing events. kernel events and scripted actions. Here's rough pseudocode describing what I think you're saying. (Or perhaps what I'm hoping you're saying) while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } else { aevent* pAction = NULL; if(get_waiting_action(pAction)) // Returns true if there's an action waiting. { process_action(pAction); } } } This is, sort-of, what I feel should happen. But currently, in pseudo-code, the following seems to happen: while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } } I would prefer to see 2 seperate processes: --- process 1 --- while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { action_event = process_kernel_event(pkEvent); if (action_event != NULL) { put_action_event(pkEvent); } } } -- --- process 2 --- while(wait_for_event()) { aevent* paEvent = NULL; if(get_waiting_action_event(paEvent)) // returns true if an event was waiting { process_action_event(paEvent); } } --- So, udev processes one event at a time, and always processes kernel events with a higher priority than resulting scripts. This makes a certain amount of sense; an action could launch, e.g. nbdclient, which would cause a new kernel event to get queued. Yes, except that udev ONLY handles kernel-events and doesn't process any actions itself. These are placed on a seperate queue for a seperate process. If anyone has a setup where /usr can not be mounted easily, it won't work currently either and a init* would be necessary anyway. (Am thinking of NFS, CIFS, iSCSI, NBD, special raid-drivers, hosting /usr or other required filesystems) I don't see how this is relevant to actually fixing udev. (See below) But anyone with a currently working environment should be able to expect a currently working environment. If it fails to boot with only updating versions, it's a regression. And one of the worst kinds of all. I agree that the direction udev is going is a regression. There aren't very many people active in this thread who would disagree with that point. So let's just drop it and focus on what a good, general solution would look like. (And anyone who says something amounting to 'status quo' for udev needs another explanation of why the udev developer sees the current scenario as broken. And he's right; the current scenario is architecturally unsound. I just think he's wrong about the solution.) I agree he is wrong about the solution as well. I have actually just posted my idea to the gentoo-dev list to see how the developers actually feel about possible splitting udev into 2 parts. I'm not a good enough programmer to do this myself. But if anyone who can code and who also agrees with me that my idea for a solution is actually a good idea, please let me know
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 10:48 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 10:32:50 AM Michael Mol wrote: On Thu, Sep 15, 2011 at 10:11 AM, Joost Roeleveld jo...@antarean.org wrote: I'm not entirely convinced this is the case, because it feels like some situations like network devices (nbd, iSCSI) or loopback would require userland tools to bring up once networking is up. Yes, but the kernel-events referencing those devices won't appear untill after the networking is brought up. The scripts that udev starts are run *after* a device-event is created. If the device itself has not been spotted by the kernel (for instance, the networking doesn't exist yet), the event won't be triggered yet. This situation does not require udev to start all these tools when network- devices appear. I hope the following would make my thoughts a bit clearer: 1) kernel boots 2) kernel detects network device and places network-device-event in the queue 3) further things happen and kernel places relevant events in the queue (some other events may also already be in the queue before step 2) 4) udev starts and starts processing the queue 5) For each event, udev creates the corresponding device-entry and places action-entries in a queue 6) system-init-scripts mount all local filesystems 7) udev-actions starts (I made up this name) 8) udev-actions processes all the entries in the action-queue From step 4, udev will keep processing further events it gets, which means that if any action taken by udev-actions causes further devices to become available, udev will create the device-entries and place the action in the action-queue. So, if I read this correctly, there are two classes of processing events. kernel events and scripted actions. Here's rough pseudocode describing what I think you're saying. (Or perhaps what I'm hoping you're saying) while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } else { aevent* pAction = NULL; if(get_waiting_action(pAction)) // Returns true if there's an action waiting. { process_action(pAction); } } } This is, sort-of, what I feel should happen. But currently, in pseudo-code, the following seems to happen: while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } } I would prefer to see 2 seperate processes: --- process 1 --- while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { action_event = process_kernel_event(pkEvent); if (action_event != NULL) { put_action_event(pkEvent); } } } -- --- process 2 --- while(wait_for_event()) { aevent* paEvent = NULL; if(get_waiting_action_event(paEvent)) // returns true if an event was waiting { process_action_event(paEvent); } } --- So, udev processes one event at a time, and always processes kernel events with a higher priority than resulting scripts. This makes a certain amount of sense; an action could launch, e.g. nbdclient, which would cause a new kernel event to get queued. Yes, except that udev ONLY handles kernel-events and doesn't process any actions itself. These are placed on a seperate queue for a seperate process. The problem with this is that you now need to manage synchronization between the kernel event processor and the action processor, which is actually more complicated than keeping them together in a single-threaded, single-process scenario. -- :wq
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 10:57 AM, Canek Peláez Valdés can...@gmail.com wrote: Of course you can solve it differently, for example splitting udev as Joost proposes. But then is more code to maintain, and the number of possible setups is suddenly the double it was before. It. Is. Not. KISS. If you want KISS by imposing rules on the many to make responsibilities fewer for the few, build a walled garden. Building a safe playground has never been what Linux has been about, or what it has been advocated or marketed as, in the ten or so years I've been using it. It's a lot like the CUPS/lprng situation we discussed before. CUPS can do anything that lprng does, so it makes no sense to keep support for lprng. It's the same: with an initramfs you will be able to do anything, so it will make no sense to keep supporting initramfs-less systems. While I came down on the CUPS side of that argument, udev is a very different beast. -- :wq
Re: [gentoo-user] udev + /usr
On Thursday, 15. September 2011 16:48:45 Joost Roeleveld wrote: I agree he is wrong about the solution as well. I have actually just posted my idea to the gentoo-dev list to see how the developers actually feel about possible splitting udev into 2 parts. I've read it there. Thanks for doing this. I'm not a good enough programmer to do this myself. But if anyone who can code and who also agrees with me that my idea for a solution is actually a good idea, please let me know and lets see how far we can get with implementing this solution. I'm definitely interested in this. I don't know, how many or little I can contribute. Working as a freelancer, I have some time now, but this could change quite fast. I have developed quite a few daemons at the company I worked for the past ~10 years. So I can say, I have some experience in doing things your proposal needs. Feel free to send me PM, if you have questions about me, my knowledge or simply to exchange ideas. -- Joost Best, Michael
Re: [gentoo-user] udev + /usr
On Thursday, 15. September 2011 11:03:09 Michael Mol wrote: Yes, except that udev ONLY handles kernel-events and doesn't process any actions itself. These are placed on a seperate queue for a seperate process. The problem with this is that you now need to manage synchronization between the kernel event processor and the action processor, which is actually more complicated than keeping them together in a single-threaded, single-process scenario. Yes, it's more complicated to do. But not impossible. IPC, shared memory and what not, exists for a reason Best, Michael
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 11:16 AM, Michael Schreckenbauer grim...@gmx.de wrote: On Thursday, 15. September 2011 11:03:09 Michael Mol wrote: Yes, except that udev ONLY handles kernel-events and doesn't process any actions itself. These are placed on a seperate queue for a seperate process. The problem with this is that you now need to manage synchronization between the kernel event processor and the action processor, which is actually more complicated than keeping them together in a single-threaded, single-process scenario. Yes, it's more complicated to do. But not impossible. IPC, shared memory and what not, exists for a reason Sure. But it's not KISS, it's not necessary and it's a royal PITA. One of queued tasks here at work is debugging _exactly_ that kind of code. You need a _very_ good reason to use it, because it doesn't make any solution more elegant. I don't see a pragmatic value to splitting the process. At work, I have to do it because it links to badly-written crash-prone code I can't fix. If I can reasonably guarantee that the code I need to run will behave, then the overhead and complexity definitely doesn't seem worthwhile. And because I've sat on two sides of the KISS argument in as many messages, I'd like to make some points clear: * The udev tool needs to be reliable, and this means no complexity unnecessary to fulfilling its role. However... * Part of udev's role needs to be *not* impose constraints on a system without a clear path to get from point A to point B; as long an API is understood, someone plugging into udev should be able to find a way to reliably do what they want to do. -- :wq
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 10:57:27 AM Canek Peláez Valdés wrote: snipped to keep only the email from Canek Let me throw my own guess of how they came out with the corrent proposed solution. I repeat: is my own guess: I am not the one calling the shots, so maybe I'm completely wrong. Ok and I do actually think you are correct with your guess as to why the developer came up with his solution. As many of you guys said, there are ways of solving the problem without requiring an initramfs. Note that if you decide to use an initramfs, every use case works: You can have a practically empty /, throw everything in /usr, and have /usr in another partition, maybe even an encrypted remote NFS share. With an initramfs you can have a separate /var, you can even have a separated /etc, mounted even by NFS too. You can do pretty much whatever you want, because you have a full userspace *the moment you boot*. Bluetooth, network, LVM, crypto-filesystems: Everything is available from the instant zero. For these specific custom environments, yes, I agree. An initramfs is mandatory. From that perspective, the problem then is trying to support the initramfs-less setups. Putting myself in the shoes of the developers, the smart solution is to simply force an initramfs. KISS is to force an initramfs, because it solves everything. The Gentoo devs are working in a minimal initramfs that works for most normal usecases. Everything else will be handled by dracut or genkernel. Initramfs is already supported. so is initramfs-less. An initramfs is not an initrd. And is not a binary blob coming who knows from where; with dracut, your initramfs is simply a subset of your normal installation, and can be as simple (just mount /usr) or as complicated (LVM+crypto+network+NFS+whatever) as you want. I haven't looked at dracut yet, but as far as I understand, it does create an initramfs with the script(s), libraries and binaries needed to start whatever is needed to get to the stage where udev is happy. Of course you can solve it differently, for example splitting udev as Joost proposes. But then is more code to maintain, and the number of possible setups is suddenly the double it was before. It. Is. Not. KISS. Depends on your definition of Simple. It's a lot like the CUPS/lprng situation we discussed before. CUPS can do anything that lprng does, so it makes no sense to keep support for lprng. It's the same: with an initramfs you will be able to do anything, so it will make no sense to keep supporting initramfs-less systems. The situation with Cups and lprng is different. If either of these fail, the system will still boot and then you can spend the time to fix the problem. If this change continues, an initramfs failure, will mean the system will not boot correctly. And when all the tools needed to fix the system are moved to /usr, what options are there to actually analyse and solve the problem? In my opinion, the simplest solution will be to make the tool(s) do what they're supposed to do. udev should, in my opinion, create the devices in userspace. That it also allows for programs/scripts to be executed when a device is created is a nice thing to have. Unfortunately, this leads to chicken-and-egg style problems when the scripts are on a filesystem that hasn't been mounted yet. There are 3 solutions for this: 1) The easy way out: the whole user-space must be available before udev 2) udev actually includes correct error-handling for this and retries 3) udev splits this into 2 seperate tools Option 1 is what is currenty proposed and what you appear to be in favour off. Except, what is the point of having udev when the entire user-space already exists before it starts? You yourself said it's nice to have everything already available from the beginning. But isn't the problem that udev can't start bluetoothd because /usr/bin/bluetoothd can't be found when /usr doesn't exist yet? How would udev handle a situation where I have /usr on my mobile phone which shares the filesystem over bluetooth? Option 2 has been suggested and rejected. And I happen to agree with this as it would make udev, a vital part of the system, bigger and will increase the chances of problems/bugs. Option 3, which I have proposed, would actually make the first part smaller and simpler. The action-handling can then be run at a later stage, when /usr is available and could then easier implement a retry-queue. With this being a seperate tool, not needed for the /dev-tree creation, failure on this should not lead to an unusable system. -- Joost
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 11:03:09 AM Michael Mol wrote: On Thu, Sep 15, 2011 at 10:48 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 10:32:50 AM Michael Mol wrote: On Thu, Sep 15, 2011 at 10:11 AM, Joost Roeleveld jo...@antarean.org wrote: I'm not entirely convinced this is the case, because it feels like some situations like network devices (nbd, iSCSI) or loopback would require userland tools to bring up once networking is up. Yes, but the kernel-events referencing those devices won't appear untill after the networking is brought up. The scripts that udev starts are run *after* a device-event is created. If the device itself has not been spotted by the kernel (for instance, the networking doesn't exist yet), the event won't be triggered yet. This situation does not require udev to start all these tools when network- devices appear. I hope the following would make my thoughts a bit clearer: 1) kernel boots 2) kernel detects network device and places network-device-event in the queue 3) further things happen and kernel places relevant events in the queue (some other events may also already be in the queue before step 2) 4) udev starts and starts processing the queue 5) For each event, udev creates the corresponding device-entry and places action-entries in a queue 6) system-init-scripts mount all local filesystems 7) udev-actions starts (I made up this name) 8) udev-actions processes all the entries in the action-queue From step 4, udev will keep processing further events it gets, which means that if any action taken by udev-actions causes further devices to become available, udev will create the device-entries and place the action in the action-queue. So, if I read this correctly, there are two classes of processing events. kernel events and scripted actions. Here's rough pseudocode describing what I think you're saying. (Or perhaps what I'm hoping you're saying) while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } else { aevent* pAction = NULL; if(get_waiting_action(pAction)) // Returns true if there's an action waiting. { process_action(pAction); } } } This is, sort-of, what I feel should happen. But currently, in pseudo-code, the following seems to happen: while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } } I would prefer to see 2 seperate processes: --- process 1 --- while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { action_event = process_kernel_event(pkEvent); if (action_event != NULL) { put_action_event(pkEvent); } } } -- --- process 2 --- while(wait_for_event()) { aevent* paEvent = NULL; if(get_waiting_action_event(paEvent)) // returns true if an event was waiting { process_action_event(paEvent); } } --- So, udev processes one event at a time, and always processes kernel events with a higher priority than resulting scripts. This makes a certain amount of sense; an action could launch, e.g. nbdclient, which would cause a new kernel event to get queued. Yes, except that udev ONLY handles kernel-events and doesn't process any actions itself. These are placed on a seperate queue for a seperate process. The problem with this is that you now need to manage synchronization between the kernel event processor and the action processor, which is actually more complicated than keeping them together in a single-threaded, single-process scenario. I don't agree. Why does this need to be synchronized? The kernel puts events in the new-dev-event-queue that process 1 picks up. process 1 creates the /dev-entrie(s) and, if there is an action to be taken, puts the action in the new-action-event-queue. Process 2 will then pick up this action from the new-action-event-queue and will process this. If, as a side-effect, of the action processed by process 2, a new device appears for the kernel, the kernel will simply put a corresponding event in the new-dev-event-queue. At which state does this need to be synchronized? We can simply use a pipe-device as, for instance, used for syslog? -- Joost
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 11:43 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 11:03:09 AM Michael Mol wrote: On Thu, Sep 15, 2011 at 10:48 AM, Joost Roeleveld jo...@antarean.org wrote: The problem with this is that you now need to manage synchronization between the kernel event processor and the action processor, which is actually more complicated than keeping them together in a single-threaded, single-process scenario. I don't agree. Why does this need to be synchronized? The kernel puts events in the new-dev-event-queue that process 1 picks up. process 1 creates the /dev-entrie(s) and, if there is an action to be taken, puts the action in the new-action-event-queue. Process 2 will then pick up this action from the new-action-event-queue and will process this. If, as a side-effect, of the action processed by process 2, a new device appears for the kernel, the kernel will simply put a corresponding event in the new-dev-event-queue. At which state does this need to be synchronized? We can simply use a pipe-device as, for instance, used for syslog? Let's assume that you have a single-reader, single-writer scenario, and that either the protocol includes a 'record end' marker, or that protocol messages are all of a fixed length and are written atomically. With that out of the way, I don't know. Perhaps no additional synchronization is necessary. You still have a problem with race conditions. Virtually all scripts I've read and written assume a single-threaded environment, but you've defined a two-threaded environment. Here's a potential scenario: 1) A kernel hotplug event comes in when a device is inserted. 2) keventler catches the hotplug event, creates the device node, queues an action event. 3) actionhandler catches the action event, launches the script. 4) The action handler script is still running for the plug-in event, when A kernel hotplug event comes in indicating the device was removed. keventler catches the new hotplug event, removes the device node-- 5) --the scheduler comes around and resumes working on the action handler script. Or perhaps the action handler script was on a different CPU core, and never needed to be unscheduled. The device node it was expecting to be there just disappeared out from under it, violating one of its assumptions, and putting it in an inconsistent state. The inconsistency might occur in a place the script author expected it, or the inconsistency might have occurred in an unexpected place. One presumes the script author didn't sign up to deal with concurrency issues in a bash or python script. 6) keventler registers a new action event, for actioning on the disconnect. 7) actionhandler picks up this new action event, runs the script. Kudos to the script author for thinking ahead to have a shutdown script properly clean up an inconsistent system state left by the partially failed setup script. Steps 3-5 are a classic example of a race condition, and stem from two active threads operating concurrently. Entire programming languages are developed with the core intent of reducing the programmer's need to worry about such things. You _must not_ change the operating environment of a script out from under it. In bash scripts, this is an extraordinarily common pattern: if [ -d $SOME_PATH ]; then // do something fi That's common and accepted; nobody expects a shell script to fail in a scenario like that, because it's is a single-threaded language, and that's been true since its inception. When something keventler does causes the result of [ -d $SOME_PATH ] to change after the test had already been done, then the script is only broken because keventler/actionhandler broke it, not because the script was badly written. I've really got to get back to working on stuff I'm being paid for. I'll chat with you guys this weekend. I'm very interested in helping with a reasoned critical perspective, so if this wanders over to a new mailing list or discussion environment, drop me an invite. -- :wq
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 12:16:24 PM Michael Mol wrote: On Thu, Sep 15, 2011 at 11:43 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 11:03:09 AM Michael Mol wrote: On Thu, Sep 15, 2011 at 10:48 AM, Joost Roeleveld jo...@antarean.org wrote: The problem with this is that you now need to manage synchronization between the kernel event processor and the action processor, which is actually more complicated than keeping them together in a single-threaded, single-process scenario. I don't agree. Why does this need to be synchronized? The kernel puts events in the new-dev-event-queue that process 1 picks up. process 1 creates the /dev-entrie(s) and, if there is an action to be taken, puts the action in the new-action-event-queue. Process 2 will then pick up this action from the new-action-event-queue and will process this. If, as a side-effect, of the action processed by process 2, a new device appears for the kernel, the kernel will simply put a corresponding event in the new-dev-event-queue. At which state does this need to be synchronized? We can simply use a pipe-device as, for instance, used for syslog? Let's assume that you have a single-reader, single-writer scenario, and that either the protocol includes a 'record end' marker, or that protocol messages are all of a fixed length and are written atomically. With that out of the way, I don't know. Perhaps no additional synchronization is necessary. You still have a problem with race conditions. Virtually all scripts I've read and written assume a single-threaded environment, but you've defined a two-threaded environment. Here's a potential scenario: 1) A kernel hotplug event comes in when a device is inserted. 2) keventler catches the hotplug event, creates the device node, queues an action event. 3) actionhandler catches the action event, launches the script. 4) The action handler script is still running for the plug-in event, when A kernel hotplug event comes in indicating the device was removed. keventler catches the new hotplug event, removes the device node-- 5) --the scheduler comes around and resumes working on the action handler script. Or perhaps the action handler script was on a different CPU core, and never needed to be unscheduled. The device node it was expecting to be there just disappeared out from under it, violating one of its assumptions, and putting it in an inconsistent state. The inconsistency might occur in a place the script author expected it, or the inconsistency might have occurred in an unexpected place. One presumes the script author didn't sign up to deal with concurrency issues in a bash or python script. 6) keventler registers a new action event, for actioning on the disconnect. 7) actionhandler picks up this new action event, runs the script. Kudos to the script author for thinking ahead to have a shutdown script properly clean up an inconsistent system state left by the partially failed setup script. Steps 3-5 are a classic example of a race condition, and stem from two active threads operating concurrently. Entire programming languages are developed with the core intent of reducing the programmer's need to worry about such things. You _must not_ change the operating environment of a script out from under it. In bash scripts, this is an extraordinarily common pattern: if [ -d $SOME_PATH ]; then // do something fi That's common and accepted; nobody expects a shell script to fail in a scenario like that, because it's is a single-threaded language, and that's been true since its inception. When something keventler does causes the result of [ -d $SOME_PATH ] to change after the test had already been done, then the script is only broken because keventler/actionhandler broke it, not because the script was badly written. Ok, didn't think of this scenario. Thank you for pointing this out to me. Your pseudo-code would be better then, except there should be some way of delaying action-tasks based on wether or not required files (including dependencies) are available. Or a retry-queue that retries an action a few times with certain intervals. This, however, will be more difficult to implement especially with the race-condition you mentioned. I've really got to get back to working on stuff I'm being paid for. I'll chat with you guys this weekend. I'm very interested in helping with a reasoned critical perspective, so if this wanders over to a new mailing list or discussion environment, drop me an invite. We will, but for now, why not keep it on here? :) Was wondering, does udev actually support actions for when a device is removed? Ok, just checked on my server and it does. All nicely pointing to scripts in /etc/ Also, anyone knows how udev handles the scenario where a device is removed while the script is still running? Wouldn't it fail mid-execution
Re: [gentoo-user] udev + /usr
On 2011-09-15 16:57, Canek Peláez Valdés wrote: Of course you can solve it differently, for example splitting udev as Joost proposes. But then is more code to maintain, and the number of possible setups is suddenly the double it was before. It. Is. Not. KISS. https://secure.wikimedia.org/wikipedia/en/wiki/Unix_philosophy I can especially point out: Rule of Modularity Rule of Parsimony Rule of Diversity It's a lot like the CUPS/lprng situation we discussed before. CUPS can do anything that lprng does, so it makes no sense to keep support for lprng. It's the same: with an initramfs you will be able to do anything, so it will make no sense to keep supporting initramfs-less systems. ... one ring to rule them all... Best regards Peter K
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 10:58 AM, Canek Peláez Valdés can...@gmail.com wrote: On Thu, Sep 15, 2011 at 10:48 AM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 10:32:50 AM Michael Mol wrote: On Thu, Sep 15, 2011 at 10:11 AM, Joost Roeleveld jo...@antarean.org wrote: I'm not entirely convinced this is the case, because it feels like some situations like network devices (nbd, iSCSI) or loopback would require userland tools to bring up once networking is up. Yes, but the kernel-events referencing those devices won't appear untill after the networking is brought up. The scripts that udev starts are run *after* a device-event is created. If the device itself has not been spotted by the kernel (for instance, the networking doesn't exist yet), the event won't be triggered yet. This situation does not require udev to start all these tools when network- devices appear. I hope the following would make my thoughts a bit clearer: 1) kernel boots 2) kernel detects network device and places network-device-event in the queue 3) further things happen and kernel places relevant events in the queue (some other events may also already be in the queue before step 2) 4) udev starts and starts processing the queue 5) For each event, udev creates the corresponding device-entry and places action-entries in a queue 6) system-init-scripts mount all local filesystems 7) udev-actions starts (I made up this name) 8) udev-actions processes all the entries in the action-queue From step 4, udev will keep processing further events it gets, which means that if any action taken by udev-actions causes further devices to become available, udev will create the device-entries and place the action in the action-queue. So, if I read this correctly, there are two classes of processing events. kernel events and scripted actions. Here's rough pseudocode describing what I think you're saying. (Or perhaps what I'm hoping you're saying) while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } else { aevent* pAction = NULL; if(get_waiting_action(pAction)) // Returns true if there's an action waiting. { process_action(pAction); } } } This is, sort-of, what I feel should happen. But currently, in pseudo-code, the following seems to happen: while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { process_kernel_event(pkEvent); } } I would prefer to see 2 seperate processes: --- process 1 --- while(wait_for_event()) { kevent* pkEvent = NULL; if(get_waiting_kernel_event(pkEvent)) // returns true if an event was waiting { action_event = process_kernel_event(pkEvent); if (action_event != NULL) { put_action_event(pkEvent); } } } -- --- process 2 --- while(wait_for_event()) { aevent* paEvent = NULL; if(get_waiting_action_event(paEvent)) // returns true if an event was waiting { process_action_event(paEvent); } } --- So, udev processes one event at a time, and always processes kernel events with a higher priority than resulting scripts. This makes a certain amount of sense; an action could launch, e.g. nbdclient, which would cause a new kernel event to get queued. Yes, except that udev ONLY handles kernel-events and doesn't process any actions itself. These are placed on a seperate queue for a seperate process. If anyone has a setup where /usr can not be mounted easily, it won't work currently either and a init* would be necessary anyway. (Am thinking of NFS, CIFS, iSCSI, NBD, special raid-drivers, hosting /usr or other required filesystems) I don't see how this is relevant to actually fixing udev. (See below) But anyone with a currently working environment should be able to expect a currently working environment. If it fails to boot with only updating versions, it's a regression. And one of the worst kinds of all. I agree that the direction udev is going is a regression. There aren't very many people active in this thread who would disagree with that point. So let's just drop it and focus on what a good, general solution would look like. (And anyone who says something amounting to 'status quo' for udev needs another explanation of why the udev developer sees the current scenario as broken. And he's right; the current scenario is architecturally unsound. I just think he's wrong about the solution.) I agree he is wrong about the solution as well. I have actually just posted my idea to the gentoo-dev list to see how the developers actually feel about possible splitting udev into 2 parts. I'm not a good enough programmer to do this myself. But if anyone who can code and who also agrees
Re: [gentoo-user] udev + /usr
On Thursday 15 Sep 2011 16:13:26 Michael Schreckenbauer wrote: On Thursday, 15. September 2011 16:48:45 Joost Roeleveld wrote: I agree he is wrong about the solution as well. I have actually just posted my idea to the gentoo-dev list to see how the developers actually feel about possible splitting udev into 2 parts. I've read it there. Thanks for doing this. Thanks Joost for posting in the dev list and for explaining your proposed approach there. I've just read your thread in the dev list: http://thread.gmane.org/gmane.linux.gentoo.devel/72969 Zac's response helped me understand better what the Gentoo devs have been suggesting here: http://archives.gentoo.org/gentoo-dev/msg_020fa80d72c84c5b587b90d8001264ef.xml and it does make sense - their version of initramfs-'lite'. From what I understand: 1. The minimal initramfs will only need to be built once (and rarely rebuilt thereafter). This removes one of my fears and it was a main objection for me - I would hate to have to rebuild initramfs every time I roll a new kernel, or libs and what not of fs happen to be udpated, etc. 2. If initramfs fails, then Zac says it will drop you into a minimal shell, so we should still be able to recover/troubleshoot/reboot from there. The only drawback is the 2 minutes it will take a user the first time this change is introduced to build the initramfs and change the kernel line in grub.conf. I am warming up to this proposal because it seems to me that it will end up being less painful that I originally thought. However, I still see it as a workaround to a more elegant solution, which as Joost and others suggest would involve separating udev's probing for devices with the rules running of scripts for them. -- Regards, Mick signature.asc Description: This is a digitally signed message part.
Re: [gentoo-user] udev + /usr
On Thu, 15 Sep 2011 17:37:53 +0200, Joost Roeleveld wrote: There are 3 solutions for this: 1) The easy way out: the whole user-space must be available before udev 2) udev actually includes correct error-handling for this and retries 3) udev splits this into 2 seperate tools 4) udev remains one tool but with two modes of operation. when in early-boot mode, it can only run a restricted set of rules - such as those using LVM, RAID, cryptsetup, network device naming. When switched to full mode later in the boot process, it loads the rest of the rules. Which rules it runs it early-boot mode could be decided by adding a flag to the rule to mark it acceptable for early boot usage. That way, existing rules would automatically be deferred unless package maintainers update the rules for those they know will work early in the boot process. It saves writing/learning/debugging a new tool and gives maximum compatibility with existing configurations. This is pretty similar in concept to your suggestion 3, but a different approach to its implementation. -- Neil Bothwick No, you *can't* call 999 now. I'm downloading my mail. signature.asc Description: PGP signature
IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On Wed, 14 Sep 2011 18:35:37 -0400, Michael Mol wrote about Re: Really OT now (Re: [gentoo-user] udev + /usr): It occurred to me that having a decent C and C++ editing environment might ease some of my of the spoilage I've experienced in Visual Studio for C++. I'll be checking it out. It'll mean learning emacs, though... If you like Visual Studio, try Geany or KDevelop. The former is a Gtk+ program, so runs natively under GNOME, Xfce and LXDE, while the latter is a Qt suite that runs natively under KDE. Both are *way* slicker than Emacs or vim, but do require a graphical desktop. [Both vim and Emacs can run in a text console.] You might also start reading comp.os.linux.development.apps on Usenet, if you don't already do so. -- Regards, Dave [RLU #314465] *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* dwn...@ntlworld.com (David W Noon) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* signature.asc Description: PGP signature
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 1:59 PM, Mick michaelkintz...@gmail.com wrote: On Thursday 15 Sep 2011 16:13:26 Michael Schreckenbauer wrote: On Thursday, 15. September 2011 16:48:45 Joost Roeleveld wrote: I agree he is wrong about the solution as well. I have actually just posted my idea to the gentoo-dev list to see how the developers actually feel about possible splitting udev into 2 parts. I've read it there. Thanks for doing this. Thanks Joost for posting in the dev list and for explaining your proposed approach there. I've just read your thread in the dev list: http://thread.gmane.org/gmane.linux.gentoo.devel/72969 Zac's response helped me understand better what the Gentoo devs have been suggesting here: http://archives.gentoo.org/gentoo-dev/msg_020fa80d72c84c5b587b90d8001264ef.xml and it does make sense - their version of initramfs-'lite'. From what I understand: 1. The minimal initramfs will only need to be built once (and rarely rebuilt thereafter). This removes one of my fears and it was a main objection for me - I would hate to have to rebuild initramfs every time I roll a new kernel, or libs and what not of fs happen to be udpated, etc. In my experience, it takes more time to build the kernel than it takes to rebuild the initramfs. And if you choose to use dracut, the process is automatic (you always call dracut with the same options, unless you suddenly add LVM or something similar). I didn't use an initramfs for my first years using Gentoo. Since I started to use media-gfx/splashutils a couple of years ago, every time I upgraded my kernel, I splash_geninitramfs'd my initramfs. Now I do the same, but with plymouth and systemd using dracut. It's just part of the process of getting a new kernel. 2. If initramfs fails, then Zac says it will drop you into a minimal shell, so we should still be able to recover/troubleshoot/reboot from there. From the last response in the -dev list (from Rich Freeman): “It should be noted that the alternative is to use a more full-featured initramfs like dracut, which will also be updated to support mounting /usr (it already parses /etc/fstab to remount root anyway). ... Note that dracut does drop you to a shell if it fails (this is configurable), but by default this shell is dash, not bash. No doubt it would work fine either way, but bash is likely to be a little slower. I don't think RAM use is likely to be a problem - it should be completely de-allocated before init runs.” The only drawback is the 2 minutes it will take a user the first time this change is introduced to build the initramfs and change the kernel line in grub.conf. I am warming up to this proposal because it seems to me that it will end up being less painful that I originally thought. Reading the homepages of the projects involved always helps to better understand the possible outcome of using the new technologies. Perhaps you should take a look at dracut: Maybe a complete initramfs solution will convince you, especially if an initramfs will be needed anyway. However, I still see it as a workaround to a more elegant solution, which as Joost and others suggest would involve separating udev's probing for devices with the rules running of scripts for them. Maybe that's the more elegant solution. Certainly it will take a lot more effort, in the sense that somebody has to implement, test and debug said solution. I sincerely wish them good luck. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On Thu, Sep 15, 2011 at 2:58 PM, David W Noon dwn...@ntlworld.com wrote: On Wed, 14 Sep 2011 18:35:37 -0400, Michael Mol wrote about Re: Really OT now (Re: [gentoo-user] udev + /usr): It occurred to me that having a decent C and C++ editing environment might ease some of my of the spoilage I've experienced in Visual Studio for C++. I'll be checking it out. It'll mean learning emacs, though... If you like Visual Studio, try Geany or KDevelop. The former is a Gtk+ program, so runs natively under GNOME, Xfce and LXDE, while the latter is a Qt suite that runs natively under KDE. Both are *way* slicker than Emacs or vim, but do require a graphical desktop. [Both vim and Emacs can run in a text console.] I'm not touching KDE again for a while. I got nailed pretty bad with a NVidia/Konsole/KWin, and I really wasn't using much of KDE. That said, I might poke KDevelop again; I haven't poked it in years. Geany is new since I last dug around. I do like text environments, though. You might also start reading comp.os.linux.development.apps on Usenet, if you don't already do so. Keeping up with this list is hard enough! But, thanks. :) -- :wq
Re: [gentoo-user] udev + /usr
On Thu, 15 Sep 2011 15:04:37 -0400, Canek Peláez Valdés wrote: 1. The minimal initramfs will only need to be built once (and rarely rebuilt thereafter). This removes one of my fears and it was a main objection for me - I would hate to have to rebuild initramfs every time I roll a new kernel, or libs and what not of fs happen to be udpated, etc. In my experience, it takes more time to build the kernel than it takes to rebuild the initramfs. And if you choose to use dracut, the process is automatic (you always call dracut with the same options, unless you suddenly add LVM or something similar). The concern is not the time (Gentoo users are used to waiting for things to install) it's the opportunity for failure. -- Neil Bothwick IBM: Itty Bitty Mentality signature.asc Description: PGP signature
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
2011/9/15 Michael Mol mike...@gmail.com On Thu, Sep 15, 2011 at 2:58 PM, David W Noon dwn...@ntlworld.com wrote: On Wed, 14 Sep 2011 18:35:37 -0400, Michael Mol wrote about Re: Really OT now (Re: [gentoo-user] udev + /usr): It occurred to me that having a decent C and C++ editing environment might ease some of my of the spoilage I've experienced in Visual Studio for C++. I'll be checking it out. It'll mean learning emacs, though... If you like Visual Studio, try Geany or KDevelop. The former is a Gtk+ program, so runs natively under GNOME, Xfce and LXDE, while the latter is a Qt suite that runs natively under KDE. Both are *way* slicker than Emacs or vim, but do require a graphical desktop. [Both vim and Emacs can run in a text console.] I'm not touching KDE again for a while. I got nailed pretty bad with a NVidia/Konsole/KWin, and I really wasn't using much of KDE. That said, I might poke KDevelop again; I haven't poked it in years. Geany is new since I last dug around. I do like text environments, though. You might also start reading comp.os.linux.development.apps on Usenet, if you don't already do so. Keeping up with this list is hard enough! But, thanks. :) -- :wq I do not know the state of Geanny since I last checked (couple of years ago), but the highlight capabilites of KDevelop got my eye. It highlights local variables in different colors in the same context, so something like int foo(float bar, float baz) { } will have bar and baz in different colors. Also, support for CMake in KDevelop got really great and useful. Plus, it supports debugging inside the editor. Its awesome. -- Leonardo
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On Thu, Sep 15, 2011 at 3:47 PM, Leonardo Guilherme leonardo.guilhe...@gmail.com wrote: I do not know the state of Geanny since I last checked (couple of years ago), but the highlight capabilites of KDevelop got my eye. It highlights local variables in different colors in the same context, so something like int foo(float bar, float baz) { } will have bar and baz in different colors. Also, support for CMake in KDevelop got really great and useful. Plus, it supports debugging inside the editor. Its awesome. If you want something in a gui, what about Code::Blocks? It's also multi-platform -- Chris Brennan A: Yes. Q: Are you sure? A: Because it reverses the logical flow of conversation. Q: Why is top posting frowned upon? http://xkcd.com/84/ | http://xkcd.com/149/ | http://xkcd.com/549/ GPG: D5B20C0C (6741 8EE4 6C7D 11FB 8DA8 9E4A EECD 9A84 D5B2 0C0C)
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On Thu, Sep 15, 2011 at 3:59 PM, Chris Brennan xa...@xaerolimit.net wrote: On Thu, Sep 15, 2011 at 3:47 PM, Leonardo Guilherme leonardo.guilhe...@gmail.com wrote: I do not know the state of Geanny since I last checked (couple of years ago), but the highlight capabilites of KDevelop got my eye. It highlights local variables in different colors in the same context, so something like int foo(float bar, float baz) { } will have bar and baz in different colors. Also, support for CMake in KDevelop got really great and useful. Plus, it supports debugging inside the editor. Its awesome. If you want something in a gui, what about Code::Blocks? It's also multi-platform Ok, what are the atom names for all these? I'll start them building, and they should be done before I get home. (Not so likely if I have to build all of KDE, but I've got some Qt apps installed, so...) -- :wq
Re: [gentoo-user] udev + /usr
Am 15.09.2011 16:57, schrieb Canek Peláez Valdés: with an initramfs you will be able to do anything, so it will make no sense to keep supporting initramfs-less systems. With Microsoft Windows you will be able to do anything, so it will make no sense to keep supporting Microsoft Windows-less systems. With Gnome you will be able to do anything, so it will make no sense to keep supporting Gnome-less systems. With Emacs you will be able to do anything, so it will make no sense to keep supporting Emacs-less systems. Greetings Sebastian Beßler signature.asc Description: OpenPGP digital signature
Re: [gentoo-user] udev + /usr
On Thu, 15 Sep 2011 09:47:34 -0400 Michael Mol mike...@gmail.com wrote: The main purpose of udev is to populate the /dev-tree. The running of scripts based on /dev-tree events should be in a seperate tool that starts later in the boot-process. I'm not *entirely* convinced this is the case, because it feels like some situations like network devices (nbd, iSCSI) or loopback would require userland tools to bring up once networking is up. I'd say you are both right. Joost gave the correct (in my view) overriding principle. You gave what to do when that just doesn't cut it. Real-world systems involve exceptions for unusual (but valid) conditions. The best solution is to deal with the exception within a narrow focus, instead of just allowing everything like udev seems determined to go to. -- Alan McKinnnon alan.mckin...@gmail.com
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 4:05 PM, Sebastian Beßler sebast...@darkmetatron.de wrote: Am 15.09.2011 16:57, schrieb Canek Peláez Valdés: with an initramfs you will be able to do anything, so it will make no sense to keep supporting initramfs-less systems. With Microsoft Windows you will be able to do anything, so it will make no sense to keep supporting Microsoft Windows-less systems. Irrelevant: see the name on the list? It's called Gentoo Linux. I know you are trying to be witty, but only shows you are comparing apples and oranges. With Gnome you will be able to do anything, so it will make no sense to keep supporting Gnome-less systems. With Emacs you will be able to do anything, so it will make no sense to keep supporting Emacs-less systems. Last time I checked, neither GNOME nor Emacs demanded that Gentoo developers or users had to write a fork/replacement for a core component of the system. GNOME and Emacs just need ebuilds and adapting their configuration to Gentoo-isms. Testing and bug reporting, as usual. The only code needed is some small patches for both and around 200 lines of emacslisp for site-gentoo.el. Again, not witty, just not very informed. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Wednesday, September 14, 2011 01:36:56 PM Dale wrote: Canek Peláez Valdés wrote: But that's the thing: we (you and me) don't see the situation the same way. To me, the proposed changes are for the better. You are one of very few that feel this way. You are probably correct that he's one of the relatively few people (along with the udev developer, and those few people for whom it will fix their problems) who think these changes are a real improvement. I would estimate that the vast, vast, vast majority of users are those such as myslelf, who have no opinion whatsoever, and either will not be affected at all by these changes (because they don't separate / and /usr), or will simply apply the proposed initramfs solution and move on. Then there are those relatively few people, such as the handful making up the rest of this thread, who think that these changes are a horrible idea and will have a severe deterimental affect on their systems. Not that the relative size of the various sides in this debate is really the issue, but despite the tone of this and the other thread, I don't think there's really a huge, overwhelming outcry against these changes. --Mike
Re: [gentoo-user] udev + /usr
Am 15.09.2011 22:27, schrieb Canek Peláez Valdés: On Thu, Sep 15, 2011 at 4:05 PM, Sebastian Beßler sebast...@darkmetatron.de wrote: Am 15.09.2011 16:57, schrieb Canek Peláez Valdés: with an initramfs you will be able to do anything, so it will make no sense to keep supporting initramfs-less systems. With Microsoft Windows you will be able to do anything, so it will make no sense to keep supporting Microsoft Windows-less systems. Irrelevant: see the name on the list? It's called Gentoo Linux. I know you are trying to be witty, but only shows you are comparing apples and oranges. No, because first it was sarcasm and second it shows that your argument is invalid. For near to every X there is some Y that can do what X can do, but there are still many good and valid reasons to have X. So it will make sense to keep supporting Y-less systems. Greetings Sebastian Beßler signature.asc Description: OpenPGP digital signature
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 4:42 PM, Mike Edenfield kut...@kutulu.org wrote: On Wednesday, September 14, 2011 01:36:56 PM Dale wrote: Canek Peláez Valdés wrote: But that's the thing: we (you and me) don't see the situation the same way. To me, the proposed changes are for the better. You are one of very few that feel this way. You are probably correct that he's one of the relatively few people (along with the udev developer, and those few people for whom it will fix their problems) who think these changes are a real improvement. I would estimate that the vast, vast, vast majority of users are those such as myslelf, who have no opinion whatsoever, and either will not be affected at all by these changes (because they don't separate / and /usr), or will simply apply the proposed initramfs solution and move on. Then there are those relatively few people, such as the handful making up the rest of this thread, who think that these changes are a horrible idea and will have a severe deterimental affect on their systems. Not that the relative size of the various sides in this debate is really the issue, but despite the tone of this and the other thread, I don't think there's really a huge, overwhelming outcry against these changes. My complaints are chiefly philosophical; it's not a correct solution, because the problems it purports to fix will just re-emerge down the road. I'm all in favor of well-architected systems and good, sound, informed discussion. I've only been involved in this thread as much as I have been because there's been a dearth of such in it. -- :wq
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 4:53 PM, Sebastian Beßler sebast...@darkmetatron.de wrote: Am 15.09.2011 22:27, schrieb Canek Peláez Valdés: On Thu, Sep 15, 2011 at 4:05 PM, Sebastian Beßler sebast...@darkmetatron.de wrote: Am 15.09.2011 16:57, schrieb Canek Peláez Valdés: with an initramfs you will be able to do anything, so it will make no sense to keep supporting initramfs-less systems. With Microsoft Windows you will be able to do anything, so it will make no sense to keep supporting Microsoft Windows-less systems. Irrelevant: see the name on the list? It's called Gentoo Linux. I know you are trying to be witty, but only shows you are comparing apples and oranges. No, because first it was sarcasm and second it shows that your argument is invalid. For near to every X there is some Y that can do what X can do, but there are still many good and valid reasons to have X. So it will make sense to keep supporting Y-less systems. And you conveniently skipped my answer to your last two examples. No problem, here it goes again: Last time I checked, neither GNOME nor Emacs demanded that Gentoo developers or users had to write a fork/replacement for a core component of the system. GNOME and Emacs just need ebuilds and adapting their configuration to Gentoo-isms. Testing and bug reporting, as usual. The only code needed is some small patches for both and around 200 lines of emacslisp for site-gentoo.el. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 04:42:23 PM Mike Edenfield wrote: On Wednesday, September 14, 2011 01:36:56 PM Dale wrote: Canek Peláez Valdés wrote: But that's the thing: we (you and me) don't see the situation the same way. To me, the proposed changes are for the better. You are one of very few that feel this way. You are probably correct that he's one of the relatively few people (along with the udev developer, and those few people for whom it will fix their problems) who think these changes are a real improvement. If for those people using an initramfs solves their problems, then I'm not against it. And I don't think many others are either. But why are people forced to use an initramfs where it is not needed? I would estimate that the vast, vast, vast majority of users are those such as myslelf, who have no opinion whatsoever, and either will not be affected at all by these changes (because they don't separate / and /usr), or will simply apply the proposed initramfs solution and move on. You also don't have /var (or /var/log) seperated? Or any of the other parts of the filesystem that might be required by udev-rules? Then there are those relatively few people, such as the handful making up the rest of this thread, who think that these changes are a horrible idea and will have a severe deterimental affect on their systems. Any added complexity is another thing that can go wrong. In the thread on gentoo-dev, I am trying to figure out 3 things: 1) How are the Gentoo Developers planning on adding this new change? 2) What are the options for not having to have an initramfs if the udev-rules used don't actually require /usr and co to be mounted. 3) Get their input in a possible alternative (like fixing the, what I see, design-flaws of udev) On 1, I am actually quite pleased. The actual information I could find previously sounded a lot worse. I've just got a few more questions open based on their answers. Once I have the full picture, I'll post it back here. For 2, I've only just started. I'll also post back here on what my findings are. For 3, I've got some feedback on how udev currently handles things. These actually have given me a few other ways in which to try to solve the issue. I'll need to try to find out how udev actually handles the retry queue currently. Not that the relative size of the various sides in this debate is really the issue, but despite the tone of this and the other thread, I don't think there's really a huge, overwhelming outcry against these changes. I wonder how many are actually aware of these changes. But yes, I think plenty of people will not care and if the Gentoo-devs handle this correctly (which, so far, I think they are) those people won't even notice. But, there will always be some people who get bitten by this and my reasons for going with parts 1 and 2 is to see how to keep this group as small as possible. -- Joost
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 01:43:17 PM Canek Peláez Valdés wrote: On Thu, Sep 15, 2011 at 10:58 AM, Canek Peláez Valdés can...@gmail.com wrote: (This mail is to keep the guys un -user in the loop about -devel). OK, so Joost posted his proposal to -dev: snipped brief discussion on gentoo-dev The thread on gentoo-dev is not yet finished and I intend to try to get some more information. As I mentioned in my other email. I would also like to point you guys to this article in LWN.net: http://lwn.net/SubscriberLink/458789/3ae00c9827889929/ The article (the second part about systemd) closes with: “The overall picture was of a project that is on a roll, gaining features and users at a fast rate. The Systemd view of the world has not yet won over everybody, but the opposition seems to be fading. Systemd looks like the init system of the future (and more) for a lot of high-profile distributions.” The article was written by Jonathan Corbet, editor of LWN and (I think most people would agree with me) someone who has always tried to be objective and impartial. I'll read this later (probably tomorrow) and get back to you on this if necessary. So, if Joost and others are willing and able to implement the necessary bits to avoid the need for an initramfs, I salute them and wish them luck. But the most probable outcome is this: * The fork/replacement will take years of man-effort: design, implementation, debug, documentation, mainteinance. * At the same time, the dev-approved solution of a minimal initramfs or a dracut/genkernel generated one will be available and working. * If the forking/replacement team manages to create a workable fork/replacement, it will have to sell it to the Gentoo devs, and if the initramfs solution is working properly the most rational answer will be no, thank you. The time needed for this is not certain as we are planning on basing it on the current udev and see what is possible. If the Gentoo-devs come up with a fool-proof solution, which is one of the possible outcomes I am trying to get to in the gentoo-dev thread, I will be happy there as well. As for the udev-fork to ever becoming mainstream, I can't say. It might not even work the way we are hoping. Only time will tell. I'm sorry if my analysis bother some people, but it's basically what I've been saying from the beginning. I'm glad Joost asked the developers for their input. I think it clears the air about a lot of things. I have no problem with your analysis and yes, the initial response from Zac was what you've been saying. I am hoping to get more information on this and I will have no problem if you keep reporting it back here. One of the reasons I asked it on Gentoo-dev is simply because I agree with some people here that this thread was starting to go in circles and no new information was being added. -- Joost
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 5:16 PM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 04:42:23 PM Mike Edenfield wrote: On Wednesday, September 14, 2011 01:36:56 PM Dale wrote: Canek Peláez Valdés wrote: But that's the thing: we (you and me) don't see the situation the same way. To me, the proposed changes are for the better. You are one of very few that feel this way. You are probably correct that he's one of the relatively few people (along with the udev developer, and those few people for whom it will fix their problems) who think these changes are a real improvement. If for those people using an initramfs solves their problems, then I'm not against it. And I don't think many others are either. But why are people forced to use an initramfs where it is not needed? bad_jokeWell, technically it's not forced... if you put /usr in / then you don't need it.../bad_joke The thing is that the initramfs solution solves the general problem (as the devs keep trying to explain in -dev). You may not *want* to use an initramfs, but it *will* solve the problem. The devs *could* make up an alternative for an initramfs for those people who fell they don't need one, but then they (not us) need to maintain it, test it, document it, etc. It is not worth it if the initramfs works for everyone... even for those who don't want it. I would estimate that the vast, vast, vast majority of users are those such as myslelf, who have no opinion whatsoever, and either will not be affected at all by these changes (because they don't separate / and /usr), or will simply apply the proposed initramfs solution and move on. You also don't have /var (or /var/log) seperated? Or any of the other parts of the filesystem that might be required by udev-rules? Many laptop users don't split /, among other things because the free space gets fragmented. Also, some people keep Windows (and their recovery partitions), and with a swap they got already used the four extended partition, and some people don't like logical partitions. And it's really the same as not wanting an initramfs. Then there are those relatively few people, such as the handful making up the rest of this thread, who think that these changes are a horrible idea and will have a severe deterimental affect on their systems. Any added complexity is another thing that can go wrong. Take that to the limit and then we will still be using only the terminal (no X). In the thread on gentoo-dev, I am trying to figure out 3 things: 1) How are the Gentoo Developers planning on adding this new change? 2) What are the options for not having to have an initramfs if the udev-rules used don't actually require /usr and co to be mounted. 3) Get their input in a possible alternative (like fixing the, what I see, design-flaws of udev) On 1, I am actually quite pleased. The actual information I could find previously sounded a lot worse. I've just got a few more questions open based on their answers. Once I have the full picture, I'll post it back here. For 2, I've only just started. I'll also post back here on what my findings are. For 3, I've got some feedback on how udev currently handles things. These actually have given me a few other ways in which to try to solve the issue. I'll need to try to find out how udev actually handles the retry queue currently. I also think the discussion in -dev is really good, and I think is cleaning the air abot many issues. Not that the relative size of the various sides in this debate is really the issue, but despite the tone of this and the other thread, I don't think there's really a huge, overwhelming outcry against these changes. I wonder how many are actually aware of these changes. But yes, I think plenty of people will not care and if the Gentoo-devs handle this correctly (which, so far, I think they are) those people won't even notice. Concur. But, there will always be some people who get bitten by this and my reasons for going with parts 1 and 2 is to see how to keep this group as small as possible. I think most of the Gentoo users, if able to survive the installation, are able to deal with almost anything. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 03:04:37 PM Canek Peláez Valdés wrote: On Thu, Sep 15, 2011 at 1:59 PM, Mick michaelkintz...@gmail.com wrote: On Thursday 15 Sep 2011 16:13:26 Michael Schreckenbauer wrote: 1. The minimal initramfs will only need to be built once (and rarely rebuilt thereafter). This removes one of my fears and it was a main objection for me - I would hate to have to rebuild initramfs every time I roll a new kernel, or libs and what not of fs happen to be udpated, etc. In my experience, it takes more time to build the kernel than it takes to rebuild the initramfs. And if you choose to use dracut, the process is automatic (you always call dracut with the same options, unless you suddenly add LVM or something similar). Canek, as you've been using dracut already extensively, is it possible to set default options/modules/whatever to get to the situation where simply running dracut without any extra options will always recreate the correct initramfs? I didn't use an initramfs for my first years using Gentoo. Since I started to use media-gfx/splashutils a couple of years ago, every time I upgraded my kernel, I splash_geninitramfs'd my initramfs. Now I do the same, but with plymouth and systemd using dracut. It's just part of the process of getting a new kernel. And, if the initramfs has other tools in it, after every emerge of these tools. This is where I see a possible cause for failure as then the situation arises where the initramfs will still start correctly, but because it's using older tools it's possible that older versions and new versions start running simultaneously and get mixed up in a way that is not immediately apparent. -- Joost
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 07:15:27 PM Neil Bothwick wrote: On Thu, 15 Sep 2011 17:37:53 +0200, Joost Roeleveld wrote: There are 3 solutions for this: 1) The easy way out: the whole user-space must be available before udev 2) udev actually includes correct error-handling for this and retries 3) udev splits this into 2 seperate tools 4) udev remains one tool but with two modes of operation. when in early-boot mode, it can only run a restricted set of rules - such as those using LVM, RAID, cryptsetup, network device naming. When switched to full mode later in the boot process, it loads the rest of the rules. Yes, I've been thinking about this option as well, after some comments on the gentoo-dev list. Which rules it runs it early-boot mode could be decided by adding a flag to the rule to mark it acceptable for early boot usage. That way, existing rules would automatically be deferred unless package maintainers update the rules for those they know will work early in the boot process. It saves writing/learning/debugging a new tool and gives maximum compatibility with existing configurations. This is pretty similar in concept to your suggestion 3, but a different approach to its implementation. And might be the simpler option. Currently, I'm planning on checking if the retry-queue can be abused for this purpose. -- Joost
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 5:25 PM, Joost Roeleveld jo...@antarean.org wrote: [ Hugemongous snip ] If the Gentoo-devs come up with a fool-proof solution No such thing in computing, I think. But I also think is really laudable that you want to ensure no many users will get bitten by this change. And I also tend to believe that Gentoo users are more than able to deal with this and almost any other thing. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 07:37:17 PM pk wrote: On 2011-09-15 16:57, Canek Peláez Valdés wrote: Of course you can solve it differently, for example splitting udev as Joost proposes. But then is more code to maintain, and the number of possible setups is suddenly the double it was before. It. Is. Not. KISS. https://secure.wikimedia.org/wikipedia/en/wiki/Unix_philosophy I can especially point out: Rule of Modularity Rule of Parsimony Rule of Diversity I like those :) It's a lot like the CUPS/lprng situation we discussed before. CUPS can do anything that lprng does, so it makes no sense to keep support for lprng. It's the same: with an initramfs you will be able to do anything, so it will make no sense to keep supporting initramfs-less systems. ... one ring to rule them all... ...My Precious... :) -- Joost
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On Thu, Sep 15, 2011 at 9:16 PM, Michael Mol mike...@gmail.com wrote: I'm not touching KDE again for a while. I got nailed pretty bad with a NVidia/Konsole/KWin, and I really wasn't using much of KDE. That said, I might poke KDevelop again; I haven't poked it in years. Geany is new since I last dug around. I do like text environments, though. Try eclipse with cdk (C/C++ developr kit). Last time I've used it 3 years ago, but it was really good... -- Alexander Tanyukevich atanyukev...@gmail.com
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On Thu, Sep 15, 2011 at 11:37 PM, Alexander Tanyukevich atanyukev...@gmail.com wrote: Try eclipse with cdk (C/C++ developr kit). Last time I've used it 3 years ago, but it was really good... Sorry it's called CDT. -- Alexander Tanyukevich atanyukev...@gmail.com
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 5:30 PM, Joost Roeleveld jo...@antarean.org wrote: On Thursday, September 15, 2011 03:04:37 PM Canek Peláez Valdés wrote: On Thu, Sep 15, 2011 at 1:59 PM, Mick michaelkintz...@gmail.com wrote: On Thursday 15 Sep 2011 16:13:26 Michael Schreckenbauer wrote: 1. The minimal initramfs will only need to be built once (and rarely rebuilt thereafter). This removes one of my fears and it was a main objection for me - I would hate to have to rebuild initramfs every time I roll a new kernel, or libs and what not of fs happen to be udpated, etc. In my experience, it takes more time to build the kernel than it takes to rebuild the initramfs. And if you choose to use dracut, the process is automatic (you always call dracut with the same options, unless you suddenly add LVM or something similar). Canek, as you've been using dracut already extensively, is it possible to set default options/modules/whatever to get to the situation where simply running dracut without any extra options will always recreate the correct initramfs? The modules get defined by the DRACUT_MODULES variable, which is use-expanded. The options are configured in /etc/dracut.conf, but I believe there are some command line options not configurable. I didn't use an initramfs for my first years using Gentoo. Since I started to use media-gfx/splashutils a couple of years ago, every time I upgraded my kernel, I splash_geninitramfs'd my initramfs. Now I do the same, but with plymouth and systemd using dracut. It's just part of the process of getting a new kernel. And, if the initramfs has other tools in it, after every emerge of these tools. This is where I see a possible cause for failure as then the situation arises where the initramfs will still start correctly, but because it's using older tools it's possible that older versions and new versions start running simultaneously and get mixed up in a way that is not immediately apparent. I see it the other way around: you ensure that your initramfs is in sync with your system. In other words: the initramfs contains a subset of your normal installation. That is why it makes redundant /lib, /sbin and /bin. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On Thursday, September 15, 2011 04:05:29 PM Michael Mol wrote: On Thu, Sep 15, 2011 at 3:59 PM, Chris Brennan xa...@xaerolimit.net wrote: On Thu, Sep 15, 2011 at 3:47 PM, Leonardo Guilherme leonardo.guilhe...@gmail.com wrote: I do not know the state of Geanny since I last checked (couple of years ago), but the highlight capabilites of KDevelop got my eye. It highlights local variables in different colors in the same context, so something like int foo(float bar, float baz) { } will have bar and baz in different colors. Also, support for CMake in KDevelop got really great and useful. Plus, it supports debugging inside the editor. Its awesome. If you want something in a gui, what about Code::Blocks? It's also multi-platform Ok, what are the atom names for all these? I'll start them building, and they should be done before I get home. (Not so likely if I have to build all of KDE, but I've got some Qt apps installed, so...) As Nikos mentioned, I would try qtcreator (dev-util/qt-creator) before kdevelop (dev-util/kdevelop). -- Joost
Re: [gentoo-user] udev + /usr
On Thursday, September 15, 2011 11:16:03 PM Joost Roeleveld wrote: On Thursday, September 15, 2011 04:42:23 PM Mike Edenfield wrote: I would estimate that the vast, vast, vast majority of users are those such as myslelf, who have no opinion whatsoever, and either will not be affected at all by these changes (because they don't separate / and /usr), or will simply apply the proposed initramfs solution and move on. You also don't have /var (or /var/log) seperated? Or any of the other parts of the filesystem that might be required by udev-rules? Speaking solely for myself, no. Years ago I routinely split /, /usr, and /var when setting up my FreeBSD systems, and found that it only ever caused problems when I could not get /usr or /var mounted when I needed them. At least since I switched to Gentoo, I've simply set up one partition with everything on it, and kept regular backups in case of failure. I clearly recognize that there are valid reasons to split your partitions, I have just never found any of them applicable to my situations. --Mike
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 3:05 PM, Mike Edenfield kut...@kutulu.org wrote: On Thursday, September 15, 2011 11:16:03 PM Joost Roeleveld wrote: On Thursday, September 15, 2011 04:42:23 PM Mike Edenfield wrote: I would estimate that the vast, vast, vast majority of users are those such as myslelf, who have no opinion whatsoever, and either will not be affected at all by these changes (because they don't separate / and /usr), or will simply apply the proposed initramfs solution and move on. You also don't have /var (or /var/log) seperated? Or any of the other parts of the filesystem that might be required by udev-rules? Speaking solely for myself, no. Years ago I routinely split /, /usr, and /var when setting up my FreeBSD systems, and found that it only ever caused problems when I could not get /usr or /var mounted when I needed them. At least since I switched to Gentoo, I've simply set up one partition with everything on it, and kept regular backups in case of failure. I clearly recognize that there are valid reasons to split your partitions, I have just never found any of them applicable to my situations. --Mike My first response to this 300+ post thread, and only to say that in something like 15 years of playing with using Linux I've never split /usr no longer split /var. I also don't use LVM or anything fancy like that. I just keep backups and use them if there's a failure. Life is pretty simple. My suspicion is that by far most casual desktop users of Linux, Gentoo based or not, run pretty much this way and will be unaffected by this whole change and as such have no reason to post. As for the initrd stuff, I'd welcome a way to have one built automatically as part of the kernel build/install. My experience with software RAID has been such that I often cannot get a new RAID to boot without it so having one that's up to date and 'just there' (@tm) would be fairly cool from my POV. My only last post on this thread. Cheers, Mark
Re: [gentoo-user] udev + /usr
On Thu, Sep 15, 2011 at 6:26 PM, Mark Knecht markkne...@gmail.com wrote: On Thu, Sep 15, 2011 at 3:05 PM, Mike Edenfield kut...@kutulu.org wrote: On Thursday, September 15, 2011 11:16:03 PM Joost Roeleveld wrote: On Thursday, September 15, 2011 04:42:23 PM Mike Edenfield wrote: I would estimate that the vast, vast, vast majority of users are those such as myslelf, who have no opinion whatsoever, and either will not be affected at all by these changes (because they don't separate / and /usr), or will simply apply the proposed initramfs solution and move on. You also don't have /var (or /var/log) seperated? Or any of the other parts of the filesystem that might be required by udev-rules? Speaking solely for myself, no. Years ago I routinely split /, /usr, and /var when setting up my FreeBSD systems, and found that it only ever caused problems when I could not get /usr or /var mounted when I needed them. At least since I switched to Gentoo, I've simply set up one partition with everything on it, and kept regular backups in case of failure. I clearly recognize that there are valid reasons to split your partitions, I have just never found any of them applicable to my situations. --Mike My first response to this 300+ post thread, and only to say that in something like 15 years of playing with using Linux I've never split /usr no longer split /var. I also don't use LVM or anything fancy like that. I just keep backups and use them if there's a failure. Life is pretty simple. My suspicion is that by far most casual desktop users of Linux, Gentoo based or not, run pretty much this way and will be unaffected by this whole change and as such have no reason to post. Ubuntu recommends /, /home and swap [1]. Fedora recommends /, /boot and swap [2]. OpenSUSE has several sets, but the simple and dual booting recommends /, /boot, /home and swap [3]. Debian says [4]: For new users, personal Debian boxes, home systems, and other single-user setups, a single / partition (plus swap) is probably the easiest, simplest way to go. However, this might not be such a good idea when you have lots of disk capacity, e.g., 20GB or so. Ext2 partitions tend to perform poorly on file system integrity checking when they are larger than 6GB or so. For multi-user systems or systems with lots of disk, it's best to put /usr, /var, /tmp, and /home each on their own partitions separate from the / partition. Interestingly, the Gentoo handbook [5] recommends /, /boot and swap. Damn, I haven't installed Gentoo in a long time, I hadn't looked at the handbook in years. Anyway, Debian is the only big distro recommending separated /usr, and then only for multiuser setups. It's really years since I've looked at the recommended partition schemes: when I started using Linux, a separated /home was almost a must. And we had tiny hard drives then. Now get out of my lawn. Regards. [1] http://www.easy-ubuntu-linux.com/ubuntu-installation-606-7.html [2] http://docs.fedoraproject.org/en-US/Fedora/13/html/Installation_Guide/s2-diskpartrecommend-x86.html [3] http://en.opensuse.org/SDB:Partitioning [4] http://www.debian.org/releases/woody/i386/ch-partitioning.en.html [5] http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?full=1 -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: IDE for C/C++ (Was: Really OT now (Re: [gentoo-user] udev + /usr)
On Thu, Sep 15, 2011 at 3:59 PM, Chris Brennan xa...@xaerolimit.net wrote: On Thu, Sep 15, 2011 at 3:47 PM, Leonardo Guilherme leonardo.guilhe...@gmail.com wrote: I do not know the state of Geanny since I last checked (couple of years ago), but the highlight capabilites of KDevelop got my eye. It highlights local variables in different colors in the same context, so something like int foo(float bar, float baz) { } will have bar and baz in different colors. Also, support for CMake in KDevelop got really great and useful. Plus, it supports debugging inside the editor. Its awesome. If you want something in a gui, what about Code::Blocks? It's also multi-platform dev-util/codeblocks is masked. How well (or poorly) does it work on Gentoo AMD64? I did an emerge -p kdevelop...that'd pull back in the large bulk of KDE. I'm going to have to pass for now. qt-creator has some use flag changes, but only requires bits of KDE I already have, so I'll be trying it. I don't show an ebuild for eclipse (I see dev-java/ant-eclipse-ecj, dev-java/eclipse-ecj and dev-util/eclipse-sdk). Last time I poked eclipse, it was a royal pain using any *DT unless one downloaded it as a packaged deal. Version dependencies were a pain. (That said, I settled into it fairly quickly. But that was a long time ago) I don't see an ebuild for Emacs CC-Mode. -- :wq
Re: [gentoo-user] udev + /usr
On Tue, 13 Sep 2011 17:10:40 -0400, Canek Peláez Valdés wrote: No, by you know what needs to be done I mean: code. Contribute. Become a developer. Make shit happens the way you think it should happen. You're happy to run an important system service coded by someone with less experience than their dislike of the way things are going. Trust me, you would want to run a udev that contained any code written by me! -- Neil Bothwick Programmer (n): A red-eyed, mumbling mammal capable of conversing with inanimate objects. signature.asc Description: PGP signature
Re: [gentoo-user] udev + /usr
On Tue, Sep 13, 2011 at 05:10:40PM -0400, Canek Peláez Valdés wrote: Is it simply subscribing to -dev and voicing the conversation there? Of course not. But please, do that if you think it will help to steer Gentoo to whatever direction do you think is the correct one. Personaly I don't think the devs (who, AFAIK, do not receive a single dime for working on Gentoo) will appreciate anybody telling them how they should do their jobs, the one they do for free. But that's just me. I think so. Most devs are grateful for (polite) feedback, and take it into account when doing their work. I suspect they're unaware of just how much this change to booting is disliked by Gentoo users. No, by you know what needs to be done I mean: code. Contribute. Become a developer. Make shit happens the way you think it should happen. Shut up and code. Google it, I didn't come with the phrase. Just as a matter of interest, how much coding have you done for open source or free software? It was conspicuously absent from the CV you posted here a few days ago. Regards. -- Canek Peláez Valdés -- Alan Mackenzie (Nuremberg, Germany).
Re: [gentoo-user] udev + /usr
On Wednesday 14 Sep 2011 11:25:23 Alan Mackenzie wrote: On Tue, Sep 13, 2011 at 05:10:40PM -0400, Canek Peláez Valdés wrote: Is it simply subscribing to -dev and voicing the conversation there? Of course not. But please, do that if you think it will help to steer Gentoo to whatever direction do you think is the correct one. Personaly I don't think the devs (who, AFAIK, do not receive a single dime for working on Gentoo) will appreciate anybody telling them how they should do their jobs, the one they do for free. But that's just me. I think so. Most devs are grateful for (polite) feedback, and take it into account when doing their work. I suspect they're unaware of just how much this change to booting is disliked by Gentoo users. Could someone please nudge them this way for them to get first hand feedback on their decision. No, by you know what needs to be done I mean: code. Contribute. Become a developer. Make shit happens the way you think it should happen. Shut up and code. Google it, I didn't come with the phrase. Not all of us have the capability to code, although all of us are grateful for good code devs produce and often express our user needs and wants in this M/L. Just as a matter of interest, how much coding have you done for open source or free software? It was conspicuously absent from the CV you posted here a few days ago. Canek may wish to keep his reply off list because it wouldn't be of particular interest to many and is not relevant with Gentoo being aligned with a flawed (IMHO) design principle. Better we focus our efforts instead on influencing Gentoo devs and upstream decision making on this matter before it defaults into a design orthodoxy for Linux. -- Regards, Mick signature.asc Description: This is a digitally signed message part.
Re: [gentoo-user] udev + /usr
On Wed, Sep 14, 2011 at 10:10 AM, Mick michaelkintz...@gmail.com wrote: On Wednesday 14 Sep 2011 11:25:23 Alan Mackenzie wrote: On Tue, Sep 13, 2011 at 05:10:40PM -0400, Canek Peláez Valdés wrote: Is it simply subscribing to -dev and voicing the conversation there? Of course not. But please, do that if you think it will help to steer Gentoo to whatever direction do you think is the correct one. Personaly I don't think the devs (who, AFAIK, do not receive a single dime for working on Gentoo) will appreciate anybody telling them how they should do their jobs, the one they do for free. But that's just me. I think so. Most devs are grateful for (polite) feedback, and take it into account when doing their work. I suspect they're unaware of just how much this change to booting is disliked by Gentoo users. Could someone please nudge them this way for them to get first hand feedback on their decision. No, by you know what needs to be done I mean: code. Contribute. Become a developer. Make shit happens the way you think it should happen. Shut up and code. Google it, I didn't come with the phrase. Not all of us have the capability to code, although all of us are grateful for good code devs produce and often express our user needs and wants in this M/L. Just as a matter of interest, how much coding have you done for open source or free software? It was conspicuously absent from the CV you posted here a few days ago. Canek may wish to keep his reply off list because it wouldn't be of particular interest to many and is not relevant with Gentoo being aligned with a flawed (IMHO) design principle. Better we focus our efforts instead on influencing Gentoo devs and upstream decision making on this matter before it defaults into a design orthodoxy for Linux. Rather than flooding the gentoo devs with a bunch of outrage, maybe it'd be better to build a document detailing the reasoning of the opinions and discussed potential solutions? It'd probably be received a lot better than starting over with a new heated argument, feeling around how much the various parties know and understand about the issue. -- :wq
Re: [gentoo-user] udev + /usr
On Wed, Sep 14, 2011 at 1:52 AM, Joost Roeleveld jo...@antarean.org wrote: On Tuesday, September 13, 2011 06:33:01 PM Canek Peláez Valdés wrote: On Tue, Sep 13, 2011 at 6:10 PM, Michael Schreckenbauer grim...@gmx.de wrote: If gentoo follows fedora on this mandatory initramfs trail, I'll switch to FreeBSD completely. My software works on way more systems than just Linux. That's of course your prerogative. And, as I said before: Linux strives to be much more than Unix, and that means do things differently. If you want to do things the same way that it was done in the last 20 years, maybe Linux is not the best of choices. I read it before, but to be much more then Unix, Linux should be doing things better. Being different is what led to MS Windows' But that's the thing: we (you and me) don't see the situation the same way. To me, the proposed changes are for the better. I myself think the new technologies are worth to change the way we did things before. But that's just me. The new technologies have great merit. But, the implementation of it isn't thought through. In my humble opinion, what you just said is a little pedantic. You can disagree with the proposed changes, you can argue why you think another approach could be better. But just saying the implementation of it isn't thought through, is a little insulting to the devs. I think they though about the implementation a lot. And maybe I shouldn't even mention it, but I don't use OpenRC. I use systemd. And it works great on Gentoo. Well. Linux only. If I wanted a monoculture, I would use MS-Windows or OSX. Relax man. I mention what I use: I'm not forcing you (or anybody else) to use it. But I repeat (because I said it before) that I care about Linux, and Linux only. If you care about Linux, why do you allow it to be broken in such a fundamental way? Again, to me is not breaking it. To me is improving it. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México
Re: [gentoo-user] udev + /usr
On Wed, Sep 14, 2011 at 5:06 AM, Neil Bothwick n...@digimed.co.uk wrote: On Tue, 13 Sep 2011 17:10:40 -0400, Canek Peláez Valdés wrote: No, by you know what needs to be done I mean: code. Contribute. Become a developer. Make shit happens the way you think it should happen. You're happy to run an important system service coded by someone with less experience than their dislike of the way things are going. Someone with less experience? As I said before, Kay has been working in udev for more than eight years. I think he's entitle to receive the acknowledge of his experience. Trust me, you would want to run a udev that contained any code written by me! No offense man, but I don't know you enough so I would want to run a udev that contained any code written by you. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México