Il più efficiente client Gnutella
gtk-gnutella è un server/client per la rete peer-to-peer Gnutella. Funziona in Microsoft Windows, MacOS e ogni sistema operativo tipo Unix che supporta GTK+ (1.2 e oltre). L'interfaccia grafica GNOME non è richiesta. Attualmente è sviluppato e testato sotto Linux (Debian) e NetBSD. Funziona almeno sotto Linux, FreeBSD, NetBSD, Darwin, Solaris, Tru64 UNIX (OSF/1), SGI IRIX, BeOS, con architetture delle CPU che includono x86, AMD64, PowerPC, SPARC, MIPS. E naturalmente Microsoft Windows (almeno XP).
gtk-gnutella è software libero e rilasciato con licenza GNU General Public License (GPL-2).
gtk-gnutella non è ancora completo ma completamente funzionante: puoi condividere, cercare e scaricare. È anche stabile, gli utenti di solito lo lasciano girare senza supervisione per giorni.
Questo sito è scritto in PHP, seguendo gli standard HTML5 e CSS3 e non utilizza cookies.
Idee e commenti sono benvenuti nella mailing list gtk-gnutella-devel. I bug devono essere inviati al Bug tracker su SourceForge.net
C'è bisogno di ulteriori collaboratori per lo sviluppo in C, la documentazione, la traduzione del software e la traduzione del sito.
News
9 March 2026, Version 1.3.1 Released
This is an urgent release fixing bugs.
Bug Fixes
- [GTK2] Removed "clock" icon in status bar, a left-over of the 1.3.0 edits.
- Was sometimes crashing at startup due to a bug in logfilter.
- Forgot an include of "mempcpy.h", causing compilation error on MacOs.
- Fixed compilation error on arm64.
6 March 2026, Version 1.3.0 Released
This is a maintenance release with minor bug fixes.
Improvements
- Removed expiration date: this version will now run forever.
Under the Hood
- Merged various enhancements from a side project reusing GTKG's library.
- Added experimental logfilter (see extra_files/logfilter.sample).
3 March 2024, Version 1.2.3 Released
This is a maintenance release with minor bug fixes.
Improvements
- Allow final address to be used as a search and sorting column in GUI.
- Do not hide the "random stats" shell command in the help.
- Shell "node add" now supports g2:IP:port for G2 nodes.
Bug Fixes
- Avoid assertion failure in
xmalloc()when the page size is not 4K - Fix build on NetBSD with SSP.
- Avoid conflicting symbol with NetBSD's powerpc/frame.h
- Force supervisor to quit if child gets a SIGKILL.
- Forgot to set te->ptid in discovered threads.
Under the Hood
- Add
aq_on_available()to hide waiter object. - Add debugging #define XMALLOC_DISABLED to remap
xmalloc()tomalloc(). - Add randomness every minute instead of 30 seconds.
- Dump held locks when suspending thread with locks.
- Fix
thread_lock_dump()logic. - Recent version of glib define G_NORETURN already.
- Use library
popcount()if it exists. - Use an integer for atomic_lock_t (or it fails on Darwin ppc32).
atio_get_lock(): no need to hash file descriptor.crash_hook_add(): watch out for early inits.crash_init(): ignore subsequent calls, loudly.crash_mode(): disable locking on concurrent crash.dump_hex_vec(): do not re-emit header if reached end.entropy_collect_gateway(): cache initial gateway information.entropy_harvest_many(): accelerate processing.evq_close(): forgot to free local callout queue.getgateway(): avoid endless warnings.- hashlist: avoid race condition for moveto operations.
random_double_generate(): ensure value is in [0, 1[.ripening_set_expire(): remove faulty assertion.rwlock_deadlocked(): trace locking thread owner.rwlock_lock_granted(): verify waiter presence.rwlock_readers_downto(): issue a memory barrier.shared_file_free(): give more details on assert failure.semaphore_emulate(): was not handling timeout properly.sig_get_pc_index(): also trap SIGBUS for OS/X.socket_tls_upgrade(): synchronous upgrade logged but no longer fatal.str_private(): must useNOT_LEAKING_Z()forwalloc().str_slice(): change semantics of `to'.thread_element_reset(): also clear lock stack overflow.thread_lock_dump(): can now omit details if necessary.thread_lock_released(): give more context on problems.thread_sig_handle(): add default handling of TSIG_TERM.vmm_mmap_anonymous(): optimize re-locking.walloc_get_zone(): do not keep lock whilst allocating zone.xmalloc_chunk_allocate(): validate chunk head is sound.- zalloc: do not keep lock whilst extending the zone.
zget(): limit scope of global spinlock to a minimum.
