From 4c733cd4fceacdc9debf92f7b16fa2f10f09fe61 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Wed, 29 Apr 2020 19:02:12 +0100 Subject: [PATCH 1/2] fix_rc1_changelog_0.27 --- doc/ChangeLog | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index 97212eab..369f6e67 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,98 @@ +Changes from version 0.27.2 to 0.27.3 +------------------------------------- + +Closed: +https://github.com/Exiv2/exiv2/milestone/5?closed=1 + +Open: +https://github.com/Exiv2/exiv2/milestone/5?open=1 + +Release Notes: +https://github.com/Exiv2/exiv2/issues/1018#issuecomment-604539346 + +Bugs/Fixes +#1185 | Update release notes v0.27.3 RC1 +#1183 | fix_1180_date_separator +#1178 | Reduce system calls in FileIo::eof() +#1157 | fix 1004 Canon Lens Fixes +#1145 | fix 1033 Digikam xmp namespace +#1144 | fix 1045 Add new error kerTiffParsingError +#1143 | fix 1047 New Fujifilm Tags +#1142 | fix 1049 Nikon Sigma 180 Macro Lens Name +#1140 | fix_1069_0.27 Add lens Tamron SP 35mm f/1.4 Di USD (Nikon) +#1138 | fix_1087_0.27 Catalan translation updates +#1129 | Fix 1105 0.27 Add Nikon F version of Tamron 17-35 mm F/2.8-4 Di OSD +#1127 | fix_Sony2010e_0.27 Thanks to @sridharb1 +#1124 | Bugfix 984 xmp meta delete namespace +#1119 | fix_1076_0.272 sigmas lenses on Canon body +#1118 | fix_1084_0.27 Irix lens names in Pentax +#1107 | Fix 1046 pt gps processing method +#1105 | Add Nikon F version of Tamron 17-35 mm F/2.8-4 Di OSD +#1066 | Add support for ISOBMFF Files (AVIF, HEIF, CR3) +#1010 | fix1001_rename_AFPrimaryPoint +#1009 | Fix1008 sony2010e +#1007 | fix_910_remote_io_block+1 +#1005 | fix_1004_lens_exiftool_compatibility + #993 | Fix 992 Sigma APO MACRO 180mm F3.5 EX DG (Nikon Mount) + #991 | Fix 990 Remove AF designator from Tamron 70-200 G1 + #990 | Remove AF designator from Tamron 70-200 G1 + #989 | Fix 987 (taglist.cpp changes) + #988 | New PR to replace fix981_canonAutoFocus2 which will be closed. + #985 | fix981_canonAutoFocus2 + #982 | Fix 981 Canon Auto Focus + #978 | Reloaded: HEIF Support + #977 | Add XMP Initialisation/Cleanup code to every main() + #927 | Translation Exiv2 in Dutch (nl) Translation + +Security +#1141 | fix 1091 Fix unbounded recursion in bigtiffimage.cpp +#1116 | fix_1099_0.27 exiv2 aborts with registerNs +#1115 | fix_1097_0.27 Segfault of exiv2 with pr flag +#1110 | Fix #1011 fix_1011_jp2_readmetadata_loop +#1048 | Fix a memory leak in CiffHeader::read() +#1013 | Fix #1011 fix_1011_jp2_readmetadata_loop +#1131 | fix_1092_0.27 Fix uri parsing bug +#1125 | fix_984_0.27 NULL-pointer read in XMPMeta.cpp + +Build Infrastructure +#1184 | fix_1121_CODEOWNERS_0.27 +#1181 | GCC 9.3.0 broken on MinGW/msys2 and CYGWIN +#1175 | fix_1102_msysGCC93_0.27 +#1159 | fix 1158 pathtest.exe +#1137 | fix_1059_0.27 Add missing library link on Windows +#1135 | Update conan version in appveyor & use python-x64 version +#1130 | fix_packaging_0.27 +#1123 | Bump Version 0.27.3.9 +#1121 | Add CODEOWNERS + +Test Infrastructure +#1174 | add http test to iotest.sh +#1172 | Fix 1164 unit tests 0.27 +#1173 | enhanced_test6_0.27 +#1171 | Enhanced test5 0.27 +#1170 | Enhanced test4 0.27 +#1169 | enhanced_test3_0.27 +#1168 | Enhanced test2 v0.27 +#1167 | Enhanced test v0.27 +#1150 | fix 1146 Python tests to tolerate DOS line endings +#1006 | fix_958 /usr/bin/env bash in test scripts + +UNIX +#1162 | Fix 902 UNIX Support + +Documentation +#1153 | fix_922 Cross compiling documentation +#1149 | README-CONAN Update for v0.27.3 +#1139 | fix_1077_0.27 Improve documentation in CONTRIBUTING.md +#1133 | Fix_1121_documentation_0.27 +#1117 | fix_macOS_0.27 + +contrib/vs2019 +#1136 | Sridharb1 contrib msvc4 0.27 +#1134 | sridharb1_contrib_msvc3_0.27 +#1128 | Sridharb1 contrib msvc2 0.27 +#1120 | sridharb1_contrib_msvc_0.27 + Changes from version 0.27.1 to 0.27.2 ------------------------------------- From a22c03a5177774ac65cd21fd4034f00eef0508e3 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Wed, 29 Apr 2020 19:02:35 +0100 Subject: [PATCH 2/2] Makeover of exiv2.1 --- man/man1/exiv2.1 | 161 +++++++++++++++++++++++++---------------------- 1 file changed, 86 insertions(+), 75 deletions(-) diff --git a/man/man1/exiv2.1 b/man/man1/exiv2.1 index 171bdc5f..28d6b3dc 100644 --- a/man/man1/exiv2.1 +++ b/man/man1/exiv2.1 @@ -2,7 +2,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH EXIV2 1 "April 25, 2020" +.TH EXIV2 1 "April 29, 2020" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -234,26 +234,24 @@ Exif.Photo.DateTimeDigitized Ascii 20 2015:07:16 15:38:54 Exif.NikonWt.DateDisplayFormat Byte 1 Y/M/D Exif.GPSInfo.GPSDateStamp Ascii 11 2015:07:16 Xmp.xmp.ModifyDate XmpText 25 2015-07-16T20:25:28+01:00 - .fi +.sp 1 You may use -pmod filters to further filter output. For example: .nf - $ bin/exiv2 -px -g Date http://clanmills.com/Stonehenge.jpg Xmp.xmp.ModifyDate XmpText 25 2015-07-16T20:25:28+01:00 - .fi +.sp 1 The option -g (--grep) applies to keys and not values. - +.br The key may finish with the optional modifier /i to indicate case insensitive. .TP .B \-K \fIkey\fP Only report data for given key. .br Multiple \fB\-K\fP options can be used to report more than a single key. - .nf -exiv2 \-K Exif.Photo.DateTimeDigitized -K Exif.Photo.DateTimeOriginal \-pt R.jpg +$ exiv2 \-K Exif.Photo.DateTimeDigitized -K Exif.Photo.DateTimeOriginal \-pt R.jpg Exif.Photo.DateTimeOriginal Ascii 20 2011:09:18 16:25:48 Exif.Photo.DateTimeDigitized Ascii 20 2011:09:18 16:25:48 .fi @@ -468,20 +466,20 @@ Use suffix \fI.suf\fP for source files in 'insert' action. Commands for the 'modify' action can be read from a command file, e.g., .sp 1 .nf - exiv2 \-m cmd.txt image.jpg +$ exiv2 \-m cmd.txt image.jpg .fi .sp 1 or given on the command line, as in .sp 1 .nf - exiv2 \-M"add Iptc.Application2.Credit String Mr. Smith" image.jpg +$ exiv2 \-M"add Iptc.Application2.Credit String Mr. Smith" image.jpg .fi .sp 1 Note the quotes. Multiple \fB\-m\fP and \fB\-M\fP options can be combined, and a non-standard XMP namespace registered. .sp 1 .nf - exiv2 \-M"reg myprefix http://ns.myprefix.me/" \-M"add Xmp.myprefix.Whom Mr. Smith" \-M"set Exif.Image.Artist Mr. Smith" image.jpg +$ exiv2 \-M"reg myprefix http://ns.myprefix.me/" \-M"add Xmp.myprefix.Whom Mr. Smith" \-M"set Exif.Image.Artist Mr. Smith" image.jpg .fi .sp 1 When writing Exif, IPTC and XMP metadata, @@ -512,23 +510,20 @@ prevents you from adding duplicate Exif tags). .B del Delete all occurrences of a tag (requires only a \fIkey\fP). .TP -.I key +.B key Exiv2 Exif, IPTC or XMP key. .TP -.I type -.B Byte | Ascii | Short | Long | Rational | Undefined | SShort | SLong | SRational | Comment -for Exif keys, +.B type +Exif keys: Byte | Ascii | Short | Long | Rational | Undefined | SShort | SLong | SRational | Comment .br -.B String | Date | Time | Short | Undefined -for IPTC keys, and +IPTC keys: String | Date | Time | Short | Undefined .br -.B XmpText | XmpAlt | XmpBag | XmpSeq | LangAlt -for XMP keys. +XMP keys: XmpAlt | XmpBag | XmpSeq | LangAlt .sp 1 A default \fItype\fP is used if none is explicitly given. The default is determined based on \fIkey\fP. .TP -.I value +.B value The remaining text on the line is the value. It can optionally be enclosed in single quotes ('\fIvalue\fP') or double quotes ("\fIvalue\fP"). .sp 1 @@ -541,7 +536,7 @@ specification at the beginning. Comments are used by the tags Exif.Photo.UserCo and Exif.GPSInfo.GPSAreaInformation. Comments are stored as Undefined tags with an 8 byte encoding definition follow by the encoded data. The charset is specified as follows: .sp 1 -.B [charset=Ascii|Jis|Unicode|Undefined] \fIcomment\fP +[charset=Ascii|Jis|Unicode|Undefined] \fIcomment\fP .br charset=Undefined is the default .sp 1 @@ -566,19 +561,19 @@ $ exiv2 -pv --grep ProcessingMethod x.jpg .fi .sp 1 The format for an IPTC \fBDate\fP value is: -.sp 1 +.br YYYY\-MM\-DD (year, month, day) .sp 1 The format for an IPTC \fBTime\fP value is: -.sp 1 +.br HH:MM:SS (hours, minutes, seconds) -.sp +.br and may optionally be followed by: -.sp 1 +.br \-HH:MM or +HH:MM (hours, minutes ahead/behind UTC) .sp 1 The format of \fBRational\fP (and \fBSRational\fP) is one of: -.sp 1 +.br integer | integer/integer | Fnumber | number .sp 1 Rational Examples: @@ -615,7 +610,7 @@ $ exiv2 -M'set Xmp.dc.title All others pay cash' X.jpg .sp 1 To remove a language specification, set the value to '' (empty string) .nf -exiv2 -M'set Xmp.dc.title lang="en-US"' X.jpg +$ exiv2 -M'set Xmp.dc.title lang="en-US"' X.jpg .fi To remove all language specifications, delete the key: .nf @@ -624,25 +619,11 @@ $ exiv2 -M'del Xmp.dc.title' X.jpg To register additional XMP namespaces, combine the command with: .nf \fBreg\fP \fIprefix\fP \fInamespace\fP -.br -.SS Exif DateTime -.fi -An Exif DateTime string is stored as 20 ascii bytes (including trailing nul) in the format: -.sp 1 -YYYY:MM:DD HH:MM:SS -.sp 1 -The exiv2 command-line program options -t and -T will accept files -in which the Date has been incorrectly stored as YYYY-MM-DD. -The option -a enables the user to adjust the DateTime in the file and applies -the YYYY:MM:DD HH:MM:SS standard. -.ne 4 .fi .SS Command file format Empty lines and lines starting with \fB#\fP in a command file are ignored (comments). Remaining lines are commands as described above. .br - - .ne 40 .SH EXIF TAGNAMES AND VALUES Exiv2 displays metadata tags and values. @@ -692,6 +673,19 @@ Type Explanation .fi .sp The printing flag t = translated and is intended for human use. Scripts should never use translated values as they are localised and the format may change as Exiv2 evolves. The printing flag v reports the values recorded in the metadata and should be used by scripts. +.ne 8 +.fi +.SH Exif DateTime +.fi +An Exif DateTime string is stored as 20 ascii bytes (including trailing nul) in the format: +.sp 1 +YYYY:MM:DD HH:MM:SS +.sp 1 +The exiv2 command-line program options -t and -T will accept files +in which the Date has been incorrectly stored as YYYY-MM-DD. +The option -a enables the user to adjust the DateTime in the file and applies +the YYYY:MM:DD HH:MM:SS standard. +.sp 1 .ne 40 .SH CONFIGURATION FILE Exiv2 can read an optional configuration file ~/.exiv2 on Unix systems and %USERPROFILE%\\exiv2.ini on Windows (using a Visual Studio build). Cygwin and MinGW/msys2 follow the unix convention and use ~/.exiv2 You can determine the location of the configuration file with the command: @@ -714,84 +708,101 @@ $ cat ~/.exiv2 .sp 1 You obtain the lensID for your camera with the command: .nf -.sp 1 $ exiv2 -pv --grep lens/i http://clanmills.com/Stonehenge.jpg 0x0083 Nikon3 LensType Byte 1 14 0x0084 Nikon3 Lens Rational 4 180/10 2500/10 35/10 63/10 0x008b Nikon3 LensFStops Undefined 4 55 1 12 0 0x000c NikonLd3 LensIDNumber Byte 1 146 <--- This number 0x000d NikonLd3 LensFStops Byte 1 55 -.br +.fi .ne 40 .SH EXAMPLES -.TP -exiv2 *.jpg +.nf +$ exiv2 *.jpg +.fi Prints a summary of the Exif information for all JPEG files in the directory. The summary report is rather brief and presentation does not use the Family.Group.Tag convention. - +.sp 1 If you use --grep pattern, the default becomes -pa. See -g/grep above. - +.sp 1 .nf $ exiv2 -g Date http://clanmills.com/Stonehenge.jpg - .fi -.TP -exiv2 \-pi image.jpg +.nf +$ exiv2 \-pi image.jpg +.fi Prints the IPTC metadata of the image. -.TP -exiv2 rename img_1234.jpg +.nf +$ exiv2 rename img_1234.jpg +.sp 1 +.fi Renames img_1234.jpg (taken on 13\-Nov\-05 at 22:58:31) to 20051113_225831.jpg -.TP -exiv2 \-r':basename:_%Y%m' rename img_1234.jpg +.nf +$ exiv2 \-r'\:basename\:_%Y%m' rename img_1234.jpg +.sp 1 +.fi Renames img_1234.jpg to img_1234_200511.jpg -.TP -exiv2 \-et img1.jpg img2.jpg +.nf +$ exiv2 \-et img1.jpg img2.jpg +.fi Extracts the Exif thumbnails from the two files into img1\-thumb.jpg and img2\-thumb.jpg. -.TP -exiv2 \-it img1.jpg img2.jpg +.nf +$ exiv2 \-it img1.jpg img2.jpg +.fi Inserts (copies) metadata from img1.exv to img1.jpg and from img2.exv to img2.jpg. -.TP -exiv2 \-ep1,2 image.jpg +.nf +$ exiv2 \-ep1,2 image.jpg +.fi Extracts previews 1 and 2 from the image to the files image\-preview1.jpg and image\-preview2.jpg. -.TP -exiv2 \-eiX image.jpg +.nf +$ exiv2 \-eiX image.jpg +.fi Extracts IPTC datasets into an XMP sidecar file image.xmp and in the process converts them to "IPTC Core" XMP schema. -.TP -exiv2 \-iixX image.jpg +.nf +$ exiv2 \-iixX image.jpg +.fi Inserts IPTC and XMP metadata from an XMP sidecar file image.xmp into image.jpg. The resulting IPTC datasets are converted from the "IPTC Core" XMP schema properties in the sidecar file to the older IPTC IIM4 format. The inserted XMP properties include those in the "IPTC Core" XMP schema. -.TP -exiv2 \-M"set Exif.Photo.UserComment charset=Ascii New Exif comment" image.jpg +.nf +$ exiv2 \-M"set Exif.Photo.UserComment charset=Ascii New Exif comment" image.jpg +.fi Sets the Exif comment to an ASCII string. -.TP -exiv2 \-M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" \\ \-M"set Exif.GPSInfo.GPSLatitudeRef N" image.jpg +.nf +$ exiv2 \-M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" \\ \-M"set Exif.GPSInfo.GPSLatitudeRef N" image.jpg +.fi Sets the latitude to 4 degrees, 15 minutes and 33 seconds north. The Exif standard stipulates that the GPSLatitude tag consists of three Rational numbers for the degrees, minutes and seconds of the latitude and GPSLatitudeRef contains either 'N' or 'S' for north or south latitude respectively. -.TP -exiv2 insert \-l/tmp -S.CRW /data/*.JPG +.nf +$ exiv2 insert \-l/tmp -S.CRW /data/*.JPG +.fi Copy all metadata from CRW files in the /tmp directory to JPG files -with corresponding basenames in the /data directory. Note that this + dwith corresponding basenames in the /data directory. Note that this copies metadata as is, without any modifications to adapt it to the requirements of the target format. Some tags copied like this may not make sense in the target image. + .SH SEE ALSO -.TP +.nf .I https://exiv2.org/sample.html#modify +.fi Sample command files. -.TP +.nf .I https://exiv2.org/metadata.html +.fi Taglists with \fIkey\fP and default \fItype\fP values. .SH AUTHORS .B exiv2 -was written by Andreas Huggel and others. The Exiv2 project web site is https://exiv2.org. The code is hosted on GitHub at https://github.com/exiv2/exiv2 -.PP -This manual page was originally created for the Debian project by KELEMEN Peter . +was written by Andreas Huggel and others. +.SH PROJECT +The Exiv2 project web site is https://exiv2.org. +.sp 1 +The code is hosted on GitHub at https://github.com/exiv2/exiv2