megatools 1.11.1 - 2023-02-12 ============================= This is just a bugfix release. Fixes: - fix folder downloads - fix handling of = in mega URLs megatools 1.11.0 - 2022-05-19 ============================= This release introduces new features. Improvements: - Megatools now install a single `megatools` executable, where former `megaXYZ ...` commands now have to be executed as `megatools XYZ ...`. - Implemented PKP (public key pinning for mega.nz's API server). Megatools no longer use public certificate authorities to verify API server's authenticity. If you use software that MITM's your web traffic, megatools will not allow this anymore. - Windows builds no longer need any special console setup to support UTF-8. It just works out of the box. - Support new public folder URLs in `dl` - Build system moved to meson - New `test` command for checking if file exists - New `export` command for creating public links for private files - Login v2 support - Upload reliability improvements Commit list: 9294db2 Improve support for UTF-8 on windows 82833a2 Use g_memdup2 4adc57f Try disabling TLS session ID cache (may fix #462) 3f59e27 add support for newstyle folders 8b759a3 Cleanup the dl range code e299c43 Add range selection to the downloader 539ff6f Return status = 2 if uploaded file already exists c0bd7ef Add file exists error type 8d91a61 Fix NULL pointer dereference when invoking megatools in some situations 57cddce Bump cache format version 1737c55 Cleanup login v2 support and fix session caching bf886a4 Add contributed support for v2 login flow e4e8495 dl: Support new link format for individual files inside folders fe6d818 dl: Add support for new link formats 8296db8 Update README with new build information/git repository link 471a3cf Make doc generator programs optional 9e47ad4 Move to meson buildystem eae38e9 Drop github issue template a9af5d8 Update PGP fingerprint 1f52c9c We need to follow symlinks on local paths in megatools dl 8bbc21c Mark some functions as static 32bd83a Change e-mail/website addresses 2d9fe44 URL-decode links passed to the dl command #310 cc91968 Add --ip-proto and --netif options f19cf39 Add export tool d3e1d58 Add megatools test tool f0bfefd Drop useless ; 7735dd2 Fix grammar: data are -> data is 99dfea8 Avoid new compiler warnings 2c7e2a3 No need to iterate from the beginning when checking for invalid filename 4e5ba97 Replace invalid filename characters with _ instead of a space 1aeb275 Merge branch 'master' of github.com:megous/megatools 956c11a Don't use alloca, avoid unbounded path construction c94277f Merge pull request #428 from 64617/fix-filename c91409c Don't immediately fail on invalid filename 2cc7019 Fixes: 'megatools get', Output to STDOUT not working #423 1012d6e Updated todo 0faba1c Fix megatools rm not removing the child nodes from the fs_nodes 65f8afd Don't free nodes too early #417 a1c945c dl: Download exported files even if root is not a folder #417 2ca921f Merge branch 'master' into x f651ba0 Revert "Support ....?.... URL scheme for single file downloads" d52d0ce Refactor update_pathmap_prune to make it clearer, fix memleaks 7f2dcae Merge pull request #417 from mdirik/file-url c78d0d6 Support ....?.... URL scheme for single file downloads 8758b65 Sort order of downloads #401 8309767 Merge pull request #414 from taiyu-len/master 978e4be Show file sizes in pick_nodes 28a2fbe Drop libmega mentions #412 1ea525e Fix download speed limit not being applied by curl if handle is re-used #380 2b68a46 Fix implicitly declared function warnings in shell.c #406 3c24b71 Add link for the experimental windows builds f218192 Optimize exported folder filesystem parsing #405 0e21e38 Fix megac doc b04961d Fix parameter type to curl_easy_setopt ac07641 Fix for "Hardcoded colors affects readability" #404 2255c5d Allow more retries during download (when over quota) #403 0346e76 Add git warning/build instructions to autogen.sh 548042e Add gc_tool_fini attribute 653ba6c Fix alignment of exported links 26a7a0d Add docbook-xml dependency #391 3459d1f Update issue template 1a7e3f4 Update README file for 1.11.0 70c624e Don't download data when file already exists when using megadl #386 5acf268 Add -std=c99 compiler flag a6df742 Always retry the upload, on any server returned error 80e9767 Drop special handling of EAGAIN 7827235 Report possibly transient failures from curl as HTTP_ERROR_COMM_FAILURE 9c150b3 Bump version to 1.11.0-git 3637555 Drop AC_PROG_RANLIB (libtool is enough) f6dcdf5 Don't be too silent 095d284 Fix contact information d2c5c38 Improve build instructions #384 b304d5c Use libtool to fix static linking d7b9037 Drop option groups a4f638e Fix a couple of typos b95ac5d Updated NEWS/TODO 63771cd Drop dead autoconf code 4437c0c Update megatools docs for the new command naming scheme 852852b Add option to install compat links 6cbd650 Build a single binary instead of a binary for each command 6736622 Drop accent 7ac9569 Bump the year ff0f5f1 We don't use gnutls/glib-networking anymore, drop unnecessary code 07ba1f9 Implement public key pinning for the API server megatools 1.10.2 - 2018-07-31 ============================= This is a bugfix release. This release was sponsored by donations to fix large file downloads and improve download robustness after recent mega.nz API change. Thank you! Fixes: - Actually fix connection dropping when downloading big files Improvements: - Add DNS resolution cache sharing accross all cURL handles - Increase receive buffer size to 256kB megatools 1.10.1 - 2018-07-27 ============================= This is a bugfix release + one feature addition by del1a. New features: - Allow to interactively choose which files to download from a public folder via megadl --choose-files Fixes: - Connection dropping when downloading big files - Compatibility with older libcurl releases - Fix occasional crashes when starting transfer worker threads - Fix clang compatibility megatools 1.10.0 - 2018-07-22 ============================= This release contains new features and optimizaions. New features/optimizations: - Chunked upload using up to 16 concurrent connections. Remember, more is not always better. - Improved upload stability. When mega drops or hangs the data connection, megatools will simply restart the upload of the chunk of data that got lost. - 5x AES enryption/decryption speed increase for uploads and downloads. Now it's possible to max out a gigabit connection on a cheap Intel based VPS. - Improved progress reporting wih a summary of the average speed at the end. - You can use --debug http to see all HTTP requests and connections, for debugging connection isues. - Error 509 is reported with explanation. - Implemented automatic resume for interrupted downloads. Megatools now writes data to a temporary file and renames it to the target name, when the download is fully completed. This way you'll notice that download was interrupted by CTRL+C and megatools will not leave half finished work behind. - Add contributed bash auto-completion file by albaldi #368 - Add support for authenticated downloads of exported files using megadl #298 (So that your account download quota is used instead of public quota.) - Add Upload section and CreatePreviews setting into rc file. Add --enable-previews option. - Add support for megals --print0|-0 Fixes: - Upload hangs at 100% #366 #360 #365 - Don't send tetrminal escape sequences, when redirecting stdout. - Fix comments syntax in megarc man page #359 - Use glib's variants of PRIu64, fixes #328 - megadl doesn't use account session when downloading folder links #304 - Skip symlinked folders when uploading in megacopy #262 - Turn on TCP keepalive probes in CURL #271 - Fix socks proxy support in megareg (it was not enabled correctly) #287 - Fix OpenSSL 1.1 compatibility #263 - Fix compiling against libressl - Fix b64_aes128_cbc_encrypt_str string length handling #242 - Minor docummentation updates/fixes Credits: - Thanks to ERap320, megatools is also available on Chocolatey (see gihub issue #347) (If you want to verify origin of the binaries, because they are not distributed in the officialy signed zip file) - Thanks to christarazi, megatools supports downloading specific sub-nodes of a public folder. (#254) Thanks also go to all other contributors for improving documentation, reporting bugs and testing. megatools 1.9.98 - 2016-11-03 ============================= Bugfix release with some UI imporvements. New features: - Support upload/download speed limit settings - Support socks proxy - Improved progress reporting - Support for OpenSSL 1.1.x Removals: - Remove undocummented --abort-on-error option. Tools now always report errors through exit status. - Remove libmega.so public library support and a lot of unused code that was planned to be used for 2.0 - Remove megamv (it was never implemented and confused users) - Remove megafs (it was just an experiment and confused users) Cleanups: - Cleanup build system a bit - Cleanup CLI option handling, improved --help output Fixes: - Enable automatic decompression (CURLOPT_ACCEPT_ENCODING) (by protomouse) (This finally fixes the problem with HTTP compression.) - Exit status from all the tools is now correctly reported - Fix syncing of symlinked files - Support very long passwords in the password prompt (up to 1024 chars) megatools 1.9.97 - 2016-02-02 ============================= Bugfix release. Fixes: - Mega started compressing HTTP responses to API calls. Megatools now uses libcurl to handle API requests, so HTTP compression is now supproted. megatools 1.9.96 - 2016-01-02 ============================= Bugfix release. Fixes: - Refer to mega.nz and use mega.nz links instead of deprecated mega.co.nz - Fix various build issues megatools 1.9.95 - 2015-04-15 ============================= Bugfix and optimization release. Fixes: - Improve compatibility wit older curl (whatever version is in centos 6.5) - Fix regression in megadl: fails to download exported folders #90 - Remove megamv as it is not and will not be implemented in 1.9 branch - Slow down progress reporting on windows to once per second #102 - Correct the default values in mega_session_load() Improvements: - Rename megasync to megacopy to avoid conflict with official mega sync client - Optimize session loading - issue #100 - Optimize session loading - further optimization - issue #100 - There's no need to use dbus-launcher when running megatools outside running desktop to avoid a warning message. megatools 1.9.94 - 2015-01-02 ============================= Bugfix and optimization release. Fixes: - Force use of IPv4 addresses - Fix path sanitization so that trailing slashes are ignored - Document config file oddities in megarc manpage - Add info on how to build/install megatools on various distros Improvements: - Optimize path handling code so that filesystems with many files are usable. Previously, megatools would hang for quite some time when updating it's path map. - Use non-recursive makefile to build megatools megatools 1.9.93 - 2014-10-24 ============================= Added OpenSSL exemption to the license. Fixes: - megadf now returns correct values - fixed path sanitization in mega_session_stat - raised safety limit os size of POST responses from 32 to 256 MiB - show progress when downloading folder using megadl - optimized buffer allocation during donwload and upload - report details of errors when stream callback fails to read/write file - fix detection of convert executeable for preview generation - allow to disable file previews megatools 1.9.92 - 2014-08-24 ============================= Created stable branch for bugfixes. This is the release from the stable branch. This release contains mostly small bug fixes. Most important change is that Megatools now recognizes server busy errors as reported by mega.nz via HTTP status 500 Server Is Busy, and retries the communication. This reduces command failures by a lot, and you'll not see 500 Server Is Busy errors anymore. Another major news is update to the windows package. There are now two packages for 32bit and 64bit windows platform, and all dlls were updated to their latest versions. Other news: - Added 64bit windows package - Unmask Megatools to Mega.nz (user Megatools/VERSION User-Agent) - Check for a2x if --enable-docs-build=yes - Megadl now reports file download errors - Add megadl --print-names option - Fix megasync error (issue #45 on github) - Fix megadl used with pipe (--path -) on windows (issue #38) - Installation instructions for Mac - Add info about Gentoo ebuild to the README file (issue #26) - Fix Megatools thumbnails for PDF (issue #5) - Do repeated API calls after 500 Server Is Busy and increase retry delay - Fix issue to download a file with accent with megaget (issue #22) megatools 1.9.91 - 2013-04-14 ============================= Please note, that megatools is using GNOME release versioning. That means that in MAJOR.MINOR.PATCH, odd MINOR number signifies development version of the tools. PATCH version is increased on each public release. By using odd MINOR versions of the software you are using an unstable branch. That doesn't mean it will be crashing on you, but it may have certain quirks, and oddities, missing or incomplete features, etc. Next stable release is going to be 2.0.0. To the news: - Added man pages for all tools - Removed megastream in favor of mega{dl,get} --path - - Megadf - fix unsigned overflow when server reports 0 total space - Implemented --debug option - Win32: Drop requirement for manual setup of GIO_EXTRA_MODULES - Load certificates from the binaries folder on windows - Enable CA validation for TLS connections - Fix compilation on FreeBSD by adding --enable-warnings - Add note that on FreeBSD GNU make must be used to build the tools - Fix typedef redefinitions (error on older gcc's) - Fix megals --names logic - megaput/megaget/megadl/megasync: --no-progress support - Fix mega_session_dl streaming mode segfault - megamkdir/megarm: Check for required arguments - Pretty print JSON in debug output AUR package is available at https://aur.archlinux.org/packages/megatools/ Ubunut PPA is availble at https://launchpad.net/~megous/+archive/ppa If someone wants to take over packaging for Ubuntu or Debian, that would be very appretiated, as my speciality is Arch Linux. megatools 1.9.90 - 2013-04-11 ============================= Implemented much simpler and faster json parser than json-glib, which was used before. Megatools now use sjson, which you can find at: https://github.com/megous/sjson Json-glib dependency was thus dropped. Initial work on getting rid of dependency on libcurl. Initial work on the new libmega library with support for gobject-introspection based bindings to various languages: JavaScript, Python, Ruby, LUA,... Experimental implementation of Mega API in JavaScript (gjs), this should help people develop GNOME GUI for Mega in the future. New command line tools: megafs - mount mega.nz filesystem usong FUSE (Linux only) megamv - move and rename remote files and directories megatools 1.2.2 - 2013-04-11 ============================ Bugs fixed: - Trash and Inbox paths are no longer mixed up (bug reported by Ovidiu) - megadl segfault - megaput --path /Root/nonexistent-file local-file (remote file would get the name of the local file, instead of nonexistent-file) - megals /Root/file-name would return nothing - Segfault with password length over 15 chars - Fix file size parsing to make it work with files over 2GB in size megatools 1.2.1 - 2013-03-12 ============================ Added support for OpenSUSE 12.1 and newer versions. Build libmega statically for binary distribution to ease installation outside of /usr/local. megatools 1.2.0 - 2013-03-12 ============================ Megatools now support download of shared files and folders. Megatools support creating thumbnails for image and video files uploaded to Mega. This is enabled only on Linux, as it requires ffmpegthumbnailer and convert (from ImageMagick package). You can now manage your contacts list via: - mkdir /Contacts/some@email.com - rm /Contacts/some.other@email.com Exported folders can be downloaded using megadl. All tools gained a few more options to help with scripting needs. If you don't provide password on command-line or in config file you'll be asked for it when the tool runs. Megals tool gained many new options. OpenSSL locks are now properly initialized. megatools 1.1.1 - 2013-03-10 ============================ Binary packages for linux support more Linux distributions. Supported distros include (both 32bit and 64bit editions): - Ubuntu LTS 12.04.2 and later - Fedora 17 and later - Current Arch Linux - Suse (with a package for ubuntu) - ...and probably any recent distribution with all dependencies installed Package structure was changed to allow easy installation to /usr/local. To install, run: sudo tar -x -f megatools-1.1.1-i686.tar.gz -C / --no-overwrite-dir Tools now use shared library, which you can use to develop your own Mega tools. For example: export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gcc -o sample sample.c -Wl,-rpath,/usr/local/lib `pkg-config --cflags --libs libmega` Sample source code sample.c can be found in /usr/local/share/doc/megatools/ To develop mega apps, you'll need to install development packages on distros like Fedora or Ubuntu. For example on Fedora: yum install openssl-devel json-glib-devel libcurl-devel glib2-devel Or on Ubuntu: apt-get install libssl-dev libjson-glib-dev libcurl4-openssl-dev gcc make pkg-config megatools 1.1.0 - 2013-03-09 ============================ Megareg tool is now implemented, and can be used to register new accounts without the need for Mega website. Unless you login to Mega, Mega will never be able to get your password key. Tools don't show version banner anymore, unless asked for via --version option. Megadl learned to handle SIGPIPE if server drops connection, and megadl tries to write into a closed socket. megatools 1.0.0 - 2013-03-08 ============================ This is initial public release of megatools. Current features are: - Local caching of remote session/filesystem information for faster execution. Cache is encrypted with your password key. - Support for configuration file to put login information in. This is not wildly secure, but it's convenient. - Initial set of tools to manipulate remote filesystem: megadf Show your cloud storage space usage/quota megals List all remote files megamkdir Create remote directory megarm Remove remote file or directory megaput Upload individual files megaget Download individual files megadl Download file from a "public" Mega link (doesn't require login) megastream Streaming download of a file (can be used to preview videos or music) megasync Upload or download a directory tree See TODO for features that are comming in the future releases.