annotate src/exiv2-r2796.patch @ 5893:53a6c7df43f8

Mesa 3D: Update to version 21.1.8. * src/mesa.mk: Update version and checksum. * src/mesa-2-uninitialized.patch: Remove file. * dist-files.mk: Remove file from list.
author Markus Mützel <markus.muetzel@gmx.de>
date Thu, 16 Sep 2021 22:37:45 +0200
parents 6111c939f1f3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2679
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
1 This file is part of MXE.
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
2 See index.html for further information.
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
3
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
4 This patch has been taken from:
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
5 http://dev.exiv2.org/projects/exiv2/repository/revisions/2796
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
6
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
7 Index: trunk/src/basicio.cpp
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
8 ===================================================================
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
9 --- trunk/src/basicio.cpp (revision 2795)
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
10 +++ trunk/src/basicio.cpp (revision 2796)
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
11 @@ -61,6 +61,11 @@
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
12 # include <unistd.h> // for getpid, stat
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
13 #endif
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
14
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
15 +// Platform specific headers for handling extended attributes (xattr)
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
16 +#if defined(__APPLE__)
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
17 +# include <sys/xattr.h>
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
18 +#endif
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
19 +
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
20 #if defined WIN32 && !defined __CYGWIN__
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
21 // Windows doesn't provide mode_t, nlink_t
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
22 typedef unsigned short mode_t;
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
23 @@ -131,6 +136,8 @@
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
24 int switchMode(OpMode opMode);
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
25 //! stat wrapper for internal use
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
26 int stat(StructStat& buf) const;
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
27 + //! copy extended attributes (xattr) from another file
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
28 + void copyXattrFrom(const FileIo& src);
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
29 #if defined WIN32 && !defined __CYGWIN__
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
30 // Windows function to determine the number of hardlinks (on NTFS)
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
31 DWORD winNumberOfLinks() const;
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
32 @@ -252,6 +259,47 @@
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
33 return ret;
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
34 } // FileIo::Impl::stat
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
35
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
36 + void FileIo::Impl::copyXattrFrom(const FileIo& src)
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
37 + {
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
38 +#if defined(__APPLE__)
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
39 +# if defined(EXV_UNICODE_PATH)
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
40 +# error No xattr API for MacOS X with unicode support
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
41 +# endif
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
42 + const ssize_t namebufSize = ::listxattr(src.p_->path_.c_str(), 0, 0, 0);
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
43 + if (namebufSize < 0) {
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
44 + throw Error(2, src.p_->path_, strError(), "listxattr");
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
45 + }
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
46 + if (namebufSize == 0) {
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
47 + // No extended attributes in source file
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
48 + return;
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
49 + }
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
50 + char namebuf[namebufSize];
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
51 + if (::listxattr(src.p_->path_.c_str(), namebuf, sizeof(namebuf), 0) != namebufSize) {
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
52 + throw Error(2, src.p_->path_, strError(), "listxattr");
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
53 + }
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
54 + for (ssize_t namebufPos = 0; namebufPos < namebufSize;) {
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
55 + const char *name = namebuf + namebufPos;
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
56 + namebufPos += strlen(name) + 1;
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
57 + const ssize_t valueSize = ::getxattr(src.p_->path_.c_str(), name, 0, 0, 0, 0);
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
58 + if (valueSize < 0) {
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
59 + throw Error(2, src.p_->path_, strError(), "getxattr");
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
60 + }
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
61 + char value[valueSize];
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
62 + if (::getxattr(src.p_->path_.c_str(), name, value, sizeof(value), 0, 0) != valueSize) {
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
63 + throw Error(2, src.p_->path_, strError(), "getxattr");
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
64 + }
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
65 +#ifdef DEBUG
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
66 + EXV_DEBUG << "Copying xattr \"" << name << "\" with value size " << valueSize << "\n";
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
67 +#endif
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
68 + if (::setxattr(path_.c_str(), name, value, valueSize, 0, 0) != 0) {
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
69 + throw Error(2, path_, strError(), "setxattr");
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
70 + }
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
71 + }
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
72 +#else
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
73 + // No xattr support for this platform.
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
74 +#endif
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
75 + } // FileIo::Impl::copyXattrFrom
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
76 +
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
77 #if defined WIN32 && !defined __CYGWIN__
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
78 DWORD FileIo::Impl::winNumberOfLinks() const
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
79 {
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
80 @@ -521,6 +569,7 @@
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
81 throw Error(10, path(), "w+b", strError());
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
82 }
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
83 }
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
84 + fileIo->p_->copyXattrFrom(*this);
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
85 basicIo = fileIo;
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
86 }
6111c939f1f3 upgrade package exiv2
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
87 else {