ncdc 1.13 released + misc changes

This commit is contained in:
Yorhel 2012-08-16 15:05:46 +02:00
parent 1ac0600f93
commit 874e1825ec
10 changed files with 103 additions and 53 deletions

View file

@ -10,12 +10,16 @@ ncurses interface.
=item Latest version
1.12 ([dllink ncdc-1.12.tar.gz download]
1.13 ([dllink ncdc-1.13.tar.gz download]
- L<changes|http://dev.yorhel.nl/ncdc/changes>
- L<mirror|https://sourceforge.net/projects/ncdc/files/ncdc/>)
Statically linked binaries for Linux are also available with the
L<installation instructions|http://dev.yorhel.nl/ncdc/install>.
Convenient static binaries for Linux:
L<64-bit|http://dev.yorhel.nl/download/ncdc-linux-x86_64-1.13.tar.gz> -
L<32-bit|http://dev.yorhel.nl/download/ncdc-linux-i486-1.13.tar.gz> -
L<ARM|http://dev.yorhel.nl/download/ncdc-linux-arm-1.13.tar.gz>.
Check the L<installation instructions|http://dev.yorhel.nl/ncdc/install> for
more info.
=item Development version
@ -28,7 +32,7 @@ You are also invited to join the development hub at C<adc://dc.blicky.net:2780/>
=item Requirements
The following libraries are required: ncurses, bzip2, sqlite3, glib2 and
The following libraries are required: ncurses, zlib, bzip2, sqlite3, glib2 and
gnutls.
Ncdc is entirely written in C and available under a liberal MIT license.

View file

@ -1,3 +1,19 @@
1.13 - 2012-08-16
- zlib library added as a required dependency
- Purge empty directories from share by default
- Added "share_emptydirs" setting
- Disable tls_policy by default when using an old GnuTLS version
- Improved support for group chat
- Honor G_FILENAME_ENCODING for path autocomplete, /share and queued files
- Use a default connection string on NMDC if no 'connection' has been set
- Support ZLIG for partial file list transfers on ADC
- Send more subdirectories in partial file list transfers
- Removed use of system-provided realpath()
- Don't allow /search with an empty string
- Fix segfault on /search command without query
- Fix display of 'sudp_policy' setting if SUDP is not supported
- Fix --enable-git-version when cross-compiling
1.12 - 2012-07-10
- Don't follow symlinks in share by default
- Added 'share_symlink' option

View file

@ -22,10 +22,23 @@ positive things about it. Has not seen any recent development, either.
=head2 Why did you start from scratch? Why not use the DC++ core?
There are many reasons why I chose not to use code from existing projects, but
all of them boil down to the following two: 1) I am a control freak, and 2)
personal preferences. That is the short answer. The long answer will require a
full article, and I don't feel like writing that much at this point. >_>
There are several reasons why I chose not to use code from existing projects,
but the two most important reasons are the following: 1) I am a control freak,
and 2) personal preferences.
B<Control freak:> I have no idea how to create an interface to a protocol if I
don't know the overall design and all the tiny details of the actual protocol
I'm working with. And what's a better way to get used to a protocol than by
writing everything yourself? Then there's some other advantages to
reimplementing everything: I get to choose the library dependencies and the
memory/CPU efficiency trade-offs, and I am not limited by an existing
implementation that needs quite a few modifications to achieve what I want.
Most of the "special features not commonly found in other clients" mentioned on
the L<homepage|http://dev.yorhel.nl/ncdc> are a direct result of this.
B<Personal preferences:> These are simple: I rather dislike C++ and working
with other people's code. Working with other people's C++ code isn't exactly
something I wish to spend my free time on.
=head2 What protocol features does ncdc support?
@ -48,52 +61,40 @@ up-to-date client that still uses any of these features.
=head2 This "Generating certificates..." is taking ages!
When starting up ncdc for the first time, it will need to generate a TLS
certificate. If you're on Linux, some versions of GnuTLS may use C</dev/random>
to obtain random bytes. Unfortunately, this can be horribly slow, and in
extreme cases it may take up to an hour before the certificate has been
generated. GnuTLS does not provide a way to use a faster but less secure
certificate. If you're on Linux, older versions of GnuTLS may use
C</dev/random> to obtain random bytes. Unfortunately, this can be horribly
slow, and in extreme cases it may take several hours before the certificate has
been generated. GnuTLS does not provide a way to use a faster but less secure
alternative, so here are some tips to speed it up or cheat a little.
B<Speed it up:> If you're on a desktop, the general advise is to do something
else on the background so that Linux can generate more data. For example, move
your mouse around a bit, go do some web surfing or play a game. Any activity
might help. If you're on a server, you could start transferring some large
data over the network.
might help. If you're on a server, you could try transferring some large data
over the network.
B<Cheat:> There is also another way to "generate" randomness without waiting
for too long: You can feed some bytes from C</dev/urandom> back to the system
by running the following command as root: C<dd if=/dev/urandom of=/dev/random
bs=512 count=1>. You might have to run that command multiple times to complete
the certificate generation, but certainly no more than about 5 times or so.
Note that this solution weakens the security of the certificate by a bit. For
ncdc that doesn't matter at all, but if you have other applications reading
from C</dev/random>, then the security of those applications is also affected.
Unless you happen to be running something that absolutely requires ulta-secure
random numbers, this trick should be perfectly fine.
B<Cheat:> If you have root access, you can probably trick GnuTLS by temporarily
replacing C</dev/random> with something else. For example, run C<mv /dev/random
/dev/random.old && ln /dev/urandom /dev/random> as root, then start ncdc as you
normally would, let it generate the certificates, and then restore your
modifications with C<mv /dev/random.old /dev/random>.
=head2 Ncdc crashes a lot!
Since version 1.10, the following crashes are possible:
Since version 1.13, the following crash is still possible:
=over
=item * You're using an old GnuTLS version (< 2.10 or so, you can check this
with C<ncdu --version>), and you have tls_policy enabled. To fix this, upgrade
GnuTLS or C</set tls_policy disabled>. (Bug L<#11|http://dev.yorhel.nl/ncdc/bug/11>).
=item * You're running ncdc on an old system. FreeBSD <= 8.0 and Mac OS X <=
10.5 are known to be problematic. To get around this, upgrade your system or
bug me hard enough to come with a fix within ncdc. (Bug
L<#14|http://dev.yorhel.nl/ncdc/bug/14>).
=item * You were typing a C</search> command but forgot to provide a query.
This crash will be fixed soonish.
=item * You're using an old GnuTLS version (< 3.0, you can check this with
C<ncdu --version>), and you have tls_policy enabled. To fix this, upgrade
GnuTLS or use C</set tls_policy disabled>. (Bug
L<#11|http://dev.yorhel.nl/ncdc/bug/11>).
=back
If you're running an older version of ncdc, please upgrade! If your ncdc is up
to date and still have a crash not described here, please report a bug.
to date and you still have a crash not described here, please report a bug.
=head2 Ncdc uses too much disk space!

View file

@ -38,11 +38,11 @@ compiling and/or installing it, I also offer statically linked binaries:
=over
=item * L<Linux, 64-bit|http://dev.yorhel.nl/download/ncdc-linux-x86_64-1.12.tar.gz>
=item * L<Linux, 64-bit|http://dev.yorhel.nl/download/ncdc-linux-x86_64-1.13.tar.gz>
=item * L<Linux, 32-bit|http://dev.yorhel.nl/download/ncdc-linux-i386-1.12.tar.gz>
=item * L<Linux, 32-bit|http://dev.yorhel.nl/download/ncdc-linux-i486-1.13.tar.gz>
=item * L<Linux, ARM|http://dev.yorhel.nl/download/ncdc-linux-arm-1.12.tar.gz> (Only tested on some devices, may not work on all)
=item * L<Linux, ARM|http://dev.yorhel.nl/download/ncdc-linux-arm-1.13.tar.gz>
=back
@ -119,9 +119,9 @@ First install some required packages (as root):
Then, fetch the ncdc source tarball, extract and build as follows:
wget http://dev.yorhel.nl/download/ncdc-1.12.tar.gz
tar -xf ncdc-1.12.tar.gz
cd ncdc-1.12
wget http://dev.yorhel.nl/download/ncdc-1.13.tar.gz
tar -xf ncdc-1.13.tar.gz
cd ncdc-1.13
export PATH="$PATH:/usr/perl5/5.10.0/bin"
./configure --prefix=/usr LDFLAGS='-L/usr/gnu/lib -R/usr/gnu/lib'
make
@ -165,13 +165,13 @@ you can also try to compile ncdc from source. To do so, first install the
required libraries:
sudo apt-get install libbz2-dev libsqlite3-dev libncurses5-dev\
libncursesw5-dev libglib2.0-dev libgnutls-dev
libncursesw5-dev libglib2.0-dev libgnutls-dev zlib1g-dev
Then run the following commands to download and install ncdc:
wget http://dev.yorhel.nl/download/ncdc-1.12.tar.gz
tar -xf ncdc-1.12.tar.gz
cd ncdc-1.12
wget http://dev.yorhel.nl/download/ncdc-1.13.tar.gz
tar -xf ncdc-1.13.tar.gz
cd ncdc-1.13
./configure --prefix=/usr
make
sudo make install
@ -196,6 +196,8 @@ website|http://cygwin.com/> and use it to install the following packages:
=item * wget
=item * zlib-devel
=item * libncursesw-devel
=item * libbz2-devel
@ -211,8 +213,8 @@ website|http://cygwin.com/> and use it to install the following packages:
Then open a Cygwin terminal and run the following commands to download,
compile, and install ncdc:
wget http://dev.yorhel.nl/download/ncdc-1.12.tar.gz
tar -xf ncdc-1.12.tar.gz
cd ncdc-1.12
wget http://dev.yorhel.nl/download/ncdc-1.13.tar.gz
tar -xf ncdc-1.13.tar.gz
cd ncdc-1.13
./configure --prefix=/usr
make install

View file

@ -497,6 +497,10 @@ The time to wait before automatically reconnecting to a hub. Set to 0 to disable
Whether or not to use the sendfile() system call to upload files, if supported. Using sendfile() allows less resource usage while uploading, but may not work well on all systems.
=item B<share_emptydirs> <boolean>
Share empty directories. When disabled (the default), empty directories in your share will not be visible to others. This also affects empty directories containing only empty directories, etc. A file list refresh is required for this setting to be effective.
=item B<share_exclude> <regex>
Any file or directory with a name that matches this regular expression will not be shared. A file list refresh is required for this setting to be effective.

View file

@ -53,7 +53,9 @@ TUWF is also available on a git repository at L<http://g.blicky.net/tuwf.git/>.
=item * L<VNDB.org|http://vndb.org/> (the site that spawned TUWF - L<open source|http://g.blicky.net/vndb.git/>)
=item * L<This website|http://dev.yorhel.nl/> (also L<open source|http://g.blicky.net/yorhel-dev.git/tree/index.cgi>)
=item * L<Manned.org|http://manned.org/> (L<open source|http://g.blicky.net/manned.git/>)
=item * L<This website|http://dev.yorhel.nl/> (L<open source|http://g.blicky.net/yorhel-dev.git/tree/index.cgi>)
=item * L<Blicky.net Pastebin|http://p.blicky.net/> (L<open source|http://g.blicky.net/bpaste.git/tree/index.cgi>)

View file

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iQIcBAABCgAGBQJQLNnBAAoJEGI5TGmMJzn6lgAP/ih34mF9DPoJ+FGGdIPWNbLG
qFg1JF4Wm2TY9orKxETNCTU0v77sA0w+cyMs/jCl1+V3zapMZ30k75c/lUH2vQlq
x3WnSdJqMtuDxo1EFPt6I5fZj1XmTzGx/qaOIe8AuYL9ij1s/yPKNOf2YQZ2KAvt
0pQfjQN21Y52njAUwMq9kRB8PUQfydPLcecmPAGRSsRdlHdnVdIFiVM4uWeAW1lS
AaPK4Suz0OlElTLRwd8XozKs/Er7gVi+UergGlWlWE92AcwLpaU+2dxqbL4ox3K1
+3LWqo044pUyevBP1B3vM75tcEUfNZYZAXac5sHhhoml5ysLnpDmV3fprdDOqpPW
HCy3JMdJn+MUtHL/KGe6ysn+7OnVIGwZp76DTmZAnV++LmFF3Qi8q2seAhqjXJoy
vChZ8FPyiBdmsoGfGsHtH9oQEdLFPMs1264ESWBNwRnvmINxd9NYITIx64snmW38
E3S9wsKd7kVJx9TSloPOYDeqZURO8mdrgLnyo/OMKDrlPDNmq7lESzWCouYzWXWX
jLb/+Xgm35cLoZKucovzS0HNsaf/nGOPuBo9+YwGmBJIpC1TKFzkZLSHTEaksOnT
95G/xg5e6cgdKKlJPYEwRfUHZwbDlhVGi7e5EpeJYR1j3UxIthEX4tnrI4xGeQp5
Uc6wznqnXM6r8nv8u5lk
=vDPK
-----END PGP SIGNATURE-----

View file

@ -0,0 +1 @@
523061427c041a4a079ea5ecbfd26742 ncdc-1.13.tar.gz

View file

@ -0,0 +1 @@
e919dfcf9ff11d48dd133cbd7709ebd317666295 ncdc-1.13.tar.gz

View file

@ -12,6 +12,7 @@ BEGIN { ($ROOT = abs_path $0) =~ s{index\.cgi$}{}; }
my @changes = (
[ '2012-08-16', '/ncdc', 'ncdc 1.13 released.' ],
[ '2012-07-10', '/ncdc', 'ncdc 1.12 released.' ],
[ '2012-05-15', '/ncdc', 'ncdc 1.11 released.' ],
[ '2012-05-03', '/ncdc/install', 'Added installation instructions for ncdc.' ],
@ -90,7 +91,7 @@ TUWF::register(
);
TUWF::set(
logfile => '/www/err.log',
logfile => '/home/yorhel/tuwf.log',
error_404_handler => \&notfound,
mail_from => 'Yorhels Bug Tracker <projects@yorhel.nl>',
# this is a fairly static site, allow some aggressive caching
@ -255,7 +256,7 @@ sub bug_post {
}
# Experimental: announce this report to the ncdc hub, through the globster bot
my $sock = '/tmp/glob.sock';
my $sock = '/tmp/globster.sock';
if(-e $sock) {
my $msg = "Bug activity for $p: $l->{summary} -> http://dev.yorhel.nl/$p/bug/$l->{issue}";
require AnyEvent;
@ -396,6 +397,7 @@ sub htmlHeader {
a href => 'mailto:projects@yorhel.nl', 'projects@yorhel.nl';
br; a href => 'http://yorhel.nl', 'yh';
txt ' - '; a href => 'http://g.blicky.net', 'git';
txt ' - '; a href => 'http://github.com/yorhel', 'github';
txt ' - '; a href => 'http://pgp.mit.edu:11371/pks/lookup?search=0x8c2739fa', 'pgp';
br;br;
lit q|