Commit graph

117 commits

Author SHA1 Message Date
heinrich5991 d29b22a96e Be upfront about completeness of the autogenerated code documentation 2022-06-25 02:21:54 +02:00
Dennis Felsing a6fa123532 Mention code browser in readme 2022-06-25 01:30:06 +02:00
Dennis Felsing 4c69912dd8 pnglite -> libpng in readme 2022-06-22 17:58:22 +02:00
bors[bot] b75289df35
Merge #4829 #5343 #5465
4829: Added map_replace_area tool r=def- a=sctt

Motivation:
sometimes mappers need to copy a certain area from a map to another (but also to a different position of the same map).
that's very time consuming on complex maps, as tiles and quads layers have to be manually copied one by one.

map_replace_area is designed to automatically replace all the tiles and quads from a specific area to another.
`Usage: map_replace_area <from_map> <from_x> <from_y> <to_map> <to_x> <to_y> <width> <height> <output_map>`

PoW screenshots attached below.

note: for the moment map_replace_area suppose that you are working on the same map  (that's what i needed), that means source and destination maps must have the same layers structure, or else an error is returned.
but i understand it might be useful to also work on totally different maps, in that case users must be able specify layers they want to consider by associating source map layers to destination map layers (by using a config file maybe).
i'm probably going to make another PR to add this enhancement in the future.

PoW:
![Screenshot from 2022-03-16 18-08-12](https://user-images.githubusercontent.com/3328841/158650515-17c31639-28f7-4e19-954a-b5734ee82703.png)
![Screenshot from 2022-03-16 18-08-43](https://user-images.githubusercontent.com/3328841/158650512-6e21f2b4-538f-4974-aaa2-2983551d24b4.png)
![Screenshot from 2022-03-16 18-11-50](https://user-images.githubusercontent.com/3328841/158650510-d00a05a9-a2e8-4df2-8674-0c80fd894f66.png)

5343: Add rcon and chat to integration test r=def- a=ChillerDragon

Add more action to the integration test script: chat messages, chat commands, rcon commands.
This unlocks more code coverage at runtime to catch asan issues.

It adds a very restrictive regex on the log format. But I am happy to maintain that in case changes to the log output happen.
The current version is already supporting heinrichs refactor https://github.com/ddnet/ddnet/pull/5036

Also ensure chat messages arrive in the correct format. Would have catched the following issues:
https://github.com/ddnet/ddnet/issues/5342
https://github.com/ddnet/ddnet/issues/5340
https://github.com/ddnet/ddnet/issues/5302
https://github.com/ddnet/ddnet/pull/5126

DEPENDS ON:

https://github.com/ddnet/ddnet/issues/5342
https://github.com/ddnet/ddnet/issues/5340

5465: Change from pnglite to libpng for PNG reading r=def- a=heinrich5991

This is desirable mainly because libpng is maintained and pnglite is
not. pnglite was last updated in 2007 (15 years ago) and probably has a
lot of security vulnerabilities.

libpng is an actively maintained library also used by browsers like
Firefox or Chromium, so it's less likely to contain security
vulnerabilities, also it's more likely to be packaged by Linux
distributions.

This also refuses to load images of types not supported by pnglite,
which allows us to think about backward compatibility while also
introducing libpng.

## Checklist

- [x] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


Co-authored-by: sctt <scottistefano91@gmail.com>
Co-authored-by: term <term@term.sinervis.pri>
Co-authored-by: f <scottistefano91@gmail.com>
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
Co-authored-by: ChillerDragon <ChillerDragon@gmail.com>
Co-authored-by: def <dennis@felsin9.de>
Co-authored-by: Jupeyy <jupjopjap@gmail.com>
2022-06-21 16:21:47 +00:00
Jupeyy 65ad57a448 Change from pnglite to libpng for PNG reading
This is desirable mainly because libpng is maintained and pnglite is
not. pnglite was last updated in 2007 (15 years ago) and probably has a
lot of security vulnerabilities.

libpng is an actively maintained library also used by browsers like
Firefox or Chromium, so it's less likely to contain security
vulnerabilities, also it's more likely to be packaged by Linux
distributions.
2022-06-21 13:37:14 +02:00
Dennis Felsing 79fb7b1f81 Update readme about ddnet-libs (fixes #5377) 2022-06-10 15:08:55 +02:00
def 9a89e58a16 Add lsan.supp for opengl leak (fixes #5296)
See also Jupeyy's explanation in
https://github.com/ddnet/ddnet/issues/4294 for why we want to ignore
this:

> sadly components have no OnDestruct on anything like that
> so aslong it doesn't actually leak it's just non destructed memory

So it's something we allocate once for the entire client lifetime from
my understanding.

=================================================================
==421461==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 411760 byte(s) in 10 object(s) allocated from:
    #0 0x55eaf0c08a29 in malloc (/media/ddnet/integration_test/DDNet+0x736a29)
    #1 0x55eaf0de9f72 in CCommandProcessorFragment_OpenGL2::Cmd_CreateBufferObject(CCommandBuffer::SCommand_CreateBufferObject const*) /media/ddnet/src/engine/client/backend/opengl/backend_opengl.cpp:1898:25
    #2 0x55eaf0dd82f5 in CCommandProcessorFragment_OpenGL::RunCommand(CCommandBuffer::SCommand const*) /media/ddnet/src/engine/client/backend/opengl/backend_opengl.cpp
    #3 0x55eaf0f73229 in CCommandProcessor_SDL_GL::RunBuffer(CCommandBuffer*) /media/ddnet/src/engine/client/backend_sdl.cpp:246:20
    #4 0x55eaf0f70568 in CGraphicsBackend_Threaded::ThreadFunc(void*) /media/ddnet/src/engine/client/backend_sdl.cpp:75:25
    #5 0x55eaf0d679d7 in thread_run(void*) /media/ddnet/src/base/system.cpp:686:2
    #6 0x7f08b788c54c  (/usr/lib/libc.so.6+0x8c54c)

SUMMARY: AddressSanitizer: 411760 byte(s) leaked in 10 allocation(s).
2022-06-05 20:01:02 +02:00
def af610c2bbf Add ubsan.supp to README, add runtime suppression for json.c 2022-04-18 09:42:20 +02:00
Edgar 927f48f0fd
update new code docs location 2022-04-07 10:55:03 +02:00
Jupeyy 486e6bce41 Add comment about generating ddnet-libs for WebAssembly in the README
Fix typo
2022-03-26 07:51:51 +01:00
Jupeyy bb1ed45c3d Emscripten support 2022-03-25 12:42:18 +01:00
Dennis Felsing 747dc1b0ce Add note about gmock version (fixes #4853) 2022-03-23 09:07:11 +01:00
Jupeyy fbeba9eb5f Add Vulkan backend 2022-03-21 12:39:51 +01:00
Edgar 2e5e077348
add link to https://wiki.ddnet.tw/wiki/Development on readme 2022-03-17 18:04:55 +01:00
def 11c49ab75b Add instructions for videorecorder being default (fixes #4804) 2022-03-12 10:44:37 +01:00
bors[bot] e215aeb232
Merge #4768
4768: Videorecorder on by default (also for github builds) r=Jupeyy a=def-

<!-- What is the motivation for the changes of this pull request -->

## Checklist

- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


Co-authored-by: Dennis Felsing <dennis@felsin9.de>
2022-03-02 08:02:32 +00:00
Dennis Felsing c92423362e Videorecorder on by default (also for github builds) 2022-03-01 22:56:24 +01:00
bors[bot] d21232148f
Merge #4749
4749: Fix test run instructions r=Jupeyy a=def-

As reported by ReiTW

<!-- What is the motivation for the changes of this pull request -->

## Checklist

- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


Co-authored-by: Dennis Felsing <dennis@felsin9.de>
2022-03-01 14:58:01 +00:00
Edgar b96379bbce
ups 2022-02-21 17:58:24 +01:00
Edgar 7889b2ed77
Update README.md 2022-02-21 11:18:57 +01:00
Dennis Felsing 8787bbc2ce Fix test run instructions
As reported by ReiTW
2022-02-21 09:46:05 +01:00
Edgar 2ae3adcef5
Add link to doxygen generated docs hosted on wiki.ddnet.tw 2022-02-18 11:18:35 +01:00
Dennis Felsing 43d81bcc93 Add CentOS, RedHat, AlmaLinux instructions 2022-02-08 18:16:31 +01:00
Dennis Felsing 1cf377f172 Disallow start_video outside of video player (fixes #4642) 2022-01-28 21:12:31 +01:00
def 3f537b3463 Add mold linking instructions 2021-12-25 01:06:53 +01:00
bors[bot] 3013466b86
Merge #4392
4392: Add SQL/Score tests r=heinrich5991 a=def-

<!-- What is the motivation for the changes of this pull request -->

## Checklist

- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


Co-authored-by: def <dennis@felsin9.de>
2021-12-20 00:42:03 +00:00
heinrich5991 9ef9ee5d09 README.md: Sort dependencies alphabetically 2021-12-20 00:51:58 +01:00
def f464f148ac Add explicit -DTEST_MYSQL
Since the setup is a bit more manual and not as self-contained, so most
probably don't want to test it locally.
2021-12-19 19:40:20 +01:00
def 522bf75190 Add brew to README 2021-12-18 00:39:52 +01:00
def 4140d936fc Add macOS dependency instructions 2021-12-18 00:39:39 +01:00
def 065b11e649 Add code formatting instructions 2021-12-13 19:02:07 +01:00
def 19fe50420e Update readme (fixes #4425) 2021-12-07 13:34:34 +01:00
def 03a00ac14f Add gmock as dependency to README 2021-03-26 08:51:13 +01:00
def fb7a33d2b5 Add FreeBSD instructions
https://www.freshports.org/games/DDNet
2020-12-08 14:41:35 +01:00
bors[bot] 8167d5da2f
Merge #3352
3352: Add benchmarking section to README r=heinrich5991 a=def-

<!-- What is the motivation for the changes of this pull request -->

## Checklist

- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


Co-authored-by: def <dennis@felsin9.de>
2020-11-28 17:16:44 +00:00
b3z a177ade918
Update brew command
`brew cask install ddnet` is depreciated.
2020-11-27 08:56:22 +01:00
def f523a229b2 Add benchmarking section to README 2020-11-23 13:37:33 +01:00
bors[bot] b17fb2827c
Merge #3107 #3155
3107: Log close error to console r=Jupeyy a=def-



3155: Add memcheck/asan/ubsan to readme r=Jupeyy a=def-

To be linked from https://github.com/ddnet/ddnet/pull/3133

Co-authored-by: def <dennis@felsin9.de>
2020-10-26 02:42:03 +00:00
def 61aa47da90 Add memcheck/asan/ubsan to readme 2020-10-21 14:29:01 +02:00
b3z 670f949a59
Update README.md 2020-10-21 12:26:43 +02:00
b3z 550512abe3
Add installation info for binary. 2020-10-21 12:00:12 +02:00
Edgar 06ede1714c
Add videorecorded depedencies 2020-10-12 12:17:13 +02:00
def cf4cf80ca6 Put dependencies before installation instructions in README
as noticed by Андрей Рудой on Discord
2020-09-09 17:07:05 +02:00
def 3e0e4bd3a8 Add SQLite as dependency in README 2020-08-12 10:29:01 +02:00
def 17deb99030 Document which MySQL/MariaDB versions we require (fixes #2343) 2020-06-24 14:50:15 +02:00
heinrich5991 f339fea748
Merge pull request #2139 from edg-l/pr_add_upnp
Add UPnP support
2020-05-24 22:23:20 +02:00
Edgar 3569e174f2
refactor upnp code 2020-05-24 11:36:43 +02:00
Zwelf 68c8375e31 Add build-essential dependency to debian build instructions
Required for g++ and make
2020-05-12 13:27:56 +02:00
def df278aa5cb Make the github workflow badge link to appropriate page 2020-05-01 10:25:36 +02:00
Arda Demir b7d452d2a0
Libnotify support for linux client (#2099)
Add libnotify support for linux client

Also unify notification management

Make libnotify mandatory for the client. It is installed on 100% of Arch
Linux systems and on 70% of Debian systems. I'd guess the remaining
Debian systems are servers.

Detect dependent libraries of `libnotify` using `pkg-config`. Remove
library-specific code from the game module. Decrement refcount for
libnotify notification object before leaving the function.
2020-04-14 17:53:53 +02:00