Summary: | irc/unreal: Update to 6.1.8.1 | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | tanawts |
Component: | Individual Port(s) | Assignee: | Daniel Engberg <diizzy> |
Status: | Closed FIXED | ||
Severity: | Affects Many People | CC: | devnull, diizzy, gert, pat |
Priority: | --- | Flags: | devnull:
maintainer-feedback?
|
Version: | Latest | ||
Hardware: | Any | ||
OS: | Any | ||
Attachments: |
Description
tanawts
2023-12-28 20:38:32 UTC
Hi, Are patches upstreamed and/or merged? Best regards, Daniel Friendly ping Sorry for the delay, The patch is to take an upstream update. Hi, Needs more work as the build tries to connect during build and then gets stuck. ... gmake[5]: Leaving directory '/wrkdirs/usr/ports/irc/unreal/work/unrealircd-6.1.4/src/modules/rpc' cd third; gmake all gmake[5]: Entering directory '/wrkdirs/usr/ports/irc/unreal/work/unrealircd-6.1.4/src/modules/third' ../../buildmod gmake Checking for updates for third party modules... [error] https://modules.unrealircd.org/modules.list: Unable to resolve hostname 'modules.unrealircd.org' .... Please also upstream your patch as it doesnt seem to be in upstreams repo? https://github.com/unrealircd/unrealircd/blob/unreal60_dev/configure#L8163 Hello, I just tried a brand new install of FreeBSD 14 with the unmodified patch and I am unable to reproduce your name resolution problem. I'm happy to troubleshoot further. Is there a DNS related restriction on your build system? Regarding the question of Upstream, the mods in question are specific for compatibility with FreeBSDs ports... So far as I am aware the line in question is a compatibility difference between pkg-config and FreeBSD's preferred pkgconf. pkgconf does not like "0~20161029" vs "20161029" as a valid match. - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libargon2 >= 0~20161029\""; } >&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libargon2 >= 20161029\""; } >&5 Hi, I'm testing using Poudriere which is used to generate packages. Best regards, Daniel Hello tanawts, I did tests with this port. I'm not a port expert (I'm still learning), but I've been working with UnrealIrcd for a decade. So I have some considerations. UnrealIrcd comes with a few shipped libraries. (https://www.unrealircd.org/docs/Libraries_used_by_UnrealIRCd) Therefore, there is no need to install these libraries if they are missing from the system. In this case, if the system does not have these libraries, UnrealIrcd will build these libraries with the libraries shipped with them (extras/[library].tar.gz) Only if the host already has these libraries installed will UnrealIrcd consider them instead of its own shipped libraries. In the past (some decade ago), pcre upstream there was a problem that it wouldn't compile with unrealircd. But pcre shipped with unrealircd worked. So I consider its fair to use and compile the libraries shipped with unrealircd instead of installing these libraries as port dependencies in LIB_DEPENDS. UnrealIrcd constantly updates these shipped libraries. The upstream (SyzOp) is very security conscious and keep these libraries updated, tested and functional. BTW, I can't got the error indicated by commiter, but you can check my poudriere logs for testport: https://poudriere.apt322.org:444/build.html?mastername=jpoudriere-development&build=2024-05-14_19h30m29s Best Regards, Rafael Grether Hi Rafael, FreeBSD expects dependencies to be carried in via other "Ports" where their versioning, installation, and updating can be coordinated. The UnrealIRCD bundled libraries present a challenge to the FreeBSD Ports framework in that the libraries are compiled and attempted to be installed directly into system directories as dependencies during the compilation process during "./configure" and not created in a staging directory for installation during "make install". This behavior presents a particularly challenging workflow in that the ports system is expecting all installation of files to take place during the "make install" where the package plist can account for inventory, so there would effectively be no way to make a 'binary package' for FreeBSD. From a strict security perspective, slipping files into system directories during the ./configure process opens an opportunity for untrusted code/content to piggy back into these directories as well. -- This behavior is a curious one and is /not/ what I would consider a security conscious workflow even in Linux systems that UnrealIRCD is optimized for; I have been tempted to file an upstream bug to Syzop to address this behavior with a more appropriate "make install" driven process. Created attachment 250663 [details]
Patch for updating UnrealIRCD 6.1.5
Updates UnrealIRCD to 6.1.5
Daniel, please try to build the newest patch as it now bumps to 6.1.5. Hi tanawts, Yes, I understood the challenge. Last year I was planning to create this port, but facing some "complicated problems" you mentioned, I ended up leaving it aside. So I just have to congratulate you for doing it. However, as I told you, I'm not an experienced porter, so I don't think I'll be of much help. But whatever I can be of help with, let me know. Same issue as before, gets stuck here Checking for updates for third party modules... [error] https://modules.unrealircd.org/modules.list: Unable to resolve hostname 'modules.unrealircd.org' Please start using Poudriere Created attachment 251257 [details]
Patch for updating UnrealIRCD 6.1.5
Thanks Daniel, finally found the issue. The previous version appears to have always been given a "Fatal error" message but failed to actually break the build, the newer version properly broke the build when trying to use the custom built binary to check for third party sources. As this methodology runs completely counter to FreeBSD's port system, I've commented out the build test to attempt to fetch external third party modules, as these should come from the Ports Tree or be managed manually by the user after base installation. Newest Patch tests clean in Poudriere Thanks again! @tanawts You commented the line # https://modules.unrealircd.org/modules.list But it is not the solution, this line is necessary. Please rollback to the previous patch. @Daniel Engberg The error "https://modules.unrealircd.org/modules.list: Unable to resolve hostname" is a poudriere security restriction, that prohibit use network during a poudriere build. Please set: RESTRICT_NETWORKING=no in your poudriere.conf, and this error will be solved. Thanks @Rafael Grether, I knew the behavior was due to a security control but wasn't sure if there was a hard requirement to mute ports that attempt network calls during the build process. Is there a bugzilla method for rolling back a patch or do I need to just resubmit the prior patch and stomp on the current one? I couldn't find an option to rollback via my perms in the portal. Thanks again! @tanawts Welcome! In Poudriere, this can be done generically via "RESTRICT_NETWORKING=no" or by selecting specific ports to make use of network resources via "ALLOW_NETWORKING_PACKAGES=something". About bugzilla patch, sorry, I think is not possible to rollback. As addition, at the end of the poudriere build, I got some errors. I think theese .so libs need to be included on pkg-plist: ====> Checking for pkg-plist issues (check-plist) ===> Parsing plist ===> Checking for items in STAGEDIR missing from pkg-plist Error: Orphaned: lib/unreal/central-api.so Error: Orphaned: lib/unreal/central-blocklist.so Error: Orphaned: lib/unreal/crule.so Error: Orphaned: lib/unreal/spamreport.so ===> Checking for items in pkg-plist which are not in STAGEDIR ===> Error: Plist issues found. ***Error code 1 If you want to generate a patch by returning the change to the last commented line and adding these libs to pkg-plist, I can test compiling the port in Poudriere. Created attachment 251271 [details]
Patch for updating UnrealIRCD 6.1.5
Adds missing plist files as noted by Rafael Grether:
lib/unreal/central-api.so
lib/unreal/central-blocklist.so
lib/unreal/crule.so
lib/unreal/spamreport.so
Tanawts I don't know why the poudriere didn't report it earlier (maybe limit buffer?), but poudriere return more 2 missing plist files, that need to be added on pkg-plist file: ====> Checking for pkg-plist issues (check-plist) ===> Parsing plist ===> Checking for items in STAGEDIR missing from pkg-plist Error: Orphaned: %%ETCDIR%%/examples/example.pt.conf Error: Orphaned: lib/unreal/no-implicit-names.so ===> Checking for items in pkg-plist which are not in STAGEDIR ===> Error: Plist issues found. *** Error code 1 Created attachment 251277 [details]
Patch for updating UnrealIRCD 6.1.5
Final adjustments to correct missing plist files
Thanks Tanawts Poudriere tests passed. UnrealIRCd was builded successfully now. Poudriere logs: https://poudriere.apt322.org:444/data/jpoudriere-development/2024-06-08_01h50m01s/logs/unreal-6.1.5.log Thanks! No network access except for "fetch" stage is a hard requirement Created attachment 251357 [details]
Patch for updating UnrealIRCD 6.1.5
Please test again now @Daniel I have re-commented out the network call and it should be good to go now. Good morning. Upstream unrealircd is at 6.1.8.1 now, and the argon2 build issue can be easily fixed by adding "--with-system-argon2" to the CONFIGURE_ARGS= line in the port Makefile (= no need to patch configure). While at it, could you consider to install the "unrealircdctl" helper and the "unrealircd" helper script as well? For ircd operations (reloadtls, rehash, genlinkblock, etc.) these are highly useful. I have a patch for that (bringing the ports version to 6.1.8.1, install helper binaries, address argon2, add plist files etc) that I can upload if there is interest. gert Created attachment 254473 [details]
Patch for updating to 6.1.8.1 plus adding auxiliary binaries
FWIW here's my attempt to bring the port to 6.1.8.1 - new modules etc, auxiliary binaries added, also taking the comments in here into account.
Created attachment 255562 [details]
Patch for unreal
* Includes both previously submitted patches
* Fixes plist issues
* Adjust Makefile layout
Poudriere looks fine, please give it a go
Validated patch, compiles, and everything tests clean. Thank you very much Daniel! Please feel free to proceed to merge. A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=9a8cdd86466ddbe94adc16adc4fd4b3d14d2f646 commit 9a8cdd86466ddbe94adc16adc4fd4b3d14d2f646 Author: Gert Doering <gert@greenie.muc.de> AuthorDate: 2024-12-21 19:34:31 +0000 Commit: Daniel Engberg <diizzy@FreeBSD.org> CommitDate: 2024-12-21 23:06:55 +0000 irc/unreal: Update to 6.1.8.1 * Port now installs unrealircdctl helper and the unrealircd helper script * Adjustments to port Makefile layout Co-authored with port maintainer (previous iteration) and additional improvements by committer Changelog: https://forums.unrealircd.org/viewtopic.php?t=9390 PR: 275987 Reviewed by: tanawts@gmail.com (maintainer) Tested by: tanawts@gmail.com (maintainer) irc/unreal/Makefile | 41 ++++++++++++---------- irc/unreal/distinfo | 6 ++-- .../files/patch-doc_conf_modules.default.conf | 23 +++++------- .../patch-doc_conf_modules.sources.list (new) | 13 +++++++ irc/unreal/files/unrealircd.in | 2 +- irc/unreal/pkg-plist | 13 ++++++- 6 files changed, 60 insertions(+), 38 deletions(-) Committed, great work everyone involved! |