1858 Commits

Author SHA1 Message Date
Murai Takashi
f7989c0226 Correct comment
Change-Id: I529322e5862bc731ce1775a046ec21106e14c352
Reviewed-on: https://review.haiku-os.org/629
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2018-10-15 14:22:58 +00:00
Augustin Cavalier
45bc01d2f7 ifconfig & Network preferences: Actually trigger scans using BNetworkDevice.
Fixes #12034, and a variety of other strange "no wireless networks
appear" bugs that have plagued Haiku for years.

Change-Id: I734cb8084e8a626b8e03511519609bf80c1559eb
Reviewed-on: https://review.haiku-os.org/552
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2018-09-13 04:13:19 +00:00
Augustin Cavalier
21e99b4766 pkgman: Suppress the erroneous "aborted: No Error" messages on no internet.
Here's what happens:
 * BPackageManager created a BRefreshRepositoryRequest with a BContext
   of an empty DecisionProvider and itself.
 * Since there is no internet access, the FetchFileJobs that the refresh
   class queued fail. Specifically, the first one does, but then as the
   subsequent ones depend on it, they are all aborted.
 * As some jobs were aborted, the StateListener is notified.
 * The state listener of course has the BPackageManager class as one of
   the listeners, and so calls it, because even though the handler methods
   of BRefreshRepositoryRequest, they are powerless to stop event propagation.
 * The BPackageManager's highest subclass' implementation gets called, which is
   of course pkgman's.
 * pkgman decides to DIE() upon receiving word that a job was aborted.

There are thus four potential solutions to this issue:
 * Rewrite the package kit's event & job handling systems to not be so
   screwed up in terms of propagation. Seriously, there is way too much
   stuff that we send to the "user" in here, and as you can see, it can
   get *extremely* convoluted even for supposedly "simple" tasks. This
   is probably the best "long-term" solution; but obviously is far too
   involved for the present.
 * Only partially rework event handling; specifically in the SupportKit to
   allow JobStateListeners to stop further propagation. This is probably
   the best "medium-term" solution.
 * Do not pass the package manager as the JobStateListener to the
   RefreshRepositoryRequest. This would have the downside that the
   regular notifications about download state, etc. would not be returned
   at all, which we don't want. We could make a shim ... but that would be
   a lot of code for little benefit. The prior solution makes more sense.
 * Completely ignore "JobAborted" notices in pkgman. In fact, this is the
   solution that virtually all other consumers of this API take (although
   some of them seem to have TODOs about it), including package_daemon,
   HaikuDepot, etc., and so it's the one I've taken here. If a "job aborted"
   error is actually fatal, then it's the Package Kit's problem.

Fixes #13075.
2018-09-11 01:32:59 -04:00
Augustin Cavalier
7985831a65 bin/multiuser: Do not exit with an error if stdin is not open.
As the comment says, there are a number of scenarios when this is
the case, e.g. non-interactive SSH sessions.

Change-Id: I3a10043820039f344b3f036f7861c81f6fb7ef05
Reviewed-on: https://review.haiku-os.org/499
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2018-08-28 23:34:27 +00:00
Jérôme Duval
81375d4fbb Package Kit: add Zstd compression.
Change-Id: Idbdb7cf1bde659046a88ea69a76e3b5fc4cd7013
Reviewed-on: https://review.haiku-os.org/323
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2018-08-11 23:10:00 +00:00
Augustin Cavalier
1e29bfd7d8 Update all remaining consumers of the FreeBSD compat headers. 2018-07-18 20:10:04 -04:00
Andrew Lindesay
3b17d8dd7f HaikuDepot / PackageKit: Repositories 'Identifier' URL
Repositories are identified with a 'url' in the
remote 'repo.info' file.  There is also a
'base url' which is the URL locally with which
the system is able to access the repository
data on.  There is some confusion between these
two terms in the source.  This change aims to
separate the two out and consistently name them.
The settings for the repository locally also was
not storing these values and that has been fixed.
Debug info about the repositories also did not
display the two urls consistently and will now
also do so.  Finally, HaikuDepot now correlates
locally configured repositories with the data in
HaikuDepotServer using the identifier URL; this
makes the use of mirrors with HaikuDepot possible.

Fixes #13888
Change-Id: I66dfe589b05c24e1ab123a6945352e0f24b60bf1
2018-07-05 20:06:54 +00:00
Augustin Cavalier
a309b7c3a1 bin: Clang warning fixes.
* Functions that call exit() should return void
 * char* -> const char*
 * main returns int, not bool.
2018-06-18 23:18:34 -04:00
Murai Takashi
b08627f310 Fix catching polymorphic type by value
Replace catching polymorphic type std::bad_alloc 'by value'
with 'by reference'.
Pointed by gcc8
2018-05-16 13:49:46 +00:00
Philippe Houdoin
91077c485a /bin/shutdown: fixed bug, was returning non zero even on shutdown
success. Spotted by mcandre, thanks!
2018-05-03 12:22:45 +02:00
Axel Dörfler
a77aa747ea launch_daemon: Added basic logging facility
* The daemon now stores many events in am internal log.
* You can use "launch_roster log" to retrieve it.
2018-04-25 10:10:43 +02:00
Fredrik Holmqvist
aa2c061c3d cppcheck: Shifting 32-bit value by 63 bits is undefined. 2018-04-22 11:47:15 +02:00
Barrett17
80e9e5f3e7 Add new tests to MediaTest 2018-04-06 02:33:26 +02:00
François Revol
4498948fcf recover: Work around use-after-free
Inode::_FindPath() always deletes the inode it uses regardless
the source, including when it's from the HashtableInodeSource.

But the later returned the inode object directly from the hashtable
when it's inside, so it gets deleted bu _FindPath… then reused later on
when searching the hashtable again.

I'm not sure it's the correct solution but at least malloc_debug doesn't
complain anymore.
2018-03-27 23:14:32 +02:00
Barrett17
2cb3cabcb0 MediaClient: Revert debugging edits
* The -a argument ended up in my git commit inadvently,
sorry about that.
2018-03-03 16:20:34 +01:00
Barrett17
6072c6f1cb MediaConnection: Cleanup after disconnect 2018-03-03 16:15:24 +01:00
Hrishi Hiraskar
6dc1f7eb1e [pkgman] pkgman informs if package is already installed.
While installing packages through pkgman, it will inform if specific
package is already installed. Fixes #12447 : [pkgman] inform if a
package is already installed.
Change-Id: I194bc849c42ba52a696a6cb52d87aebaff530f35
2018-02-26 18:33:58 +00:00
Ho Tuan Kiet
9c1f9724c2 Fix various unsafe usages of strcat/strcpy
Coverity ID: 608930, 743872, 743873, 743874, 608932, 608933, 1424961, 609034
Change-Id: I2702dfb402df7eee500617cb9b8d6f567296fc13
2018-01-19 06:32:43 +00:00
ohnx
452ac99fa7 mkdos: Handle memory allocation better
In the kernel and command-line tool, don't leak allocated memory,
even if the tool returns an error.

In the command-line tool, also handle memory allocation errors
nicely by giving the user an OOM message if allocation fails.

Fixes CID 1425367 and 1425224.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
2018-01-03 22:35:58 -05:00
Augustin Cavalier
8a9e1e0d4a Removal of non-Haiku target platform logic from build system (part 1.)
Following recent changes to use libroot_build on Haiku also, it is now
actually impossible to build Haiku components on non-Haiku platforms
(BeOS R5, Dan0, BONE, Zeta), so we can remove any logic related to this.

This is only the first part; still to be removed are:
 * SetSubDirSupportedPlatformsBeOSCompatible
 * HOST_PLATFORM_BEOS_COMPATIBLE
 * TARGET_PLATFORM_BEOS_COMPATIBLE
2017-12-31 16:14:22 -05:00
ohnx
e6c08856dd bin/compress: Remove.
Per #10267, "Most (ported) third-party software should be removed
from the Haiku source repository."

Since HaikuPorts already has the ncompress package, this file
should no longer exist.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Original patch missed modifying the "minimum" definition and the
src/bin/Jamfile, so I took care of that.
2017-12-29 15:33:56 -05:00
Ho Tuan Kiet
5450ee2d87 bin/media_client: return 0 on success
In MediaPlay.cpp, media_play returns non-zero value on failure but forgets to return zero on success.

Coverity CID: 1422617

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
2017-12-29 15:28:38 -05:00
Ho Tuan Kiet
f94f87c710 bin/pc: Mark non-returning function as void
set_var doesn't return any value yet its return type is ULONG, and Coverity freaks out about that. This patch turns that function into a void function.

Coverity CID: 603433

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
2017-12-29 15:28:30 -05:00
Augustin Cavalier
cfafb3da99 rmd160: Remove from tree.
Not used or referenced anywhere.
2017-12-17 13:08:10 -05:00
Augustin Cavalier
3d44a8b6f4 zic: Remove from tree.
Not referenced anywhere or included in the build.
2017-12-17 13:08:10 -05:00
Augustin Cavalier
5e19679ea3 build: Use libroot_build on Haiku.
Previously we just used the system libroot, which of course meant
that when libroot's ABI changed, the build broke. Now we use the full
libroot_build that we do on non-Haiku platforms. The logic for "BeOS-compatible
but not Haiku" does not really apply anymore, so it has been gutted where
appropriate (and libhaikucompat has been decoupled from the build.)

The only caveat here is the change to Errors.h -- we really should be using
the system's one where I included the one from the tree, but for whatever
reason, GCC2 refused to handle the #include_next properly.

Fixes the build breakage of Haiku-on-Haiku by my prior commits (sorry).
2017-12-13 19:47:39 -05:00
Augustin Cavalier
220a7208a3 xres: Add missing braces.
Found by Clang's -Wmisleading-indentation.
2017-12-01 14:24:45 -05:00
Alexander von Gluck IV
272510c371 bfs_tools/bfsinfo: Cleanup output, use human sizes
* Correct some warnings on 64-bit
2017-11-28 14:57:09 -06:00
Alexander von Gluck IV
8f087d87f9 bfs_tools: License clarification to MIT.
* Consulted with Axel D. via IRC to confirm license desires.
2017-11-28 09:26:04 -06:00
Adrien Destugues
4205fc9141 locale: document -c as the shortcut to get message locale again.
It was deprecated in favor of -m, but -m then changed meaning to comply
with POSIX. So restore documentation for -c, and add proper
documentation for -m.
2017-11-23 14:50:11 +01:00
Adrien Destugues
6663167b59 pkgman: improve progress bar
- Do not update more than twice a second
- Do not use tabs, so we can reliably compute the string width
- Cleanup and tweak other parts of the code

There is still a glitch when resizing Terminal, but it isn't as bad as
before. Ideally, using the SIGWINCH signal would solve that, but it is
sent to the app only when you release the mouse after a release
operation, so in our case, it is already too late.
2017-11-21 18:24:44 +01:00
François Revol
587b70d5cd Add a get_driver_settings debugging tool 2017-11-20 11:23:34 +01:00
Adrien Destugues
c312da45a8 media_client: print usage in case of missing arguments
Now the obvious "media_client somefile.wav" will tell you what to do.
2017-11-20 09:44:50 +01:00
Humdinger
16af9b4c61 Style, no functional changes
Make termination consistant with that last commit hrev51521.
As wished and proof-read by waddlesplash. Hope all's well...
2017-11-16 19:47:59 +01:00
Michael Lotz
93596e8037 package_repo: Fix update command when used with relative target.
Renaming of the temporary repo file failed when used with a relative
target path. The path was appended twice in such a case. Also when
used with a specified base directory, the relative temporary repo file
wasn't reachable from the changed working directory.

To fix both cases, create the BEntry pointing at the temporary repo
file before changing the directory and rename it using only the target
leaf name.
2017-11-05 23:04:09 +01:00
Augustin Cavalier
67379bfbd0 pkgman: Fixes to the new download progress meter.
* Make string-splitting UTF8-aware
 * If the window size is too small for the full string, mid-truncate it
 * Ensure the string is long enough if the window size is large.
 * Rework flushing strategy slightly.

Fixes #13750, as well as taos' unrelated issue he reported there.
2017-11-04 16:56:01 +01:00
Augustin Cavalier
a9c1157a2a pkgman: Completely rework download progress indicator.
* Remove the Unicode progress characters, instead change terminal
   background color
 * Include downloaded/total size in the displayed information
 * Include transfer rate (over the last 1s)

Here's a quick screenshot of what it looks like now:
https://i.imgur.com/x4II3Fu.png

"Inspired" by a very old patch by Axel, but almost all of this is my own work.

Fixes #13424.
2017-10-30 14:19:39 +01:00
Jérôme Duval
98b3149ca1 bc: use the outsourced build.
* remove in-tree bc.
2017-10-08 13:28:38 +02:00
Augustin Cavalier
6aff37d1c7 Move SHA256 class to libroot instead of linking libshared into libroot.
Discussed with PulkoMandy and on the haiku-commits mailing list.

Thanks to @jessicah for compile-testing and fixing 2 small issues I missed.
2017-10-03 20:18:26 -04:00
Jessica Hamilton
77815ad59a ftp: rename variable named bool.
* Causes conflicts with <stdbool.h>
2017-09-10 07:35:41 +12:00
Augustin Cavalier
11384b58ba bin/coreutils: Remove; now unused since previous commit. 2017-07-23 11:08:34 -04:00
Augustin Cavalier
95295296cd multiuser: New implementation of su.
We're still using the (now-deprecated) coreutils su, so this is
a replacement for that. It functions almost equivalently,
and supports the major arguments (-l, -c).

(Note that login/su to a non-root user is presently busted, though.
See #13583.)
2017-07-23 11:07:36 -04:00
Augustin Cavalier
eed40cb8c5 multiuser_utils: Add bool chngdir option to setup_environment. 2017-07-23 11:07:36 -04:00
Augustin Cavalier
5cc11bf479 login: Use read_password from multiuser_utils.
Also fix some extant bugs.
2017-07-23 11:07:36 -04:00
Augustin Cavalier
ec1421184a multiuser: Move setup_environment from login to multiuser_utils. 2017-07-23 11:07:36 -04:00
Augustin Cavalier
ab76614d65 ideinfo & idestatus: Remove.
They're useless without the old IDE stack.
2017-06-28 17:55:39 -04:00
James Woodcock
5d5be299d1 multiuser: login process should call setuid() and setgid().
The login process didn't call setuid() or setgid() so all users were
logged in as the super user.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Fixes #13533.
2017-05-26 15:11:02 -04:00
Alexander G. M. Smith
5e7964b0a9 Remove Spurious B_BEOS_DATA_DIRECTORY
There is no DATA directory in BeOS, and its FindDir() doesn't implement
it.  No need for a confusing backwards compatibility to something that
doesn't exist (had my hopes up, was going to move some non-executable
files from AddOns to Data in a program that works in BeOS and Haiku).

The removed enum label doesn't change the directory_which enum order
or count, as it was aliasing the value of another existing enum label
(B_SYSTEM_DATA_DIRECTORY).

Fixes #13470

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
2017-05-08 22:17:53 +02:00
Dario Casalinuovo
4263f2570d media_client: Fix Jamfiles to build correctly 2017-04-28 02:13:51 +02:00
Dario Casalinuovo
dda3a9c309 Move media_client to bin 2017-04-28 02:13:51 +02:00