ncdc 1.10 released + added installation instructions

This commit is contained in:
Yorhel 2012-05-04 16:27:45 +02:00
parent e11c9d17e6
commit d1f18971cb
10 changed files with 254 additions and 70 deletions

View file

@ -10,10 +10,13 @@ ncurses interface.
=item Latest version =item Latest version
1.9 ([dllink ncdc-1.9.tar.gz download] 1.10 ([dllink ncdc-1.10.tar.gz download]
- L<changes|http://dev.yorhel.nl/ncdc/changes> - L<changes|http://dev.yorhel.nl/ncdc/changes>
- L<mirror|https://sourceforge.net/projects/ncdc/files/ncdc/>) - 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>.
=item Development version =item Development version
The latest development version is available from git and can be cloned using The latest development version is available from git and can be cloned using
@ -25,9 +28,8 @@ You are also invited to join the development hub at C<adc://dc.blicky.net:2780/>
=item Requirements =item Requirements
The following libraries are required: ncurses, bzip2, sqlite3, glib2 and The following libraries are required: ncurses, bzip2, sqlite3, glib2, gnutls
libxml2. For TLS support, you will need at least glib2 version 2.28.0 and and libxml2.
glib-networking installed.
Ncdc is entirely written in C and available under a liberal MIT license. Ncdc is entirely written in C and available under a liberal MIT license.
@ -40,14 +42,14 @@ L<Frugalware|http://frugalware.org/packages/136807> -
L<Gentoo|http://packages.gentoo.org/package/net-p2p/ncdc> - L<Gentoo|http://packages.gentoo.org/package/net-p2p/ncdc> -
L<OpenSUSE|http://packman.links2linux.org/package/ncdc> L<OpenSUSE|http://packman.links2linux.org/package/ncdc>
The L<Open Build I also have a few packages on the L<Open Build
Service|https://build.opensuse.org/package/show?package=ncdc&project=home%3Ayorhel> Service|https://build.opensuse.org/package/show?package=ncdc&project=home%3Ayorhel>.
has some as well:
[html]<iframe src="http://software.opensuse.org/download/package.iframe?project=home:yorhel&package=ncdc" style="width: 560px; height: 200px; border: 1px dashed #aaa"></iframe>É
=back =back
=cut
[html]<iframe src="http://software.opensuse.org/download/package.iframe?project=home:yorhel&package=ncdc" style="width: 560px; height: 200px; border: 1px dashed #aaa"></iframe>É
=head2 Features =head2 Features

View file

@ -1,3 +1,24 @@
1.10 - 2012-05-03
- Rewrote network backend to use plain sockets instead of GIO
- Added GnuTLS as required dependency
- Removed GIO and glib-networking dependencies
- Removed 'ncdc-gen-cert' utility - ncdc can now generate certs by itself
- Enable client-to-client TLS by default
- Added 'tls_priority' setting
- Added 'reconnect_timeout' setting
- Don't quit ncdc on Ctrl+C
- Display age of file list in the title bar
- Don't build the 'ncdc-db-upgrade' tool by default
- Switched to a single top-level Makefile
- Fix '/browse user -f' ('-f' argument after username)
- Fix hub login when it checks for public hubs = 0
- Fix overflow of long tab titles
- Fix loading of microdc2-generated file lists
- Fix loading of file lists with an invalid character
- Fix occasional crash when TLS is enabled
- Fix transfer rate indication and limiting with TLS connections
- Fix small memory leak when 'upload_rate' is set
1.9 - 2012-03-14 1.9 - 2012-03-14
- Allow all 'active_' settings to be changed on a per-hub basis - Allow all 'active_' settings to be changed on a per-hub basis
- Allow 'active_ip' to be unset and automatically get IP from hub - Allow 'active_ip' to be unset and automatically get IP from hub

View file

@ -45,31 +45,10 @@ up-to-date client that still uses any of these features.
=head1 Troubleshooting =head1 Troubleshooting
=head2 How do I install ncdc on Ubuntu?
Try the package from the L<Open Build
Service|http://software.opensuse.org/download.html?project=home:yorhel&package=ncdc>
and follow those instructions.
Alternatively, you can also build directly from the source. To do so, run the
following command:
sudo apt-get install libbz2-dev libsqlite3-dev\
libncursesw5-dev libxml2-dev libglib2.0-dev
And then follow the instructions in the README.
=head2 Ncdc crashes a lot! =head2 Ncdc crashes a lot!
Make sure client-to-client TLS is disabled: Since version 1.10, it shouldn't crash at all. Please report a bug. (If you're
running an older version, please upgrade!)
/set tls_policy disabled
If that doesn't fix it, please report a bug. You may also wish to debug the
problem a bit further yourself, in which case the L<HACKING
file|http://g.blicky.net/ncdc.git/tree/HACKING> will have some valuable
information.
=head2 Ncdc uses too much disk space! =head2 Ncdc uses too much disk space!
@ -96,15 +75,6 @@ L<this is the script I use|http://p.blicky.net/s7132>, which is run as a
monthly cron job. monthly cron job.
=head2 I'm getting the error "No PEM-encoded private key found" on startup
(This issue should be fixed since 1.6) Most likely this is caused by a
L<bug in glib-networking|https://bugzilla.gnome.org/show_bug.cgi?id=664321>. To
get around it, install the "certtool" utility that comes with gnutls (package
"gnutls-bin" on Ubuntu), delete the old certificates (C<rm ~/.ncdc/cert/*>),
and then start ncdc again.
=head1 Can ncdc... =head1 Can ncdc...
@ -125,26 +95,6 @@ L<GNU screen|http://www.gnu.org/s/screen/>,
L<tmux|http://tmux.sourceforge.net/> or L<dtach|http://dtach.sourceforge.net/>. L<tmux|http://tmux.sourceforge.net/> or L<dtach|http://dtach.sourceforge.net/>.
=head2 Does ncdc support TLS?
Yes! To make use of this, however, you need to have a relatively new version of
glib2. If you're still working with an outdated system, an alternative is to
use L<stunnel|http://www.stunnel.org/> to connect to TLS-enabled hubs. This
trick does not allow encrypted client-to-client connections, so your file
transfers will remain unencrypted.
The following example stunnel configuration is what I used to connect to
the DC Development hub before ncdc had native TLS support:
[dcdev]
client = yes
accept = 127.0.0.1:16591
connect = hub.dcbase.org:16591
The URL C<adc://127.0.0.1:16591/> can then be used to connect to the hub from
within ncdc.
=head2 Does ncdc support UPnP? =head2 Does ncdc support UPnP?
Not natively. However, it is possible to use L<this Not natively. However, it is possible to use L<this

184
dat/ncdc-install Normal file
View file

@ -0,0 +1,184 @@
=head1 General instructions
=head2 Building from source
In theory, the following instructions should work everywhere:
=over
=item * Install the required dependencies: ncurses, bzip2, sqlite3, libxml2, glib2 and gnutls,
=item * Download and extract the source tarball from the L<homepage|http://dev.yorhel.nl/ncdc>,
=item * C<./configure>
=item * C<make>
=item * And then run C<make install> with superuser permissions.
=back
In practice, however, this does not always work and may not always be the
prefered method of installation. On this page I try to collect instructions for
each OS and distribution to make the installation process a bit easier for
everyone.
If your system is missing from this page or if you're still having trouble,
don't hesitate to join the support hub at C<adc://dc.blicky.net/> or send me a
mail at L<projects@yorhel.nl|mailto:projects@yorhel.nl>. Contributions to this
page are of course highly welcomed as well. :-)
=head2 Statically linked binaries
If you just want to get ncdc running without going through the trouble of
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.10.tar.gz>
=item * L<Linux, 32-bit|http://dev.yorhel.nl/download/ncdc-linux-i386-1.10.tar.gz>
=back
To use them, simply download and extract the tarball, and then run C<./ncdc> on
the command line.
The binaries include all the required dependencies and are linked against
L<musl|http://www.etalabs.net/musl/>, so they should run on any Linux machine
with the right architecture. If you want binaries for an other OS or
architecture , please bug me and I'll see what I can do.
=head1 System-specific instructions
=head2 Arch Linux
Ncdc is available on L<AUR|https://aur.archlinux.org/packages.php?ID=50949>, to
install it you can use your favorite AUR-installer. If you don't have a
favorite, go for the manual approach:
wget https://aur.archlinux.org/packages/nc/ncdc/ncdc.tar.gz
tar -xf ncdc.tar.gz
cd ncdc
makepkg -si
=head2 FreeBSD
Ncdc is available in the Ports Collection. To install, L<make sure your
collection is
up-to-date|http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html>
and install the Port as any other:
cd /usr/ports/net-p2p/ncdc
make install clean
=head2 Gentoo
Ncdc is available in the Portage tree, so installation is trivial:
emerge ncdc
=head2 Mac OS X
Ncdc does work on Mac OS X, but installation is currently a pain. Get back to
this page in a fews days while I'm working on a solution.
=head2 OpenSUSE
Get the package from L<PackMan|http://packman.links2linux.org/package/ncdc>:
Select your openSUSE release and hit the "1 click install" button.
Alternatively, I also have packages on the L<Open Build
Service|http://software.opensuse.org/download/package?project=home:yorhel&package=ncdc>,
but I suspect their quality isn't really on the same level as those on PackMan
because I am not an openSUSE developer. :-)
=head2 Ubuntu & Debian
The preferred way of installing ncdc on Ubuntu or Debian is to use the packages
provided on the L<Open Build
Service|http://software.opensuse.org/download/package?project=home:yorhel&package=ncdc>.
Select your distribution and follow the instructions. The listed commands
should be run with superuser privileges; To get a root shell on Ubuntu type
C<sudo -s>. When installing the package, you may get a warning about how the
package is not authenticated or verified, this can be safely ignored. Just
confirm the installation when prompted whether it should continue or not.
You only have to follow the above steps once, newer versions will be installed
automatically with regular system updates.
=head3 Building from source
In the event that there is no up-to-date package available for your version,
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 libxml2-dev libglib2.0-dev libgnutls-dev
Then run the following commands to download and install ncdc:
wget http://dev.yorhel.nl/download/ncdc-1.10.tar.gz
tar -xf ncdc-1.10.tar.gz
cd ncdc-1.10
./configure --prefix=/usr
make
sudo make install
=head2 Windows (Cygwin)
Surprisingly enough, ncdc can be used even on Windows, thanks to Cygwin. If
you haven't done so already, get C<setup.exe> from the L<Cygwin
website|http://cygwin.com/> and use it to install the following packages:
=over
=item * make
=item * gcc4
=item * perl
=item * pkg-config
=item * wget
=item * libncursesw-devel
=item * libbz2-devel
=item * libxml2-devel
=item * libglib2.0-devel
=item * libsqlite3-devel
=item * gnutls-devel
=back
Then open a Cygwin terminal and run the following commands to download,
compile, and install ncdc:
wget http://dev.yorhel.nl/download/ncdc-1.10.tar.gz
tar -xf ncdc-1.10.tar.gz
cd ncdc-1.10
./configure --prefix=/usr
make install

View file

@ -210,7 +210,7 @@ Open the download queue.
=item B</quit> =item B</quit>
Quit ncdc. You can also just hit ctrl+c, which is equivalent. Quit ncdc.
=item B</reconnect> =item B</reconnect>
@ -402,7 +402,7 @@ This regex is not checked when adding individual files from either the file list
=item B<download_rate> <speed> =item B<download_rate> <speed>
Maximum combined transfer rate of all downloads. The total download speed will be limited to this value. The suffixes `G', 'M', and 'K' can be used for GiB/s, MiB/s and KiB/s, respectively. Note that, similar to upload_rate, TCP and TLS overhead are not counted towards this limit, so the actual bandwidth usage might be a little higher. Maximum combined transfer rate of all downloads. The total download speed will be limited to this value. The suffixes `G', 'M', and 'K' can be used for GiB/s, MiB/s and KiB/s, respectively. Note that, similar to upload_rate, TCP overhead are not counted towards this limit, so the actual bandwidth usage might be a little higher.
=item B<download_slots> <integer> =item B<download_slots> <integer>
@ -475,6 +475,10 @@ Your nick. Nick changes are only visible on newly connected hubs, use the `/rec
Sets your password for the current hub and enables auto-login on connect. If you just want to login to a hub without saving your password, use the `/password' command instead. Passwords are saved unencrypted in the config file. Sets your password for the current hub and enables auto-login on connect. If you just want to login to a hub without saving your password, use the `/password' command instead. Passwords are saved unencrypted in the config file.
=item B<reconnect_timeout> <interval>
The time to wait before automatically reconnecting to a hub. Set to 0 to disable automatic reconnect.
=item B<sendfile> <boolean> =item B<sendfile> <boolean>
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. 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.
@ -501,7 +505,9 @@ Set the policy for secure client-to-client connections. Setting this to `disable
The use of TLS for client connections usually results in less optimal performance when uploading and downloading, but is quite effective at avoiding protocol-specific traffic shaping that some ISPs may do. Also note that, even if you set this to `prefer', TLS will only be used if the connecting party also supports it. The use of TLS for client connections usually results in less optimal performance when uploading and downloading, but is quite effective at avoiding protocol-specific traffic shaping that some ISPs may do. Also note that, even if you set this to `prefer', TLS will only be used if the connecting party also supports it.
Enabling TLS may result in less accurate traffic shaping when the `download_rate' or `upload_rate' settings are used. =item B<tls_priority> <string>
Set the GnuTLS priority string used for all TLS-enabled connections. See the "Priority strings" section in the GnuTLS manual for details on what this does and how it works. Currently it is not possible to set a different priority string for different types of connections (e.g. hub or incoming/outgoing client connections).
=item B<ui_time_format> <string> =item B<ui_time_format> <string>
@ -536,7 +542,6 @@ C</help keys> command, and is reproduced below.
Alt+q Open the download queue tab. Alt+q Open the download queue tab.
Alt+o Open own file list. Alt+o Open own file list.
Alt+r Refresh file list. Alt+r Refresh file list.
Ctrl+c Quit ncdc.
Keys for tabs with a log window: Keys for tabs with a log window:
Ctrl+l Clear current log window. Ctrl+l Clear current log window.
@ -667,9 +672,8 @@ $NCDC_DIR or $HOME/.ncdc.
=item $NCDC_DIR/cert/ =item $NCDC_DIR/cert/
Directory where the client certificates are stored. Must contain a private key Directory where the client certificates are stored. Must contain a private key
file (client.key) and public certificate (client.crt). These should be file (client.key) and public certificate (client.crt). These will be generated
generated automatically when ncdc starts up the first time, but can be automatically when ncdc starts up the first time.
generated manually using L<ncdc-gen-cert(1)>.
=item $NCDC_DIR/db.sqlite3 =item $NCDC_DIR/db.sqlite3
@ -750,4 +754,4 @@ Web: L<http://dev.yorhel.nl/ncdc>
=head1 SEE ALSO =head1 SEE ALSO
L<ncdc-gen-cert(1)>, L<ncdc-db-upgrade(1)>. L<ncdc-db-upgrade(1)>.

View file

@ -54,7 +54,7 @@ L<IPCop|http://www.ipadd.de/binary-v2.html> -
L<OpenBSD|http://www.openbsd.org/cgi-bin/cvsweb/ports/sysutils/ncdu/> - L<OpenBSD|http://www.openbsd.org/cgi-bin/cvsweb/ports/sysutils/ncdu/> -
L<OpenSUSE|http://packman.links2linux.de/package/ncdu/> - L<OpenSUSE|http://packman.links2linux.de/package/ncdu/> -
Mac OS X (L<Fink|http://pdb.finkproject.org/pdb/package.php/ncdu> - L<Homebrew|http://mxcl.github.com/homebrew/> - L<MacPorts|http://www.macports.org/ports.php?by=name&substr=ncdu>) - Mac OS X (L<Fink|http://pdb.finkproject.org/pdb/package.php/ncdu> - L<Homebrew|http://mxcl.github.com/homebrew/> - L<MacPorts|http://www.macports.org/ports.php?by=name&substr=ncdu>) -
L<Pardus|http://packages.pardus.org.tr/info/2011/devel/source/ncdu.html> - L<Pardus|http://packages.pardus.org.tr/info/2011/testing/source/ncdu.html> -
L<Puppy Linux|http://www.murga-linux.com/puppy/viewtopic.php?t=35024> - L<Puppy Linux|http://www.murga-linux.com/puppy/viewtopic.php?t=35024> -
Solaris (L<CSW|http://www.opencsw.org/packages/ncdu> - L<sunfreeware|http://www.sunfreeware.com/>) - Solaris (L<CSW|http://www.opencsw.org/packages/ncdu> - L<sunfreeware|http://www.sunfreeware.com/>) -
Slackware (L<Slackbuilds|http://slackbuilds.org/repository/13.37/system/ncdu/> - L<Slackers.it|http://www.slackers.it/repository/ncdu/>) - Slackware (L<Slackbuilds|http://slackbuilds.org/repository/13.37/system/ncdu/> - L<Slackers.it|http://www.slackers.it/repository/ncdu/>) -

View file

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iQIcBAABCgAGBQJPoqDdAAoJEGI5TGmMJzn6BnoP/jvDd5KfnQ4kHqq5jzm1XOc5
ncUhUqrb5S9VAT4IkDbiZ2ICop9tgiEws9q9sgHLq+HN9qaZgGCoCNBS+QhYWqPB
sDrSWJt74Vp3M0cXMrDllybC6OTbO1SQhseuC0o/239VdPOjB7XYNFnd5Ra7Q+iK
K9GQ2lpzo3C95cHNJbMotW0x1R9o/It/UGfeDdT3m5xTMStes3QhE1rifcnl14hM
SY2WnTJ+xOGz/l3tu774yFU1IggkImq6xVVI3zoD92ygUSSasntADPK+xHp5pf5T
gDJ0ySnLlfZEn4rO52zmvsPBhD7lfylaWVVppg7Aeh72R6IbNwfBkboeYQacoPzm
IJrx7OJDPPSKvVWVdCGR/Rg3mcf8mTYKp8l3eQ3m3cAXWsA6x9BCj+WBEapQUsrx
2NRpDeDa28dxHlQ+kskZkYKSOh41IRQX3omO/2rK0ChRde/2sTDeIGLRYwIZy4o+
lHG3tYEhKAWQKUK/cf/q6nlkfQtis6goI6iXuZOML4oe3ZrgGcTlAeeMQ4uSr1nL
8kygyZOEAkCRNW4xPLEnrB4sjaiR/q+2WueopLs6gEIKbSAGIUCQI1gLul8WTKn5
k7XPNoDd5ZuwKyGHb5Xc5+7X+VKeH27cZlFzcFuvyiT16eaRaHRMjLyvwBvZeWjK
+FxibLfoqqhqjBJ/aFgl
=6H5t
-----END PGP SIGNATURE-----

View file

@ -0,0 +1 @@
a56c5b16d2fd98157a70ab7eb0aea24d ncdc-1.10.tar.gz

View file

@ -0,0 +1 @@
06e3ad1de0353711b217ae9f1a456d9d0c3e403b ncdc-1.10.tar.gz

View file

@ -12,6 +12,8 @@ BEGIN { ($ROOT = abs_path $0) =~ s{index\.cgi$}{}; }
my @changes = ( my @changes = (
[ '2012-05-03', '/ncdc/install', 'Added installation instructions for ncdc.' ],
[ '2012-05-03', '/ncdc', 'ncdc 1.10 released.' ],
[ '2012-04-10', undef, 'Minor site re-style: ncdu/ncdc/tuwf now have their own menu.' ], [ '2012-04-10', undef, 'Minor site re-style: ncdu/ncdc/tuwf now have their own menu.' ],
[ '2012-03-30', '/dump', 'Updated ncdc-share-report for Go 1' ], [ '2012-03-30', '/dump', 'Updated ncdc-share-report for Go 1' ],
[ '2012-03-24', '/ncdu/bug', 'Moved ncdu bug tracker from sourceforge to this site' ], [ '2012-03-24', '/ncdu/bug', 'Moved ncdu bug tracker from sourceforge to this site' ],
@ -65,6 +67,7 @@ TUWF::register(
qr{ncdc/faq} => sub { podpage(shift, 'ncdc-faq', 'ncdc', 'faq', 'Ncdc Q&A', 1) }, qr{ncdc/faq} => sub { podpage(shift, 'ncdc-faq', 'ncdc', 'faq', 'Ncdc Q&A', 1) },
qr{ncdc/scr} => sub { podpage(shift, 'ncdc-scr', 'ncdc', 'scr', 'Ncdc Screenshots') }, qr{ncdc/scr} => sub { podpage(shift, 'ncdc-scr', 'ncdc', 'scr', 'Ncdc Screenshots') },
qr{ncdc/man} => sub { podpage(shift, 'ncdc-man', 'ncdc', 'man', 'Ncdc Manual', 1) }, qr{ncdc/man} => sub { podpage(shift, 'ncdc-man', 'ncdc', 'man', 'Ncdc Manual', 1) },
qr{ncdc/install} => sub { podpage(shift, 'ncdc-install', 'ncdc', 'install', 'Ncdc Installation Instructions', 1) },
qr{ncdc/changes} => sub { changelog(shift, 'ncdc-changelog', 'ncdc', 'ncdc', 'changes', 'Ncdc Changelog') }, qr{ncdc/changes} => sub { changelog(shift, 'ncdc-changelog', 'ncdc', 'ncdc', 'changes', 'Ncdc Changelog') },
qr{tuwf} => sub { podpage(shift, 'tuwf', 'tuwf', '', 'The Ultimate Website Framework') }, qr{tuwf} => sub { podpage(shift, 'tuwf', 'tuwf', '', 'The Ultimate Website Framework') },
qr{tuwf/man(?:/(db|misc|request|response|xml))?} => \&tuwfmanual, qr{tuwf/man(?:/(db|misc|request|response|xml))?} => \&tuwfmanual,
@ -441,6 +444,7 @@ sub htmlMenu {
$m->('/ncdu/bug', 'Bug tracker', $o{sec} eq 'bug'); $m->('/ncdu/bug', 'Bug tracker', $o{sec} eq 'bug');
} elsif($o{page} eq 'ncdc') { } elsif($o{page} eq 'ncdc') {
$m->('/ncdc', 'Info', !$o{sec}); $m->('/ncdc', 'Info', !$o{sec});
$m->('/ncdc/install', 'Installation',$o{sec} eq 'install');
$m->('/ncdc/faq', 'Q&A', $o{sec} eq 'faq'); $m->('/ncdc/faq', 'Q&A', $o{sec} eq 'faq');
$m->('/ncdc/man', 'Manual', $o{sec} eq 'man'); $m->('/ncdc/man', 'Manual', $o{sec} eq 'man');
$m->('/ncdc/changes', 'Changelog', $o{sec} eq 'changes'); $m->('/ncdc/changes', 'Changelog', $o{sec} eq 'changes');