This ports an implementation of the FTS functions that can be used to
traverse the file system. They are non-standard, but provided by glibc
and most BSD systems. This ported library implements FTS for musl-based
Linux systems and happens to work on Serenity.
Following the removal of the `drand48` patch to the configure script,
we can now remove this patch as it is no longer needed to prevent an
interpreter hang.
This change explicitly enables support for `libgd` and the lua
terminal in `gnuplot`, while explicitly disabling `cairo` terminals,
which don't work with our `cairo` port. Adding `libgd` as a
dependency requires us to manually link against the dependencies of
`libgd`, as this is not done automatically by the configure script.
This fixes an issue where building `gnuplot` would fail if `libgd`
was already installed.
Previously, this would only be enabled if the `sqlite` port was
already installed. This change explicitly disables the feature, as it
isn't that useful on SerenityOS. This ensures a consistent build
regardless of whether the `sqlite` port is installed or not.
Previously,`openssl` would be used as the crypto backend for `libssh2`
if the `openssl` port was installed and the `libgcrypt` dependency
would be ignored.
With this change we install `openssl` as a dependency and explicitly
specify that it should be used as the crypto backend. We also add
`zlib` as an explicit dependency and specify that `zlib` compression
should be used.
The script previously failed early after building `mandoc`, as it
failed to switch to the correct directory for the next port. With this
change, the script now runs to completion.
This fixes an issue where building `SDL_sound` with the `libphysfs`
port installed would cause the build to fail.
Ogg support has also been enabled. This allows playback of the sound
effects in GLTron.
Both FLAC and `libmodplug` support are currently disabled, even
though the build succeeds with them enabled, as there is currently no
way to test whether they would work or not.
This fixes an issue where `prboom-plus` wouldn't build if the `make`
port was installed. Including this also makes some manually specified
paths unnecessary.
Having this option enabled made `libuuid` link to `libintl` only when
the `gettext` port was installed. This made the `taskwarrior` port
fail to build when `gettext` was installed prior to `libuuid`.
This ensures the required binary files are installed to the correct
location and data files are copied to their default location so the
`--refdir` argument isn't needed when launching the game.
This patch removed some previously unsupported scanf format specifiers.
We still don't support these properly, but we can parse and ignore
them, which is equivalent to what this patch was doing.
This version requires the gettext port as a dependency.
In addition to that, this release has a bug in which it doesn't include
libintl and libiconv properly when building the program.
Therefore, we add a patch that was originally made by Sergey Poznyakoff
after the report of this bug (savannah bug #64441).
All the shellcheck errors are fixed, and output will how have coloured
logs with status symbol.
1. # -> operation completed successfully
2. ~ -> currently processing port
3. * -> information
4. ! -> warning
5. x -> error in processing port
Now, you can use the failfast option to instantly exit the loop
whenever it reports an error while processing any port. Using realpath
of the ports directory to use `cd` operation only once and get rid of
pushd-popd pattern here.
This adds a patch to the SDL2 port to fix a segfault which occurs in
the resampler.
Taken from this upstream commit:
https://github.com/libsdl-org/SDL/commit/78f9710
This fixes a crash we were seeing in the julius port.
The /usr/Ports/packages.db will be used later for tracking available
ports by the upcoming package manager, which will use it to do search
queries, providing metadata on available ports, etc.
Ports that are installed will be registered from now on in the file of
/usr/Ports/installed.db, so that file will be used later on to allow
further management of what is actually installed on the system.
Doing this means we no longer need to maintain our own Doom fork and
we get the newest features of the upstream repository, such as sound
effects and music.
`vim` does not use a mechanism like `config.sub` for determining the
canonical system name from the `--target` triple passed to `configure`.
Instead, it directly executes the `uname` executable on the host. This
leads to it trying to build macOS-specific files on Mac hosts even if we
are compiling for a different platform. To make cross-compilation
possible, developers added a way to override `uname`'s output with
environment variables. Let's set these.
See vim/vim#9338
Obsoletes #11426
Co-Authored-By: unixinspace <unixinspace@users.noreply.github.com>
The `gettext` port comprises of multiple libraries, however `libintl.so`
is the one most commonly used in external executables/libraries, so
porting the patches to this one is enough.
Instead, pass our system name to its (non-autotools) configure script.
Tell it to include a SONAME to avoid breaking dependent ports when
updating zlib.
Updated the version of Cave Story that is pulled from my repo.
The original port of this was missing game files that would've been
extracted on first boot such as .pbm files, and some .pxt files.
Also, update it to the latest revision, which makes it possible to build
without most of the patches we needed before, but now we need our own
definitions for LibC includes and to disable errors for the warning
bad-function-cast.
The 3.0 series is the new LTS version and is supported until 7th
September 2026. The 1.1.1 series which is the previous LTS version has
an end of support on 11th September 2023.
- Add SDL2_net
- Bring CMake file closer to proposed upstream
- Remove opentyrian-data port and merge it into the main port
- Do a release build
- Add correct icon
This commit fixes the build for LLVM 16 now that the toolchain has been
updated, and updates us to the latest available Zig commit.
The main patch changes are making more symbols available (and exposing
them through std.c.serenity) and working around new Zig build
requirements.
Co-Authored-By: Andre Herbst <moormaster@gmx.net>
This can just use the default `tar` invocation, which successfully
recognizes the type automatically. In fact, `.tar.gz` and `.tgz` are
already listed by that particular case anyways.
This commit ports `libjodycode` to Serenity, which is a helper library
containing shared code for utilities written by Jody Bruchon. This
library was required for porting `jdupes`.
Changes the strategy for building Alpine to patch the distribution build
system files (configure, pith/Makefile.in), instead of regenerating them
from scratch.
This reduces fragility of the port as it no longer depends on the build
system having a compatible version of the auto* tools installed.
ResolvesSerenityOS/serenity#19891.
backward-cpp 1.6 wasn't compatible with the latest version of binutils
(which we are using). This is now fixed upstream, but it forces us to
build with the latest commit and not a published version.
... to prevent linking against libs from build host. I.e. if
Ports/fontconfig is already installed imagemagick tries to
link against it in /usr/local/lib and fails to build.
--host=... will already be passed by ../.port_include.sh
Building Boost failed in at least 2 cases using Python 3.11. Since
there is currently no known usage of Boost's Python binding by ports,
we drop the dependency to make the port install successfully again.
CMAKE_INSTALL_DATADIR is used to define the install base dir for
pkgconf files. In this case it defaulted to /usr/local/share/pkgconf
which is not a location searched by default.
See a0c1318830/CMakeLists.txt (L69)
After b98f537, the Zig port's types for Serenity no longer matched what
Serenity actually returned from LibC; this caused weird errors due to
stat() not returning valid values anymore.
This service automatically redirects to a mirror that's geographically
closer, which should make downloading the tarballs faster. The GNU
project recommends this instead of bombarding their top-level downloads
site.
That's what this class really is; in fact that's what the first line of
the comment says it is.
This commit does not rename the main files, since those will contain
other time-related classes in a little bit.
This is a mostly straight-forward rebase of our patches on top of
13.1.0. The spec files needed a change, as GCC no longer supports STABS
debug information, but we were building GCC with support for it.
Highlights of this release include static `operator()`, The Equality
Operator You Are Looking For and extended `constexpr` support.
The entirety of `.port_include.sh` depends on having a current working
directory for the respective port. If we were to remove the directory,
some actions such as `fetch` could fail since our current working
directory would now be an invalid inode.
This issue was exposed by running `./package.sh` followed by
`./package.sh dev` and answering 'y' to the question on cleaning the
build directory.
This version of 'dosbox-staging' uses the meson build system.
Previous versions of dosbox-staging started in windowed mode with a
resolution of 320x200. This version starts in windowed mode with a
resolution of 640x480.
Audio was stuttering a bit in previous versions, but it sounds like it
might have become a bit worse. This is probably because of higher CPU
usage and the audio server/client not able to keep up.
Added a post_install() section to package script which outputs a link to
dosbox-staging's release notes.
"The official project language is American English […]."
5d2e915623/CONTRIBUTING.md (L30)
Here's a short statistic of the occurrences of the word "behavio(u)r":
$ git grep -IPioh 'behaviou?r' | sort | uniq -c | sort -n
2 BEHAVIOR
24 Behaviour
32 behaviour
407 Behavior
992 behavior
Therefore, it is clear that "behaviour" (56 occurrences) should be
regarded a typo, and "behavior" (1401 occurrences) should be preferred.
Note that The occurrences in LibJS are intentionally NOT changed,
because there are taken verbatim from the specification. Hence:
$ git grep -IPioh 'behaviou?r' | sort | uniq -c | sort -n
2 BEHAVIOR
10 behaviour
24 Behaviour
407 Behavior
1014 behavior
Commit 1a97382 introduced the fallible GUI::Application::create() and
removed GUI::Application::construct() breaking the SDL2 port, let's
update it to use the fallible version.
The actual port is SeriousSamClassic, but only The First Encounter is
built and installed. It should be relatively easy to also build and
install The Second Encounter from this port in the future.
This adds 'JonoF's Duke Nukem 3D Port'.
Parts of the network-related stuff has been patched out.
See patch: patches/0002-mmulti.c-ifdef-out-network-related-stuff-we-currentl.patch
Notes:
- Some sound work seems to be needed. During the title screen and
gameplay SFX works, but music does not play. At the ending screen of
Hollywood Holocaust music does play.
- GTK has been disabled, by default it will start in fullscreen, to get
back to windowed mode can be done through the Video Settings.
- OpenGL support has been disabled, as far as I can tell it will need
OpenGL 2.0 support which we do not currently have.
- True 3D renderer has been turned on.
We fail to build `getconf.c` from the builtin examples. And therefore
don't install the rest. If we remove it, we successfully build the
rest of the examples.
We were going about this the wrong way:
* We should not send `SDL_QUIT` events; SDL2 is doing this for us
already when the last window is closed, for example.
* The `SDL_WINDOWEVENT_CLOSE` event does not represent a closed window,
but rather a _request_ from the window manager to close a window.
This resolves the issue with the PrBoom+ port where the quit screen
would not be shown when trying to close the main window.
Previosly we had a very messed up PS1 as the Shell PROMPT is not
unset correctly.
We now provide a default `zshrc` file for the system that uses
sane values for basic categories like aliases, autocompletion and
history management to make the port more usable. It also forces
the prompt to be the default zsh one.
This program has never lived up to its original idea, and has been
broken for years (property editing, etc). It's also unmaintained and
off-by-default since forever.
At this point, Inspector is more of a maintenance burden than a feature,
so this commit removes it from the system, along with the mechanism in
Core::EventLoop that enables it.
If we decide we want the feature again in the future, it can be
reimplemented better. :^)
This consolidates version information, archive's download location,
filename and SHA256 checksum into version.sh. This file is then sourced
from the port script and toolchain build script.
The version.sh script contains the following variables:
- QEMU_VERSION - Version number
- QEMU_ARCHIVE - Filename
- QEMU_ARCHIVE_URL - Full url to download location
- QEMU_ARCHIVE_SHA256SUM - The SHA256 checksum
Previously we relied on the presence of a `python3` binary in the
PATH that has the correct minor version to build the port.
We now first check for the presence of a `python3.minor` binary
in the PATH and use that if found.
This allows users that have multiple Python versions installed
simultaneously (like from a PPA) to build the port without having
to change their main version.
While at it, pass the `--3way` option to give the user something to work
with. Otherwise, Git will just prepare the commit metadata and nothing
else. Note that this has a relatively low chance of working, since the
recorded blob hashes aren't known to a freshly imported repository.
Use single quotes for non-interpolated strings in the 'configopts' and
'depends' sections.
Let each dependency of the 'depends' section be on a separate line.
This is likely because we usually used the host's version of the file.
I happen to use a newer libgpg-error (which is relevant because that
particular executable has been renamed, so my system no longer contains
a file of the name gpg-error-config), which revealed this latent bug.