Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix 1394 buildnotes 0.27 #1403

Merged
merged 6 commits into from
Nov 24, 2020
Merged

Conversation

clanmills
Copy link
Collaborator

@clanmills clanmills commented Nov 20, 2020

See #1394. This documentation was revised for v0.27.3 to discuss Visual Studio 2019.

In this PR, I've dealt with your two suggestions which are:

  1. To document 32 bit support for Visual Studio 2019.
  2. To document that cmake generates the files exv_conf.h and exiv2lib_export.h in the build directory.

I've also modified the "Ribbon" at the top of the files to provide a link to the Element Chat Server.

@clanmills clanmills added this to the v0.27.4 milestone Nov 20, 2020
@clanmills clanmills self-assigned this Nov 20, 2020
@clanmills clanmills linked an issue Nov 20, 2020 that may be closed by this pull request
LeoHsiao1
LeoHsiao1 previously approved these changes Nov 21, 2020
Copy link
Contributor

@LeoHsiao1 LeoHsiao1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. These changes do not affect the test cases.

@clanmills
Copy link
Collaborator Author

clanmills commented Nov 21, 2020

Thanks @LeoHsiao1 . Hope everything's good with you. Book's coming along well. It'll be finished by the end of the year.

If the LGM conference in Rennes happens in 2021, I'll probably go over the text one more time before I pay to print 30 copies to hand out at the conference. Ask your boss to pay for you to attend the conference. It was originally scheduled for May 28-31, 2020. Nobody knows what will happen in 2021.

@LeoHsiao1
Copy link
Contributor

LeoHsiao1 commented Nov 21, 2020

Thanks. Hope everything's good with you, too.
I didn't choose a job that required travel. Because it consumes most of my time on the road. However, employees who travel on business do get extra pay.
The year 2020 is coming to an end. I'm glad to join Exiv2 this year to make my first contribution to the open source community.

@clanmills
Copy link
Collaborator Author

I have successfully built/tested the new profile cmake/msvc_conan_profiles/msvc2019Release32.

@tester0077
Copy link
Collaborator

tester0077 commented Nov 21, 2020

I very much appreciate your work on the Windows compiles, but I am having trouble, partly because I use Python and CMake very infrequently.

Trying to install the latest code from Github on a clean PC is not going well. First problems is installing a good enough Python environment under Windows. Any restrictions or special version required?

After I installed Python 3.9.0 for all users, forced the installer to add Python to the Path - this is not the default.
pip install conan << works
conan --version << does not work until the user path for Python scripts is added to the path
<< because conan.exe ends up there
<< C:\Users\xyz\AppData\Roaming\Python\Python39\Scripts\conan.exe
<< while Python ends up in C:\Program Files\Python39\python.EXE

After half a day, I have been able to get the exiv2lib 32-bit debug version to compile - with something like 6 or seven items compiling, including fortunately exiv2lib, but the rest failing for one reason or another.
My trials with 64-bit debug did not work, so I tried the 64-bit release version and I end up with a another set of problems.


My 64-bit release profile:

  [build_requires]
  [settings]
  arch=x86_64
  build_type=Release
  compiler=Visual Studio
  compiler.runtime=MD
  compiler.version=16
  os=Windows
  arch_build=x86_64
  os_build=Windows
  [options]
  [env]					

conan install .. --build missing --profile msvc2019Release64

tells me that by now eveerything needed is installed


C:\pkg\C++\MSVC2019\exiv2Git\exiv2\build64Rel>cmake ..  -G "Visual Studio 16 2019" -A Win64
-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.19041.
CMake Error at CMakeLists.txt:3 (project):
  Failed to run MSBuild command:

    C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe

  to get the value of VCTargetsPath:

    Microsoft (R) Build Engine version 16.8.2+25e4d540b for .NET Framework
    Copyright (C) Microsoft Corporation. All rights reserved.

    Build started 2020-11-21 1:18:39 PM.
    Project "C:\pkg\C++\MSVC2019\exiv2Git\exiv2\build64Rel\CMakeFiles\3.15.2\VCTargetsPath.vcxproj" on node 1 (default targets).
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(780,5): error : The OutputPath property is not set for project 'VCTargetsPath.vcxproj'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='Debug'  Platform='Win64'.  You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project. [C:\pkg\C++\MSVC2019\exiv2Git\exiv2\build64Rel\CMakeFiles\3.15.2\VCTargetsPath.vcxproj]
    Done Building Project "C:\pkg\C++\MSVC2019\exiv2Git\exiv2\build64Rel\CMakeFiles\3.15.2\VCTargetsPath.vcxproj" (default targets) -- FAILED.

    Build FAILED.

    "C:\pkg\C++\MSVC2019\exiv2Git\exiv2\build64Rel\CMakeFiles\3.15.2\VCTargetsPath.vcxproj" (default target) (1) ->
    (_CheckForInvalidConfigurationAndPlatform target) ->
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(780,5): error : The OutputPath property is not set for project 'VCTargetsPath.vcxproj'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='Debug'  Platform='Win64'.  You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project. [C:\pkg\C++\MSVC2019\exiv2Git\exiv2\build64Rel\CMakeFiles\3.15.2\VCTargetsPath.vcxproj]
        0 Warning(s)
        1 Error(s)
    Time Elapsed 00:00:00.28
  Exit code: 1

-- Configuring incomplete, errors occurred!
See also "C:/pkg/C++/MSVC2019/exiv2Git/exiv2/build64Rel/CMakeFiles/CMakeOutput.log".

All the output log tells me: The system is: "Windows - 10.0.19041 - AMD64"
I knew that ;-)
Being neither a Python nor CMake guru, I am out of my depth.
It seems some of the implicit dependencies between our system differ enough to cause issues.

@clanmills
Copy link
Collaborator Author

clanmills commented Nov 21, 2020

Arnold (@tester0077). I download python from https://www.python.org/downloads/ and install it in c:\python38 (or 39 or whatever). Keep away from c:\Program Files\bullshit. Paths with spaces are a recipe for trouble. The person at Microsoft who invented c:\Program Files\ should be shot.

1 copy python.exe python3.exe
(our scripts expect the python executable to be called python3)

2 start dos with a script like this which I call cmd64.cmd to carefully control your PATH. I always have MinGW/msys2 installed in c:\msys64. You only need this to run the test suite.

@echo off
setlocal
set "P="
set "P=%P%C:\Python37\;C:\Python37\Scripts;" # DOS Python3
set "P=%P%c:\Program Files\cmake\bin;"       # DOS cmake
set "P=%P%c:\msys64\usr\bin;"                # msys2 make, bash etc
set "P=%P%c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin;"
set "P=%P%c:\Windows\System32;"              # windows
set "P=%P%%USERPROFILE%\com;"                # my home-made magic
echo %P%
set "PATH=%P%"
set "EXIV2_BINDIR=%USERPROFILE%\gnu\github\exiv2\0.27-maintenance\build\bin"
color 0d
cmd /S /K cd "%EXIV2_BINDIR%\..\.."
color
endlocal

@tester0077
Copy link
Collaborator

tester0077 commented Nov 22, 2020

Thank you, Robin.
This batch file helps explain how your environment is set up.
Following your recipe, I installed Python to c:\python39, copied python.exe to python3.3xe in c:\python39
I modified the batch file to install pip & the latest version.
Installing conan puts conan.exe into %USERPROFILE%\Appdata\Roaming\Python\Python39\Scripts;
When I try to execute 'conan' from the command line, I get the response:

C:\pkg\C++\MSVC2019\exiv2Git\exiv2>conan
failed to create process.

Once I get past that hurdle, I can try to use the same MSVC 2017 IDE as you seems to be using, as it is installed on the target machine.
What all is in the 'magic' directory
set "P=%P%%USERPROFILE%\com;" # my home-made magic
? :-)

@clanmills
Copy link
Collaborator Author

clanmills commented Nov 22, 2020

@tester0077. %USERPROFILE% is something like "c:\Users\rmills" and created by the system. I have the directory on my PATH c:\Users\rmills\com in which I have batch files and executables. Many users will have something equivalent.

Please be aware that python3 and bash are only required to run the test suite.

  1. You don't need python (or python3) to build Exiv2 on any platform.
  2. Thanks to great work by @LeoHsiao1, the bash test scripts have been rewritten in python3. We will retire the bash scripts in v0.27.4 and v0.28.

@moon6969
Copy link

moon6969 commented Nov 22, 2020

@tester0077
RE: Build error above
I'm no CMake expert, but I think the VS architecture is x64...
cmake .. -G "Visual Studio 16 2019" -A x64

RE: Conan issue:
I fired up the Python 3.9 installer, and notice there are 3 different references to "All users" which may explain why conan.exe is installing under your user profile rather than C:\Python39. The first two refer to the python launcher (the "py" version selector) rather than Python itself...
Python3install01
Click Customize. Note also that pip is installed for you...
Python3install02
This "Install for all users" is the one that actually installs Python itself for all users...
Python3install03

I've had C:\Python27\ and C:\Python38\ installed for sometime (and included on my system path). As part of building Exiv2 recently I finally got around to removing Python27 from my system path, leaving C:\Python38\Scripts;C:\Python38; (as the first entries in the path).

I didn't need to set up any environment (other than ensuring that C:\Python38\Scripts;C:\Python38; were first in my system path). I just used:
Start → Visual Studio 2019 → x64 Native Tools Command Prompt for VS 2019

@clanmills
Copy link
Collaborator Author

Does that mean we should have "one more P" in cmd64.cmd ?

set "P=%P%C:\Python37\;C:\Python37\Scripts;%USERPROFILE%\AppData\Roaming\Python\Python37" # DOS Python3

This would enable searching both the global and user python script stores. What do you think?

@mergify mergify bot dismissed LeoHsiao1’s stale review November 22, 2020 16:45

Pull request has been modified.

@tester0077
Copy link
Collaborator

Just re-installing python 39 according to moon6969's recipe. Will carry on when that is finished.
Meanwhile ....
@clanmills - can we define some variable at the top of the script to handle changing python versions/path in one spot?

@tester0077
Copy link
Collaborator

Got Python 3.9 installed.
Had to include %USERPROFILE%\AppData\Roaming\Python\Python39 in my user path to be able to find conan.exe at either the DOS or MSVC IDE DOS prompt.
But in either case, the only response I get when trying to run "conan --version" is:


** Visual Studio 2019 Developer Command Prompt v16.8.2
** Copyright (c) 2020 Microsoft Corporation


C:\Users\Arnold\source\repos>conan --version
failed to create process.
C:\Users\Arnold\source\repos>

That is where I was stuck before.

@clanmills
Copy link
Collaborator Author

@tester0077 . I don't know what's wrong with your conan.

I uinstalled my pythons (27, 34 and 37) and removed their remnants rmdir/s/q c:\python27.

I installed python39. And used pip to install conan. It build Exiv2 perfectly, as documented. conan.exe installed perfectly into c:\Python39\Scripts:

C:\Python39\Scripts>dir
 Volume in drive C has no label.
 Volume Serial Number is 0899-EF40

 Directory of C:\Python39\Scripts

2020-11-22  16:16    <DIR>          .
2020-11-22  16:16    <DIR>          ..
2020-11-22  16:16           150,569 bottle.py
2020-11-22  16:15           106,333 chardetect.exe
2020-11-22  16:16               990 conan-script.py
2020-11-22  16:16            74,752 conan.exe
2020-11-22  16:16             1,012 conan_build_info-script.py
2020-11-22  16:16            74,752 conan_build_info.exe
2020-11-22  16:16             1,004 conan_server-script.py
2020-11-22  16:16            74,752 conan_server.exe
2020-11-22  16:15           106,317 distro.exe
2020-11-22  16:13           106,342 easy_install-3.9.exe
2020-11-22  16:13           106,342 easy_install.exe
2020-11-22  16:15               999 futurize-script.py
2020-11-22  16:15            74,752 futurize.exe
2020-11-22  16:15             1,003 pasteurize-script.py
2020-11-22  16:15            74,752 pasteurize.exe
2020-11-22  16:13           106,333 pip.exe
2020-11-22  16:13           106,333 pip3.9.exe
2020-11-22  16:13           106,333 pip3.exe
2020-11-22  16:15           106,327 pygmentize.exe
2020-11-22  16:15           106,323 pyjwt.exe
2020-11-22  16:15           106,319 tqdm.exe
2020-11-22  16:16    <DIR>          __pycache__
              21 File(s)      1,592,639 bytes
               3 Dir(s)  15,587,950,592 bytes free

C:\Python39\Scripts>dir conan.exe
 Volume in drive C has no label.
 Volume Serial Number is 0899-EF40

 Directory of C:\Python39\Scripts

2020-11-22  16:16            74,752 conan.exe
               1 File(s)         74,752 bytes
               0 Dir(s)  15,587,950,592 bytes free

C:\Python39\Scripts>conan --version
Conan version 1.31.3

C:\Python39\Scripts>python --version
Python 3.9.0

C:\Python39\Scripts>

I looked at that having a setting for Python37, Python39 ... I thought about:

set PY=Python39
.....

The downside is that it's getting "complex" and a little obscure. Verbosity in this case seems better to me.

It's not as though this is something you change very often. For example, it's only today that I changed the location of msbuild.exe. That setting's been there for several years without issue.

@tester0077
Copy link
Collaborator

Yes, batch files can be a real nuisance, aside form their arcane syntax.
As for conan, I have no ideas.
pip install conan
came back with responses claiming that all was fine ans nothing needed to be installed after my latest re-install of python.
Will have to restart and clean out all remnants of python I can find.

@tester0077
Copy link
Collaborator

@monn6969 I notice that the check box for adding Python to the path was not checked in your screen shot.
Did you
add the Python executables to the path yourself,
is that not necessary
is it detrimental
is it an oversight?

@tester0077
Copy link
Collaborator

Success at last :-)
thank you Robin & moon6969
After I made sure there were no leftovers of Python of any version anywhere on the PC nor of conan, I
re-installed Python 3.9.0 to C:\Python39;
for all users
had the python variables added to the path - as part of the install
Installed conan
updated pip as advised as part of the conan install
cloned a new version of exiv2 to a clean directory
created my build32 & build64 directories
in each of those I executed
conan install .. --build missing --profile msvc2019Release64
cmake .. -G "Visual Studio 16 2019" -A x64
open the exiv2.sln file in MSVC 2019 and build both debug & release versions using the MSVC 2017 tool chain without any errors
conan install .. --build missing --profile msvc2019Release32
cmake .. -G "Visual Studio 16 2019" -A win32
open the exiv2.sln file in MSVC 2019 and build both debug & release versions using the MSVC 2019 tool chain without any errors
@clanmills please note the small syntax changes for the cmake command lines for MSVC 2019

@clanmills
Copy link
Collaborator Author

@tester0077 I'm glad you have this working. And thank you @moon6969 for contributing to this discussion.

I only learned about the options -A Win32 and -A x64 from @moon6969 this week. When I wrote the 2019 Documentation for v0.27.3, I was mistakenly of the impression that Visual Studio no longer supported 32 bit builds and documented that as "not provided".

When I prepared this PR, I fixed the 32 bit build "not provided" to mention -A Win32. I left the 64bit documentation alone. The default for -A with -G "Visual Studio 16 2019" is x64. If I change the v0.27.3 version of this file to mention -A x64, somebody could ask "why have you changed something that works?".

I will do something concerning this before I merge the PR.

@clanmills clanmills requested review from tester0077 and removed request for kmilos November 22, 2020 21:31
@tester0077
Copy link
Collaborator

Not sure if this is the 'correct' way to do this, but the changes look good to me.
Just built both 32 & 64-bit exiv2 bundles on my 'work' machine after a fresh down load from Github without any problems.
Next week I'll start using this new code.
One side-effect of using the built-in procedure was to hide the old _free() "bug" from my notice since I do/did not have to use my own build machinery

@tester0077
Copy link
Collaborator

tester0077 commented Nov 22, 2020 via email

@clanmills
Copy link
Collaborator Author

Right. I'll wait for somebody to approve this PR. If you discover something wrong with the docs please let me know.

If you know how to solve the "Revision ID" issue, you can open a new issue as a "Feature Request" and somebody might undertake the work.

@tester0077
Copy link
Collaborator

tester0077 commented Nov 24, 2020

Quite agree with your observation re ideas and their implementation - ideas are a dime a dozen, they say around here :-)
and it took me some time to come to grips with the idea and possible solutions in the/my Windows environment.

As I also don't feel qualified to mess with the existing code & build system for Exiv2, I'd like to at least share my way of getting this done under Windows. All this code is quite recent for me, but from the short time I have used it, it serves my needs.


At the top of the main library header, I have the following code:

// created & updated by the release pre-build step using  Powershell 
// & batch scripts to increment the library version build number
// major & minor version numbers require manual updating of
// the file libAboutVersionh.h it contains a line
// #define LIB_ABOUT_DLG_VERSION ("0.0.11")
#include "libVersionh.h"

libVersionh.h contains the single line:

#define LIB_ABOUT_DLG_VERSION ("0.0.12")

The powerShell script I run in the pre-build step of the release version
because I don't want to bump the count for every debug build :

# 
# my Powershell script to increment the library build number
# adapted from:
# https://stackoverflow.com/questions/30195025/increment-version-in-a-text-file
# the output from this script is then converted to a new header file libVersionh.header
# with the line "#define LIB_ABOUT_DLG_VERSION 0.0.3   "
# for inclusion by the library code
 
$file = ".\libAboutVersionh.h"
#Write-Host $file
$fileVersion = [version](Get-Content $file | Select -Last 1)
#Write-Host $fileVersion
$newVersion = "{0}.{1}.{2}" -f $fileVersion.Major, $fileVersion.Minor, ($fileVersion.Build + 1)
#Write-Host $newVersion
$newVersion | Set-Content $file 

Perhaps this will sow a seed that someone can develop further

@Exiv2 Exiv2 deleted a comment from tester0077 Nov 24, 2020
@clanmills
Copy link
Collaborator Author

I tidied up your earlier "horribly formatted" comment. I hope you like what I have done.

We have a Version numbering scheme that's documented in our security policy. https://github.com/Exiv2/exiv2/security/policy

Any build (other than a tagged version in GitHub) is a collection of uncertified code.

@tester0077
Copy link
Collaborator

Thank you for your reformatting.
Finally realized I could have done so myself.
Still trying to wrap my head around some of the implications of git & the evolution of Exiv2, Since this is the only library's progress I keep up with to any degree, it seems to be at the centre of all my questions.

@clanmills clanmills merged commit 4af8b9b into 0.27-maintenance Nov 24, 2020
@mergify mergify bot deleted the fix_1394_buildnotes_0.27 branch November 24, 2020 20:45
@clanmills
Copy link
Collaborator Author

Thank You everybody for a very vigorous discussion. If anybody spots typos and other stuff in the documents, keep it to yourself!
e346a93df3ca774eec6b665f176c688e

@tester0077
Copy link
Collaborator

tester0077 commented Nov 24, 2020

One of the main reasons for all these questions is my trying to assess the value of using the vcpkg version of Exiv2. Just spent nearly 1 1/2 hrs updating all installed package :-)
Still that was less than the time I spend installing & compiling it myself. ;-)

@clanmills
Copy link
Collaborator Author

We should screen share sometime, Arnold. I build Exiv2 every day on lots of platforms with little effort. I'm curious to understand the difficulties you encounter.

I haven't look at the vcpkg stuff. Maybe one day. My priority is user issues and then the book. Some weeks I don't get any work done on the book. However, I want to finish it by the end of the year. I'll find a way.

@tester0077
Copy link
Collaborator

Now that the conan build works for me, recompiling is no problems and even on slower PCs does not take all that much time.
My difficulties stem mostly from my unfamiliarity with the Linux world and its 'world view'; CMake is not second nature to me and when I try to follow one of the published recipes, I am really flying blind if things don't work as expected. Things that are 'obvious' to the developers, simply are not to me.
I have learned much since my first attempts at using Exiv2, but I have also found time & time again, that when I move a project to a new machine, or even when an existing one gets "cleaned up", there are issues relating to tacit assumptions about the existing environment of the source machine which do not hold on the new or clean target. And this even for code I am familiar with. Doing the same with new code & the utilities it depends on, usually involves similar difficulties, but multiplied by varying degrees.
I am convinced conan, vcpkg and their relatives and precursors, were created as a result of similar frustrations with implicit and sometimes (loosely) declared dependencies. And yet, even conan & vcpkg, at least for newbs and during their evolution & development, just add another opportunity for potentially wrong assumptions and misplaced expectations. Been there all too often and been tripped up way too many times. :-)

@clanmills
Copy link
Collaborator Author

Working with tools that you seldom use is never fun. And when things don't work as described you have to dig in to find out what's wrong. At least I have documented the Exiv2 build. Lots of project don't bother.

When using Visual Studio, I personally prefer to open a solution file with everything ready to go. However the maintenance of these files is a considerable undertaking. For sure conan is better than my home made batch file cmakeBuild.cmd.

One of the odd things I have encountered at work is the build being maintained by junior people (college hires and interns). This is an awful idea. When the build is broken, the project grinds to a halt. Same with the documentation. It's important to make it clear and sufficient because the alternative is lots of questions on the forum. Or even worse - people don't use the project because they don't know how to build/test and use the sample applications.

I do my best.

@tester0077
Copy link
Collaborator

You have succeeded in so many way. Much appreciate your support, even if sometimes the the answer is 'no can do' ;-)

@tester0077
Copy link
Collaborator

FWIW, just had my joy with vcpkg turn to dust. For some reason, the latest 'update' of the packages broke at least a couple of my project builds.
In one case, the existing libiconv.lib suddenly disappeared, only to be replaced by libiconv.la and in another case, the once available *.pdb files, essential for debugging, are nowhere to be found. !@$#%$&^ :-(
Back to my manual library package management.

@clanmills
Copy link
Collaborator Author

clanmills commented Nov 26, 2020

libiconv.la is a MinGW/msys2 or Cygwin artefact. Windows uses .lib for stub libraries.

You'll remember I added something to the Exiv2 build to prevent libiconv being used by MSVC builds. I think you've fallen into that same shell hole with other projects!

Happy Thanksgiving. Today's the only day in the year when we feel a little homesick for the USA. We loved our 15 years in California. Proud to be a US Citizen. Happy with our decision to go home and to be near the family when we retired.

@clanmills
Copy link
Collaborator Author

@tester0077 Arnold. I think there's something wrong with your environment strings and you're picking up the wrong stuff. In the case of Exiv2/CMake/libiconv your issue was being caused by FindIconv.cmake finding libiconv.h and thinking "let's build with that". He's a fool. He'd located a MinGW or Cygwin header. Come link time, the build fails.

As the say in the cowboy movies "let's head them off at the pass". I neutered FindIconv.cmake and put something into README.md about this.

884 rmills@rmillsmbp:~/gnu/github/exiv2/0.27-maintenance/cmake $ head FindIconv.cmake 
# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.

# This code is disabled for Visual Studio as explained in README.md
if ( NOT MSVC )

#[=======================================================================[.rst:
FindIconv
---------

885 rmills@rmillsmbp:~/gnu/github/exiv2/0.27-maintenance/cmake $ 

Have a careful look at PATH, LIB, INCLUDE and any environment string that smells of Unix such as mentioning /usr.

@tester0077
Copy link
Collaborator

tester0077 commented Nov 26, 2020

Unfortunately for me, this issue is not related specifically to my use of exiv2lib. Some of my other apps also use these and other libraries. I should have been clearer on that point. This is not your problem, but mine ;-)
My disappointment & dissatisfaction are not with exiv2 code, but rather - since we were discussing package managers - just more bitching about (ending up) depending on relatively 'young' and buggy software and no apparent - or documented - way yo roll back to a 'working' version
PS: always did like some good marching music - well done :-)

@clanmills
Copy link
Collaborator Author

It's OK. I knew you were talking about other libraries. Be sure to look at your environment strings and also consider the possibility the that package manager is mixing MinGW libraries with MSVC. Doesn't work. Oil and Water.

I recorded "Washington Post March" this morning for Thanksgiving. I mentioned this to Miloš. Presumably you've seen that. I bought a Euphonium on 2018-09-29 and have been practicing hard 1-2 hours/day. https://youtu.be/NnwqaRyAWgE

RobinEuphonium

@tester0077
Copy link
Collaborator

Happy to hear you have the patience for practising, I definitely don't.
And, yes, I did see that link and listen to the music. Still remember seeing and enjoying the old bands and horses high-stepping to the tunes. In times past, I enjoyed playing a good number of the marching band records at 'realistic' volume, but, that is too loud for most other people in the house :-)
As for the package managers, if they depend on and are misled by local environments, then, IMNSHO, they are not up to snuff, period. PC environments are usually different from PC to PC - and usually for good reasons.
In many ways, I have come to appreciate the many checks for this or that seemingly arcane condition being checked as the Cmake process rolls up my 'DOS' window during some of the builds.
FWIW, I have reported the issue, but have not seen anything fixed, though it apparently has been reviewed and a label has been attached to it.

@clanmills
Copy link
Collaborator Author

The bigger the company, the slower the response. So, when you let Exiv2 know about something, it gets attention. If you talk to one of the tech giants in Silicon Valley (or Seattle), you'll be lucky to get anything done in less than a year.

The politics of a tech giant dictate that the support guy is very reluctant to dare to say anything needs attention. With Exiv2, if it needs attention, it receives it without delay. I don't have a suit managing me.

Right. Time for a beer. It's Thanksgiving after all.

@tester0077
Copy link
Collaborator

Yes, someone else just found a similar issue with another 'triplet' in vcpkg. It might be open source, but it is still a M$ 'baby'
Makes me wonder just how much testing is done before stuff is merged into the master branch. Then again, no need to wonder, it is all pretty clear. :-)
Hope you'll enjoy your beer. Us Canadians are way ahead of the US & had our thanksgiving quite a while ago; have to, the season is much shorter 'up here' ;-) I'll have my can of Guinness Stout later with my dinner :-)

@clanmills clanmills restored the fix_1394_buildnotes_0.27 branch November 27, 2020 17:49
@clanmills
Copy link
Collaborator Author

Rats. There's a significant type in the cmd64.bat script. Why can't I revise this branch? I'll open another PR. Git rhymes with shit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Visual Studio 2019 build notes
4 participants