The rpcli AppArmor configuration includes a local conf, but a default
one wasn't provided:
AppArmor parser error for /etc/apparmor.d in profile /etc/apparmor.d/usr.bin.rpcli
at line 47: Could not open 'local/usr.bin.rpcli'
TODO: Do the same for rp-download, but the use of libexec might complicate
things.
This should only be included in a -dev package, and we're not including a
-dev package right now, since libromdata is intended for use only by
rom-properties.
This caused a conflict when upgrading from libromdata1 to libromdata2.
Upgrading from libromdata2 to libromdata3 in the future should work
without any issues.
gtk3 depends on utils, so this shouldn't be a big problem.
This is needed to prepare for the gtk4 package, which will also use the
rom-properties.thumbnailer file.
(cherry picked from commit d2f3476ab5)
Otherwise, the minimum GLib version is set to 2.66.0, which doesn't work
for most of the older Ubuntu distributions.
FIXME: Fix this such that if GLib 2.66.0 isn't found, but 2.34.0 or later
is found, it builds correctly and GTK4 is automatically disabled.
Tested with a Kubuntu 14.04 live image.
FIXME: Previews weren't working properly in Kubuntu 14.04.
Perhaps at some point I should just remove KDE4 support.
This uses a new option in rp-stub, '-a' / '--autoext', which creates the
output filename by changing the file extension of the source file.
TODO: Test on KDE4. If it works there with no or minimal changes, move
the .desktop file to a KDE common package. For now, it's in the KF5
package.
MSVC complains now because these classes are dllexport in order to fix
a build issue with RpPngFormatTest on Ubuntu 18.04:
src\librpfile/MemFile.hpp(150,15): warning C4251: 'LibRpFile::MemFile::m_filename':
class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
needs to have dll-interface to be used by clients of class 'LibRpFile::MemFile'
src\librpfile\VectorFile.hpp(136,24): warning C4251: 'LibRpFile::VectorFile::m_vector':
class 'std::vector<uint8_t,std::allocator<uint8_t>>' needs to have dll-interface
to be used by clients of class 'LibRpFile::VectorFile'
For MemFile, use a char* instead of std::string. This has a nice side
effect of reducing memory usage a bit.
For VectorFile, allocate the vector using new. This might have slight
additional overhead, since there's another pointer dereference.
VectorFile is currently only used by gtk/DragImage.cpp, so it isn't
a significant issue.
Note that since these fields are used by inline functions, changing them
*does* break the ABI, even though none of the symbols have changed, so the
libromdata SOVERSION was bumped to 2.
For rom-properties 2.0, only the Ubuntu 18.04 and later builds had the
prior changes to export MemFile, IRpFile, and RefBase, so the Windows
version didn't have that change and thus didn't need this ABI-breaking
change.
No `gdk` target since libgdk was merged into libgtk.
Added libgraphene-1.0, a dependency of libgtk-4.
Removed FindPango.cmake since it's no longer needed.
[gtk4] CMakeLists.txt: Use the new GTK4 targets and get rid of the
now-unnecessary FIND_PACKAGE() calls.
_GTK3_FIND_LIBRARY(): Remove _append_version, since GTK's versioning
has stabilized. Instead, append the version number to the library name.
This prevents mismatched version numbers betwen various GTK versions.
[gtk3] CMakeLists.txt: Use the new GTK3 targets and get rid of the
now-unnecessary FIND_PACKAGE() calls.
We're not using cjk.h right now, but better to ensure that it *is* usable
in case we decide to use it later.
[debian] copyright: Update copyrights for uniwidth.
uniwidth provides a uc_width() function, which is similar to wcwidth().
Our version removes the 'encoding' parameter, which isn't needed because
we're always using UTF-8.
Fixes#353: rpcli: bad table alignment on multibyte characters
Reported by @DankRank.
NOTE: `appstream-util verify` requires the XML file to have the correct
name in the source tree, so we can't simply have it as "metainfo.xml"
and rename on installation.
Other changes:
- rp-config.desktop: Rename on installation to:
com.gerbilsoft.rom-properties.rp-config.desktop
- DIR_INSTALL_MIME -> DIR_INSTALL_XDG_MIME; don't set it on Windows
or Linux.
- [xdg] CMakeLists.txt: Install based on the presence of the
DIR_INSTALL_XDG_* variables instead of the OS.
GSound depends on libcanberra, but it's an indirect dependency, so
if we use GSound, we don't need to use libcanberra.
GSound is available on Ubuntu 16.04, so we can switch to it on
most systems. The libcanberra backend is still supported for now,
though it might be removed later.
Since GSound doesn't have a GTK+ dependency, we can use it in the
GTK4 backend. (libcanberra doesn't support GTK4.)
MiniZip 2.10.0 uses ZSTD_compressStream2() and ZSTD_EndDirective.
Note that MiniZip is not currently used outside of test suites,
so this won't be installed as part of the package.
This fixes e.g. Windows EXE thumbnailing, which is supported by another
plugin on KDE, but not by rom-properties; however, rom-properties *does*
support EXE for properties functions. With both ThumbCreator and
KPropertiesDialog in one .desktop file, all MIME types were taken over
by rom-properties for ThumbCreator, even if those types weren't supported.
The JSON output code will be rewritten to use rapidjson, which will allow
us to add more stuff without having to worry if the resulting text has
the correct formatting.
This adds around 20 KB to the compiled binary.
I chose MiniLZO instead of regular LZO because we only need to be able to
decompress LZO1X blocks.
[libromdata] CisoPspReader: Don't call lzo_init() if this JISO isn't
actually using LZO. Otherwise, if the DLL is missing on Windows, the
program will crash.
- Renamed the gnome package to gtk3.
- gtk3-common is now part of gtk3.
- gtk3 now depends on thumbnailer-dbus.
- gtk3 has gnome in Conflicts/Replaces.
The XFCE (GTK+ 2.x) version is kept as-is.
Note that while the desktop-specific dev packages aren't needed anymore,
we're still listing them as build dependencies in order to ensure that
the extensions directory is correct.
Forgot to do this before merging the feature/combine-gnome3-plugins branch.
[gnome] CMakeLists.txt: Find LibNautilusExtension, LibCajaExtension,
and LibNemoExtension to install symlinks. If any of them aren't found,
a default value will be used.
- Check for both __SNR_* and __NR_*. libseccomp-2.4.2 added the __SNR_*
macros, but Ubuntu 19.10 has libseccomp-2.4.1. (Ubuntu 20.04 has
libseccomp-2.4.2.)
- #include <linux/unistd.h> to ensure the __NR_* macros are defined.
- debian/rules: Explicitly enable seccomp and disable seccomp debugging.
Needed for rp-download.
NOTE: Not rebuilding the Ubuntu 16.04 "Xenial Xerus" packages right now.
This is a minor issue and can be remedied by installing the
rom-properties-utils package manually.
(cherry picked from commit 8642c59004)
Since we can't get it working with 32-bit MinGW-w64, we'll just add our
own implementation that we'll use if timegm() and _mkgmtime() aren't
available.
TODO: Add a unit test to ensure that it's working correctly.
It's more efficient than loading the system MIME database, and it's more
accurate, since we already checked the ROM to determine what it is, and
the file extension might be incorrect and/or not specific enough.
Example: DSi-only ROM with a .nds extension.
[kde4] Removed MimeGlobsParser and config.kde4.h.in.
[debian] Removed the shared-mime-info dependency for the KDE4 UI frontend.
[doc] Removed the shared-mime-info mention for the KDE4 UI frontend.
No actual changes, but the license is now LGPL-2.1+ instead of GPL-3+.
The version in gettext seems to have always been LGPL, so I'm not sure
why mine was GPL.
[debian] copyright: Added gettext.h license information.
- s/poublisher/publisher/
- Use https for the GNU website.
- Added LGPL-2.1+.
- Updated LGPL-2.1 to refer to LGPL, not GPL.
This should have been done in commit b3f17f6318
([libi18n] gettext.h: Rebased to gettext-0.20.1's version.)
but it wasn't for some reason.
Using GCR_Cmake macros from: https://github.com/Makman2/GCR_CMake
Currently loading the full 16x16 sprite sheet as the icon for each
dropdown entry. This is obviously wrong, but it works as a basic
test for now.
PIMGTYPE.cpp: New function PIMGTYPE_load_png_from_gresource(). This
function loads a PNG image from the glibresources and returns it as
PIMGTYPE. This does *not* use rp_image at all; it uses Cairo's
built-in PNG loading functionality.
TODO: GdkPixbuf version.
Related bug report for LibreOffice:
https://bugs.documentfoundation.org/show_bug.cgi?id=125922
NOTE: dll-search.c still checks for "KDE5" for compatibility.
NOTE 2 We did NOT include "KDE5" in the forwarding plugins for
compatibility because they shouldn't be mixed-and-matched with
rom-properties versions.
The AppArmor profile has the following permissions, with everything else
denied:
- Allow TCP network access to download from online image databases.
- Allow read access to rom-properties.conf.
- Allow write access to .cache/rom-properties/.
[rp-download] Cache keys have the file extension, so we shouldn't add
it here. We *are* verifying that the file extension is supported, and
we have to remove it for amiibo.
CurlDownloader: Reduced the timeout to 10 seconds.
Install to the libexec directory.
[debian] Renamed rom-properties-stub to rom-properties-utils.
rp-download is now included as part of this package.
It seems that the R and B channels are backwards, so we'll need to fix
that next. Other than that, both 2bpp and 4bpp decoding seems to work.
(A lot better than my terrible attempt, at least.)
[cmake] options.cmake: Added an option for PVRTC. The code is licensed
under the MIT license, but we might as well provide an option for it
because it's third-party code instead of my own code.
TODO:
- Fix R/B channel ordering.
- PVRTC-II decoding?
- Add PVRTC decoding to KTX and DDS.
Moved it up from the gnome directory to the gtk3 directory.
NOTE: We can't add a MATE package right now because the earliest version
of Ubuntu I'm still supporting is 16.04, and that has MATE 1.12 (GTK2).
I'll add the MATE (and XFCE GTK3) packaging files in branches for the
appropriate Ubuntu verisons:
- Ubuntu 16.04 LTS: MATE 1.12.7 (GTK2), Thunar 1.6.11 (GTK2)
- Ubuntu 18.04 LTS: MATE 1.20.2 (GTK3), Thunar 1.6.15 (GTK2)
- Ubuntu 18.10: MATE 1.20.2 (GTK3), Thunar 1.8.1 (GTK3)
- Ubuntu 19.04: MATE 1.20.3 (GTK3), Thunar 1.8.4 (GTK3)
This is a stripped-down version of libmspack containing only the necessary
functionality for Xbox 360 executables.
Xenia commit: e706cf0d5413c31b7e80a50411cc88cc7c71af30
License: LGPLv2.1
config.h.in: Modified for cmake; removed unnecessary checks.
debian/copyright: Added copyright information.
cmake/options.cmake: Added an ENABLE_LIBMSPACK option. (default is ON)
Currently returns "security-medium" for all URLs.
TODO:
- The JSON file is not currently used. Should use kcoreaddons_add_plugin()
in CMake to make use of it.
- Consolidate common code in the plugin forwarders into a templated class.
(Or don't; it's not *that* much duplicated code...)
- Actually check the RomData subclass for overlay icons.
* GameCube: Fixed a crash when downloading external images for Disc 2
from multi-disc games. Thanks to @Nomelas for reporting this bug.
Conflicts:
CMakeLists.txt
NEWS.md