I tested the consumers of physfs with 3.0.2 (except games/love because I
have no suitable ROMs/cartridges) and found no regression on brief
testing. As mentioned before, dxx-rebirth that is BROKEN on clang arches
since the clang update can be bumped to a newer version that requires
physfs-3.0.2 and then builds and runs again.

games/blobby segfaults with both physfs-3.0.1p0 and 3.0.2. I have
attached a backtrace from the corefile after building blobby with -O0
and -g. It's C++ and may need a closer look to figure out why it's
apparently broken (on both my amd64/Ryzen/amdgpu desktop and my
amd64/Intel Skylake laptop).

List of all consumers of physfs and sdl-sound (which depends on
physfs):
devel/sdl-sound
games/barony
games/blobby
games/colobot/colobot
games/hedgewars
games/lincity-ng
games/love
games/neverball
games/solarus/solarus
games/sumwars
games/warzone2100
emulators/dosbox
games/gargoyle
games/roadfighter

On Mon, Jun 24, 2019 at 11:05:06PM +0200, Klemens Nanni wrote:
[...]
> > Add NO_TEST=Yes while here.
> There is a test program in ${WRKSRC}/test/.

That is a very weird test program - test_physfs is installed into
$PREFIX/bin, and it's an interactive prompt to open/mount/list
supported archives. It's much more an interactive version of the tool
than a unit test suite. I guess that's why this wasn't addressed as a
test previously.
I see the following options:
1. We consider test_physfs just part of the installed program and set
NO_TEST=Yes.
2. We consider it an interactive test of the library functions. This
could potentially be set up with a test target that executes it in
WRKBUILD. I don't think this will be very useful given how unwieldy and
non-automatic it is.
(There's a Debian man page which doesn't help much to decide this IMO
[1].)

[...]
> HOMEPAGE has TLS.

Good catch, I added that!

> Please adapt the license marker.

My bad, fixed along with the HOMEPAGE in new diff below

[1] https://manpages.debian.org/experimental/libphysfs-dev/test_physfs.1.en.html

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/physfs/Makefile,v
retrieving revision 1.14
diff -u -p -r1.14 Makefile
--- Makefile    11 Dec 2018 21:30:29 -0000      1.14
+++ Makefile    11 Jul 2019 03:58:59 -0000
@@ -2,21 +2,23 @@
 
 COMMENT=       library to provide abstract access to various archives
 
-DISTNAME=      physfs-3.0.1
-REVISION=      0
+DISTNAME=      physfs-3.0.2
 CATEGORIES=    devel
 MASTER_SITES=  ${HOMEPAGE}downloads/
 EXTRACT_SUFX=  .tar.bz2
 
 SHARED_LIBS=   physfs          3.0
 
-HOMEPAGE=      http://icculus.org/physfs/
+HOMEPAGE=      https://icculus.org/physfs/
+MAINTAINER=    Thomas Frohwein <t...@openbsd.org>
 
 # ZLib
-PERMIT_PACKAGE_CDROM=  Yes
+PERMIT_PACKAGE=        Yes
 
-WANTLIB=       c curses pthread readline z
+WANTLIB=       c curses pthread readline
 
 MODULES=       devel/cmake
+
+NO_TEST=       Yes
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/physfs/distinfo,v
retrieving revision 1.8
diff -u -p -r1.8 distinfo
--- distinfo    11 Jul 2018 16:05:14 -0000      1.8
+++ distinfo    11 Jul 2019 03:58:59 -0000
@@ -1,2 +1,2 @@
-SHA256 (physfs-3.0.1.tar.bz2) = t3ufhTFo2WNqRPdfyjcrNjEG9S14nRii93Y5e/EX8vE=
-SIZE (physfs-3.0.1.tar.bz2) = 194638
+SHA256 (physfs-3.0.2.tar.bz2) = ME33YgbWM99TYOc4sTjJToLM8IblC6hPRW0/hDL5+GM=
+SIZE (physfs-3.0.2.tar.bz2) = 194888
GNU gdb (GDB) 7.12.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-openbsd6.5".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from blobby...done.
[New process 174095]
Core was generated by `blobby'.
Program terminated with signal SIGILL, Illegal instruction.
#0  TextManager::createTextManager (langname=...)
    at /usr/ports/pobj/blobby-1.0rc3/blobby-1.0rc3/src/TextManager.cpp:51
51              if(!loaded){
(gdb) bt full
#0  TextManager::createTextManager (langname=...)
    at /usr/ports/pobj/blobby-1.0rc3/blobby-1.0rc3/src/TextManager.cpp:51
        langfile = {<std::__1::__basic_string_common<true>> = {<No data 
fields>}, 
          static __short_mask = 1, static __long_mask = 1, 
          __r_ = 
{<std::__1::__compressed_pair_elem<std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, 0, false>> = 
{__value_ = {{__l = {
                    __cap_ = 7954869214657997846, __size_ = 1819113518, __data_ 
= 0x0}, __s = {{
                      __size_ = 22 '\026', __lx = 22 '\026'}, 
                    __data_ = "lang_en.xml", '\000' <repeats 11 times>}, __r = 
{__words = {
                      7954869214657997846, 1819113518, 
                      0}}}}}, 
<std::__1::__compressed_pair_elem<std::__1::allocator<char>, 1, true>> = 
{<std::__1::allocator<char>> = {<No data fields>}, <No data fields>}, <No data 
fields>}, 
          static npos = 18446744073709551615}
        loaded = true
        fle = @0x797b9b2f141: {<FileException> = {<FileSystemException> = 
<invalid address>, 
            filename = {<std::__1::__basic_string_common<true>> = {<No data 
fields>}, 
              static __short_mask = 1, static __long_mask = 1, 
              __r_ = 
{<std::__1::__compressed_pair_elem<std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, 0, false>> = 
{__value_ = {{__l = {
                        __cap_ = 5486541252694203201, __size_ = 
9515824609316379963, 
                        __data_ = 0x4cc3cccc00000002 <error: Cannot access 
memory at address 0x4cc3cccc00000002>}, __s = {{__size_ = 65 'A', __lx = 65 
'A'}, 
                        __data_ = 
"[]L3\034$L;\035\071\257\020\000\017\204\002\000\000\000\314\314\303L"}, __r = 
{__words = {5486541252694203201, 9515824609316379963, 
                          5531489943886495746}}}}}, 
<std::__1::__compressed_pair_elem<std::__1::allocator<char>, 1, true>> = 
{<std::__1::allocator<char>> = {<No data fields>}, <No data fields>}, <No data 
fields>}, static npos = 18446744073709551615}}, <PhysfsException> = {
            mPhysfsErrorMsg = {<std::__1::__basic_string_common<true>> = {<No 
data fields>}, 
              static __short_mask = 1, static __long_mask = 1, 
              __r_ = 
{<std::__1::__compressed_pair_elem<std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, 0, false>> = 
{__value_ = {{__l = {
                        __cap_ = 5999328556421030940, __size_ = 
10666086634097509192, 
                        __data_ = 0x4810c083480011ea <error: Cannot access 
memory at address 0x4810c083480011ea>}, __s = {{__size_ = 28 '\034', __lx = 28 
'\034'}, 
                        __data_ = 
"$UH\211\345ASH\203\354HH\215\005\224\352\021\000H\203\300\020H"}, __r = 
{__words = {5999328556421030940, 10666086634097509192, 
                          5192862040439394794}}}}}, 
<std::__1::__compressed_pair_elem<std::__1::allocator<char>, 1, true>> = 
{<std::__1::allocator<char>> = {<No data fields>}, <No data fields>}, <No data 
fields>}, static npos = 18446744073709551615}}, 
          error = {<std::__1::__basic_string_common<true>> = {<No data 
fields>}, 
            static __short_mask = 1, static __long_mask = 1, 
            __r_ = 
{<std::__1::__compressed_pair_elem<std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, 0, false>> = 
{__value_ = {{__l = {
                      __cap_ = 5255838802319015305, __size_ = 1014782953353, 
                      __data_ = 0xec458bd07d894800 <error: Cannot access memory 
at address 0xec458bd07d894800>}, __s = {{__size_ = 137 '\211', __lx = -119 
'\211'}, 
                      __data_ = 
"}\360H\213}\360H\211\a\307E\354\000\000\000\000H\211}Ћ", <incomplete sequence 
\354>}, __r = {__words = {5255838802319015305, 1014782953353, 
                        17025167693919635456}}}}}, 
<std::__1::__compressed_pair_elem<std::__1::allocator<char>, 1, true>> = 
{<std::__1::allocator<char>> = {<No data fields>}, <No data fields>}, <No data 
fields>}, static npos = 18446744073709551615}}
#1  0x00000797b9b4bb79 in main (argc=1, argv=0x7f7ffffeda58)
    at /usr/ports/pobj/blobby-1.0rc3/blobby-1.0rc3/src/main.cpp:170
        gameConfig = {<IUserConfigReader> = {
            _vptr$IUserConfigReader = 0x797b9c4dc20 <vtable for 
UserConfig+16>}, 
          mVars = {<std::__1::__vector_base<UserConfigVar*, 
std::__1::allocator<UserConfigVar*> >> = 
{<std::__1::__vector_base_common<true>> = {<No data fields>}, __begin_ = 
0x799d23a4200, 
              __end_ = 0x799d23a42f0, 
              __end_cap_ = {<std::__1::__compressed_pair_elem<UserConfigVar**, 
0, false>> = {
                  __value_ = 0x799d23a4300}, 
<std::__1::__compressed_pair_elem<std::__1::allocator<UserConfigVar*>, 1, 
true>> = {<std::__1::allocator<UserConfigVar*>> = {<No data fields>}, <No data 
fields>}, <No data fields>}}, <No data fields>}, mChangeFlag = 74}
        scontroller = {mGameFPS = -15.9575958, mRealFPS = 2.72552551e-42, mFPS 
= -1, 
          mFPSCounter = -1, mFramedrop = false, mDrawFPS = false, static 
mMainInstance = 0x0, 
          mOldTicks = 0, mBeginSecond = 4294967292, mCounter = -1}
        inputmgr = 0x797b9b49875 
<std::__1::pair<std::__1::__tree_iterator<std::__1::__value_type<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > >, 
std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > >, void*>*, long>, 
bool>::pair<std::__1::__tree_iterator<std::__1::__value_type<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > >, 
std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > >, void*>*, long>, bool&, 
false>(std::__1::__tree_iterator<std::__1::__value_type<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > >, 
std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > >, void*>*, long>&&, bool&)+69>
        running = 32639
        bg = {<std::__1::__basic_string_common<true>> = {<No data fields>}, 
          static __short_mask = 1, static __long_mask = 1, 
          __r_ = 
{<std::__1::__compressed_pair_elem<std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, 0, false>> = 
{__value_ = {{__l = {
                    __cap_ = 8358745980040, __size_ = 8358745980032, 
                    __data_ = 0x7f7ffffed850 "`\311\006\206\232\a"}, __s = 
{{__size_ = 136 '\210', 
                      __lx = -120 '\210'}, 
                    __data_ = 
"\274\025,\232\a\000\000\200\274\025,\232\a\000\000P\330\376\377\177\177\000"}, 
__r = {__words = {8358745980040, 8358745980032, 
                      140187732465744}}}}}, 
<std::__1::__compressed_pair_elem<std::__1::allocator<char>, 1, true>> = 
{<std::__1::allocator<char>> = {<No data fields>}, <No data fields>}, <No data 
fields>}, static npos = 18446744073709551615}
        lastfps = 0
        filesys = {<boost::noncopyable_::noncopyable> = {<No data fields>}, <No 
data fields>}
        rmanager = 0x0
        smanager = 0x0
        e = @0x797b9b4a206: {_vptr$exception = 0x4c5d5b4138c48348}
(gdb) quyit

Reply via email to