From 7dca9b09867966d37ca9efb2627b0ff2dfd478fa Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 20 Dec 2023 14:59:42 -0500 Subject: [PATCH] Split off pdbs into separate dbg packages This follows the recommendations at https://learn.microsoft.com/en-us/dotnet/core/distribution-packaging In particular, we create 3 new packages: - dotnet-runtime-dbg-8.0 - aspnetcore-runtime-dbg-8.0 - dotnet-sdk-dbg-8.0 And all .pdb files are packaged into these. --- dotnet8.0.spec | 66 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/dotnet8.0.spec b/dotnet8.0.spec index 4f7e6fe..708a23c 100644 --- a/dotnet8.0.spec +++ b/dotnet8.0.spec @@ -255,6 +255,18 @@ It particularly focuses on creating console applications, web applications and micro-services. +%package -n dotnet-runtime-dbg-%{dotnetver} + +Version: %{runtime_rpm_version} +Summary: Managed debug symbols NET %{dotnetver} runtime + +Requires: dotnet-runtime-%{dotnetver}%{?_isa} = %{runtime_rpm_version}-%{release} + +%description -n dotnet-runtime-dbg-%{dotnetver} +This package contains the managed symbol (pdb) files useful to debug the +managed parts of the .NET runtime itself. + + %package -n aspnetcore-runtime-%{dotnetver} Version: %{aspnetcore_runtime_rpm_version} @@ -274,6 +286,18 @@ It particularly focuses on creating console applications, web applications and micro-services. +%package -n aspnetcore-runtime-dbg-%{dotnetver} + +Version: %{aspnetcore_runtime_rpm_version} +Summary: Managed debug symbols for the ASP.NET Core %{dotnetver} runtime + +Requires: aspnetcore-runtime-%{dotnetver}%{?_isa} = %{aspnetcore_runtime_rpm_version}-%{release} + +%description -n aspnetcore-runtime-dbg-%{dotnetver} +This package contains the managed symbol (pdb) files useful to debug the +managed parts of the ASP.NET Core runtime itself. + + %package -n dotnet-templates-%{dotnetver} Version: %{sdk_rpm_version} @@ -321,6 +345,18 @@ It particularly focuses on creating console applications, web applications and micro-services. +%package -n dotnet-sdk-dbg-%{dotnetver} + +Version: %{sdk_rpm_version} +Summary: Managed debug symbols for the .NET %{dotnetver} Software Development Kit + +Requires: dotnet-sdk-%{dotnetver}%{?_isa} = %{sdk_rpm_version}-%{release} + +%description -n dotnet-sdk-dbg-%{dotnetver} +This package contains the managed symbol (pdb) files useful to debug the .NET +Software Development Kit (SDK) itself. + + %global dotnet_targeting_pack() %{expand: %package -n %{1} @@ -526,8 +562,9 @@ if [[ $(find %{buildroot}%{_libdir}/dotnet -name '*.pem' -print | wc -l) != 1 ]] fi # Install managed symbols -tar xf artifacts/%{runtime_arch}/Release/dotnet-runtime-symbols-%{runtime_id}-%{runtime_version}.tar.gz \ - -C %{buildroot}%{_libdir}/dotnet/shared/Microsoft.NETCore.App/%{runtime_version}/ +tar xf artifacts/%{runtime_arch}/Release/dotnet-symbols-sdk-%{sdk_version}*-%{runtime_id}.tar.gz \ + -C %{buildroot}%{_libdir}/dotnet/ +find %{buildroot}%{_libdir}/dotnet/packs -iname '*.pdb' -delete # Fix executable permissions on files find %{buildroot}%{_libdir}/dotnet/ -type f -name 'apphost' -exec chmod +x {} \; @@ -583,6 +620,14 @@ echo "Testing build results for debug symbols..." %{SOURCE20} -v %{buildroot}%{_libdir}/dotnet/ +find %{buildroot}%{_libdir}/dotnet/shared/Microsoft.NETCore.App -type f -and -not -name '*.pdb' | sed -E 's|%{buildroot}||' > dotnet-runtime-non-dbg-files +find %{buildroot}%{_libdir}/dotnet/shared/Microsoft.NETCore.App -type f -name '*.pdb' | sed -E 's|%{buildroot}||' > dotnet-runtime-dbg-files +find %{buildroot}%{_libdir}/dotnet/shared/Microsoft.AspNetCore.App -type f -and -not -name '*.pdb' | sed -E 's|%{buildroot}||' > aspnetcore-runtime-non-dbg-files +find %{buildroot}%{_libdir}/dotnet/shared/Microsoft.AspNetCore.App -type f -name '*.pdb' | sed -E 's|%{buildroot}||' > aspnetcore-runtime-dbg-files +find %{buildroot}%{_libdir}/dotnet/sdk -type d | tail -n +2 | sed -E 's|%{buildroot}||' | sed -E 's|^|%dir |' > dotnet-sdk-non-dbg-files +find %{buildroot}%{_libdir}/dotnet/sdk -type f -and -not -name '*.pdb' | sed -E 's|%{buildroot}||' >> dotnet-sdk-non-dbg-files +find %{buildroot}%{_libdir}/dotnet/sdk -type f -name '*.pdb' | sed -E 's|%{buildroot}||' > dotnet-sdk-dbg-files + %check %if 0%{?fedora} > 35 @@ -619,23 +664,26 @@ export COMPlus_LTTng=0 %dir %{_libdir}/dotnet/host/fxr %{_libdir}/dotnet/host/fxr/%{host_version} -%files -n dotnet-runtime-%{dotnetver} +%files -n dotnet-runtime-%{dotnetver} -f dotnet-runtime-non-dbg-files %dir %{_libdir}/dotnet/shared %dir %{_libdir}/dotnet/shared/Microsoft.NETCore.App -%{_libdir}/dotnet/shared/Microsoft.NETCore.App/%{runtime_version} +%dir %{_libdir}/dotnet/shared/Microsoft.NETCore.App/%{runtime_version} -%files -n aspnetcore-runtime-%{dotnetver} +%files -n dotnet-runtime-dbg-%{dotnetver} -f dotnet-runtime-dbg-files + +%files -n aspnetcore-runtime-%{dotnetver} -f aspnetcore-runtime-non-dbg-files %dir %{_libdir}/dotnet/shared %dir %{_libdir}/dotnet/shared/Microsoft.AspNetCore.App -%{_libdir}/dotnet/shared/Microsoft.AspNetCore.App/%{aspnetcore_runtime_version} +%dir %{_libdir}/dotnet/shared/Microsoft.AspNetCore.App/%{aspnetcore_runtime_version} + +%files -n aspnetcore-runtime-dbg-%{dotnetver} -f aspnetcore-runtime-dbg-files %files -n dotnet-templates-%{dotnetver} %dir %{_libdir}/dotnet/templates %{_libdir}/dotnet/templates/%{templates_version} -%files -n dotnet-sdk-%{dotnetver} +%files -n dotnet-sdk-%{dotnetver} -f dotnet-sdk-non-dbg-files %dir %{_libdir}/dotnet/sdk -%{_libdir}/dotnet/sdk/%{sdk_version} %dir %{_libdir}/dotnet/sdk-manifests %{_libdir}/dotnet/sdk-manifests/%{sdk_feature_band_version}* %{_libdir}/dotnet/metadata @@ -643,6 +691,8 @@ export COMPlus_LTTng=0 %{_libdir}/dotnet/packs/Microsoft.AspNetCore.App.Runtime.%{runtime_id}/%{aspnetcore_runtime_version} %{_libdir}/dotnet/packs/Microsoft.NETCore.App.Runtime.%{runtime_id}/%{runtime_version} +%files -n dotnet-sdk-dbg-%{dotnetver} -f dotnet-sdk-dbg-files + %files -n dotnet-sdk-%{dotnetver}-source-built-artifacts %dir %{_libdir}/dotnet %{_libdir}/dotnet/source-built-artifacts