Warsow port. I think we can help each other.

Leonid Bobrov mazocomp at disroot.org
Sat May 18 11:11:25 UTC 2019


On Sat, May 18, 2019 at 10:31:04AM +0000, Alexey Dokuchaev wrote:
> On Tue, May 14, 2019 at 01:39:43PM +0300, Leonid Bobrov wrote:
> > I've finished porting Warsow on my side, I hope you'll use my patches
> > to resurrect appropriate ports and Warsow will just work at FreeBSD.
> > 
> > https://github.com/mazocomp/openbsd-wip/tree/warsow/games/warsow/
> > https://github.com/mazocomp/openbsd-wip/tree/warsow/games/warsow-data/
> 
> I had update almost ready but never committed it.  I'll take a lot at
> your patches, thanks.  Would you like to take over maintainership?
>
> ./danfe
>

Yes, I want to be maintainer. Also I recently made a fork of Warsow 2.1
which should suit FreeBSD ports, OpenBSD ports, pkgsrc and Ravenports:
https://github.com/OrangeGrayCyan/warsow

Please if you have more patches, send them to my fork, I will merge them
and create a new tag, that way I'll keep patches in sync between *BSD
and Solaris/illumos.

That's a patched version of warsow_21_sdk.tar.gz, so you won't find
patches unless you run a diff(1) against files in warsow_21_sdk.tar.gz,
but if you are interested what exactly I did:
* No suffixes in libraries' and binaries' names which tell about for
what OS and processor architecture they were compiled.
* Removed C and C++ flags which should be given by ports systems.
* Support for pkgsrc and Ravenports in FindSDL2.cmake
* ar(1) won't receive linker flags.
* -std=gnu11 flag reduces amount of warnings.
* -Wpedantic flag should help cleaning code in the future.
* Use sendfile() at DragonFly BSD and FreeBSD, also implement one at all
other OSes.
* DATADIR macro defined by CMakeLists.txt to point to system-wide
directory with data files instead of current directory.
* Unquote library names in CMakeLists.txt files.
* BUILDSTRING, OSNAME, CPUSTRING, LIB_DIRECTORY, LIB_PREFIX and
LIB_SUFFIX macros are defined by CMakeLists.txt
* System-wide libraries will never be dlopen(3)'ed.
* AngelScript 2.29.2 is built and statically linked.
* Windows, MacOS and Linux libraries in modules_21.pk3 are ignored.
* Many matches for ${CMAKE_SYSTEM_NAME} were changed to WIN32, APPLE and
UNIX.
* <sys/param.h> is not only included at MacOS, but at every Unix-like
system.
* <alloca.h> should only be included at Linux.
* -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 flags were removed to
fix build break at FreeBSD.
* find_package(OpenGL) should add -I/usr/X11R6/include flag.
* All #if defined() were carefully changed to something like:
```
#if defined(_WIN32)
...
#elif defined(__APPLE__)
...
#elif defined(__ANDROID__)
...
#else
...
#endif
```
* SDL_SetWindowIcon() is commented because of buffer overflow in SDL2:
https://github.com/mazocomp/openbsd-wip/blob/3924bc18d05ded21bf0f69def7f1826ae92b2150/games/warsow/BACKTRACE

* SDL2 is a required dependency.
* readdir64 and dirent64 are defined at systems other than Linux.
* Remove unnecessary files which make source tarball waste 500 MB of
disk space.

I am planning to add install target to CMakeLists.txt, but right now I
don't know how to do it.


More information about the freebsd-ports mailing list