Commit graph

8093 commits

Author SHA1 Message Date
Lennart Poettering 7c0436b94c transaction: add missing emacs and license headers 2012-04-22 15:22:27 +02:00
Lennart Poettering 8e47b1d2eb machine-id: fix spelling 2012-04-22 15:07:35 +02:00
Lennart Poettering ab94af9201 util: unify getenv() logic for other PID 2012-04-22 15:00:42 +02:00
Lennart Poettering 144f0fc0c8 nspawn: add --uuid= switch to allow setting the machine id for the container 2012-04-22 14:48:21 +02:00
Lennart Poettering 5cd6eef69b units: don't try to load kernel modules if CAP_SYS_MODULE is missing 2012-04-22 14:11:32 +02:00
Lennart Poettering 2c8049f3d3 units: skip root fsck if the root directory is writable 2012-04-22 14:11:32 +02:00
Lennart Poettering 0f0dbc46cc nspawn: add -b switch to automatically look for an init binary 2012-04-22 14:11:32 +02:00
Lennart Poettering acda6a054f default to v102 everywhere, instead of vt100, to synchronize with agetty 2012-04-22 02:45:39 +02:00
Lennart Poettering d1122ad5e3 login: assing /dev/console logins to seat0 2012-04-22 02:41:18 +02:00
Lennart Poettering 337eebb936 container: spawn a getty instead of a sulogin in a container 2012-04-22 02:41:18 +02:00
Lennart Poettering cc1368e3b3 loginctl: avoid segfault for kill-session and kill-user commands
As reported by Mantas Mikulėnas.

http://lists.freedesktop.org/archives/systemd-devel/2012-April/004993.html
2012-04-22 02:04:12 +02:00
Lennart Poettering 3d9a412243 util: fix tty_is_vc_resolve() in a container where /sys/class/tty/console/active is misleading 2012-04-22 01:59:11 +02:00
Lennart Poettering d29b05a461 log: include syslog identifier in default log properties, to avoid comm truncation 2012-04-22 01:01:54 +02:00
Lennart Poettering 3a74cea5e4 nspawn: be more careful when initializing the hostname from the directory name 2012-04-22 01:01:22 +02:00
Lennart Poettering eaeb18dba9 mount-setup: ignore common container bind mounts 2012-04-22 01:00:57 +02:00
Lennart Poettering 9efaf380a7 update TODO 2012-04-22 00:33:24 +02:00
Lennart Poettering f1e5dfe2c0 nspawn: make /dev/kmsg unavailable in the container, but allow access to /proc/kmsg 2012-04-22 00:32:53 +02:00
Lennart Poettering 461282d52a watchdog: fix default configuration fragment for watchdog 2012-04-21 15:47:38 +02:00
Kay Sievers 33e48d472e man: doc-sync - properly delete no longer existing stuff on remote server 2012-04-21 00:28:02 +02:00
Michal Schmidt 6530407524 transaction: add starting requirements for JOB_RESTART
While having a Requires= dependency between units, the dependency is started
automatically on "systemctl start", but it's not started on "systemctl
restart".

JOB_RESTART jobs did not pull the dependencies for starting into the
transaction.

https://bugzilla.redhat.com/show_bug.cgi?id=802770

Note that the other bug noted in comment #2 has been fixed already by avoiding
the deletion of anchor jobs.
2012-04-20 17:12:29 +02:00
Michal Schmidt 97e6a11996 dbus-job: allow multiple bus clients
Merging of jobs can result in more than one client being interested in a job.
2012-04-20 17:12:29 +02:00
Michal Schmidt d6a093d098 transaction: remove checks for installed
Transactions cannot contain installed jobs anymore. Remove the now pointless
checks.
2012-04-20 17:12:29 +02:00
Michal Schmidt 656bbffc6c transaction: rework merging with installed jobs
Previously transactions could reference installed jobs. It made some issues
difficult to fix.

This sets new rules for jobs:
A job cannot be both a member of a transaction and installed. When jobs are
created, they are linked to a transaction. The whole transaction is constructed
(with merging of jobs within, etc.). When it's complete, all the jobs are
unlinked from it one by one and let to install themselves. It is during the
installation when merging with previously installed jobs (from older
transactions) is contemplated.

Merging with installed jobs has different rules than merging within a
transaction:
 - An installed conflicting job gets cancelled. It cannot be simply deleted,
   because someone might be waiting for its completion on DBus.
 - An installed, but still waiting, job can be safely merged into.
 - An installed and running job can be tricky. For some job types it is safe to
   just merge. For the other types we merge anyway, but put the job back into
   JOB_WAITING to allow it to run again. This may be suboptimal, but it is not
   currently possible to have more than one installed job for a unit.

Note this also fixes a bug where the anchor job could be deleted during merging
within the transaction.
2012-04-20 17:12:29 +02:00
Michal Schmidt 05d576f1f7 job: separate job_install()
Let the jobs install themselves.
2012-04-20 17:12:28 +02:00
Michal Schmidt f1c2bdca42 transaction: remove a couple of asserts
We already asserted these facts in the previous loop.
2012-04-20 17:12:28 +02:00
Michal Schmidt e6eda1f23e transaction: remove the anchor link
tr->anchor_job is sufficient.
2012-04-20 17:12:28 +02:00
Michal Schmidt 38809d9dfe transaction: avoid garbage collecting the anchor job
Make sure the anchor job is never considered garbage, even if it has no links
leading to it (this will be allowed in the next patch).
2012-04-20 17:12:28 +02:00
Michal Schmidt 0d9989aa68 transaction: simplify transaction_find_jobs_that_matter_to_anchor() 2012-04-20 17:12:28 +02:00
Michal Schmidt 4483f69498 transaction: change the linking of isolate jobs to the anchor
When isolating, the JOB_STOP jobs have no parent job, so they are all peers
of the real anchor job. This is a bit odd.

Link them from the anchor job.
2012-04-20 17:12:28 +02:00
Michal Schmidt b94fbd3078 transaction: maintain anchor_job
Track which job is the anchor in the transaction.
2012-04-20 17:12:28 +02:00
Michal Schmidt 3c956cfee2 transaction: do not add installed jobs to the transaction
Do not attempt to optimize away the job creation by refering to installed jobs.
We do not want to disturb installed jobs until commiting the transaction.

(A later patch to job merging will make the separation of transaction jobs and
installed jobs complete.)
2012-04-20 17:12:28 +02:00
Michal Schmidt 1da4264fbd job: jobs shouldn't need to know about transaction anchors
Let the transactions maintain their own anchor links.
2012-04-20 17:12:28 +02:00
Michal Schmidt 668ad332a4 job: job_new() can find the manager from the unit 2012-04-20 17:12:27 +02:00
Michal Schmidt 75778e21df manager: split transaction.[ch]
manager.c takes care of the main loop, unit management, signal handling, ...
transaction.c computes transactions.

After split:
manager.c:     65 KB
transaction.c: 40 KB
2012-04-20 17:12:27 +02:00
Michal Schmidt 7527cb5275 manager: Transaction as an object
This makes it obvious that transactions are short-lived. They are created in
manager_add_job() and destroyed after the application of jobs.
It also prepares for a split of the transaction code to a new source.
2012-04-20 17:12:27 +02:00
Michal Schmidt 97e7d748d1 job: job_uninstall()
Split the uninstallation of the job from job_free() into a separate function.
Adjust the callers.

job_free() now only works on unlinked and uninstalled jobs. This enforces clear
thinking about job lifetimes.
2012-04-20 17:12:27 +02:00
Michal Schmidt 121b3b3180 manager: simplify transaction_abort()
This is equivalent.
2012-04-20 17:12:27 +02:00
Michal Schmidt 02a3bcc6b4 job: allow job_free() only on already unlinked jobs
job_free() is IMO too helpful when it unlinks the job from the transaction.
The callers should ensure the job is already unlinked before freeing.
The added assertions check if anyone gets it wrong.
2012-04-20 17:12:27 +02:00
Michal Schmidt 153bda8f03 manager: fix comment 2012-04-20 17:12:27 +02:00
Michal Schmidt a48f3d1566 tmpfiles: fix error message 2012-04-20 17:12:27 +02:00
Kay Sievers cc85759ac9 docs: remove duplicated install hook 2012-04-20 12:40:15 +02:00
Lennart Poettering 678d485a55 log: fix LOG_TARGET_JOURNAL_OR_KMSG 2012-04-20 12:40:02 +02:00
Lennart Poettering 71f737d2de mount-setup: don't log with LOG_ERROR if a mount that doesn't matter fails 2012-04-20 12:40:02 +02:00
Lennart Poettering a0a3844815 main: log to the journal in container mode, by default 2012-04-20 12:40:01 +02:00
Kay Sievers 21dbe43aec docs: hook-up gtk-doc to 'make check' 2012-04-20 03:25:36 +02:00
Kay Sievers 80037e4d17 docs: rebase html documentation for online and local use 2012-04-19 19:00:35 +02:00
Javier Jardón 9e45e7d8f0 docs: do not generate tmpl files
Its not needed as all the documentation is inline source code,
not in separate *.tmpl files
2012-04-19 16:21:09 +02:00
Sven Anders 771faa9ae6 fix typo in src/shared/install.c 2012-04-19 12:03:28 +02:00
Kay Sievers ebcd5d3acd update TODO 2012-04-18 20:31:16 +02:00
Kay Sievers 180bd81280 udev: units - reference systemd-* units 2012-04-18 16:29:43 +02:00