Bug Fixes:
- 1870957: Wrong sign could cause out-of-bounds read and potentially a crash.
- Firewalled status was not re-verified after a port change if the previously
used port was open.
- Fixed issue that caused the local peer cache to degenerate.
Improvements:
- Client-side support for tigertree hashes (TTH/THEX).
- Replaced navigation tree by tabs.
- Redesigned download user-interface to make it more accessible.
- Added some selectable pre-defined search filters.
- Bitzi tickets are displayed in full raw indented XML.
- Display Bitzi and ShareMonkey URLs as search result details.
- Topless mode is available at run-time via command-line switch.
- Added default shared filename extensions:
.7z, .bittorrent, .oga, .ogv, .spx, .tbz2
- Removed default shared filename extensions: .doc
- Updated translations: Japanese, Norwegian Bokmal, French.
Under the hood:
- Changed default to dual use of IPv4 and IPv6 instead of IPv4-only.
- Support the "as" (Alternate Source) key in magnet links.
- Eszett is finally normalized to "ss" in search queries.
- Avoid display updates for elements not currently visible.
- Take full advantage of persistent HTTP connections to fetch multiple
files from the same peer through over the same connection if scheduling
permits.
- Improved TLS support and blocking detection.
- Updated list of hostile IP adress ranges, bogons, Geo-IP data,
spam patterns and spam samples.
Bug Fixes:
- The download overlap checking was incorrectly detecting mismatches.
- A bug in the network queue caused frequent crashes.
- A bug in the event timing caused failures after 25 days uptime.
- A stalling issue with TLS connections.
- The search retry timeouts weren't accepted.
- The order of items in the search history was wrong.
- The quick-connect limit wasn't respected causing too frequent
connection attempts during startup.
- Removed incorrect use of SF_NODISKIO flag for sendfile() on FreeBSD.
- Fixed crash that could be triggered by changing the listening port
temporarily to zero.
- iconv() was not used correctly which could cause wrong conversions
for longer strings.
- Generated filenames weren't properly restricted in length which
could cause crashes.
- There was a compile issue on NetBSD caused by namespace pollution.
- Added workaround for the issue that on Solaris only the file descriptors
0..255 can be used for stdio.
Improvements:
- Finished downloads are now seeded for the whole session or until
they are manually purged, if partial file-sharing is enabled.
- Server-side support for Tigertree hashes and THEX thanks to patches
provided by Martijn van Oosterhout.
- Improved spam filters.
* Added GUI option "headless".
* Removed dbus dependency. It's just a gimmick, not worth it.
* Added patch-ab to avoid picking up stuff from /usr/local for example.
Bug fixes:
- Fixed issue when browse host is the only search in the list.
- Reset download buffers on incomplete writes.
- Fixed ever-growing sidebar at each relaunch under GTK1.
- Fixed misdetection of chunk completion, causing undue abortion of downloads.
- Was wrongly showing the source download speed twice in download status.
- Range column was sometimes inexact in downloads.
Improvements:
- Print PFS indication for actively queued entries as well.
- Take buffered data into account when showing download progress.
- Downloads now show how many HTTP requests were made on the same connection.
- Try to reposition the main window correctly.
Configuration Changes:
- Minimum connection timeout is set to 15 seconds.
- Default for "maximum % of slots / vendor" raised to 90.
libintl. Hack around the gettext detection in Configure, I twisted
my mind too much trying to understand the "logic". Just assume that
we have and want NLS. Bump revision.
PKGLOCALEDIR and which install their locale files directly under
${PREFIX}/${PKGLOCALEDIR} and sort the PLIST file entries. From now
on, pkgsrc/mk/plist/plist-locale.awk will automatically handle
transforming the PLIST to refer to the correct locale directory.
New features:
- Browse Host (HTML and Gnutella), TLS and IPv6 support.
- Chinese and Greek translations of the user interface.
- D-BUS plugging.
- Added hot keys: F2, F8 and F9 (see menu View->...).
- Searches are now created with a configurable expiration date.
Improvements:
- Optimization of the UTF-8 processing.
- Better filename conversion to locale, with automagic charset detection.
- General performance improvements in QRP and search filters.
- Full "nl" translation.
- Sorting persistence.
Under the hood:
- Buffering of downloaded data to avoid excessive disk fragmentation
- Support for the epoll()/kqueue() system calls.
- More optimistic PARQ ETA, and PARQ back-off when QUEUE are unanswered.
- NFS-compatible session locking if anyone cares.
- Nifty property browser.
* The last-byte download bug, where a download would not complete if only the last byte needed to be downloaded, has been fixed.
* Preliminary browse-host support, allowing other servents to browse the files that are shared. This is disabled by default.
* GTKG will detect online status again after temporary network failure.
* The .desktop file and application icons are now properly installed.
* Downloads are now sorting in a more logical way.
* Bug fixes in UTF-8 support.
* Doxygen documentation updates.
* Japanese and Spanish translation updates.
Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
- Fixed a potential denial-of-service problem.
- Fixed OOB reply code which would lead to failed assertions.
- [GTK1] Show Enable option and Remove button in Filter editor again.
- Fixed inadvertent truncation of large files (> 4 GB).
- Compatibility fixes for 64-bit platforms.
- GTKG generated up to four times more traffic than was needed between
GTKG Ultrapeer and GTKG leafs.
- Improved firewall status detection: if you are not firewalled then GTKG
is now less likely to claim that you are.
- Fix a build problem for some versions of Glade
- A few minor bugs fixed
Changes 0.95.1:
- Bitzi tickets are now persistently cached so that tickets are
available again after restarting GTKG.
- Improved Unicode support:
- Search improvements:
- [GTK2] GUI updates:
- The GUI uses SI prefixes according to IEC 60027-2 (2000-11) Ed. 2.0
everywhere, so hard disk vendors won't fool you any longer.
- Compatibility fixes to allow compilation on more architectures,
including 64 bit architectures.
- There are now two hostiles.txt, a system-wide ("global") and one in
the ~/.gtk-gnutella directory. So you only need to put private
additions into ~/.gtk-gnutella/hostiles.txt. These files are also
automagically reloaded on change, so you don't need to restart
Gtk-Gnutella to make the changes effective.
- Updated listings for geographic information, bogus addresses and
spam sites.
- Greatly enhanced stability as compared to 0.95 due to many bug
fixes.
- Support for very old Gnutella features has been removed or deprecated
to keep the network healthy. Note that GTKG 0.94 is now considered a
deprecated servent in terms of Gnutella features. Every GTKG user
MUST upgrade to 0.95 as soon as possible.
- GUI updates:
* [GTK2] Enable drag and drop for magnet links
* [GTK1] Search results have less columns, and the hit details are now
displayed in a separate pane underneath.
* Visual progress indicator correctly shows newly downloaded
fragments, shows fragments currently available for download more
accurately, and active downloads are marked with arrows.
* The maximum amount of search results has been lowered to 1000.
Please use filters or more specific queries to find what you are
looking for if you get many search results.
* A detailed view has been added to the search results to show all
available information for a search result.
* The status bar will now give feedback about the contacted host caches.
* Gnutella node stats can now show how many bytes were sent/received.
* In the node pane, right-clicking now allows to configure which columns
should be displayed, just like in the search pane.
* More general statistics in the stats pane. It is possible to see TCP and/or
UDP traffic stats separately (for messages only, not flow-control).
- Bitzi support has been added to retrieve additional information on
possible downloads. See http://bitzi.com/ for details.
- The geographic location of hosts can now be shown courtesy of MaxMind.
- Recently developed features of the Gnutella network are now supported:
* High outdegree provides better connectivity between Gnutella hosts.
The maximum TTL in the network is now 4 and ultra nodes must maintain
at least a connection with 30 peers.
* Last-hop QRP between ultra peers.
* Dynamic querying support, allows selective querying of peers instead
of simply broadcasting the query. It is used for leaf queries and
for your queries when running as an ultra node.
* OOB (out of band) query hits lets other servents deliver search
results directly to you instead of going through the Gnutella network.
* OOB proxied queries, allowing direct hit delivery at the ultra node level
for queries emitted by legacy leaves.
* GTKG will now prevent firewalled hosts from running as ultra nodes.
* In "auto mode", GTKG will revert to leaf mode when uploads are stalling
at an abnormally high rate, indicating bandwidth is saturated.
- UDP is now also supported as a transport protocol in addition to TCP.
You may need to make changes to your firewall settings to take full
advantage of this. The UDP port used is the same as the one used for TCP.
- Firewall detection has been improved to include UDP firewalling detection.
- Clock skew computation for hosts not running NTP has been redesigned.
Also, GTKG will now automatically detect a locally running NTP.
- Japanese translation added.
- French and German translation updated.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
* GUI updates:
* File info pane renamed to "Downloads".
* Downloads pane renamed to "Sources".
* Progress of a download can now be visualized.
* Uploads and download sources pane now contain a visual progressbar.
* The GTK2 GUI can now be resized smaller than a width of 933 pixels.
* Search results now include an extension column.
* The Gnet stats panel and the statusbar now include horizon statistics.
* New Gnutella extension HSEP/0.2 included.
* The remote shell now includes a command "HORIZON", which will output horizon
stats.
* If no default port is specified, gtk-gnutella will now bind to a random port
and will use that port from then on.
* If you are behind a firewall and have routed a port to gtk-gnutella, please
check that gtk-gnutella is still running on the port you want it to!
* Will parse up to 150 hosts in a gwebcache reply to bootstrap from.
* New hostcache to make gtk-gutella connect to the network more quickly.
* Translations updated.
* Now supports Ultrapeers
* New icons for showing node state
* The GTK2 front-end is no longer experiamental
* Added client-side PFSP support (partial file sharing)
* Added full PARQ (Passive / Active Remote Queuing)
* New Gnet statistics: flow-controlled packets per TTL and hops
* Added support for GGEP in pings/pongs/pushes
* New "use surplus bandwidth" setting
* Added count for total bytes uploaded and downloaded
* Added support for vendor-specific messages
* New hops-flow support
* Will now show the GTKG version in query hits
* The queue shows the count of alive downloads as well as the queue count
* Changed the connection algorithm
* Filters out hostile IP addresses
* New "Fileinfo" pane in the download screen
* Domain name resolution for Gnutella web cache are now done asynchronously
* Some performance improvements
(christianbiere at gmx dot de) in PR pkg/19152.
Changes since 0.91.0:
* Will now verify the SHA1 of downloaded files in the background.
* New configuration parameter for the directory where "bad files" not
matching their advertised SHA1 should be put (don't forget to
configure it, as it defaults to /tmp).
* Files are now copied in the background, so it is possible to setup the
various "download" directories on different filesystems.
* Node connection time and remote node's uptime(if available) are now
shown.
* It is now possible to paste a "magnet:" URI in the search to launch a
SHA1 search.
* The "connection indicator" at the bottom left is now a toggle.
Depressing it will terminate any Gnet connection but will continue to
serve uploads and process downloads.
* The active download status now shows how many sources are available and
how many are currently active (i.e. downloading). It will also show the
estimated remaining time for the whole file, as well as the global
reception rate for the file, accounting for all currently active
sources.
* Fixed bug that prevented proper downloading from recent
BearShare(4.1.x or better) and Shareaza (1.6.0.x or better) nodes
when the SHA1 of the file is known.
* Will now protect against "PUSH floods" by banning the relevant IPs.
* At startup, scan the download "tmp" dir for orphan files and reintegrate
them into the fileinfo database, moving completed files to the relevant
directory(depending on whether its SHA1 checked OK).
* Minor bug fixing: improper countdown for push timeout when falling back,
fixed corner-case processing that could lead to crashes or incorrect
behaviour, accidental localization on X-Live-Since headers, freezing of
the GUI when clearing many uploads, obscure portability fixes.
Changes include:
* Now uses HTTP/1.1, which implies support for persistent connections.
* gtk-gnutella will now monitor whether we're connected to Internet and
slow down its connection requests when it detects the connection was
broken (after a delay of ~3 minutes at most).
* Download swarming is now supported: gtk-gnutella will download different
portions of the same file from many hosts, as long as alternate sources
are available.
* The download mesh (alternate source collection during downloads) is now
used to fill the download queue with more sources.
* Alternate locations can also be passively collected from query hits.
You can enable this in the swarming section on the download config pane.
* Download scheduling was entiretly redesigned to avoid hammering busy
hosts and scale to 5000+ entries in the queue without slowing down the
whole.
* Is now smart about the "push" flag and will try to ignore it if possible,
in case the remote host wrongly set the flag but is not firewalled.
* gtk-gnutella now remembers the files it downloaded and will ignore
further requests to download the same file. It will visually mark those
files, as well as the ones it already shares, by showing them in lighter
color in the search results.
* It is possible to supply to gtk-gnutella your own ignore lists by SHA1
and by name/size but the feature is under-documented.
* Added an "expert mode". Only when this is enabled will gtk-gnutella show
the users some of the most complex settings.
* New Gnutella statistics pane, showing the packets we sent and received,
how many we generated, and the reasons why we drop packets, by packet
type.
* Now understands UTF-8 queries, but does not generate them.
* Fixed important bugs whereby all earlier versions of gtk-gnutella were
unintentionally corrupting the Gnutella traffic!
* Moved away from the public hostcaches and now uses the Gnutella Web
Cache.
* Will now show all upload attempts, not only the ones that are
transferring. If the connection is aborted, the reason is also shown.
* New search stats types: queries by router, whole query.
* "Queries by router" shows how many queries have been recieved from any
node gtk-gnutella was directly connected to.
* "Whole query" shows stats based on the complete query string instead of
individual query words.
* New visual indications via icons in the status bar: whether gtk-gnutella
is rebuilding the library, computing SHA1 of shared files in the
background, and whether we are connected to Internet or not.
KNOWN BUGS/PROBLEMS:
* When changing the directory for incomplete/complete files, all partially
downloaded files recorded in ~/.gtk-gnutella/fileinfo will still be
downloaded to the old directory. You need to manually change the paths
in above file using search/replace and your favourite text editor.
* Sorting order of tables is not perserved across sessions.
* Marking/highlighting of results/downloads/uploads heavily depends on
your GTK theme. Especially most themes do not set fg[ACTIVE] and
fg[NORMAL] to different values.
* There is currently no way to un-ignore a file via the gui. You can
however edit the done.sha1 and done.namesize files in your
~/.gtk-gnutella directory manually. Unignoring via gui is planned for
the next release.
- All configuration can now be made from the GUI.
- Fully redesigned search filters to work like ipchains/iptable on Linux.
- Obsoleted experimental "auto-download", superseded by the new filtering code.
- Added Gnutella bandwidth management.
- Both HTTP and Gnet bandwidth is now displayed real time.
- Added full HUGE support (Hash/URN Gnutella Extensions).
- Added support for local host preference.
- Gtk-gnutella can do traffic compression when connecting to a node that
also supports it.
- Upload and downloads will now show User-Agent/Server information.
- Added status to the download queue.
- You can now freeze the download queue whilst manipulating it.
- Searches can now be listed on the left side of the screen, or as tabs like
in the previous versions.
- Added automatic banning of servents that are hammering us.
- Many more cool new features that you'll discover whilst playing with it.
# v 0.18 2001.11.19
- Further improved auto-download to not request things we already got
- Refuse to record a download if we still have an identical active one
- Integrated search results limiting patch, from Brian St. Pierre
- Fixed incremental sort logic, which was not accurate for big values
- Made search results sortable by Host and by Info
- Integrated new manpage from Brian St. Pierre (in debian directory)
- Never overwrite files in "completed dir"; rename target file if needed
- Missed "return" statements in error path for "download resuming" checks
- Made auto-download.txt case sensitive, and leading '#' is treated as comment
- Auto-download flag made persistent, and file name set via config file
- Integrated auto-download.txt patch from Brian St. Pierre
- Integrated patch from Brian St. Pierre to burst gnutella.h into small files
# v 0.17 2001.10.24
- Integrated routing table optimization patch from Mark Schreiber
- Shortened default connecting timeouts, especially to other nodes
- Index shared files in an array for faster retrieval
- Enforce strict NUL termination of Query packets we process
- Integrated search table bin categorization patch from Kenn Brooks Hamm
redefines about which buildlink.mk files would care is BUILDLINK_X11_DIR,
which points to the location of the X11R6 hierarchy used during building.
If x11.buildlink.mk isn't included, then BUILDLINK_X11_DIR defaults to
${X11BASE} (set in bsd.pkg.mk), so its value is always safe to use. Remove
the ifdefs surrounding the use of BUILDLINK_X11_DIR in tk/buildlink.mk and
revert changes to move x11.buildlink.mk before the other buildlink.mk files.
use X11_BUILDLINK_MK as a test value. Generally just reordering the
inclusions so that x11.buildlink.mk comes before the other buildlink.mk
files will make everthing work.
which takes entries of the format <make-definition-name>=<pkgname>. This
has not been added to MAKEFLAGS because (a) premature optimisation is the
root of all evil, and (b) because the .for loop used to implement this
shows the wrong results when multiple prefices are evaluated.
Modify all the package Makefiles to use EVAL_PREFIX, thereby simplifying
them considerably.
ALso simplify the logic to calculate the prefix as well.
package's prefix would not work as part of the environment specification
via MAKE_ENV (as it would not be executed in the correct directory).
Fix this by invoking pkg_info(1) directly, not via an intermediate make(1)
step - this is not as clean, but more effective (i.e. it works).
a bit more user-friendly.
Introduce a show-{gtk+,imlib,kdebase,qt1,qt2,xpm}-prefix target in
bsd.pkg.mk, and use "${MAKE} show-*-prefix" in package Makefiles.
xpkgwedge once, before any other packages have been installed, and
never to delete it. This change finds the prefix of the installed
pre-req package using pkg_info(1), and allows packages to be found in
${X11BASE} and ${LOCALBASE}, not just ${X11PREFIX} - from mail from
Dave Sainty <dave@dtsp.co.nz>, munged slightly by myself.
in preference to X11BASE when trying to find the installed location of
X11 libraries, programs and headers (which will change if xpkgwedge is
installed).
[X11BASE reflects the location of the X11 libs, headers and programs.
X11PREFIX reflects the installed location of X11 packages.]
- All C++ style comments have been replaced by C style comments
- Incoming connections are now accepted again (lame bug created in 0.11 fixed)
- Slashes are replaced by backslashes in downloaded files names
- Downloaded files are no more created before we actually receive data for them
- Queued downloads can now be reordered by drag and drop
- Queued downloads can now be started at any time (using right mouse button on
them)
- Active downloads can now be forced to push mode, moved back to the queue,
or killed (with the output file removed) using right mouse button on them
- Preferences and configuration are now saved in a directory instead of a
single file. You can choose the path of the directory to be used by setting
the GTA_GNUTELLA_DIR environment variable before running gtk-gnutella.
By default it will be ~/.gtk-gnutella/
- Estimated TR (Time Remaining) is displayed while downloading files
- Catched hosts are now saved in clear text in a separate file:
GTA_GNUTELLA_DIR/hosts
- Catched hosts can be imported from and exported to any text file (using
right mouse button on the gnutella host catcher)
- Gtk-Gnutella should now compile (using gcc) and run on more processors
- A few memory leaks removed, but some remain (I don't know where yet)
- Serious bug that made Gtk-Gnutella send garbage when the sendqueue for slow
nodes excedeed 1024 bytes has been fixed
- Completed download files are now moved to a different directory, that can be
choosen in the config screen
- Gtk-Gnutella now remembers the position and the size of the window
- Automatic sorting of search results can be stopped by right clicking in the
search results list (GTK doesn't seem to handle well auto sorting)