audio/taglib: define BUILDLINK_INCDIRS in buildlink3.mk

The new net/ktorrent package needs access to taglib headers.
Add new package net/libktorrent

KTorrent has sbeen split into the application ktorrent and the library
libktorrent.  Libktorrent contains all the torrent downloading code and
ktorrent contains all application code and plugins.  The goal is to make
libktorrent an independent library which can be used by other
applications.
net/Makefile: Add libkorrent
net/ktorrent: Update version from 3.3 to 4.2.1

Changes in 4.2.1:
- Fix IP filter widget list not getting registered at startup (281245)
- Fix Queue Manager widget getting the priorities wrong (296536)

Changes in 4.2:
- Add new group switcher combobox in toolbar (290888)
- Make kio-magnet optional
- Improve handing magnet uris in search plugin
- Fix bug causing kio-magnet to deselect all files
- Close current scan widget when a new one is started for a torrent (292001)
- Fix syndication plugin not handling relative urls properly
- Fix magnet uri's not being handled properly in load torrent feature of webinterface

Changes in 4.2rc1:
- Make it possible to check individual files of a torrent
- Data checks for multiple torrents can now get started at the same time (265611)
- Make links clickable in the status tab comments field (266089)
- Revamp UPnP plugin (266397)
- Fix bug making it possible to add conflicting items to the schedule (268879)
- Make it possible for schedule items to span multiple days (225939)
- Include disk usage of existing files when calculating bytes left after download in FileSelectDlg (267220)
- Disable scripts in GUI, if no interpreter could be found for the script (270226)
- Show shutdown plugin's config dialog when no rules are present and the enable button is pressed (271311)
- Make it possible to wait for several events before activating the shutdown action
- Fix wrong required diskspace calculation in some rare circumstances (271097)
- Revamp scanfolder plugin (263813, 271657)
- Revamp GUI of mediaplayer plugin
- Make properties extender a dialog (274356)
- Fix bug causing scripts not to be selectable in scripting plugin
- Show info hash in status tab
- Improve video streaming support
- Add Open With option to FileView context menu (279386)
- Fix bug causing views to not get properly restored when the application language changes (279588)
- Check if new trackers have a supported protocol
- Remove usage of several deprecated KDE3 networking classes
- Remove obsolete config options of datacheck during upload feature
- Improve error display of syndication plugin errors (280814)
- Remove multiple views support (281675)
- Relabel Change Tracker button into Switch Tracker to avoid user confusion (282951)
- Revamp IP filter widget (281245)
- Fix scanfolder moving to loaded directory causing a flurry of popups about the torrent already being loaded (283508)
- Only enable the infowidget plugin by default (278283)
- Add force start option (213504)
- Add torrent search bar for view (269279)
- Make it possible to hide uploads, downloads and not queued torrents in the queue manager (253779, 251861, 210064)
- Merge status and name column into one column and use icons to show the status (272160, 228564)
- Highlight in bold and scroll to newly added torrents (145028)
- Show torrent names in remove torrent and data confirmation dialog (284728)
- Enable select new location button when all non excluded files are missing instead of when all files are missing
- Hide chunkbar when download of stream is complete (259788)
- Suspend/resume queue when middle clicking on tray icon (210027)
- Use dbus to show ktorrent window from plasma applet (287309)
- Fix crash due to dangling pointer (281196)
- Always make already loaded message of a torrent a passive popup (288201)
- Make torrent properties dialog modal (288448)
- Allow i2p addresses as a custom ip in tracker announces
- Fix bug causing homepage of search plugin not the render properly

Changes in 4.1.3:
- Fix statusbar hiding and showing not working (281674)
- Fix missing items in tray menu (282304)
- Fix move on completion location not being set when open all torrents silently is enabled (279582)

Changes in 4.1.2:
- Fix crash when duplicate trackers are added (274413)
- Fix bug causing quit action not be shown in system tray when not using KDE
- Fix edit script not working in scripting plugin
- Make log output suspension work again
- Fix crash when shutdown_rules files becomes corrupted (277602)
- Fix file rename leading to file being placed in the toplevel directory (279926)

Changes in 4.1.1:
- Make sure that libktorrent translation catalog is inserted (269515)
- Fix wrong tooltip in QM preference page
- Make sure activities list is added again to the GUI after toolbars are edited (269727)
- Prevent port conflicts from happening (268989)
- Clear labels of BasicJobProgressWidget in constructor (270035)
- Make tabbar widget icons follow KDE size changes (270277)
- Fix crash in search plugin (271516)

Changes in 4.1:
- Check if source files are missing before moving them (265607)
- Fix scanextender showing when they are not supposed to (259483)
- Fix mediaplayer unable to stop in buffering mode when streaming (266100)
- KDE 4.4 compatibility fix in search plugin
- Make sure overwrite is possible for the torrent copy file feature
- Fix critical Qt warning when opening context menu in view

Changes in 4.1rc1:
- Make sure that apply button of config dialog is enabled properly when the group changes in the scanfolder settings
- Add kio-magnet
- Improve performance of ktorrent in situations where there are many torrents (262571)
- Fix memory leak on exit (263802)
- Fix tab bar not matching TabBarWidget state in some circumstances (263068)
- Fix libktorrent not gettting updated when the download of a magnet link finishes and the FileSelectDlg is shown
- Update view tab when switching to it, fixes data scan widget showing in the wrong place (259483)
- Update view captions every GUI update (264215)
- Use user modified path for file column in chunks view (264814)
- Fix QM bug causing torrents to get started when it is not needed (262570)

Changes in 4.1beta1:
- Remove libktupnp it is now part of libktorrent
- Add support for superseeding (171661)
- Change from and to fields to always ensure that from is smaller then to in the bandwidth scheduler plugin (225951)
- Show if a peer is using the µTP protocol or not
- Cleanup file dialog filters for torrents and make sure that files named torrent, are also seen by the filter (241259)
- Ensure that webinterface plugin works properly with bindv6only flag on (238688)
- Add option to not restore the previous session of the search plugin (233288)
- Save suspended state on exit and restore on restart (241675)
- Add support for cookies in syndication plugin (244967)
- Change GUI to use KParts
- Add feature to set the move on completion directory in the syndication plugin filters
- Improve display of errors in the syndication plugin when downloading a feed fails (246421)
- Make ChunkDownloadView and PeerView use a QSortFilterProxyModel (246835)
- Add download and move when completed location history buttons to FileSelectDlg (218048)
- Make file view of FileSelectDlg sortable (248090)
- Clicking item in day list of AddItemDlg of bwscheduler plugin now toggles it (225953)
- Add support for emule blocklists (194915)
- Add option to configure the number of log lines shown in the logviewer (223887)
- Add default move on completion location to group policy (248092)
- Prevent torrents from sharing the same files (228220)
- Add option to open all torrents silently
- Add exclusion patterns to syndication plugin filters (251141)
- Show current upload and download limit in trayicon submenus instead of limits from the settings (251953)
- Show notifications when automatic update of IP filter fails (243458)
- Add video streaming support (234212)
- Make ratio configurable at which the share ratio becomes green (254144)
- Don't show an error message for each duplicate tracker which is added
- Stop using hardcoded colors in system tray tooltip (255732)
- Add support for tracking jobs inside the GUI of ktorrent
- Ask if an existing file must be overwritten when exporting a torrent (256416)
- Don't reinclude files when changing priority of a directory (252555)
- Open new search tab on middle click (151429)
- Search plugin now uses webkit instead of KHTML
- Add do not ask again option to dialog shown when torrent file is downloaded in the search plugin (210701)
- Add option to rename single file torrents to the file inside (251799)
- Make sure that items in history of download locations and completed locations end with a slash (259499)
- Make search filter in MediaView of mediaplayer plugin case insensitive (259782)

Changes in 4.0.5:
- Fix crash due to uncaught exception when creating torrent (255020)
- Modify tracker grouping script to avoid a memory leak in krosspython
- Fix bug causing extenders to be shown when the torrent is hidden (248205)
- Fix restoring hidden state of bottom tab bar in the torrent activity
- Improve performance of View (258324)
- Fix bug causing user modified filename not be shown for single file torrents (258860)
- Ensure that lastSaveDir is saved to the config (259041)
- Make sure ktorrent compiles and works with new solid powermanagement api introduced in KDE 4.6beta2 (258331)
- Fix bug causing the wrong path to be opened when opening a nested directory in a multifile torrent

Changes in 4.0.4:
- Make sure that syndication filter save location overrides group save location (250116)
- Don't hardcode background of bandwidth schedule to white so that system colors are used (251925)
- Improve performance of ViewModel when there are many torrents (216501)
- Backport several improvements for IP filter auto update from trunk
- Fix bug causing two instances of ktorrent to be started when missing files dialog is shown at startup (252099)
- Fix bug causing KT to use invalid dbus paths in group paths
- Fix crash at exit due to a Core::update getting called during exit (254214)

Changes in 4.0.3:
- Fix bug causing wrong encoding to be used when the default save location of a group is read (244873)
- Fix crash in QueueManagerWidget when moving torrents in the queue
- When renaming files in a torrent prevent duplicate names (244624)
- Fix crash on exit when cleaning up UPnP requests
- Fix crash due to uncaught exception when a tor directory cannot be removed (247979)

Changes in 4.0.2:
- Fix wrong X-KDE-PluginInfo-Name in ktzeroconfplugin.desktop
- Fix crash caused by 0 pointer in webinterface plugin (242273)
- Increase auto update retry interval of ipfilter plugin to 15 minutes
- Fix bug causing groups file to grow very large over time (243182)

Changes in 4.0.1:
- Make sure that the proper encoding is used when loading syndication filters
- Display filename if TagLib doesn't know the title of a file in the mediaplayer plugin
- Fix memory leak in plasma dataengine (238948)
- Use routers XML file URL to distinguish between UPnP routers
- Make sure that there are no uncaught exceptions (223243)

Changes in 4.0:
- In Core::onExit shutdown TCP and UTP servers a bit later to prevent crashes

Changes in 4.0rc1:
- Split of libbtcore as libktorrent
- Make sure that QM handles max share ratio and max seed time a bit better
- Clear selection of ActivityListWidget before selecting the current item (233289)
- When a torrent row is double clicked open the data directory (230618)
- Switch to new style tray icon (210811,233422)
- Make sure that state is set to active when rendering progress bar in ViewDelegate (232727)
- Suspend KTorrent -> Suspend Torrents to avoid confusion (233421)
- Workaround memory leak in krosspython by not passing QObject pointers as arguments to callMethod (223885, 226924)
- Make move on completion a per torrent feature
- Make compiling plasma applet dependant on Qt version
- Make sure extenders can be resized
- Make sure float is not used in scripting api, doesn't seem to work with python scripts
- Add dbus functions to set and get the maximum and current share ratio and seed time

Changes in 4.0beta2:
- Use proper KDE function to format date in syndication plugin
- Make sure HTMLPart uses proper charset when rendering page
- Add copy URL item to popupmenu in search plugin view
- Pause becomes suspend
- Revamp torrent creation code
- Avoid unnecessary memcpy when generating hash
- Add UDP tracker scraping
- Improve handling of incomplete handshakes (218875)
- When switching back from fullscreen video make sure the tab shown is the video tab
- Replace KMultiTabBar by QToolBar, because it handles not enough space better (214524)
- Make tab moving possible in TorrentActivity and SearchActivity (215053)
- Show arrows in qm widget to indicate if a torrent is a seed or a download
- Fix crash caused by not checking for 0 pointer (220442)
- Add search line in QM widget which highlights and scrolls to found items (220428)
- Moving multiple items in QM widget is now possible (220428)
- Prevent trackers from sending back to much data (220684)
- Fix typo in in log message of QM (223888)
- Added patch witch adds an additional column to a View showing the date and time a torrent was added
- Fix compilation not working on solaris due to missing NAME_MAX define (222598)
- Fix check for existing files for single file torrents in FileSelectDlg (225900)
- Add pathOnDisk dbus call on a torrent to retrieve the output path
- Fix crash in GroupView (226134)
- Cleanup notifier before closing socket in webinterface plugin, fixes a crash (225956)
- Make sure that weekdays deselects weekend, and weekend deselects weekdays in scheduler plugin (225952)
- Don't show 0 KB/s when there is no limit in scheduler plugin (225943)
- Make warning icon when no trackers can be reached, work for non private torrents (227670)
- Reset bandwidth schedule when network comes up again (227423)
- Make sure TOS is set when setting up a connection
- Fix crash in AuthenticationMonitor, caused by dangling pointer (228395)
- Fix SHA1 hash generation crashes by using shared pointers to PieceData (227400)
- Fix crash in PeerConnector cleanup (228955)
- Make it possible to change the ChunkSelector at runtime
- Make torrents reannounce and kill all stale peers, when network comes back up after some downtime (184766)
- Before mapping a piece, use posix_fallocate to ensure that we can't get a SIGBUS when the disk is full (229081)
- Revamp stats file implementation so the QM can no longer block things when there are many torrents (228974)
- Use pause functionality instead of stopping and restarting a torrent when doing jobs (179456)
- Fix handling of keep-alive in webinterface plugin (225167)
- Don't open files to determine disk usage when files are not open
- Change listen backlog to SOMAXCONN
- Do preallocation properly (or not at all depending on settings) when file is recreated
- Add support for the µTP protocol (197749)
- Fix crash in HTTPConnection due to 0 pointer (231859)
- Add patch to disable authentication in webinterface (226291)
- Add plugin to generate magnet URI's
- Fix crash in webseed downloading code (232971)

Changes in 4.0beta1:
- Make adding multiple trackers at once possible (213194)
- Bandwidth scheduler can now be deactivated temporarely
- Show information message instead of error when trackerlists are merged (213772)
- Add patch from Leo Trubach which adds support for IP rangs to the IP filter dialog
- Add support for metadata extension
- Remove own flags, now using exclusively those from KDE
- Add support for reqq parameter in extended handshake
- Ignore diskspace check when it cannot be determined on a gvfs mounted filesystem (187141)
- DHT can no longer be disabled at compile time
- Add support for magnet URL's (214375)
- Fix crash due to uncaught warning
- Expand open url dialog, it is now possible to open silently and to select the group
- Fix crash when loading magnets file (218227)

Changes in 3.3.4:
- Fix SHA1 hash generation crashes once and for all (222753)
- Check for invalid addresses in reverse resolver, fixes a crash
- Fix sorting bug in choking algorithm
- Fix crash caused by handling exceptions badly (224097)
- Fix bug causing global max share ratio and seed time to override group policy (223745)

Changes in 3.3.3:
- Fix crash caused by 0 pointer in Downloader::saveDownloads (219019)
- Don't remove torrent when jobs are running, wait until they are done, this fixes a crash (218853)
- Disable editing of items in ActivityListModel (219355)
- Make sure checks for ftello and fseeko are done, fixes a problem with large file sizes on BSD (217523)
- Make sure reannounce timer in UDPTracker is always stopped in the stop call (219663)
- Fix broken FilterListModel::removeFilter fixes a crash (219760)
- Revamp adding trackers to TrackerListModel, should fix a crash (218738)
- Don't allow nested event loops when iterating over the incomplete url list in scanfolder plugin, fixes a crash (219885)
- Fix crash due to uncaught exception in TorrentFileTreeModel::loadExpandedState
- Fix bug causing error message that the QM limits are reached to be shown instead of a torrent to be enqueued (220171)
- Fix crash caused by not checking for 0 pointer (221333)
- Fix crashes when DHT socket could not be bound (221872)
- Fix bug causing files to be created which are to big in some rare circumstances (222036)
- Fix bug causing wrong location hint to be used when no default save location is selected (222783)

Changes in 3.3.2:
- Fix crash when loading Feed in syndication plugin at startup (216207)
- Replace newlines with spaces when displaying multiline comments in statustab (216683)

Changes in 3.3.1:
- Make sure exceptions in DHT code are caught, fixes a crash (213819)
- Fix several memory leaks at exit
- Fix bug in edge detection of items on the bandwidth schedule
- Fix crash when webinterface plugin is removed and there are active connections to the webserver (214187)
- Fix bugs causing context menus to be shown in wrong location (214657)
- Don't store the color for normal file priority in FileView, use system default (214748)
- Fix bug causing current tab in TorrentActivity not to be restored (214959)
- Fix IP filter download going wrong in some cases, by specifying mimetype in KFilterDev::deviceForFile
- Fix crash when not able to bind for DHT socket (215079)
- Make it optional to intercept Qt debug messages in InitLog call
- Fix crash when trying to unzip broken zip file in ipfilter download (215353)
- Add some limits so DHT tasks don't run for to long and eat up to much memory
Changes 2.32.1:

Gio:
* Application:
  - Pass 0 (NULL) rather than "" to GApplication.

Glib:
* Miscutils: get_system_data_dirs(), get_system_config_dirs():
  Return early when the C function returns NULL.
* Thread::RecMutex: Don't initialize this as a GStaticMutex.
  (Deprecated anyway)
* Documentation:
  - Don't hide add_exception_handler() documentation.
  - Really hide the GCheckSum type from the documentation.
Note addition of libktorrent, update of ktorrent