draw upon a patch to update for 2007.01.17 in PR 38038
While here, add DESTDIR support and fix permission of installed libraries.
2008.04.09:
- Corrected a type-related bug in "RTPInterface::handleRead()". (Thanks to Brain Lai for noting this.)
- Fixed a bug in "RTSPClient" that would prevent RTCP "RR" reports from being sent to
the correct multicast address when we are receiving a multicast stream. (Thanks to Changjin Liu for noticing this.)
2008.04.03:
- Fixed a bug that was introduced in the "2007.12.27" release. The "timeout" parameter to the call to
"readSocket" in "SocketDescriptor::tcpReadHandler()" in "RTPInterface.cpp" needed to be initialized
(to zero) first. (Thanks to Lodewijk Loos for alerting us to this problem.)
- Added a new config file "config.bfin-linux-uclibc", and renamed "config.bfin_uclinux" as "config.bfin-uclinux".
(Thanks to Mike Frysinger.)
2008.02.08:
- Added a hack (suggested by "Romain") to "MPEG2TransportStreamFramer" to (perhaps)
produce more accurate per-transport-packet duration estimates for wildly VBR streams.
- Updated "MPEG2TransportStreamMultiplexor" to support the addition of MPEG-4 Audio or Video Elementary Streams.
- Updated "RTSPOverHTTPServer.cpp" (a work in progress) so that it complies properly for some versions of
Visual Studio on Windows. (Thanks to Eric Flickner for noting this.)
2008.01.19:
- Corrected the "getNormalPlayTime()" function - introduced in the previous release - to allow for 'trick play'
scale factors other than 1.
2008.01.18:
- Added a new member function
float MediaSubsession::getNormalPlayTime()
which - given a stream's current presentation time - returns the "Normal Play Time".
This function is useful for RTSP streams.
- Added support for a "a=control:" URL specified in the SDP description at the session level.
2008.01.04:
- Changed the "RTSPClient" timeout - introduced in the previous release - from
5s to 30s.
- Added support for setting and returning the RTSP session start time (as well as the end time).
(This eliminates the need for the "live-starttime.patch" file that VLC was using.)
- Updated some of the system-specific configuration files, to eliminate the need for many of the patches that
the VLC developers added to their code.
2007.12.27:
- Added a 5s timeout to the "RTSPClient" code that checks for RTSP responses.
This mirrors a change that was already being done to VLC's copy of the code.
(This is still a short-term fix, until the "RTSPClient" code is rewritten to
properly use asynchronous I/O, using the event loop.)
- Added a timeout to the "readSocket()" call in "SocketDescriptor::tcpReadHandler()" in "RTPInterface.cpp",
to handle reading RTP-over-TCP data. This allows for the possibility of non-cooperative RTSP clients.
(Thanks to Peter Leese for this suggestion.) This is probably not a complete solution;
more thought is needed...
2007.12.07:
- Fixed "H2633plusVideoFileServerMediaSubsession" to properly use a dynamic RTP payload type, rather than the
static type 34 (which is reserved for the now-obsolete old "video/H263" RTP payload format).
2007.12.06:
- Updated "JPEGVideoRTPSource" to take optional 'default width' and 'default height' parameters.
These parameters can be set by fields in the SDP description, and can be used to specifiy unusually
large frame widths and/or heights. (Thanks to Andrey Filippov.)
2007.11.18:
- Fixed a couple of memory leaks in "DarwinInjector". (Thanks to Eyal Beit-Halachmi for noting these.)
- Removed old 'backwards compatibility' stuff from "FramedSource". (Noone should be relying upon this any more.)
- Fixed a bounds-checking error in "parseRTSPRequestString()" caused by an int vs. unsigned problem.
(Thanks to Luigi Auriemma for noting this.)
- In "RTSPClient.cpp", fixed a couple of "unsigned" vs. "int" nits. (Thanks for Brain Lai for noting this.)
2007.11.01:
- Several of the options to "openRTSP" have now been changed, with two new options added:
-s <initial-seek-time>
-z <scale>
See the "openRTSP" documentation <http://www.live555.com/openRTSP/> for details.
- Fixed a bug in the way that "MPEG4VideoStreamDiscreteFramer" parses 'config' information (for inclusion in
the stream's SDP description). (Thanks to Nicola Bova for helping to identify this bug.)
- Eliminated a potential memory (and socket) leak when allocating server RTP,RTCP socket pairs.
(Thanks to David Pan for reporting this.)
- Updated "ByteStreamFileSource" to treat a 0-byte file read the same as EOF.
- Ensure that we have reasonable OS buffering for writes on non-blocking sockets.
2007.08.03a:
- Removed a debugging printf() that had been left in by mistake. (Thanks to Massimo Zito for noticing this.)
2007.08.03:
- Updated the "RTSPServer" implementation to work better on systems with more than one IP address.
The server will now include - in its RTSP responses - the IP address on which the corresponding incoming request
was received.
2007.07.25:
- Added some sanity checks to various "MediaSink" subclasses, in case "fSource" is NULL.
(Thanks to Andrey Kaminsky for noting one of these.)
2007.07.10:
- Made sure that "MPEG2TransportStreamFramer"s estimate of the average duration of each Transport Packet
gets updated correctly after each 'seek' operation. (Thanks to Massimo Zito for suggesting this.)
- Fixed a bug in "MPEG2TransportStreamFromESSource" that was causing presentation
timestamps to not be generated correctly. (Thanks to Massimo Zito for noticing this.)
2007.07.01:
- Fixed a bug in "RTSPServer" and "RTSPClient" that would cause problems when streaming
files whose names have spaces in them.
- Fixed a bug in "OnDemandServerMediaSubsession::deleteStream". (Thanks to Igor Bukanov.)
- Make the sockets for "RTPSource", "RTCPInstance" and "BasicUDPSource" non-blocking, even though they will be read
from only asynchronously, when packets arrive. The reason for this is that, in some OSs, reads on a blocking
socket can (allegedly) sometimes block, even if the socket was previously reported (e.g., by "select()") as
having data available. (This can supposedly happen if the UDP checksum fails, for example.)
(Thanks to Marc Neuberger for pointing this out.)
- Fixed a bug in "MPEG2TransportFileServerMediaSubsession.cpp" that was causing 2x
fast-forward to fail. (Some debugging code had been left in by mistake.)
2007.05.24:
- Modified "setupDatagramSocket()" to better handle setting "ReceivingInterfaceAddr" when creating a socket
to be used to send/receive multicast.
- Made a couple of minor changes to overcome some compilation errors that some people were apparently seeing.
2007.05.23:
- The RTSP server now includes the "source=" parameter in the response to a RTSP "SETUP" command.
This works around a bug in QuickTime Player that would cause it to not send RTCP "RR" packets
(when playing a unicast stream, and running on Mac OS X). (Thanks to Dave Singer et al at Apple for tracking
down this problem.)
- The RTSP server implementation no longer terminates the session if it returns 400 or 405 errors.
2007.04.24a:
- Fixed a problem in the new "RTSPOverHTTPServer" code that was causing some people compilation problems.
2007.04.24:
- Fixed a typo in "testOnDemandRTSPServer.cpp". (Thanks to Nils Grundback for noticing this.)
- Modified the signature of "RTSPServer::specialClientAccessCheck()" (defined in the previous revision) to add
a new "clientAddr" parameter (a "struct sockaddr_in"), to allow special access checking based on clients' IP
address.
- Make sure that the locale is set to "POSIX" when calling "toupper()" or "tolower()" on human-supplied strings.
(Thanks to Ismail Doenmez for noting this.)
2007.04.20:
- Modified "MPEG2TransportStreamMultiplexor" to set the "discontinuity_indicator" flag for the first
"adaptation_field" in the output Transport Stream.
- Changed "AMRAudioRTPSource" to more accurately report whether/when an interleaved frame's timestamp has
been synchronized using RTCP.
(Thanks to David Bertrand for this patch.)
- Made to a small fix to the previous revision's support for multicast streaming of raw UDP (nonstandard)
- Added a virtual function to "OnDemandServerMediaSubsession" for closing the stream source.
Subclasses can redefine this, if they wish, to do something smarter. (Thanks to Igor Bukanov for this patch.)
- Added support to "RTSPServer" for optionally performing special per-client access control, beyond the
standard Digest Authentication method. (Thanks to Igor Bukanov for this patch.)
- Made a minor optimization to "Groupsock.cpp". (Thanks to Maxim Petrov for this suggestion.)
- Added an initial implementation of RTSP-over-HTTP at the server level (it was already supported at the client level).
(Note: This code has not yet been completed, and doesn't yet work, so don't try to use it.)
2007.02.20:
- Updated "RTSPServer" to support multicast streaming of raw UDP streams (nonstandard).
(Thanks to Aesmund Grammeltvedt for this modification.)
- Made "RTSPClient" a little more robust in case the TCP connection fails.
- Made "RTPSink::rtpmapLine()" virtual (as requested by Andrew Voznytsa).
- Removed an archaic (no longer used) declaration in "groupsock/include/Groupsock.hh".
- Added an optional "allowKasennaProtocol" parameter to "RTSPClient::describeWithPassword()"
(similar to "RTSPClient::describeURL()"). (Thanks to Igor Bukanov for this suggestion.)s
2007.01.17:
- Fixed a bug that would cause the "MPEG2TransportStreamIndexer" application to fail when run on a big-endian
architecture.
- Added a new class "H264VideoFileSink", that prepends each incoming H.264 NAL unit with the prefix 0x000001,
before writing it to the file. Also updated the "openRTSP" code to use this, when receiving H.264/RTP streams.
(Thanks to Chris Kuiper for contributing this.)
- Added a temporary #ifdef to "GroupsockHelper.cpp" to work around a compliation problem when building
for Cygwin.
2007.01.11:
- Improved the "MPEG2IndexFromTransportStream" class to recogize Transport Stream
PAT and PMT (tables). This in turn makes the "MPEG2TransportStreamIndexer"
utility more robust.
- Fixed a minor bug in "MPEG2TransportStreamFromESSource".
2007.01.09:
- Added RTSP server support for 'trick play' operations on MPEG-2 Transport Stream
files. This requires the presence of a ".tsx" index file for each ".ts" file.
(This functionality will shortly be documented on the LIVE555 web site,
and announced on the "live-devel" mailing list.)
- Improved the performance of asynchronous file reading in "ByteStreamFileSource".
(Thanks to Aesmund Grammeltvedt for this suggestion.)
- Added "-D_FILE_OFFSET_BITS=64" to the "COMPILE_OPTS" line for each of the Linux config files, in order to
alleviate possible problems with I/O on large files.
2006.12.31:
- We now implement "ByteStreamFileSource" on Windows using synchronous file reads,
by default. I had thought that Windows XP had fixed the problem - present in
earlier versions of Windows - whereby open files are not treated as select()able
sockets. But apparently the problem is still there.
- Added code that will - probably in the next release, very soon - support server
'trick mode' operations on MPEG-2 Transport Stream files. At present, we have two
new applications - in the "testProgs" directory - that help support this:
"MPEG2TransportStreamIndexer" (to create a special index file for a Transport Stream
file), and "testMPEG2TransportStreamTrickPlay" (to generate a new Transport Stream
file that simulates a 'trick play' operation performed on the original Transport
Stream file). See my forthcoming post to the "live-devel" mailing list for more
details.
- Fixed a bug in the Base64 encoding routine. (Thanks to Sebastian Gracias for reporting this.)
2006.12.08:
- Made sure that each TCP socket used by a "RTSPserver" is non-blocking, so that a slow or hanging client
cannot hang a server. (Thanks to "jers (at) inwind.it" for this suggestion.)
Changes:
*******************************************************************************
Version 1.6.6
*******************************************************************************
2008-04-24 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Added thread id's to the UpnpPrintf debug messages. Thanks to
Charles Nepveu for the idea.
2008-04-24 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 1948586 ]
Uppercase U in in "xmlns:U" in Invoke Action causes seg. f.
Submitted By: Thomas Norheim - kjakan_no
Device no longer segfaults with the following malformed xml action:
<u:SetColor xmlns:U="urn:schemas-upnp-org:service:tvpicture:1">
<Color>2</Color>
</u:SetColor>
2008-04-23 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Use -O0 in debug builds so that variables do not get optimized out.
2008-04-10 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Apostolos Syropoulos changes for OpenSolaris x86.
2008-03-20 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Andre Sodermans (wienerschnitzel) patch for building libupnp under
windows systems with VC9.
2008-03-20 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Andre Sodermans (wienerschnitzel) patch for building libupnp under
windows systems with VC8.
2008-03-08 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Fixed a printf format problem on the upnp_tv_device.c from both
upnp/sample/tvdevie and upnp/sample/tvcombo directories. The variable
port was a short int instead of an unsigned short and it was beeing
print as a negative value.
2008-03-08 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* SF Bug Tracker [ 1902668 ] Cannot compile on MSVC
Submitted By Luke Kim - nereusuj
Version 1.6.5 cannot be compiled because of some changes in 1.6.3.
MSVC does not support stdint.h, gettimeofday(), sys/param.h, const int
variables in array size and Windows does not define _WINDOWS_ but define
_WINDOWS.
* MSVC does not understand "const int"'s as declarators of array
dimensions, we must use #define'd constants.
* Use WIN32 instead of _WINDOWS_ or _WINDOWS.
2008-02-22 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* No longer ignore "upnp:rootdevice" advertisement. Thanks to Bob Ciora.
2008-02-10 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Changed "sys_errlist[errno]", which is deprecated, by
"strerror_r()", which is thread safe.
2008-02-06 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Slightly improved error report by showing the sys_errlist string
corresponding to errno.
2008-02-06 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Got rid of two useless constants: UPNP_SOCKETERROR and
UPNP_INVALID_SOCKET. They both mean the same, that a network API
function has failed. -1 is the value to check, not an invented constant.
pkgsrc change: use python dependencies from pkgsrc instead
of the ones delivered with clive.
Version 0.4.11 [2008-04-24]
=================================================================
+new !fix ~change -remove | focus: Major bugfixes
+ --with-PACKAGE[=yes|no] (sr #1986)
See the INSTALL file for more details.
~ Prerequisite: newt (snack) module
The module is now expected to be found.
! Youtube: "video removed" (bug #11564) [blocker]
Affected versions: clive < 0.4.11
! Unportable test(1) construct (bug #11552) [0.4.10]
configure used previously the unportable bash "==" comparison
operator for test(1) which is not supported by most other shells.
- assume that Python 2.4 and 2.5 are compatible and allow checking for
fallout.
- remove PYTHON_VERSIONS_COMPATIBLE that are obsoleted by the 2.3+
default. Modify the others to deal with the removals.
- supports DESTDIR
- Accept Python 2.5
ChangeLog:
2007-11-25 Bob Halley <halley@dnspython.org
* dns/query.py (_wait_for): if select() raises an exception due to
EINTR, we should just select() again.
2007-06-13 Bob Halley <halley@dnspython.org>
* dns/inet.py: Added is_multicast().
* dns/query.py (udp): If the queried address is a multicast address, then
don't check that the address of the response is the same as the address
queried.
2007-05-24 Bob Halley <halley@dnspython.org>
* dns/rdtypes/IN/NAPTR.py: NAPTR comparisons didn't compare the
preference field due to a typo.
Start URL quoting cleanup. All URLs are now quoted correctly on parsing
and when appending URLs. URLs without schema and starting with slash are
considered to be file:// URLs.
2008-02-16 Hajimu UMEMOTO <ume@mahoroba.org>
* Socket6.pm: Bump version number to 0.20.
* Socket6.pm: Make the AF_INET6 and PF_INET6 exports optional.
They are exported from Socket on 5.10.0, and it contlicts with
Socket6.
PR: http://rt.cpan.org/Public/Bug/Display.html?id=32362
Reported by: "Shlomi Fish via RT" <bug-Socket6@rt.cpan.org>
Submitted by: "KONDOU, Kazuhiro" <kazuhiro@alib.jp>
2008-01-27 Hajimu UMEMOTO <ume@mahoroba.org>
* Socket6.xs, Socket6.pm: Make getaddrinfo() return the string
error or the numeric value according to the context.
Make getnameinfo() return error value.
Export the EAI_* error constants.
Submitted by: Paul LeoNerd Evans <leonerd@leonerd.org.uk>
* Socket6.xs: FreeBSD 7 and later don't have KAME IPsec anymore.
* Socket6.xs: gai_strerror() returns `const char *'.
Version 0.4.10 [2008-04-21]
=================================================================
+new !fix ~change -remove | focus: Major bugfixes
+ newt library
The library, which is written in C and depends on the libslang, is now
part of the clive distribution. For more details, see the README file.
+ configure: --with-newt[=yes/no] (default:yes)
If disabled:
- python newt module will not be built
- The --rss feature will be disabled
+ Prerequisite: libslang >= 2.0
The newt library depends on this library.
+ Google Video: mp4 support
clive will now attempt to download mp4 format from the host by
default. --low-quality option can be used to override this. Falls
back to flv if the mp4 link is not found.
Example:
mp4: Video: h264, yuv420p, 320x240, 29.97 fps(r)
mp4: Audio: mpeg4aac, 48000 Hz, stereo
flv: Video: flv, yuv420p, 320x240, 29.75 fps(r)
flv: Audio: mp3, 22050 Hz, mono, 64 kb/s
+ Google Video: Partial support for continuing transfers
Continuing partially downloaded files is now possible for the mp4 transfers
introduced in this release.
As with Youtube/FLV, continuing GoogleVideo/FLV files still fails.
~ Program start options stdout
clive now prints out the bundled newt version (if any).
! Cache: --low-quality
Caching should now work properly with the --low-quality option. If the
cache entry was previously recorded using different video quality, the
video page is re-visited and the cache is updated.
A new column 'cache_lowq' was added to the 'cache' sqlite table.
Should the upgrade from a previous version fail, remove the existing
~/.clive/cache file.
! Bug #11523: Google video extraction fails
Affected versions: clive < 0.4.10
! Various typos
Mostly in the manual page.
- Prerequisite: python-newt module
The module is now part of the distribution.
Utility to download DNS zone contents using the DNSSEC NXT/NSEC
record chain (even when AXFR is disabled). It can also verify all
digital signature resource records within a zone against the zone key.
While here, marked as DESTDIR ready.
Changes since 0.6.0
- Abort configure script if ncurses is not found
- Rewrite the linux proc devreader
- Implement hpux device detection
- Implement reading and writing of config files
(fixes debian bug #247030)
- Add F5 and F6 key shortcuts for reading and writing current settings
- Change defaults for traffic units to human readable
- Make shown devices configurable at run time and
save this setting as well
- Remove "-t 0"
- Change key shortcuts, especially F2 for the option window
- Replace "average smoothness" by average window period in seconds
- Apply patch by Paul Brook <paul@nowt.org> so that
nload works correctly on 64-bit kernels
- Fix SIGSEGV when /proc/net/dev doesn't exist
- Make compilation work with GCC 4.3 (fixes debian bug #417449)
Add basic index parsing support for HTTP based on the ftpio.c code in
pkg_install. Permission to use the 3-clause BSD license from Thomas
Klausner in private mail.
2.0.8
-----
* New API:
gnet_conn_set_main_context
gnet_conn_http_set_main_context
gnet_inetaddr_new_async_full
gnet_inetaddr_new_list_async_full
gnet_inetaddr_get_name_async_full
gnet_tcp_socket_connect_async_full
gnet_tcp_socket_new_async_full
gnet_tcp_socket_new_async_direct_full
gnet_unix_socket_new_abstract
gnet_unix_socket_server_new_abstract
gnet_uri_parse_inplace
* GConnHttp API is no longer marked as experimental
* Fix major memory leak in GConnHttp
* gnet_init() can now safely be called
more than once now
* Fix crash when gnet_conn_http_delete()
is called from within the user callback.
* GConnHttp: do not emit data events for
pages that are being redirected to a
new location.
* GConnHttp: add gnet_conn_http_set_escaped_uri()
(Samuel Cormier-Iijima)
* Eliminate direct pthread usage on unix
and use GLib GThreads instead (also
fixes problems with gdb and valgrind)
(Andreas Rottmann)
* Dropped support for GLib-1.2
* Fix build on old systems that have
a __ss_family member in struct
sockaddr_storage instead of
ss_family (Jeremy Denise)
* GConnHttp: Documentation fixes
* Fix compilation with --enable-debug
on some 64-bit architectures like
amd64 (Daniel Gryniewicz)
* GConnHttp: fix several timeout issues
(Steve Morris, Tim Muller).
* GConnHttp: fix parsing of POST method
response when there are optional headers
after the 100-Continue response (#459895).
* Relicense source code in examples/
directory from GPL to LGPL.
* Add 'extern "C"' guards to pack.h to
make things work with c++ compilers
(thanks to Adriano Winter Bess).
* New API: gnet_conn_write_direct() to
write buffers asynchroneously without
copying them (Jeff Garzik)
* Fix for race condition and subsequent
crash in asynchroneous DNS lookup
(Steve Morris, Tim Müller)
* Pass correct size parameters to bind()
and connect() when creating unix sockets
(Zeeshan Ali, #403197)
* New API: gnet_unix_socket_new_abstract()
and gnet_unix_socket_server_new_abstract()
add support for abstract unix sockets on
systems where this is supported
(Zeeshan Ali, #404583)
* Remove unused and pointless fork() fallback
for asynchronous DNS lookups in cases where
GLib has been compiled without threading
support. It's 2007 - I think it's in order
to require threading to be present; even my
wrist watch can do that. Removs lots of
unmaintained code and ugly #ifdefs.
(Released Feb 3, 2008)
and feature enhancements--way too many for this commit message.
While here, deprecate aria2-metalink option. Aria2 now supports
building with libexpat, so we do that by default now.
Some of the more significant changes:
-------------------------------------
* Fixed compile error without gnutls/libgcrypt/libgpg-error and openSSL
installed. Fixed compilation on: x84-64 platform, Mac OSX, g++-4.3,
and without c-ares/ares.
* Added Simplified Chinese translation. Also updated the following
translations: Polish, Dutch, German, Thai, Indonesian,
Norwegian Nynorsk, Hungarian, Finnish, Hebrew.
* Changed inactive connection timeout to 120.
To accept more mulually interested peers, disconnect peer when there
is no interest between us after certain time passed.
Lengthened DNS timeout to 30. I think old value '10' will be a
little bit short when some DNS servers are offline and several
DNS servers are tried. It should be configured by
command-line option.
* Fixed the bug that prevents aria2 from stopping other than by pressing
Ctrl-C in BitTorrent download. It is reproducible using --seed-time
option. aria2 doesn't stop even after --seed-time is satisfied and
continues to output blank lines in the console.
* Added Message Stream Encryption(MSE) support.
Currently, aria2 accepts incoming connections with Obfuscation Header
and legacy BitTorrent Header and establishes connections with
Obfuscation Header first and if failed then retry with legacy
BitTorrent header. If plain text and ARC4 is provided, aria2 always
choose ARC4. The new option to change the default behavior is planned.
For tracker extension, "supportcrypto=1" is added statically.
* Added the ability to load nodes from torrent file. These nodes are
added to the routing table when downloading that torrent.
* Added the ability to stop aria2 itself when given time has passed
from start. Use --stop option to specify time in minutes.
When 0 is given, this feature is disabled.
before calling RequestGroupMan::fillRequestGroupFromReserver().
Without this modification, the result list shows "ERR" when aria2 is
stopped by --stop option. It should be "INPR".
Bootstrap through node added by port message.
Currently bootstrap is executed if the number of buckets in routing
table is 1.
* Added DHT functionality, compatible with mainline.
DHT is disabled by default. To enable it, give --enable-dht to aria2c.
You may need to specify entry point to DHT network using
--dht-entry-point. DHT uses UDP port to listen incoming message.
Use --dht-listen-port to specify port number. Make sure that your
firewall configuration can pass through UDP traffic to the port.
The routing table is saved in $HOME/.aria2/dht.dat. Request peers though
DHT only when download hasn't finished.
2008/03/02: version 2.9.4 = tag release-2-9-4
6440: GTK2 GUI: Compile with lablgtk-2.10.1 by default
- lablgtk-2.10.0 does not compile with Ocaml 3.10.2
2008/02/29
6439: Configure: Make Ocaml 3.10.2 the default compiler
2008/02/06
6407: New options run_as_group/run_as_groupgid
- works the same way as options run_as_user/run_as_useruid
- display system user:group running MLDonkey core in runinfo
6406: Mail: Fix bug in rfc2047 encoding
2008/02/05
6404: New option release_new_downloads
- set to true to activate release slot feature for all newly started downloads
2008/02/04
6080: HTTP interface: new command/button "logout" (Schlumpf)
6077: bw_toggle: support new option "max_opened_connections_2" (Schlumpf)
6401: Swarmer: Correctly update file_downloaded during recover_temp (pango)
6400: EDK: Correctly update filename after recover_temp
6396: Log: Print user:group when starting a download
6395: Makefile: Do not strip shared linked binaries on Mac OS X, clean Makefile
2008/01/24
6381: Multiuser: Block commands "shares" and "share" for non-admin users
Version 0.4.9 [2008-04-09]
=================================================================
+new !fix ~change -remove | focus: major feature improvements
+ RSS/Atom parser (req. python newt module >= 0.51)
Designed to be used with video host feeds. Parses and displays
found videos available for extraction. If the required newt module
is not found, the feature is disabled.
Note that the python feedparser module is now part of the clive
distribution, for more details, see the README file.
Option:
--rss (config: url_feed)
When the --rss option is used, the URLs are treated as RSS/Atom feed URLs,
for example:
% clive --rss http://youtube.com/rss/global/recently_featured.rss
Downstreamers: Python newt module is a new prerequisite. Note that the
program still runs without it, only the --rss feature is disabled.
FreeBSD: the newt library needs to be built with WITH_PYTHON,
for example:
% cd /usr/ports/devel/newt
% make WITH_PYTHON=yes install clean
Ubuntu: https://bugs.launchpad.net/ubuntu/+source/newt/+bug/110880
+ Dailymotion: Log-in support (sr #1834)
Options:
--dmotion-user=USERNAME (config: dmotion_id)
--dmotion-pass=PASSWORD (config: dmotion_password)
+ Metacafe: Family filter off (sr #1956)
The family filter is disabled for all extractions.
+ Youtube: Log-in support (sr #1953)
Resurrected the log-in support that was previously available in 0.2.x
but removed in 0.3.0 due to the complete program overhaul.
Options:
--youtube-user=USERNAME (config: youtube_id)
--youtube-pass=PASSWORD (config: youtube_password)
! ~/.clive/config; improved parsing
The parser is now more resistant to invalid values. clive will now also
exit if an error occurs while parsing.
! ~/.clive/config; output_if_file_exists
Accepts "RENAME" as it should have.
! Console; q_r_paste command
Crash at: "UnboundLocalError: local variable 'cmd' referenced before assignment"
~ --write-conf; increased verbosity
clive is now more verbose about found 3rd party programs.
~ --write-conf; sort commands
The written commands are now sorted alphabetically.
Version 0.4.8 [2008-03-31]
=================================================================
+new !fix ~change -remove | focus: minor bugfixes
+ Youtube: HTTP/415 No media fallback
Extract low quality (flv) video if better quality (mp4) is not available.
! Youtube: Partial support for continuing transfers
It is now be possible to continue partial downloads as long as they are
high-quality (mp4) videos.
Note that this fails utterly for the flv videos. It appears urlgrabber
appends a complete file at the end of the existing file when the host
refuses to continue transfer. Instead of bloating the code with the
conditions, continuing the youtube flv file transfers remains disabled.
! Dailymotion: improved media support
clive no more assumes 512x384 is the highest available quality. The
video page is now parsed for best available quality which clive extracts
unless the --low-quality option is being used. It should be noted that
most videos appear to have only the low-quality (flv) video available.
No media warning will be displayed if high quality video is not found
and the low quality video is extracted instead.
! Transfer rate calculations
File length offset is now used properly with files that are being
overwritten. This fixes the only-progress-percentage odditity is
being displayed.
! Youtube: New error messages
"error: country restriction/censorship"
"error: private video"
! --check-update,-u
Crash at: "TypeError: __init__() takes exactly 2 arguments (1 given)"
~ Reduce progress stdout flickering (sr #1944)
Progress is now rendered in one second intervals. clive will now also
display average transfer rate and total time elapsed when the transfer
completes.
~ Clean up
clive(1), INSTALL etc.
Version 0.4.7 [2008-03-17]
=================================================================
+new !fix ~change -remove | focus: major feature enhancements
+ GNU Autotools support
See the INSTALL file for the updated installation details.
+ urlgrabber integration
The urlgrabber module is now part of the source code distribution.
For more info, please read the README file.
Downstream maintainers: urlgrabber module is no longer a prerequisite
+ Cache
If caching is enabled, clive will collect data about visited URLs
to a sqlite3 database file (~/.clive/cache). Note that cache is only
available for Python >= 2.5. Also, depending on the system, the sqlite3
may not be installed with Python by default, e.g. on FreeBSD you need
to install it separately (databases/py-sqlite3).
Added also --no-cache and enable_cache. Caching is enabled by default.
+ Youtube: new default format
clive now defaults to extract the better quality (mp4) videos from Youtube.
The default behaviour can be overridden with the --low-quality option.
+ "Paste" option displayed at program start
The state for "paste from xclip" is now displayed when the program starts.
! Same output filename in URL batch
clive did not previously check the URLs in current batch for same output
filename. For example:
http://video.google.com/videoplay?docid=-4505462782975458603http://video.google.ca/videoplay?docid=-4505462782975458603
Both URLs point to the same video, note the different TLD. If they were
fed to clive in same URL batch the program accepted them without any
scrutiny. This resulted clive to waste bandwidth downloading the same
file twice and overwriting the previously extracted video file.
clive now generates (--exist=rename) a new output filename for the last
URL.
! Dailymotion support
clive will now attempt to extract the higher resolution vide (mp4) _only_
if it is available. This was causing HTTP/404 errors for some dmotion URLs
with the previous release.
The new option --low-quality overrides this default behaviour.
! Status/progress stdout line breaking on some system configurations
This was caused by improper use of '\b' which would cause the lines
to break on some terminal emulation settings.
! Calculations for resumed transfers (patch #990)
The transfer rate calculations should no longer go berzerk for
resumed transfers.
"The problem is that when urlgrabber calls update(), the 'read'
parameter is the current size of the file. When you resume, you
need to discard the offset from the previous download or else
the calculations will be off." -- zythmer
~ clive(1)
The manual page was rewritten.
~ Accept-encoding is now always set to gzip
Removed the rather useless --no-gzip option from wasting space.
Note that compression is only used if the host supports it.
~ Configuration file format
The configuration file format has undergone several iterations of
changes over the last 12 months and this release introduces yet another
format. Wait for it. This one's final. For a comparison:
Then: {.., 'verbose':1, ..}
Now: enable_verbose="YES"
To get started, you can generate a "template" configuration file
with:
% clive --write-conf
The created file contains comments and all supported commands. clive
will also attempt to autodetect the 3rd party programs such as ffmpeg
and set the paths to these programs with recommended options.
~ File name changes in ~/.clive
config.py -> config
last.log -> recall
userdef.py -> custom.py
Note that since history is no longer used, the ~/.clive/history.log is
now obsolete and can be removed if it's still around.
~ Option --write-conf
Previously known as --conf-write. Writes the config file with default
program values. clive will now attempt to autodetect vlc, ffmpeg and
xclip.
~ Option --emit
Renamed to "--emit-csv". Standard output format was also changed.
From:
video: "extraction-url" "filename" "length"\n
To:
OK: "url","extraction-url","filename","length"\n
FAILED: "url","error-message"\n
Should be now more parsing-friendly.
~ Options changed
Much of the options were either renamed, merged, removed or otherwise
modified. Some new short options were added also.
~ Renamed --simulate
Renamed --simulate,-s to --no-extract,-n.
~ Tweaked warnings
Some of the warnings were rewritten.
~ Stdout overhaul
Much of the stdout messages were changed, e.g. "status:" and similar
were replaced with lines that make better use of the line space.
~ Options displayed at program start
Renamed "throttle" to "rate". Renamed "exists" to "exist".
~ sys.platform instead of platform.uname
Platform string is now constructed using the platform module.
- Logging features
More or less replaced by the new "cache" and "recall" features.
See also "File name changes" above.
- GUI features: --configure, --history
Rather than transforming clive into a CLI-GUI hybrid, I've decided
to remove the GUI elements. The code to these short-lived features
could still be reused for a GUI-only clive configruation tool later
if there's any demand for it.
Downstream maintainers: Tkinter is no longer used by clive.
- Mswindows support
Anyone familiar with the woe32 specific non-standard approach to
everything can probably relate to this, and even if python hides
much of the mswindows nonsense, I've decided not to bother myself
with it anymore. So instead of bloating the code base with a set
of conditions and exceptions for woe32, I've, hereby, removed
all of the ms-platform specific nonsense from the project.
Come to the unix side.
- distutils support (setup.py)
Starting from this release, clive uses GNU Autotools.
- stage6 support
Shut down service effective February 28, 2008
(http://www.stage6.com/blog/107/).