Commit Graph

54196 Commits

Author SHA1 Message Date
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
Stephan Aßmus
f333ade309 Icon-O-Matic: Converted color picker to use layouting
Basically synced the code with what I did for WIP WonderBrush rewrite.
 * Converted to use layouting
 * Removed unused liblayout MView cruft
 * Removed need for rendering in separate threads in favor of
   rendering lazily. The original Colors! rendering was insanely slow
   and inefficient, hence the separate rendering threads.
 * Some style fixes along the way.
 * Some minor bug fixes, too, but these were not actually triggered.
 * Renamed selected_color_mode.h to SelectedColorMode.h
2015-07-19 23:20:22 +02:00
Stephan Aßmus
0ebc8ac6ef IOM/ColorField: Get rid of useless threads
Generate bitmap in Draw() lazily. Removed liblayout stuff. Support for
Haiku layout methods. Fixed some bugs with selecting red/green/blue
as fixed values (ticket #10574).
2015-07-19 23:20:11 +02:00
Stephan Aßmus
44046ca5cd IOM/AlphaSlider: Removed liblayout suff, added Haiku layout methods
Also added support for border styles.
2015-07-19 23:20:02 +02:00
Alexander von Gluck IV
e34f263837 haikudepot: Fix style issues in hrev49418 2015-07-19 09:56:54 -05:00
Alexander von Gluck IV
d52bb3081c bin/fdinfo: Fix format strings through B_PRI macros 2015-07-19 09:43:17 -05:00
Alexander von Gluck IV
0469da76ba bin/iroster: Fix format strings through B_PRI macros 2015-07-19 09:31:22 -05:00
Alexander von Gluck IV
46e1214196 bin/hd: Fix format strings through B_PRI macros 2015-07-19 09:31:03 -05:00
Alexander von Gluck IV
3f06c69ed4 bin/fstrim: Fix format strings through B_PRI macros 2015-07-19 09:25:41 -05:00
Alexander von Gluck IV
ec4e0aea76 bin/driveinfo: Fix format strings through B_PRI macros 2015-07-19 09:23:54 -05:00