[kmods] windows: normalize line-endings

Message ID 20201029225505.30093-1-dmitry.kozliuk@gmail.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series [kmods] windows: normalize line-endings |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail apply issues

Commit Message

Dmitry Kozlyuk Oct. 29, 2020, 10:55 p.m. UTC
  MSBuild XML files have to use CRLF line-endings, otherwise any change
results in the whole file being rewritten with CRLF line-endings by
Visual Studio. However, it's inconvenient to have such files checked-out
with CLRF in Unix environments.

Add suggested git configuration to top-level README, so that Unix
developers don't miss it. Remove .gitattributes, because core.autocrlf
overrides eol= attribute. Convert line-endings of the existing files in
the repository.

Suggested-by: John Alexander <John.Alexander@datapath.co.uk>
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
---
 README                              |   5 +
 windows/.gitattributes              |   4 -
 windows/virt2phys/virt2phys.sln     |  54 ++--
 windows/virt2phys/virt2phys.vcxproj | 454 ++++++++++++++--------------
 4 files changed, 259 insertions(+), 258 deletions(-)
 delete mode 100644 windows/.gitattributes
  

Comments

Narcisa Ana Maria Vasile Nov. 3, 2020, 4:05 a.m. UTC | #1
On Fri, Oct 30, 2020 at 01:55:05AM +0300, Dmitry Kozlyuk wrote:
> MSBuild XML files have to use CRLF line-endings, otherwise any change
> results in the whole file being rewritten with CRLF line-endings by
> Visual Studio. However, it's inconvenient to have such files checked-out
> with CLRF in Unix environments.
> 
> Add suggested git configuration to top-level README, so that Unix
> developers don't miss it. Remove .gitattributes, because core.autocrlf
> overrides eol= attribute. Convert line-endings of the existing files in
> the repository.
> 
> Suggested-by: John Alexander <John.Alexander@datapath.co.uk>
> Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> ---
>  README                              |   5 +
>  windows/.gitattributes              |   4 -
>  windows/virt2phys/virt2phys.sln     |  54 ++--
>  windows/virt2phys/virt2phys.vcxproj | 454 ++++++++++++++--------------
>  4 files changed, 259 insertions(+), 258 deletions(-)
>  delete mode 100644 windows/.gitattributes
> 
> diff --git a/README b/README
> index e71dbba..0aaf58e 100644
> --- a/README
> +++ b/README
> @@ -8,3 +8,8 @@ Now the preference is to contribute kernel modules to the upstream project
>  if possible, otherwise to host kernel code in dpdk-kmods.git.
>  
>  The license can be BSD-3-Clause or GPL-2.0.
> +
> +Some Windows files use have to use CRLF line-endings.
> +Unix developers can configure git to get only LF on checkout:
> +
> +    git config core.autocrlf input

Doesn't the 'input' option gets you original (unmodified) line endings on checkout?
If a file in the repo has CRLF endings, Unix devs will get it as-is (with CRLF), right?
Regardless, this is the best option for Unix and since we're normalizing line endings for 
existing files, Unix devs should get LF on checkout.
I will send a patch to normalize netuio as well.

> diff --git a/windows/.gitattributes b/windows/.gitattributes
> deleted file mode 100644
> index 13482db..0000000
> --- a/windows/.gitattributes
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -* text=auto
> -
> -*.sln text eol=crlf
> -*.vcxproj text eol=crlf
> diff --git a/windows/virt2phys/virt2phys.sln b/windows/virt2phys/virt2phys.sln
> index 0f5ecdc..ea4eec4 100644
> --- a/windows/virt2phys/virt2phys.sln
> +++ b/windows/virt2phys/virt2phys.sln
> @@ -1,27 +1,27 @@
> -
> -Microsoft Visual Studio Solution File, Format Version 12.00
> -# Visual Studio Version 16
> -VisualStudioVersion = 16.0.29613.14
> -MinimumVisualStudioVersion = 10.0.40219.1
> -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "virt2phys", "virt2phys.vcxproj", "{0EEF826B-9391-43A8-A722-BDD6F6115137}"
> -EndProject
> -Global
> -	GlobalSection(SolutionConfigurationPlatforms) = preSolution
> -		Debug|x64 = Debug|x64
> -		Release|x64 = Release|x64
> -	EndGlobalSection
> -	GlobalSection(ProjectConfigurationPlatforms) = postSolution
> -		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.ActiveCfg = Debug|x64
> -		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.Build.0 = Debug|x64
> -		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.Deploy.0 = Debug|x64
> -		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.ActiveCfg = Release|x64
> -		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.Build.0 = Release|x64
> -		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.Deploy.0 = Release|x64
> -	EndGlobalSection
> -	GlobalSection(SolutionProperties) = preSolution
> -		HideSolutionNode = FALSE
> -	EndGlobalSection
> -	GlobalSection(ExtensibilityGlobals) = postSolution
> -		SolutionGuid = {845012FB-4471-4A12-A1C4-FF7E05C40E8E}
> -	EndGlobalSection
> -EndGlobal
> +
> +Microsoft Visual Studio Solution File, Format Version 12.00
> +# Visual Studio Version 16
> +VisualStudioVersion = 16.0.29613.14
> +MinimumVisualStudioVersion = 10.0.40219.1
> +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "virt2phys", "virt2phys.vcxproj", "{0EEF826B-9391-43A8-A722-BDD6F6115137}"
> +EndProject
> +Global
> +	GlobalSection(SolutionConfigurationPlatforms) = preSolution
> +		Debug|x64 = Debug|x64
> +		Release|x64 = Release|x64
> +	EndGlobalSection
> +	GlobalSection(ProjectConfigurationPlatforms) = postSolution
> +		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.ActiveCfg = Debug|x64
> +		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.Build.0 = Debug|x64
> +		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.Deploy.0 = Debug|x64
> +		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.ActiveCfg = Release|x64
> +		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.Build.0 = Release|x64
> +		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.Deploy.0 = Release|x64
> +	EndGlobalSection
> +	GlobalSection(SolutionProperties) = preSolution
> +		HideSolutionNode = FALSE
> +	EndGlobalSection
> +	GlobalSection(ExtensibilityGlobals) = postSolution
> +		SolutionGuid = {845012FB-4471-4A12-A1C4-FF7E05C40E8E}
> +	EndGlobalSection
> +EndGlobal
> diff --git a/windows/virt2phys/virt2phys.vcxproj b/windows/virt2phys/virt2phys.vcxproj
> index fa51916..69af150 100644
> --- a/windows/virt2phys/virt2phys.vcxproj
> +++ b/windows/virt2phys/virt2phys.vcxproj
> @@ -1,228 +1,228 @@
> -<?xml version="1.0" encoding="utf-8"?>
> -<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
> -  <ItemGroup Label="ProjectConfigurations">
> -    <ProjectConfiguration Include="Debug|Win32">
> -      <Configuration>Debug</Configuration>
> -      <Platform>Win32</Platform>
> -    </ProjectConfiguration>
> -    <ProjectConfiguration Include="Release|Win32">
> -      <Configuration>Release</Configuration>
> -      <Platform>Win32</Platform>
> -    </ProjectConfiguration>
> -    <ProjectConfiguration Include="Debug|x64">
> -      <Configuration>Debug</Configuration>
> -      <Platform>x64</Platform>
> -    </ProjectConfiguration>
> -    <ProjectConfiguration Include="Release|x64">
> -      <Configuration>Release</Configuration>
> -      <Platform>x64</Platform>
> -    </ProjectConfiguration>
> -    <ProjectConfiguration Include="Debug|ARM">
> -      <Configuration>Debug</Configuration>
> -      <Platform>ARM</Platform>
> -    </ProjectConfiguration>
> -    <ProjectConfiguration Include="Release|ARM">
> -      <Configuration>Release</Configuration>
> -      <Platform>ARM</Platform>
> -    </ProjectConfiguration>
> -    <ProjectConfiguration Include="Debug|ARM64">
> -      <Configuration>Debug</Configuration>
> -      <Platform>ARM64</Platform>
> -    </ProjectConfiguration>
> -    <ProjectConfiguration Include="Release|ARM64">
> -      <Configuration>Release</Configuration>
> -      <Platform>ARM64</Platform>
> -    </ProjectConfiguration>
> -  </ItemGroup>
> -  <ItemGroup>
> -    <ClCompile Include="virt2phys.c" />
> -  </ItemGroup>
> -  <ItemGroup>
> -    <ClInclude Include="virt2phys.h" />
> -  </ItemGroup>
> -  <ItemGroup>
> -    <Inf Include="virt2phys.inf" />
> -  </ItemGroup>
> -  <PropertyGroup Label="Globals">
> -    <ProjectGuid>{0EEF826B-9391-43A8-A722-BDD6F6115137}</ProjectGuid>
> -    <TemplateGuid>{497e31cb-056b-4f31-abb8-447fd55ee5a5}</TemplateGuid>
> -    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
> -    <MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
> -    <Configuration>Debug</Configuration>
> -    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
> -    <RootNamespace>virt2phys</RootNamespace>
> -  </PropertyGroup>
> -  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
> -    <TargetVersion>Windows10</TargetVersion>
> -    <UseDebugLibraries>true</UseDebugLibraries>
> -    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> -    <ConfigurationType>Driver</ConfigurationType>
> -    <DriverType>KMDF</DriverType>
> -    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
> -    <TargetVersion>Windows10</TargetVersion>
> -    <UseDebugLibraries>false</UseDebugLibraries>
> -    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> -    <ConfigurationType>Driver</ConfigurationType>
> -    <DriverType>KMDF</DriverType>
> -    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
> -    <TargetVersion>Windows10</TargetVersion>
> -    <UseDebugLibraries>true</UseDebugLibraries>
> -    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> -    <ConfigurationType>Driver</ConfigurationType>
> -    <DriverType>KMDF</DriverType>
> -    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
> -    <TargetVersion>Windows10</TargetVersion>
> -    <UseDebugLibraries>false</UseDebugLibraries>
> -    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> -    <ConfigurationType>Driver</ConfigurationType>
> -    <DriverType>KMDF</DriverType>
> -    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
> -    <TargetVersion>Windows10</TargetVersion>
> -    <UseDebugLibraries>true</UseDebugLibraries>
> -    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> -    <ConfigurationType>Driver</ConfigurationType>
> -    <DriverType>KMDF</DriverType>
> -    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
> -    <TargetVersion>Windows10</TargetVersion>
> -    <UseDebugLibraries>false</UseDebugLibraries>
> -    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> -    <ConfigurationType>Driver</ConfigurationType>
> -    <DriverType>KMDF</DriverType>
> -    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
> -    <TargetVersion>Windows10</TargetVersion>
> -    <UseDebugLibraries>true</UseDebugLibraries>
> -    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> -    <ConfigurationType>Driver</ConfigurationType>
> -    <DriverType>KMDF</DriverType>
> -    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
> -    <TargetVersion>Windows10</TargetVersion>
> -    <UseDebugLibraries>false</UseDebugLibraries>
> -    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> -    <ConfigurationType>Driver</ConfigurationType>
> -    <DriverType>KMDF</DriverType>
> -    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> -  </PropertyGroup>
> -  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
> -  <ImportGroup Label="ExtensionSettings">
> -  </ImportGroup>
> -  <ImportGroup Label="PropertySheets">
> -    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
> -  </ImportGroup>
> -  <PropertyGroup Label="UserMacros" />
> -  <PropertyGroup />
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
> -    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
> -    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
> -    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
> -    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
> -    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
> -    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
> -    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> -  </PropertyGroup>
> -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
> -    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> -  </PropertyGroup>
> -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
> -    <ClCompile>
> -      <WppEnabled>true</WppEnabled>
> -      <WppRecorderEnabled>true</WppRecorderEnabled>
> -      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> -      <WppKernelMode>true</WppKernelMode>
> -    </ClCompile>
> -  </ItemDefinitionGroup>
> -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
> -    <ClCompile>
> -      <WppEnabled>true</WppEnabled>
> -      <WppRecorderEnabled>true</WppRecorderEnabled>
> -      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> -      <WppKernelMode>true</WppKernelMode>
> -    </ClCompile>
> -  </ItemDefinitionGroup>
> -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
> -    <ClCompile>
> -      <WppEnabled>false</WppEnabled>
> -      <WppRecorderEnabled>true</WppRecorderEnabled>
> -      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> -      <WppKernelMode>true</WppKernelMode>
> -    </ClCompile>
> -    <Link>
> -      <AdditionalDependencies>$(DDK_LIB_PATH)wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies>
> -    </Link>
> -    <Inf>
> -      <TimeStamp>0.1</TimeStamp>
> -    </Inf>
> -  </ItemDefinitionGroup>
> -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
> -    <ClCompile>
> -      <WppEnabled>true</WppEnabled>
> -      <WppRecorderEnabled>true</WppRecorderEnabled>
> -      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> -      <WppKernelMode>true</WppKernelMode>
> -    </ClCompile>
> -  </ItemDefinitionGroup>
> -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
> -    <ClCompile>
> -      <WppEnabled>true</WppEnabled>
> -      <WppRecorderEnabled>true</WppRecorderEnabled>
> -      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> -      <WppKernelMode>true</WppKernelMode>
> -    </ClCompile>
> -  </ItemDefinitionGroup>
> -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
> -    <ClCompile>
> -      <WppEnabled>true</WppEnabled>
> -      <WppRecorderEnabled>true</WppRecorderEnabled>
> -      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> -      <WppKernelMode>true</WppKernelMode>
> -    </ClCompile>
> -  </ItemDefinitionGroup>
> -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
> -    <ClCompile>
> -      <WppEnabled>true</WppEnabled>
> -      <WppRecorderEnabled>true</WppRecorderEnabled>
> -      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> -      <WppKernelMode>true</WppKernelMode>
> -    </ClCompile>
> -  </ItemDefinitionGroup>
> -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
> -    <ClCompile>
> -      <WppEnabled>true</WppEnabled>
> -      <WppRecorderEnabled>true</WppRecorderEnabled>
> -      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> -      <WppKernelMode>true</WppKernelMode>
> -    </ClCompile>
> -  </ItemDefinitionGroup>
> -  <ItemGroup>
> -    <FilesToPackage Include="$(TargetPath)" />
> -  </ItemGroup>
> -  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
> -  <ImportGroup Label="ExtensionTargets">
> -  </ImportGroup>
> +<?xml version="1.0" encoding="utf-8"?>
> +<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
> +  <ItemGroup Label="ProjectConfigurations">
> +    <ProjectConfiguration Include="Debug|Win32">
> +      <Configuration>Debug</Configuration>
> +      <Platform>Win32</Platform>
> +    </ProjectConfiguration>
> +    <ProjectConfiguration Include="Release|Win32">
> +      <Configuration>Release</Configuration>
> +      <Platform>Win32</Platform>
> +    </ProjectConfiguration>
> +    <ProjectConfiguration Include="Debug|x64">
> +      <Configuration>Debug</Configuration>
> +      <Platform>x64</Platform>
> +    </ProjectConfiguration>
> +    <ProjectConfiguration Include="Release|x64">
> +      <Configuration>Release</Configuration>
> +      <Platform>x64</Platform>
> +    </ProjectConfiguration>
> +    <ProjectConfiguration Include="Debug|ARM">
> +      <Configuration>Debug</Configuration>
> +      <Platform>ARM</Platform>
> +    </ProjectConfiguration>
> +    <ProjectConfiguration Include="Release|ARM">
> +      <Configuration>Release</Configuration>
> +      <Platform>ARM</Platform>
> +    </ProjectConfiguration>
> +    <ProjectConfiguration Include="Debug|ARM64">
> +      <Configuration>Debug</Configuration>
> +      <Platform>ARM64</Platform>
> +    </ProjectConfiguration>
> +    <ProjectConfiguration Include="Release|ARM64">
> +      <Configuration>Release</Configuration>
> +      <Platform>ARM64</Platform>
> +    </ProjectConfiguration>
> +  </ItemGroup>
> +  <ItemGroup>
> +    <ClCompile Include="virt2phys.c" />
> +  </ItemGroup>
> +  <ItemGroup>
> +    <ClInclude Include="virt2phys.h" />
> +  </ItemGroup>
> +  <ItemGroup>
> +    <Inf Include="virt2phys.inf" />
> +  </ItemGroup>
> +  <PropertyGroup Label="Globals">
> +    <ProjectGuid>{0EEF826B-9391-43A8-A722-BDD6F6115137}</ProjectGuid>
> +    <TemplateGuid>{497e31cb-056b-4f31-abb8-447fd55ee5a5}</TemplateGuid>
> +    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
> +    <MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
> +    <Configuration>Debug</Configuration>
> +    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
> +    <RootNamespace>virt2phys</RootNamespace>
> +  </PropertyGroup>
> +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
> +    <TargetVersion>Windows10</TargetVersion>
> +    <UseDebugLibraries>true</UseDebugLibraries>
> +    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> +    <ConfigurationType>Driver</ConfigurationType>
> +    <DriverType>KMDF</DriverType>
> +    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
> +    <TargetVersion>Windows10</TargetVersion>
> +    <UseDebugLibraries>false</UseDebugLibraries>
> +    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> +    <ConfigurationType>Driver</ConfigurationType>
> +    <DriverType>KMDF</DriverType>
> +    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
> +    <TargetVersion>Windows10</TargetVersion>
> +    <UseDebugLibraries>true</UseDebugLibraries>
> +    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> +    <ConfigurationType>Driver</ConfigurationType>
> +    <DriverType>KMDF</DriverType>
> +    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
> +    <TargetVersion>Windows10</TargetVersion>
> +    <UseDebugLibraries>false</UseDebugLibraries>
> +    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> +    <ConfigurationType>Driver</ConfigurationType>
> +    <DriverType>KMDF</DriverType>
> +    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
> +    <TargetVersion>Windows10</TargetVersion>
> +    <UseDebugLibraries>true</UseDebugLibraries>
> +    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> +    <ConfigurationType>Driver</ConfigurationType>
> +    <DriverType>KMDF</DriverType>
> +    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
> +    <TargetVersion>Windows10</TargetVersion>
> +    <UseDebugLibraries>false</UseDebugLibraries>
> +    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> +    <ConfigurationType>Driver</ConfigurationType>
> +    <DriverType>KMDF</DriverType>
> +    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
> +    <TargetVersion>Windows10</TargetVersion>
> +    <UseDebugLibraries>true</UseDebugLibraries>
> +    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> +    <ConfigurationType>Driver</ConfigurationType>
> +    <DriverType>KMDF</DriverType>
> +    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
> +    <TargetVersion>Windows10</TargetVersion>
> +    <UseDebugLibraries>false</UseDebugLibraries>
> +    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
> +    <ConfigurationType>Driver</ConfigurationType>
> +    <DriverType>KMDF</DriverType>
> +    <DriverTargetPlatform>Universal</DriverTargetPlatform>
> +  </PropertyGroup>
> +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
> +  <ImportGroup Label="ExtensionSettings">
> +  </ImportGroup>
> +  <ImportGroup Label="PropertySheets">
> +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
> +  </ImportGroup>
> +  <PropertyGroup Label="UserMacros" />
> +  <PropertyGroup />
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
> +    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
> +    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
> +    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
> +    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
> +    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
> +    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
> +    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> +  </PropertyGroup>
> +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
> +    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
> +  </PropertyGroup>
> +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
> +    <ClCompile>
> +      <WppEnabled>true</WppEnabled>
> +      <WppRecorderEnabled>true</WppRecorderEnabled>
> +      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> +      <WppKernelMode>true</WppKernelMode>
> +    </ClCompile>
> +  </ItemDefinitionGroup>
> +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
> +    <ClCompile>
> +      <WppEnabled>true</WppEnabled>
> +      <WppRecorderEnabled>true</WppRecorderEnabled>
> +      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> +      <WppKernelMode>true</WppKernelMode>
> +    </ClCompile>
> +  </ItemDefinitionGroup>
> +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
> +    <ClCompile>
> +      <WppEnabled>false</WppEnabled>
> +      <WppRecorderEnabled>true</WppRecorderEnabled>
> +      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> +      <WppKernelMode>true</WppKernelMode>
> +    </ClCompile>
> +    <Link>
> +      <AdditionalDependencies>$(DDK_LIB_PATH)wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies>
> +    </Link>
> +    <Inf>
> +      <TimeStamp>0.1</TimeStamp>
> +    </Inf>
> +  </ItemDefinitionGroup>
> +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
> +    <ClCompile>
> +      <WppEnabled>true</WppEnabled>
> +      <WppRecorderEnabled>true</WppRecorderEnabled>
> +      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> +      <WppKernelMode>true</WppKernelMode>
> +    </ClCompile>
> +  </ItemDefinitionGroup>
> +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
> +    <ClCompile>
> +      <WppEnabled>true</WppEnabled>
> +      <WppRecorderEnabled>true</WppRecorderEnabled>
> +      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> +      <WppKernelMode>true</WppKernelMode>
> +    </ClCompile>
> +  </ItemDefinitionGroup>
> +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
> +    <ClCompile>
> +      <WppEnabled>true</WppEnabled>
> +      <WppRecorderEnabled>true</WppRecorderEnabled>
> +      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> +      <WppKernelMode>true</WppKernelMode>
> +    </ClCompile>
> +  </ItemDefinitionGroup>
> +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
> +    <ClCompile>
> +      <WppEnabled>true</WppEnabled>
> +      <WppRecorderEnabled>true</WppRecorderEnabled>
> +      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> +      <WppKernelMode>true</WppKernelMode>
> +    </ClCompile>
> +  </ItemDefinitionGroup>
> +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
> +    <ClCompile>
> +      <WppEnabled>true</WppEnabled>
> +      <WppRecorderEnabled>true</WppRecorderEnabled>
> +      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
> +      <WppKernelMode>true</WppKernelMode>
> +    </ClCompile>
> +  </ItemDefinitionGroup>
> +  <ItemGroup>
> +    <FilesToPackage Include="$(TargetPath)" />
> +  </ItemGroup>
> +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
> +  <ImportGroup Label="ExtensionTargets">
> +  </ImportGroup>
>  </Project>
> \ No newline at end of file
> -- 
> 2.28.0
  
Dmitry Kozlyuk Nov. 3, 2020, 7:42 a.m. UTC | #2
Hi Naty,

> Doesn't the 'input' option gets you original (unmodified) line endings on checkout?
> If a file in the repo has CRLF endings, Unix devs will get it as-is (with CRLF), right?

The "input" option is for Unix devs only.

> Regardless, this is the best option for Unix and since we're normalizing line endings for 
> existing files, Unix devs should get LF on checkout.
> I will send a patch to normalize netuio as well.

AFAIK, you don't need to. Whatever you settings were when committing netuio,
it now checks out with CRLF on Windows (core.autocrlf=true, installer
default) and with LF on Linux (core.autocrlf=input, although unset also
works). I'd wait for confirmation from Luca, though.
  
Luca Boccassi Nov. 3, 2020, 10:05 a.m. UTC | #3
On Tue, 2020-11-03 at 10:42 +0300, Dmitry Kozlyuk wrote:
> Hi Naty,
> 
> > Doesn't the 'input' option gets you original (unmodified) line endings on checkout?
> > If a file in the repo has CRLF endings, Unix devs will get it as-is (with CRLF), right?
> 
> The "input" option is for Unix devs only.
> 
> > Regardless, this is the best option for Unix and since we're normalizing line endings for 
> > existing files, Unix devs should get LF on checkout.
> > I will send a patch to normalize netuio as well.
> 
> AFAIK, you don't need to. Whatever you settings were when committing netuio,
> it now checks out with CRLF on Windows (core.autocrlf=true, installer
> default) and with LF on Linux (core.autocrlf=input, although unset also
> works). I'd wait for confirmation from Luca, though.

Hi,

Thank you for looking into this. Yes the netuio folder is ok as-is:

$ dos2unix -id windows/netuio/netuio.vcxproj* windows/netuio/netuio.sln
       0  windows/netuio/netuio.vcxproj
       0  windows/netuio/netuio.vcxproj.filters
       0  windows/netuio/netuio.sln

The patch looks good to me, as I really need all files to be checked in
with LF only as a hard requirement before I can upload to
Debian/Ubuntu, so:

Acked-by: Luca Boccassi <bluca@debian.org>

Does the change also stop future check-ins of CRLF files?
  
Narcisa Ana Maria Vasile Nov. 3, 2020, 8:49 p.m. UTC | #4
On Fri, Oct 30, 2020 at 01:55:05AM +0300, Dmitry Kozlyuk wrote:
> MSBuild XML files have to use CRLF line-endings, otherwise any change
> results in the whole file being rewritten with CRLF line-endings by
> Visual Studio. However, it's inconvenient to have such files checked-out
> with CLRF in Unix environments.
> 
> Add suggested git configuration to top-level README, so that Unix
> developers don't miss it. Remove .gitattributes, because core.autocrlf
> overrides eol= attribute. Convert line-endings of the existing files in
> the repository.
> 
> Suggested-by: John Alexander <John.Alexander@datapath.co.uk>
> Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> ---
>  README                              |   5 +
>  windows/.gitattributes              |   4 -
>  windows/virt2phys/virt2phys.sln     |  54 ++--
>  windows/virt2phys/virt2phys.vcxproj | 454 ++++++++++++++--------------
>  4 files changed, 259 insertions(+), 258 deletions(-)
>  delete mode 100644 windows/.gitattributes
> 
Acked-by: Narcisa Vasile <navasile@linux.microsoft.com>
  
Thomas Monjalon Nov. 11, 2020, 3:02 p.m. UTC | #5
29/10/2020 23:55, Dmitry Kozlyuk:
> MSBuild XML files have to use CRLF line-endings, otherwise any change
> results in the whole file being rewritten with CRLF line-endings by
> Visual Studio. However, it's inconvenient to have such files checked-out
> with CLRF in Unix environments.
> 
> Add suggested git configuration to top-level README, so that Unix
> developers don't miss it. Remove .gitattributes, because core.autocrlf
> overrides eol= attribute. Convert line-endings of the existing files in
> the repository.

It is converted to what?
You mean all files should have LF endings in the repo?

[...]
>  windows/virt2phys/virt2phys.sln     |  54 ++--
>  windows/virt2phys/virt2phys.vcxproj | 454 ++++++++++++++--------------
>  4 files changed, 259 insertions(+), 258 deletions(-)

The file windows/virt2phys/virt2phys.vcxproj.filters is not converted.
And I see other stuff to fix, see below.

> +Some Windows files use have to use CRLF line-endings.

"use have to use" -> "have to use" ?

Isn't it automatic to have CRLF on Windows git working tree?

> +Unix developers can configure git to get only LF on checkout:
> +
> +    git config core.autocrlf input

Isn't it the default?
If all files have LF, there is nothing to do on Unix.


I think more fixes are required as below:

--- a/windows/netuio/netuio.sln
+++ b/windows/netuio/netuio.sln
@@ -1,4 +1,3 @@
-
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 14
 VisualStudioVersion = 14.0.25420.1
diff --git a/windows/netuio/netuio.vcxproj b/windows/netuio/netuio.vcxproj
index 87c8b94..f01bf2a 100644
--- a/windows/netuio/netuio.vcxproj
+++ b/windows/netuio/netuio.vcxproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|x64">
@@ -110,4 +110,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/windows/netuio/netuio.vcxproj.filters b/windows/netuio/netuio.vcxproj.filters
index 49c1da1..43536ce 100644
--- a/windows/netuio/netuio.vcxproj.filters
+++ b/windows/netuio/netuio.vcxproj.filters
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
     <Filter Include="Source Files">
@@ -51,4 +51,4 @@
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/windows/virt2phys/virt2phys.sln b/windows/virt2phys/virt2phys.sln
index ea4eec4..02dc38d 100644
--- a/windows/virt2phys/virt2phys.sln
+++ b/windows/virt2phys/virt2phys.sln
@@ -1,4 +1,3 @@
-
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 16
 VisualStudioVersion = 16.0.29613.14
diff --git a/windows/virt2phys/virt2phys.vcxproj b/windows/virt2phys/virt2phys.vcxproj
index 69af150..c86cc9b 100644
--- a/windows/virt2phys/virt2phys.vcxproj
+++ b/windows/virt2phys/virt2phys.vcxproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
@@ -225,4 +225,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
  
Luca Boccassi Nov. 11, 2020, 3:02 p.m. UTC | #6
On Tue, 2020-11-03 at 10:05 +0000, Luca Boccassi wrote:
> On Tue, 2020-11-03 at 10:42 +0300, Dmitry Kozlyuk wrote:
> > Hi Naty,
> > 
> > > Doesn't the 'input' option gets you original (unmodified) line endings on checkout?
> > > If a file in the repo has CRLF endings, Unix devs will get it as-is (with CRLF), right?
> > 
> > The "input" option is for Unix devs only.
> > 
> > > Regardless, this is the best option for Unix and since we're normalizing line endings for 
> > > existing files, Unix devs should get LF on checkout.
> > > I will send a patch to normalize netuio as well.
> > 
> > AFAIK, you don't need to. Whatever you settings were when committing netuio,
> > it now checks out with CRLF on Windows (core.autocrlf=true, installer
> > default) and with LF on Linux (core.autocrlf=input, although unset also
> > works). I'd wait for confirmation from Luca, though.
> 
> Hi,
> 
> Thank you for looking into this. Yes the netuio folder is ok as-is:
> 
> $ dos2unix -id windows/netuio/netuio.vcxproj* windows/netuio/netuio.sln
>        0  windows/netuio/netuio.vcxproj
>        0  windows/netuio/netuio.vcxproj.filters
>        0  windows/netuio/netuio.sln
> 
> The patch looks good to me, as I really need all files to be checked in
> with LF only as a hard requirement before I can upload to
> Debian/Ubuntu, so:
> 
> Acked-by: Luca Boccassi <bluca@debian.org>
> 
> Does the change also stop future check-ins of CRLF files?

Thomas pointed out that this patch still doesn't fix everything,
there's still a few CLRF around. I must have applied by mistake on a
branch where I was working on, with manual fixes, sorry for the
confusion.

Eg, with this patch applied, the diff of dos2unix is still not empty:

$ dos2unix windows/virt2phys/*
dos2unix: converting file windows/virt2phys/virt2phys.c to Unix
format...
dos2unix: converting file windows/virt2phys/virt2phys.h to Unix
format...
dos2unix: converting file windows/virt2phys/virt2phys.inf to Unix
format...
dos2unix: converting file windows/virt2phys/virt2phys.sln to Unix
format...
dos2unix: converting file windows/virt2phys/virt2phys.vcxproj to Unix
format...
dos2unix: converting file windows/virt2phys/virt2phys.vcxproj.filters
to Unix format...
$ git status
HEAD detached from origin/main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   windows/virt2phys/virt2phys.sln
	modified:   windows/virt2phys/virt2phys.vcxproj
	modified:   windows/virt2phys/virt2phys.vcxproj.filters


Could you please send a v2 with a run of dos2unix on _all_ the files?

This is a blocker for me, I cannot upload 20.11 to Debian and Ubuntu
until I have the kmods package ready, and I cannot upload this package
until this issue is fixed.
  
Luca Boccassi Nov. 11, 2020, 3:03 p.m. UTC | #7
On Wed, 2020-11-11 at 16:02 +0100, Thomas Monjalon wrote:
> 29/10/2020 23:55, Dmitry Kozlyuk:
> > MSBuild XML files have to use CRLF line-endings, otherwise any change
> > results in the whole file being rewritten with CRLF line-endings by
> > Visual Studio. However, it's inconvenient to have such files checked-out
> > with CLRF in Unix environments.
> > 
> > Add suggested git configuration to top-level README, so that Unix
> > developers don't miss it. Remove .gitattributes, because core.autocrlf
> > overrides eol= attribute. Convert line-endings of the existing files in
> > the repository.
> 
> It is converted to what?
> You mean all files should have LF endings in the repo?
> 
> [...]
> >  windows/virt2phys/virt2phys.sln     |  54 ++--
> >  windows/virt2phys/virt2phys.vcxproj | 454 ++++++++++++++--------------
> >  4 files changed, 259 insertions(+), 258 deletions(-)
> 
> The file windows/virt2phys/virt2phys.vcxproj.filters is not converted.
> And I see other stuff to fix, see below.
> 
> > +Some Windows files use have to use CRLF line-endings.
> 
> "use have to use" -> "have to use" ?
> 
> Isn't it automatic to have CRLF on Windows git working tree?
> 
> > +Unix developers can configure git to get only LF on checkout:
> > +
> > +    git config core.autocrlf input
> 
> Isn't it the default?
> If all files have LF, there is nothing to do on Unix.
> 
> 
> I think more fixes are required as below:

<..>

Yes, I second that - those changes are needed too.
  
Luca Boccassi Nov. 11, 2020, 3:09 p.m. UTC | #8
On Wed, 2020-11-11 at 15:03 +0000, Luca Boccassi wrote:
> On Wed, 2020-11-11 at 16:02 +0100, Thomas Monjalon wrote:
> > 29/10/2020 23:55, Dmitry Kozlyuk:
> > > MSBuild XML files have to use CRLF line-endings, otherwise any change
> > > results in the whole file being rewritten with CRLF line-endings by
> > > Visual Studio. However, it's inconvenient to have such files checked-out
> > > with CLRF in Unix environments.
> > > 
> > > Add suggested git configuration to top-level README, so that Unix
> > > developers don't miss it. Remove .gitattributes, because core.autocrlf
> > > overrides eol= attribute. Convert line-endings of the existing files in
> > > the repository.
> > 
> > It is converted to what?
> > You mean all files should have LF endings in the repo?
> > 
> > [...]
> > >  windows/virt2phys/virt2phys.sln     |  54 ++--
> > >  windows/virt2phys/virt2phys.vcxproj | 454 ++++++++++++++--------------
> > >  4 files changed, 259 insertions(+), 258 deletions(-)
> > 
> > The file windows/virt2phys/virt2phys.vcxproj.filters is not converted.
> > And I see other stuff to fix, see below.
> > 
> > > +Some Windows files use have to use CRLF line-endings.
> > 
> > "use have to use" -> "have to use" ?
> > 
> > Isn't it automatic to have CRLF on Windows git working tree?
> > 
> > > +Unix developers can configure git to get only LF on checkout:
> > > +
> > > +    git config core.autocrlf input
> > 
> > Isn't it the default?
> > If all files have LF, there is nothing to do on Unix.
> > 
> > 
> > I think more fixes are required as below:
> 
> <..>
> 
> Yes, I second that - those changes are needed too.

To clarify, having some options that convert after the fact
(clone/checkout) is _not_ a solution - everything needs to be checked
in with LF endings only, otherwise automated infrastructure (where
setting random configs it's just not an option) will break.
  
Dmitry Kozlyuk Nov. 11, 2020, 3:11 p.m. UTC | #9
On Tue, 03 Nov 2020 10:05:43 +0000, Luca Boccassi wrote:
> The patch looks good to me, as I really need all files to be checked in
> with LF only as a hard requirement before I can upload to
> Debian/Ubuntu, so:
> 
> Acked-by: Luca Boccassi <bluca@debian.org>
> 
> Does the change also stop future check-ins of CRLF files?

Yes. Regardless of core.autocrlf setting on Windows machine, where
files with CRLF are created, they're checked-in with LF and checked-out with
LF on Linux. Sorry for the late reply.
  
Luca Boccassi Nov. 12, 2020, 8:16 p.m. UTC | #10
On Wed, 2020-11-11 at 15:09 +0000, Luca Boccassi wrote:
> On Wed, 2020-11-11 at 15:03 +0000, Luca Boccassi wrote:
> > On Wed, 2020-11-11 at 16:02 +0100, Thomas Monjalon wrote:
> > > 29/10/2020 23:55, Dmitry Kozlyuk:
> > > > MSBuild XML files have to use CRLF line-endings, otherwise any change
> > > > results in the whole file being rewritten with CRLF line-endings by
> > > > Visual Studio. However, it's inconvenient to have such files checked-out
> > > > with CLRF in Unix environments.
> > > > 
> > > > Add suggested git configuration to top-level README, so that Unix
> > > > developers don't miss it. Remove .gitattributes, because core.autocrlf
> > > > overrides eol= attribute. Convert line-endings of the existing files in
> > > > the repository.
> > > 
> > > It is converted to what?
> > > You mean all files should have LF endings in the repo?
> > > 
> > > [...]
> > > >  windows/virt2phys/virt2phys.sln     |  54 ++--
> > > >  windows/virt2phys/virt2phys.vcxproj | 454 ++++++++++++++--------------
> > > >  4 files changed, 259 insertions(+), 258 deletions(-)
> > > 
> > > The file windows/virt2phys/virt2phys.vcxproj.filters is not converted.
> > > And I see other stuff to fix, see below.
> > > 
> > > > +Some Windows files use have to use CRLF line-endings.
> > > 
> > > "use have to use" -> "have to use" ?
> > > 
> > > Isn't it automatic to have CRLF on Windows git working tree?
> > > 
> > > > +Unix developers can configure git to get only LF on checkout:
> > > > +
> > > > +    git config core.autocrlf input
> > > 
> > > Isn't it the default?
> > > If all files have LF, there is nothing to do on Unix.
> > > 
> > > 
> > > I think more fixes are required as below:
> > 
> > <..>
> > 
> > Yes, I second that - those changes are needed too.
> 
> To clarify, having some options that convert after the fact
> (clone/checkout) is _not_ a solution - everything needs to be checked
> in with LF endings only, otherwise automated infrastructure (where
> setting random configs it's just not an option) will break.

Took the initiative and sent a v2 that changes all the files.
  

Patch

diff --git a/README b/README
index e71dbba..0aaf58e 100644
--- a/README
+++ b/README
@@ -8,3 +8,8 @@  Now the preference is to contribute kernel modules to the upstream project
 if possible, otherwise to host kernel code in dpdk-kmods.git.
 
 The license can be BSD-3-Clause or GPL-2.0.
+
+Some Windows files use have to use CRLF line-endings.
+Unix developers can configure git to get only LF on checkout:
+
+    git config core.autocrlf input
diff --git a/windows/.gitattributes b/windows/.gitattributes
deleted file mode 100644
index 13482db..0000000
--- a/windows/.gitattributes
+++ /dev/null
@@ -1,4 +0,0 @@ 
-* text=auto
-
-*.sln text eol=crlf
-*.vcxproj text eol=crlf
diff --git a/windows/virt2phys/virt2phys.sln b/windows/virt2phys/virt2phys.sln
index 0f5ecdc..ea4eec4 100644
--- a/windows/virt2phys/virt2phys.sln
+++ b/windows/virt2phys/virt2phys.sln
@@ -1,27 +1,27 @@ 
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29613.14
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "virt2phys", "virt2phys.vcxproj", "{0EEF826B-9391-43A8-A722-BDD6F6115137}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|x64 = Debug|x64
-		Release|x64 = Release|x64
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.ActiveCfg = Debug|x64
-		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.Build.0 = Debug|x64
-		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.Deploy.0 = Debug|x64
-		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.ActiveCfg = Release|x64
-		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.Build.0 = Release|x64
-		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.Deploy.0 = Release|x64
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {845012FB-4471-4A12-A1C4-FF7E05C40E8E}
-	EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29613.14
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "virt2phys", "virt2phys.vcxproj", "{0EEF826B-9391-43A8-A722-BDD6F6115137}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.ActiveCfg = Debug|x64
+		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.Build.0 = Debug|x64
+		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Debug|x64.Deploy.0 = Debug|x64
+		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.ActiveCfg = Release|x64
+		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.Build.0 = Release|x64
+		{0EEF826B-9391-43A8-A722-BDD6F6115137}.Release|x64.Deploy.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {845012FB-4471-4A12-A1C4-FF7E05C40E8E}
+	EndGlobalSection
+EndGlobal
diff --git a/windows/virt2phys/virt2phys.vcxproj b/windows/virt2phys/virt2phys.vcxproj
index fa51916..69af150 100644
--- a/windows/virt2phys/virt2phys.vcxproj
+++ b/windows/virt2phys/virt2phys.vcxproj
@@ -1,228 +1,228 @@ 
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|ARM">
-      <Configuration>Debug</Configuration>
-      <Platform>ARM</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ARM">
-      <Configuration>Release</Configuration>
-      <Platform>ARM</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|ARM64">
-      <Configuration>Debug</Configuration>
-      <Platform>ARM64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ARM64">
-      <Configuration>Release</Configuration>
-      <Platform>ARM64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="virt2phys.c" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="virt2phys.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <Inf Include="virt2phys.inf" />
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{0EEF826B-9391-43A8-A722-BDD6F6115137}</ProjectGuid>
-    <TemplateGuid>{497e31cb-056b-4f31-abb8-447fd55ee5a5}</TemplateGuid>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
-    <Configuration>Debug</Configuration>
-    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
-    <RootNamespace>virt2phys</RootNamespace>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <TargetVersion>Windows10</TargetVersion>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
-    <ConfigurationType>Driver</ConfigurationType>
-    <DriverType>KMDF</DriverType>
-    <DriverTargetPlatform>Universal</DriverTargetPlatform>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <TargetVersion>Windows10</TargetVersion>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
-    <ConfigurationType>Driver</ConfigurationType>
-    <DriverType>KMDF</DriverType>
-    <DriverTargetPlatform>Universal</DriverTargetPlatform>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <TargetVersion>Windows10</TargetVersion>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
-    <ConfigurationType>Driver</ConfigurationType>
-    <DriverType>KMDF</DriverType>
-    <DriverTargetPlatform>Universal</DriverTargetPlatform>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <TargetVersion>Windows10</TargetVersion>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
-    <ConfigurationType>Driver</ConfigurationType>
-    <DriverType>KMDF</DriverType>
-    <DriverTargetPlatform>Universal</DriverTargetPlatform>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
-    <TargetVersion>Windows10</TargetVersion>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
-    <ConfigurationType>Driver</ConfigurationType>
-    <DriverType>KMDF</DriverType>
-    <DriverTargetPlatform>Universal</DriverTargetPlatform>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
-    <TargetVersion>Windows10</TargetVersion>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
-    <ConfigurationType>Driver</ConfigurationType>
-    <DriverType>KMDF</DriverType>
-    <DriverTargetPlatform>Universal</DriverTargetPlatform>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
-    <TargetVersion>Windows10</TargetVersion>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
-    <ConfigurationType>Driver</ConfigurationType>
-    <DriverType>KMDF</DriverType>
-    <DriverTargetPlatform>Universal</DriverTargetPlatform>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
-    <TargetVersion>Windows10</TargetVersion>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
-    <ConfigurationType>Driver</ConfigurationType>
-    <DriverType>KMDF</DriverType>
-    <DriverTargetPlatform>Universal</DriverTargetPlatform>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
-    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
-    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
-    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
-    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <WppEnabled>true</WppEnabled>
-      <WppRecorderEnabled>true</WppRecorderEnabled>
-      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
-      <WppKernelMode>true</WppKernelMode>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <WppEnabled>true</WppEnabled>
-      <WppRecorderEnabled>true</WppRecorderEnabled>
-      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
-      <WppKernelMode>true</WppKernelMode>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <WppEnabled>false</WppEnabled>
-      <WppRecorderEnabled>true</WppRecorderEnabled>
-      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
-      <WppKernelMode>true</WppKernelMode>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>$(DDK_LIB_PATH)wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-    <Inf>
-      <TimeStamp>0.1</TimeStamp>
-    </Inf>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <WppEnabled>true</WppEnabled>
-      <WppRecorderEnabled>true</WppRecorderEnabled>
-      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
-      <WppKernelMode>true</WppKernelMode>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
-    <ClCompile>
-      <WppEnabled>true</WppEnabled>
-      <WppRecorderEnabled>true</WppRecorderEnabled>
-      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
-      <WppKernelMode>true</WppKernelMode>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
-    <ClCompile>
-      <WppEnabled>true</WppEnabled>
-      <WppRecorderEnabled>true</WppRecorderEnabled>
-      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
-      <WppKernelMode>true</WppKernelMode>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
-    <ClCompile>
-      <WppEnabled>true</WppEnabled>
-      <WppRecorderEnabled>true</WppRecorderEnabled>
-      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
-      <WppKernelMode>true</WppKernelMode>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
-    <ClCompile>
-      <WppEnabled>true</WppEnabled>
-      <WppRecorderEnabled>true</WppRecorderEnabled>
-      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
-      <WppKernelMode>true</WppKernelMode>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <FilesToPackage Include="$(TargetPath)" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|ARM">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|ARM">
+      <Configuration>Release</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|ARM64">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|ARM64">
+      <Configuration>Release</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="virt2phys.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="virt2phys.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <Inf Include="virt2phys.inf" />
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{0EEF826B-9391-43A8-A722-BDD6F6115137}</ProjectGuid>
+    <TemplateGuid>{497e31cb-056b-4f31-abb8-447fd55ee5a5}</TemplateGuid>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
+    <Configuration>Debug</Configuration>
+    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+    <RootNamespace>virt2phys</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <TargetVersion>Windows10</TargetVersion>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+    <DriverTargetPlatform>Universal</DriverTargetPlatform>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <TargetVersion>Windows10</TargetVersion>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+    <DriverTargetPlatform>Universal</DriverTargetPlatform>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <TargetVersion>Windows10</TargetVersion>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+    <DriverTargetPlatform>Universal</DriverTargetPlatform>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <TargetVersion>Windows10</TargetVersion>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+    <DriverTargetPlatform>Universal</DriverTargetPlatform>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
+    <TargetVersion>Windows10</TargetVersion>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+    <DriverTargetPlatform>Universal</DriverTargetPlatform>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
+    <TargetVersion>Windows10</TargetVersion>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+    <DriverTargetPlatform>Universal</DriverTargetPlatform>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+    <TargetVersion>Windows10</TargetVersion>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+    <DriverTargetPlatform>Universal</DriverTargetPlatform>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+    <TargetVersion>Windows10</TargetVersion>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>KMDF</DriverType>
+    <DriverTargetPlatform>Universal</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WppEnabled>true</WppEnabled>
+      <WppRecorderEnabled>true</WppRecorderEnabled>
+      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WppEnabled>true</WppEnabled>
+      <WppRecorderEnabled>true</WppRecorderEnabled>
+      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WppEnabled>false</WppEnabled>
+      <WppRecorderEnabled>true</WppRecorderEnabled>
+      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(DDK_LIB_PATH)wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <Inf>
+      <TimeStamp>0.1</TimeStamp>
+    </Inf>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WppEnabled>true</WppEnabled>
+      <WppRecorderEnabled>true</WppRecorderEnabled>
+      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
+    <ClCompile>
+      <WppEnabled>true</WppEnabled>
+      <WppRecorderEnabled>true</WppRecorderEnabled>
+      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
+    <ClCompile>
+      <WppEnabled>true</WppEnabled>
+      <WppRecorderEnabled>true</WppRecorderEnabled>
+      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+    <ClCompile>
+      <WppEnabled>true</WppEnabled>
+      <WppRecorderEnabled>true</WppRecorderEnabled>
+      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+    <ClCompile>
+      <WppEnabled>true</WppEnabled>
+      <WppRecorderEnabled>true</WppRecorderEnabled>
+      <WppScanConfigurationData Condition="'%(ClCompile.ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData>
+      <WppKernelMode>true</WppKernelMode>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
 </Project>
\ No newline at end of file