Bug 199363 - [MAINTAINER] net-p2p/gtk-gnutella: Update to 1.1.3
Summary: [MAINTAINER] net-p2p/gtk-gnutella: Update to 1.1.3
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Adam Weinberger
URL: http://gtk-gnutella.sourceforge.net/e...
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-11 02:20 UTC by Ben Woods
Modified: 2015-04-27 12:39 UTC (History)
2 users (show)

See Also:


Attachments
Patch to update net-p2p/gtk-gnutella to 1.1.3 (also removes perl dependency) (1.79 KB, patch)
2015-04-11 02:20 UTC, Ben Woods
no flags Details | Diff
Patch to update net-p2p/gtk-gnutella to 1.1.3 (also removes perl dependency) (1.77 KB, patch)
2015-04-11 02:21 UTC, Ben Woods
no flags Details | Diff
Successful poudriere testport on FreeBSD 10.1 amd64 (378.38 KB, text/plain)
2015-04-11 02:23 UTC, Ben Woods
no flags Details
Patch to update net-p2p/gtk-gnutella to 1.1.3 (also removes perl dependency) (3.03 KB, patch)
2015-04-11 04:49 UTC, Ben Woods
no flags Details | Diff
Successful poudriere testport on FreeBSD 10.1 amd64 (376.10 KB, text/plain)
2015-04-11 04:50 UTC, Ben Woods
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ben Woods freebsd_committer freebsd_triage 2015-04-11 02:20:03 UTC
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.
Comment 1 Ben Woods freebsd_committer freebsd_triage 2015-04-11 02:21:32 UTC
Created attachment 155444 [details]
Patch to update net-p2p/gtk-gnutella to 1.1.3 (also removes perl dependency)

Remove MAKE_JOBS_UNSAFE=yes
Comment 2 Ben Woods freebsd_committer freebsd_triage 2015-04-11 02:23:43 UTC
Created attachment 155445 [details]
Successful poudriere testport on FreeBSD 10.1 amd64
Comment 3 Ben Woods freebsd_committer freebsd_triage 2015-04-11 04:49:28 UTC
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.
Comment 4 Ben Woods freebsd_committer freebsd_triage 2015-04-11 04:50:53 UTC
Created attachment 155447 [details]
Successful poudriere testport on FreeBSD 10.1 amd64

Poudriere testport log showing bin/gtk-gnutella is now successfully stripped
Comment 5 Adam Weinberger freebsd_committer freebsd_triage 2015-04-27 12:08:40 UTC
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}).
Comment 6 Ben Woods freebsd_committer freebsd_triage 2015-04-27 12:24:41 UTC
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
Comment 7 commit-hook freebsd_committer freebsd_triage 2015-04-27 12:39:01 UTC
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
Comment 8 Adam Weinberger freebsd_committer freebsd_triage 2015-04-27 12:39:13 UTC
Committed, with one change. The correct idiom is

    .if empty(PORT_OPTIONS:MFOO)

instead of

    .if !${PORT_OPTIONS:MFOO}