Skip to content

Commit 829065a

Browse files
Merge pull request #37 from jim-easterbrook/devel
Devel
2 parents 52f9ca2 + e2dcc35 commit 829065a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+1064
-151537
lines changed

.github/workflows/build-linux-28.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ jobs:
1111
- name: Fetch Exiv2 source
1212
run: >
1313
wget -nv
14-
https://github.com/Exiv2/exiv2/archive/refs/tags/v0.28.2.tar.gz
14+
https://github.com/Exiv2/exiv2/archive/refs/tags/v0.28.3.tar.gz
1515
-O exiv2.tar.gz
1616
1717
- name: Extract Exiv2 source
1818
run: |
1919
tar -xzf exiv2.tar.gz
20-
mv exiv2-0.28.2 libexiv2
20+
mv exiv2-0.28.3 libexiv2
2121
2222
- name: Download inih
2323
run: >
@@ -54,13 +54,14 @@ jobs:
5454
-D EXIV2_BUILD_SAMPLES=OFF
5555
-D EXIV2_BUILD_UNIT_TESTS=OFF
5656
-D EXIV2_ENABLE_NLS=ON
57+
-D EXIV2_ENABLE_FILESYSTEM_ACCESS=ON
5758
-D EXIV2_BUILD_EXIV2_COMMAND=OFF
5859
-D EXIV2_TEAM_WARNINGS_AS_ERRORS=OFF &&
5960
cmake --build build-linux-release --config Release &&
6061
cmake --install build-linux-release --config Release
6162
6263
- name: Store results
63-
uses: actions/upload-artifact@v3
64+
uses: actions/upload-artifact@v4
6465
with:
6566
name: linux-28-wheels
6667
path: wheelhouse/*.whl

.github/workflows/build-macos-28.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ jobs:
1111
- name: Fetch Exiv2 source
1212
run: >
1313
wget -nv
14-
https://github.com/Exiv2/exiv2/archive/refs/tags/v0.28.2.tar.gz
14+
https://github.com/Exiv2/exiv2/archive/refs/tags/v0.28.3.tar.gz
1515
-O exiv2.tar.gz
1616
1717
- name: Extract Exiv2 source
1818
shell: bash
1919
run: |
2020
tar -xzf exiv2.tar.gz
21-
mv exiv2-0.28.2 libexiv2
21+
mv exiv2-0.28.3 libexiv2
2222
2323
- name: Build wheels
2424
uses: pypa/[email protected]
@@ -38,13 +38,14 @@ jobs:
3838
-D EXIV2_BUILD_SAMPLES=OFF
3939
-D EXIV2_BUILD_UNIT_TESTS=OFF
4040
-D EXIV2_ENABLE_NLS=ON
41+
-D EXIV2_ENABLE_FILESYSTEM_ACCESS=ON
4142
-D EXIV2_BUILD_EXIV2_COMMAND=OFF
4243
-D EXIV2_TEAM_WARNINGS_AS_ERRORS=OFF &&
4344
cmake --build build-base_mac --config Release &&
4445
cmake --install build-base_mac --config Release
4546
4647
- name: Store results
47-
uses: actions/upload-artifact@v3
48+
uses: actions/upload-artifact@v4
4849
with:
4950
name: macos-28-wheels
5051
path: wheelhouse/*.whl

.github/workflows/build-macos-arm-28.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ jobs:
1111
- name: Fetch Exiv2 source
1212
run: >
1313
wget -nv
14-
https://github.com/Exiv2/exiv2/archive/refs/tags/v0.28.2.tar.gz
14+
https://github.com/Exiv2/exiv2/archive/refs/tags/v0.28.3.tar.gz
1515
-O exiv2.tar.gz
1616
1717
- name: Extract Exiv2 source
1818
shell: bash
1919
run: |
2020
tar -xzf exiv2.tar.gz
21-
mv exiv2-0.28.2 libexiv2
21+
mv exiv2-0.28.3 libexiv2
2222
2323
- name: Install pipx
2424
run: pip install pipx
@@ -43,13 +43,14 @@ jobs:
4343
-D EXIV2_BUILD_SAMPLES=OFF
4444
-D EXIV2_BUILD_UNIT_TESTS=OFF
4545
-D EXIV2_ENABLE_NLS=ON
46+
-D EXIV2_ENABLE_FILESYSTEM_ACCESS=ON
4647
-D EXIV2_BUILD_EXIV2_COMMAND=OFF
4748
-D EXIV2_TEAM_WARNINGS_AS_ERRORS=OFF &&
4849
cmake --build build-base_mac --config Release &&
4950
cmake --install build-base_mac --config Release
5051
5152
- name: Store results
52-
uses: actions/upload-artifact@v3
53+
uses: actions/upload-artifact@v4
5354
with:
5455
name: macos-arm-28-wheels
5556
path: wheelhouse/*.whl

.github/workflows/build-windows-28.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ jobs:
2424
- name: Fetch Exiv2 source
2525
run: >
2626
c:\msys64\usr\bin\wget.exe -nv
27-
https://github.com/Exiv2/exiv2/archive/refs/tags/v0.28.2.tar.gz
27+
https://github.com/Exiv2/exiv2/archive/refs/tags/v0.28.3.tar.gz
2828
-O exiv2.tar.gz
2929
3030
- name: Extract Exiv2 source
3131
shell: bash
3232
run: |
3333
tar -xzf exiv2.tar.gz
34-
mv exiv2-0.28.2 libexiv2
34+
mv exiv2-0.28.3 libexiv2
3535
# tweaks to allow NLS
3636
echo -e "24a25\n> self.requires('libgettext/0.21')" |
3737
c:/msys64/usr/bin/patch.exe libexiv2/conanfile.py
@@ -56,13 +56,14 @@ jobs:
5656
-D EXIV2_BUILD_EXIV2_COMMAND=OFF
5757
-D EXIV2_BUILD_UNIT_TESTS=OFF
5858
-D EXIV2_ENABLE_NLS=ON
59+
-D EXIV2_ENABLE_FILESYSTEM_ACCESS=ON
5960
-G "Visual Studio 16 2019" &&
6061
cmake --build build-msvc --config Release &&
6162
cmake --install build-msvc --config Release &&
6263
copy build-msvc\bin\libcurl.dll build-msvc\install\bin
6364
6465
- name: Store results
65-
uses: actions/upload-artifact@v3
66+
uses: actions/upload-artifact@v4
6667
with:
6768
name: windows-28-wheels
6869
path: wheelhouse/*.whl

CHANGELOG.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ along with this program. If not, see
1818

1919
Changes in v0.17.0:
2020
1/ API change: derived classes of BasicIo are omitted from Python.
21+
2/ Binary wheels incorporate libexiv2 v0.28.3.
22+
3/ enableBMFF() function is deprecated.
23+
4/ Documentation is available on https://python-exiv2.readthedocs.io/
24+
5/ Improved handling of Windows code page character sets.
2125

2226
Changes in v0.16.3:
2327
1/ Binary wheels incorporate libexiv2 v0.28.2.

README.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,9 @@ The C++ documentation is still needed in these cases.
8686
Support for bmff files (e.g. CR3, HEIF, HEIC, AVIF, JPEG XL)
8787
------------------------------------------------------------
8888

89-
Python-exiv2 from version 0.8.3 onwards is built with support for BMFF files.
90-
In order to use BMFF files in your Python program you need to call the ``enableBMFF`` function.
89+
Python-exiv2 from version 0.17.0 has support for BMFF files enabled by default if libexiv2 was compiled with support for BMFF files enabled.
90+
In earlier versions you need to call the ``enableBMFF`` function before using BMFF files in your program.
91+
Use of BMFF files may infringe patents.
9192
Please read the Exiv2 `statement on BMFF`_ patents before doing so.
9293

9394
Installation

src/interface/__main__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# python-exiv2 - Python interface to exiv2
22
# http://github.com/jim-easterbrook/python-exiv2
3-
# Copyright (C) 2021-22 Jim Easterbrook [email protected]
3+
# Copyright (C) 2021-24 Jim Easterbrook [email protected]
44
#
55
# This program is free software: you can redistribute it and/or modify
66
# it under the terms of the GNU General Public License as published by
@@ -31,7 +31,6 @@ def main():
3131
print('python-exiv2 version:', exiv2.__version__)
3232
print('python-exiv2 examples:',
3333
os.path.join(os.path.dirname(__file__), 'examples'))
34-
print('BMFF support:', exiv2.enableBMFF(False))
3534
if args.verbosity:
3635
print('libexiv2 build options:')
3736
pprint.pprint(exiv2.versionInfo())

src/interface/basicio.i

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
%include "shared/buffers.i"
3030
%include "shared/enum.i"
3131
%include "shared/exception.i"
32+
%include "shared/exv_options.i"
3233
%include "shared/keep_reference.i"
3334
%include "shared/unique_ptr.i"
3435
%include "shared/windows_path.i"
@@ -40,6 +41,10 @@
4041
// Catch all C++ exceptions
4142
EXCEPTION()
4243

44+
%fragment("EXV_USE_CURL");
45+
%fragment("EXV_USE_SSH");
46+
%fragment("EXV_ENABLE_FILESYSTEM");
47+
4348
UNIQUE_PTR(Exiv2::BasicIo);
4449

4550
// Potentially blocking calls allow Python threads

src/interface/easyaccess.i

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,24 @@
2323

2424
%include "shared/preamble.i"
2525
%include "shared/exception.i"
26+
%include "shared/exv_options.i"
2627

2728
// Catch all C++ exceptions
2829
EXCEPTION()
2930

31+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::apertureValue)
32+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::brightnessValue)
33+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::dateTimeOriginal)
34+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::exposureBiasValue)
35+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::exposureIndex)
36+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::flash)
37+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::flashEnergy)
38+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::lightSource)
39+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::maxApertureValue)
40+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::sensingMethod)
41+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::shutterSpeedValue)
42+
EXV_ENABLE_EASYACCESS_FUNCTION(Exiv2::subjectArea)
43+
3044
// Store data.end() after converting input
3145
%typemap(check) Exiv2::ExifData& (Exiv2::ExifData::const_iterator _global_end) %{
3246
_global_end = $1->end();

src/interface/exif.i

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
%include "shared/data_iterator.i"
3030
%include "shared/enum.i"
3131
%include "shared/exception.i"
32+
%include "shared/exv_options.i"
3233
%include "shared/keep_reference.i"
3334
%include "shared/windows_path.i"
3435

@@ -43,6 +44,12 @@ IMPORT_ENUM(TypeId)
4344
// Catch all C++ exceptions
4445
EXCEPTION()
4546

47+
EXV_ENABLE_FILESYSTEM_FUNCTION(Exiv2::ExifThumb::setJpegThumbnail(
48+
const std::string&))
49+
EXV_ENABLE_FILESYSTEM_FUNCTION(Exiv2::ExifThumb::setJpegThumbnail(
50+
const std::string&, URational, URational, uint16_t))
51+
EXV_ENABLE_FILESYSTEM_FUNCTION(Exiv2::ExifThumbC::writeFile)
52+
4653
// ExifThumb keeps a reference to the ExifData it uses
4754
KEEP_REFERENCE_EX(Exiv2::ExifThumb*, args)
4855

0 commit comments

Comments
 (0)