Commit Graph

54255 Commits

Author SHA1 Message Date
Axel Dörfler
cefd7c496d Sudoku: Improved value hint.
* Removed toggling its visibility on click - it's now always visible
  once it's there.
* Also update and show it when changing a value or hint.
2015-07-22 20:42:59 +02:00
Axel Dörfler
0e347cb203 launch_daemon: Added condition tests. 2015-07-22 20:42:54 +02:00
Axel Dörfler
17ac467a6e launch_daemon: Actually set the conditions. 2015-07-22 20:42:50 +02:00
Axel Dörfler
c2d703ea5d launch_daemon: Make sure conditions are properly deleted. 2015-07-22 20:42:45 +02:00
Axel Dörfler
1e9c987102 launch_daemon: Added basic support for conditions.
* Admittedly not very well thought out, but it should be good
  enough for now; it doesn't really make sense to initialize jobs
  that is never run due to failed conditions.
* Job, and Target now have a common base class BaseJob that deals
  with the conditions.
2015-07-22 20:42:41 +02:00
Axel Dörfler
f7cf381a14 launch_daemon: Completed condition parser. 2015-07-22 20:42:36 +02:00
Axel Dörfler
e73c936699 launch_daemon: Started working on condition parsing.
* Moved related test code from DriverSettingsMessageAdapterTest to the
  SettingsParser class.
* Added SettingsParserTest class -- most tests already succeed, but not
  all; support for the flattened "not" is not working yet.
2015-07-22 20:42:32 +02:00
Axel Dörfler
68a3c0f919 launch_daemon: Moved settings parsing into its own file. 2015-07-22 20:42:27 +02:00
Axel Dörfler
c4b6278c02 DriverSettingsMessageAdapter: added "wildcard" support.
* You can now add arbitrarily named fields to the message as well,
  without having them all specified in the template.
* Also added a missing converter method that is called when there
  are no values to add, and implemented all methods in the base
  class, so that you only have to implement the methods you actually
  need.
2015-07-22 20:42:22 +02:00
Axel Dörfler
e51a20af4f launch_daemon: Fixed operator precedence bug.
* Found by GCC 4.
2015-07-22 20:42:18 +02:00
Axel Dörfler
78e39852fa launch_daemon: Use BRoster::Launch() without registrar.
* BRoster now allows settings a "no-registrar" mode that is currently
  only honored in _LaunchApp(), though.
* Job::Launch() is now using this, which also allows launching
  applications by signature (ie. if the job name matches the
  signature, you can omit the "launch" option).
2015-07-22 20:42:13 +02:00
Axel Dörfler
1f9826a778 BRoster: minor cleanup. 2015-07-22 20:42:09 +02:00
Axel Dörfler
234f76a19c launch_daemon: log failed launch jobs. 2015-07-22 20:42:04 +02:00
Axel Dörfler
70d9734f25 Login.rdef: fixed copy&paste bug; it's not Tracker. 2015-07-22 20:42:00 +02:00
Axel Dörfler
8b8780bfe3 launch_daemon: Moved Job+Target into separate files. 2015-07-22 20:41:55 +02:00
Axel Dörfler
c086a1834b launch_daemon: Improved target support.
* You can now put jobs/services into a target.
* Instead of having Login started as part of the normal boot process,
  it's now in the "login" target.
* The app_server now launches the login target when a login becomes
  available (ie. during startup, but that could be improved later on).
2015-07-22 20:41:51 +02:00
Axel Dörfler
a44d3faf2e Sudoku: Don't switch workspace for progress window. 2015-07-22 20:41:46 +02:00
Axel Dörfler
c7c1744b2e JobQueue::AddJob() returns error on lock failure.
* If the lock could not be obtained, it will now return B_ERROR
  instead of B_OK.
2015-07-22 20:41:41 +02:00
Axel Dörfler
ac0a462fba launch_daemon: Basic user session implementation.
* Instead of launching Tracker/Deskbar directly, we now launch the
  Login application.
* This will now start a new session for the selected user (the password
  is currently ignored).
* When a user session is started, the launch_daemon forks, and the
  child then restarts the LaunchDaemon application in user mode.
* It then registers itself with its parent, in order to resolve user
  dependent services.
* Added a user launch file that will cause Tracker, and Deskbar to
  start in the new session.
2015-07-22 20:41:37 +02:00
Axel Dörfler
9cc27f7369 launch_daemon: Merged Job with LaunchJob, cyclic dependencies.
* Job is now a BJob, and includes the former LaunchJob functionality.
* Dependencies are now resolved on init, and jobs are removed early
  when they are not met (or are cyclic, which is now also detected).
2015-07-22 20:41:32 +02:00
Axel Dörfler
0337b4adfd launch_daemon: Moved (Main)Worker to its own file. 2015-07-22 20:41:28 +02:00
Axel Dörfler
f913a08780 launch_daemon: Added basic dependency support.
* Untested, and even incomplete, though.
2015-07-22 20:41:23 +02:00
Axel Dörfler
f4e75e7c37 launch_daemon: use BJobs for everything, multi-threaded worker.
* Implemented a multi-threaded job queue, that launches as many as CPU
  count jobs at once -- due to SSDs, this number could possibly even be
  made much larger, though.
* Launching a job now happens within that worker queues as a LaunchJob.
* Put all init jobs into an init target, and make the launch jobs depend
  on it.
2015-07-22 20:41:19 +02:00
Axel Dörfler
c16361c49c launch_daemon: Initialize /tmp & /var/shared_memory, clock.
* Added initializing /tmp & /var/shared_memory to the launch_daemon.
* Moved clockconfig.cpp code into the launch_daemon.
* This follows systemd design; since those jobs are fixed, it doesn't
  matter where you maintain them.
* The init jobs are BJobs, but the JobQueue is only used for that
  one use for now. At a later time, I intend to put the job launching
  in there, as well. BJob allows to represent the dependencies already.
2015-07-22 20:41:14 +02:00
Axel Dörfler
ef462ab57f libroot: ensure that the launch_daemon doesn't wait for itself.
* The launch_daemon might indirectly call get_launch_daemon_port()
  which may cause a deadlock. Just fail in this case.
2015-07-22 20:41:09 +02:00
Axel Dörfler
1f374c8b2a libroot: hardcode find_directory() to /home/boot for root.
* This is a work-around to allow the registrar, and the launch_daemon
  to call find_directory() without worries.
2015-07-22 20:41:05 +02:00
Axel Dörfler
bea38cb711 registrar: implemented auth port via launch_daemon.
* get_roster_port_name() is no longer needed.
* This also removes the app_server restart code from the debug
  server -- this will be done by the launch_daemon in the future.
2015-07-22 20:41:01 +02:00
Axel Dörfler
7ef0edec04 syslog_daemon: don't delete the port on quit.
* It belongs to the launch daemon.
2015-07-22 20:40:56 +02:00
Axel Dörfler
798ad3db30 BLooper: don't delete a launch_daemon port.
* Unless the service is really to be quit, the port should stay around;
  but that decision is to be made by the launch_daemon, not the service
  itself.
2015-07-22 20:40:52 +02:00
Axel Dörfler
4bf862e368 syslog_daemon: Converted to BServer.
* Instead of letting the kernel search for the syslog port, the
  daemon now registers itself with the kernel (which even solves
  a TODO).
* A port is created for the actual log messages from the launch_daemon,
  and used on start.
* However, the SyslogTest does not yet work, due to the BMessage <->
  KMessage communication problems.
2015-07-22 20:40:47 +02:00
Axel Dörfler
9d69dc097d libroot: added ability to communicate with the launch_daemon.
* These methods don't really work yet, as BMessage doesn't support
  replying with a KMessage; the request is received, but the reply
  never gets to the target.
2015-07-22 20:40:42 +02:00
Axel Dörfler
43aec2c726 launch_daemon: added support for arbitrary ports.
* Dropped "create_port" -- this is now the default for services.
* Additionally (or alternatively, if you use the "legacy" mode), you can
  now create named ports, and specify their capacity.
* Added convenience methods to BLaunchRoster that automatically use the
  signature of the current be_app.
2015-07-22 20:40:38 +02:00
Axel Dörfler
89168ad8b9 Boot the system via launch_daemon.
* This is actually working already, although we cannot reproduce all
  the features of the former Bootscript yet. This is without any
  dependency support in launch_daemon.
* All shell activity like cleaning out /tmp, setting up the environment,
  setting the time, etc. is not yet working.
2015-07-22 20:40:33 +02:00
Axel Dörfler
592ffe6461 The app_server is now a regular BServer. 2015-07-22 20:40:29 +02:00
Axel Dörfler
cbfe45bbfa app_server: Fixed signature. 2015-07-22 20:40:24 +02:00
Axel Dörfler
2bc07d285e BRoster::Private::SendTo() cannot be used in registrar.
* We're checking with IsTargetLocal() if we're allowed to access
  it or not.
* This might introduce regressions, if the registrar is using its own
  services via the BRoster API.
* This fixes a deadlock when the system clipboard tries to get
  initialized within the registrar.
2015-07-22 20:40:20 +02:00
Axel Dörfler
9bfc8331bb BRoster: find the registrar port via launch roster. 2015-07-22 20:40:15 +02:00
Axel Dörfler
d32061151e BMessenger: support launch daemon when set to signature.
* Before asking the roster, we now ask the launch roster if it knows
  about the target.
2015-07-22 20:40:10 +02:00
Axel Dörfler
e31148095d BMessage: fixed reply port race condition.
* When the team that we got the synchronous reply from immediately
  terminated afterwards, it might have still owned (and therefore
  destroyed) our reply port.
* Make sure it's not added to the pool again, but is recreated instead.
2015-07-22 20:40:06 +02:00
Axel Dörfler
d482c7ca5b launch_daemon: actually launch the jobs.
* BRoster::Launch() cannot be used (yet), as it pre-registers the
  application we're launching, and that won't work for the registrar or
  anything else until the registrar is up and running.
* Renamed B_GET_LAUNCH_CONNECTIONS to B_GET_LAUNCH_DATA.
* Add the team ID to the get-launch-data reply.
* Added BLaunchRoster::GetPort() for convenience.
* Removed some superfluous debug output, but temporarily dump all stdio
  to /dev/dprintf (ie. the syslog).
* Made job matching case insensitive (as MIME types should be).
2015-07-22 20:40:01 +02:00
Axel Dörfler
e489a80da0 syslog_daemon: Style cleanups, no functional change. 2015-07-22 20:39:57 +02:00
Axel Dörfler
035e3e77ed kernel: profile system when SYSTEM_PROFILER is defined.
* This enables a mechanism to profile almost the complete boot process
  (starting with main2()), if SYSTEM_PROFILER is defined to 1.
* You can access the profiling data using "profile -r".
2015-07-22 20:39:52 +02:00
Axel Dörfler
1480e5da6f The beginnings of a launch_daemon for Haiku.
* This will be heavily inspired by Apple's launchd, as well as
  systemd -- for now it really doesn't do a whole lot, though.
* What works so far: the configuration files are read, parsed, and
  the jobs created.
* The jobs are even initialized, and their message ports created.
* BApplication now retrieves a previously created port from the
  launch_daemon for use with BServer.
* Only the registrar actually uses this for now.
2015-07-22 20:39:47 +02:00
Augustin Cavalier
5f83ad89eb Tracker: Move DirMenu.h to headers/private/tracker so other applications can uuse it. 2015-07-21 19:52:43 -04:00
Augustin Cavalier
4d556706b5 docs/user: s/http:/https:/. 2015-07-21 18:24:37 -04:00
Axel Dörfler
b46999bc02 Tracker: page down/up now selects poses.
* When pressing shift it will also extend the selection to the bottom
  or the top of the page.
* It does not deselect anything yet, but Tracker's selection logic is
  pretty questionable, anyway, and it's way too complicated to
  implement this nicely as of now.
2015-07-21 21:27:38 +02:00
Humdinger
7d0bb19b09 Added new release of Clipdinger
Fewer bugs. Fade to grey.
2015-07-21 17:23:08 +02:00
Jérôme Duval
94887feb64 Added some support for GCC 5+. 2015-07-20 21:45:02 +02:00
Adrien Destugues
bdd4f6b7d0 Update cmake package
Fixes gethostbyname_r problem.
2015-07-20 21:43:12 +02:00
Rene Gollent
f068ecea0a Icon-O-Matic: Fix gcc4 build.
- Add explicit casts to uint8 since gcc4 otherwise warns about a narrowing
  conversion.
2015-07-19 21:06:42 -04:00