Commit Graph

50453 Commits

Author SHA1 Message Date
Adrien Destugues
da802e25b7 Style fix. 2014-06-16 11:14:59 +02:00
Ingo Weinhold
eb718e31d2 Terminal: Handle SIGCHLD in a dedicated thread
Block SIGCHLD in all threads and spawn a dedicated thread that handles
the signal in a loop (via sigwait()). This avoids the issue that the
SIGCHLD could be handled in any of our threads and thus possibly
interrupt a syscall.

Fixes #10941.
2014-06-16 11:08:56 +02:00
Adrien Destugues
6563b11264 Add menu entry to save pages as MHTML.
Fixes #9570.
2014-06-16 10:12:50 +02:00
Adrien Destugues
9b738c321b don't notify when a finished download is removed.
* Actually stop the download when the target file is deleted
* Check the download state before sending a notification or changing the
progress bar color.

Fixes #10907.
2014-06-16 09:18:28 +02:00
Adrien Destugues
4f88977f9a Add a first test for BDateTime.
* We need to write more of those.
2014-06-16 08:49:36 +02:00
Adrien Destugues
dbd4f8c46b SetTime_t: Use the sign-fixed modulo we computed
* In C++03 and earlier, the sign of the modulo result is implementation
defined (this was fixed in C++11).
* Setting a negative time is not what we want here, so make sure we use
the proper value.
2014-06-16 08:46:56 +02:00
Adrien Destugues
20929296c9 Add RemoteDesktop to the image.
There are some rough edges, but this can be useful and deserves more
exposure.
2014-06-16 08:16:53 +02:00
Rene Gollent
b36d838eb0 Debugger: Fix x86_gcc2 build. 2014-06-15 12:55:46 -04:00
Ingo Weinhold
f9f8a8f56e pkgman: Update some user messages 2014-06-15 17:21:02 +02:00
Ingo Weinhold
0b57c6338b BTransactionIssue::ToString(): Fix some strings 2014-06-15 17:21:02 +02:00
Ingo Weinhold
f2f19f110d BPackageManager: Support installing/updating local package files
* The Install() and Update() versions that take a const char* array
  now check whether a string looks like a path to a local package file.
  If so, they use that file instead of interpreting the string as a
  search string.
* Extend the repository hierarchy. There's now a LocalRepository base
  class from which InstalledRepository and the new MiscLocalRepository
  derive. The latter is instantiated once and collects all package files
  specified by path.
2014-06-15 17:21:01 +02:00
Ingo Weinhold
ea761a10d4 pkgman: Print issues from committing the transaction 2014-06-15 17:21:01 +02:00
Ingo Weinhold
eee422752c BPackageManager: Make BCommitTransactionResult available
* BFatalErrorException: Add commitTransactionResult property and
  respective constructor. In case committing the transaction failed,
  BPackageManager throws a BFatalErrorException with the result.
* BFatalErrorException::UserInteractionHandler: Pass
  BCommitTransactionResult to ProgressTransactionCommitted().
2014-06-15 17:21:01 +02:00
Ingo Weinhold
0de3219e33 package daemon: Rework error and issue propagation to client
* BDaemonClient: Move inner class BCommitTransactionResult to top level
  and make it public.
* BCommitTransactionResult:
  - Add a whole bunch of specific error code enum values. Such an error
    code is now the primary error, as opposed to before where we would
    mix status_t and enum value errors. There's a systemError property
    of type status_t which may provide additional information, though
    (depending on the primary error type).
  - Remove the errorMessage property. Due to mapping all errors to the
    specific error codes this is no longer necessary. Mixing such a
    message with another error description is also not very helpful when
    it comes to localization (still not supported, though).
  - Add several properties (paths, strings, error codes) that serve as
    arguments to the primary error and are used by FullErrorMessage().
  - Add issues property, a list of instances of new class
    BTransactionIssue. Those describe non-critical issues (e.g. failed
    update of a settings file) that occurred in the process of
    committing the transaction. Those issues should be presented to the
    user by the package management program.
* Exception: Adjust to transport the BCommitTransactionResult
  properties.
* CommitTransactionHandler, FsTransactions, Root, Volume: Adjust to
  BCommitTransactionResult/Exception changes.
* CommitTransactionHandler: Now requires a BCommitTransactionResult to
  which it adds the issues it encounters. The reply BMessage is no
  longer needed, though.
* Volume: Refactor common code from the three methods that use
  CommitTransactionHandler into new method _CommitTransaction.
2014-06-15 17:21:01 +02:00
Ingo Weinhold
6077cad882 BEntryOperationEngineBase::Entry: Add debug methods
Add GetPathOrName() and PathOrName() methods which try to get some kind
of usable path or at least a file name for the entry. Useful mainly for
debugging and error reporting cases.
2014-06-15 17:21:00 +02:00
Ingo Weinhold
9680cf0bce BEntryOperationEngineBase::Entry: Add node_ref+path c'tor 2014-06-15 17:21:00 +02:00
Rene Gollent
d44d8207a8 Debugger: Finish handling of missing debug information.
Add a listener interface for LoadImageDebugInfoJob that allows it to request
user assistance based on its current state. Adjust callers to pass in said
listener accordingly.

Implement the aforementioned listener interface in TeamDebugger, and use the
loading state handler roster to find the appropriate handler / handle the request.

This implements most of what's needed for #10138, the main piece still missing
is for the dwarf handler to detect whether the image in question comes from a package,
and if so, to offer to install the corresponding debug information package rather than
locating the file manually, assuming such a package exists.
2014-06-15 11:03:24 -04:00
Rene Gollent
331511009c Debugger: Start adding the groundwork for load state handlers.
Adds abstract class ImageDebugLoadingStateHandler which simply contains two
hooks, which allow one to a) ask it if it supports a handling a particular
type of loading state, and b) if so, ask it to attempt to handle that case,
given the passed in user interface object.

Also adds implementing subclass for DwarfImageDebugInfo, currently
intended primarily to handle the case of missing external debug information.
At present, this just supports prompting the user to find/install the file,
but eventually this will be extended to also support automatically installing
the corresponding debug information package, if applicable.

Finally, adds ImageDebugLoadingStateHandlerRoster, which acts as a front end
for matching up a given loading state with the appropriate handler.
2014-06-15 11:03:23 -04:00
Rene Gollent
d9e97187f5 Debugger: Add file prompt hook to UserInterface.
In some circumstances, it may be necessary to ask the user to locate a file
from the lower layers. Adds the corresponding hook to UserInterface, and a
stub implementation for CommandLineUserInterface.

Adds full implementation for GraphicalUserInterface.
2014-06-15 11:03:22 -04:00
Rene Gollent
7cab832956 Debugger: Add support for suspending LoadImageDebugInfoJob.
DwarfFile:
- Loading is now split into two steps, the first of which simply attempts to
verify the presence of debug information. If the latter is referenced
externally, but cannot be found on disk, the corresponding file reference is
returned.

TeamDebugInfo:
- Add state parameter to LoadImageDebugInfo(). Use it to preserve where we
are in the specific info loading loop if necessary.

SpecificTeamDebugInfo:
- Add parameter to CreateImageDebugInfo() to allow passing in a state object
and adjust implementing subclasses accordingly.

DwarfTeamDebugInfo:
- Preserve and/or pass down DwarfFile's loading state as needed.

DwarfManager:
- When attempting to load a DwarfFile, detect the case where external debug
  information is referenced, but could not be located. If so, preserve the
  relevant details in the loading state, so the user can be notified and
  asked to find it accordingly.

LoadImageDebugInfoJob:
- Keep a state object for the progress of the current loading job. If a
  particular image fails due to needing user input, suspend ourselves
  until such input has been provided.
2014-06-15 10:59:14 -04:00
Rene Gollent
a262768084 Debugger: Add classes for representing image loading state.
Adds a hierarchy of classes for preserving the loading state information for
a LoadImageDebugInfoJob. These include:
	- ImageDebugInfoLoadingState:
		Top level class that simply stores a reference for  the specific info
		state that we're currently attempting to load.

	- SpecificImageDebugInfoLoadingState:
		Abstract base class representing state information specific to a
		particular kind of debug information.

	- DwarfImageDebugInfoLoadingState:
		Implementation of the above for the case of DWARF.

	- DwarfFileLoadingState:
		Encapsulates the in-progress loading state of a DWARF file for the case
		where a file's debug information is referenced externally, but cannot
		be found.
2014-06-15 10:59:13 -04:00
Rene Gollent
4605febacf Debugger: Add/handle new suspend state for jobs.
- In addition to waiting for one or more dependent jobs to complete,
a job can now potentially wait for user input to proceed further. Add
a corresponding job_wait_status and respective handling in Worker.
2014-06-15 10:59:13 -04:00
PulkoMandy
004f41565e Apply fix suggested by Ingo
* Fix mixup of HAIKU_IMAGE vs HAIKU_IMAGE_NAME
* Use $(1) and $(2) instead of $(<) and $(>)
* Remove useless count parameter to dd
2014-06-15 14:59:01 +02:00
John Scipione
0546bdd5e5 Tracker: code simplication to hrev47374
We don't need to create a BNode from a BDirectory because BDirectory derives
from BNode! So use the BDirectory we already have as a BNode and get the
node_ref from it so we can pass it into WatchNode().

Sorry for the noise.
2014-06-14 21:19:42 -04:00
Cedric Degea
076cb5a752 BOptionPopUp: check for non-NULL Message(). Fixes #10733
Signed-off-by: John Scipione <jscipione@gmail.com>
2014-06-14 20:50:10 -04:00
John Scipione
1f17f750db Tracker: Use BPathFinder to find add-ons 2014-06-14 20:48:15 -04:00
John Scipione
6cf062b93d Tracker: Style fixes to DeskWindow 2014-06-14 16:21:05 -04:00
Jessica Hamilton
00922c9989 Tracker: fix accidental logic inversion. Fixes #10940. 2014-06-15 05:30:21 +12:00
Hamish Morrison
b1d2b9ab6a openjdk: add x86 secondary architecture package for x86_gcc2 2014-06-14 15:24:12 +01:00
autonielx
bdd9f04c00 Update translations from Pootle 2014-06-14 06:16:26 +02:00
John Scipione
a407032259 build system: Add SoundRecorder to Deskbar
... in the "regular" image definition. Fixes #10932
2014-06-13 19:27:54 -04:00
John Scipione
e70b99da6a build system: Replace tab wtih space 2014-06-13 19:25:55 -04:00
John Scipione
47852bff02 IK documentation update
* Add \since directive to each method.
* Add documentation for BScrollBar and BScrollView classes.
* Title Case group titles.
* Some other minor documentation updates.
2014-06-13 17:44:22 -04:00
John Scipione
1f424632be Style fixes to IK, focus on docs 2014-06-13 17:27:01 -04:00
PulkoMandy
4a2260f21a Let the bootloader know about ARMv7.
When an ARMv7 CPU is detected, immediately turn on the FPU. This allows
us to use vsnprintf in the TRACE call in that function, as our libc is
compiled with floating point support and will trigger a fault if the FPU
is not available.

This lets the boot go further, and crash in mmu_init. Next steps:
* Find why mmu_init is crashing
* Setup some fault handlers, otherwise we call uboot ones, and they are
not very helpful. They will also probably not work once the mmu is
enabledvery helpful. They will also probably not work once the mmu is
enabledvery helpful. They will also probably not work once the mmu is
enabled...
2014-06-13 22:15:54 +02:00
PulkoMandy
afe56d3ab3 Load uImage higher so it doesn't overwrite itself
Loading of haiku_loader from an uImage is a 2-step process:

* First, the uImage is loaded (in our case from SD card using fatload)
to RAM at a temporary address.
* Then (using bootm), it is unpacked. The uImage is a container format
and can hold several files, with a load and execution address. The files
are copied from the uImage to their final location, and it's better if
that doesn't overlap with the uImage content

When this loading is done, bootm jumps to the entry point found in the
uImage.

We now actually execute our code from haiku_loader. This crashes with
the following call stack:
* vsnprintf
* dprintf
* boot_arch_cpu_init
* cpu_init

It seems vsnprintf is trying to use VFP instructions (probably from the
libgcc) but that triggers some kind of fault, and the handler (setup by
uboot?) ends up crashing the system by jumping to unmapped memory at 0.
2014-06-13 20:26:51 +02:00
PulkoMandy
0c66734e4d Add a small helper script to configure gdb
This is useful for debugging the ARM port with qemu gdb stub.
2014-06-13 20:26:50 +02:00
John Scipione
2a6a3109e5 shortcut_catcher: tiny style fix 2014-06-13 12:52:49 -04:00
PulkoMandy
3d6edc43d9 Patch by dnivra (GSoC 2014, ARM suppport)
* Cleanup the SD card image building to allow jam -q @bootstrap-mmc to
work.

There are a few remaining tricks before you can safely build an image:
* This uses a non-POSIX du option, and is only tested with Linux du
only (Linux is the only supported system to run bootstrap builds,
anyway)
* The Python recipe in haikuports.cross is known to not build on
Debian/Ubuntu, but work fine on OpenSuse. There is a patch available in
haikuports bugtracker to allow the reverse.
* You need to populate the haikuports repo package list with some
packages (which don't exist yet) to make the build system happy. But our
git hook to generate the repositories is preventnig me to share this
hack.

Once built, the image currently crashes early in the kernel execution.
On to debug that!
2014-06-13 17:22:48 +02:00
Jérôme Duval
b64f1a9768 tiff: drop sources and headers from the source tree
* also drop jpeg and png headers
2014-06-13 15:52:11 +02:00
John Scipione
f1e2e389be shortcut_catcher: rename a couple variables
Fix build, msg => message

Fix warning use int32, not uint32

Also do a bit of refactoring.
2014-06-13 00:25:09 -04:00
John Scipione
78daf289c3 shortcut_catcher: A few 80 char limit fixes 2014-06-13 00:17:13 -04:00
Jessica Hamilton
d2da54dee2 Shortcuts: use BPathFinder instead of find_directory. Fixes #9958.
* Previously, BPath::Append() would return an empty path if the
  path didn't exist (and an error); in a nightly image, the
  B_USER_ADDONS_DIRECTORY didn't exist, triggering the bug.
* Replaced the code with calls to BPathFinder instead, which takes
  care of the empty path automatically.
2014-06-13 15:46:37 +12:00
John Scipione
abca6dabb6 Revert "shortcut_catcher: Fix KeyCommandMap::_DeleteHKSList()"
This reverts commit cb3243fbbd.

Sorry, this might do bad things.
2014-06-12 19:36:56 -04:00
John Scipione
1ecf19b82f shortcut_catcher: style overhaul 2014-06-12 19:25:03 -04:00
John Scipione
cb3243fbbd shortcut_catcher: Fix KeyCommandMap::_DeleteHKSList()
You can't increment the list item counter as you delete because the count
decreases as you go. Instead delete the first item until there are no more
items, then delete the list.
2014-06-12 18:45:36 -04:00
John Scipione
2776568d27 Fix BHandler::GetSupportedSuites()
The logic was reversed accidentally in hrev47355

Rewrite the method to make more sense. If data is NULL return
B_BAD_VALUE right away. Otherwise set the status based on the first
operation, if that succeeds perform a second one, and return the
result.

Fixes CID 1222666
2014-06-12 13:57:05 -04:00
John Scipione
edc845a323 Update Locale Kit docs.
Add \since to each method. This was pretty easy to figure out since
the whole kit exists only in Haiku.
2014-06-11 16:48:17 -04:00
John Scipione
219bf21ef6 Style fixes to Locale Kit, focus on docs. 2014-06-11 16:48:02 -04:00
John Scipione
dd3b190b55 Update Game Kit docs.
Add \since to each method.
2014-06-11 16:45:07 -04:00