Bug 275303 - archivers/minizip-ng: Update to 4.0.5
Summary: archivers/minizip-ng: Update to 4.0.5
Status: In Progress
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Loïc Bartoletti
URL: https://github.com/zlib-ng/minizip-ng...
Keywords:
Depends on: 275402
Blocks:
  Show dependency treegraph
 
Reported: 2023-11-24 11:09 UTC by Alastair Hogge
Modified: 2024-04-22 12:26 UTC (History)
3 users (show)

See Also:
lbartoletti: maintainer-feedback+


Attachments
Update to 4.0.3 (2.65 KB, patch)
2023-11-24 11:09 UTC, Alastair Hogge
no flags Details | Diff
Update to 4.0.4 (2.66 KB, patch)
2024-02-12 01:09 UTC, Alastair Hogge
no flags Details | Diff
Update to 4.0.5 (2.17 KB, patch)
2024-03-25 20:41 UTC, Vladimir Druzenko
vvd: maintainer-approval?
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alastair Hogge 2023-11-24 11:09:47 UTC
Created attachment 246537 [details]
Update to 4.0.3

Hello,

While unbundling minizip from emulators/qmc2 (while moving it from WebKit to Webegnine), I noticed that minizip-ng was outdated, so here is my attempt to update it.

Update minizip-ng to 4.0.3:
https://github.com/zlib-ng/minizip-ng/compare/3.0.8...4.0.3

Thanks.
Comment 1 Alastair Hogge 2023-11-24 11:11:29 UTC
poudriere-testport:

> 12.4-{amd64,i386}-release: OK
> 13.2-{amd64,i386}-release: OK
> 14.0-{amd64,i386}-release: OK
> main-{amd64,i386}:         OK
Comment 2 Alastair Hogge 2023-11-25 06:08:55 UTC
Forgot to add, pathfix was added to ${USES} because CMake is fixed to install pkg-config data in /usr/local/lib.
Comment 3 Loïc Bartoletti freebsd_committer freebsd_triage 2023-11-27 19:52:40 UTC
Thanks, lgtm, I'm building depending ports and push the commit after.
Comment 4 Alastair Hogge 2023-11-28 03:24:01 UTC
(In reply to Loïc Bartoletti from comment #3)
Thanks.
Comment 5 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-11 20:40:13 UTC
ping
Comment 6 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-11 20:48:16 UTC
Is it correct:
+lib/libminizip-ng.so.1
+lib/libminizip-ng.so.4.0.3
?

Maybe:
+lib/libminizip-ng.so.4
+lib/libminizip-ng.so.4.0.3
?
Comment 7 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-11 20:49:12 UTC
4.0.4 released:
https://github.com/zlib-ng/minizip-ng/releases/tag/4.0.4
Comment 8 Alastair Hogge 2024-02-12 01:09:17 UTC
Created attachment 248381 [details]
Update to 4.0.4

Update minizip-ng to 4.0.4:
https://github.com/zlib-ng/minizip-ng/compare/3.0.8...4.0.4
Comment 9 Alastair Hogge 2024-02-12 01:15:08 UTC
(In reply to Vladimir Druzenko from comment #6)
How should this be reflected in the Port? Install lib/libminizip-ng.so.1 as lib/libminizip-ng.so.4?
Comment 10 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-12 10:28:10 UTC
(In reply to Alastair Hogge from comment #9)
It's look "bizarre/weird":
libminizip-ng.so -> libminizip-ng.so.1
libminizip-ng.so.1 -> libminizip-ng.so.4.0.4
libminizip-ng.so.4.0.4

Moreover, earlier it was lib/libminizip-ng.so.3.

Also we need to bump all(?) consumers:
emulators/qmc2
emulators/dolphin-emu
devel/axmldec
graphics/blender
graphics/opencolorio
Comment 11 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-12 11:50:37 UTC
Attached patch build fine for me on live 13.2-p9 amd64.
Comment 12 Alastair Hogge 2024-02-12 12:57:55 UTC
I believe the default compatibility mode, MZ_COMPAT will set the shared object version to 1, otherwise it is 4:

https://github.com/zlib-ng/minizip-ng/blob/13b01a74a44108557e00c78ffac54e4fae7f8c7f/CMakeLists.txt#L616
Comment 13 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-12 13:52:11 UTC
(In reply to Alastair Hogge from comment #12)
Do we need it?
Comment 14 Alastair Hogge 2024-02-12 14:02:59 UTC
(In reply to Vladimir Druzenko from comment #13)

Not sure. I will OPTION'ify MZ_COMPAT and test with emulators/qmc2, however, that could be a few days away.
Comment 15 Loïc Bartoletti freebsd_committer freebsd_triage 2024-02-14 04:54:37 UTC
At least emulators/dolphin-emu doesn't build with minizip-ng 4.0.4:

/wrkdirs/usr/ports/emulators/dolphin-emu/work/dolphin-8c2a1c1/Source/Core/UICommon/ResourcePack/ResourcePack.cpp:39:7: error: no matching function for call to 'unzLocateFile'
  if (unzLocateFile(file, "manifest.json", nullptr) == UNZ_END_OF_LIST_OF_FILE)
      ^~~~~~~~~~~~~
/usr/local/include/minizip-ng/mz_compat.h:364:17: note: candidate function not viable: no known conversion from 'std::nullptr_t' to 'unzFileNameCase' (aka 'int') for 3rd argument
ZEXPORT int     unzLocateFile(unzFile file, const char *filename, unzFileNameCase filename_case);
                ^
/wrkdirs/usr/ports/emulators/dolphin-emu/work/dolphin-8c2a1c1/Source/Core/UICommon/ResourcePack/ResourcePack.cpp:66:7: error: no matching function for call to 'unzLocateFile'
  if (unzLocateFile(file, "logo.png", nullptr) != UNZ_END_OF_LIST_OF_FILE)
      ^~~~~~~~~~~~~
/usr/local/include/minizip-ng/mz_compat.h:364:17: note: candidate function not viable: no known conversion from 'std::nullptr_t' to 'unzFileNameCase' (aka 'int') for 3rd argument
ZEXPORT int     unzLocateFile(unzFile file, const char *filename, unzFileNameCase filename_case);
                ^
2 errors generated.
ninja: build stopped: subcommand failed.
*** Error code 1

Stop.
make: stopped in /usr/ports/emulators/dolphin-emu
Comment 16 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-14 09:57:30 UTC
Added maintainer of the emulators/dolphin-emu to CC.
Maybe maintainer can fix it. Or we need to create archivers/minizip-ng4 (or archivers/minizip-ng3).
Comment 17 commit-hook freebsd_committer freebsd_triage 2024-02-14 15:05:39 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2bb42eb19eff8bd5b5b5333f6341dbe3d0a038f3

commit 2bb42eb19eff8bd5b5b5333f6341dbe3d0a038f3
Author:     Ganael LAPLANCHE <martymac@FreeBSD.org>
AuthorDate: 2024-02-14 15:02:31 +0000
Commit:     Ganael LAPLANCHE <martymac@FreeBSD.org>
CommitDate: 2024-02-14 15:02:31 +0000

    emulators/dolphin-emu: Fix build with upcoming minizip-ng 4.0.4

    PR:             275303
    Reported by:    lbartoletti

 emulators/dolphin-emu/Makefile                     |  2 +-
 ...re-UICommon-ResourcePack-ResourcePack.cpp (new) | 27 ++++++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)
Comment 18 Ganael LAPLANCHE freebsd_committer freebsd_triage 2024-02-14 15:06:35 UTC
Hello folks,

Thanks for having added me to this PR.

FYI, I've just pushed a patch to emulators/dolphin-emu that fixes build problems with minizip-ng 4.0.4.

Cheers,

Ganael.
Comment 19 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-17 11:31:30 UTC
New versions of the graphics/blender and graphics/opencolorio build fine with archivers/minizip-ng 4.0.4.

emulators/qmc2 and devel/axmldec are not tested.
Comment 20 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-19 07:00:22 UTC
emulators/qmc2 and devel/axmldec build fine with archivers/minizip-ng 4.0.4 in poudriere 13.2-p9 amd64.
Comment 21 Alastair Hogge 2024-02-19 12:16:23 UTC
(In reply to Vladimir Druzenko from comment #20)

Thanks. I am doing the testport run now. I do recall testing all this the last time emulators/qmc2[1] was updated, when the external dependency on minizip-ng was added.

I will report back when the 6 runs complete...overnight.

1: bug #275324
Comment 22 Alastair Hogge 2024-02-20 03:38:13 UTC
So far poudriere-testport reports:

> 13.2-amd64-release: OK
> 14.0-amd64-release: OK
> main-amd64:         OK

main-i386 is failing:
> --- ../../lib/libQt5WebEngineCore.so.5.15.16 ---
> rm -f libQt5WebEngineCore.so.5.15.16 libQt5WebEngineCore.so libQt5WebEngineCore.so.5 libQt5WebEngineCore.so.5.15
> c++ -B/usr/local/bin -Wl,--undefined-version -Wl,--as-needed -fstack-protector-strong @/wrkdirs/usr/ports/www/qt5-webengine/work/.build/src/core/release/QtWebEngineCore_o.rsp -Wl,--start-group @/wrkdirs/usr/ports/www/qt5-webengine/work/.build/src/core/release/QtWebEngineCore_a.rsp -Wl,--end-group -Wl,-z,noexecstack -Wl,--build-id=sha1 -fPIC -Wl,-z,relro -Wl,-z,now -m32 -Wl,-O2 -Wl,--gc-sections -rdynamic -Wl,--undefined-version -fstack-protector-strong -pthread -Wl,-rpath=/usr/local/lib/qt5 -Wl,-whole-archive -lqtwebenginecoreapi -Wl,-no-whole-archive -Wl,--version-script,QtWebEngineCore.version -pthread -Wl,-rpath,/usr/local/lib/qt5 -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5WebEngineCore.so.5 -o libQt5WebEngineCore.so.5.15.16   -L/wrkdirs/usr/ports/www/qt5-webengine/work/.build/lib -L/usr/local/lib /usr/local/lib/qt5/libQt5Quick.so /usr/local/lib/qt5/libQt5Gui.so /usr/local/lib/qt5/libQt5QmlModels.so /usr/local/lib/qt5/libQt5WebChannel.so /usr/local/lib/qt5/libQt5Qml.so /usr/local/lib/qt5/libQt5Network.so /usr/local/lib/qt5/libQt5Positioning.so /usr/local/lib/qt5/libQt5Core.so -lGL -lpthread -lnss3 -lsmime3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -ldl -lexecinfo -lkvm -lutil -lz -levent -lrt -ljpeg -lm -lopus -lavcodec -lavformat -lavutil -lopenh264 -lvpx -lX11 -lXcomposite -lXdamage -lXext -lXfixes -lXrender -lXrandr -lXtst -lpng16 -lwebp -lwebpdemux -lwebpmux -lfreetype -lexpat -lfontconfig -lharfbuzz-subharfbuzz -lre2 -lX11-xcb -lxcb -lxkbcommon -ldbus-1 -lXi -lpci -lasound -lsnappy -lxml2 -lxslt -lminizip -llcms2 -llcms2_fast_float -llcms2_threaded -L/wrkdirs/usr/ports/www/qt5-webengine/work/.build/src/core/api/release -lGL 
> /usr/local/bin/ld: /usr/lib/libgcc_s.so: error adding symbols: memory exhausted
> c++: error: linker command failed with exit code 1 (use -v to see invocation)
> *** [../../lib/libQt5WebEngineCore.so.5.15.16] Error code 1
Comment 23 Loïc Bartoletti freebsd_committer freebsd_triage 2024-02-21 12:28:29 UTC
(In reply to Alastair Hogge from comment #22)
Seems a problem with your memory in poudriere.

VVD@ fluffy@ you can commit the patches related to minizip-ng and others (blender, opencolorio, etc)
Comment 24 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-25 07:47:44 UTC
(In reply to Alastair Hogge from comment #22)
What is this:
> main-i386 is failing:
> --- ../../lib/libQt5WebEngineCore.so.5.15.16 ---
?

Just did testport on 13.2 i386 without errors.
Comment 25 Alastair Hogge 2024-02-25 08:30:42 UTC
(In reply to Vladimir Druzenko from comment #24)

I do not know, so I updated hosts, and jails, and poudriere-testport has started the run for the i386 releases and main, but I will not know for some hours, sorry.
Comment 26 Alastair Hogge 2024-02-25 23:45:07 UTC
Bug #277287 has allowed me to progress further, however, the main-i386 build is still failing on www/qt5-webengine due do to memory exhaustion, and 14.0-i386-release fails at bug #277277.
Comment 27 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-26 00:15:29 UTC
(In reply to Alastair Hogge from comment #26)
> www/qt5-webengine
It's "archivers/minizip-ng: Update to 4.0.4" - why do you build www/qt5-webengine?
I don't understand…
Comment 28 Alastair Hogge 2024-02-26 00:29:15 UTC
(In reply to Vladimir Druzenko from comment #27)

Perhaps I have misunderstood comment #19, I thought you were after a test against emulators/qmc2 with minizip-ng-4.0.4. If that is not the case, then minizip-ng-4.0.4 has passed on the following:

> 12.4-{amd64,i386}-release: OK
> 13.2-{amd64,i386}-release: OK
> 14.0-{amd64,i386}-release: OK
> main-{amd64,i386}:         OK

Bug #275324 was the origin for the original 4.0.3 update, at that time both minizip-ng and qmc2 completed:

> 12.4-{amd64,i386}-release: OK
> 13.2-{amd64,i386}-release: OK
> 14.0-{amd64,i386}-release: OK
> main-{amd64,i386}:         OK

It is only recently that I am having problems with qt5 on i386, tho, I believe that is not relevant because we are only interested in minizip-ng-4.0.4.
Comment 29 Vladimir Druzenko freebsd_committer freebsd_triage 2024-02-26 00:55:20 UTC
(In reply to Alastair Hogge from comment #28)
Sometimes it's impossible to build all consumers on all supported platforms.
For example, if the consumer depends on another port that doesn't build on this platform (our case). Or if you don't have hardware for test (ppc*, arm*, etc).
If this port is very popular and have a lot of consumers, then ask for exp-run.
archivers/minizip-ng have few not popular consumers - build it on 13.2, 14.0 amd64 and i386 + build consumers on at least one platform is enough. IMHO.
Comment 30 Alastair Hogge 2024-02-26 01:33:19 UTC
(In reply to Vladimir Druzenko from comment #29)

OK, thanks for clarifying, and in light of that, I can report that the poudriere-testport run of minizip-ng-4.0.4 completed (2024-02-26):

> 13.2-{amd64,i386}-release: OK
> 14.0-{amd64,i386}-release: OK
> main-{amd64,i386}:         OK

poudriere-testport run of one consumer, emulators/qmc2 completed (2024-02-20):

> 13.2-amd64-release: OK
> 14.0-amd64-release: OK
> main-amd64:         OK

Thanks.
Comment 31 Alastair Hogge 2024-03-25 00:19:44 UTC
The attached patch is incorrect (sorry about that), it does not update the pkg-plist to reflect the 4.0.4 shared library, I failed to update it from so.4.0.3 to so.4.0.4. There is also a new release, 4.0.5:

https://github.com/zlib-ng/minizip-ng/releases/tag/4.0.5

I will make an attempt to rectify my mistake, and update the Port later today.
Comment 32 Vladimir Druzenko freebsd_committer freebsd_triage 2024-03-25 20:41:27 UTC
Created attachment 249486 [details]
Update to 4.0.5

Done.

Poudriere 13.3 amd64 - ok.
Comment 33 Alastair Hogge 2024-03-25 22:47:28 UTC
(In reply to Vladimir Druzenko from comment #32)

Thanks.
Comment 34 Alastair Hogge 2024-03-25 22:48:43 UTC
Comment on attachment 248381 [details]
Update to 4.0.4

Obsoleted by 4.0.5 patch from, vvd@
Comment 35 Alastair Hogge 2024-03-28 04:29:38 UTC
(In reply to Vladimir Druzenko from comment #32)
poudriere-testport archivers/minizip-ng:
main-amd64-current: PASS
main-i386-current: PASS
13_2-amd64-release: PASS
13_2-i386-release: PASS
13_3-amd64-release: PASS
13_3-i386-release: PASS
14_0-amd64-release: PASS
14_0-i386-release: PASS
Comment 36 Alastair Hogge 2024-03-28 09:06:49 UTC
poudriere-testport emulators/qmc2:
main-amd64-current: PASS
13_2-amd64-release: PASS
13_2-i386-release: PASS
13_3-amd64-release: PASS
13_3-i386-release: PASS
14_0-amd64-release: PASS
14_0-i386-release: PASS
Comment 37 Vladimir Druzenko freebsd_committer freebsd_triage 2024-03-28 20:46:09 UTC
Can I commit this update without committing updates for the blender and opencolorio?
Comment 38 Vladimir Druzenko freebsd_committer freebsd_triage 2024-04-22 12:26:56 UTC
We can't update it without update graphics/opencolorio - current version of the graphics/opencolorio 2.2.1 isn't compatible with archivers/minizip-ng 4.x.
So we must update together archivers/minizip-ng, graphics/opencolorio, graphics/blender and all other deps of the graphics/blender.