Blame contrib/vs2019/README.md

Packit Service fb147c
# exiv2-x86_x64
Packit Service fb147c
Visual Studio project files to compile exiv2 on Windows (x86/x64/Release/Debug)
Packit Service fb147c
Packit Service fb147c
## Background ##
Packit Service fb147c
One of the main building blocks for a personal product that I was
Packit Service fb147c
developing was exiv2. When I started this project, support for
Packit Service fb147c
building on Windows using Visual Studio was quite good and in
Packit Service fb147c
particular, [Robin Mills](https://github.com/clanmills), the then
Packit Service fb147c
maintainer, was excellent in helping resolve questions.
Packit Service fb147c
Packit Service fb147c
However, as time progressed, the maintainers changed and their primary
Packit Service fb147c
focus turned to Linux and Windows compilation was an afterthought
Packit Service fb147c
accomplished by the swiss knife CMake. In reality, CMake, produces
Packit Service fb147c
horrible Visual Studio solution/projects that just creates wrappers on
Packit Service fb147c
cmake commands, tries to enforce the Linux custom of all dependencies
Packit Service fb147c
installed in a single location like /usr/local as well as not
Packit Service fb147c
retaining the flexibility of targeting separate x86/x64/Release/Debug
Packit Service fb147c
builds while using the same solution/projects.
Packit Service fb147c
Packit Service fb147c
The native solution/project files were removed from the exiv2
Packit Service fb147c
repository and not even added to a contrib folder for others to use, a
Packit Service fb147c
restriction that I found particularly galling. The fact that the main
Packit Service fb147c
audience didn't squeal much at these steps is not the answer as they
Packit Service fb147c
may not care about compiling on Windows using VS. This was a
Packit Service fb147c
retrograde step, but they believed that they were going forward.
Packit Service fb147c
Packit Service fb147c
One can never predict what the world wants. If one is not open to
Packit Service fb147c
possibilities and instead, claims that my way is the highway, the
Packit Service fb147c
utility of the product is diminished. This project is to help people
Packit Service fb147c
who would like to build exiv2 using Visual Studio on Windows, to do
Packit Service fb147c
so.
Packit Service fb147c
Packit Service fb147c
## Building Philosophy ##
Packit Service fb147c
Unlike the linux-style philosophy of installing everything in and then,
Packit Service fb147c
linking from, /usr/local-type folders, typically source trees on
Packit Service fb147c
Windows are not organized that way. At least, I don't.
Packit Service fb147c
Packit Service fb147c
I prefer to git clone from the target repository onto my workspace. I
Packit Service fb147c
also prefer to get the latest git versions of exiv2's dependencies as
Packit Service fb147c
well. This is an important distinction. The usual philosophy would
Packit Service fb147c
install released packages (say into C:\Program Files\...) and the
Packit Service fb147c
compiled package to link against them.
Packit Service fb147c
Packit Service fb147c
The advantage with my approach is that I have a transparent solution
Packit Service fb147c
with all the dependencies visible explicitly instead of needing to be
Packit Service fb147c
added in areas like Additional Libraries. The debugger is able to step
Packit Service fb147c
into any area of the code, including the dependencies easily instead
Packit Service fb147c
of worrying whether the dependency is release/debug compiled and is
Packit Service fb147c
consistent with all the choices that I make for the application (like
Packit Service fb147c
static/runtime CRT or x86/x64 or Release/Debug).
Packit Service fb147c
Packit Service fb147c
This involves creating one solution and including in it, multiple
Packit Service fb147c
projects (its own as well as those of the dependencies) and linking
Packit Service fb147c
the dependencies through references instead of explicit identification
Packit Service fb147c
through path/folder names.
Packit Service fb147c
Packit Service fb147c
For e.g. exiv2 will be git-cloned into E:\Projects\exiv2. libexpat (a
Packit Service fb147c
dependency that is required for compiling exiv2) will be git-cloned to
Packit Service fb147c
E:\Projects\libexpat. The exiv2 solution will have the exiv2 project
Packit Service fb147c
(it has many more, but mentioning just one for simplifying the
Packit Service fb147c
exposition) and the expat-static project (from libexpat). The
Packit Service fb147c
expat-static project is added as a reference to the exiv2
Packit Service fb147c
project. This make Visual Studio generate the correct dependency
Packit Service fb147c
heirarchy and compile correctly.
Packit Service fb147c
Packit Service fb147c
# Folder Structure #
Packit Service fb147c
Packit Service fb147c
Because these are project files that are pre-generated, they expect
Packit Service fb147c
exiv2 and its dependencies to be placed in a certain hierarchy.
Packit Service fb147c
Packit Service fb147c
Each of the dependencies will have to be placed at the same level as
Packit Service fb147c
the exiv2 source tree.
Packit Service fb147c
Packit Service fb147c
For e.g.
Packit Service fb147c
Packit Service fb147c
    C:\Sources\exiv2
Packit Service fb147c
    C:\Sources\zlib
Packit Service fb147c
    C:\Sources\openssl
Packit Service fb147c
    C:\Sources\libssh2
Packit Service fb147c
Packit Service fb147c
and so on. The requirement that it be at the same level as the exiv2
Packit Service fb147c
source tree is only mandated in a relative sense. That is, you could
Packit Service fb147c
have your exiv2 sources in C:\Sources or E:\Projects or
Packit Service fb147c
C:\Users\Sridhar\Documents\VS\exiv2. There are problems with spaces in
Packit Service fb147c
directory names, because there are some commands executed through
Packit Service fb147c
utilities like perl which may not handle them well. Please don't use
Packit Service fb147c
spaces.
Packit Service fb147c
Packit Service fb147c
## VS solution/projects for dependencies ##
Packit Service fb147c
Packit Service fb147c
Just like the solution/project file to compile exiv2 in VS (the one
Packit Service fb147c
that you are reading about now), most dependencies also have similar
Packit Service fb147c
VS solution/project files, because their VS-build infrastructure is
Packit Service fb147c
deficient. Specific instructions on fetching these project files
Packit Service fb147c
separately and copying them to the source tree is given below for each
Packit Service fb147c
dependency. I fetch these *-x86_x64 repositories into a separate
Packit Service fb147c
folder from these other source folders. For e.g., I keep these in
Packit Service fb147c
E:\Projects\github. Whereas the sources are in E:\Projects.
Packit Service fb147c
Packit Service fb147c
Theoretically, just fetching these dependency sources, placing them in
Packit Service fb147c
the correct folder hierarchies, fetching their associated VS project
Packit Service fb147c
files and placing them in the source tree in specific folders
Packit Service fb147c
(detailed below) should be enough to compile exiv2 directly. exiv2
Packit Service fb147c
links against static libraries of these dependencies. However, these
Packit Service fb147c
dependencies are full-fledged distributions that contain, apart from
Packit Service fb147c
those libraries that exiv2 needs, other executables and tests. These
Packit Service fb147c
can be compiled, optionally, if one needs to test the integrity of
Packit Service fb147c
those projects.
Packit Service fb147c
Packit Service fb147c
## Dependency Order ##
Packit Service fb147c
Packit Service fb147c
Some of these dependencies depend on other dependencies. Thus, it is
Packit Service fb147c
best if they are executed in the order shown below.
Packit Service fb147c
Packit Service fb147c
# Dependencies #
Packit Service fb147c
  * [Strawberry Perl, used v5.30.1.1 x64](strawberryperl.com)
Packit Service fb147c
  * [NASM, used 2.14.02 x64](https://www.nasm.us/)
Packit Service fb147c
  * [Visual Studio, used Community 2019 edition, v16.5.4](https://visualstudio.microsoft.com/)
Packit Service fb147c
  * [zlib, tested w/ v1.2.11](https://github.com/madler/zlib.git)
Packit Service fb147c
    * Optionally, switch the git tree to the 1.2.11 branch.
Packit Service fb147c
    * Use my [zlib-x86_x64](https://github.com/sridharb1/zlib-x86_x64)
Packit Service fb147c
      to compile on Windows using Visual Studio
Packit Service fb147c
    * Copy the contents of this folder into the contrib folder
Packit Service fb147c
      of the zlib repository. Thus, the contrib/vc14 folder of
Packit Service fb147c
      zlib-x86_x64 should overwrite the same in zlib.
Packit Service fb147c
    * Optionally, use zlibvc.sln to compile.
Packit Service fb147c
  * [libexpat, tested w/ v2.2.9](https://github.com/libexpat/libexpat)
Packit Service fb147c
    * Optionally, switch the git tree to the R_2_2_9 branch.
Packit Service fb147c
    * Use my
Packit Service fb147c
      [libexpat-x86_x64](https://github.com/sridharb1/libexpat-x86_x64)
Packit Service fb147c
      to compile on Windows using Visual Studio 
Packit Service fb147c
    * Copy the build folder of libexpat-x86_x64 into the libexpat
Packit Service fb147c
      source tree.
Packit Service fb147c
    * Optionally, use expat.sln to compile.
Packit Service fb147c
  * [OpenSSL, tested w/ v1.1.1g-DEV](https://github.com/openssl/openssl)
Packit Service fb147c
    * Optionally, switch the git tree to the OpenSSL_1_1_1-stable branch.
Packit Service fb147c
    * Use my
Packit Service fb147c
      [openssl-x86_x64](https://github.com/sridharb1/openssl-x86_x64)
Packit Service fb147c
      to compile on Windows using Visual Studio
Packit Service fb147c
    * Copy the build folder of openssl-x86_x64 into the openssl tree.
Packit Service fb147c
    * Optionally, use openssl1_1.sln to compile.
Packit Service fb147c
  * [libssh, tested w/ v0.9.3](https://git.libssh.org/projects/libssh.git/)
Packit Service fb147c
    * Optionally, switch the git tree to the stable-0.9 branch.
Packit Service fb147c
    * Use my
Packit Service fb147c
      [libssh-x86_x64](https://github.com/sridharb1/libssh-x86_x64.git)
Packit Service fb147c
      to compile on Windows using Visual Studio
Packit Service fb147c
    * Copy the build folder of libssh-x86_x64 into the libssh source tree.
Packit Service fb147c
    * Optionally, use libssh.sln to compile.
Packit Service fb147c
  * [libssh2, tested w/ v1.9.0](https://github.com/libssh2/libssh2.git)
Packit Service fb147c
    * Optionally, switch the git tree to the libssh2-1.9.0 branch.
Packit Service fb147c
    * Use my
Packit Service fb147c
      [libssh2-x86_x64](https://github.com/sridharb1/libssh2-x86_x64.git)
Packit Service fb147c
      to compile on Windows using Visual Studio
Packit Service fb147c
    * Copy the build folder of libssh2-x86_x64 into the libssh2 source tree.
Packit Service fb147c
    * Optionally, use libssh2.sln to compile.
Packit Service fb147c
  * [brotli, tested w/ v1.0.7+](https://github.com/google/brotli)
Packit Service fb147c
    * Use my
Packit Service fb147c
      [brotli-x86_x64](https://github.com/sridharb1/brotli-x86_x64.git)
Packit Service fb147c
      to compile on Windows using Visual Studio
Packit Service fb147c
    * Copy the build_folder folder of brotli-x86_x64 into the brotli source tree.
Packit Service fb147c
    * Optionally, use brotli.sln to compile.
Packit Service fb147c
  * [curl, tested w/ v7.69.1](https://github.com/curl/curl.git)
Packit Service fb147c
    * Optionally, switch the git tree to the 7_69_1 branch.
Packit Service fb147c
    * Use my
Packit Service fb147c
      [curl-x86_x64](https://github.com/sridharb1/curl-x86_x64.git)
Packit Service fb147c
      to compile on Windows using Visual Studio
Packit Service fb147c
    * Copy the contents of this folder into the **projects/Windows/VC15**
Packit Service fb147c
      folder of the curl source tree. *Note: instructions different
Packit Service fb147c
      from other projects*
Packit Service fb147c
    * Optionally, use curl_all.sln to compile.
Packit Service fb147c
  * [googletest, tested w/ v1.10.x](https://github.com/google/googletest.git)
Packit Service fb147c
    * Optionally, switch the git tree to the v1.10.x branch.
Packit Service fb147c
    * Use my
Packit Service fb147c
      [googletest-x86_x64](https://github.com/sridharb1/googletest-x86_x64.git)
Packit Service fb147c
      to compile on Windows using Visual Studio
Packit Service fb147c
    * Copy the build folder of googletest-x86_x64 into the googletest source tree.
Packit Service fb147c
    * Optionally, use googletest-distribution.sln to compile.
Packit Service fb147c
  * [libintl (aka gettext), tested with v0.20.1](https://git.savannah.gnu.org/git/gettext.git)
Packit Service fb147c
    * When you clone gettext, you might also clone a submodule called
Packit Service fb147c
      gnulib. This is not necessary. You can turn off the recursive
Packit Service fb147c
      flag while cloning.
Packit Service fb147c
    * Optionally, switch the git tree to the 0.20.1 branch.
Packit Service fb147c
    * Use my
Packit Service fb147c
      [gettext-x86_x64](https://github.com/sridharb1/gettext-x86_x64)
Packit Service fb147c
      to compile on Windows using Visual Studio
Packit Service fb147c
    * Copy the build folder into the root folder of gettext source tree.
Packit Service fb147c
    * Optionally, use gettext.sln to compile.
Packit Service fb147c
  * [libiconv, tested w/ v1.16](https://github.com/sridharb1/libiconv-x86_x64)
Packit Service fb147c
    * This dependency is a little different from the others in the
Packit Service fb147c
      sense that in the others, you fetch the source and the VS
Packit Service fb147c
      project files separately. In this case, this repository provides
Packit Service fb147c
      both the source and the VS project files.
Packit Service fb147c
    * Optionally, use libiconv.sln to compile.
Packit Service fb147c
Packit Service fb147c
# Sources #
Packit Service fb147c
  * [Exiv2, tested w/ v0.27.2](https://github.com/Exiv2/exiv2)
Packit Service fb147c
  * In v0.27.3, my solution/project files can be found in contrib/vs2019/solution
Packit Service fb147c
  * For other versions, use my
Packit Service fb147c
    [exiv2-x86_x64](https://github.com/sridharb1/exiv2-x86_x64) to
Packit Service fb147c
    compile on Windows 
Packit Service fb147c
  * It may, in particular, not work for the HEAD or 0.28+ branches as
Packit Service fb147c
    there have been incompatible changes made, that have not been
Packit Service fb147c
    incorporated in these project files.
Packit Service fb147c
  * Place the contents of exiv2-x86_x64 in a folder called
Packit Service fb147c
    contrib/vs2019/solution in the exiv2 repository and build using
Packit Service fb147c
    the provided solution. Please note that the dependencies listed
Packit Service fb147c
    above are needed. 
Packit Service fb147c
  * `exiv2 -vV` (output of generated exiv2.exe on my machine for reference)
Packit Service fb147c
Packit Service fb147c
  ``` shell
Packit Service fb147c
  exiv2 0.27.2
Packit Service fb147c
  
Packit Service fb147c
  This program is free software; you can redistribute it and/or
Packit Service fb147c
  modify it under the terms of the GNU General Public License
Packit Service fb147c
  as published by the Free Software Foundation; either version 2
Packit Service fb147c
  of the License, or (at your option) any later version.
Packit Service fb147c
  
Packit Service fb147c
  This program is distributed in the hope that it will be useful,
Packit Service fb147c
  but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service fb147c
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service fb147c
  GNU General Public License for more details.
Packit Service fb147c
  
Packit Service fb147c
  You should have received a copy of the GNU General Public
Packit Service fb147c
  License along with this program; if not, write to the Free
Packit Service fb147c
  Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Packit Service fb147c
  Boston, MA 02110-1301 USA
Packit Service fb147c
  exiv2=0.27.2
Packit Service fb147c
  platform=windows
Packit Service fb147c
  compiler=MSVC
Packit Service fb147c
  bits=64
Packit Service fb147c
  dll=0
Packit Service fb147c
  debug=0
Packit Service fb147c
  cplusplus=199711
Packit Service fb147c
  version=13.25 (2017/x64)
Packit Service fb147c
  date=Apr  6 2020
Packit Service fb147c
  time=11:28:24
Packit Service fb147c
  processpath=E:\My Projects\exiv2\contrib\vs2019\solution\src\x64\Release
Packit Service fb147c
  localedir=/../share/locale
Packit Service fb147c
  package_name=exiv2
Packit Service fb147c
  curlprotocols=dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Packit Service fb147c
  curl=1
Packit Service fb147c
  executable=E:\Projects\exiv2\contrib\vs2019\solution\src\x64\Release\exiv2.exe
Packit Service fb147c
  library=C:\WINDOWS\SYSTEM32\ntdll.dll
Packit Service fb147c
  library=C:\Program Files\AVAST Software\Avast\aswhook.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\KERNEL32.DLL
Packit Service fb147c
  library=C:\WINDOWS\System32\KERNELBASE.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\ucrtbase.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\PSAPI.DLL
Packit Service fb147c
  library=C:\WINDOWS\System32\WS2_32.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\RPCRT4.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\SHELL32.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\cfgmgr32.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\shcore.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\msvcrt.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\combase.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\bcryptPrimitives.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\windows.storage.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\msvcp_win.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\sechost.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\advapi32.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\profapi.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\powrprof.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\UMPDC.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\shlwapi.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\GDI32.dll
Packit Service fb147c
  library=C:\WINDOWS\System32\win32u.dll
Packit Service fb147c
  have_strerror_r=0
Packit Service fb147c
  have_gmtime_r=0
Packit Service fb147c
  have_inttypes=0
Packit Service fb147c
  have_libintl=0
Packit Service fb147c
  have_lensdata=1
Packit Service fb147c
  have_iconv=1
Packit Service fb147c
  have_memory=1
Packit Service fb147c
  have_lstat=0
Packit Service fb147c
  have_regex=0
Packit Service fb147c
  have_regex_h=0
Packit Service fb147c
  have_stdbool=1
Packit Service fb147c
  have_stdint=1
Packit Service fb147c
  have_stdlib=0
Packit Service fb147c
  have_strlib=0
Packit Service fb147c
  have_strerror_r=0
Packit Service fb147c
  have_strings_h=0
Packit Service fb147c
  have_mmap=0
Packit Service fb147c
  have_munmap=0
Packit Service fb147c
  have_sys_stat=1
Packit Service fb147c
  have_unistd_h=0
Packit Service fb147c
  have_sys_mman=0
Packit Service fb147c
  have_libz=1
Packit Service fb147c
  have_xmptoolkit=1
Packit Service fb147c
  adobe_xmpsdk=0
Packit Service fb147c
  have_bool=0
Packit Service fb147c
  have_strings=0
Packit Service fb147c
  have_sys_types=1
Packit Service fb147c
  have_unistd=0
Packit Service fb147c
  have_unicode_path=1
Packit Service fb147c
  enable_video=1
Packit Service fb147c
  enable_webready=1
Packit Service fb147c
  enable_nls=1
Packit Service fb147c
  use_curl=1
Packit Service fb147c
  use_ssh=1
Packit Service fb147c
  config_path=C:\Users\Sridhar\exiv2.ini
Packit Service fb147c
  xmlns=DICOM:http://ns.adobe.com/DICOM/
Packit Service fb147c
  xmlns=GPano:http://ns.google.com/photos/1.0/panorama/
Packit Service fb147c
  xmlns=Iptc4xmpCore:http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/
Packit Service fb147c
  xmlns=Iptc4xmpExt:http://iptc.org/std/Iptc4xmpExt/2008-02-29/
Packit Service fb147c
  xmlns=MP:http://ns.microsoft.com/photo/1.2/
Packit Service fb147c
  xmlns=MPRI:http://ns.microsoft.com/photo/1.2/t/RegionInfo#
Packit Service fb147c
  xmlns=MPReg:http://ns.microsoft.com/photo/1.2/t/Region#
Packit Service fb147c
  xmlns=MicrosoftPhoto:http://ns.microsoft.com/photo/1.0/
Packit Service fb147c
  xmlns=acdsee:http://ns.acdsee.com/iptc/1.0/
Packit Service fb147c
  xmlns=album:http://ns.adobe.com/album/1.0/
Packit Service fb147c
  xmlns=asf:http://ns.adobe.com/asf/1.0/
Packit Service fb147c
  xmlns=audio:http://www.audio/
Packit Service fb147c
  xmlns=aux:http://ns.adobe.com/exif/1.0/aux/
Packit Service fb147c
  xmlns=bmsp:http://ns.adobe.com/StockPhoto/1.0/
Packit Service fb147c
  xmlns=creatorAtom:http://ns.adobe.com/creatorAtom/1.0/
Packit Service fb147c
  xmlns=crs:http://ns.adobe.com/camera-raw-settings/1.0/
Packit Service fb147c
  xmlns=crss:http://ns.adobe.com/camera-raw-saved-settings/1.0/
Packit Service fb147c
  xmlns=dc:http://purl.org/dc/elements/1.1/
Packit Service fb147c
  xmlns=dcterms:http://purl.org/dc/terms/
Packit Service fb147c
  xmlns=digiKam:http://www.digikam.org/ns/1.0/
Packit Service fb147c
  xmlns=dwc:http://rs.tdwg.org/dwc/index.htm
Packit Service fb147c
  xmlns=exif:http://ns.adobe.com/exif/1.0/
Packit Service fb147c
  xmlns=exifEX:http://cipa.jp/exif/1.0/
Packit Service fb147c
  xmlns=expressionmedia:http://ns.microsoft.com/expressionmedia/1.0/
Packit Service fb147c
  xmlns=iX:http://ns.adobe.com/iX/1.0/
Packit Service fb147c
  xmlns=jp2k:http://ns.adobe.com/jp2k/1.0/
Packit Service fb147c
  xmlns=jpeg:http://ns.adobe.com/jpeg/1.0/
Packit Service fb147c
  xmlns=kipi:http://www.digikam.org/ns/kipi/1.0/
Packit Service fb147c
  xmlns=lr:http://ns.adobe.com/lightroom/1.0/
Packit Service fb147c
  xmlns=mediapro:http://ns.iview-multimedia.com/mediapro/1.0/
Packit Service fb147c
  xmlns=mwg-kw:http://www.metadataworkinggroup.com/schemas/keywords/
Packit Service fb147c
  xmlns=mwg-rs:http://www.metadataworkinggroup.com/schemas/regions/
Packit Service fb147c
  xmlns=pdf:http://ns.adobe.com/pdf/1.3/
Packit Service fb147c
  xmlns=pdfaExtension:http://www.aiim.org/pdfa/ns/extension/
Packit Service fb147c
  xmlns=pdfaField:http://www.aiim.org/pdfa/ns/field#
Packit Service fb147c
  xmlns=pdfaProperty:http://www.aiim.org/pdfa/ns/property#
Packit Service fb147c
  xmlns=pdfaSchema:http://www.aiim.org/pdfa/ns/schema#
Packit Service fb147c
  xmlns=pdfaType:http://www.aiim.org/pdfa/ns/type#
Packit Service fb147c
  xmlns=pdfaid:http://www.aiim.org/pdfa/ns/id/
Packit Service fb147c
  xmlns=pdfx:http://ns.adobe.com/pdfx/1.3/
Packit Service fb147c
  xmlns=pdfxid:http://www.npes.org/pdfx/ns/id/
Packit Service fb147c
  xmlns=photoshop:http://ns.adobe.com/photoshop/1.0/
Packit Service fb147c
  xmlns=plus:http://ns.useplus.org/ldf/xmp/1.0/
Packit Service fb147c
  xmlns=png:http://ns.adobe.com/png/1.0/
Packit Service fb147c
  xmlns=rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#
Packit Service fb147c
  xmlns=stArea:http://ns.adobe.com/xmp/sType/Area#
Packit Service fb147c
  xmlns=stDim:http://ns.adobe.com/xap/1.0/sType/Dimensions#
Packit Service fb147c
  xmlns=stEvt:http://ns.adobe.com/xap/1.0/sType/ResourceEvent#
Packit Service fb147c
  xmlns=stFnt:http://ns.adobe.com/xap/1.0/sType/Font#
Packit Service fb147c
  xmlns=stJob:http://ns.adobe.com/xap/1.0/sType/Job#
Packit Service fb147c
  xmlns=stMfs:http://ns.adobe.com/xap/1.0/sType/ManifestItem#
Packit Service fb147c
  xmlns=stRef:http://ns.adobe.com/xap/1.0/sType/ResourceRef#
Packit Service fb147c
  xmlns=stVer:http://ns.adobe.com/xap/1.0/sType/Version#
Packit Service fb147c
  xmlns=tiff:http://ns.adobe.com/tiff/1.0/
Packit Service fb147c
  xmlns=video:http://www.video/
Packit Service fb147c
  xmlns=wav:http://ns.adobe.com/xmp/wav/1.0/
Packit Service fb147c
  xmlns=xml:http://www.w3.org/XML/1998/namespace
Packit Service fb147c
  xmlns=xmp:http://ns.adobe.com/xap/1.0/
Packit Service fb147c
  xmlns=xmpBJ:http://ns.adobe.com/xap/1.0/bj/
Packit Service fb147c
  xmlns=xmpDM:http://ns.adobe.com/xmp/1.0/DynamicMedia/
Packit Service fb147c
  xmlns=xmpG:http://ns.adobe.com/xap/1.0/g/
Packit Service fb147c
  xmlns=xmpGImg:http://ns.adobe.com/xap/1.0/g/img/
Packit Service fb147c
  xmlns=xmpMM:http://ns.adobe.com/xap/1.0/mm/
Packit Service fb147c
  xmlns=xmpNote:http://ns.adobe.com/xmp/note/
Packit Service fb147c
  xmlns=xmpRights:http://ns.adobe.com/xap/1.0/rights/
Packit Service fb147c
  xmlns=xmpT:http://ns.adobe.com/xap/1.0/t/
Packit Service fb147c
  xmlns=xmpTPg:http://ns.adobe.com/xap/1.0/t/pg/
Packit Service fb147c
  xmlns=xmpidq:http://ns.adobe.com/xmp/Identifier/qual/1.0/
Packit Service fb147c
  ```