Recently, when testing the installer, we noticed a weird issue. When 'emerge sync' is run, rsync would complete the sync but not exit, which caused the install to hang. It took 2 days and a lot of frustration to finally track this one down. We owe the answer to d_m (on freenode).
The installer runs with 2 separate threads. The frontend is the main thread and the backend starts up a second thread to run the commands that perform the install. It turns out that when python creates a new thread, it blocks all signals for that thread. I'm not quite sure why. This has the side effect of blocking all signals for any processes that are fork()ed and/or exec()ed from that child thread.
Rsync fork()s when it's doing it's thing. One process waits for a USR2 signal from the other before they mutually exit. Since python had blocked all signals, the signal wasn't getting from one process to another so they could exit. d_m's solution was to write a small C program that resets the signal mask when running external programs. While this works, it is a huge hack. Although, this bug should be fixed in python 2.4 :-/
I earned my dev wings back in November and joined the installer team. Since then, I've written the partitioning code, the dialog frontend (now maintained by codeman), and most of the GTK frontend (Screenshots). While writing the frontends, I've come across a question that has yet to be answered: Is the installer intended to make installation easier or faster?
The original intention of the installer was for automated deployments. The way it is designed made it pretty easy to do end-user installs, also. Unfortunately, the end-user aspect of it has overshadowed the original intention. This is partially my fault with the way I'm doing the GTK frontend, but it wasn't intentional.
I've been getting pressure from users/devs to make it more user-friendly and hand-holding. Personally, I don't think we shouldn't lower the bar for Gentoo. If a user can't follow the already very detailed install guide, they won't be able to admin their Gentoo install. Making the installer hold the user's hand is only going to flood the MLs, forums, and IRC channels with dumb questions that are already answered in the install guide or related documentation. In my opinion, the user should still have to read the install guide to figure out what to do with the installer.
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
| Current | > >> | |||||
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||