Commit Graph

90 Commits

Author SHA1 Message Date
3bea18708f
Bump version, update README.adoc
All checks were successful
Alpine 3.20 Success
Arch Linux Success
Arch Linux AUR Success
Debian Bookworm Success
Fedora 39 Success
OpenBSD 7.5 Success
openSUSE 15.5 Success
2024-12-23 16:53:54 +01:00
c221a00c33
Improve MSI package names
All checks were successful
Alpine 3.20 Success
Arch Linux Success
Arch Linux AUR Success
Debian Bookworm Success
Fedora 39 Success
OpenBSD 7.5 Success
openSUSE 15.5 Success
2024-12-23 16:12:35 +01:00
115a7bab0f
Fix a build issue, and a big endian conversion 2024-03-13 18:47:05 +01:00
91538aaba5
Add an experimental OpenGL renderer 2024-03-13 15:27:31 +01:00
604594a8f1
Prepare for parallelized colour management
This rewrite is more or less necessary for:
 - colour-managed browser thumbnails,
 - asynchronous image loading,
 - turning fiv-io into a reusable library.

Little CMS has a fairly terrible API in this regard.
2024-01-28 01:48:28 +01:00
3c8a280546
Move colour management to its own compilation unit
Also make it apparent that CMM profiles are pointer types.

This isn't all that pretty, but it's a necessary first step.
2024-01-26 19:17:54 +01:00
72bf913f3d
Add a tool to find hot pixels
It works well for my Nikon.

Note that hot pixels can be eliminated in the camera itself,
when you run sensor cleaning immediately after a very long exposure
of darkness.
2023-10-17 15:31:55 +02:00
e79574fd56
meson.build: update comments 2023-09-07 05:35:50 +02:00
d713d5820c
Fix installation within a Nix environment 2023-06-29 20:33:46 +02:00
6ee5f69bfe
Fix build within a Nix environment
Add a missing direct link dependency on libjpeg.
2023-06-27 22:48:48 +02:00
117422ade5
Fix build instructions, add .deb generation 2023-06-27 19:04:48 +02:00
2869c656c1
Centralize the project's URL 2023-06-26 15:46:10 +02:00
ec713b633e
Package the MSI from within a custom target 2023-06-26 15:34:10 +02:00
089c90004b
Produce a basic Windows installer package
We're very early adopters of msitools' new UI feature,
so this doesn't work on MSYS2 directly yet due to an old version.
2023-06-26 02:10:31 +02:00
3449ac5a12
Make GSettings find schema XMLs in devenv 2023-06-24 15:26:45 +02:00
c2e8b65d0f
Don't rebuild fiv-io.c several times 2023-06-23 16:48:32 +02:00
86622e0c31
Make cross-compilation scripts work from MSYS2
This is weird and runs very slowly.

Meson can also find libraries outside the subroot,
in particular the fast float plugin.
2023-06-22 04:06:38 +02:00
a4772ce319
Improve native MSYS2 build compatibility 2023-06-21 18:38:30 +02:00
1577961aa2
Improve compatibility with older dependencies 2023-06-10 11:52:49 +02:00
1fb42e689f
Declare minimum Meson version
Due to our meson.add_install_script() usage, which results in a warning,
followed by an error.
2023-06-10 11:52:49 +02:00
de377d3eae
Move the image load benchmark under tools 2023-06-08 18:59:20 +02:00
a9b34ca3f2
Unite most info tools into just one binary
Turn this into more of an fq alternative, when used with jq.

Also don't say that TIFF files are Exif.
2023-06-05 18:11:37 +02:00
338ae69121
Add support for the Little CMS fast float plugin
On a sample of JPEGs, it improved loading speed from ~0.26s to ~0.15s.

Unfortunately, it isn't normally installed.
2023-06-04 16:16:52 +02:00
1c61fcc5bc
Move git submodules to a subdirectory 2023-06-04 12:57:47 +02:00
859736e5be
Move FivIoModel to its own compilation unit 2023-05-28 09:33:03 +02:00
df7c7b9f6b
Fix build without tools 2023-05-26 15:50:54 +02:00
0359ddf99f
Add a tool to extract LibRaw file information 2023-05-26 13:30:22 +02:00
796b05c9a5
Integrate online reverse image search
This makes use of our image processing capabilities in order to
turn arbitrary image files into normalized thumbnails,
upload them to a temporary host, and pass the resulting URI
to a search provider.

In future, fiv should ideally run the upload itself,
so that its status and any errors are obvious to the user,
as well as to get rid of the script's dependency on jq.
2023-03-15 05:52:32 +01:00
95bc91e020
Find system libraries using proper names
Fixes Meson warnings.
2023-03-03 12:14:06 +01:00
0317b88c87
Don't require asciidoctor or a2x, import liberty 2022-10-09 01:24:03 +02:00
9fb90607ad
Add a traditional manual page for fiv 2022-08-24 05:23:34 +02:00
dd09af34b7
Make binaries say what git commit they come from
The manual skipping of the initial "v" from tag names is unfortunate,
but still a bit better than further cluttering up the build system.
2022-08-13 12:42:21 +02:00
dcbc8a90b4
meson.build: add a bunch of validating tests 2022-08-12 15:49:57 +02:00
1a163bdb8b
Resolve a few issues with MSYS2 cross-builds
- Fix launching of subprocesses (missing gspawn helpers).
 - Discard unused GSettings schemas.
 - Make the program find its user guide.
 - Bundle a somewhat suboptimal version of ExifTool.
2022-08-11 16:10:04 +02:00
cf19f82875
Automate Windows builds, add icons to executables
Scripts have been ported from sdtui, and adjusted for Meson.

The port is broken through and through on WINE,
but sort-of works natively.
2022-08-11 00:19:59 +02:00
701846ab39
Support opening collections of files
Implement a process-local VFS to enable grouping together arbitrary
URIs passed via program arguments, DnD, or the file open dialog.

This VFS contains FivCollectionFile objects, which act as "simple"
proxies over arbitrary GFiles.  Their true URIs may be retrieved
through the "standard::target-uri" attribute, in a similar way to
GVfs's "recent" and "trash" backends.

(The main reason we proxy rather than just hackishly return foreign
GFiles from the VFS is that loading them would switch the current
directory, and break iteration as a result.

We could also keep the collection outside of GVfs, but that would
result in considerable special-casing, and the author wouldn't gain
intimate knowledge of GIO.)

There is no perceived need to keep old collections when opening
new ones, so we simply change and reload the contents when needed.

Similarly, there is no intention to make the VFS writeable.

The process-locality of this and other URI schemes has proven to be
rather annoying when passing files to other applications,
however most of the resulting complexity appears to be essential
rather than accidental.

Note that the GTK+ file chooser widget is retarded, and doesn't
recognize URIs that lack the authority part in the location bar.
2022-08-08 18:06:50 +02:00
fa034a1a6a
Handle gdk-pixbuf's dynamic format support better
If we use it, install an update script.
2022-07-25 19:05:37 +02:00
dcc5b6c719
Use GSettings for a new native window toggle
Also, redo desktop files handling.
2022-07-25 19:05:27 +02:00
a1b2225750
Move the browser's popup menu to its own file 2022-07-04 20:44:47 +02:00
81145064de
Generate TIFF structs/enums from a text file
This is to make the tables much easier to maintain.
2022-06-10 02:18:14 +02:00
60a8ee7a80
Build tools with Meson as well 2022-06-10 02:08:56 +02:00
024b5117b4
Get rid of our spng dependency
Thumbnails can be properly loaded using Wuffs now.
2022-06-04 23:14:15 +02:00
a68a73cf5c
Don't mention gdk-pixbuf as a direct dependency
It's a similar case to Cairo.
2022-02-19 22:02:22 +01:00
433ede4bf1
Add a lossless JPEG cropper
This is more of an MVP, as metadata probably need adjustments.
2022-02-19 20:48:38 +01:00
ee71fb0dd0
Start a basic user guide
Move some information out there from the README.
2022-01-25 05:54:00 +01:00
a7e638207f
Fix Meson
The disabler, for some reason, bubbles up to its target.
2022-01-23 04:44:41 +01:00
4ba1d85363
Add preliminary support for resvg
It claims better SVG support, but it sucks for a plethora of reasons.
2022-01-21 09:14:19 +01:00
45238d78cd
Mesonize JPEG Quant Smooth
Now SIMD works on amd64, although the build remains questionable,
because it assumes that all of its compiler flags will work.

This way we lose an uncomfortable git submodule.

Also, add Meson subprojects to .gitignore.
2022-01-19 01:11:47 +01:00
feda4fd70f
Don't force sanitizers in debug builds 2022-01-07 08:37:18 +01:00
6869816cc4
Fix desktop file regeneration with certain AWKs 2022-01-07 06:47:13 +01:00