pax_global_header00006660000000000000000000000064140703621550014515gustar00rootroot0000000000000052 comment=49d35affb12548a96da80cb9b9b2b89782fa649f lomiri-thumbnailer-3.0.0/000077500000000000000000000000001407036215500153205ustar00rootroot00000000000000lomiri-thumbnailer-3.0.0/.gitignore000066400000000000000000000000431407036215500173050ustar00rootroot00000000000000build .project .cproject .settings lomiri-thumbnailer-3.0.0/AUTHORS000066400000000000000000000005341407036215500163720ustar00rootroot00000000000000Adam Conrad Albert Astals Cid Alfonso Sanchez-Beato Arthur Mello Dan Chapman Florian Boucault Ivan Semkin James Henstridge Jussi Pakkanen Marius Gripsgard Michael Sheldon Michal Hruby Michi Henning Pawel Stolowski Pete Woods Ratchanan Srirattanamet Ricardo Salveti De Araujo Rodney Ugo Riboni Ɓukasz 'sil2100' Zemczak Xavi Garcia Xavi Garcia Mena lomiri-thumbnailer-3.0.0/CMakeLists.txt000066400000000000000000000177111407036215500200670ustar00rootroot00000000000000# Default install location. Must be set here, before setting the project. if (NOT DEFINED CMAKE_INSTALL_PREFIX) set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH "" FORCE) set(LOCAL_INSTALL "ON") endif() cmake_minimum_required(VERSION 3.0.2) project(lomiri-thumbnailer VERSION "3.0.0" LANGUAGES C CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) # Suppress complaints by cmake about COMPILE_DEFINITIONS_ caused by qt5 cmake macros. cmake_policy(SET CMP0043 OLD) string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_lower) # Build types should always be lower case set(ACCEPTED_BUILD_TYPES "" none release debug relwithdebinfo coverage) list(FIND ACCEPTED_BUILD_TYPES "${cmake_build_type_lower}" IS_BUILD_TYPE_ACCEPTED) if (${IS_BUILD_TYPE_ACCEPTED} EQUAL -1) message(FATAL_ERROR "Invalid CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}\nValid types are: ${ACCEPTED_BUILD_TYPES}") endif() set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -Wall -pedantic -Wextra -fvisibility=hidden") # Some additional warnings not included by the general flags set above. set(EXTRA_C_WARNINGS "-Wcast-align -Wcast-qual -Wformat -Wredundant-decls -Wswitch-default") set(EXTRA_CXX_WARNINGS "-Wnon-virtual-dtor -Wctor-dtor-privacy -Wold-style-cast") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_C_WARNINGS} ${EXTRA_CXX_WARNINGS}") # By default, for release builds, warnings become hard errors. if ("${cmake_build_type_lower}" STREQUAL "release" OR "${cmake_build_type_lower}" STREQUAL "relwithdebinfo") option(Werror "Treat warnings as errors" ON) else() option(Werror "Treat warnings as errors" OFF) endif() # If warnings are errors, don't error on deprecated declarations. if (${Werror}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") if ("${cmake_build_type_lower}" STREQUAL "release" OR "${cmake_build_type_lower}" STREQUAL "relwithdebinfo") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=deprecated-declarations") endif() endif() add_definitions(-DQT_NO_KEYWORDS) include(GNUInstallDirs) # liblomiri-thumbnailer-qt version set(LIBTHUMBNAILER_QT lomiri-thumbnailer-qt) set(LIBTHUMBNAILER_QT_SO_VERSION_MAJOR "1") set(LIBTHUMBNAILER_QT_SO_VERSION_MINOR "0") set(LIBTHUMBNAILER_QT_SO_VERSION_MICRO "0") set(LIBTHUMBNAILER_QT_SO_VERSION ${LIBTHUMBNAILER_QT_SO_VERSION_MAJOR}.${LIBTHUMBNAILER_QT_SO_VERSION_MINOR}) set(LIBTHUMBNAILER_QT_HDR_INSTALL_DIR ${CMAKE_INSTALL_FULL_INCLUDEDIR}/${LIBTHUMBNAILER_QT}-${LIBTHUMBNAILER_QT_SO_VERSION}) # Encoding version of cache files set(THUMBNAILER_CACHE_VERSION "2") # Flags for thread/address sanitizer set(SANITIZER "" CACHE STRING "Build with -fsanitize= (legal values: thread, address)") if ("${SANITIZER}" STREQUAL "") # Do nothing elseif (${SANITIZER} STREQUAL "thread") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread -fno-omit-frame-pointer -g") elseif (${SANITIZER} STREQUAL "address") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer -g") else() message(FATAL_ERROR "Invalid SANITIZER setting: ${SANITIZER}") endif() # Some tests are slow, so make it possible not to run them # during day-to-day development. option(slowtests "Run slow tests" ON) if (${slowtests}) add_definitions(-DSLOW_TESTS=1) else() add_definitions(-DSLOW_TESTS=0) endif() # TODO: Hack to allow disabling tests that need QDBus on xenial and yakkety, # due to broken Qt 5.6. Re-enable tests ASAP! option(skip-dbus-tests "Skip DBus tests" ON) if (${skip-dbus-tests}) execute_process(COMMAND lsb_release -s -c OUTPUT_VARIABLE distro OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND uname -m OUTPUT_VARIABLE arch OUTPUT_STRIP_TRAILING_WHITESPACE) if ( (${distro} STREQUAL "xenial" OR ${distro} STREQUAL "yakkety" OR ${distro} STREQUAL "zesty") AND (${arch} STREQUAL "aarch64" OR ${arch} STREQUAL "ppc" OR ${arch} STREQUAL "ppc64le") ) message(WARNING "WARNING: Disabling DBus-related tests for ${distro} See https://bugs.launchpad.net/ubuntu/+source/thumbnailer/+bug/1613561 https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-src/+bug/1625930") add_definitions(-DSKIP_DBUS_TESTS=1) add_definitions(-DDISTRO=\"${distro}\") add_definitions(-DARCH=\"${arch}\") endif() endif() option(ENABLE_UBUNTU_COMPAT "Enable Ubuntu.Thumbnailer QML compatibility type" OFF) # Workaround static-TLS space exhaustion that happens due to some version of GlibC trying # to optimize TLS access for dynamically-loaded (dlopen()'ed) libraries on some arch, # but end up not having enough static-TLS area for the library that need it. # For us, it happens with libgomp.so.1 loaded via libgstlibav.so plugin, inside vs-thumb. # The workaround is to LD_PRELOAD libgomp.so.1, so that it has static TLS slots it needs. # # https://bugzilla.redhat.com/show_bug.cgi?id=1722181 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=964141 # https://sourceware.org/bugzilla/show_bug.cgi?id=25051 option(WORKAROUND_LIBGOMP_STATIC_TLS "Workaround libgomp.so.1 static TLS problem" OFF) if (${WORKAROUND_LIBGOMP_STATIC_TLS}) add_definitions(-DWORKAROUND_LIBGOMP_STATIC_TLS) endif() # Definitions for testing with valgrind. configure_file(CTestCustom.cmake.in CTestCustom.cmake) # Tests in CTestCustom.cmake are skipped for valgrind find_program(MEMORYCHECK_COMMAND NAMES valgrind) if (MEMORYCHECK_COMMAND) set(MEMORYCHECK_COMMAND_OPTIONS "--suppressions=${CMAKE_SOURCE_DIR}/valgrind-suppress --errors-for-leak-kinds=definite --show-leak-kinds=definite --leak-check=full --num-callers=50 --error-exitcode=3" ) add_custom_target(valgrind DEPENDS NightlyMemCheck) else() message(WARNING "Cannot find valgrind: valgrind target will not be available") endif() include(CTest) enable_testing() #include(EnableCoverageReport) include(cmake/UseGSettings.cmake) set(SHARE_PRIV_DIR ${CMAKE_INSTALL_LIBDIR}/lomiri-thumbnailer) set(SHARE_PRIV_ABS ${CMAKE_INSTALL_FULL_LIBDIR}/lomiri-thumbnailer) find_package(Boost COMPONENTS filesystem iostreams regex system REQUIRED) find_package(Threads REQUIRED) find_package(Qt5Core REQUIRED) find_package(Qt5DBus REQUIRED) find_package(Qt5Gui REQUIRED) find_package(Qt5Qml REQUIRED) find_package(Qt5Quick REQUIRED) include(FindPkgConfig) pkg_check_modules(GST_DEPS REQUIRED gstreamer-1.0 gstreamer-plugins-base-1.0 gstreamer-tag-1.0) pkg_check_modules(GOBJ_DEPS REQUIRED gobject-2.0) pkg_check_modules(GIO_DEPS REQUIRED gio-2.0 gio-unix-2.0) pkg_check_modules(IMG_DEPS REQUIRED gdk-pixbuf-2.0 libexif) pkg_check_modules(LOMIRI_API_DEPS REQUIRED liblomiri-api) pkg_check_modules(APPARMOR_DEPS REQUIRED libapparmor) pkg_check_modules(TAGLIB_DEPS REQUIRED taglib) pkg_check_modules(CACHE_DEPS REQUIRED libpersistent-cache-cpp) include_directories(${GST_DEPS_INCLUDE_DIRS}) include_directories(${GOBJ_DEPS_INCLUDE_DIRS}) include_directories(${GIO_DEPS_INCLUDE_DIRS}) include_directories(${IMG_DEPS_INCLUDE_DIRS}) include_directories(${LOMIRI_API_DEPS_INCLUDE_DIRS}) include_directories(${APPARMOR_DEPS_INCLUDE_DIRS}) include_directories(${TAGLIB_DEPS_INCLUDE_DIRS}) include_directories(include) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) add_subdirectory(src) add_subdirectory(data) add_subdirectory(plugins/Lomiri/Thumbnailer.0.1) if (${ENABLE_UBUNTU_COMPAT}) add_subdirectory(plugins/Ubuntu/Thumbnailer.0.1) endif() add_subdirectory(tests) add_subdirectory(include) add_subdirectory(man) #add_subdirectory(doc) #enable_coverage_report( # TARGETS # recovery_test # Need to turn on coverage for this, to get the helper template instrumented. # testutils # test-seq # thumbnailer-admin # thumbnailer-qml # thumbnailer-qml-static # lomiri-thumbnailer-qt # thumbnailer-service # thumbnailer-static # vs-thumb # vs-thumb-static # FILTER # ${CMAKE_SOURCE_DIR}/tests/* # ${CMAKE_BINARY_DIR}/* # TESTS # ${UNIT_TEST_TARGETS} #) lomiri-thumbnailer-3.0.0/COPYING.GPL000066400000000000000000001045131407036215500170000ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . lomiri-thumbnailer-3.0.0/COPYING.LGPL000066400000000000000000000167271407036215500171250ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. lomiri-thumbnailer-3.0.0/CTestCustom.cmake.in000066400000000000000000000006671407036215500211550ustar00rootroot00000000000000# # Tests listed here will not be run by the valgrind target, # either because there is no point (we don't want to # test that a python script doesn't leak), or because, # under valgrind, the test runs too slowly to meet # its timing constraints (or crashes valgrind). # SET(CTEST_CUSTOM_MEMCHECK_IGNORE speed copyright stand-alone-lomiri-thumbnailer-qt-headers clean-public-lomiri-thumbnailer-qt-headers whitespace ) lomiri-thumbnailer-3.0.0/ChangeLog000066400000000000000000005674031407036215500171110ustar00rootroot000000000000002021-07-04 Ratchanan Srirattanamet * Release 3.0.0 (HEAD -> main, tag: 3.0.0) 2021-03-28 Marius Gripsgard * Merge branch 'personal/peat-psuwit/rename-to-lomiri' into 'main' (d0de88d) 2021-03-26 Ratchanan Srirattanamet * Workaround GlibC bug related to static-TLS optimisation (534c5aa) * tests: remove obsolete distro test (d3b758d) 2021-03-12 Ratchanan Srirattanamet * d/control: update metadata about the software (3e9320d) * doc: update the last Unity reference in the thumbnailer-qt doc (ae06cea) * CTestCustom: update the list of Memcheck-ignoring tests (381fe88) * thumbnailer: switch the cache directory to lomiri (2ad8a26) * d/*: add a session-migration script to migrate gsettings (be08bc1) * d/control: rename thumbnailer-service to lomiri-thumbnailer-service (ee007e5) * Change gsettings schema namespace to com.lomiri (6b448cd) * valgrind-suppress: correct the C++ namespace (42932af) 2021-03-11 Ratchanan Srirattanamet * man: rename the manpage to match the binary name (9682ff0) * service: rename DBus namespaces to com.lomiri (d935a1e) * thumbnailer-qt: rename to lomiri-thumbnailer-qt (1a3b280) * thumbnailer-admin: prepend lomiri- to the binary name (a7a0905) * data: rename the apport blacklist file to be more understandable (f59b523) * Rename the "libexec" directory to include lomiri (1ecc753) 2021-03-10 Ratchanan Srirattanamet * d/*: handle qml plugin name change (1b0d769) * plugins: add an Ubuntu QML compatibility type (963055a) * plugins: rename to be under Lomiri (QML) namespace (04acd3a) * Change the C++ namespace to lomiri (05720c7) * tests/download: disable test_connection_error (17ba988) * Migrate .bzrignore to .gitignore (82da73e) * Remove unused .bzr-builddeb/ (13ab6ce) * tests/copyright: update ignore pattern to ignore .git instead of .bzr (171c978) * Move Jenkinsfile to debian/ per the new guideline (b583885) * Stops contacting dash.ubuntu.com while allowing the tests to pass (0900685) * Revert "don't do any requests to dash.ubuntu.com since it's not alive anymore" (5974472) * Revert "Disable tests" (efe8c7b) * Migrate to lomiri-api (cbc4a0d) * d/control: remove from B-Ds: gstreamer1.0-fluendo-mp3 (7c1e907) * Change the project name to lomiri-thumbnailer (36ff71b) * Start new changelog entry for 3.0 (1aaf979) 2021-03-16 Rodney * Merge pull request #5 from ubports/xenial_-_thumbnailer-qt512 (c69d47d) 2021-03-10 Ratchanan Srirattanamet * Update Jenkinsfile to use shared library (a860197) 2018-06-09 Ivan Semkin * Fix build with Qt 5.11_beta3 (dropping qt5_use_modules) (91e8950) 2018-01-08 Dan Chapman * Disable docs and coverage reports (a4387b8) * Update jenkinsfile and build for xenial (751fb47) 2017-11-01 Marius Gripsgard * Disable tests (597ceb5) * don't do any requests to dash.ubuntu.com since it's not alive anymore (ebf60cf) 2017-10-31 Marius Gripsgard * Imported to UBports (235999c) 2016-11-14 Bileto Bot * Releasing 2.4+17.04.20161114.1-0ubuntu1 (4c8601a) * Added zesty to list of distros for which we suppress Qt tests. Fixed code to work with taglib 1.11, which breaks the behavior of the taglib 1.9 API. (86e3611) 2016-11-14 Michi Henning * Merged trunk. (273af38) * Fixed changelog. (5b39e10) * No change rebuild against boost1.62. (9adcfa2) 2016-11-12 Michi Henning * I hate changedlog. (5af73ae) * Changelog again... (08b07fe) * Merged parent. (3ab9ea5) * Merged changelog from trunk. (e2d4e8d) 2016-11-11 Michi Henning * Reverted to rev 368 (prior to disabling tests). (76de106) * 1.18 not available on zesty. (cf54dc8) * Trying to force liblevedb 1.18. (a4f7484) * Dump kernel version. (fdf78a1) * Trying test with valgrind. (727f35e) * More trace. (355a23e) * Disabled stats calls. (481f9a6) * Disabled most tests. (71d132f) 2016-11-10 Michi Henning * Back to original test. (f1acae6) * Fault seems to be moving. (0da9ff2) * Another try. (504a2d2) * Disabled parts of segfaulting test to narrow down the problem. (3035807) * Updated changelog. (b1f51df) * Extraction with taglib 1.11 now works again. (5fe027e) * First shot at conditional code for taglib 1.11. (147bf89) 2016-11-09 Michi Henning * Updated changelog. (47a7236) * Added zesty to list of distros with suppressed Qt tests. (c58735e) 2016-09-28 Michi Henning * Back-merge from trunk:; Disabled QDBus-related tests on xenial and yakkety for the time being due to problems with Qt 5.6. See https://bugs.launchpad.net/ubuntu/+source/thumbnailer/+bug/1613561 https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-src/+bug/1625930 * Changed python-tornado dependency to python-tornado for cross-builds.; Changed python-tornado dependency to python-tornado for cross-builds. * Relaxed copyright for trace.cpp and trace.h to LGPL. No-change rebuild for boost soname change. [ Michi Henning ]; Changed copyright from GPL to LGPL for two files used in storage framework. [ James Henstridge ]; Fixed pkgconfig file for qt library. (3d0a0c8) 2016-09-26 Bileto Bot * Releasing 2.4+16.10.20160926.2-0ubuntu1 (4693bfb) * Disabled QDBus-related tests on xenial and yakkety for the time being due to problems with Qt 5.6. See https://bugs.launchpad.net/ubuntu/+source/thumbnailer/+bug/1613561 https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-src/+bug/1625930 (7b2b343) 2016-09-26 Michi Henning * Changed python-tornado dependency to python-tornado for cross-builds. (f76252c) * Merged trunk. (8f9e66a) * Fixed arch expression. Increased timeout for slow-vs-thumb test because it fails occasionally on Vivid arm64. (43bc3d4) * Disabling selectively only for problem architectures. (ed58a50) 2016-09-23 Michi Henning * Manually merged changes from https://bileto.ubuntu.com/log/1991/status/7/ (9ee7daa) * Got rid of stale unreleased changelog entry. (b707059) * More changelog fixing. (dfc4cac) * Merged dependent branch. (ba257d6) * Changelog fix. (651f010) * More changelog fixing. (35bd3f4) * Pulled changes made to MR by doko. (cb11b90) * Disabled QDBus-related tests on xenial and yakkety for the time being due to problems with Qt 5.6. See https://bugs.launchpad.net/ubuntu/+source/thumbnailer/+bug/1613561 https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-src/+bug/1625930 (d047273) 2016-08-12 Michi Henning * Relaxed copyright for trace.cpp and trace.h to LGPL. (1216d35) * Changed licence for trace.cpp to LGPL so we can lift it for storage framework. (54b7ba5) 2016-08-05 Michi Henning * Merged changes made to trunk. (2ffe901) 2016-07-25 Michi Henning * Changed python-tornado dependency to python-tornado for cross-builds. (74d5a38) 2016-07-21 Michi Henning * Merged lp:~michihenning/thumbnailer/fix-crossbuild: Changed python-tornado dependency to python-tornado:native for cross-builds. (720a54b) 2016-07-20 Michi Henning * Changed python-tornado dependency to python-tornado:native for cross-builds. (841cde2) 2016-07-19 Florian Boucault * Crossbuilding fixes (819423a) 2016-07-19 James Henstridge * Fix up SHARE_PRIV_ABS definition in cmake configuration. (7da02b9) 2016-07-19 Bileto Bot * Releasing 2.4+16.10.20160719-0ubuntu1 (1d479f9) * Changed copyright from GPL to LGPL for two files used in storage framework.; Fixed pkgconfig file for qt library. (df513b4) 2016-07-19 Michi Henning * merged: James Henstridge 2016-07-18 Fix typo introduced when cleaning up CMake files. (3706900) 2016-07-18 James Henstridge * Fix typo introduced when cleaning up CMake files. (48025a3) 2016-07-13 Michi Henning * [ Michi Henning ]; Changed copyright from GPL to LGPL for two files used in storage framework. [ James Henstridge . Fixed pkgconfig file for qt library. (37ab308) 2016-07-12 James Henstridge * Fix up the libthumbnailer-qt pkg-config file. (32a0935) * Looks like Qt5::Network was only required for QML. Find that package instead. (02bc2bb) * Do find_package on Qt5Network to see if that cleans up the vivid-overlay bug. (b344aeb) 2016-07-12 Michi Henning * Changed copyright to LGPL for the bits we stole for storage framework. (53c6c41) 2016-07-12 James Henstridge * Fix up pkg-config file, and simplify some of the cmake build files. (14acf2b) 2016-07-12 Michi Henning * Changed license to LGPL for the bits we stole for storage framework. (6fd86ac) 2016-05-31 Michi Henning * Merging 2.4+16.10.20160530.3-0ubuntu1 from trunk. (3b3c47d) 2016-06-01 Michi Henning * Merging 2.4+16.10.20160530.3-0ubuntu1 from trunk. (16cdc39) 2016-05-30 CI Train Bot * Releasing 2.4+16.10.20160530.3-0ubuntu1 (f790f6b) 2016-05-30 Michi Henning * Fix for copyright test on yakkety. (bc271f5) * Merged push from doko. (36779e1) * Minor fix to stop complaint from ubsan. (ce3da5b) * Fix for escape sequence in regex. (e7e9abf) * Re-enabled copyright test on xenial. Added missing copyright headers. (d50ac82) * Fixed undefined behavior flagged by ubsan. (39b17de) 2016-04-14 Michi Henning * Fixed undefined behavior flagged by ubsan. (f8d6758) 2016-04-08 Michi Henning * Re-enable copyright/licence test for xenial. (4de862c) * Fixed changelog. (82a90e4) * Merged devel. (fcfebe3) 2016-04-07 Michi Henning * Back-merge of 2.4+16.04.20160321-0ubuntu1 from trunk. (81306c8) * Fixed a few more issues with the copyright test and missing copyright headers. (f8ecabb) * Back-merge of 2.4+16.04.20160321-0ubuntu1 from trunk. (03b4c36) 2016-03-31 Michi Henning * Added a nother exclusion to copyright test. (205eef8) * Re-enabled copyright test for xenial. (533962a) 2016-03-21 CI Train Bot * Releasing 2.4+16.04.20160321-0ubuntu1 (4e0a7f6) 2016-03-21 Michi Henning * vs-thumb now uses a separate pipe instead of writing to stdout (LP: #1556835). Fixes: #1556835 Approved by: PS Jenkins bot (492a10d) * Fixes from James's review. (d78229b) 2016-03-19 Michi Henning * Reserve capacity in image buffer for better performance. (698698f) 2016-03-18 Michi Henning * Fixed issues with URL parsing spotted by James. (db77cbb) 2016-03-17 Michi Henning * Close read-end of pipe for the child. (16d4b93) * Minor simplification. (4858f14) * Removed a few pessimizing moves. (7f779b7) * vs-thumb now uses a separate pipe instead of writing to stdout (LP: #1556835). (57cc1cd) 2016-03-11 Michi Henning * Removed #include that was left behind after debugging. (abf330f) * Removed #include that was left behind after debugging. (19f115c) 2016-03-03 Michi Henning * Back-merge of 2.4+16.04.20160302.1-0ubuntu1 from trunk. (20b0a25) 2016-03-04 Michi Henning * Back-merge of 2.4+16.04.20160302.1-0ubuntu1 from trunk. (54ea70a) 2016-03-02 CI Train Bot * Releasing 2.4+16.04.20160302.1-0ubuntu1 (3a92713) 2016-03-02 Michi Henning * * Thumbnails now preserve transparency of source image (LP: #1532719, LP: #1541836). * Fixed incorrect tests when checking full-size cache hits (LP: #1540753). * Minor improvements to man pages. Approved by: PS Jenkins bot (b0d59b5) * Merged changes on devel since last release. (f153e37) * Minor fixes to man pages. (29bb260) * Fixed a typo. (9f21b39) * Minor fixes for man page. (9a143a5) * Back merge of 2.4+16.04.20160226-0ubuntu1 from trunk after release. (3800e70) * Back merge of 2.4+16.04.20160226-0ubuntu1 from trunk after release. (9c39b15) * Added valgrind suppression for uninitialized jump in libgstlibav.so. (73dcd51) * Added valgrind suppression for uninitialized jump in libgstlibav.so. (469e6b9) 2016-02-29 Michi Henning * Support transparency for thumbnails. Fixes: https://bugs.launchpad.net/bugs/1532719, https://bugs.launchpad.net/bugs/1541836. (fe67ddc) * Fixes for full-size tests. Fixes: https://bugs.launchpad.net/bugs/1540753. (8c7fff5) * Review comments from James. (6df51f2) * Fix for 1540753. Code was correct, but test wasn't. (1e982ab) * Fixed util.cpp to actuall return png (probably a merge error from devel). Added more tests for coverage. (a45c0de) 2016-02-27 Michi Henning * Merged devel. (d6325ad) * Fixed typo in comment. (031d2c1) 2016-02-26 CI Train Bot * Releasing 2.4+16.04.20160226-0ubuntu1 (bb310a8) 2016-02-26 Michi Henning * [ Michi Henning ] * Fixed incorrect build dependency for settings-defaults.h. * Re-enabled tests on powerpc and s390x, except for qml test. * Disabled vs-thumb test on powerpc64le due to gstreamer codec bug. * Added version check on start-up and automatic cache wipe if cache encoding version changes. * Changed local audio extraction for better performance: 12 times faster on Mako, 5 times faster on desktop. * thumbnailer-admin now works with relative paths (LP: #1538774). (10eb104) * Merged devel. (8fe393a) * Fix assert() in thumbnailer if local file path was empty. Fix relative paths for thumbnailer-admin. Fixes: https://bugs.launchpad.net/bugs/1538774. (7ea7e02) * Removed unused variable. (7e77a14) * Second fix for bug 1538774. (fe73087) * Relaxed test some more. s-jenkins is in a mess. (5d6ef01) * Fixes for insanely slow Arm machines on s-jenkins. (a038568) 2016-02-25 Michi Henning * Minor tidy-up. (95ed56c) * Added librsvg2-common to control. (e30c432) * Fixed thumbnailer-admin to produce png images. (1d0f557) * Merged devel and fixed broken test. (53622bb) * Merged devel. (a000aab) * Started change to png for thumbnailer-admin. (aa412c2) * Fixed incorrect extraction of video still frames. Got rid of build warning in release mode. (d1ecc55) 2016-02-24 Michi Henning * Remove trailing newline at EOF. (c2fbfbc) * Fixed error I introduced during merge conflict. (f574f03) * Updated changelog. (3cdeecd) * Merged devel. (1ad3ce2) * Wipe the cache if we are upgrading from 2.3.x. (af4f3da) * Changed audio cover art extraction to use taglib. (186f0ac) * Changed settings retrieval for client lib to use a single method for all settings. (a213413) * First cut at transparency. (d32a2ed) * Review comments from James. (00db683) * Changed settings retrieval for client lib to use a single method for all settings. (c1490a1) 2016-02-22 James Henstridge * Back-merge of 2.3+16.04.20160210-0ubuntu1 from trunk. (34af46d) 2016-02-22 Michi Henning * Back-merge of 2.3+16.04.20160210-0ubuntu1 from trunk. (98e0bd4) 2016-02-16 Michi Henning * Don't request audio properties when opening file. (0258ead) 2016-02-15 Michi Henning * Added a cache encoding version that is now used by the thumbnailer to decided whether to wipe the cache. Whenever the cache encoding version changes, all three caches are wiped. (632856f) * More tests. (e0968f7) * Added some tests. (b322d75) * Changed version to 2.4 in changelog. Minor renaming and clean-up. (f0d232a) * Basic version update functionality. Still needs tests. (8df4435) * Merged taglib branch. (b9fef2f) 2016-02-10 Michi Henning * Canonicalise paths on the client side because relative paths on the server side don't make sense. Fixes: https://bugs.launchpad.net/bugs/1538774. (a8c1d29) * Review comments from James. (0571084) 2016-02-10 CI Train Bot * Releasing 2.3+16.04.20160210-0ubuntu1 (1710db1) 2016-02-10 James Henstridge * When a thumbnail can not be loaded, return an error from the image provider rather than substituting in a fallback image. Users can detect the problem via the status property of the QML Image component and provide their own fallback handling. Fixes: #1324142 Approved by: Michi Henning, PS Jenkins bot (5af8853) 2016-02-09 Michi Henning * Removed redundant check whether file is readable. Because we always determine the mime type by deep inspection first, the call to open() just wastes cycles. (ce939d2) 2016-02-05 Michi Henning * Added support for old OGG COVERART tag. (1b2f031) 2016-02-04 Michi Henning * Review comments from James. (1828c8c) * Better names, clearer code. (b9a2ae6) 2016-02-03 Michi Henning * Updated comment. (c9ec109) * More tests. (9c2235c) * Simplified code. (8c3f2df) * Stripped out optional audio file types. More tests. (058ca7a) * Increase wait time for Jenkins. (4b3be01) 2016-02-02 Michi Henning * Updated debian/control. (1ebc839) * Removed audio tests for vs-thumb because it is no longer used for audio files. Lots of other test clean-up. (a457a85) * Minor updates to vs-thumb. We need to keep audio support because the tags for videos live in the audio part of the container. (aee03fd) * Fixed test failures caused by changes. (936c791) * Another test. Reduced iterations for mp3 stress test to 100 for now to avoid overrunning DBus. (64fca34) * Fixed build warning on arm. (b8df01e) * Switched thumbnailer to use taglib extractor for audio files. (24a3e95) * First cut at cover art extraction using taglib. (2b139d9) 2016-01-29 Michi Henning * Fixed copyright. (81c525d) * Moved mime type detection into separate source file. (ad3d01b) * Remove unused variable. (66780b9) * Better error reporting for content type detection, plus extra test. (33f8150) 2016-01-28 Michi Henning * Canonicalise paths on the client side because relative paths on the server side don't make sense. (871bdac) 2016-01-21 Michi Henning * Disabled qml test for powerpc and s390x, re-enabled all other tests on those architectures. Disabled vs-thumb test for PPC little-endian on vivid only because a gstreamer codec has an endian bug there. (33346e2) * Increased wait time to 10 seconds for libthumbnailer-qt_test to avoid failures caused by overloaded builders. (d67f38e) * Fixed typo in changelog. (05627d1) * Fixed architecture strings, disabled vs-thumb test on vivid for PPC little-endian. (3fa575e) * First try for silo testing. (2824873) 2016-01-20 James Henstridge * When reading a potentially animated image, stop processing chunks once we've fully decoded the first frame. This reduces the IO and CPU load when thumbnailing large animated GIF files. Fixes: https://bugs.launchpad.net/bugs/1527315. (72726a3) 2016-01-19 James Henstridge * Simplify logic a little. (684c349) * When loading a scaled animation, the area-prepared signal may be delayed until the loader is closed. So instead, try to create the PixbufAnimationIter after feeding each chunk to the loader. (e83df58) * Add a test for loading a scaled animated gif. (1c69a9b) * Silence unused variable warnings. (81e22b7) * Remove code banning large GIF files: it is animations that blow out the memory usage, and we should stop loading them early now. (0c4b2a4) * Add a test that shows that we decode the first frame of an animated image and don't read the entire file. (68a98c9) * Stop reading the image once the first frame of an animated image has been fully decoded. (1c1b4f4) 2016-01-13 Michi Henning * Made client-side config settings available from the server. Fixes: https://bugs.launchpad.net/bugs/1528058. (cc40b25) * Documented location of on-disk cache files. (be1b583) * Simplified dbus invocation. (d5ea1aa) 2016-01-12 James Henstridge * Remove error logging in requestFinished() method. (583835a) * Remove obsolete comment from textureFactory() method. (48538a5) * Add direct image provider tests for error conditions. (6d78dc2) * Fix up QML tests. (c8a794f) 2016-01-12 Michi Henning * Documented location of on-disk cache files. (0a55c63) 2016-01-11 James Henstridge * Merge from devel, fixing massive conflicts. (c0d9ce2) 2016-01-11 Michi Henning * Feedback from James. Got rid of mis-guided attempt to default based on the number of CPUs. (3a313ab) * Fixed incorrect build dependency for settings-defaults.h with parallel builds. (ab0d1a1) * Dealt with remaining coverage issues by adding tests or suppressing as needed. Made file_lock test skip slow parts when slowtests is off. (8370a75) * Feedback from James, thanks! (4d16105) * Fixed typo in error message. (a78bc17) * Oope, stale test from having merged devel. (ac27cd6) * Minor comment adjustment. (f859db8) 2016-01-10 Michi Henning * Minor adjustments to the way backlog is used. Default is now number of CPUs + 2. (9e087ab) * Merged devel. (ba6d0ea) * Fixed incorrect error message string. (052dc73) 2016-01-09 Michi Henning * Dealt with remaining coverage issues by adding tests or suppressing as needed. Made file_lock test skip slow parts when slowtests is off. (546d96e) * Fixed incorrect build dependency for settings-defaults.h with parallel builds. (ad9ded7) 2016-01-09 CI Train Bot * Merged 2.3+16.04.20160108.2-0ubuntu1 from trunk after release. (de3607e) 2016-01-09 Michi Henning * Merging 2.3+16.04.20160108.2-0ubuntu1 from trunk after release. (dc62241) 2016-01-08 CI Train Bot * Releasing 2.3+16.04.20160108.2-0ubuntu1 (fcef9d4) 2016-01-08 Michi Henning * Limit GIF file size to 2 MB (LP: #1527315). Fixes: #1527315 Approved by: PS Jenkins bot (62d2670) * Limit GIF file size to 2 MB (LP: #1527315). Fixed incorrect display of cache policy by "thumbnailer-admin stats". (7c1f22d) * Limit extraction of thumbnails from GIF to files no larger than 2 MB. Fixes: https://bugs.launchpad.net/bugs/1527315. (ea9a956) * Better log message. (fc59545) * Updated changelog. (bcd9182) * Limit gif extraction to files no larger than 2 MB. (feb1c7a) * Fixed incorrect display of cache policy by "thumbnailer-admin stats". (99c7fe9) * Fixed incorrect display of cache policy by "thumbnailer-admin stats". (bf474d3) 2016-01-08 CI Train Bot * Back-merge from trunk after release. (df165b7) 2016-01-08 Michi Henning * Merged trunk at 2.3+16.04.20160107.1-0ubuntu1. (dd98a72) 2016-01-07 CI Train Bot * Releasing 2.3+16.04.20160107.1-0ubuntu1 (59fdb91) 2016-01-07 Michi Henning * Fix for lp:1531038. Much better user experience this way. Approved by: Michi Henning (74cea21) * Fix for lp:1531038 for landing in silo. (c6057ac) * Merged 2.3+16.04.20160107-0ubuntu1 from trunk after publishing. (8238f43) * Merged 2.3+16.04.20160107-0ubuntu1 from trunk after publishing. (9a44d2b) * After long discussions with slangasek, robru, and infinity, ignored test failures for s390x because, by an unfortunate chain of events, s390x packages were published back on 2 November. (d0b0cf7) * Disabled tests failures for s390x as for PPC, as discussed with Adam Conrad. (e0a09f1) 2016-01-07 CI Train Bot * Releasing 2.3+16.04.20160107-0ubuntu1 (1d80de9) 2016-01-07 Michi Henning * Merge changes from devel to trunk for landing. Approved by: Michi Henning, PS Jenkins bot (a5b8f3b) * Made tests succeed on s390x, the same as for PPC, due to gstreamer problems, as discussed with Adam Conrad. (3acdca9) * Changed default backlog to 10. Change RateLimiter to work on LIFO basis. Fixes lp:1531038. Fixes: https://bugs.launchpad.net/bugs/1531038. (da4e86e) * Changed default backlog to 10. RateLimiter now works on last-in, first-out basis instead of FIFO. This gives cancellation a much better chance of actually cancelling something. (f73c6c5) * Updated doc for Thumbnailer constructors. (82c5427) * Updated doc for Thumbnailer constructors. (199864d) 2016-01-06 Michi Henning * Default for trace-client setting if dbus call fails is true for now, for debugging. (1337db7) 2016-01-05 Michi Henning * Made client-side config settings available from the server. (1cb6273) 2016-01-04 Michi Henning * Michi Henning 2016-01-04 [merge] Michi Henning 2016-01-04 Added exponential backoff for unexpected server errors. (fced536) * Michi Henning 2016-01-04 Added exponential backoff for unexpected server errors. (9f53496) * Added exponential backoff for unexpected server errors. (7c93f4b) 2015-12-31 Michi Henning * Merged devel. (60ab814) * Minor optimizations to reduce memory pressure. (68d24dc) * Minor optimizations to reduce memory pressure. (9475a27) * Merged devel. (ff93757) * Do not treat request timeout as a temporary error because we see this quite often from the remote server. Fixes: https://bugs.launchpad.net/bugs/1528105. (b59f557) 2015-12-30 Michi Henning * Merged devel. (bfb7d10) * Changed the default number of concurrent downloads to 8. (ceea4e3) * Fixed settings test. (60cf3e5) * Changed the default number of concurrent downloads to 8. (05f7647) * Fixed missing status assignment. (7c4e1f4) * Add missing switch case. (8771e60) 2015-12-28 Michi Henning * Do not treat request timeout as a temporary error because we see this quite often from the remote server. (813c5d0) 2015-12-27 Michi Henning * Merged devel. (826df90) * Added two missing codec guards to test. (b17e7e7) * Added missing mpeg guards to two tests. (7c7ab8d) 2015-12-23 Michi Henning * Merged devel. (d4bbbe1) * Using old signal syntax in test because, on arm64 on Vivid, the test fails with the new syntax. (1f3022c) * Empty commit to force rebuild. (87dd8fa) * Using old signal syntax in test because, on arm64 on Vivid, the test fails with the new syntax. (90f4703) * Added comment. (5e4fa07) * Trying old signal syntax to see whether this avoids failure on arm64 Vivid test. (1b82b18) 2015-12-22 Michi Henning * Merged parent. (72b95e0) * Merged devel. (8223665) * Increased signal wait time for CI Train. Minor renaming for consistency and excluding tests from coverage. (2305fd8) * Minor renaming for consistency and excluding tests from coverage. (a226b41) * Doubled signal wait time for CI Train. (e12846a) * Doubled signal wait time for Jenkins. (ce6d28f) 2015-12-21 Michi Henning * Merged devel. (0c6b9f1) * Fixes two minor bugs in the vs-thumb test. (fe1f9c5) * Fixed cancellation logic if requests are destroyed without being cancelled first. Documentation and test improvements. (a4f068f) * Doc improvements, simplified limiter() accessor. (23439a0) * Accessor on thumbnailer to allow pumping the limiter via the thumbnailer because we can't schedule a member function on RequestImpl to pump the limiter from the RequestImpl's destructor. (279c176) * Merged devel. (6ca5100) * Removed temp code in settings.cpp. (d482771) * Removed more trace. (cddecf9) * Stripped trace. (bff5f60) * Removed trace from limiter. (b0c4eb3) 2015-12-19 Michi Henning * Delay pumping from destructor. (fb45713) 2015-12-18 James Henstridge * Add some direct C++ tests for the QQuickImageProvider implementations in the QML plugin. (0ce5150) 2015-12-18 Michi Henning * Typo. (a5f30dc) * Moved done trace. (5ec132c) * Fix trace. (5c0fd2d) 2015-12-18 James Henstridge * Run image-providers test under Xvfb. (2cd2e1e) * Fix linkage of test program. (6de78b7) 2015-12-18 Michi Henning * Fixed limiter pump conditional. (424dde0) 2015-12-17 James Henstridge * Add QML code back to coverage report. (b42a727) * Add a stub test for cancellation. (0258908) * Add a test calling the thumbnailer QQuickImageProvider directly from C++. (d00a8c2) * Put the majority of the QML plugin in an intermediate static library. (3bd1f4e) 2015-12-17 Michi Henning * trace... (ca50e85) * Whitespace. (d2e5172) * Better naming. (4e1724c) * Don't check cancelled_ in destructor. (8d6df0c) * Better comments. (e8ed0a7) * Make sure watcher is reset even if an exception is thrown while processing a reply. (10b9950) * Destructor needs to check watcher_, not finished_. (0985aa0) * trace... (c822360) * More settings tests. (26cfe18) * Trace for get_bool (4f94b10) * Pump limiter from destructor. (6123677) * Cancel from RequestImpl destructor. (b22dae8) * More trace. (fdc4f4a) * Added trace for debugging. (787cb80) 2015-12-16 Michi Henning * Backed out s390x-specific changes. (82b1534) * Backed out s390x-specific changes again. (5c63757) * Oops, wrong operator. (4af2d58) * Oops, wrong operator. (58d1743) * Skipping qml test on s390x. (ad03ff8) * Skipping qml test on s390x. (062c512) * Checking CPU string for IBM. (946c45d) * Avoid build and test failure on s390x. (6b91a58) * Check for aac mime type correctly, guard mp3 extraction for missing codec. (a46e957) * Avoid build failure on s390x. (cc2cc4f) 2015-12-15 Michi Henning * Merged devel. (faf468a) * 100% coverage again for thumbnailextractor.cpp. (63377dc) * 100% coverage again for thumbnailextractor.cpp. (4e24bf4) * Merged devel. (7148edb) * Added log-level gsetting to reduce chatter in the logs. (05296a5) * Merged devel. (d392d6a) * Avoid the intermediate conversion to tiff for audio and video files with embedded artwork. (4a9b78b) * Removed useless lambda. (38f1bd6) * Fixed memory management issue for buffermap. (015beee) * Changes from devel branch. (a8c0129) * Updated changelog. (8328109) * Merged devel and resolved conflicts. (f821a7b) * Merged devel and resolved conflicts. (2ee3d17) 2015-12-14 Michi Henning * Passing an invalid size to the QML or Qt APIs is now an error. (0872ede) * Merged devel and resolved conflicts. (47b09b0) * Merged devel and resolved conflicts. (49d2b6b) * Fixed clang warnings about missing pragma push. (4001d12) * Fixed ubuntuserverdownloader to behave correctly when test machine has no internet connection. (494296a) * Resolved merge conflict. (4803ec8) * Merged devel. (894ac58) * Merged devel and resolved conflicts. (b91f32f) * Merged devel and resolved conflicts. (d42d058) * Merged devel and resolved conflict. (82a2ae3) * This fixes the bad request problem in bug 1512608 ( No thumbnails generated for OGG audio). Fixes: https://bugs.launchpad.net/bugs/1512608. (29481ac) * Removed redundant operator<< for QString when tests fail. (b1109f0) * Added log-level config setting. (9c13fac) * Added custom operator<< for QString for gtest. (5fcd47e) * Merged parent. (273bd2b) * Dump error output from xvfb-run if qml test fails. (ba513da) * Increased pump time to avoid failure with Arm tests on Jenkins. (9398045) 2015-12-12 Michi Henning * Increased wait time for Jenkins. (9dbdb40) * Removed env_vars map and used constexpr char const* instead. Got rid of a few redundant comments that just endlessly go out of sync. (738e785) * Fixes suggested by James. (6177d5c) * Fixed warning from clang pragma. Fixed doxygen complaint about example location. (c8c869f) 2015-12-11 Michi Henning * Fixed misguided attempt to send finished() signal when Request is destroyed. (e28744f) * Added another valgrind suppression. (4bd38cb) * Now avoiding conversion to tiff if we found embedded artwork. (e9fe907) 2015-12-10 Michi Henning * More simplification, better diagnostic for "no artwork exists". (88a2cbb) * First refactoring steps. Check and apply rotation only for video frames. (ddbfd46) * Merged devel. (d7638a2) * Minor fix. (bea3a26) * Fixed clang warnings about missing pragma push. (df62da0) 2015-12-09 Michi Henning * Removed stale assert that that got left behind after resolving a merge conflict. (6b6d307) * Removed stale assert. (964e124) * Removed stale assert. (5ca95d1) * Removed stale assert. (a71030f) * Merged devel and resolved conflicts. (16cc8bb) * Merged devel and resolved conflict. (fd34cfc) * Fixed poor cancellation logic. (a75ce9e) * Undid incorrect merge from devel. (6163b43) * Merged devel and resolved conflicts. (0851ee2) * Removed debug trace. (65a9142) * Passing an invalid size to the QML or Qt APIs is now an error. (b339950) 2015-12-07 Michi Henning * Removed hack to try and deal with the arm gstreamer problems in a hardware-specific way. (88360cc) * Stop tests from failing when test machine has no internet connection. (22ba45c) 2015-12-04 Michi Henning * Don't hang on tests if there is no internet connection. (Not finished yet.) (83430a2) * Merged devel and resolved conflicts. (38020a1) * Replaced returning of thumbnails via file descriptor with returning the image contents directly over DBus. About 7-8% performance improvement for hits on 128-size thumbnails. (8aa529c) * Removed trace, updated changelog. (5473e9b) * Some tidy-up, stricter tests. (b219e58) * More thorough server error test. Make sure we always get a duration in the log, even if check() returns an error status. (a372239) * Temporary check-in, moving machines. (17c0c1c) 2015-12-03 Michi Henning * Tighter tests, better diagnostics, unified error handling. fetch() is noexcept now and download() no longer throws for unsurprising errors (permission denied, server down, etc.) Still need to adjust logic in handler to not call download if check() reports an error. (0dfe936) * Merged parent branch. (a7fb68c) * Merged devel. (b325c5e) * Removed QByteArray annotation from DBus interface xml. (7f0959e) 2015-12-02 Michi Henning * Addressed review comments from James. Thanks heaps for that, the data() copy issue was pretty damn serious! (0eb39e5) * Simplified code for conditionally-compiled adjusted_limit(). (2c1901f) * Removed redundant error check. (c260425) * Refactored ArtReply and UbuntuServerArtReply. (6f683f7) * Removed stale thumbnailer tests. Changed network retry test to use recoverable error code. (a1456cc) 2015-12-01 Michi Henning * Added lsb-release to build deps. (8792654) * Added lsb-release to build deps. (e691420) * Merged devel. (c71b339) 2015-11-30 Michi Henning * Minor change from reviewing the diff. More consistent argument ordering for write_file() functions. (a00104c) * Replaced returning of thumbnails via file descriptor with returning the image contents directly over DBus. About 7-8% performance improvement for hits on 128-size thumbnails. (bbc0dd9) 2015-11-29 Michi Henning * Back to queue-based limiter, with minor change in done(). (1ce7c98) 2015-11-27 Michi Henning * Increased wait time again for Jenkins. (6a56f47) * Merged devel. (8e0dafd) * Bring coverage for Image class back up to 100%. (f6874ca) * Oops, needs to work on Arm too... (77fddc5) * Removed hack to try and deal with the arm gstreamer problems in a hardware-specific way. Nothing we can do about the codecs. (b071b9f) * Another test adjustment. (a73ce86) * Relaxed test to allow for slow machines when building on Jenkins. (2809253) * Removed check for impossible error condition. (1b92b40) * Removed trace from test. (24c77d3) * Removed redundant capture from lambda. (d924701) * Cancellations and signals now working correctly. Still using overly complex rate limiter. (946c965) 2015-11-25 Michi Henning * Make sure we always emit a signal, even when a request is destroyed prematurely. Still a problem with bulk cancellation test, which fails intermittently. (501b721) * Refactored client-side trace. (8ab5f38) * Removed sent_ member from RequestImpl. Instead, the ratelimiter cancel function returns whether the request was actually cancelled. That's cleaner than tracking that state from outside. (f9289e2) 2015-11-24 Michi Henning * Removed check for impossible error condition. (39af7dd) * Bring coverage for Image class back up to 100%. (cb3e4f5) * Stopped bogus cancellation messages when client-trace is turned on. (768a204) * Fixed cancel client-trace noise in log. (c1594e0) 2015-11-19 Michi Henning * Added devscripts to build dependencies. (27fd80b) 2015-11-13 Michi Henning * Fixed incorrect scaling of thumbnails with dimensions (w,0) or (0,h). Fixes: https://bugs.launchpad.net/bugs/1515848. (989d2d9) * Added work-around for broken licensecheck on xenial. (9f4262b) * Reworded a bit of doc for clarity. (490bbab) * Fixed doc to match actual behavior and added a few more tests. (9dddd55) * Noticed that a bunch of copyright headers taken from elsewhere and fixed those. (83b88fd) * Fixed stale comment. (0c888c0) * Added devscripts to build dependencies. Needed by copyright test, which uses license-check. (08e43d1) 2015-11-10 Michi Henning * Updated changelog. (d4ada95) * Merged devel. (d9daf61) * Minor test improvements. (0bb1d21) * Use an advisory lock to prevent shutdown/start-up race between service instances. Disconnect from DBus at the earliest possible moment so new requests will be redirected to a new instance. Fixes: https://bugs.launchpad.net/bugs/1511553. (8ef52ea) * Fixed crash that would trigger if we call shutdown() on the admin interface while there were still requests in the thread pools. Fixes: https://bugs.launchpad.net/bugs/1511553. (a9708a4) 2015-11-09 Michi Henning * Minor coverage improvement for vs-thumb, plus better error message. (ef4f5d8) * Merged dependent branch. (b926bf6) * Stripped atomic_load for request pointer. Not needed anyway because the destructor waits for the pooled jobs to complete. (1799bf2) * Simplified code a little. (fad5129) * Merged dependent branch. (93f3947) * Fixed bug in image.cpp that could cause a scaled dimension to become zero, causing an error in the scaler. (72d6c6a) 2015-11-06 Michi Henning * Suppressed compile warning in test. (dc65bef) * Use an advisory lock to prevent shutdown/start-up race between service instances. Disconnect from DBus at the earliest possible moment so new requests will be redirected to a new instance. (61ab6ed) * Updated changelog. (b8b5471) * Stress testing early termination now. (f637b95) * Minor coverage improvement for vs-thumb, plus better error message. (16d1f6a) * Merged devel. (873ed15) * debian/rules now ignores failing tests on PPC. (daa9df9) * Re-enabled remaining stress tests. (852cb54) * Fixed idiotic editing mistake in dbusinterface.h. (8c7da6c) 2015-11-05 Michi Henning * Merged parent. (547ff1f) * Temporary check-in for James. (28b24a8) * shared_ptr for inactivity handler. Still getting a crash if thumbnailer is not kept alive in main. (63a6dee) 2015-11-04 Michi Henning * Added invalid size error on service side. (26aceca) * Stage 1 of making invalid QSize a hard error. Changed in libthumbnailer, removed warning from QML side (now emitted as error by Qt lib). Fixed many EXPECT macros in the test that were the wrong way around. (4b1717b) * Updated changelog. (4220008) 2015-11-03 Michi Henning * Removed individual exclusions for tests for PPC now that we are ignoring test failures for PPC globally. (3fb1488) * Merged devel. (c07fda4) * Back-merge of 2.3+15.10.20150915.1-0ubuntu2 from trunk. (f08ad69) * Merged devel. (61adb2c) * Fixed incorrect variable setting. (4556c19) * Fixed comment. (ca0b40e) * Change debian/rules to ignore failing PPC tests. (c60b557) * Clearing all caches now also resets the network retry timeout. (b793294) * Disabled test for PPC entirely. (6fc0e24) * Clearing all caches now also resets the network retry timeout. (532b3df) * CI Train Bot 2015-11-02 Releasing 2.3+16.04.20151102.2-0ubuntu1 (3976470) * Back-merge of 2.3+15.10.20150915.1-0ubuntu2 from trunk. (7c27b07) 2015-11-02 CI Train Bot * Releasing 2.3+16.04.20151102.2-0ubuntu1 (c407e64) 2015-11-02 Michi Henning * [ Michi Henning ] * "thumbnailer-admin clear f" now also resets the network retry timeout. * API documentation and man page improvements. * Requests made via the Qt and QML APIs are correctly rate-limited now. * Service log now shows statistics on start-up. * Resetting the stats now also resets the network failure retry timout. * Fix for cover art extraction if only a preview cover image is available. (d49827a) * Fix for broken MP4 decoder on PPC. (faa10e5) * Merged devel. (ac66e34) * Changed vs-thumb to complain about missing .tiff extension instead of appending it silently. (1babafe) * Fixed merge conflict. (5eb699f) * Michi Henning 2015-11-02 [merge] Fixed broken request cancellation. Improved test coverage. Fixes: https://bugs.... Michi Henning 2015-10-30 [merge] Relaxed a few valgrind suppression for gcc5 ABI. Michi Henning 2015-10-30 Relaxed a few valgrind suppression for gcc5 ABI. Michi Henning 2015-10-30 [merge] Two trivial new valgrind suppressions. Fixes: https://bugs.launchpad.net/bu... Michi Henning 2015-10-30 Two new valgrind suppressions for unitialized values. (0f4822e) * Fixed broken request cancellation. Improved test coverage. Fixes: https://bugs.launchpad.net/bugs/1501349. (d568f1c) * Michi Henning 2015-11-02 Changed no-extension test to use a real file instead of a symbolic link, otherwise we pick (83b3f97) * Changed no-extension test to use a real file instead of a symbolic link, otherwise we pick up the thumbnail from the previously-cached version. This ensures that we correctly test content type determination for non-empty files without a file extensions. Fixed incorrect coverage suppression for glib >2.21. (0b7a8f5) 2015-10-30 Michi Henning * Relaxed a few valgrind suppression for gcc5 ABI. Added new suppressions for Wily. Fixed incorrect test names in CtestCustom.cmake.in. Fixes: https://bugs.launchpad.net/bugs/1476506. (e5a1658) * Relaxed a few valgrind suppression for gcc5 ABI. Added new suppressions for Wily. Fixed incorrect test names in CtestCustom.cmake.in. (486050c) * Two trivial new valgrind suppressions. Fixes: https://bugs.launchpad.net/bugs/1476506. (4afaa77) * Two new valgrind suppressions for unitialized values. (7bd76a3) 2015-10-29 Michi Henning * Better changelog message. (4943e38) * vs-thumb now errors for missing .tiff extension instead of silently appending it. (a2fe5d6) * Videos with embedded artwork now display the artwork thumbnail instead of an extracted still frame. (2826c29) 2015-10-28 Michi Henning * Updated changelog. (58af9d4) * Updated changelog. (42cb44e) * Michi Henning 2015-10-28 Stripped debug trace. (c17c94d) * Stripped debug trace. (d175869) * Michi Henning 2015-10-28 Yet more trace. (7788c47) * Yet more trace. (fffacb8) * Michi Henning 2015-10-28 More detailed client-side trace. Michi Henning 2015-10-28 Trace for clearing and compacting. Michi Henning 2015-10-28 Suppressed quotation marks in trace. (5f03021) * More detailed client-side trace. (9d4c39e) * Trace for clearing and compacting. (002b2e1) * Suppressed quotation marks in trace. (2586508) * More trace for performance verification. (c9e2256) * Added rate limiter trace. (b96ec7b) * Configurable client-side tracing. (83c117a) 2015-10-27 Michi Henning * Merged request-cancellation. (51587cc) * Removed trace. (8d9f264) * Merged request-cancellation branch. (2d65146) * Coverage improvements. (d36fdd7) * Merged devel. (634f498) * Merged request-cancellation branch. (7747a0b) * Adjusted tests, minor clean-up. (11ee8fb) 2015-10-26 Michi Henning * Stripped some trace. (fa5d505) * pending merges: Michi Henning 2015-10-26 More trace on rate limiter. (914593d) * More trace on rate limiter. (0c65129) 2015-10-23 Michi Henning * Partially refactored vs-thumb. Better performance, tracing, and error messages. (5307732) * Test improvements. Should be pumping limiter correctly now. (b05775f) * Test improvements. Should be pumping limiter correctly now. (636ad64) * Merged request-cancellation branch. (6ec649f) * Added missing call to limiter_->done(). (d55ae6a) * Cancel goes through finishWithError() path again. (ce9367f) * Merged parent. (46005cd) * Merge from request-cancellation branch. (80c3c7c) * Merged parent. (6500861) * Enabled EMIT again. (18d9df4) * Enabled EMIT again. (00320e9) 2015-10-22 Michi Henning * Fixed typo. (dee1f30) * Suppress bogus error message after cancellation on QML side. (7433d4d) * Syncing with request-cancellation branch. (e1524bb) * Changes from silo branch. (7e4133c) * Fixed typo. (202e74b) * Trying with disabled EMIT after cancel(). (8283f74) * Disabled EMIT on QML side for cancelled request. (9f76db8) * Disabled Q_EMIT after cancel. (50a3db3) * Suppress bogus D-Bus error message from QML plugin after request was cancelled. (c492dd5) * Merged request-cancellation branch. (b13f0af) * Minor re-arrangement for clarity. More trace. Still not clear why the finished callback pops after cancel(). (4e9f77e) * Minor fixes. (9b4e58c) * Don't call finishWithError() after cancel(). (4b16dc7) * Don't call finishWithError() after cancel(). (de67b29) * Re-merged request-cancellation branch. (17d1ba9) * Review comments from James. Added trace for testing. (eae85b4) * Addressed review comments from James. (1a5f152) 2015-10-21 Michi Henning * Added cancellation trace. (b793705) * Better bug reference in changelog. (46dc6ed) * Merged request cancellation branch. (bfba37d) * Merged devel (fix for incorrect reported hit rate). (efb32af) * Fixed test that broke due to change in behavior in glib 2.22. (ff4dadc) 2015-10-20 Michi Henning * Added missing entry to symbols file. (d3fd192) * Removed trace and added more tests. (2c8e33b) * Fixed broken cancel logic. (beecd90) 2015-10-15 Michi Henning * Fixed incorrect hit rate reported on service start-up. Fixes: https://bugs.launchpad.net/bugs/1506304. (28aaf50) * Fixed incorrect hit rate. (dc84370) * Fixed typo. (09fc18e) * Disabled MP4 tests on PPC. (3cfa064) * Fixed comment. (03859df) * __PPC__, not __ppc__ :-( (0f41c11) * Limiting concurrent extractions to 1 on PPC. (8d04f1e) 2015-10-14 Michi Henning * Added missing whitespace. (3edcfa9) * Merged devel and updated changelog in for landing. (63ef6d5) * Moved rate limiter from QML to Qt side. Fixed bug in libthumbnailer-qt that caused the state of completed request to not be released. Changed stress test to test the rate limiting via Qt. (3a219a0) * Review comments from James. (6fc0c4e) * Added missing file. (9691a2a) * Better diagnostics. Better coverage. (62658b6) 2015-10-13 Michi Henning * More thorough rotation tests. (d5aaec9) * Added writing to stdout. (4f13531) * Append .tiff to output file if not present already. (f6587e3) * Added URI to trace messages. (5ef5ba5) 2015-10-12 Michi Henning * Better error reporting that includes the URI. (087c35d) * Refactored find_audio_cover() to be a free function. (4dd1c9a) * Minor clean-up. (1cc200a) * More refactoring. (24c67d0) * Starting refactor of vs-thumb. (68d0302) 2015-09-30 Michi Henning * Removed redundant #include. (81479c7) * Merged devel and resolved conflicts. (8e5c965) * vs-thumb now looks for both image and preview image tags to extract artwork. (b0c3ed0) 2015-09-30 Albert Astals Cid * Fixes suggested by clazy (e446c93) 2015-09-29 Albert Astals Cid * Fixes suggested by clazy (a8f8cbe) 2015-09-29 Michi Henning * Minor fixes to man pages. (d1e52f3) 2015-09-25 Michi Henning * Minor style fix. (f52b2e2) 2015-09-25 Michael Sheldon * Fall back to full content type detector if the fast detector fails to return anything useful (e.g. because a file doesn't have an extension). Fixes: https://bugs.launchpad.net/bugs/1499341. (71b3ecd) 2015-09-25 Michi Henning * Minor coding style fix. (3cfe724) 2015-09-24 Michael Sheldon * Fall back to full content type detector if the fast detector fails to return anything useful (e.g. because a file doesn't have an extension) (03c899d) 2015-09-23 Michi Henning * thumbnailer-admin now resets the network retry timeout when the failure cache is cleared. Service prints some basic stats on start-up, which is useful when diagnosing things from the log. Fixes: https://bugs.launchpad.net/bugs/1497648. (6a786cd) * Fixed another typo. (d9366b3) * Minor fixes to man pages. (952f60d) 2015-09-22 Michi Henning * Suppressed build warning when compiling with clang. (d4dd57d) * Added test for Chinese filename. (500e5b0) * Reduced max-backlog to 20, otherwise we blow the reply timeout on Arm for video thumbnails. (3a302f6) * Increased wait time for tests on Arm. (40d9e9e) * Disabled stress test for now, so I can get packages for local testing. (4f7d688) * Dropping backlog to 60 to see whether that fixes test failure on Arm. (ccea18e) * Removed outdated gsettings item. Updated doc for missing gsettings item. (5ea667c) 2015-09-21 Michi Henning * Added suppression directive for coverage. (ae6085b) * Lengthened wait time for stress test for running on Jenkins. (2386f46) * Minor doc fix. (6934423) * Fixed bug in libthumbnailer-qt: watchers were never reset and we were hanging onto the state for each request until the request instance was destroyed. (1f4fdd4) * Merged devel. (137d157) * Stress test still failing. (1faa9da) * Fixed whitespace test failure. (205a31a) * More detailed stats on start-up. (654d557) 2015-09-20 Michi Henning * Minor comment improvement. (34a395e) * Fixed stale comment in changelog. (904640f) * Merged devel. (1143eef) * Merged devel. (11488af) * Merged devel and resolved conflict. (6efcde6) * Back-merge of 2.3+15.10.20150915.1-0ubuntu1 from trunk at r127. (5646a6a) * "thumbnailer-admin clear f" now also resets the network retry timeout. Add log entry with cache sizes on service start-up. (1d137b3) 2015-09-19 Michi Henning * Back-merge of 2.3+15.10.20150915.1-0ubuntu1 from trunk at r127. (74f8e33) 2015-09-18 Michi Henning * Started working on new stress test. (28246c8) * Added missing gstreamer initialization to stress test. (ddcf485) * Added gstreamer1.0-libav for H.264 decoding tests. (0cc828e) * Fixed gstreamer critical error caused by gst_sample_get_info() returning nullptr for AAC audio file. (9c49970) * QML test now passes. (7bb8154) 2015-09-17 Michi Henning * Stripped rate limiter from QML side. Not completely working just yet. (e94de7e) * Added rate limiter to Qt lib. (ec02d74) * Fixed warning when building with clang. (8554219) 2015-09-16 Michi Henning * Added fix from James for incorrect cover image type recognition. (cc237e9) * Suppressed build warning from gstcompat.h. (0dfe5e0) * Added mp3 test and added fluendo plugin to build deps. (563646a) * Merged devel. (a75d152) * Added gstreamer1.0-plugins-bad-faad to build deps, so Jenkins will test extraction from AAC audio files. (7c29f3e) 2015-09-16 James Henstridge * Add some sample files in MP3 and M4A format with cover art. (6a9abf7) 2015-09-16 Michi Henning * Added test for m4a extraction. (7cba859) 2015-09-16 James Henstridge * Add copyright header. (caa1c45) * Add a script to add cover art to songs in various formats, along with sample files in MP3 and M4A format. (98d23e5) 2015-09-16 Michi Henning * Moved error logging in common_fetch() past the "not found" and "network down" conditions, because these are expected errors and are indicated already in the trace. Used qCritical() instead of qDebug() to report unexpected errors. (c70fa13) * Fixed cover art extraction to also look for preview images: (3d82f95) * Merged devel and resolved conflict. (85907f8) * Suppressed build warning from gstcompat.h. (4e28880) 2015-09-15 CI Train Bot * Releasing 2.3+15.10.20150915.1-0ubuntu1 (1989eae) 2015-09-15 Michi Henning * Landing changes on devel to trunk. Approved by: James Henstridge (4bb49fa) * Merged devel. (a35e3ff) 2015-09-15 James Henstridge * Add a test that handles the case when we can't connect to the online art service, and actually log errors from the art downloader. (e90415f) * Mark connection refused as a network error. (634d3ea) * Add a test to simulate network errors. (b3fa06e) * Add support for blocking access to the art server. (6208820) 2015-09-15 Michi Henning * [ Michi Henning ]; Added man pages for thumbnailer-admin, thumbnailer-service, thumbnailer-settings, and vs-thumb. * Removed a bunch of lintian warnings and errors. Removed source for persistent cache.; Added inactivity timeout to admin interface, so the service exits after 30 seconds if it is started only to, for example, retrieve the stats. Activity on the admin interface now keeps the service alive the same way activity on the thumbnailer interface does.; Added average hit and miss run length to stats returned by thumbnailer-admin. Changed semantics for requests with (0,0) size. All requests are now clamped to a 1920x1920 bounding box. Fixed incorrect timeout semantics for unexpected network errors. [ James Henstridge ]; Renamed QML package to qml-module-XXX format and add transitional package. (LP: #1342031); Port QML module to use libthumbnailer-qt. [ Xavi Garcia ]; Add new libthumbnailer-qt1.0 library, providing a C++ client API. [ Albert Astals Cid ]; In QML image provider, only create QQuickTextureFactory when needed, fixing a memory leak when requests are cancelled. (LP: #1484914) [ Michi Henning ]; Added request limiter on the qml side, so we don't overrun DBus with too many outstanding requests. (DBus kills the connection if there are more than 400 or so outstanding requests.) (4be17fa) 2015-09-15 James Henstridge * Rename the QML module binary package to qml-module-xxx. Fixes: https://bugs.launchpad.net/bugs/1342031. (05c926d) * Merge from devel. (49b8678) 2015-09-15 Michi Henning * Updated changelog. (de09ce6) * Added preview tag to tags search when looking for embedded artwork. (a01dc1f) 2015-09-15 James Henstridge * Add some missing change log entries. (44cfb26) * Add breaks/replaces for new qml-module package. (3293663) 2015-09-15 Michi Henning * Added inactivity timeout to admin interface, so the service exits after 30 seconds if it is started only to, for example, retrieve the stats, and activity on the admin interface keeps the service alive the same way activity on the thumbnailer interface does. (4c18af1) 2015-09-15 James Henstridge * Renamed QML package to qml-module-XXX format and add transitional package. (LP: #1342031) (1a6064e) 2015-09-15 Michi Henning * Fix noise about policy 28 from cmake when building on Vivid. (f8afdb2) * Removed unused code I left behind by mistake when resolving a merge conflict. Fixed incorrect warning suppression for gtest. (c6adccd) 2015-09-15 James Henstridge * In the QML plugin, use the shared connection to the session bus and use a single RateLimiter instance. (b3cf74b) * Revert back to the version of vs-thumb in the previous version of thumbnailer released to the archive. (0885131) 2015-09-15 Michi Henning * Removed unused code I left behind by mistake when resolving a merge conflict. Fixed incorrect warning suppression for gtest. (280b029) * Fix noise about policy 28 from cmake when building on Vivid. (69e9866) * Merged devel and resolved conflict. (909db8e) * Re-factored inactivity handler to use a counter. (edb6a47) 2015-09-14 James Henstridge * Use a single instances of Thumbnailer and RateLimiter shared between the three ImageProvider classes. (0af357e) * Fix copyright header. (9f60299) 2015-09-11 James Henstridge * Port test-seq to old ThumbnailExtractor code. (eaf9f86) 2015-09-11 Michi Henning * Added recovery logic such that, if any operation on a persistent cache reports db corruption, we wipe the cache and retry the operation. (74a44f2) 2015-09-10 Michi Henning * Fixed typo in comment. (5c0bfe1) * Merged devel and resolved conflicts. Re-ordered tests into a more useful order (least important and slowest tests last). (398e579) * Got rid of build noise from gtest/gmock. (b8e0557) * Using cmake-extras now to build gtest and gmock. (920e63a) 2015-09-10 James Henstridge * Revert vs-thumb changes from r257. (e5b8f6a) 2015-09-10 Michi Henning * We now handle unexpected network errors correctly, re-trying only after the wait time has expired. Added logging for requests with invalid size to the service-side log, so we don't have look through all the application logs to spot when this happens. The invalid requests are still logged in the application log, but are now adjusted by the service. Added correct error handling when we can't construct an ImageData instance and get an exception. This now correctly creates a failure cache entry. Fixed incorrect handling of requests for larger than the 1920-pixel limit. (The implementation incorrectly relied on invalidly-sized requests.) Disabled failure caching for failures from vs-thumb. If vs-thumb fails, it may work again next time. But, if we cache the failure, it won't manage to create a thumbnail again for the same image until the failure falls out of the cache (which is likely never). Added missing test fixture to slow-vs-thumb test, so the result doesn't depend on the actions of earlier tests or what's in the default cache location. Fixed tests to no longer use invalid QSizes. Changed (0,0) size semantics to limit returned image to 1920 bounding box. (80b36d6) * Fixed typo in doc. (46fc412) * Updated changelog. (1caf5cb) * Updated doc for new (0,0) semantics. (a55834d) * Merged devel. (e0e3cb3) * Removed special-casing for QSize(0,0). We now unconditionally limit returned image size to 1920x1920. (a161ecc) 2015-09-09 Michi Henning * Added average hit and miss run length to stats returned by thumbnailer-admin. (9fa7da9) * Code examples from doc are now compiled and tested. Doc includes the real source code as snippets, so the example code in the doc is guaranteed correct. Re-worked the example to discourage use of a separate Thumbnailer instance (and separate DBus connection) for each request. (b7bdc07) * Enforce 1920 limit. (a5b2bc0) * Merged devel. (a0aca92) 2015-09-08 Michi Henning * Added suppressions for a large number of warnings caused by Qt5 when compiling with clang. Removed left-behind unused directory. In turn, that triggered some other failures (stand-alone header tests were failing). Also fixed up doc generation to actually use the doxygen file we provided. (The one in /usr/share/cmake doesn't allow us to turn off graph generation.). (047dbc9) 2015-09-09 Michi Henning * Merged devel and resolved conflicts. Fixed broken Qt library header test. (d3c9f86) 2015-09-01 James Henstridge * Port the QML plugin to use libthumbnailer-qt instead of using direct D-Bus calls. As a result, qtdeclarative5-ubuntu-thumbnailer0.1 now depends on libthumbnailer-qt1.0. (2b5c81a) 2015-09-01 Michi Henning * 100% coverage for recovery without any suppressions. (99b4218) 2015-08-31 James Henstridge * Don't link artgeneratorcommon into the QML plugin: that code is now in libthumbnailer-qt only. (7a908fe) * Make qtdeclarative5-ubuntu-thumbnailer0.1 depend on libthumbnailer-qt1.0. (103e0eb) * Sort and uniq symbols file, and add cancel() symbol. (64ada71) * Add cancellation support to libthumbnailer-qt. (c3e6e93) 2015-08-31 Michi Henning * Full coverage for recovery logic. (2046113) 2015-08-31 James Henstridge * Convert to use libthumbnailer-qt. (0dd0004) 2015-08-29 Michi Henning * Minor comment fixes. (87a223b) * Made helper class a template so we can use dependency injection for mock testing. (91f8751) * Simplifications and more robust recovery. (c52a05c) 2015-08-28 Michi Henning * Moved call() template to source file. (c0ee2a0) * Added typedef for UPtr. Removed temporary hack in thumbnailer test. (37952b2) * Comment fixes. (c8de0b5) * Re-factored re-try into a template member function. (4435bf8) * Fixed incorrect rethrow. (035cdfd) * Started on wrapper for persistent caches so we can do recovery if the DB gets corrupted. (17e5fee) * Added inactivity timeout to admin interface, so the service exits after 30 seconds if it is started only to, for example, retrieve the stats, and activity on the admin interface keeps the service alive the same way activity on the thumbnailer interface does. (e930e3b) * Missed one more format change. (eba1e91) * Better layout for printf statements. (cf29e3a) * Added average hit and miss run length to stats returned by thumbnailer-admin. (a394653) * Added avg hit and miss run length to stats. (0ae7fa6) 2015-08-25 Michi Henning * Removed source for persistent cache. Fixed valgrind suppression entry. (bdc9a72) * Review comments from James. (c4b8387) 2015-08-24 Michi Henning * Fixed incorrect remarks about separate DBus connection. (4b1524b) * Fixed broken coverage build. (7eefeb2) * More doc improvements. Clean up example to not encourage use of a separate Thumbnailer instance (and separate DBus connection) for each request. Integrated example code into doc, so it's guaranteed to not go out of sync. (13f5589) * Added missing copyright message. Fixed broken header test. (40e3556) * Merged prereq branch. (fe6dea7) 2015-08-22 Michi Henning * Don't rely on installed service for test. (f588dc0) * Merged parent. (c34f605) 2015-08-21 James Henstridge * Compile using -fvisibility=hidden to reduce code size. (dd6db3c) * Revert removal of linker version script (b233fa7) * Use -fvisibility=hidden compiler flag: this results in roughly a 16% code size reduction for the thumbnailer-service. (6acb4fc) 2015-08-21 Michi Henning * Turned code example from doc into a real example that is compiled and tested, so we can be sure that the doc is actually correct. (22862e7) * Backed out -Wabi-tag. (b09b517) * Fixed attribute syntax. (d9ddf83) * Fixed incorrect qt header location in header test. (da3f263) * More trace for testing. (336eb31) * Merged devel and resolved conflicts. (a93eccd) * Tinkering with C++11 abi tag warnings. For testing on Jenkins for now... (5f92e69) * Removed source for persistent cache. Fixed valgrind suppression entry. (8c2a509) 2015-08-20 Michi Henning * Added request limiter on the qml side to prevent overrunning DBus with too many requests and losing the connection. (f3b9bc1) * Added man pages for thumbnailer-admin, thumbnailer-service, thumbnailer-settings, and vs-thumb. (8e83971) * Merged devel. (7a20623) * Suppressed one more clang warning. (fd0e2d9) * Merged devel. (648bbbc) 2015-08-20 CI Train Bot * Synchronise devel with trunk. (8fb5f53) 2015-08-20 James Henstridge * Remove date portion of unreleased changelog message. (74e3b4a) * Merge lp:thumbnailer r125. (ba06d17) 2015-08-20 Michi Henning * Removed a bunch of lintian warnings and errors. (acd3e58) * Merged devel and resolved conflicts. (f19977a) * Fix broken running count in rate limiter. (da9c4e5) * Review comments from James, thanks! (8dd2935) * Merged devel and resolved conflict. (05f288a) * Merged devel and resolved conflict. (ec7f613) * Updated changelog. (5827d75) * Removed vs-thumb man page. (7202266) 2015-08-19 James Henstridge * Convert the ThumbnailExtractor class to run the extraction within the event loop. Fixes: https://bugs.launchpad.net/bugs/1425009. (a673bc6) * gst_bus_remove_watch() doesn't exist in GStreamer 1.4, so use g_source_remove instead. (91d87f5) 2015-08-18 Xavi Garcia * Moved public headers of libthumbnailer in the source tree to match the namespace and installation path. (6a5d605) 2015-08-18 Michi Henning * Did a copy edit of the documentation. Fixed minor issues with lintian and changed doc generation to use the cmake-extras module. (7f0ef80) 2015-08-18 James Henstridge * Fix test for error message on empty files. (f1c3a71) 2015-08-17 Albert Astals Cid * Only create the QQuickTextureFactory when needed (894c378) * compile++ (2a56856) 2015-08-17 James Henstridge * Bail out on errors from any element rather than just the playbin. (ff17bfc) 2015-08-15 James Henstridge * Don't bother moving sample in call to save_screenshot(). (d84eec1) * Move pixbuf saving out of ThumbnailExtractor and into the callback. (6a458c0) 2015-08-14 James Henstridge * Make methods private. (adf733d) * Update test suite to pass with new thumbnailer code. (2e80c71) 2015-08-14 Albert Astals Cid * Only create the QQuickTextureFactory when needed (0ea02e3) 2015-08-14 Michi Henning * Added -Wabi-tag for gcc. Added suppressions for a large number of warnings caused by Qt5 when compiling with clang. (994a316) * We now handle unexpected network errors correctly, re-trying only after the wait time has expired. Added logging for requests with invalid size to the service-side log, so we don't have look through all the application logs to spot when this happens. The invalid requests are still logged in the application log, but are now adjusted by the service. Added correct error handling when we can't construct an ImageData instance and get an exception. This now correctly creates a failure cache entry. Fixed incorrect handling of requests for larger than the 1920-pixel limit. (The implementation incorrectly relied on invalidly-sized requests.) Disabled failure caching for failures from vs-thumb. If vs-thumb fails, it may work again next time. But, if cache the failure, it won't manage to create a thumbnail again for the same image until the failure falls out of the cache (which is likely never). Added missing test fixture to slow-vs-thumb test, so the result doesn't depend on the actions of earlier tests or what's in the default cache location. Fixed tests to no longer use invalid QSizes. (2ab5c2f) 2015-08-13 James Henstridge * Convert ThumbnailExtractor class over to using asynchronous GStreamer API. (1e528b3) 2015-08-11 Michi Henning * Fixed typo in doc comment. (2b2f84b) 2015-08-11 Xavi Garcia * Merged with doc changes (deb3770) * Moved public headers to follow the namespace structure (1baceb7) 2015-08-11 Michi Henning * More trivial doc fixes. (86eec77) * Added missing install target. (01fa173) * Use doxygen target in cmake-extras. (308b853) * Suppressed lintian warning for jquery.js. (e529710) * Did a copy edit on the library doc. Removed graphviz from build deps and disabled inheritance graph generation for doc. (8404398) 2015-08-10 Xavi Garcia * Thumbnailer API library documentation. (d0ac495) * Adds the thumbnailer API library code and unit tests. (7045bf8) * Merged with pre-requisite branch, fixed conflict (0180009) 2015-08-07 Xavi Garcia Mena * This branch moves a class that will be used in the new library API for the thumbnailer to a common directory and renames the target name of the static library previously called thumbnailer to thumbnailer-static. (a85d1f6) 2015-08-06 Xavi Garcia * Added graphviz as build dependency (3b01db8) * Added doxygen as build dependency (73572ea) * Documentation updated. Code branch merged (1362066) 2015-08-06 Michi Henning * Added comment for dh_override in debian/rules. (279c5b7) * Removed a bunch of lintian warnings and errors. (e42dfe2) * Oops, need to leave the ubuntu version in place, otherwise lintian complains. (1941a20) * Updated changelog. (24dc606) * Added man pages. (46f3bf7) 2015-08-05 Xavi Garcia * Updated implementation. Adding back the constructor with the QDBusConnection (61566e0) * Changed include installation path to thumbnailer-1.0/unity/thumbnailer/qt (8532786) 2015-08-04 Xavi Garcia * Erased 3 symbols in the symbols file after making the Thumbnailer class final (3f0a48f) * Changed location of includes, code changes following suggestions (0462dcb) 2015-08-03 Michi Henning * Oops, don't want ubuntu version. (691bdd4) * Updated changelog. (86a3fa1) * Removed now-unused constructor. Added missing cancel_func_ initialization. (83aba14) * Merged parent. (fb0e179) * Added Qt5::Test to vs-thumb_test so cmake stops complaining. (c9b099c) * Merged stress test branch. (a1ff5ca) * Fixed rate limiter. cancel() in the destructor currently commented out until I figure out whe the qml test hangs. (38d5e72) 2015-08-01 CI Train Bot * Releasing 2.2+15.10.20150801-0ubuntu1 (1ad8eb8) * Merge lp:thumbnailer/devel r250 to trunk. Approved by: PS Jenkins bot, Michi Henning (ac7eb8e) 2015-07-31 Xavi Garcia * Added clean-public-headers test (6ea77f7) * Added stand-alone test for libthumbnailer-qt (524ca74) * Fixed coverage target names (f60061a) * changed package names from libthumbnailer1.0 to libthumbnailer-qt1.0 (1bad581) * Moved files and directories from libthumbnailer to libthumbnailer-qt, updated namespace to include qt (3c765c0) * Updated soname for libthumbnailer (603f132) * Changed test constructor to have 100% test coverage (734c80c) * Adding new lines at the end of files (0054f81) * Removed thumbnailer.pc.in file (df19ac9) * File thumbnailer.cpp in the thumbnailer API moved to libthumbnailer.cpp (c49916c) * Workaround to the cmake-extras issue (8a9f588) 2015-07-31 James Henstridge * Add Debian changelog entries for changes from devel. (a90d4f5) 2015-07-31 Michi Henning * Merged devel and resolved conflicts. (30b6749) * Moved supports_decoder() in testutils, so it's usable in both vs-thumb and stress tests. (6b4bea4) * Merged devel and resolved conflicts. (2594772) * Reverted back to r231. Messed up my branches :-( (c29a4ba) * Added cancel() call to image response destructor, so we don't end up dereferencing a dangling this pointer if the image response is destroyed before the request was scheduled. (70c681a) * Minor change to get command syntax to make it consistent (underscore vs hyphen). Also renamed clear-stats to zero-stats. (45a3f8b) * Fixed compile error caused by new version of /usr/include/sys/apparmor.h. (3904d5d) * Oops, got it wrong the first time. (11050dc) * Fixed compile error caused by new version of /usr/include/sys/apparmor.h (f8d91c0) * Changed zero-stats description to match command. (c271911) * Merged devel. (97d757a) 2015-07-30 Xavi Garcia * Modified library package name, removed .pc file (8989265) 2015-07-30 Michi Henning * More valgrind suppressions for errors we can't do anything about. Fixes: https://bugs.launchpad.net/bugs/1476506. (01b818a) 2015-07-30 Xavi Garcia * Documentation updated to reflect the changes in the API method names (c3029b3) * Changed methods name to follow Qt naming conventions (8934fa0) 2015-07-30 Michi Henning * Sync devel with trunk. (d0f651d) 2015-07-30 James Henstridge * Empty commit to quiet errors about ghost revisions. (9523c99) 2015-07-30 Xavi Garcia * merged with devel (cb4bbd4) 2015-07-30 Michi Henning * More valgrind suppressions for errors we can't do anything about. (e226c96) * Merged devel. (de6d46b) * Fixed broken local install target. (ae61c53) 2015-07-30 James Henstridge * Change ImageExtractor to take a file name rather than file descriptor, and pass that to vs-thumb rather than using an fd://$N URI. (b3b0d0f) 2015-07-30 Michi Henning * Fixed broken local install target. (67aaed4) 2015-07-30 James Henstridge * Make ImageExtractor take a filename rather than a file descriptor. This means we are no longer using the GStreamer fdsrc element, which seems to be causing problems with GStreamer 1.5.2 on Wily. We already perform the access check separate from opening the file descriptor, so this shouldn't meaningfully change the security. (39fae0b) 2015-07-29 Xavi Garcia Mena * Addind libthumbnailer.map-g file (3c561e9) * Fixing coverage target (d5b3b46) * Adding libthumbnailer documentation (07de6ae) * Added libthumbnailer. This commit includes the code and unit tests (d2ff95a) * moved artgeneratorcommon to a common directory, thumbnailer static library target renamed to thumbnailer-static (546bbfa) 2015-07-23 Michi Henning * Minor doc fix. (5209935) * Fixed problem found with valgrind: after detecting a version mismatch, we had a path through the code that used an uninitialized value. (7313d80) 2015-07-22 Michi Henning * Fixes for the transition to gcc 5. A few tests no longer compiled with boost 1.58. The changes work with both gcc-4.9/boost-1.55 and gcc-5.0/boost-58. Fixes: https://bugs.launchpad.net/bugs/1476738. (f7f4a20) * Fixes for changes in boost 1.58 (required by gcc 5 transition). (1dc9939) 2015-07-21 Michi Henning * Fixed problem found with valgrind: after detecting a version mismatch, we had a path through the code that used an uninitialized value. (254f915) 2015-07-17 James Henstridge * Remove the thumbnailer-common binary package: * Move the apport blacklist file to thumbnailer-service (only listing current architecture now, since it is arch specific). * Remove the fallback images entirely, since they are no longer used. (f58fef2) * Remove the default image override code from tests. (87d1bc4) * Remove fallback images. (7e5bc6e) 2015-07-17 Michi Henning * Renamed thumbnailer-admin command "clear-stats" to "zero-stats", to avoid a hasty typist accidentally wiping the cache instead of resetting the stats. (05b1f84) * Fixed typo. (33d02f2) 2015-07-16 James Henstridge * Fix up tests for removal of fallback art. (b3184a0) * Merge from devel (4e0c66a) 2015-07-15 CI Train Bot * Releasing 2.1+15.10.20150715-0ubuntu1 (3f137c2) 2015-07-15 James Henstridge * Merge lp:thumbnailer/devel r240 into trunk. Approved by: PS Jenkins bot, Michi Henning (9605c6e) 2015-07-14 James Henstridge * Merge lp:thumbnailer/devel r241 (01c3fd2) 2015-07-10 James Henstridge * If applications do not specify a size for their thumbnails, return a 128x128 thumbnail. This is what the old thumbnailer did by accident. (1c8bbfe) 2015-07-08 James Henstridge * Pass correct size to ThumbnailerImageResponse. (3fc6e97) * Also limit size of album/artist art. (385352a) 2015-07-03 James Henstridge * Bump down to 128x128, which is what the old thumbnailer was providing by accident. (555e825) 2015-07-03 Michi Henning * Removed Schwartz counter from trace message handler. (35b42e9) 2015-07-03 James Henstridge * Try limiting size of unsized photo thumbnails to see if it fixes gallery-app stress test. (deffcea) 2015-07-03 Michi Henning * Added rate limiter. (No coverage for cancel functionality yet.) (cce1043) 2015-07-02 James Henstridge * Merge lp:thumbnailer/devel r240 (ca344bf) 2015-07-02 Michi Henning * Added work-around for QNetworkAcessManager problems when device is in flight mode. Fixes: https://bugs.launchpad.net/bugs/1470284. (a9c91c5) * Fixed memory management problem. (d602ff5) * Minor change to get command syntax to make it consistent with clear-stats. (c7662c5) * Added coverage exclusions for flight mode hack. (dd33689) * Using return value from getaddrinfo() now to determine whether network is down. (7157855) 2015-07-01 Michi Henning * Don't try to connect and rely on getaddrinfo(). (0c465eb) * Added some more trace. (fab9f8b) * Added work-around for QNetworkAcessManager problems when device is in flight mode. (374b4c3) 2015-06-29 James Henstridge * Include the ID in the errors from album/artist art generators. (e69dba1) * Simplify image response code a bit more. Still doesn't work right due to Qt bug: https://bugs.launchpad.net/ubuntu/+source/qtdeclarative-opensource-src/+bug/1469611 (c1d0ec1) 2015-06-29 Michi Henning * First steps towards a dbus request limiter. (f158a44) 2015-06-29 James Henstridge * Update "no fallback" code to work with QQuickAsyncImageResponse. (e9b1118) 2015-06-29 Michi Henning * Added simple stress test. MP3 and MP4 tests are currently disabled, until we can sort out what to with testing these on Jenkins without dragging unwanted codecs into the image. (f4f8b24) 2015-06-29 James Henstridge * Merge from devel (3515bd2) 2015-06-29 Michi Henning * Basic stress test. (57a59d3) 2015-06-27 Michi Henning * Minor doc fix. (fcdd1b9) 2015-06-26 Michi Henning * Added stress test for the various image types with realistic sizes. (c6b7631) * Added test stub. (ce3635a) 2015-06-25 James Henstridge * Merge from devel (88d3da8) 2015-06-25 Michi Henning * If max-extractions == 0: - if hardware == BQ, adjust to 1 - else if hardware == Arm, adjust to 2 - else leave at 0 If max-extractions != 0, use it as set. (0fd649c) * Oops, moved hw declaration out of disabled section. (edd8994) * Setting max-extractions to 1 on Arm now if configured value is 0, irrespective of any particular hardware. (acd4e75) 2015-06-24 Michi Henning * Fixed typo in error message. (e035ddb) * Fixed wrong pattern string. (7cc6383) * If max-extractions == 0: - if hardware == BQ, adjust to 1 - else if hardware == Arm, adjust to 1 - else leave at 0 If max-extractions != 0, use it as set. (1e7bdb4) 2015-06-23 James Henstridge * Update Debian changelog. (2322736) * Merge from devel (9213800) * Fix up the permission bit constants used in the aa_query_label permission check. (711fb9f) 2015-06-23 Michi Henning * Use EnableCoverageReport from cmake-extras. Fixed warning in clang build. (81aab34) * Emit warning for invalid QSize passed by QML, in preparation for turning this into an error. (Lazy applications end up hammering the cache with full-size thumbnails when passing an invalid QSize.). (914766e) * invalidate() now implicitly clears the ephemeral stats too. It doesn't make sense to keep them around after wiping the cache. (79b2753) 2015-06-23 James Henstridge * Set finish_time within the Handler::sendThumbnail and sendError methods so it is guaranteed to be set before the finished signal is emitted. Fixes: https://bugs.launchpad.net/bugs/1467751. (fee79e5) * Fix permission bit constants in AppArmor check code. (7d46405) * Merge from devel, fixing conflicts (0ffc5c3) 2015-06-23 Michi Henning * Set minimum version for cmake-extras. (43bc66d) * Picked some more low-hanging coverage fruit (mostly suppressions). Improved diagnostics in a few places and fixed a few incorrect error message. (587aee0) * Save vs-thumb output as TIFF instead of PNG. That's about 20% faster. (f28cf09) 2015-06-23 James Henstridge * Set finish_time within sendThumbnail and sendError. These are the only two code paths that emit the finished signal, and by updating the variable here we avoid missing it. (6f65284) 2015-06-23 Michi Henning * Removed no-longer-needed XEnableCoverageReport module. (a3fcd74) * Fix test: was checking non-ephemeral value. (a8a651d) * Clear ephemeral stats as part of invalidate(). (ae7328a) * Emit warning for invalid QSize passed by QML, in preparation for turning this into an error. (Lazy applications end up hammering the cache with full-size thumbnails when passing an invalid QSize.) (21e209d) * Save vs-thumb output as TIFF instead of PNG. That's about 20% faster. (e27bf54) * Use EnableCoverageReport from cmake-extras. Fixed warning in clang build. (cbf4680) 2015-06-22 Michi Henning * Picked some more low-hanging coverage fruit (mostly suppressions). Improved diagnostics in a few places and fixed a few incorrect error message. (a93632a) 2015-06-22 James Henstridge * Update debian changelog. (4a41897) * Merge from lp:thumbnailer/devel (135b0b2) 2015-06-22 Michi Henning * Improved coverage testing for vs-thumb. (ed2ea67) * Merged devel and resolved conflict. (8222291) * Added coverage exclusions to credentials cache. It doesn't look possible to cover the remaining code paths with reasonable effort. (ebb78e9) * Limit max-extractions to 2 on Arm. (9ef1fde) * vs-thumb now saves as png, to avoid artefacts due to applying jpg compression three times. Previously, we saved as jpg 75% in vs-thumb, then again at 90% for the full-size cache, and then a third time at 75% when creating the actual thumbnail. Now it's lossless -> 90% -> 75%, which should be OK (90% is nearly perfect). (1723e3d) * Avoid calling download() after we get a hit on the failure cache. This was needlessly slowing down retrieval of thumbnails when we definitely do not have any artwork. Improved diagnostics when something goes wrong with subprocess termination. Restored single-shot timer for handler and downloader. Removed incorrect Q_EMIT in timeout(). (3c71944) * vs-thumb now saves as png, to avoid artefacts due to applying jpg compression twice. (5b8a1d1) * Limit max-extractions to 2 on Arm. (7eccf15) * Fixed feedback from James. (6ba74a7) * Fixed link failure when building with coverage. (0aed0bd) * Added coverage exclusions to credentials cache. It doesn't look possible to cover the remaining code paths with reasonable effort. (591459b) * Follow Pete's advice and use explicit link directive for Qt5 libraries to get rid of "policy 28" warnings from cmake when building in release mode. (2248dac) 2015-06-22 Adam Conrad * Switch to unversioned Conflicts/Replaces on libthumbnailer0 to force removal of the obsolete package on upgrade from the previous version. (386e570) 2015-06-22 Michi Henning * Added crash test. (8c5ba5c) * Fixed exit bug in slow test. (ac20c9e) * Better coverage for vs-thumb. (fc23069) 2015-06-21 Michi Henning * Avoid calling download() after we get a hit on the failure cache. This was needlessly slowing down retrieval of thumbnails when we definitely do not have any artwork. Improved diagnostics when something goes wrong with subprocess termination. Restored single-shot timer for handler and downloader. (da2fe02) * Use explict link directive for Qt5 libraries to get rid of "policy 28" warnings from cmake when building in release mode. (9574ab0) 2015-06-19 Michi Henning * Added missing compact and shutdown commands to thumbnailer-admin. (1101d39) * Set default extraction concurrency to number of cores. (5482470) * Removed 100% quality setting when saving jpg. Using default 75% now, which is a lot smaller. Full-size cache contains high-quality images, so we don't accumulate scaling artefacts. Adjusted tests accordingly. (abeae07) * Merged devel and resolved conflict. (736b7b0) * Fixed incorrect license headers. (3784346) * Merged devel. (ee7313e) * Fixed stale comment for make_output_path(). (00f2f3c) * Made statistics persist across re-starts. Added dirty flag so we can tell if we didn't shut down cleanly. If so, the stats counters automatically reset to zero. For clean caches, we now avoid the scan over the Atime index on start-up. (11137d3) * A number of files had the wrong license header (LGPL instead of GPL). Also fixed style of license headers so they are consistent throughout. (5037254) 2015-06-18 James Henstridge * Move the AppArmor check earlier so it is not skipped for files already in the cache. Fixes: https://bugs.launchpad.net/bugs/1381713. (209ac82) * Fix stale comment, as per Michi's review. (5bfd4a4) * Rename ThumbnailRequest::set_client_credentials to check_client_credentials, and move the AppArmor check for LocalThumbnailRequest to that method. Previously we would provide cached thumbnails to clients without the permission check. (b34aae2) 2015-06-17 James Henstridge * Remove the filename_fd argument to the GetThumbnail() D-Bus method, instead using aa_query_label() to check whether the caller has access to the relevant file. Fixes: https://bugs.launchpad.net/bugs/1381713. (9f677e7) * Remove the extra nul byte at the end of the buffer passed to aa_query_label() -- this causes the check to fail for AppArmor labels other than "unconfined". (6975b49) * Add some more debug logging. (71bff7d) * Point the QML plugin at one of the real default images, rather than a JPEG with rotation data that is rendered differently by different Qt versions. (9864207) 2015-06-16 James Henstridge * Merge from devel, fixing conflicts. (3a6a9b7) * Re-enable the replace_video test, changing where we replace the image. (2baad6d) * Don't need to link QML plugin with safe_strerror. (7cf0f60) * Remove the file descriptor argument from the D-Bus method call. (9fb5a3c) * Remove the filename_fd parameter from Thumbnailer::get_thumbnail(), and update tests to accomodate. The two replace_{video,audio} tests are disabled, since we can no longer detect this race condition. (ab0765e) 2015-06-16 Michi Henning * Fixed stale comment for make_output_path(). (a875418) 2015-06-15 James Henstridge * Perform AppArmor security check in LocalThumbnail::fetch() method rather than constructor. This leaves some tests broken because we are no longer validating the file descriptor passed to the method. (fb7328c) * Pass the client credentials down to the ThumbnailRequest class. (c805c25) * Add utility function to check for AppArmor read access. (e8c34ad) 2015-06-15 Michi Henning * Added compact and shutdown command to thumbnailer-admin. (1ddaee1) * Made download/extract timeout configurable. (7bd013f) * More detailed trace. It now splits out time spent waiting in queue and actual extraction time, so we can see whether a request was slow because it was delayed in the queue, or because the extraction itself was slow. (f96c336) 2015-06-15 James Henstridge * Link libthumbnailer.a with libapparmor. (f1815ef) * If the subprocess is still running in the ImageExtractor destructor, try to kill it again, and log if waitForFinished() fails. (a588ed0) * In the ImageExtractor destructor, try to kill the process if it is still running, and log failures from waitForFinished(). (2d6e02d) * Track the credentials (user ID, AppArmor label) of clients connecting to the D-Bus service. This is not yet used to make security decisions. (4cdaf8f) * Fix up warning message, from Michi's review. (71784ea) * Make qml_test depend on thumbnailer-qml. (131de1b) 2015-06-14 Michi Henning * Added missing #include. (b3c1f33) * Adjustments to const-correctness and noexcept. Minor fix in PersonCache test. (86abd08) * Changed start-up logic to read dirty flag and initialize from saved stats if the cache clean. We now only run a scan over the Atime index only if the cache is dirty, meaning that start-up is much faster in the normal case. (b731d60) 2015-06-13 Michi Henning * A number of files had the wrong license header (LGPL instead of GPL). Also fixed style of license headers so they are consistent throughout. (d277415) * Slightly less sloppy test. (1cb6504) * Keep images in the full-size cache at reasonably high quality. Otherwise, we accumulate scaling artefacts. (8a85ed7) 2015-06-13 James Henstridge * A few style changes. (55aca31) 2015-06-12 James Henstridge * Update log message. (a4d8c07) * Limit the size of the credentials cache. (6bb5883) * Look up credentials as first part of request. (16a00d6) * Trim the mode from the AppArmor label, and pass the credentials cache down to the Handler. (7f714c7) 2015-06-12 Michi Henning * Loosened a test because jpg compression isn't the same on i386. (7546efe) * Removed 100% quality setting when saving jpg. Using default now, which a lot smaller. Adjusted tests accordingly. (7effe5c) 2015-06-12 James Henstridge * CredentialsCache doesn't need to be a QObject. (75692fb) * Add class to look up and cache D-Bus peer credentials. (4c4d796) * Compile stub to call the GetConnectionCredentials method. (6195e72) 2015-06-12 Michi Henning * Oops, leveldb wants a concrete range for disk estimate. (010fa7b) * Fixed comment. Changed disk estimate to include absolutely everything. (0bd7ffd) * Fixed clearing things after a version mismatch. (e362fdc) * Updated doc for persistent stats. (e87949d) * Merged devel and resolved conflict. (14c3510) * Remove coverage flags for core. (c3f7e28) * Set dirty flag in both constructors. Fix misleading exception text. (b6f5a46) * Added test for persistent stats. (1821e25) * Removed newlines from gsettings parameter descriptions, to avoid weird-looking layout when dconf-editor shows the description. (1cc9530) * Merged devel. (5944ad9) * Fixed retarded thinking. (c7370c6) * Merged devel. (8ba04a5) 2015-06-11 Michi Henning * Minor fixes to speed test: adjusted some types to prevent overflow when benchmarking very large caches and fixed two insignificant off-by-one errors. Changed prerequisite branch; now calling compact() explicitly in speed test. (0463740) * Merged devel and resolved conflicts. (1944094) * Pulled parent branch. (8b2b4b2) * Cache no longer implicitly compacts the DB on shutdown. Instead, it now provides an explicit compact() method. The DBus service now shuts down the thumbnailer before tearing down the DBus connection, so it is guaranteed that the DB locks are released before DBus can start another service instance. (12f5442) * Factored out dbus name and dbus paths into separate header so they aren't hard-wired repeatedly all over the place. Also made a bunch of style fixes and removed a bunch of redundant header files. (709518b) * Merged devel and resolved conflicts. (a51dcde) * Merged devel and resolved conflicts. (f8c794f) 2015-06-11 James Henstridge * Clean up ImageResponse implementation in QML plugin. (eda9399) 2015-06-11 Michi Henning * Merged devel and resolved conflicts. (75d2d32) * Merged devel and resolved conflicts. (48ec73f) * Added start-stop messages to thumbnailer service. That's useful when changing settings, which are read only on start-up, and to monitor initialization time. (dc9f712) * Renamed VideoScreenshotter to ImageExtractor because that more accurately expresses what it does. (It's used for audio and video files.) Improved diagnostics. Did minor style tidy-up and removed unused code. Destructor now-waits for sub-process to complete. (1a3c05c) * Reduced the internal block cache size for small caches. This reduces cache memory requirements for the thumbnailer service from 24 MB to 13.5 MB without affecting performance. Renamed a variable in the speed test for clarity. (58214f0) 2015-06-11 James Henstridge * Change signal name again to make its purpose more clear. (69f210b) 2015-06-11 Michi Henning * Persistent stats. Not finished yet. (894963f) 2015-06-11 James Henstridge * Merge from devel, fixing conflicts (78d511f) 2015-06-11 Michi Henning * Removed debug trace. (91e0484) 2015-06-10 Michi Henning * Merged devel and resolved conflict. (22429e9) * Added message handler for QDebug so we get time stamps and locking, so trace doesn't interleave across threads. Other changes are coding style issues, and slightly improved diagnostics in some cases. Also removed a bunch of redunant #includes and re-ordered include directives. (3fe7c9f) * Fixed incorrect filename in exception message. (ecdfcbd) * Merged devel. (b615868) * Re-named BUS constants as suggested by James. (56c1c45) * Disabled stand-alone header compilation tests when slowtests option is set. (a6a3516) * Suppress a bunch of warnings from cmake when building in release mode. (af57b29) 2015-06-10 James Henstridge * Add a comment to the cancel method. (336862a) * Remove debug print in cancel() method. (4da98d9) * Add a comment explaining the use of invokeMethod. (4ad909c) * Convert return_default_image_based_on_mime to a plain function. (a178fac) * Remove unused id argument from ThumbnailerImageResponse constructor. (6bfae2f) * Move the getenv() call out of the constructor so I'm not repeating myself. (127efec) * Fix typo in constructor. (f3c74fe) * Put the QDBusPendingCallWatcher under unique_ptr control sooner, and add a second constructor to ThumbnailerImageResponse to handle the eror case. (3661775) 2015-06-10 Michi Henning * Rough draft only. (73561d8) * Set default extraction concurrency to number of cores. (4820427) 2015-06-09 Xavi Garcia * Removed the size parameter from the artist and album queries. (40433b3) * Removed size parameter from the artist and album art queries (7f51255) 2015-06-09 Michi Henning * Merged dependent branch and fixed shutdown in speed test. (c6eee0c) * Calling compact() at end of speed test now. (4c452b4) * Added start and stop messages to service, so we can see in the logs when it's not running. (7a75834) * Fixed formatting of time values for stats: asctime() writes a newline at the end of the string. (4cd72fe) * Fixed comment. (4699013) * Reduced the internal block cache size for small caches. This reduces cache memory requirements for the thumbnailer service from 24 MB to 13.5 MB without affecting performance. Renamed a variable in the speed test for clarity. (ae3ca6d) 2015-06-08 Xavi Garcia * Added tool to parse the Settings schema and create a header file with the default values. (1837cf7) 2015-06-09 Michi Henning * Updated to use Xavi's settings defaults. (9c8e596) 2015-06-08 Xavi Garcia * Added tool to parse the Settings schema and create a header file with the default values (18e9007) 2015-06-08 Michi Henning * Made extraction timeout configurable. (f9007c0) * Intermediate commit before merging prereq branch. (9e8afe6) * Factored out dbus name and dbus paths into separate header so they aren't hard-wired repeatedly all over the place. Also made a bunch of style fixes and removed a bunch of redundant header files. (7cfa540) * Merged devel. (080077d) * Improved coverage. (a94245d) * Added clear and clear-stats commands to thumbnailer admin. Fixes: https://bugs.launchpad.net/bugs/1462204. (1345b78) * Merged dependent branch and resolved conflicts. Simplified service main(). (3807af9) * Fixed test failure due to change in error message. (4a921c9) * Slightly improved diagnostics when reporting errors returned by dbus. (0c639d7) * Improved trace with less noise. (4431234) * Better tracing with timestamps. (fcc4db4) * No need for mutex. (2d2fbbb) 2015-06-07 Michi Henning * Adjusted crash comment for correctness. (4969a06) * Oops, left number of iterations too high. (f5f0e59) * Minor fixes to speed test: adjusted some types to prevent overflow when benchmarking very large caches. Fixed two (not really relevant) off-by-one errors. (c698a15) 2015-06-06 Michi Henning * Suppress a bunch of warnings from cmake when building in release mode. (8ec16c4) * Disabled stand-alone header compilation tests when slowtests option is set. (1eb5e77) * Removed a few redundant #includes. (e1e60d6) * Renamed VideoScreenshotter to ImageExtractor because that more accurately expresses what it does. (It's used for audio and video files.) Improved diagnostics. Did minor style tidy-up and removed unused code. Destructor now-waits for sub-process to complete. (fbcd6af) * Merged devel and resolved conflicts. (120dab9) * Refactor some duplicated code. Added fix for hang in vsthumb when trying to thumbnail an empty file. Added check to prevent thumbnailing of file descriptors that don't refer to a regular file. Made calls to rate limiter exception safe. (3cf1dc6) 2015-06-05 Xavi Garcia * Added setting values for max-downloads and max-video-thumbnails, so we can tune concurrency without re-building. (76797ba) * Added suggested changes. video_thumbnail_limiter_ renamed as extraction_limiter_. Descriptions in schema updated (ade66f7) 2015-06-05 Michi Henning * Re-instated compaction correctness test. (f886e69) * Grammar fix for doc. (0115714) * Added clear and clear-stats commands to thumbnailer admin. (2c96224) * Cache no longer implicitly compacts the DB on shutdown. Instead, it now provides an explicit compact() method. DBus service now shuts down the thumbnailer before tearing down the DBus connection, so it is guaranteed that the DB locks are released before DBus can start another service instance. (40d229b) 2015-06-04 Xavi Garcia * Fixed schema xml (311274b) * Added setting values for max-downloads and max-video-thumbnails, so we can tune concurrency without re-building (b9fb68b) 2015-06-04 Michi Henning * Improved coverage, mainly for qml. (4d5e92f) * Merged devel and resolved conflict. (f7449c0) * Restructured tests so each test has its own directory. Test targets are now pushed into the top-level CMakeLists.txt so the test targets for coverage are updated automatically. Removed no-longer needed tools. (839c1af) * Added thumbnailer-admin tool. Removed obsolete tools. Improved coverage. (6b2f3b7) * Added message handler for QDebug so we get time stamps and locking, so trace doesn't interleave across threads. Other changes are coding style issues, and slightly improved diagnostics in some cases. (a51feab) * Removed redundant qdbus test dependencies. (6424d91) * Fixed file descriptor leak. (fa1a3eb) 2015-06-03 Michi Henning * Fix broken assertions in thumbnailer.cpp. (f4b7e4f) * More valgrind suppressions for stuff we started calling recently. (d230503) * Fixed inability to change size of pre-existing cache via dconf. Made max thumbnail size configurable, as well as retry interval after authoritative and non-authoritative download failure. More detailed semantic checking and error reporting for config parameters. (a26862d) * Added trace message handler for qDebug with locking and time stamp. (b064033) 2015-06-02 Michi Henning * No need for catch ... (1fc9001) * Fixed broken assertions in thumbnailer.cpp. (679b36b) 2015-06-01 Michi Henning * Improved coverage, mainly for qml. (1bcd263) * More restructuring. Now pushing list of test targets to top level for coverage reporting. (0af2e3f) * Tidied up test directory. (a636c85) 2015-05-30 Michi Henning * Reverted unintentional whitespace change. (d071128) * Syntax error in XML. (91b7d3d) * Fixed inability to change size of pre-existing cache via dconf. Made max thumbnail size configurable, as well as retry interval after authoritative and non-authoritative download failure. More detailed semantic checking and error reporting for config parameters. (edcd9dd) * Merged devel and fixed conflicts. Fixed cmake config warning. (641f1ef) * Merged devel. (03f45fe) * Review comments from James. (c02aa85) 2015-05-29 James Henstridge * Add settings support for the cache size. (71f1f9e) * Use the memory GSettings backend so we don't hit settings from the user's home directory in tests. (7c87e88) * Fixes from michi's review: (d7ce32d) * Invoke gcovr directly rather than using a cmake command file. Update the filter pattern glob->regexp conversion for the gcovr command line arguments to match what lcov does. (0cff899) * Invoke gcovr directly rather than through a cmake command script to avoid character escaping hell, and update the pattern->regexp conversion to match lcov exactly. (de15d9d) 2015-05-28 Michi Henning * Made license headers consistent. (7cbaa37) * A few minor fixes flagged by coverity. (4ef6294) 2015-05-28 James Henstridge * Add tests for settings class. (ed563ec) 2015-05-28 Michi Henning * More valgrind suppressions for stuff we started calling recently. (af2bf03) 2015-05-28 James Henstridge * Don't bother converting keys to std::strings. (286fa2a) * Use settings to pick cache sizes. (5746da4) 2015-05-28 Michi Henning * Coverage suppression. (0fea0b5) * formatcode changes. (3b7eeff) 2015-05-28 James Henstridge * Separate out settings code into a separate class, and add settings for the cache size (not yet wired up). (c0a2511) 2015-05-28 Michi Henning * Wrong install path. (aab7b67) * Fixed whitespace. (911d211) * Added installation for admin tool. (6f9efb8) * Fixed connect failure test. (47ddfe1) * Review comments from James. Also fixed incorrect licensing test in debian/control. (57432cf) * Tests for remote admin commands. (a944263) * Coverage suppressions. (77ca3e9) * Fixed whitespace test failure. (39c78df) * Merged devel. (b2c0fc8) * Added remote thumbnails. (82a4113) * More tests. (94ff8d5) * More test coverage. (3c426a9) * Moving to another machine. (a1d71dd) * Removed obsolete get-thumbnail.py. (21214d8) * Added get command to thumbnailer-admin, removed obsolete cachetool and scaler. (56586c1) 2015-05-27 CI Train Bot * Releasing 2.0+15.10.20150527-0ubuntu1 (15fb55b) 2015-05-27 Michi Henning * Merge lp:thumbnailer/devel r189 to trunk, and update Debian change log. Approved by: PS Jenkins bot, Michi Henning (a62eb8f) * Tidied up some more. (be9a76e) * Finally with parsing of inner command. (b8cd501) * Using Qt command-line parser in main program now. (8928804) 2015-05-27 James Henstridge * Empty commit to see if this triggers different Jenkins jobs. (9d7336a) 2015-05-27 Michi Henning * Made license headers consistent. (72d395a) * Merged devel. (0d16c9c) * Fixes for things found by coverity. (3c0ef78) 2015-05-26 James Henstridge * Update Debian change log. (720b921) 2015-05-26 Xavi Garcia * Added Async Image Provider. (fe352d5) 2015-05-26 Michi Henning * Added tests for stand-alone header compilation, copyright, and whitespace. Fixed errors reported by those. (2fd7b81) * Added HACKING file. (f01f9b1) * Got rid of QDateTime in CacheStats. (8f6d8c9) * Use qPrintable() (29e7de5) * Fixed locale. (1780072) * Added better tests for correctness of output. (088f132) * Added QCoreApplication. Moving towards Qt argument parsing. (19944d8) * Added partial coverage tests for admin tool. (9967203) * Merged devel. (b536dc2) * Showing histogram in output now. (9fa4bce) 2015-05-25 James Henstridge * Limit the concurrency of downloads and vs-thumb invocations. (0e2d922) * Indent style. (54cdf0e) * Catch all exceptions from the Thumbnailer constructor. (51cb054) * No point in using both cstdio and iostream. (da8beb2) * Add some tests for exit conditions for the thumbnailer service. (dde54dd) * Fix up race in the duplicate_requests test case, and add one that exercises the rate limiting feature. (513380f) * Add some comments to RateLimiter header. (d5c9a5b) 2015-05-25 Michi Henning * Added missing copyright headers. (f1970fa) * Merged devel and resolved conflicts. (cb32879) * Merged parent branch. (8e8131e) * Merged devel. (a4fe4e5) 2015-05-25 James Henstridge * Limit the number of concurrent downloads or video thumbnails that can be active at one time. (9c498b9) 2015-05-25 Michi Henning * Printing time stamps now. (792d03c) * Merged prereq branch. (de16db5) * Tmp check-in before merging prereq branch. (d9251d8) * Removed redundant includes of QDBus and GIO in header test. (e03397e) * Updated HACKING and added missing tsan-suppress file. (f4bdc9d) * Remove trace. (8e4e648) * Got rid of QDateTime in CacheStats. (0e85636) * Fixed time conversion code to generate fixed point independent of locale. Fixed stats test to test for correct time regardless of locale. Added sanity test for non-epoch timestamps to verify that marshaling and conversion work correctly; the test now checks that the timestamps are near the current time. Fixed type spec in the xml to match reality. (a9e6fc9) * Merged devel. (24402aa) * Check-in before merging devel. (9ba258d) 2015-05-23 James Henstridge * Factor out common DBus test setup code, and add some more targets to the coverage report. (04bfb03) * Exclude core include files from coverage report. (d898402) 2015-05-23 Michi Henning * Fixed type spec for Stats() method to match reality. (8f7a5f8) * Fixed time conversion code to generate fixed point independent of locale. Fixed stats test to test for correct time regardless of locale. Added sanity test for non-epoch timestamps to verify that marshaling and conversion work correctly; test now checks that the timestamps are near the current time. (82ca858) 2015-05-22 James Henstridge * Simplify lcov command line for filtering coverage data. (1a35d51) * Be a bit more strict in the glob conversion. (8bf2e90) * Exclude filtered files from the XML coverage report too. (857a432) * Remove old includes. (0e73f89) * Remove the cache targets from the coverage report, after discussion with michi. (94e7ba6) 2015-05-22 Xavi Garcia * Merge with devel, conflicts resolved (b13785a) 2015-05-22 James Henstridge * Simplify the RemoteServer fixture, which also seems to stop it from leaking temporary directories. (726a835) * Add targets missing from the coverage report. (2ab5298) * Fix up test, and make DBusServer members match style guide. (1abbd86) * Merge from devel (166c29d) * Port tests over to new fixture. (1ca68f0) * Add DBusServer helper util. (b7e42bd) * If multiple requests for the same resource are received, delay processing of the second request (and subsequent ones) so we can take advantage of any downloads (for album requests), extracted images (for videos/songs), or cached failures. (da75e7a) * Rename local variable so there is less confusion with the member var. (c1eabfc) 2015-05-22 Michi Henning * Added HACKING. (9b2640c) 2015-05-22 James Henstridge * Merge from devel (7f1d909) 2015-05-22 Michi Henning * Added DBus interface for stats collection. (a6071ab) * 100% coverage for dbusinterface.cpp. (19dc687) * Waiting for Shutdown() to return, with a sleep to give gcovr some time to do its thing. (e33136f) * Changed marshaling of QDateTime members to int64 and fixed type string in xml. (348a6ea) * Added whitespace tests and fixed errors reported by that. (f5dca64) * Added copyright test and missing copyright headers. (2ca7838) * Added stand-alone header compilation test. (0a4fdec) * Simpler shutdown: use QCoreApplication::instance(). (2866ec3) * Added shutdown method. (bf60447) 2015-05-21 Michi Henning * Moved stats marshaling code into its own files. (f96dd0e) * Minor review comments from James. (39b3780) * Fixed build error with clang. (89f9a75) 2015-05-21 James Henstridge * Add a third request to the duplicate requests test. (522066b) 2015-05-21 Michi Henning * Single bus with two interfaces now. (Thanks James!) (1f45917) * Added trace to failing test. (1f9b939) * Hopefully fixed size issue when running on 32-bit machine. (53d2949) 2015-05-21 James Henstridge * Add a test for concurrent requests for a single resource. (0c9b3c1) * Add a test that ensures that artist and album artwork get different cache keys. (453d954) 2015-05-21 Michi Henning * Removed noise in dbust test for unknown ExitStatus type. (7578f2c) 2015-05-21 James Henstridge * Merge from parent (28d59bf) * Chain requests that use the same unsized cache key rather than running them in parallel. (0c31d4c) 2015-05-21 Michi Henning * Made QDateTime conversion more robust. (ca32319) * Merged devel. (a94f560) * 100% coverage on thumbnailer. A few coding style fixes. Improved error handling and diagnostics via unity::Exception. Fixed incorrect logic in vs-thumb when launching the child process and collecting error/timeout info. (bd62f74) * Fixed build error with clang. (f76e20d) * Removed redundent RemoteServer code in thumbnailer test. (f8b82cf) * Fixed bug in dbus test cmake file. (21a0966) * Removed cmake trace. (37527eb) * Merged prereq branch. (b309528) 2015-05-21 James Henstridge * Expose the unsized cache key for ThumbnailRequest. (2c08a1f) 2015-05-21 Michi Henning * Minor fix. (a5524bb) * Merged devel and resolved conflicts. (60cc513) 2015-05-20 Michi Henning * Merged prereq branch. (8759602) * Error tests are now separate test cases. (8e345d6) * More review comments from James. (dabe30a) 2015-05-20 Xavi Garcia * Added some suggested changes. (9bda155) 2015-05-20 Michi Henning * Merged prereq branch. (b75c35c) * Fixed incorrect stats test. (f7d57ed) * Removed special-casing for unity::Exception. (fdb1055) * Review comments from James. (03f225b) 2015-05-20 James Henstridge * Create a small utility library for common test setup code. (e7194fb) 2015-05-20 Michi Henning * Added test for failure stats changes. (8ecc172) * Changed Thumbnailer to use get() on failure cache instead of contains_key(). Re-enabled all the dbus tests. (3bb47e4) * Added tests for stats extraction. (9f78c47) * Changed steady_clock to system_clock because steady_clock resets at reboot, so it's no good for persistent time stamps. (15e657b) * Intermediate check-in. Started moving towards separate interface. (4cec154) 2015-05-19 James Henstridge * Remove some more dead code from the fake art server, left over after removing last.fm support. (9148bf1) * Port tests over to using central art server setup code. (96ff0c5) * Add a small utils static library to share code between test suites. (3de6c6e) 2015-05-19 Michi Henning * DBus service should be good now. About to add tests. (03ce705) * Merged system_clock change. (cb32d73) * Some basic scaffolding for stats. (295e66e) * Changed steady_clock to system_clock because steady_clock resets at reboot, so it's no good for persistent time stamps. (1ab57e7) 2015-05-18 Xavi Garcia * Modified failure unit tests for QML to not depend on having the package thumbnailer-common package installed (d74af31) 2015-05-18 Michi Henning * 100% coverage on thumbnailer. A few coding style fixes. Improved error handling and diagnostics via unity::Exception. Fixed incorrect logic in vs-thumb when launching the child process and collecting error/timeout info. (49e2f91) * Merged devel. (fe29911) * Renaming for clarity. (37dcf13) 2015-05-15 Xavi Garcia * Merged with devel (10eca57) * Added qml tests for the case that the image is not found in the remote server (7d8549b) * Fixed issue with default images when downloading files (5036f74) 2015-05-15 Michi Henning * Added namespaces to all code that was still in the global namespace. (d6b7c9b) 2015-05-15 James Henstridge * Convert the test_dbus test to use generated stubs, and inspect returned images using the Image class. (d91ff3f) * Use the image class to inspect the images, rather than using our own pixbuf code. (17ff049) * Make the test_dbus tests use generated stubs for the D-Bus interface rather than manually constructing the method calls. (31d86ea) 2015-05-15 Michi Henning * Added namespaces to all code that was still in the global namespace. (ec11592) * Put the code through formatcode. (adf52c8) * Put the code and headers through formatcode. (91f2de4) * Moved Thumbnailer into the internal namespace. Un-pimpled Thumbnailer and VideoScreenshotter. Image class coverage back up to 100%. Slightly better coverage for Thumbnailer. Fixed Thumbnailer test to not create a new temp dir for each test. (Because of the caching in glib, the tempdir "stuck" at the first one that was created.). (904b82b) * Merged dependent branch. (956468d) * Review comments from James. (6d36a05) * Un-pimpled VideoScreenshotter. (29f0f2a) * Un-pimpled Thumbnailer. (ffc5267) * Moved Thumbnailer into unity::thumbnailer::private, seeing that there is no public API anymore. (e861af8) * Slightly better coverage. (eb6ec8c) * Image coverage back up to 100%. (d677229) 2015-05-14 Xavi Garcia * Added use of async image provider to improve performance (4709ffd) 2015-05-14 James Henstridge * Rename unique_gobj to gobj_ptr. (5a2fa27) 2015-05-14 Michi Henning * Improved test coverage. (258012a) * Merged devel and resolved conflicts. (afea9ff) 2015-05-14 James Henstridge * Add a test for gobj_ptr copy behaviour, and remove GdkPixbuf dependency from this suite (just use GObject/GInitiallyUnowned). (5906169) * Rename test to gobj_ptr. (5ff52d2) * Rename unique_gobj to gobj_ptr, since it is now somewhat closer to shared_ptr by allowing copying. (dbc58b7) 2015-05-14 Michi Henning * We no longer add an entry to the failure cache if thumbnailing fails because the network is down. Renamed network_error() to network_down() to make it clear that this is an expected failure (rather than a surprising one). Changed enumerators for FetchStatus to lower case as per style guide. Refactored fetch() for artist and album into common helper function. (a2a7220) 2015-05-14 James Henstridge * Use the file descriptor we open at the start of the request when thumbnailing videos or songs. (1419e36) 2015-05-14 Michi Henning * Merged devel and resolved conflicts. (725dcb7) 2015-05-14 James Henstridge * Add a test that shows vs-thumb continues after file replacement. (e8b7acf) * Remove FIXME message, since we're now thumbnailing from a file descriptor. (d725ff1) * Make VideoScreenshotter ask vs-thumb to thumbnail from an inherited file descriptor. (285c50f) * Use O_CLOEXEC when opening files. (5625f8f) * Rather than trying to sniff the mimetype in vs-thumb, simply use has_video() to decide whether to try and extract a video frame or look for cover art. (b0a619a) * Add a has_video() method to ThumbnailExtractor class. (2b029b3) * When thumbnailing local photos make sure we are reading from the file that matches the client's file descriptor. Videos/songs still end up re-opening the file at present. (f6266cf) 2015-05-13 James Henstridge * Fix up album and artist cache keys to be distinct again. (ad2f152) * Move the FIXME comment, and make it more specific since it is only vs-thumb that needs fixing now. (774c494) * Close the client FD in the image replacement test. (b926961) * No need to link libthumbnailer.a to QtDBus. (a350425) * Add a test that exercises replacing the image mid-thumbnail. (e1f3cd4) * Merge from devel, fixing conflicts. (f40c188) * Add tests for passing bad file descriptors to get_thumbnail(). (f453b44) * Since we're only using the file descriptor in the ThumbnailRequest's constructor, we don't need to pass the QDBusUnixFileDescriptor down to get_thumbnail(). (4a52cdf) * Have the fetch() method return the Image, and be passed a hint for the desired size of the image. (a14bdeb) * Add a scale() method to Image. (57b8a69) 2015-05-13 Michi Henning * More tests for image.cpp. (cb4627b) 2015-05-13 James Henstridge * Move the file descriptor comparison into the LocalThumbnailRequest constructor. (099c267) * Add filename_fd argument to get_thumbnail() method. (a1854d0) 2015-05-13 Michi Henning * Merged devel. (2017daf) * Added test for safe_strerror(). Removed accidentally-added file. (5fd5ed0) * Added timeout to ThumbnailRequest::download(), so we can control timeout value for the tests. (5cebdf2) * Fixed typo in comment. (cc75227) * We no longer add an entry to the failure cache if thumbnailing fails because the network is down. Renamed network_error() to network_down() to make it clear that this is an expected failure (rather than a suprising one). Changed enumerators for FetchStatus to lower case as per style guide. Refactored fetch() for artist and album into common helper function. (27caded) * Removed redundant setSingleShot() calls. Using chrono::milliseconds for timeouts everywhere now. Cancelled requests are now reported as a network error. Minor improvements to the tests. (e89d15a) 2015-05-12 Michi Henning * Moved timeout implementation into UbuntuServerArtReply. (b1f7bc8) 2015-05-12 James Henstridge * Allow constructing an Image from a file descriptor as an alternative to in-memory data. (1dda636) * Add tests for loading image from file descriptor. (ad2135c) * Convert Image constructor over to using Reader helper class, and add a constructor that takes a file descriptor instead. (4540f1b) 2015-05-12 Michi Henning * Merged devel. (699470f) * Added timeout to ThumbnailRequest::download(), so we can control timeout value for the tests. (1efb753) 2015-05-12 James Henstridge * Port load_image() to take an Image::Reader as an argument rather than the buffer directly. (a28cbf6) * Add Reader class with specialisations for reading from a buffer or reading from a file descriptor. (954bd9c) 2015-05-12 Michi Henning * This adds a failure cache to the mix, so we don't endlessly re-try failed downloads or aborted attempts to extract a thumbnail from a broken local media file. Cache size and timeouts for failure entries are hard-coded for the time being, until we get around to making this configurable. (31399c1) * Merged devel and resolved conflicts. (e92affc) 2015-05-11 Xavi Garcia * Added new method to check if the download finished due to a network error. (2c8eac4) * Added new method to check if the download finished due to a network error (0d9b206) * I've added tests for album and artist download using the fake server and the downloaders. (bae4c5c) 2015-05-11 James Henstridge * Merge the Handler subclasses into their base in the D-Bus service. (8f99174) 2015-05-11 Michi Henning * Fixed a few broken diagnostic pragmas. Replaced remaining double-include guards with #pragma once. (968f10c) 2015-05-11 Xavi Garcia * Re-merged with devel (669f500) 2015-05-11 Michi Henning * Various improvements for clang: - support for address/thread sanitizer - allow coverage testing with clang - fixed a bunch of clang warnings . (44dab35) * Fixed review comments from James. (af99cae) * Merged devel and resolved conflicts. (794f35a) 2015-05-11 James Henstridge * Simplify Handler further, now that it isn't trying to be extensible. (1532ab4) * Fix exception message. (7572ddc) 2015-05-11 Michi Henning * 1920 size limit for images in full-size cache. Thumbnails are also limited to 1920, unless the caller asks for (0,0), in which case we return the original size. Images in the full-size cache are now always stored a jpeg instead of original format. Fixed minor bug in dbus test. (f9857de) * Removed LastFM downloader, seeing that we are not using it. (fcd7fa7) 2015-05-11 James Henstridge * Use the FdPtr definition from in write_to_tmpfile(). (f3a6630) * Remove separate Handler classes for the three different request types, having a single class do the work based on an arbitrary ThumbnailRequest. (c15aea0) 2015-05-11 Michi Henning * Fixed lots of valgrind issues, so "make valgrind" is usable again. (877b0be) * Removed queries subdir for downloader test. (74bd643) * Timeout set to 15 seconds now for videoscreenshotter. Tests waits up to 20 seconds for signal to arrive. (fb2f0aa) * Increased timeout for video and audio fetch test. (c6aa93f) * Resolved merge conflict. (4256d88) * Added vs-thumb to coverage targets. (6a1d21e) * Fixed minor bug in fake server for artist thread test. Added test case for lastfmdownloader getting artist art. (6ad9e0d) * Removed remaining traces of LastFM. (46c1784) * Various improvements for clang: - support for address/thread sanitizer - allow coverage testing with clang - fixed a bunch of clang warnings (d7ad2f7) * Fixed a few broken diagnostic pragmas. Replaced remaining double-include guards with #pragma once. (800dab1) * Merged devel. (9b71299) * Merged devel. (6f3042c) * Merged devel. (198ff4c) * Merged devel. (5bdf6ed) 2015-05-08 Xavi Garcia * Added 2 QThreadPools to run separately the check and create phases. (a2c7580) * Changed names of thread pools and variables to avoid confusion (55635b3) 2015-05-08 Michi Henning * Fixed comment. (9f8af90) * Fixed lots of valgrind complaints. (53972bd) * Merged devel. (e3e5b36) * Merged devel. (7ec73fb) * Merged devel. (e4350e7) * Merged devel and resolved conflicts. (03f4b82) * Merged devel and resolved conflicts. (34fd3b7) 2015-05-07 James Henstridge * Convert the VideoScreenshotter class to an asynchronous API so we can wait on the vs-thumb helper process from the event loop rather than by blocking in the thread pool. (d26297b) 2015-05-07 Xavi Garcia * Added 2 QThreadPools to run separately the check and create phases (6feb888) 2015-05-07 James Henstridge * Update ThumbnailHandler to handle async invocation of helper process. (5d7cf90) 2015-05-07 Michi Henning * Merged devel. Minor bug fixes. (470cf03) 2015-05-07 James Henstridge * Remove AudioImageExtractor code. (67a8630) * Update copyright headers, and simplify slot definition. (25570aa) * Fix up spawning of process. (7c86bac) * Convert VideoScreenshotter class over to a single-job async API. (ccf7620) 2015-05-07 Michi Henning * First stab at dealing with failures. (009cd8e) * Removed LastFM downloader, seeing that we are not using it. (03ada44) * Merged devel. (5f76de0) * Added test case for coverage. (20f373e) * Merged devel. (0a9e485) * Merged devel. (848e29a) * Merged devel. (5f36361) * pending merges: James Henstridge 2015-05-07 [merge] Merge from devel, fixing conflicts. (fadaade) 2015-05-07 James Henstridge * Update the Thumbnailer class API to return ThumbnailRequest objects, and make the art D-Bus handlers perform downloads asynchronously in the event loop. (5ecbb96) 2015-05-07 Michi Henning * Merged dependent branch and resolved conflicts. (504853f) * Fixed minor bug in fake server. (246b854) 2015-05-07 James Henstridge * Merge from devel, fixing conflicts. (94d9a57) 2015-05-06 Xavi Garcia * Added downloaders tests for qml with fake server (7bf25ed) 2015-05-06 Michi Henning * Added vs-thumb to coverage targets. (9933ec2) * Merged devel (47cf5e2) 2015-05-06 Xavi Garcia Mena * Fake server modified to add returning 404 code when the file we try to read is not found, also erased some imports and methods that were not used. (ff8f750) 2015-05-06 James Henstridge * Rewrite the description of the RequestBase::thumbnail() method to reflect reality. (19a6b30) 2015-05-05 Xavi Garcia * Modified fake server to use the extension of the file instead to inspect the content of the file. Removed not needed dependency in debian/control (bc6da5c) 2015-05-04 Xavi Garcia * Fixed missed png file. Fixed conflicts (c8eb56f) 2015-05-02 Michi Henning * Merged devel and fixed conflicts. (a3aa4eb) 2015-05-02 Xavi Garcia Mena * Removed python-httplib2 dependency (eea66d2) 2015-05-01 Xavi Garcia Mena * Added suggested changes (ab42e9b) 2015-05-01 Michi Henning * Added better coverage target. Currently, the code still uses a private XEnableCoverage module. Once the MR for cmake-extras merges, we'll use the version in there. See https://code.launchpad.net/~michihenning/cmake-extras/cmake-extras-coverage/+merge/258021. (8ad88a2) * Added coverage flags to link phase for tests. (16449a8) 2015-05-01 James Henstridge * Remove dependency on libsoup and libxml2, since the corresponding code is now gone. (9ef35c8) 2015-05-01 Michi Henning * Cleaned up coverage testing. (8f71bf1) 2015-05-01 James Henstridge * Remove SyncDownloader class, since we are accessing the async downloader directly now. (2643d11) * Merge from trunk (b0a8900) * Add myself to the list of authors. (623d0c9) * Merge from devel (42eb225) 2015-05-01 Michi Henning * Improvements to build env: (f8a6d5c) * Merged devel and resolve conflict. Fixed warning about missing default in switch statement. (136162e) 2015-05-01 James Henstridge * Use album/artist art downloaders asynchronously. (8c96731) 2015-05-01 Xavi Garcia Mena * Fake server modified to add returning 404 code when the file we try to read is not found, also erased some imports and methods that were not used (f96db28) 2015-05-01 James Henstridge * Merge from trunk. (ea7c6d7) * Return ThumbnailRequest from the various Thumbnailer class methods. (32d958a) * Move thumbnailing code to a set of Request classes in preparation for exposing asynchronous downloading for use by the D-Bus service. (584f7d1) * Remove build-depends. (1fafb71) * Remove libxml2 and libsoup pkg-config checks. (ccf229e) 2015-05-01 Xavi Garcia Mena * Added unit tests for dbus using fake server. Also includes modification in fake server to return binary data. (af141f7) 2015-05-01 Michi Henning * Suppressed more warnings from gstreamer that show up only on Arm. (2197e8e) * Removed soupdownloader.h too :-) (f6ed0ae) * Addressed review comments from James, thanks! (9ebf81f) 2015-05-01 Xavi Garcia Mena * Added suggested changes (d0a39b3) 2015-05-01 Michi Henning * Remove check for CTest variable because it doesn't work on subsequent cmake runs. (06862cb) 2015-05-01 James Henstridge * Add back TODO comment. (76ef29c) 2015-04-30 James Henstridge * Move extract_image() code into LocalThumbnailRequest::fetch(). (3c1e553) 2015-04-30 Michi Henning * Got rid of unused C_FLAGS. (a2cc714) * Improvements to build env: (1ffa67e) 2015-04-30 James Henstridge * Start of work to move to async loaders: move logic of Thumbnailer methods to Request objects. (130f89b) 2015-04-30 Xavi Garcia Mena * Added unit tests for dbus using fake server. Also includes modification in fake server to return binary data (597a92e) * Fixed data being truncated. Added workaround to avoid adding the "album" prefix to the album name. (07ea8a1) * Added fix to not trucate data and temporary workaround to avoid adding prefix to album name (334771b) 2015-04-30 Michi Henning * 1920 size limit for images in full-size cache. Thumbnails are also limited to 1920, unless the caller asks for (0,0), in which case we return the original size. Images in the full-size cache are now always stored a jpeg instead of original format. Fixed minor bug in dbus test. (6ab1b96) 2015-04-30 Xavi Garcia Mena * This branch is not expected to be merged as includes changes not fully working. (d30aec7) * Added python3 dependency to debian/control (5d5ee97) * Changed the way we start the fake server process (e887f97) 2015-04-29 Xavi Garcia Mena * Added QSignalSpy to wait for fake server's stdout (0bcc31f) * Added extra debug statement to inspect obtained url from downloader (0b20d9d) * Fixed conflicts (3cf455a) * Removed non valid include after removing Q_OBJECT (8c1c3d6) 2015-04-29 Michi Henning * Changed code to cache full-size images only if the are remote or, if they are local, if they are inside and audio or video container. Otherwise, we use the local image file directly and don't cache it. (67068cf) * Made write_file() atomic using rename(). Added some tests for file_io functions. (f110280) 2015-04-29 Xavi Garcia Mena * Errors in debian/control fixed (f7a526b) 2015-04-29 Michi Henning * Merged devel. (49038f1) * Merged devel and resolved conflicts. Fixed qml test failure due to missing version number for Thumbnailer plugin. (c9b8c23) * Full-size image is now cached only for remote images and local video or audio files. For local image files, we don't put the image into the full-size cache. (015793d) 2015-04-29 Xavi Garcia Mena * added #include to thumbnailer.cpp (e342697) * Removed process-cpp when linking (b7a5145) * Added 100 multiple downloads (5d9317c) * Erased not used includes (6a1e5cf) * Erased process-cpp includes (57f1f02) * Erased not useful statement (6e8ca67) * Added virtual destructor (593ffac) * Added fixes as suggested (f377d25) 2015-04-29 Michi Henning * make_directories() now uses g_mkdir_with_parents(). (cad2a98) 2015-04-29 James Henstridge * Scale images while loading them, and use the EXIF thumbnail if it is at least as large as the requested size. (0ee4f0c) 2015-04-29 Michi Henning * Merged dependent branch. (5c43fb6) * make_directories() now uses g_mkdir_with_parents() (cfaf00a) * write_file() now creates tmp file in the same dir as the eventual file. (3379d1d) 2015-04-29 James Henstridge * Move QML test over to new images. (ea14ce0) * Use QTemporaryDir to manage the test's temporary directory. (1be1aac) * Add pixel sampling checks to image test. (7aca800) * Rationalise use of test images a bit. (7330573) * Remove unneeded include. (aa3b6da) * Make image tests use new images. (8a8dc2e) 2015-04-28 James Henstridge * Add orientation samples. (0843200) * Test scaling of a rotated image. (dfeff5b) * Fix up logic in image.cpp/thumbnailer.cpp and adjust tests (some thumbnail dimensions have changed due to use of embedded thumbnail or different scaling). (5ee2ee8) * Initial changes to move EXIF handling into the Image class. (b6a9e1d) 2015-04-28 Xavi Garcia Mena * Fixed CMakeLists.txt (5c73687) * Conflicts with main branch fixed (822e2c7) * Added sync downloader, moved functionality to ArtReply classes to avoid using maps to identify QNetworkReply objects (cb8efc9) 2015-04-28 Michi Henning * Made write_file() atomic using rename(). Added some tests for file_io functions. (36a4088) * Use new cache for local thumbnails. This is poor in regression tests, but has reasonably good coverage. For now, I've tested thumbnail extraction manually by saving retrieved thumbnails and inspecting them by hand. Will add more tests that are more rigorous next. (7b15163) * Merged devel and fixed compile error. (3c154b0) * Changed qml test to expect incorrect values for the time being until the rotate code is correct. (8b89841) 2015-04-27 Xavi Garcia * Added a new inactivity handler to exist the thumbnailer service after some time of inactivity. (22b4c05) 2015-04-28 Michi Henning * Merged devel and resolved conflicts. (6e72af1) 2015-04-27 James Henstridge * Add a test fixture that runs QML tests against a private version of thumbnailer-service. (8d5e59e) 2015-04-28 Michi Henning * Fixed bug in mkstemp call. (e1d8052) 2015-04-27 Xavi Garcia Mena * Using std::cerr to print out error message (c87c8b6) 2015-04-28 Michi Henning * Merged parent. (4dc9c13) * Use fast content type instead of thorough one. (5712fdb) * Moved pixbuf and exif RAII helpers out of raii.h. (bd25aee) 2015-04-27 Xavi Garcia Mena * Catching the InactivityHadler exception in the main function (50c0871) 2015-04-27 Michi Henning * Fixed typo in error message. (fa8e2b2) * Review comments from James. (bbe763c) 2015-04-27 Xavi Garcia Mena * API returning a shared_ptr (9bd3d57) 2015-04-27 Michi Henning * Fixed broken image test. (ef3c4a0) 2015-04-24 Xavi Garcia * UrlDownloader no longer needed (d3f7f5c) * Main CMakeLists.txt restored (1afc283) * New downloaders interface, similar to QNetworkAccessManager (41727af) * Changed unit test and modified as suggested (e0e4e81) 2015-04-24 James Henstridge * Set TN_UTILDIR before spawning the D-Bus service. Otherwise the change doesn't propagate. (f07203e) * Rename Fixture.sourceSize property to requestedSize to more closely match ImageProvider API. (29c3a5f) * Set TN_UTILDIR environment variable in QML test harness. (f84acc1) * Fix ordering of build dependencies. (6ee044e) * Name the QML test suites. (614b3ee) * Build-Depend on QtQuick2 and QtTest QML modules. (ca50a61) * Add a test for embedded album art from a Vorbis file. (b56a180) * Add some tests for image://thumbnailer/ used on photos, and disable the albumart tests: we can re-enable them once we've got the fake albumart server integrated into the test suite. (c2b7c8c) 2015-04-23 Xavi Garcia * Modified QSignalSpy to use new syntax (a18efdc) * Added suggested changes (9babbd7) 2015-04-23 James Henstridge * Add test harness to run QML tests, and run them under Xvfb so that they can be run headless. (0b4215c) 2015-04-23 Michi Henning * Added missing close for pixbuf loader. Better logic for cache access in thumbnailer.cpp. Slightly better tests. (75117b6) 2015-04-22 Xavi Garcia * Added inactivity handler to exit the application after some time of inactivity (df95216) 2015-04-22 Michi Henning * Merged devel. (2ac64f2) * Define QT_NO_KEYWORDS for service. (da7bdbf) 2015-04-21 Michi Henning * Fixed broken key construction in thumbnailer.cpp. (5cf134a) 2015-04-22 Michi Henning * Minor refactoring. (1f77c31) * Merged James's updates and resolved conflicts. (92b80a5) 2015-04-21 Michi Henning * Added comment about failure for O_TMPFILE. (94e41dc) 2015-04-21 James Henstridge * Pass the requested size to the D-Bus service directly rather than converting it to a ThumbnailSize constant first. (b47ba1d) 2015-04-21 Michi Henning * Fix typo. (cf2a9c7) * Trying to deal with different behavior from different kernels for O_TMPFILE flag for open(). (3167e63) * Merged James's changes and fix broken key creation (\0 problem). (dc28fb2) * Fixed broken key construction in thumbnailer.cpp. (edf4ad1) 2015-04-21 James Henstridge * Adjust the scaling code a bit: fill in the missing height/width before checking if scaling is needed. (e7b1441) * Push the requestedSize down into the individual method handler classes. This way the scaling behaviour of each method can be updated individually. (b0d6bb1) * Reintroduce the QML side scaling that was lost when refactoring the GetThumbnail case. This will be a no-op if we are passed correctly scaled images by D-Bus. (bc99841) * Merge from trunk (3f15da6) 2015-04-21 Xavi Garcia * Fixed CMake files conflicts (30072ce) 2015-04-21 James Henstridge * If the kernel doesn't support O_TMPFILE, create a named temporary file with mkstemp() and then unlink it. (caa1b1c) 2015-04-21 Michi Henning * Added coverage for get_thumbnail() in a very simple test. No real testing there yet, but enough to see that things are mostly working by inspecting coverage output. (20bdef1) 2015-04-21 James Henstridge * Update packaging to allow replacement of files in old libthumbnailer0 package. (5e6ff5f) * Add a fallback path for when O_TMPFILE is not supported by the kernel (resulting in an EISDIR error code). (7bba174) 2015-04-21 Michi Henning * valgrind suppression fix. (f9c3756) * Rotation test. (bff2cf5) * Added EXIF orientation corrections. (b0b9941) * Fixed thumbnail generation from EXIF. (bc84a12) * Minor refactoring. (95135c5) * Merged James's QSize changes. (b870b54) * Merged James's handler improvements. (17bf71c) 2015-04-20 Xavi Garcia * Added new unit tests for downloaders (2f6d52a) 2015-04-20 James Henstridge * Fix up helper tools. (2850af5) * Don't error on an invalid requested size: this is a valid use of the QQuickImageProvider API. (bb31faf) * Namespace the QML plugin classes. (29b4316) * Generate stubs to talk with the D-Bus interface to avoid unintentional bugs. Also adapt the QML plugin to call thumbnailer-service with the actual requested image size rather than a constant that approximates it. (39de6a1) 2015-04-20 Michi Henning * Added image tests. Started on valgrind suppressions for gdk. (785461c) 2015-04-20 James Henstridge * Make the DBus interface take the desired size directly as a QSize (marshalled as "(ii)"). (098593b) * Split out the D-Bus method request handlers into separate classes, with some processing happening in a thread pool (where blocking is permissible) and some in the event loop thread (where blocking is not allowed, but we don't monopolise a thread). (964449f) * Merge from devel, fixing conflicts. (8f58b15) 2015-04-20 Michi Henning * formatcode for basic.cpp. (3ef5b71) * Merged safe_strerror() branch. (8006b4f) 2015-04-20 Xavi Garcia * Modified strerror to use safe_strerror instead. (179c4c7) 2015-04-20 Michi Henning * Removed imagescaler. Added file IO helpers. (80116ce) * Fixed bugs in image.cpp. (43b42f6) 2015-04-17 Xavi Garcia * Renamed classes QUrlDownloader and QArtDownloader to UrlDownloader and ArtDownloader (36f8859) 2015-04-17 James Henstridge * Capture exception in a wrapper around the function called in the thread pool, so we correctly capture exception messages. (963464b) * Merge from devel (bf19b1c) * Ensure thread pool jobs complete when destroying a Handler, and then stop further processing. (d82524f) * Add a test suite to check the behaviour of the D-Bus service. Currently only covers GetThumbnail, with GetAlbumArt/GetArtistArt to come later when we can substitute in the fake implementation of the art service. (747b116) * Fixes from Michi's review: make sure pixbuf loader is closed on destruction, and check the message in the D-Bus error tests. (40130fb) * Delete the request handlers when they complete. (7dc2947) * Move DBusInterface into namespace. (f62c36c) * Convert other two methods to Handler classes. (afbb175) * Hook up GetThumbnail to run via Handler. (366e5c9) * Add Handler class as a base for asynchronous method calls. (07958a1) 2015-04-16 Xavi Garcia * Added python-tornado to debian/control (4cd36ee) * Added LastFM downloader unit tests (de9ade0) * Modified LastFM downloader to use the Qt API (3d4a1df) * Added user defined id for a download (7d0a805) * Avoid using strerror and changed to use safe_strerror instead as we have to be thread safe (38d8980) * Linking tools with static library instead of separated files (5a8db61) * Declaring const strings as static constexpr const char* (d9041e1) * Added libprocess-cpp-dev to debian/control (5f18a11) * CMake files modifications following suggestions (f607879) * Erased not needed files (46b678b) * Modified UbuntuServerDownloader to use Qt. Added QUrlDownloader and QArtDownloader. Added unit tests for new downloaders (243d0c4) * Added Fake server (5e8a687) 2015-04-15 James Henstridge * Add a test suite that checks the behaviour of the D-Bus service. Currently tests for the album and artist artwork methods are disabled until we can point them at a fake service. (cb372ab) 2015-04-15 Michi Henning * Adapted dbus-interface for new get_thumbnail(). (651ea29) * Major re-factoring of thumbnailer for caching local content. basic test segfaults at the moment. (3eed356) * Merged devel. (31c1a4e) * Intermediate check-in before merging devel. (38f7904) 2015-04-14 Michi Henning * This replaces the media art cache with the new cache. Note that, for now, the images are returned without scaling in original size. (90438fd) * More review comments from James. Removed mediaartcachetest.cpp and changed write_to_tmpfile() to return a Qt file descriptor instead of wrapping the fd in the caller. (d3c1317) * Try again... (988c018) * Fixed error in control file. (3adada6) * Addressed review comments from James. (383917e) * Removed headroom concept because it doesn't achieve anything other than making the benchmark look better. Shortened speed test so it runs faster with mechanical disks. (26c533b) * Various doc improvements. Tweaks to speed test to make it more realistic. (49c70b8) 2015-04-14 James Henstridge * Don't install libthumbnailer.so, instead statically linking the code into thumbnailer-service. As a consequence, the libthumbnailer0 and libthumbnailer-dev binary packages have been removed. (58d477f) 2015-04-14 Michi Henning * Removed size groups. 0 means original size. (6f6831e) 2015-04-14 James Henstridge * Add a GetThumbnail D-Bus method to thumbnailer-service for local thumbnails, and update the QML plugin to use it rather than libthumbnailer directly. (9b911e4) 2015-04-14 Michi Henning * Merged prerequisite branch. (aa1d8e8) * Minor refactoring. (3b8c6dc) * Merged James's no-library branch and resolved conflicts. (7645672) 2015-04-13 James Henstridge * Remove the libthumbnailer0 and libthumbnailer-dev packages, and move the vs-thumb helper to thumbnailer-service. (a183575) * Don't install libthumbnailer.so and its headers: clients should use the D-Bus API instead. (2d3e2bc) * Don't make qtdeclarative5-ubuntu-thumbnailer0.1 require libthumbnailer0. (e897df4) 2015-04-13 Michi Henning * Removed headroom concept because it doesn't achieve anything other than making the benchmark look better. (2eaaf6f) * Merged parent. (20311e5) * Oops, need different keys for album and artist art. (c7187f8) * Removed unnecessary dependency. (b45ebba) * Removed headroom setting because it won't change anything. (87207ac) * Merged parent and resolved conflicts. (f152c49) 2015-04-13 James Henstridge * Make image://thumbnailer image provider go via D-Bus. (54712d0) 2015-04-13 Michi Henning * Typo in doc. (5a83ad7) 2015-04-13 James Henstridge * Add the server side of the GetThumbnail routine. (752fea0) 2015-04-13 Michi Henning * Another minor doc fix. (4dfde1f) * Minor doc fix. (c0092e8) * Added doxygen comment for core namespace. Without this, doc for definitions in the core namespace won't be emitted. (890e6b2) * Fixed doc typo. (c2c459f) * Various doc improvements. Tweaks to speed test to make it more realistic. (7246433) 2015-04-10 Michi Henning * I've added the leveldb cache to the tree. It's not used by anything, just hooked up to the build env so it compiles and passes its tests. Eventually, this will move into a separate core project but, for the time being, we'll dog-food it here to see how we go with the API. (10a84da) * Addressed review comments from James. (eeb3b80) * Comment fix. (a2eccbb) * Added comment. (e576832) * Minor code fix (removed redundant test and stale variable). (372678d) 2015-04-09 Michi Henning * Doc fix. (7ae07d2) * Renamed Codec -> CacheCodec and moved it into the core namespace. (83fee5c) * Merged devel. (5aac899) 2015-04-09 James Henstridge * Use playbin to extract audio and video thumbnails, rather than a custom pipeline. (64b1e08) * Port thumbnailer-service to QDBus. (ce3e2a8) 2015-04-09 Xavi Garcia * Changed ArtDownloader interface to return std::string containing the image. (a3de47e) 2015-04-09 Michi Henning * Added eviction counts to stats. (5f4a86c) 2015-04-08 Michi Henning * Comment fix. (49dc621) * Improved comments. (32d8778) * Added bitwise operators for events, and removed set_handler() overload. (b6570c2) * Lower-cased enumerators. (27bce10) * Oops, removed redundant internal:: qualifications. (08f2853) * Moved CacheEventIndex into internal header file. (ec09946) * Fixed broken comment and renamed variable for clarity. (38d657e) * Improved doc for load function. (bcb8371) * Moved Optional into core namespace. (57be121) * Renamed IOTraits -> Codec, and changed function names to encode()/decode(). (f67d327) * Made take() and take_data() non-const. (fefeec0) 2015-04-07 Michi Henning * Re-instated deprecated symbol. (3155b77) * Added core library to plugin and thumbnailer. (944a27d) * Removed deprecated symbol from symbols file. (acc422e) * Replaced MediaArtCache with new cache. (086c7b4) 2015-04-03 Michi Henning * More tests. Impl has to be immovable. (4c3bbb5) 2015-04-02 Michi Henning * Added histogram to stats. Minor fix for iterator overrun. Stylistic fixes and general code clean-up. (2009fad) 2015-04-01 James Henstridge * Increase the method time out, since we may wait on a network service. (b6290ea) * Add a small test script to exercise the GetAlbumArt D-Bus method. (b38742d) * Port thumbnailer service over to QDBus to make future expansion easier. (82fcdca) 2015-04-01 Michi Henning * Xavi Garcia 2015-03-31 Removed LastFmDownloader destructor implementation (which was empty) to use the default instead Xavi Garcia 2015-03-31 Raw pointer removed to use unique_ptr instead. Some coding style changes Xavi Garcia 2015-03-27 Modified ArtDownloader interface to return a std::string with the content of the image. Cha... (8800e53) 2015-03-31 Xavi Garcia * Removed LastFmDownloader destructor implementation (which was empty) to use the default instead (e7b5748) * Raw pointer removed to use unique_ptr instead. Some coding style changes (1c9bd5e) 2015-03-31 Michi Henning * Suppressed parallel tests in debian/rules. (9fe6264) * Removed stale using declaration. (af8cd66) * Removed stale #include for UnityExceptions.h. (9e98d9d) * Try again, this time with libboost-filesystem-dev as the build dep. (9398258) * Added libboost-dev to build deps. (d656fea) * Added leveldb to build deps. (70e8a37) * Initial draft of persitent cache based on leveldb. (2e1a58a) 2015-03-30 James Henstridge * Add a test for the case of a missing file, and include the class name in the error messages. (0b7da23) 2015-03-27 Xavi Garcia * Modified ArtDownloader interface to return a std::string with the content of the image. Changed coding style to files using the ArtDownloader interface. Modified unit tests that used the ArtDownloader interface (ff7baa0) 2015-03-27 James Henstridge * Emit more detailed error messages. (3c9b613) 2015-03-25 James Henstridge * Move the test data to a subdirectory of the tests. (99f3b01) * Fix typo in test so the Theora test uses the theora test file. (3b40503) * Add some debug output to help with jenkins test failure. (881b678) * Cut down on the libraries vs-thumb links with. (7608238) * Make vs-thumb use playbin for audio thumbnailing. (97e6d93) * Add extract_audio_cover_art() method to ThumbnailExtractor. (6120a77) 2015-03-24 James Henstridge * Add some test videos to check thumbnailing of H.264 videos, including rotation. (055064f) * Fix up test so it can find the vs-thumb executable again. (a3c46da) * Separate the video frame extraction code from the image saving code, so we can add audio thumbnailing to the playbin based code. (52b4d44) * Check that the result image can be loaded and has the expected size. (d7bfe92) * Make sure the mapped memory stays active for as long as the pixbuf based on it does. (726f09e) * Add test suite for vsthumb. (e2c0d14) 2015-03-20 James Henstridge * Rotate the screenshot as needed. (71c7819) 2015-03-16 James Henstridge * Plug ThumbnailExtractor into vs-thumb. (53282aa) 2015-03-13 James Henstridge * Don't try to render audio with the playbin. (a570756) * Partial thumbnail extraction class (d9f4459) 2015-03-12 CI Train Bot * Releasing 1.3+15.04.20150312-0ubuntu1 (6809541) 2015-03-12 Albert Astals Cid * Use own QDBusConnection (3efd631) 2015-03-10 James Henstridge * Move vs-thumb sources to a subdirectory. (847540f) 2015-03-05 Albert Astals Cid * more (8b41643) * pointer nit picking (0974405) * Comment++ (16cd341) 2015-02-26 Albert Astals Cid * Use own QDBusConnection (a8d1d7a) 2015-01-22 CI Train Bot * Releasing 1.3+15.04.20150122-0ubuntu1 (c343c9f) 2015-01-22 Florian Boucault * QML thumbnail provider: make sure sourceSize (aka requestedSize) is respected by downscaling at loading time if necessary. Makes TN_SIZE_ORIGINAL case much faster. Fixes: #1391368 Approved by: Jussi Pakkanen, PS Jenkins bot (e2d6bf0) * Keeps track of failed thumbnails and do not try to regenerate them. Fixes: #1389678 Approved by: Jussi Pakkanen, PS Jenkins bot (84f3e03) 2015-01-20 Florian Boucault * mark_failure: handle error case better (ea4f2f8) * Mark ThumbnailCache::has_failure as not returning any value. (560f0f9) * Mark ThumbnailCache::has_failure as noexcept (2c1b866) * Catch with const exception (0a82727) 2015-01-12 Florian Boucault * Support zero width/height (1842369) * QML thumbnail provider: make sure sourceSize (aka requestedSize) is respected by downscaling at loading time if necessary. Makes TN_SIZE_ORIGINAL case much faster. (70fa93b) * Keeps track of failed thumbnails and do not try to regenerate them. (5a6620a) 2015-01-06 CI Train Bot * Releasing 1.3+15.04.20150106-0ubuntu1 (cf01a58) 2015-01-06 Jussi Pakkanen * Fix a few potential memory corruptions. Fixes: #1403906 Approved by: James Henstridge (ea2e73a) 2015-01-05 Jussi Pakkanen * Else fix too, just for good measure. (24b0b7b) * Memory safety fixes. (60aed88) 2014-12-02 CI bot * Releasing 1.3+15.04.20141202-0ubuntu1 (bec081f) 2014-12-02 Alfonso Sanchez-Beato * [ Alfonso Sanchez-Beato ] Workaround for files with very few intra frames Fixes: #1393834 Approved by: Jussi Pakkanen (298b197) 2014-11-21 Alfonso Sanchez-Beato * [ Alfonso Sanchez-Beato ] Workaround for files with very few intra frames (a46e36d) 2014-11-06 CI bot * Releasing 1.3+15.04.20141106-0ubuntu1 (acded98) 2014-11-06 Jussi Pakkanen * Use videoflip to fix orientation. Fixes: 1191934 Approved by: James Henstridge, PS Jenkins bot (7dcb29e) * Fix memory leak. Approved by: James Henstridge, PS Jenkins bot (1916e06) 2014-11-05 CI bot * Releasing 1.3+15.04.20141105-0ubuntu1 (9e39da5) 2014-11-05 Ricardo Salveti de Araujo * Enabling exif thumbnails again, as we now got the proper fix at qtubuntu-camera (3c7b8f4) * Enabling exif thumbnails again, as we now got the proper fix at qtubuntu-camera (e7854b0) 2014-10-20 Jussi Pakkanen * Use videoflip to fix video orientation. (693c13a) 2014-10-02 CI bot * Releasing 1.3+14.10.20141002-0ubuntu1 (b2e4157) 2014-10-02 Jussi Pakkanen * Disable exif thumbnails temporarily to work around a regression. Approved by: Alejandro J. Cura (798155f) * Disable exif thumbnails to work around bug where camera produces images with incorrect aspect ratio in exif thumbnail. (e30a37f) 2014-09-29 Jussi Pakkanen * Fix memory leak. (64c0262) 2014-09-26 CI bot * Releasing 1.3+14.10.20140926-0ubuntu1 (042396f) 2014-09-26 Pete Woods * Aggregate the various MRs, with conflicts resolved Approved by: PS Jenkins bot (4d13607) * Just enumerate all the arches (b225f47) 2014-09-25 Pete Woods * The thumbnailer blacklist is arch-specific (10dd7bd) * Bump version (87d5379) * Clean up changelog (27fe888) * Add changelog notes (7157241) 2014-09-25 Pawel Stolowski * Added gsettings schema with API key used for accessing dash.ubuntu.com service. Pass the key with artist/album requests. (8c520ff) 2014-09-25 Jussi Pakkanen * Use exif thumbnail if one is available. (7afba50) * A few simple fixes for issues found compiling against libc++. (c765dd3) * Prevent apport from sending vs-thumb stacktraces. (5924c72) 2014-09-25 Pawel Stolowski * Install album_missing icon (taken from libunitycore package) with new thumbnailer-common package. (0b0999c) * Fix cmake install rule. (bea0c15) * Two more icon paths to fix, plus missing video icon added. (d4bc966) 2014-09-25 Jussi Pakkanen * Path fix as requested by James. (1cff034) 2014-09-25 Pawel Stolowski * Set multi-arch for the common pkg. (f61d948) * Updated changelog (d69ab2e) 2014-09-24 Pawel Stolowski * Create thumbnailer-common package with album_missing.png icon. (239df40) 2014-09-24 Jussi Pakkanen * Dirty path fixup. (194e738) * Added apport blacklist file for vs-thumb. (5ad8181) 2014-09-18 Jussi Pakkanen * A few fixes for libc++. (e2989ac) 2014-09-17 Pawel Stolowski * Use ASSERT_NE. (0854d9e) * Merged trunk (12e711c) * Added test for api key in the url. (2f78891) 2014-09-16 Pawel Stolowski * Bumped version. (9a99221) * Check if schema exists. (47339cd) 2014-09-16 Jussi Pakkanen * Add test for an image without embedded exif data. (09db4b5) 2014-09-16 Pawel Stolowski * Read and pass api key to the ubuntu server. (6b20b2a) * Fix schema. (b8bf1a6) * Added schema file. (5feb184) 2014-09-16 Jussi Pakkanen * Reorient thumbnail image according to orientation info in the source image. (9754d58) 2014-09-16 CI bot * Releasing 1.2+14.10.20140916-0ubuntu1 (77f8a41) 2014-09-16 Jussi Pakkanen * Clean up warnings as reported by gcc and shiny new clang. Approved by: Pete Woods, PS Jenkins bot (ab0514a) * Make a few classes more resistant to copying. Approved by: Pete Woods, PS Jenkins bot (820f376) 2014-09-15 Jussi Pakkanen * Warning cleanup. (70f3ebd) * And in the Qml plugin. (a2232e2) * Made cache more robust. (4042611) 2014-09-11 Jussi Pakkanen * Play around with file names so things work. (ead1f1c) 2014-09-10 Jussi Pakkanen * Extract exif thumbnail if it exists. (19294aa) 2014-09-04 CI bot * Releasing 1.2+14.10.20140904-0ubuntu1 (8b6c247) 2014-09-04 Jussi Pakkanen * Move embedded thumbnail extraction to a helper binary to avoid linking main library with gstreamer. Fixes: 1363314 Approved by: James Henstridge (e4d7d85) 2014-09-03 Jussi Pakkanen * Sync trunk with distro release (7e34811) * Bring in changelog entries from manual revert uploads. (9550e67) * Move embedded thumbnail extraction out of process to a helper binary. (5f3b25c) 2014-09-01 CI bot * Releasing 1.2+14.10.20140901-0ubuntu1 (3a6bb0f) 2014-09-01 Pawel Stolowski * Changed requests image sizes to match sizes supported by the server. Approved by: James Henstridge, Jussi Pakkanen (91d9047) 2014-08-29 Pawel Stolowski * Updated changelog. (7c91e6a) * Merged trunk (4e7d634) 2014-08-27 CI bot * Releasing 1.2+14.10.20140827.1-0ubuntu1 (50c2023) 2014-08-27 Jussi Pakkanen * Link against thread library explicitly. Approved by: PS Jenkins bot, Rodney Dawes (c6e46e5) * Re-enable embedded album art. Approved by: Pete Woods, Pawel Stolowski (9f67315) 2014-08-20 Pawel Stolowski * Changed requested image sizes to ones better supported by the web service. (ac1b9c2) 2014-08-20 Jussi Pakkanen * Link against thread lib explicitly. (9e149c3) 2014-08-18 Jussi Pakkanen * Re-enable embedded album art now that GStreamer 0.10 is dead. (d4d76f9) 2014-08-14 CI bot * Releasing 1.2+14.10.20140814-0ubuntu1 (6d1719a) 2014-08-14 Jussi Pakkanen * Print log message when errors happen. Approved by: Jean-Baptiste Lallement (12b5c41) * Some logging. (6b55cfe) 2014-08-12 CI bot * Releasing 1.2+14.10.20140812-0ubuntu1 (6374fa7) 2014-08-12 Pawel Stolowski * Use Ubuntu webservice for album art and provide artist art API. (01e4f96) * Merged trunk (e3d732a) * Bumped version (4702ee6) * Merfed devel. (e6c5625) 2014-08-11 CI bot * Releasing 1.1+14.10.20140811-0ubuntu1 (ec6d437) * Replaced 0replaceme with real versions. (f8764f7) 2014-08-11 Pawel Stolowski * Request images of size 400 instead of 200 from ubuntu server. Approved by: Michal Hruby (72d1231) 2014-08-11 Jussi Pakkanen * Work with file names with non-european characters by not writing metadata chunks when they can't be represented in ISO-8859-1. Fixes: 1319698 Approved by: Arthur Mello, PS Jenkins bot (814afe3) 2014-08-11 Ɓukasz 'sil2100' Zemczak * Merge in direct upload of 1.1+14.04.20140401.1-0ubuntu3 (a1f9d93) 2014-08-11 Jussi Pakkanen * Grab changelog info from upload that went past CI train. (8910422) 2014-08-07 Pawel Stolowski * Doubled requested image size from 200 to 400 (7ea1f62) * Fix try - catch one more time. (44fce3a) * Fixed try - catch braces. (844a57e) * Fixed symbols file. (e831c09) 2014-08-06 Pawel Stolowski * Changed requested image size for ubuntu server. (a76db4a) * Updated symbols. (6c10039) * Use a known working artist/album for ubuntuserver test tool. (eaf152c) 2014-08-04 Pawel Stolowski * Enhanced QML test with artist art fetching. (fadd24e) * Added tests for artist art. (a2cf67a) 2014-08-01 Pawel Stolowski * Reduce code duplication. (07dba6a) * More complete impl. (bb10d4f) * Take artist and album when getting artist art. (61022e4) * Moved out duplicated code from the art/album generators in the plugin into helper functions. (e6c2ecb) * Added ArtistArtGenerator. (d3e1fad) * More complete impl. (5ed0e40) 2014-07-31 Pawel Stolowski * Implemented download_artist for ubuntu server downloader. (c99cf57) * Added abstract class for the downloader. Added downloader for ubuntu server. (65fb531) 2014-06-03 Jussi Pakkanen * Work around PNG requirement that text chunks must be representable in ISO-8859-1. (60a83dd) 2014-06-02 Arthur Mello * Add test to handle files with chinese text as name (90ce668) 2014-05-14 James Henstridge * Remove unneeded global var. (14be4ec) * Return an null image object rather than the fallback image. This lets applications detect the failure and provide their own fallback. (d741ade) 2014-04-29 Ricardo Salveti de Araujo * releasing package thumbnailer version 1.1+14.04.20140401.1-0ubuntu2 (120fd97) 2014-04-01 CI bot * Releasing 1.1+14.04.20140401.1-0ubuntu1 (0b04f3d) 2014-04-01 Michal Hruby * Provide virtual thumbnailer package. (7b67ef1) * Provide virtual thumbnailer package (12a20c6) 2014-03-31 CI bot * Releasing 1.1+14.04.20140331-0ubuntu1 (d818e47) 2014-03-31 Jussi Pakkanen * Add a D-Bus service that uses libthumbnailer to download cover art and then provides that art to the client via a read only file descriptor. This allows confined applications to safely access a shared media art cache. Fixes: 1262711 (4130299) 2014-03-28 James Henstridge * Other fixes from Jussi's review comments. (a489145) * Add a note to the D-Bus interface definition file warning about security considerations when adding new methods to the service. (13400e1) * Add a test for the image provider. Not currently hooked up as an automated test, since it can't run headless. (59554f7) * Merge lp:~jpakkane/thumbnailer/lastfmtest (bd1b325) * Merge from trunk, fixing conflicts. (1856ea9) * Register a bogus type so the QML module can be imported. (3c10977) * Add packaging for thumbnailer QML plugin. (4642a69) * Copy over the libthumbnailer QML image providers over from ubuntu-ui-toolkit. (00b2302) 2014-03-27 CI bot * Releasing 1.0+14.04.20140327-0ubuntu1 (0539c66) 2014-03-27 Jussi Pakkanen * Obey the TMPDIR. Fixes: 1296987 (3ba9bf8) 2014-03-26 Jussi Pakkanen * Follow application confinement guidelines. (5271bd9) 2014-03-24 James Henstridge * Update per Jussi's review comments. (f55b704) 2014-03-24 Jussi Pakkanen * Override XDG_CACHE_DIR in MediaArtCache test. (d9b119d) 2014-03-24 James Henstridge * Fix up installation of service file. (2ec773e) * Add a package to hold the D-Bus service. Set it to Multi-Arch: foreign, since the single D-Bus service should be usable by other architectures on a system. (148c65f) * Install a service file. (39d7f4f) * Add code for dbus thumbnailing service. (d9e1f3a) 2014-03-20 Jussi Pakkanen * Not completely fail at concurrency. (5ef937b) * Test thread safety of downloader. (c82622a) * Better. (da3b078) * Guard against utf8 normalisation changing string length. (04cee49) * Make sure there is room for terminator. (1abb67c) 2014-03-19 CI bot * Releasing 1.0+14.04.20140319-0ubuntu1 (8dc61c9) 2014-03-19 Jussi Pakkanen * Prevent crash if exif entry is null. Fixes: 1294274 (992cefe) * Doh. (a80acee) * Unlink tmp file. (21c3cc8) * Created fake server and added a test that uses it. (0a27665) * Test scaffolding for downloader. (5092676) * Factored downloading to its own class. (4e73f42) * More dense. (fc0d968) * Guard against null exif entry. (0b8e2e6) 2014-03-12 Jussi Pakkanen * Merged trunk. (2693ab5) 2014-03-10 Jussi Pakkanen * No longer need to override build type. (0b3b1f7) * Clean up temp files. (9e74aac) * Symbol fix. (58a88ca) * Bump version for new stuff and update deb packaging. (7d8484b) * Bring basic to new gtest era. (52f9bf0) * Unique_gobj now uses gtest. (712eace) * Enable MediaArtCache tests. (bb6a397) * Use downloader class in test app. (d102d44) * Moved lastfm downloader into its own class. (52dcbdd) * Moved MediaArtCache class into here. (59fc152) * Now with explicit gioness. (0dda620) * Merged visibility changes. (76c2ffe) 2014-03-07 CI bot * Releasing 1.0+14.04.20140307-0ubuntu1 (20a83b0) 2014-03-07 Jussi Pakkanen * Reorient images manually to work around a bug in GdkPixbuf. (f382619) * Added visibility info to prevent accidental ABI breakages. (94525a8) * Now with working symbol version file. (5fad349) * Experiments with symbol visibility map. (e3e63b9) 2014-03-06 Jussi Pakkanen * Even more visibility hiddenness. (df025c1) * Now with less visible symbols. (3ba1b27) 2014-03-05 Jussi Pakkanen * Add test for image reorientation. (954edb5) * Fix orientation manually. (2083c39) 2014-03-04 CI bot * Releasing 1.0+14.04.20140304-0ubuntu1 (ca1f896) 2014-03-04 Ugo Riboni * Add a new nonstandard thumbnail size (360) needed by gallery-app (2377bd5) 2014-03-04 Jussi Pakkanen * Fix image orientation. (a6540bc) * Error condition checking and error messages. (485fd32) 2014-02-25 Ugo Riboni * Remove mistakenly committed code from another branch that wasn't approved yet. (234e8c7) 2014-02-24 Ugo Riboni * Fix typo in comment (bbfcfc1) 2014-02-20 Ugo Riboni * Add tests for the xlarge size (d79538f) * Update the size of the xlarge thumbs as 512, the next logical progression (4e9423f) * Fix a bug in how the directory name is retrieved (88c4eca) * Merge changes from trunk (a6173a0) 2014-02-19 Ugo Riboni * Add one non-standard thumbnail size, needed by gallery-app (980a109) 2014-02-19 CI bot * Resync trunk (68f9df0) 2014-02-18 Ricardo Salveti de Araujo * vs-thumb: give pipeline at least 3 seconds to preroll. (39fce5f) 2014-02-18 CI bot * Releasing 1.0+14.04.20140218-0ubuntu1 (b1489f0) 2014-02-18 Ricardo Salveti de Araujo * vs-thumb: give pipeline at least 3 seconds to preroll (0d85d49) * vs-thumb: give pipeline at least 3 seconds to preroll (eb9f169) 2014-02-17 Jussi Pakkanen * Invalidate cached images when source has changed. (7ee7fae) * Fix image orientation. (2346492) 2014-02-14 Jussi Pakkanen * Error message. (e785dae) * Fallback and print error if duration check fails. (7ada007) 2014-02-12 Jussi Pakkanen * Invalidate cache if source has changed. (d15d752) 2014-02-11 Jussi Pakkanen * Removed accidentally added file. (75db877) * Removed accidentally added file. (1d167d9) 2013-12-10 Jussi Pakkanen * A bunch of fixes to make the project compile on precise. (74be018) * Hopefully the last fix for precise. (0580cc0) * Final mangling for precise. (71d3176) 2013-12-06 Jussi Pakkanen * Precise fix. (2c256e6) 2013-12-04 Jussi Pakkanen * Fix use of #includes. Fixes: https://bugs.launchpad.net/bugs/1237045. (3ed7d79) * Moved #ifdef to the top so it is before any #includes. (fe0ef75) * More explicitnessing. (3487e83) * Include direnct explicitly. (22ad932) 2013-11-08 Jussi Pakkanen * Typo fix. (b89c1c3) * Use the correct free. (82b14fb) * Use unique_gobj with soupsession. (b290338) * Rework API. (1b0c4f4) * Reorganised generator code. (107e0e1) * Merged trunk. (56f0327) 2013-11-04 Jussi Pakkanen * Created a unique_gobj class for managing gobject based resources. (7aae968) * Added implementations for get_deleters. (5f73c33) * Assure size of unique_gobj is the same as plain pointer. (0281f0a) * Added nullptr_t constructor. (03f0901) * Comment clarification. (76b1544) 2013-11-01 Jussi Pakkanen * Unique_gobj is final. (dd83ab5) * Made operator* not noexcept. (71ee166) * Made reset more standard compliant. (875a8c3) * Added deleter getters. (9cdb7a8) * Some noexcepts. (99bb55c) * Null test fix. (feba6ea) 2013-10-31 Jussi Pakkanen * Documented unique_gobj. (fd92604) * Tuning. (1922106) * Unique_ptring. (700e4b5) * Can read images from lastfm. (666db57) * Parse XML. (520fda8) * Pull data from lastfm. (0d6d83b) * Started downloader code. (7dbc3b9) 2013-10-29 Jussi Pakkanen * Use std::swap. (23934cd) * Some nullptring and noexcepting. (cd5bde1) * Get rid of unique_ptr and do management manually. (f379495) 2013-10-16 Jussi Pakkanen * Test nulls. (8d08bef) * Test that moves work. (a33bd2c) * Some more asserts. (3f1ab46) * Check that someone is not trying to add a floating gobject. (8443ada) 2013-10-14 Jussi Pakkanen * Test tweak. (4dcb596) * Test swap. (4e56481) 2013-10-11 Automatic PS uploader * Releasing 1.0+13.10.20131011-0ubuntu1 (revision 58 from lp:thumbnailer). (97ff917) 2013-10-11 Jussi Pakkanen * Check that refcount actually reduces. (353d3dc) * One last fix. (dfe28cb) * Some more fixes for issues raised by Michi. (983c378) * C++ fixes for issues found by Michi. (bc8af77) * Test that release works. (c6250db) * Start using unique_gobj. (d1f857b) * Renamed gobj_unique to unique_gobj. (9890455) * Equality test. (8ba16a0) * Implementation of unique_gobj. (4435606) 2013-10-11 Automatic PS uploader * Releasing 1.0+13.10.20131011-0ubuntu1, based on r58 (382f915) 2013-10-09 Jussi Pakkanen * Wait for child process to die when killing it with SIGKILL. (3c0c5fd) * Fix install directory of vs-thumb. Fixes: https://bugs.launchpad.net/bugs/1235325. (b63f499) * Install vs-thumb in the proper place. (d76ae2b) * Clear zombies. (4c6945b) 2013-10-08 Automatic PS uploader * Releasing 1.0+13.10.20131008-0ubuntu1 (revision 55 from lp:thumbnailer). (8bae5df) * Releasing 1.0+13.10.20131008-0ubuntu1, based on r55 (84ee1fa) 2013-10-08 Jussi Pakkanen * Disable use of in-process GStreamer because we use 1.0, which clashes with 0.10. Fixes: https://bugs.launchpad.net/bugs/1235484. (b0167a9) * Documented reason why audio was disabled. (35f929b) * Temporarily disable all parts that use GStreamer 1.0 in-process as those caused a clash. (f4b629d) * Fix off by one error. Fixes: https://bugs.launchpad.net/bugs/1235444. (e9e647e) 2013-10-07 Jussi Pakkanen * Fix off by one error. (14e8c43) 2013-10-07 Automatic PS uploader * Releasing 1.0+13.10.20131007-0ubuntu1 (revision 52 from lp:thumbnailer). (6effb76) * Releasing 1.0+13.10.20131007-0ubuntu1, based on r52 (946336b) 2013-10-04 Jussi Pakkanen * Document the public interface. (ad3f306) * Clarification. (a81aadd) * Documentation improvement. (e4966ca) * Guard against a frozen worker process. (e1cf7d8) * Cleanup leftover temp file. (45ae256) * Increase time vs-thumb is allowed to run. (0008c9f) * Guard against a frozen worker process. (9d22507) 2013-10-03 Jussi Pakkanen * Write files into cache atomically. (0e3b51a) * Write files to cache atomically. (c11ff9c) 2013-10-03 Automatic PS uploader * Releasing 1.0+13.10.20131003-0ubuntu1 (revision 48 from lp:thumbnailer). (35c31f0) * Releasing 1.0+13.10.20131003-0ubuntu1, based on r48 (21664c2) 2013-10-02 Jussi Pakkanen * Adds support for full resolution thumbnails. (fc412d0) * Path fix. (c78ca29) * Check that full res images are not cached but the original is returned instead. Also fix code so said test passes. (5d8997a) * Error to stderr. (0c8c3c4) * Final tests and packaging changes for full sized thumbnails. (2152edb) * Cleanup. (2077ab5) * Store full size images. (63da779) * One more refactoring. (4ef839c) * Refactoring. (b93ec16) * Start work on full size image support. (aeef26c) 2013-10-02 Automatic PS uploader * Releasing 1.0+13.10.20131002-0ubuntu1 (revision 43 from lp:thumbnailer). (18498cf) 2013-10-02 Jussi Pakkanen * Use helper binary from build dir when running tests. (c430cb8) * Get helper path from config.h. (66ef634) * Run gstreamer video pipelines in an external process. (7f7e30a) 2013-10-02 Automatic PS uploader * Releasing 1.0+13.10.20131002-0ubuntu1, based on r43 (3b22575) 2013-09-30 Ɓukasz 'sil2100' Zemczak * Packaging review (ea3217c) * Merge in trunk (c3e325e) 2013-09-30 Jussi Pakkanen * Typo fix. (b1c0f37) 2013-09-30 Ɓukasz 'sil2100' Zemczak * Packaging review (517ea3b) 2013-09-30 Jussi Pakkanen * Renamed GStreamer deps. (0a25d73) * Added coverage support for great Jenkins justice. (851f455) * Added test for video. (f9c3171) 2013-09-27 Jussi Pakkanen * Store data required by the thumbnail spec into png metadata fields. (ffc3746) * Prune old files from cache if it gets too large. (52fa8d4) * Test that stale image deletion works. (af2687f) * Delete stale files from cache. (e41f886) * Changed license to LGPL3. (0ffd5c0) * Added cache clearing functionality. (db999e5) * Guard even more against malformation. (003c415) * Use either global or app-local cache directory based on write access permissions. (0a1d015) 2013-09-26 Jussi Pakkanen * Better error messages. (20ea7e1) * Made public class C++03 compatible. (cf48f84) * Removed final specifier from public header so it works with C++ earlier than 0x. (c2754bf) * Gdk-pixbuf fix from James. (68ab6aa) 2013-09-25 Jussi Pakkanen * Package renaming. (e7fcba5) * A few fixes. (00f6846) * Added gstreamer plugins to deps. (559cda0) * Added few missing includes. (1d47360) * Added Debian packaging. (70b2396) 2013-09-23 Jussi Pakkanen * Install headers and pc file. (124001f) * Set shared library version and install things. (20d35d7) * Added some tests. (96faaac) * Now can extract and store thumbnails of pictures, videos and audio files. (d082e37) * Getting there. (78c78ea) * Initialize thumbnail cache. (0363f3b) * Renamed enum. (ed690fd) * Build file names and dirs. (869be52) * Work on thumbnail cache. (22ac768) * Made all classes final. (bc3ec06) * Can haz scaled images. (a7dc781) * Check against conversion failure. (b900989) * Specify file name from the outside. (eaaa110) * Can grab screenshots from videos. (21bae8a) * Simple dumper app. (6cd49c1) * Write thumbnail into a temp file. (9e1617d) * Added code to extract thumbnails from audio files. (9365bf3) 2013-09-20 Jussi Pakkanen * Skeleton for image scaler. (8902fb2) * Skeleton for video screenshot taker. (0860fe9) * Skeleton for audio extractor. (3a039c1) * Start project with skeleton. (38a68b2) lomiri-thumbnailer-3.0.0/HACKING000066400000000000000000000075551407036215500163230ustar00rootroot00000000000000Building the code ----------------- By default, the code is built in release mode. To build a debug version, use $ mkdir builddebug $ cd builddebug $ cmake -DCMAKE_BUILD_TYPE=debug .. $ make For a release version, use -DCMAKE_BUILD_TYPE=release Running the tests ----------------- $ make $ make test Note that "make test" alone is dangerous because it does not rebuild any tests if either the library or the test files themselves need rebuilding. It's not possible to fix this with cmake because cmake cannot add build dependencies to built-in targets. To make sure that everything is up-to-date, run "make" before running "make test"! To run the tests with valgrind: $ make valgrind It doesn't make sense for some tests to run them with valgrind. For example, the header compilation tests don't need valgrind because we'd just be testing that Python doesn't leak. There are also some tests that run too slow and time out under valgrind and, occasionally, valgrind crashes for a particular test. There are two ways to suppress tests: You can add a test name to CTestCustom.cmake.in to suppress that test completely. That makes sense for the header compilation tests, for example. If a specific test case in a test program causes a valgrind problem, you can selectively disable a section of code like this: #include if (!RUNNING_ON_VALGRIND) { // Code here crashes valgrind... } That way, the test will still be run as part of the normal "make test" target, but will be ommitted when running "make valgrind". Coverage -------- To build with the flags for coverage testing enabled and get coverage: $ mkdir buildcoverage $ cd buildcoverage $ cmake -DCMAKE_BUILD_TYPE=coverage $ make $ make test $ make coverage Unfortunately, it is not possible to get 100% coverage for some files, mainly due to gcc's generation of two destructors for dynamic and non- dynamic instances. For abstract base classes and for classes that prevent stack and static allocation, this causes one of the destructors to be reported as uncovered. There are also issues with some functions in header files that are incorrectly reported as uncovered due to inlining, as well as the impossibility of covering defensive assert(false) statements, such as an assert in the default branch of a switch, where the switch is meant to handle all possible cases explicitly. If you run a binary and get lots of warnings about a "merge mismatch for summaries", this is caused by having made changes to the source that add or remove code that was previously run, so the new coverage output cannot sensibly be merged into the old coverage output. You can get rid of this problem by running $ make clean-coverage This deletes all the .gcda files, allowing the merge to (sometimes) succeed again. If this doesn't work either, the only remedy is to do a clean build. Code style ---------- Please maintain the existing coding style. For details on the style, see lp:canonical-client-development-guidelines. We use a format tool that fixes a whole lot of issues regarding code style. See the HACKING file of lp:unity-scopes-api for details on the tool. Thread and address sanitizer ---------------------------- Set SANITIZER to "thread" or "address" to build with the corresponding sanitizer enabled. Some libraries cause a cause a large number of warnings from thread sanitizer. The tsan-suppress file supresses the benign race conditions we currently know about. To run the tests (from the build directory) with these suppressions enabled, use: $ TSAN_OPTIONS="suppressions=../tsan-suppress" make test If a test runs too slowly under address sanitizer, you can hide a section of code from address sanitzer with: #if defined(__has_feature) #if !__has_feature(address_sanitizer) // Code here takes forever under address sanitizer... #endif #endif lomiri-thumbnailer-3.0.0/cmake/000077500000000000000000000000001407036215500164005ustar00rootroot00000000000000lomiri-thumbnailer-3.0.0/cmake/UseGSettings.cmake000066400000000000000000000037151407036215500217740ustar00rootroot00000000000000# GSettings.cmake, CMake macros written for Marlin, feel free to re-use them. option (GSETTINGS_LOCALINSTALL "Install GSettings Schemas locally instead of to the GLib prefix" ${LOCAL_INSTALL}) option (GSETTINGS_COMPILE "Compile GSettings Schemas after installation" ${GSETTINGS_LOCALINSTALL}) if(GSETTINGS_LOCALINSTALL) message(STATUS "GSettings schemas will be installed locally.") endif() if(GSETTINGS_COMPILE) message(STATUS "GSettings shemas will be compiled.") endif() macro(add_schema SCHEMA_NAME) set(PKG_CONFIG_EXECUTABLE pkg-config) # Have an option to not install the schema into where GLib is if (GSETTINGS_LOCALINSTALL) SET (GSETTINGS_DIR "${CMAKE_INSTALL_PREFIX}/share/glib-2.0/schemas/") else (GSETTINGS_LOCALINSTALL) execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} glib-2.0 --variable prefix OUTPUT_VARIABLE _glib_prefix OUTPUT_STRIP_TRAILING_WHITESPACE) SET (GSETTINGS_DIR "${_glib_prefix}/share/glib-2.0/schemas/") endif (GSETTINGS_LOCALINSTALL) # Run the validator and error if it fails execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_schemas OUTPUT_VARIABLE _glib_comple_schemas OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process (COMMAND ${_glib_comple_schemas} --dry-run --schema-file=${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_NAME} ERROR_VARIABLE _schemas_invalid OUTPUT_STRIP_TRAILING_WHITESPACE) if (_schemas_invalid) message (SEND_ERROR "Schema validation error: ${_schemas_invalid}") endif (_schemas_invalid) # Actually install and recomple schemas message (STATUS "GSettings schemas will be installed into ${GSETTINGS_DIR}") install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_NAME} DESTINATION ${GSETTINGS_DIR} OPTIONAL) if (GSETTINGS_COMPILE) install (CODE "message (STATUS \"Compiling GSettings schemas\")") install (CODE "execute_process (COMMAND ${_glib_comple_schemas} ${GSETTINGS_DIR})") endif () endmacro() lomiri-thumbnailer-3.0.0/data/000077500000000000000000000000001407036215500162315ustar00rootroot00000000000000lomiri-thumbnailer-3.0.0/data/CMakeLists.txt000066400000000000000000000013631407036215500207740ustar00rootroot00000000000000add_schema(com.lomiri.Thumbnailer.gschema.xml) # compile schema - only needed for tests; actual schema is handled as part of add_schema above execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_schemas OUTPUT_VARIABLE _glib_comple_schemas OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process (COMMAND ${_glib_comple_schemas} ${CMAKE_CURRENT_SOURCE_DIR} --targetdir=${CMAKE_CURRENT_BINARY_DIR} OUTPUT_STRIP_TRAILING_WHITESPACE) configure_file( etc_apport_blacklist.d_lomiri-thumbnailer.in etc_apport_blacklist.d_lomiri-thumbnailer @ONLY ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/etc_apport_blacklist.d_lomiri-thumbnailer" RENAME lomiri-thumbnailer DESTINATION "${CMAKE_INSTALL_SYSCONFDIR}/apport/blacklist.d" ) lomiri-thumbnailer-3.0.0/data/com.lomiri.Thumbnailer.gschema.xml000066400000000000000000000114361407036215500247070ustar00rootroot00000000000000 "0f450aa882a6125ebcbfb3d7f7aa25bc" API key for dash.ubuntu.com service API key for dash.ubuntu.com service 50 Size of the full-size image cache in megabytes The full-size cache is used to store full-size extracted media artwork and downloaded album art. 100 Size of the thumbnail image cache in megabytes The thumbnail image cache stores scaled thumbnail images. 2 Size of the failure cache in megabytes The failure cache records information about failed downloads or failed thumbnail extractions. 1920 Maximum size in pixels for a thumbnail Requests for thumbnails larger than this will automatically reduce the thumbnail to max-thumbnail-size in the larger dimension. An exception are requests for local thumbnails with size 0x0, which are returned in their original size. 168 Time to wait before re-trying for remote artwork that did not exist If artwork cannot be retrieved because the remote server authoritavely confirmed that no artwork exists for an artist and album, this parameter defines how long the thumbnailer waits before trying to download the same image again. The default is 168 hours (one week). 2 Time to wait before re-trying remote artwork that failed to download If artwork cannot be retrieved from the remote server due to an unexpected error (such as the server not responding), this parameter defines how long the thumbnailer waits before trying to download the same image again. The default is two hours. 8 Maximum number of concurrent downloads This parameter sets the maximum number of concurrent downloads for remote artwork. 0 Maximum number of concurrent image extractions This parameter sets the maximum number of concurrent image extractions from local video files. The default value is zero, which sets the value according to the number of CPU cores. 10 Maximum amount of time to wait for an image extraction or download (in seconds) This parameter sets the amount of time (in seconds) to wait for a remote image download or a thumbnail extraction before giving up. 10 Maximum number of pending DBus requests before the thumbnailer starts queuing them. This parameter limits the number of pending DBus requests to the thumbnailer service. If the number of concurrent requests exceeds the backlog, additional requests are queued and sent once the backlog drops below the limit. false Enable client-side tracing. If set to true, this parameter enables request tracing via qDebug() on the client side. 1 Sets the level of detail of log messages written to stderr. At the default setting (1), cache misses are logged, but no messages are written for cache hits. At setting 2, cache hits are logged as well. At setting 0, most messages that are part of normal operation are suppressed. Errors and other unusual operating conditions are always logged, regardless of the logging level. lomiri-thumbnailer-3.0.0/data/etc_apport_blacklist.d_lomiri-thumbnailer.in000066400000000000000000000000321407036215500270510ustar00rootroot00000000000000@SHARE_PRIV_ABS@/vs-thumb lomiri-thumbnailer-3.0.0/debian/000077500000000000000000000000001407036215500165425ustar00rootroot00000000000000lomiri-thumbnailer-3.0.0/debian/Jenkinsfile000066400000000000000000000006511407036215500207300ustar00rootroot00000000000000@Library('ubports-build-tools') _ buildAndProvideDebianPackage() // Or if the package consists entirely of arch-independent packages: // (optional optimization, will confuse BlueOcean's live view at build stage) // buildAndProvideDebianPackage(/* isArchIndependent */ true) // Optionally, to skip building on some architectures (amd64 is always built): // buildAndProvideDebianPackage(false, /* ignoredArchs */ ['arm64']) lomiri-thumbnailer-3.0.0/debian/changelog000066400000000000000000000527461407036215500204320ustar00rootroot00000000000000lomiri-thumbnailer (3.0.0) unstable; urgency=medium * Upstream-provided Debian package for lomiri-thumbnailer. See upstream ChangeLog for recent changes. -- UBports developers Sun, 04 Jul 2021 23:38:06 +0700 thumbnailer (2.5+ubports1) xenial; urgency=medium * No change rebuild for xenial -- Dan Chapman Mon, 08 Jan 2018 10:02:18 +0000 thumbnailer (2.5+ubports) vivid; urgency=medium * Imported to UBports -- UBports auto importer Tue, 31 Oct 2017 01:30:57 +0100 thumbnailer (2.4+17.04.20161114.1-0ubuntu1) zesty; urgency=medium * Added zesty to list of distros for which we suppress Qt tests. * Fixed code to work with taglib 1.11, which breaks the behavior of the taglib 1.9 API. -- Michi Henning Mon, 14 Nov 2016 01:18:42 +0000 thumbnailer (2.4+16.10.20160926.2-0ubuntu2) zesty; urgency=high * No change rebuild against boost1.62. -- Dimitri John Ledkov Tue, 01 Nov 2016 16:49:48 +0000 thumbnailer (2.4+16.10.20160926.2-0ubuntu1) yakkety; urgency=medium * Disabled QDBus-related tests on xenial and yakkety for the time being due to problems with Qt 5.6. See https://bugs.launchpad.net/ubuntu/+source/thumbnailer/+bug/1613561 https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-src/+bug/1625930 * Changed python-tornado dependency to python-tornado for cross-builds. -- Michi Henning Mon, 26 Sep 2016 07:36:07 +0000 thumbnailer (2.4+16.10.20160825-0ubuntu1) yakkety; urgency=medium * Changed python-tornado dependency to python-tornado for cross-builds. * Relaxed copyright for trace.cpp and trace.h to LGPL. -- Michi Henning Thu, 25 Aug 2016 06:59:02 +0000 thumbnailer (2.4+16.10.20160719-0ubuntu2) yakkety; urgency=medium * No-change rebuild for boost soname change. -- Matthias Klose Thu, 04 Aug 2016 08:32:55 +0000 thumbnailer (2.4+16.10.20160719-0ubuntu1) yakkety; urgency=medium [ Michi Henning ] * Changed copyright from GPL to LGPL for two files used in storage framework. [ James Henstridge ] * Fixed pkgconfig file for qt library. -- Michi Henning Tue, 19 Jul 2016 01:11:39 +0000 thumbnailer (2.4+16.10.20160530.3-0ubuntu1) yakkety; urgency=medium [ Michi Henning ] * Re-enabled copyright test on xenial and yakkety. [ CI Train Bot ] * No-change rebuild. -- Michi Henning Mon, 30 May 2016 11:07:33 +0000 thumbnailer (2.4+16.04.20160321-0ubuntu2) yakkety; urgency=medium * No-change rebuild for boost soname change. -- Matthias Klose Sat, 23 Apr 2016 18:50:26 +0000 thumbnailer (2.4+16.04.20160321-0ubuntu1) xenial; urgency=medium [ Michi Henning ] * vs-thumb now uses a separate pipe instead of writing to stdout (LP: #1556835). [ CI Train Bot ] * No-change rebuild. -- Michi Henning Mon, 21 Mar 2016 02:12:07 +0000 thumbnailer (2.4+16.04.20160302.1-0ubuntu1) xenial; urgency=medium [ Michi Henning ] * Thumbnails now preserve transparency of source image (LP: #1532719, LP: #1541836). * Fixed incorrect tests when checking full-size cache hits (LP: #1540753). * Minor improvements to man pages. [ CI Train Bot ] * No-change rebuild. -- Michi Henning Wed, 02 Mar 2016 05:20:31 +0000 thumbnailer (2.4+16.04.20160226-0ubuntu1) xenial; urgency=medium [ Michi Henning ] * Fixed incorrect build dependency for settings-defaults.h. * Re-enabled tests on powerpc and s390x, except for qml test. * Disabled vs-thumb test on powerpc64le due to gstreamer codec bug. * Added version check on start-up and automatic cache wipe if cache encoding version changes. * Changed local audio extraction for better performance: 12 times faster on Mako, 5 times faster on desktop. * thumbnailer-admin now works with relative paths (LP: #1538774). [ James Henstridge ] * Fixed thumbnail extraction from large animated GIF files (LP: #1527315). [ CI Train Bot ] * No-change rebuild. -- James Henstridge Fri, 26 Feb 2016 03:27:56 +0000 thumbnailer (2.3+16.04.20160210-0ubuntu1) xenial; urgency=medium [ James Henstridge ] * When a thumbnail can not be loaded, return an error from the image provider rather than substituting in a fallback image. Users can detect the problem via the status property of the QML Image component and provide their own fallback handling. (LP: #1324142) -- Pawel Stolowski Wed, 10 Feb 2016 00:51:48 +0000 thumbnailer (2.3+16.04.20160108.2-0ubuntu1) xenial; urgency=medium [ Michi Henning ] * Fixed incorrect display of cache policy by "thumbnailer-admin stats". * Limit GIF file size to 2 MB (LP: #1527315). * Fix non-working config settings for client-side API (LP: #1528058). [ CI Train Bot ] * No-change rebuild. -- Michi Henning Fri, 08 Jan 2016 12:43:17 +0000 thumbnailer (2.3+16.04.20160107.1-0ubuntu1) xenial; urgency=medium * Fix for lp:1531038. Much better user experience this way. (LP: #1531038) -- Michi Henning Thu, 07 Jan 2016 06:33:30 +0000 thumbnailer (2.3+16.04.20160107-0ubuntu1) xenial; urgency=medium [ Michi Henning ] * Ignored failing tests on PPC due to gstreamer problems. * Fixed crash that happened if the service was shut down while there were requests still processing in the thread pools. * Fixed incorrect handling of 400 (Bad Request) response from remote server (LP: #1512608). * Passing an invalid size to the QML or Qt APIs is now an error. * Added new gsettings key "log-level". Amount of noise in the logs is now reduced. Set log-level to 2 for verbose logging. [ CI Train Bot ] * No-change rebuild. -- Michi Henning Thu, 07 Jan 2016 04:36:39 +0000 thumbnailer (2.3+16.04.20151102.2-0ubuntu1) xenial; urgency=medium [ Michi Henning ] * "thumbnailer-admin clear f" now also resets the network retry timeout. * API documentation and man page improvements. * Videos with embedded artwork now display the artwork thumbnail instead of an extracted still frame (LP: #1510801). * Added cancelled() accessor to Request class. * Requests made via the Qt and QML APIs are correctly rate-limited now. * Added trace-client key to gsettings. * Service log now shows statistics on start-up. * Resetting the stats now also resets the network failure retry timout. * Fix for cover art extraction if only a preview cover image is available. [ Michael Sheldon ] * Added more robust content type detection (LP: #1499341). [ CI Train Bot ] * debian/libthumbnailer-qt1.0.symbols: update to released version. * No-change rebuild. -- Michi Henning Mon, 02 Nov 2015 12:36:56 +0000 thumbnailer (2.3+15.10.20150915.1-0ubuntu1) wily; urgency=medium [ Michi Henning ] * Added man pages for thumbnailer-admin, thumbnailer-service, and thumbnailer-settings. * Removed a bunch of lintian warnings and errors. * Removed source for persistent cache. * Added inactivity timeout to admin interface, so the service exits after 30 seconds if it is started only to, for example, retrieve the stats. Activity on the admin interface now keeps the service alive the same way activity on the thumbnailer interface does. * Added average hit and miss run length to stats returned by thumbnailer-admin. * Changed semantics for requests with (0,0) size. All requests are now clamped to a 1920x1920 bounding box. * Fixed incorrect timeout semantics for unexpected network errors. [ James Henstridge ] * Renamed QML package to qml-module-XXX format and add transitional package. (LP: #1342031) * Port QML module to use libthumbnailer-qt. [ Xavi Garcia ] * Add new libthumbnailer-qt1.0 library, providing a C++ client API. [ Albert Astals Cid ] * In QML image provider, only create QQuickTextureFactory when needed, fixing a memory leak when requests are cancelled. (LP: #1484914) [ CI Train Bot ] * debian/libthumbnailer-qt1.0.symbols: update to released version. * New rebuild forced. -- Michi Henning Tue, 15 Sep 2015 11:04:14 +0000 thumbnailer (2.2+15.10.20150801-0ubuntu1) wily; urgency=medium [ Michi Henning ] * Compatibility fixes for GCC 5, Boost 1.58, and Libapparmor 2.10. * Correctly initialise the cache stats after upgrading from an old cache version. * Rename clear-stats sub-command of thumbnailer-admin to zero-stats. [ James Henstridge ] * Pass a filename to the vs-thumb helper utility rather than a file descriptor. This avoids the use of the fdsrc GStreamer element, which appears to be unstable on Wily. [ CI Train Bot ] * New rebuild forced. -- CI Train Bot Sat, 01 Aug 2015 04:32:14 +0000 thumbnailer (2.1.1) UNRELEASED; urgency=medium [ Michi Henning ] * Added request limiter on the qml side, so we don't overrun DBus with too many outstanding requests. (DBus kills the connection if there are more than 400 or so outstanding requests.) -- Michi Henning Mon, 03 Aug 2015 14:28:09 +1000 thumbnailer (2.1+15.10.20150715-0ubuntu1) wily; urgency=medium [ James Henstridge ] * Expose more settings for the thumbnailer daemon via GSettings. * Change the security policy implementation to use aa_query_label() for file access checks rather than relying on file descriptor passing. This avoids the file descriptor exhaustion bugs with the previous implementation. (LP: #1381713) [ Michi Henning ] * Add thumbnailer-admin tool, which can be used to check the status of the cache and generate thumbnails via the command line. * Add time stamps to log messages. * Reduce the memory footprint of small caches, which in turn reduces the footprint of thumbnailer-service. * Don't implicitly compact the cache on service shutdown, as this can take some time. * Persist the cache stats over restarts of thumbnailer-service. * Don't save JPEG thumbnails at quality=100, since the quality improvement isn't justified by the extra storage. * Don't retry downloads when we have a hit from the failure cache. * Warn if an app requests an unsized thumbnail. [ CI Train Bot ] * New rebuild forced. -- CI Train Bot Wed, 15 Jul 2015 02:03:28 +0000 thumbnailer (2.0+15.10.20150527-0ubuntu2) wily; urgency=medium * Switch to unversioned Conflicts/Replaces on libthumbnailer0 to force removal of the obsolete package on upgrade from the previous version. -- Adam Conrad Wed, 17 Jun 2015 05:15:54 -0600 thumbnailer (2.0+15.10.20150527-0ubuntu1) wily; urgency=medium [ James Henstridge ] * New upstream version with many changes: - Switch to new cache implementation based on leveldb. - Move local file thumbnailing to the central D-Bus daemon, allowing for the cache to be shared between apps and its size kept under control. - The libthumbnailer library has been removed, since all clients of the cache rely on the D-Bus interface now. - The QML plugin now uses the QQuickAsyncImageProvider interface, enabling multiple thumbnails to be loaded simultaneously. - Improved test coverage. * Remove the libthumbnailer0 and libthumbnailer-dev binary packages. -- CI Train Bot Wed, 27 May 2015 05:36:31 +0000 thumbnailer (1.3+15.04.20150312-0ubuntu1) vivid; urgency=medium [ Albert Astals Cid ] * Use own QDBusConnection (LP: #1410260) -- CI Train Bot Thu, 12 Mar 2015 08:38:44 +0000 thumbnailer (1.3+15.04.20150122-0ubuntu1) vivid; urgency=low [ Florian Boucault ] * Keeps track of failed thumbnails and do not try to regenerate them. (LP: #1389678) * QML thumbnail provider: make sure sourceSize (aka requestedSize) is respected by downscaling at loading time if necessary. Makes TN_SIZE_ORIGINAL case much faster. (LP: #1391368) -- Ubuntu daily release Thu, 22 Jan 2015 08:56:16 +0000 thumbnailer (1.3+15.04.20150106-0ubuntu1) vivid; urgency=low [ Jussi Pakkanen ] * Fix a few potential memory corruptions. (LP: #1403906) -- Ubuntu daily release Tue, 06 Jan 2015 18:50:46 +0000 thumbnailer (1.3+15.04.20141202-0ubuntu1) vivid; urgency=low [ Alfonso Sanchez-Beato ] * [ Alfonso Sanchez-Beato ] Workaround for files with very few intra frames (LP: #1393834) -- Ubuntu daily release Tue, 02 Dec 2014 14:10:09 +0000 thumbnailer (1.3+15.04.20141106-0ubuntu1) vivid; urgency=low [ Jussi Pakkanen ] * Fix memory leak. * Use videoflip to fix orientation. (LP: #1191934) -- Ubuntu daily release Thu, 06 Nov 2014 05:38:14 +0000 thumbnailer (1.3+15.04.20141105-0ubuntu1) vivid; urgency=low [ Ricardo Salveti de Araujo ] * Enabling exif thumbnails again, as we now got the proper fix at qtubuntu-camera -- Ubuntu daily release Wed, 05 Nov 2014 04:05:25 +0000 thumbnailer (1.3+14.10.20141002-0ubuntu1) utopic; urgency=low [ Jussi Pakkanen ] * Disable exif thumbnails temporarily to work around a regression. -- Ubuntu daily release Thu, 02 Oct 2014 19:20:24 +0000 thumbnailer (1.3+14.10.20140926-0ubuntu1) utopic; urgency=medium [ Pawel Stolowski ] * Added gsettings schema with API key used for accessing dash.ubuntu.com service. - Pass the key with artist/album requests. * Install album_missing icon (taken from libunitycore package). [ Jussi Pakkanen ] * Use exif thumbnail if one is available. * A few simple fixes for issues found compiling against libc++. * Prevent apport from sending vs-thumb stacktraces. [ Pete Woods ] * There is a new thumbnailer-common package to hold default icons. -- Ubuntu daily release Fri, 26 Sep 2014 11:25:18 +0000 thumbnailer (1.2+14.10.20140916-0ubuntu1) utopic; urgency=low [ Jussi Pakkanen ] * Make a few classes more resistant to copying. * Clean up warnings as reported by gcc and shiny new clang. -- Ubuntu daily release Tue, 16 Sep 2014 08:14:04 +0000 thumbnailer (1.2+14.10.20140904-0ubuntu1) utopic; urgency=low [ Ubuntu daily release ] * New rebuild forced [ Jussi Pakkanen ] * Move embedded thumbnail extraction to a helper binary to avoid linking main library with gstreamer. (LP: #1363314) -- Ubuntu daily release Thu, 04 Sep 2014 07:43:24 +0000 thumbnailer (1.2+14.10.20140901.is.1.2+14.10.20140814-0ubuntu2) utopic; urgency=medium * Reintroduce the pthread linkage fix from 1.2+14.10.20140827.1-0ubuntu1, required for the package to build. -- Steve Langasek Tue, 02 Sep 2014 13:26:28 -0700 thumbnailer (1.2+14.10.20140901.is.1.2+14.10.20140814-0ubuntu1) utopic; urgency=medium * Revert the last two landings. The 1.2+14.10.20140827.1 version introduced a serious regression breaking many projects, indirectly caused by thumbnailer using gst. LP: #1363314. -- Ɓukasz 'sil2100' Zemczak Tue, 02 Sep 2014 21:50:08 +0200 thumbnailer (1.2+14.10.20140901-0ubuntu1) utopic; urgency=medium [ Pawel Stolowski ] * Changed requested images sizes to better match sizes supported by the web server. -- Ubuntu daily release Mon, 01 Sep 2014 07:32:23 +0000 thumbnailer (1.2+14.10.20140827.1-0ubuntu1) utopic; urgency=low [ Jussi Pakkanen ] * Re-enable embedded album art. * Link against thread library explicitly. -- Ubuntu daily release Wed, 27 Aug 2014 15:55:17 +0000 thumbnailer (1.2+14.10.20140814-0ubuntu1) utopic; urgency=low [ Jussi Pakkanen ] * Print log message when errors happen. -- Ubuntu daily release Thu, 14 Aug 2014 13:41:35 +0000 thumbnailer (1.2+14.10.20140812-0ubuntu1) utopic; urgency=medium [ Pawel Stolowski ] * Use Ubuntu webservice for album art and provide artist art API. -- Ubuntu daily release Tue, 12 Aug 2014 16:57:24 +0000 thumbnailer (1.1+14.10.20140811-0ubuntu1) utopic; urgency=low [ Ubuntu daily release ] * debian/libthumbnailer0.symbols: auto-update to released version [ Arthur Mello ] * Work with file names with non-european characters by not writing metadata chunks when they can't be represented in ISO-8859-1. (LP: #1319698) [ Jussi Pakkanen ] * Work with file names with non-european characters by not writing metadata chunks when they can't be represented in ISO-8859-1. (LP: #1319698) [ Pawel Stolowski ] * Request images of size 400 instead of 200 from ubuntu server. -- Ubuntu daily release Mon, 11 Aug 2014 14:20:34 +0000 thumbnailer (1.1+14.04.20140401.1-0ubuntu3) utopic; urgency=medium * No-change rebuild to get dbgsyms for all binaries onto ddebs.ubuntu.com -- Steve Langasek Thu, 24 Jul 2014 14:14:15 -0700 thumbnailer (1.1+14.04.20140401.1-0ubuntu2) utopic; urgency=medium * No-change rebuild for shlib changes in qtbase and qtdeclarative. -- Ricardo Salveti de Araujo Tue, 29 Apr 2014 14:53:03 -0700 thumbnailer (1.1+14.04.20140401.1-0ubuntu1) trusty; urgency=low [ Michal Hruby ] * Provide virtual thumbnailer package. -- Ubuntu daily release Tue, 01 Apr 2014 22:45:34 +0000 thumbnailer (1.1+14.04.20140331-0ubuntu1) trusty; urgency=medium [ Jussi Pakkanen ] * New minor release. -- Ubuntu daily release Mon, 31 Mar 2014 09:08:36 +0000 thumbnailer (1.0+14.04.20140327-0ubuntu1) trusty; urgency=low [ Jussi Pakkanen ] * Obey the TMPDIR. (LP: #1296987) -- Ubuntu daily release Thu, 27 Mar 2014 08:36:59 +0000 thumbnailer (1.0+14.04.20140319-0ubuntu1) trusty; urgency=low [ Jussi Pakkanen ] * Prevent crash if exif entry is null. (LP: #1294274) -- Ubuntu daily release Wed, 19 Mar 2014 20:16:40 +0000 thumbnailer (1.0+14.04.20140307-0ubuntu1) trusty; urgency=low [ Jussi Pakkanen ] * Added visibility info to prevent accidental ABI breakages. * Reorient images manually to work around a bug in GdkPixbuf. -- Ubuntu daily release Fri, 07 Mar 2014 15:41:18 +0000 thumbnailer (1.0+14.04.20140304-0ubuntu1) trusty; urgency=low [ CI bot ] * Resync trunk [ Ugo Riboni ] * Add a new nonstandard thumbnail size (360) needed by gallery-app To test from QML you will need this MR as well: https://code.launchpad.net/~amanzi-team/ubuntu-ui-toolkit/ubuntu-ui- toolkit-xlarge-thumbnails/+merge/207500 (LP: #1221968) [ Jussi Pakkanen ] * Error condition checking and error messages. * Fix image orientation. -- Ubuntu daily release Tue, 04 Mar 2014 10:09:12 +0000 thumbnailer (1.0+14.04.20140218-0ubuntu1) trusty; urgency=low [ Ricardo Salveti de Araujo ] * vs-thumb: give pipeline at least 3 seconds to preroll [ Jussi Pakkanen ] * Created a unique_gobj class for managing gobject based resources. * Fix use of #includes. (LP: #1237045) * A bunch of fixes to make the project compile on precise. * Removed accidentally added file. * Invalidate cached images when source has changed. -- Ubuntu daily release Tue, 18 Feb 2014 23:01:31 +0000 thumbnailer (1.0+13.10.20131011-0ubuntu1) saucy; urgency=low [ Jussi Pakkanen ] * Fix install directory of vs-thumb. (LP: #1235325) * Wait for child process to die when killing it with SIGKILL. [ Ubuntu daily release ] * Automatic snapshot from revision 58 -- Ubuntu daily release Fri, 11 Oct 2013 05:41:32 +0000 thumbnailer (1.0+13.10.20131008-0ubuntu1) saucy; urgency=low [ Jussi Pakkanen ] * Fix off by one error. (LP: #1235444) * Disable use of in-process GStreamer because we use 1.0, which clashes with 0.10. (LP: #1235484) [ Ubuntu daily release ] * Automatic snapshot from revision 55 -- Ubuntu daily release Tue, 08 Oct 2013 12:49:51 +0000 thumbnailer (1.0+13.10.20131007-0ubuntu1) saucy; urgency=low [ Jussi Pakkanen ] * Write files into cache atomically. * Guard against a frozen worker process. * Document the public interface. [ Ubuntu daily release ] * Automatic snapshot from revision 52 -- Ubuntu daily release Mon, 07 Oct 2013 10:52:14 +0000 thumbnailer (1.0+13.10.20131003-0ubuntu1) saucy; urgency=low [ Jussi Pakkanen ] * Run gstreamer video pipelines in an external process. * Get helper path from config.h. * Use helper binary from build dir when running tests. * Adds support for full resolution thumbnails. [ Ubuntu daily release ] * Automatic snapshot from revision 48 -- Ubuntu daily release Thu, 03 Oct 2013 03:26:49 +0000 thumbnailer (1.0+13.10.20131002-0ubuntu1) saucy; urgency=low [ Jussi Pakkanen ] * Initial release. * Typo fix. [ Ɓukasz 'sil2100' Zemczak ] * Automatic snapshot from revision 41 (bootstrap) [ Ubuntu daily release ] * Automatic snapshot from revision 43 -- Ubuntu daily release Wed, 02 Oct 2013 02:34:38 +0000 lomiri-thumbnailer-3.0.0/debian/compat000066400000000000000000000000021407036215500177400ustar00rootroot000000000000009 lomiri-thumbnailer-3.0.0/debian/control000066400000000000000000000102451407036215500201470ustar00rootroot00000000000000Source: lomiri-thumbnailer Section: libdevel Priority: optional Maintainer: UBports Developers Standards-Version: 3.9.6 Build-Depends: cmake, cmake-extras (>= 0.4), debhelper (>= 9), devscripts, dh-migrations, google-mock, gstreamer1.0-libav, gstreamer1.0-plugins-bad-faad, gstreamer1.0-plugins-good, libapparmor-dev, libboost-filesystem-dev, libboost-iostreams-dev, libboost-regex-dev, libexif-dev, libgdk-pixbuf2.0-dev, libgstreamer1.0-dev, libgstreamer-plugins-base1.0-dev, libgtest-dev, libleveldb-dev, libqtdbustest1-dev, librsvg2-common, libtag1-dev, liblomiri-api-dev, lsb-release, persistent-cache-cpp-dev (>= 1.0.4), python3-tornado , qml-module-qtquick2, qml-module-qttest, qtbase5-dev, qtbase5-dev-tools, qtdeclarative5-dev, shared-mime-info, xvfb, doxygen, Homepage: https://gitlab.com/ubports/core/lomiri-thumbnailer Package: lomiri-thumbnailer-service Architecture: any Multi-Arch: foreign Pre-Depends: ${misc:Pre-Depends}, Depends: dconf-cli, ${misc:Depends}, ${shlibs:Depends}, Conflicts: libthumbnailer0, thumbnailer-common Replaces: libthumbnailer0, thumbnailer-common Description: D-Bus service for out of process thumbnailing This package provides a D-Bus service that can provide thumbnails on behalf of another process. Package: qtdeclarative5-ubuntu-thumbnailer0.1 Architecture: any Multi-Arch: same Section: oldlibs Depends: qml-module-ubuntu-thumbnailer0.1, ${misc:Depends}, Description: transitional dummy package for QML interface for the thumbnailer. This package provides image providers that allow access to the thumbnailer from Qt Quick 2 / QML applications . This is a transitional dummy package for qml-module-ubuntu-thumbnailer0.1 which can be safely removed. Package: qml-module-lomiri-thumbnailer0.1 Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends}, Depends: ${misc:Depends}, ${shlibs:Depends}, liblomiri-thumbnailer-qt1.0 (= ${binary:Version}), Recommends: lomiri-thumbnailer-service (= ${binary:Version}), Description: QML interface for the thumbnailer. This package provides image providers that allow access to the thumbnailer from Qt Quick 2 / QML applications. Package: qml-module-ubuntu-thumbnailer0.1 Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends}, Depends: ${misc:Depends}, ${shlibs:Depends}, qml-module-lomiri-thumbnailer0.1 (= ${binary:Version}), Provides: ubuntu-thumbnailer-impl, ubuntu-thumbnailer-impl-0, Breaks: qtdeclarative5-ubuntu-thumbnailer0.1 (<< 2.3~), qml-module-ubuntu-thumbnailer0.1 (<< 3.0~), Replaces: qtdeclarative5-ubuntu-thumbnailer0.1 (<< 2.3~), qml-module-ubuntu-thumbnailer0.1 (<< 3.0~) Description: QML interface for the thumbnailer (Ubuntu compatibility layer). This package provides a compatibility layer for the Ubuntu.Thumbnailer QML type. Other distros other than UBports' Ubuntu Touch likely doesn't care about this package. Package: liblomiri-thumbnailer-qt1.0 Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends}, Depends: ${misc:Depends}, ${shlibs:Depends}, lomiri-thumbnailer-service, Description: Qt/C++ API to obtain thumbnails Library to obtain thumbnails Package: liblomiri-thumbnailer-qt-dev Section: libdevel Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends}, Depends: liblomiri-thumbnailer-qt1.0 (= ${binary:Version}), ${misc:Depends}, Description: Header files for Thumbnailer API Library to obtain thumbnails (dev files) Package: liblomiri-thumbnailer-qt-doc Section: doc Architecture: all Multi-Arch: foreign Depends: ${misc:Depends}, Description: Documentation for Thumbnailer API Library to obtain thumbnails (documentation) lomiri-thumbnailer-3.0.0/debian/copyright000066400000000000000000000032111407036215500204720ustar00rootroot00000000000000Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: thumbnailer Source: https://launchpad.net/thumbnailer Files: * Copyright: 2015 Canonical Ltd. License: GPL-3 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . On Debian/Ubuntu systems, the full text of the GPL v3 can be found in `/usr/share/common-licenses/GPL-3' Files: plugins/* include/internal/gobj_memory.h include/internal/safe_strerror.h include/internal/trace.h src/safe_strerror.cpp src/trace.cpp tests/copyright/* tests/gobj_ptr/* tests/headers/* tests/safe_strerror/* tests/whitespace/* Copyright: 2015 Canonical ltd License: LGPL-3 This program is free software: you can redistribute it and/or modify it under the terms of version 3 of the GNU Lesser General Public License as published by the Free Software Foundation. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. . On Debian systems, the full text of the GNU Lesser General Public License version 3 can be found in the file `/usr/share/common-licenses/LGPL-3' lomiri-thumbnailer-3.0.0/debian/liblomiri-thumbnailer-qt-dev.install000066400000000000000000000002261407036215500256220ustar00rootroot00000000000000usr/lib/*/liblomiri-thumbnailer-qt.so usr/include/lomiri-thumbnailer-qt-1.0/lomiri/thumbnailer/qt/*.h usr/lib/*/pkgconfig/liblomiri-thumbnailer-qt.pc lomiri-thumbnailer-3.0.0/debian/liblomiri-thumbnailer-qt-doc.install.disabled000066400000000000000000000000511407036215500273530ustar00rootroot00000000000000usr/share/doc/liblomiri-thumbnailer-qt/* lomiri-thumbnailer-3.0.0/debian/liblomiri-thumbnailer-qt-doc.lintian-overrides000066400000000000000000000002551407036215500276030ustar00rootroot00000000000000# Nothing we can do about this because, depending on the installed version # of jquery.js, the tree widget breaks. liblomiri-thumbnailer-qt-doc: embedded-javascript-library lomiri-thumbnailer-3.0.0/debian/liblomiri-thumbnailer-qt1.0.install000066400000000000000000000000501407036215500252600ustar00rootroot00000000000000usr/lib/*/liblomiri-thumbnailer-qt.so.* lomiri-thumbnailer-3.0.0/debian/liblomiri-thumbnailer-qt1.0.symbols000066400000000000000000000040611407036215500253100ustar00rootroot00000000000000liblomiri-thumbnailer-qt.so.1.0 liblomiri-thumbnailer-qt1.0 #MINVER# (c++)"typeinfo for lomiri::thumbnailer::qt::Request@Base" 2.3+15.10.20150915.1 (c++)"typeinfo name for lomiri::thumbnailer::qt::Request@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::cancel()@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::errorMessage() const@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::finished()@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::image() const@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::isCancelled() const@Base" 2.3+16.04.20151102.2 (c++)"lomiri::thumbnailer::qt::Request::isFinished() const@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::isValid() const@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::metaObject() const@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::qt_metacall(QMetaObject::Call, int, void**)@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::qt_metacast(char const*)@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::staticMetaObject@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::waitForFinished()@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Request::~Request()@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Thumbnailer::Thumbnailer()@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Thumbnailer::Thumbnailer(QDBusConnection const&)@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Thumbnailer::getAlbumArt(QString const&, QString const&, QSize const&)@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Thumbnailer::getArtistArt(QString const&, QString const&, QSize const&)@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Thumbnailer::getThumbnail(QString const&, QSize const&)@Base" 2.3+15.10.20150915.1 (c++)"lomiri::thumbnailer::qt::Thumbnailer::~Thumbnailer()@Base" 2.3+15.10.20150915.1 (c++)"vtable for lomiri::thumbnailer::qt::Request@Base" 2.3+15.10.20150915.1 lomiri-thumbnailer-3.0.0/debian/lomiri-thumbnailer-gsettings-schema-name-change.sh000066400000000000000000000026731407036215500303150ustar00rootroot00000000000000#!/bin/bash -euf # Copyright (C) 2021 UBports Foundation. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License version 3 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . # # Authored by: Ratchanan Srirattanamet set -o pipefail DCONF_SOURCE_DIR="/com/canonical/unity/thumbnailer/" DCONF_TARGET_DIR="/com/lomiri/thumbnailer/" # session-migration says we should be idempotent. We simply check if the target # is not empty as to not overwrite things that is set manually. target_content=$(dconf dump $DCONF_TARGET_DIR) if [ -n "$target_content" ]; then echo "${DCONF_TARGET_DIR} is not empty. Perhaps the migration has already" \ "happened, and/or the user has set additional settings." exit 0 fi # Now, simply pipe the output of "dconf dump" to "dconf load". Won't wipe the # old data, in case the migration goes wrong. dconf dump $DCONF_SOURCE_DIR | dconf load $DCONF_TARGET_DIR echo "Setting for Lomiri Thumbnailer migrated successfully." lomiri-thumbnailer-3.0.0/debian/lomiri-thumbnailer-service.install000066400000000000000000000004151407036215500253730ustar00rootroot00000000000000etc/apport/blacklist.d/lomiri-thumbnailer usr/bin/lomiri-thumbnailer-admin usr/lib/*/lomiri-thumbnailer/thumbnailer-service usr/lib/*/lomiri-thumbnailer/vs-thumb usr/share/dbus-1/services/com.lomiri.Thumbnailer.service usr/share/glib-2.0/schemas/* usr/share/man/man*/* lomiri-thumbnailer-3.0.0/debian/lomiri-thumbnailer-service.migrations000066400000000000000000000000721407036215500261000ustar00rootroot00000000000000debian/lomiri-thumbnailer-gsettings-schema-name-change.sh lomiri-thumbnailer-3.0.0/debian/qml-module-lomiri-thumbnailer0.1.install000066400000000000000000000000531407036215500262240ustar00rootroot00000000000000usr/lib/*/qt5/qml/Lomiri/Thumbnailer.0.1/* lomiri-thumbnailer-3.0.0/debian/qml-module-lomiri-thumbnailer0.1.lintian-overrides000066400000000000000000000001041407036215500302110ustar00rootroot00000000000000qml-module-ubuntu-thumbnailer0.1 binary: package-has-long-file-name lomiri-thumbnailer-3.0.0/debian/qml-module-ubuntu-thumbnailer0.1.install000066400000000000000000000000531407036215500262530ustar00rootroot00000000000000usr/lib/*/qt5/qml/Ubuntu/Thumbnailer.0.1/* lomiri-thumbnailer-3.0.0/debian/qml-module-ubuntu-thumbnailer0.1.lintian-overrides000066400000000000000000000001041407036215500302400ustar00rootroot00000000000000qml-module-ubuntu-thumbnailer0.1 binary: package-has-long-file-name lomiri-thumbnailer-3.0.0/debian/rules000077500000000000000000000025641407036215500176310ustar00rootroot00000000000000#!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 include /usr/share/dpkg/architecture.mk export DPKG_GENSYMBOLS_CHECK_LEVEL=4 # http://ccache.samba.org/manual.html#_precompiled_headers export CCACHE_SLOPPINESS=time_macros export QT_SELECT=qt5 %: dh $@ --with migrations --parallel --fail-missing distro=$(shell lsb_release -c -s) ifeq ($(distro), focal) # GlibC 2.31 in Ubuntu Focal has a bug which tries to use static-TLS area # to optimize TLS access in dynamically-loaded libraries, but end up not # having enough static-TLS area for the library that need it. See CMakeLists.txt # in the root. The issue is fixed in Glibc 2.32, but GlibC 2.31 in Debian seems # to be patched, thus this is not needed for Debian. ifneq ($(filter arm64 ppc64el, $(DEB_HOST_ARCH)),) ARCH_OPT := -DWORKAROUND_LIBGOMP_STATIC_TLS=ON endif endif override_dh_auto_configure: dh_auto_configure -- -DCMAKE_INSTALL_SYSCONFDIR=/etc -DENABLE_UBUNTU_COMPAT=ON $(ARCH_OPT) # Tests are not written to be run in parallel. # We ignore failing tests on PPC because the thumbnailer is irrelevant there, # and gstreamer has bugs in the plugins for PPC. test_args = --max-parallel=1 -- ARGS=\"--verbose\" override_dh_auto_test: #ifneq (,$(filter powerpc ppc64el s390x,$(DEB_HOST_ARCH))) # dh_auto_test $(test_args) || : #else dh_auto_test $(test_args) #endif lomiri-thumbnailer-3.0.0/doc/000077500000000000000000000000001407036215500160655ustar00rootroot00000000000000lomiri-thumbnailer-3.0.0/doc/CMakeLists.txt000066400000000000000000000002241407036215500206230ustar00rootroot00000000000000add_subdirectory(liblomiri-thumbnailer-qt) list(APPEND UNIT_TEST_TARGETS qt_example_test) set(UNIT_TEST_TARGETS ${UNIT_TEST_TARGETS} PARENT_SCOPE) lomiri-thumbnailer-3.0.0/doc/liblomiri-thumbnailer-qt/000077500000000000000000000000001407036215500230015ustar00rootroot00000000000000lomiri-thumbnailer-3.0.0/doc/liblomiri-thumbnailer-qt/CMakeLists.txt000066400000000000000000000020171407036215500255410ustar00rootroot00000000000000include(UseDoxygen OPTIONAL) file(GLOB libthumbnailer_headers "${PROJECT_SOURCE_DIR}/include/lomiri/thumbnailer/qt/*.h") add_doxygen( liblomiri-thumbnailer-qt-doc INPUT ${CMAKE_CURRENT_SOURCE_DIR}/tutorial.dox ${libthumbnailer_headers} OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/doc/liblomiri-thumbnailer-qt STRIP_FROM_PATH "${CMAKE_SOURCE_DIR}/src" STRIP_FROM_INC_PATH "${CMAKE_SOURCE_DIR}/include" EXCLUDE_PATTERNS */internal/* EXCLUDE_SYMBOLS *::internal* *::Priv EXAMPLE_PATH ${CMAKE_CURRENT_SOURCE_DIR} DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in PROJECT_NAME "Thumbnailer Qt API" ALL ) install(DIRECTORY ${PROJECT_BINARY_DIR}/doc/liblomiri-thumbnailer-qt/html DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/doc/liblomiri-thumbnailer-qt) add_subdirectory(examples) list(APPEND UNIT_TEST_TARGETS qt_example_test) set(UNIT_TEST_TARGETS ${UNIT_TEST_TARGETS} PARENT_SCOPE) lomiri-thumbnailer-3.0.0/doc/liblomiri-thumbnailer-qt/Doxyfile.in000066400000000000000000003140161407036215500251210ustar00rootroot00000000000000# Doxyfile 1.8.9.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all text # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv # for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "@DOXYFILE_PROJECT_NAME@" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. PROJECT_NUMBER = "@DOXYFILE_PROJECT_NUMBER@" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = "@DOXYFILE_OUTPUT_DIRECTORY@" # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = NO # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = YES # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = "@DOXYFILE_STRIP_FROM_PATH@" # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = "@DOXYFILE_STRIP_FROM_INC_PATH@" # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:\n" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: # Fortran. In the later case the parser tries to guess whether the code is fixed # or free formatted code, this is the default for Fortran type files), VHDL. For # instance to make doxygen treat .inc files as Fortran files (default is PHP), # and .f files as C (default is Fortran), use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = YES # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined # locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option # has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # (class|struct|union) declarations. If set to NO, these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = YES # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES, upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES, the # list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO, doxygen will only warn about wrong or incomplete # parameter documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. # Note: If this tag is empty the current directory is searched. INPUT = @DOXYFILE_INPUT@ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: http://www.gnu.org/software/libiconv) for the list of # possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank the # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, # *.qsf, *.as and *.js. FILE_PATTERNS = @DOXYFILE_FILE_PATTERNS@ # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = @DOXYFILE_EXCLUDE@ # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = @DOXYFILE_EXCLUDE_PATTERNS@ # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = @DOXYFILE_EXCLUDE_SYMBOLS@ # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = "@DOXYFILE_EXAMPLE_PATH@" # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = "@DOXYFILE_IMAGE_PATH@" # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # # # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # function all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see http://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the config file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the # cost of reduced performance. This can be particularly helpful with template # rich C++ code for which doxygen's built-in parser lacks the necessary type # information. # Note: The availability of this option depends on whether or not doxygen was # compiled with the --with-libclang option. # The default value is: NO. CLANG_ASSISTED_PARSING = NO # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that # the include paths will already be set by doxygen for the files and directories # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. CLANG_OPTIONS = #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in # which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = "@DOXYFILE_HTML_OUTPUT@" # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # http://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this # to NO can help when comparing the output of multiple runs. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = YES # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: http://developer.apple.com/tools/xcode/), introduced with # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a # Makefile in the HTML output directory. Running make will produce the docset in # that directory and running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated # (YES) or that it should be included in the master .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- # folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from http://www.mathjax.org before deployment. # The default value is: http://cdn.mathjax.org/mathjax/latest. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /