The previous code used a fixed margin, which would lead to too small
bars with small font sizes (the bar content would not even be visible).
Instead, use the font height as the base for the bar height, which
allows us to use the same code everywhere, no matter the menu item
height (which can vary depending on if there is an icon, etc)
Fixes#15391.
Gets the stage0 bootstrap to run.
Imlementation is probably nonsense at this point.
Change-Id: I10876efbb54314b864c0ad951152757cdb2fd366
Reviewed-on: https://review.haiku-os.org/c/1061
Reviewed-by: waddlesplash <[email protected]>
- Bump year to 2019
- Adjust compat version, use alpha1 for x86 and generic packages, and
beta1 for other architectures since that's where they first appeared
(we will probably bump to beta2 for arm/sparc/ppc when we release
them for real?)
Change-Id: Ibb0968feb28731898776335eba01d34dcb758625
Reviewed-on: https://review.haiku-os.org/c/1069
Reviewed-by: waddlesplash <[email protected]>
Better performance by using a single write, and some servers may not be
happy about getting so many TCP fragments for the HTTP header.
Change-Id: If7139e2a7748ea423d470676e70bd523a89031b2
Reviewed-on: https://review.haiku-os.org/c/909
Reviewed-by: waddlesplash <[email protected]>
On Haiku host, we need _GNU_SOURCE defined when stdio.h is included
to use fopencookie. We did that in libsolv sources, but we now include
stdio from BeOSBuildCompatibility.h which is included from the command
line. So set _GNU_SOURCE from command line as well.
- Allow to configure the baudrate (it is set by the printer settings,
but the transport didn't care)
- Implement reading from the serial port (some printers will need us to
poll the status and the like, as there is usually no hardware flow
control)
Change-Id: I70ba2566595d5dfa5eda3d518614db6514cb2398
This makes it a lot easier to use and test pc_serial, even on machines
with a single serial port (COM2 is getting even more rare than COM1
these days).
The asynchronous listener had no reliable way to access HTTP result and
headers from the callbacks. As the callbacks are triggered
asynchronously, they can be run after the request has carried on and,
for example, followed an HTTP redirect, clearing its internal state.
The HeadersReceived callback now passes a reference to BUrlResult for
the request. There are two cases:
- Synchronous listener: passes a reference to the request's results
directly
- Asynchronous listener: archives a copy of the result into the
notification message, and passes a reference to the unarchived copy.
Unfortunately this comes with several ABI and API breakages:
- Change to the prototype of HeadersReceived()
- Change to the class hierarchy of BUrlResult (implements BArchivable)
All users of HTTP requests will need to be updated if they implemented
in HeadersReceived or used BUrlResult.
The main lock on the cookie jar must always be locked before the rwlocks
for each domain list. This was reversed in one place, leading to a
typical deadlock pattern. Fixes one case of freeze in WebPositive: two
request threads whould interlock, and then anything trying to access the
cookie jar (including the main thread of Web+ to handle javascript
access to cookies) would also lock.
It is used by the media kit, which created a dependency from libmedia to
libbnetapi to openssl.
It is not entirely specific to the network kit, there are some use cases
that don't involve network at all.
The format for the .comment string changed at some point, and this
fallback code would always fail for files built only with "new" versions
of gcc.
Also consider gcc 5 to be ABI version 4, since it is still compatible
with the old ABI (and provides a new one side by side).
See https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
for infos on GCC ABI changes in GCC 5.
Our code to assign outputs to pipes isn't working at the moment. Outputs
stay assigned to whatever the BIOS has set up. I tried to fix this but
didn't find a way yet (only more black screens).
As a workaround, always set both pipes A and B to always point to the
same frame buffer. This gets the display running properly on my Haswell
machine again, however mode setting is still not possible (so you can
only use the mode set by the BIOS).
- This is how it is named in other versions of elf.h (Linux, glibc, possibly more)
- ELF_MAGIC is used by libelf for the same thing, and the defines conflicts,
breaking libelf build on Haiku.
Similar to Linux netconsole, this should send all debug output over UDP
to the broadcast address. It can be listened to with netcat or similar tools.
This could be an easy way to extract KDL info from a crashing machine
when no serial ports are available.
Does not work yet, help welcome.
The boot still crashes some time later, but at least it is easier to
test now.
- PackageFS included in the net boot archive
- Tell the system it is booted "from image" when netbooting
A combination of two problems made things go wrong with the timestamp of
decoded audio.
1) The output buffer size is too small to hold the complete input.
swresample handles this by buffering the input for use the next time it
is called, however repeatedly doing this results in lots of buffering,
and our way to compute the output timestamp from the input does not take
it into account so it does weird things. Moreover, we would need to
empty the buffer by calling swr_convert with NULL input in that case.
Fix: make sure to not feed more data to swr_convert than it can output
in our buffer. This way, no buffering occurs, only the matrixing
conversion.
2) When using planar audio, the "frame size" is a bit different. Instead
of adding sample size * channel count to 1 pointer, we need to add
sample size * 1 to each channel buffer.
Fix: add the "fInputFrameSize" which takes this into account, instead of
misusing fOutputFrameSize for the input.
Fixes#12460.
This code is closer to what we used before for gcc2, and should not
crash there anymore. I could not get exactly the same code to work, but
reduced the difference to a single statement (which makes gcc2 work and
breaks gcc4). This is protected under a guard with appropriate ffmpeg
version test.
This code works for both gcc2 and gcc4 (tested with mp3 and aac files as
well as youtube videos). It still gets the timestamps wrong with ffmpeg
2.4, but I'll try to solve that another time.
While not thread-safe, it should still be possible to use it in
non-threaded programs, or with locking on the application side.
The "thread-safe" implementation we got from NetBSD called abort(),
which is not a good solution. Restore the non-thread-safe
implementation, which should still work.
Fixes issues in openssh and mtr, and possibly other ported apps.
These were all deprecated between releases 0.6 and 0.10 of ffmpeg,
except for one change (renaming of CodecID to AVCodecID) which we can
work around with a typedef. The deprecated functions were still
available in 0.11, but were removed later on after several years of
deprecation.
This makes it possible to build our plugin with any ffmpeg version
between 0.10 and 2.7, so we can now experiment with updating to 2.7 at
least for the gcc4 builds.
* ffmpeg can handle these through ModPlug
* By default, ffmpoeg will not try these formats because the way to
detect them are a bit unsafe (4 bytes at a particular offset in the file
serve as an identifier). So, hint the sniffing by giving it a filename
of ".mod" to get modplug to be used. This does not affect sniffing in
the regular way for other formats.
* Add some common tracked music formats to the muxer table.
* Fix some tracing to use current (as of ffmpeg 0.10) function names and
because some variables were renamed.
Replace avcodec_encode_audio with avcodec_encode_audio2. The latter
provides us with more information on the encoded data, so we can avoid
guessing things on our own. It also handles memory allocations on its
own, which fix some cases where we would provide a too small buffer.
The POSIX standard requires us to allow assert.h to be included multiple
times with differnt values of NDEBUG. So we can't have a global header
guard on the files. However, we must also make sure that we don't
declare functions multiple times in that case. Re-introduce an header
guard on the part of the file where we declare functions, only.
Fixes lots of warnings when building Netsurf.
* The API is saner: no need to build a string with var=value
* It is safer: putenv requires the string passed to it to stay
allocated, although most implementations (Haiku, Linux, BSD, OSX) do not
follow POSIX on this,
* Fix a problem reported in #12298 comments because the variable was set
with extra quotes (putenv does not escape them), leading to Qupzilla not
finding the home dir.
* Killing the thread leaks resources, and it will terminate cleanly and
safely when the destructor exits anyway.
* Fixes#12293. Thanks to ttcoder, jackburton and bonefish for investigating!
* Does not fix#12286. Going to bissect now...
* The DHCP Client is the one configuring interfaces, so it makes no
sense to request address resolution for already configured interfaces
only.
* Fixes#12208
Refactor BResources::WriteResource to return early in case of errors,
instead of checking permanently if (error == B_OK). Makes the code more
readable and removes some useless checks.
* BTab should not assume too much about BTabView, because some apps (eg.
Terminal) completely override the structure of it.
* Use the given owner view in Select/Deselect, rather than trying to
guess from the fTabView.
Fixes tabs not showing in Terminal, mouse not working in Terminal, and
probably some other problems there as the view tree was not correct
anymore.
__res_state can't be used with pthreads involved, instead use
__res_get_state and __res_put_state which maintain a pool of res_state
instances.
Fixes#12195.
* Some NULL checks were missing, but on 32-bit machines recover will still fail on my big data partition as it goes out of memory.
* Pack structures that are mapped to on-disk data, so when using a 64-bit compiler, no padding is inserted. Hopefully with 8GB of RAM I have enough to recover my data.
* format strings
* wrong parameters passed to Inode::CopyTo
The 64-bit version does not detect any inodes on my disk, whereas the
32-bit version does. So, more work is needed.
These files are required for netresolv functionality, and there is no
real use in modifying them as settings files. Restore the previous
behavior, the files are stored in data and part of the Haiku package.
This means there is no need for a fresh install from image to get the
files anymore.
Fixes#12156.
* By setting HDRGRIST to match SOURCE_GRIST in MultiArchDirSetup, the
include scanning in Jam will work properly: the generated header will
have the same grist as what the include scan looks for.
* Remove the now unneeded workaround from netresolv Jamfile.
* The HTA website is no more and we switched to pootle with a different
way to commit the translations.
* Git has no properties so the propset script can't be used anymore.
* Not used directly by the build system or even included in jamfiles
* Was mostly untouched (save for an OpenBeOS to Haiku rename) since the
migration from CVS.
* Get it from upstream if you need it: https://github.com/mjradwin/stubgen
netresolv (and libbind) won't cache DNS requests, which can result in a
lot of DNS requests being made for the same host. Implement a simple
cache in RAM (local to each application) which will keep the most
recently requested addresses cached. This can speed up loading of an
HTTP page a lot, by saving a DNS request for each resource stored on the
same server as the main page.
libbind development was transferred to the NetBSD project at
http://wiki.netbsd.org/individual-software-releases/netresolv/
There isn't an official release yet, but they provide a set of patches
against the latest libbind release.
* Remove all files we don't use
* Merge the changes to the remaining files
* Add some new files we need
* Move getifaddrs implementation to libnetwork (instead of libbnetapi)
so it can be used by netresolv.
Fixes#8293 : netresolv uses getifaddrs to determine if there is a local
IPv6 address. If there is not, it will not return AAAA records.