Created attachment 155443 [details] Patch to update net-p2p/gtk-gnutella to 1.1.3 (also removes perl dependency) Update net-p2p/gtk-gnutella to latest upstream release 1.1.3. Also remove the perl dependency, as recommended by Jamie Landeg-Jones: "There has never been a need for perl - there are/were a few perl scripts in the distribution as developer tools, but none related to building or running gtkg." Also confirmed by Raphael Manfredi "Yes, perl is used to generate source code by developers, but all the generated source code is stored in git. Therefore, to compile GTKG from sources or use it, there is no need for perl at all!" Changes in 1.1.3 release: Improvements * [GTK2] Added popup menu icon in front of "force push mode" for sources. * [GTK2] Added warning icon in status bar when kernel runs short of net buffers. * Increased default node connection timeout and size of the quick connect pool. * Updated the shell "status" command to display "!IP" on net buffer shortage. * Updated FAQ along with French and Turkish translations. * Updated GeoIP databases. Bug Fixes * Fixed invalid test for "fake" Shareaza that led to network instabilities. * Made QRP lock a mutex to allow for recursive locking through qrp_comp_done(). Under the Hood * On out-of-memory conditions, attempt to auto-restart if possible. * Windows: monitor committed memory, crashing before the kernel would kill us. * Added crash_restart() and controlling routines to request smooth restart. * On network buffer shortage (ENOBUFS), stop TCP connections for a while. * UPnP: protect upnp_mapping objects given to callbacks with reference counts. * Adjusted lock tracking when locks are disabled, fixing lock swapping. * Windows: remember socket descriptors so that we can close them on exec(). * Refactored code for listening sockets to warn when bound port is already used. * When shutdowning in "crash mode", skip most of the memory cleanup. * rwlock_destroy(): make sure to write-unlock the lock if it was owned. * waiter_ack(): don't panic if waiter was not notified, but loudly complain. * upnp_map_natpmp_publish_reply(): trace given port on NAT-PMP mapping errors. * upnp_discover(): force selection of IPv4 interface for UPnP discovery. * thread_unsuspend_others(): relaxed hard assertion into a soft one. * alloc_pages(): try harder on OOM conditions to allocate from the page cache. * socket_connect_finalize(): fixed wrong errno processing for connect(). * socket_connect_prepare(): no need for SO_REUSEADDR for connecting sockets.
Created attachment 155444 [details] Patch to update net-p2p/gtk-gnutella to 1.1.3 (also removes perl dependency) Remove MAKE_JOBS_UNSAFE=yes
Created attachment 155445 [details] Successful poudriere testport on FreeBSD 10.1 amd64
Created attachment 155446 [details] Patch to update net-p2p/gtk-gnutella to 1.1.3 (also removes perl dependency) Strip the bin/gtk-gnutella binary if DEBUG option is not enabled. Also use FreeBSD's native malloc rather than the malloc that comes bundled with gtk-gnutella.
Created attachment 155447 [details] Successful poudriere testport on FreeBSD 10.1 amd64 Poudriere testport log showing bin/gtk-gnutella is now successfully stripped
Why the switch from ${STRIP_CMD} to adding -s to $(INSTALL)? ${STRIP_CMD} already does the right thing (when DEBUG is defined, STRIP_CMD = ${TRUE}).
The strip command run in post-install does not have write access to the bin/gtk-gnutella binary as the Makefile within the source code installs the binary with permissions "555". As such, the strip command in post-install fails with the following error: /usr/bin/strip: unable to copy file '/wrkdirs/usr/ports/net-p2p/gtk-gnutella/work/stage/usr/local/bin/gtk-gnutella' reason: Permission denied ====> Running Q/A tests (stage-qa) Warning: 'bin/gtk-gnutella' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD} The entire poudriere testport log with the failed strip can be found here: http://woodsb02.no-ip.org/poudriere/data/101amd64-default/2015-04-11_10h18m26s/logs/gtk-gnutella-1.1.3.log This change patches the source Makefile to do the install with stripping. The upstream project have also agreed to make a new install-strip target available in the Makefile for stripping in the next version: https://github.com/gtk-gnutella/gtk-gnutella/commit/2220679fd2e1be1dc277a68456d3623bd32feca9
A commit references this bug: Author: adamw Date: Mon Apr 27 12:38:18 UTC 2015 New revision: 384829 URL: https://svnweb.freebsd.org/changeset/ports/384829 Log: - Update to 1.1.3. - Remove perl5 dependency (see PR for details). - Strip as part of the install rather than post-install due to permission problems. - Mark as -jn safe PR: 199363 Submitted by: Ben Woods (maintainer) Changes: head/net-p2p/gtk-gnutella/Makefile head/net-p2p/gtk-gnutella/distinfo head/net-p2p/gtk-gnutella/pkg-plist
Committed, with one change. The correct idiom is .if empty(PORT_OPTIONS:MFOO) instead of .if !${PORT_OPTIONS:MFOO}