Compare commits
No commits in common. "c8" and "c10s" have entirely different histories.
@ -1 +0,0 @@
|
||||
12090bf3fa9d16f96a49119818246d432ec5e1e1 SOURCES/dotnet-v3.1.426-SDK.tar.gz
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +0,0 @@
|
||||
SOURCES/dotnet-v3.1.426-SDK.tar.gz
|
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Package Not Available
|
||||
This package is not available on CentOS Stream 10.
|
||||
It may be available on another branch.
|
@ -1,136 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
"""
|
||||
Check debug symbols are present in shared object and can identify
|
||||
code.
|
||||
|
||||
It starts scanning from a directory and recursively scans all ELF
|
||||
files found in it for various symbols to ensure all debuginfo is
|
||||
present and nothing has been stripped.
|
||||
|
||||
Usage:
|
||||
|
||||
./check-debug-symbols /path/of/dir/to/scan/
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
./check-debug-symbols /usr/lib64
|
||||
"""
|
||||
|
||||
# This technique was explained to me by Mark Wielaard (mjw).
|
||||
|
||||
import collections
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
ScanResult = collections.namedtuple('ScanResult',
|
||||
'file_name debug_info debug_abbrev file_symbols gnu_debuglink')
|
||||
|
||||
|
||||
def scan_file(file):
|
||||
"Scan the provided file and return a ScanResult containing results of the scan."
|
||||
|
||||
# Test for .debug_* sections in the shared object. This is the main test.
|
||||
# Stripped objects will not contain these.
|
||||
readelf_S_result = subprocess.run(['eu-readelf', '-S', file],
|
||||
stdout=subprocess.PIPE, encoding='utf-8', check=True)
|
||||
has_debug_info = any(line for line in readelf_S_result.stdout.split('\n') if '] .debug_info' in line)
|
||||
|
||||
has_debug_abbrev = any(line for line in readelf_S_result.stdout.split('\n') if '] .debug_abbrev' in line)
|
||||
|
||||
# Test FILE symbols. These will most likely be removed by anyting that
|
||||
# manipulates symbol tables because it's generally useless. So a nice test
|
||||
# that nothing has messed with symbols.
|
||||
def contains_file_symbols(line):
|
||||
parts = line.split()
|
||||
if len(parts) < 8:
|
||||
return False
|
||||
return \
|
||||
parts[2] == '0' and parts[3] == 'FILE' and parts[4] == 'LOCAL' and parts[5] == 'DEFAULT' and \
|
||||
parts[6] == 'ABS' and re.match(r'((.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx))?', parts[7])
|
||||
|
||||
readelf_s_result = subprocess.run(["eu-readelf", '-s', file],
|
||||
stdout=subprocess.PIPE, encoding='utf-8', check=True)
|
||||
has_file_symbols = any(line for line in readelf_s_result.stdout.split('\n') if contains_file_symbols(line))
|
||||
|
||||
# Test that there are no .gnu_debuglink sections pointing to another
|
||||
# debuginfo file. There shouldn't be any debuginfo files, so the link makes
|
||||
# no sense either.
|
||||
has_gnu_debuglink = any(line for line in readelf_s_result.stdout.split('\n') if '] .gnu_debuglink' in line)
|
||||
|
||||
return ScanResult(file, has_debug_info, has_debug_abbrev, has_file_symbols, has_gnu_debuglink)
|
||||
|
||||
def is_elf(file):
|
||||
result = subprocess.run(['file', file], stdout=subprocess.PIPE, encoding='utf-8', check=True)
|
||||
return re.search('ELF 64-bit LSB (?:executable|shared object)', result.stdout)
|
||||
|
||||
def scan_file_if_sensible(file):
|
||||
if is_elf(file):
|
||||
# print(file)
|
||||
return scan_file(file)
|
||||
return None
|
||||
|
||||
def scan_dir(dir):
|
||||
results = []
|
||||
for root, _, files in os.walk(dir):
|
||||
for name in files:
|
||||
result = scan_file_if_sensible(os.path.join(root, name))
|
||||
if result:
|
||||
results.append(result)
|
||||
return results
|
||||
|
||||
def scan(file):
|
||||
file = os.path.abspath(file)
|
||||
if os.path.isdir(file):
|
||||
return scan_dir(file)
|
||||
elif os.path.isfile(file):
|
||||
return [scan_file_if_sensible(file)]
|
||||
|
||||
def is_bad_result(result):
|
||||
return not result.debug_info or not result.debug_abbrev or not result.file_symbols or result.gnu_debuglink
|
||||
|
||||
def print_scan_results(results, verbose):
|
||||
# print(results)
|
||||
for result in results:
|
||||
file_name = result.file_name
|
||||
found_issue = False
|
||||
if not result.debug_info:
|
||||
found_issue = True
|
||||
print('error: missing .debug_info section in', file_name)
|
||||
if not result.debug_abbrev:
|
||||
found_issue = True
|
||||
print('error: missing .debug_abbrev section in', file_name)
|
||||
if not result.file_symbols:
|
||||
found_issue = True
|
||||
print('error: missing FILE symbols in', file_name)
|
||||
if result.gnu_debuglink:
|
||||
found_issue = True
|
||||
print('error: unexpected .gnu_debuglink section in', file_name)
|
||||
if verbose and not found_issue:
|
||||
print('OK: ', file_name)
|
||||
|
||||
def main(args):
|
||||
verbose = False
|
||||
files = []
|
||||
for arg in args:
|
||||
if arg == '--verbose' or arg == '-v':
|
||||
verbose = True
|
||||
else:
|
||||
files.append(arg)
|
||||
|
||||
results = []
|
||||
for file in files:
|
||||
results.extend(scan(file))
|
||||
|
||||
print_scan_results(results, verbose)
|
||||
|
||||
if any(is_bad_result(result) for result in results):
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main(sys.argv[1:]))
|
@ -1,18 +0,0 @@
|
||||
diff --git a/src/dotnet/Program.cs b/src/dotnet/Program.cs
|
||||
index de1ebb9e6..6bbf479de 100644
|
||||
--- a/src/dotnet/Program.cs
|
||||
+++ b/src/dotnet/Program.cs
|
||||
@@ -28,6 +28,13 @@ public class Program
|
||||
|
||||
public static int Main(string[] args)
|
||||
{
|
||||
+ // opt out of telemetry by default if the env var is unset
|
||||
+ string telemetryValue = Environment.GetEnvironmentVariable("DOTNET_CLI_TELEMETRY_OPTOUT");
|
||||
+ if (String.IsNullOrEmpty(telemetryValue))
|
||||
+ {
|
||||
+ Environment.SetEnvironmentVariable("DOTNET_CLI_TELEMETRY_OPTOUT", "1");
|
||||
+ }
|
||||
+
|
||||
DebugHelper.HandleDebugSwitch(ref args);
|
||||
|
||||
new MulticoreJitActivator().TryActivateMulticoreJit();
|
@ -1,58 +0,0 @@
|
||||
--- a/src/settings.cmake
|
||||
+++ b/src/settings.cmake
|
||||
@@ -69,55 +69,10 @@
|
||||
endif (CMAKE_SYSTEM_NAME STREQUAL Darwin)
|
||||
endif ()
|
||||
|
||||
-function(strip_symbols targetName outputFilename)
|
||||
- if(CLR_CMAKE_PLATFORM_UNIX)
|
||||
- if(STRIP_SYMBOLS)
|
||||
-
|
||||
- # On the older version of cmake (2.8.12) used on Ubuntu 14.04 the TARGET_FILE
|
||||
- # generator expression doesn't work correctly returning the wrong path and on
|
||||
- # the newer cmake versions the LOCATION property isn't supported anymore.
|
||||
- if(CMAKE_VERSION VERSION_EQUAL 3.0 OR CMAKE_VERSION VERSION_GREATER 3.0)
|
||||
- set(strip_source_file $<TARGET_FILE:${targetName}>)
|
||||
- else()
|
||||
- get_property(strip_source_file TARGET ${targetName} PROPERTY LOCATION)
|
||||
- endif()
|
||||
-
|
||||
- if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
|
||||
- set(strip_destination_file ${strip_source_file}.dwarf)
|
||||
-
|
||||
- add_custom_command(
|
||||
- TARGET ${targetName}
|
||||
- POST_BUILD
|
||||
- VERBATIM
|
||||
- COMMAND ${DSYMUTIL} --flat --minimize ${strip_source_file}
|
||||
- COMMAND ${STRIP} -u -r ${strip_source_file}
|
||||
- COMMENT Stripping symbols from ${strip_source_file} into file ${strip_destination_file}
|
||||
- )
|
||||
- else(CMAKE_SYSTEM_NAME STREQUAL Darwin)
|
||||
- set(strip_destination_file ${strip_source_file}.dbg)
|
||||
-
|
||||
- add_custom_command(
|
||||
- TARGET ${targetName}
|
||||
- POST_BUILD
|
||||
- VERBATIM
|
||||
- COMMAND ${OBJCOPY} --only-keep-debug ${strip_source_file} ${strip_destination_file}
|
||||
- COMMAND ${OBJCOPY} --strip-unneeded ${strip_source_file}
|
||||
- COMMAND ${OBJCOPY} --add-gnu-debuglink=${strip_destination_file} ${strip_source_file}
|
||||
- COMMENT Stripping symbols from ${strip_source_file} into file ${strip_destination_file}
|
||||
- )
|
||||
- endif(CMAKE_SYSTEM_NAME STREQUAL Darwin)
|
||||
-
|
||||
- set(${outputFilename} ${strip_destination_file} PARENT_SCOPE)
|
||||
- endif(STRIP_SYMBOLS)
|
||||
- endif(CLR_CMAKE_PLATFORM_UNIX)
|
||||
-endfunction()
|
||||
-
|
||||
function(install_symbols targetName destination_path)
|
||||
if(WIN32)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/${targetName}.pdb DESTINATION ${destination_path})
|
||||
else()
|
||||
- strip_symbols(${targetName} strip_destination_file)
|
||||
- install(FILES ${strip_destination_file} DESTINATION ${destination_path})
|
||||
endif()
|
||||
endfunction()
|
||||
|
@ -1,27 +0,0 @@
|
||||
From e900fff68af76d51a59ac085b35ace76939bc007 Mon Sep 17 00:00:00 2001
|
||||
From: Omair Majid <omajid@redhat.com>
|
||||
Date: Tue, 18 Jan 2022 21:45:52 -0500
|
||||
Subject: [PATCH] Disable Werror
|
||||
|
||||
This is so late in the release cycle that fixing warnings is just not
|
||||
really worth it. The general approach is to fix the issues in the
|
||||
development branches and disable warnings in the older release branches.
|
||||
---
|
||||
src/settings.cmake | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/src/settings.cmake b/src/settings.cmake
|
||||
index ff1e04f9..5cc9b3ef 100644
|
||||
--- a/src/settings.cmake
|
||||
+++ b/src/settings.cmake
|
||||
@@ -201,7 +201,6 @@ else()
|
||||
# compiling with -std=c++11.
|
||||
# add_compile_options(-Weverything)
|
||||
endif()
|
||||
- add_compile_options(-Werror)
|
||||
add_compile_options(-Wno-missing-field-initializers)
|
||||
add_compile_options(-Wno-unused-function)
|
||||
add_compile_options(-Wno-unused-local-typedef)
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,42 +0,0 @@
|
||||
From 3dd725eca0079e2b49821dfeb0ec1cb166cc7414 Mon Sep 17 00:00:00 2001
|
||||
From: Omair Majid <omajid@redhat.com>
|
||||
Date: Fri, 4 Oct 2019 19:29:53 -0400
|
||||
Subject: [PATCH] Handle glibc sys/sysctl.h deprecation
|
||||
|
||||
glibc has deprecated sys/sysctl.h:
|
||||
|
||||
In file included from /coreclr/src/pal/src/misc/sysinfo.cpp:32:
|
||||
/usr/include/sys/sysctl.h:21:2: error: "The <sys/sysctl.h> header is deprecated and will be removed." [-Werror,-W#warnings]
|
||||
#warning "The <sys/sysctl.h> header is deprecated and will be removed."
|
||||
^
|
||||
1 error generated.
|
||||
|
||||
Fix that by preferring sysconf and only including sys/sysctl.h if
|
||||
HAVE_SYSCONF is not true. This mirrors the order of the implementation
|
||||
code in this file (sysinfo.cpp) which checks for HAVE_SYSCONF
|
||||
before HAVE_SYSCTL.
|
||||
|
||||
Fixes #27008
|
||||
---
|
||||
src/pal/src/misc/sysinfo.cpp | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/pal/src/misc/sysinfo.cpp b/src/pal/src/misc/sysinfo.cpp
|
||||
index e1c949e38d53..50ccf3a75e16 100644
|
||||
--- a/src/pal/src/misc/sysinfo.cpp
|
||||
+++ b/src/pal/src/misc/sysinfo.cpp
|
||||
@@ -28,9 +28,12 @@ Revision History:
|
||||
#define __STDC_FORMAT_MACROS
|
||||
#include <inttypes.h>
|
||||
#include <sys/types.h>
|
||||
-#if HAVE_SYSCTL
|
||||
+
|
||||
+#if HAVE_SYSCONF
|
||||
+// <unistd.h> already included above
|
||||
+#elif HAVE_SYSCTL
|
||||
#include <sys/sysctl.h>
|
||||
-#elif !HAVE_SYSCONF
|
||||
+#else
|
||||
#error Either sysctl or sysconf is required for GetSystemInfo.
|
||||
#endif
|
||||
|
@ -1,46 +0,0 @@
|
||||
From 1864630f762160e1cb439362cc0577471624192a Mon Sep 17 00:00:00 2001
|
||||
From: Omair Majid <omajid@redhat.com>
|
||||
Date: Fri, 19 Jul 2019 19:18:51 -0400
|
||||
Subject: [PATCH] Fix up cgroup2fs in Interop.MountPoints.FormatInfo
|
||||
|
||||
`stat -fc %T /sys/fs/cgroup` calls this file system `cgroup2fs`
|
||||
|
||||
Add the cgroup2fs file system magic number. Available from:
|
||||
|
||||
- https://www.kernel.org/doc/Documentation/cgroup-v2.txt
|
||||
- man 2 statfs
|
||||
|
||||
Move cgroup2fs next to cgroupfs in the drive type list, since it is also
|
||||
DriveType.Ram.
|
||||
---
|
||||
.../Unix/System.Native/Interop.MountPoints.FormatInfo.cs | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/Common/src/Interop/Unix/System.Native/Interop.MountPoints.FormatInfo.cs b/src/Common/src/Interop/Unix/System.Native/Interop.MountPoints.FormatInfo.cs
|
||||
index af38a2285ba2..4240bd4853ab 100644
|
||||
--- a/src/Common/src/Interop/Unix/System.Native/Interop.MountPoints.FormatInfo.cs
|
||||
+++ b/src/Common/src/Interop/Unix/System.Native/Interop.MountPoints.FormatInfo.cs
|
||||
@@ -47,6 +47,7 @@ internal enum UnixFileSystemTypes : long
|
||||
btrfs = 0x9123683E,
|
||||
ceph = 0x00C36400,
|
||||
cgroupfs = 0x0027E0EB,
|
||||
+ cgroup2fs = 0x63677270,
|
||||
cifs = 0xFF534D42,
|
||||
coda = 0x73757245,
|
||||
coherent = 0x012FF7B7,
|
||||
@@ -231,7 +232,6 @@ private static DriveType GetDriveType(string fileSystemName)
|
||||
case "bpf_fs":
|
||||
case "btrfs":
|
||||
case "btrfs_test":
|
||||
- case "cgroup2fs":
|
||||
case "coh":
|
||||
case "daxfs":
|
||||
case "drvfs":
|
||||
@@ -384,6 +384,7 @@ private static DriveType GetDriveType(string fileSystemName)
|
||||
case "binfmt_misc":
|
||||
case "cgroup":
|
||||
case "cgroupfs":
|
||||
+ case "cgroup2fs":
|
||||
case "configfs":
|
||||
case "cramfs":
|
||||
case "cramfs-wend":
|
@ -1,40 +0,0 @@
|
||||
diff --git a/src/Native/Unix/CMakeLists.txt b/src/Native/Unix/CMakeLists.txt
|
||||
index 7d804a1e54..717c2718d7 100644
|
||||
--- a/src/Native/Unix/CMakeLists.txt
|
||||
+++ b/src/Native/Unix/CMakeLists.txt
|
||||
@@ -25,7 +25,7 @@ add_compile_options(-fPIC)
|
||||
add_compile_options(-Wthread-safety)
|
||||
add_compile_options(-Wno-thread-safety-analysis)
|
||||
endif()
|
||||
-add_compile_options(-Werror)
|
||||
+add_compile_options(-Wno-unused-result)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL Emscripten)
|
||||
set(CLR_CMAKE_PLATFORM_WASM 1)
|
||||
diff --git a/src/Native/Unix/configure.cmake b/src/Native/Unix/configure.cmake
|
||||
index f4a30ad6cb..f2db68402a 100644
|
||||
--- a/src/Native/Unix/configure.cmake
|
||||
+++ b/src/Native/Unix/configure.cmake
|
||||
@@ -27,6 +27,12 @@ else ()
|
||||
message(FATAL_ERROR "Unknown platform. Cannot define PAL_UNIX_NAME, used by RuntimeInformation.")
|
||||
endif ()
|
||||
|
||||
+
|
||||
+set (PREVIOUS_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
||||
+set (CMAKE_CXX_FLAGS "-D_GNU_SOURCE")
|
||||
+set (PREVIOUS_CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
|
||||
+set (CMAKE_C_FLAGS "-D_GNU_SOURCE")
|
||||
+
|
||||
# We compile with -Werror, so we need to make sure these code fragments compile without warnings.
|
||||
# Older CMake versions (3.8) do not assign the result of their tests, causing unused-value errors
|
||||
# which are not distinguished from the test failing. So no error for that one.
|
||||
@@ -698,6 +704,9 @@ endif()
|
||||
|
||||
set (CMAKE_REQUIRED_LIBRARIES)
|
||||
|
||||
+set (CMAKE_CXX_FLAGS "${PREVIOUS_CMAKE_CXX_FLAGS}")
|
||||
+set (CMAKE_C_FLAGS "${PREVIOUS_CMAKE_C_FLAGS}")
|
||||
+
|
||||
check_c_source_compiles(
|
||||
"
|
||||
#include <sys/inotify.h>
|
@ -1,15 +0,0 @@
|
||||
diff --git a/Directory.Build.props b/Directory.Build.props
|
||||
index f6a6f54a..8247c3ee 100644
|
||||
--- a/Directory.Build.props
|
||||
+++ b/Directory.Build.props
|
||||
@@ -133,8 +133,8 @@
|
||||
<AspNetRazorBuildServerLogDir>$(BaseOutputPath)aspnet-debug</AspNetRazorBuildServerLogDir>
|
||||
<AspNetRazorBuildServerLogFile>$(AspNetRazorBuildServerLogDir)razor-build-server.log</AspNetRazorBuildServerLogFile>
|
||||
<IlasmPath Condition="'$(OfflineBuild)' != 'true'">invalid: ILAsm is not expected to be needed in the online build</IlasmPath>
|
||||
- <IlasmPath Condition="'$(OfflineBuild)' == 'true'">$(PrebuiltSourceBuiltPackagesPath)coreclr-tools/$(BuildArchitecture)/ilasm</IlasmPath>
|
||||
- <IldasmPath Condition="'$(OfflineBuild)' != 'true'">$(ToolPackageExtractDir)coreclr-tools/$(BuildArchitecture)/ildasm</IldasmPath>
|
||||
+ <IlasmPath Condition="'$(OfflineBuild)' == 'true'">$(PrebuiltSourceBuiltPackagesPath)coreclr-tools/ilasm</IlasmPath>
|
||||
+ <IldasmPath Condition="'$(OfflineBuild)' != 'true'">$(ToolPackageExtractDir)coreclr-tools/ildasm</IldasmPath>
|
||||
<IldasmPath Condition="'$(OfflineBuild)' == 'true'">invalid: ILDasm is not expected to be needed in the offline build</IldasmPath>
|
||||
<!-- Dir where git info is generated during online builds. -->
|
||||
<GitInfoOutputDir>$(BaseOutputPath)git-info/</GitInfoOutputDir>
|
1
dead.package
Normal file
1
dead.package
Normal file
@ -0,0 +1 @@
|
||||
dotnet3.1 package is retired on branch c10s for CS-2551
|
@ -14,26 +14,24 @@
|
||||
%global __provides_exclude ^(%{privlibs})\\.so
|
||||
%global __requires_exclude ^(%{privlibs})\\.so
|
||||
|
||||
# Filter flags not supported by clang/dotnet:
|
||||
# -fstack-clash-protection is not supported by clang
|
||||
# -specs= is not supported by clang
|
||||
%global dotnet_cflags %(echo %optflags | sed -e 's/-fstack-clash-protection//' | sed -re 's/-specs=[^ ]*//g')
|
||||
%if 0%{?fedora} < 30 && ! 0%{?rhel}
|
||||
# on Fedora 29, clang, -fcf-protection and binutils interact in strage ways leading to
|
||||
# "<corrupt x86 feature size: 0x8>" errors.
|
||||
%global dotnet_cflags %(echo %dotnet_cflags | sed -e 's/ -fcf-protection//')
|
||||
%endif
|
||||
%global dotnet_ldflags %(echo %{__global_ldflags} | sed -re 's/-specs=[^ ]*//g')
|
||||
# LTO triggers a compilation error for a source level issue. Given that LTO should not
|
||||
# change the validity of any given source and the nature of the error (undefined enum), I
|
||||
# suspect a generator program is mis-behaving in some way. This needs further debugging,
|
||||
# until that's done, disable LTO. This has to happen before setting the flags below.
|
||||
%define _lto_cflags %{nil}
|
||||
|
||||
%global host_version 3.1.32
|
||||
%global runtime_version 3.1.32
|
||||
|
||||
%global host_version 3.1.11
|
||||
%global runtime_version 3.1.11
|
||||
%global aspnetcore_runtime_version %{runtime_version}
|
||||
%global sdk_version 3.1.426
|
||||
%global sdk_version 3.1.111
|
||||
# upstream can update releases without revving the SDK version so these don't always match
|
||||
%global src_version %{sdk_version}
|
||||
%global templates_version %(echo %{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }')
|
||||
|
||||
%global host_rpm_version %{host_version}
|
||||
%global runtime_rpm_version %{runtime_version}
|
||||
%global aspnetcore_runtime_rpm_version %{aspnetcore_runtime_version}
|
||||
%global runtime_rpm_version %{runtime_version}
|
||||
%global sdk_rpm_version %{sdk_version}
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} < 8
|
||||
@ -42,6 +40,10 @@
|
||||
%global use_bundled_libunwind 1
|
||||
%endif
|
||||
|
||||
%ifarch aarch64
|
||||
%global use_bundled_libunwind 1
|
||||
%endif
|
||||
|
||||
%ifarch x86_64
|
||||
%global runtime_arch x64
|
||||
%endif
|
||||
@ -49,45 +51,54 @@
|
||||
%global runtime_arch arm64
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora}
|
||||
%global runtime_id fedora.%{fedora}-%{runtime_arch}
|
||||
%else
|
||||
%if 0%{?centos}
|
||||
%global runtime_id centos.%{centos}-%{runtime_arch}
|
||||
%else
|
||||
%global runtime_id rhel.%{rhel}-%{runtime_arch}
|
||||
%endif
|
||||
%endif
|
||||
%{!?runtime_id:%global runtime_id %(. /etc/os-release ; echo "${ID}.${VERSION_ID%%.*}")-%{runtime_arch}}
|
||||
|
||||
Name: dotnet3.1
|
||||
Version: %{sdk_rpm_version}
|
||||
Release: 1%{?dist}
|
||||
Summary: .NET Core CLI tools and runtime
|
||||
License: MIT and ASL 2.0 and BSD
|
||||
Summary: .NET Core Runtime and SDK
|
||||
License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
|
||||
URL: https://github.com/dotnet/
|
||||
|
||||
# ./build-dotnet-tarball dotnet-v%%{sdk_version}-SDK
|
||||
Source0: dotnet-v%{sdk_version}-SDK.tar.gz
|
||||
#Source0: dotnet-v%%{sdk_version}-SDK-x64-bootstrap.tar.gz
|
||||
# The source is generated on a Fedora box via:
|
||||
# ./build-dotnet-tarball v%%{src_version}-SDK
|
||||
Source0: dotnet-v%{src_version}-SDK.tar.gz
|
||||
Source1: check-debug-symbols.py
|
||||
Source2: dotnet.sh.in
|
||||
|
||||
Source100: check-debug-symbols.py
|
||||
Source101: dotnet.sh.in
|
||||
|
||||
Patch1: source-build-ilasm-ildasm-path-fix.patch
|
||||
Patch1: source-build-warnings-are-not-errors.patch
|
||||
|
||||
# Fix building with our additional CFLAGS/CXXFLAGS/LDFLAGS
|
||||
Patch100: corefx-optflags-support.patch
|
||||
|
||||
# Add some support for cgroupv2 in corefx
|
||||
# All these patches are upstreamed for 5.0
|
||||
Patch101: corefx-39686-cgroupv2-01.patch
|
||||
Patch102: corefx-39686-cgroupv2-02.patch
|
||||
Patch103: corefx-39633-cgroupv2-mountpoints.patch
|
||||
|
||||
Patch200: coreclr-27048-sysctl-deprecation.patch
|
||||
# Already applied at tarball build time
|
||||
#Patch201: coreclr-libunwind-fno-common.patch
|
||||
# Build with with hardening flags, including -pie
|
||||
Patch200: coreclr-hardening-flags.patch
|
||||
# Fix build with clang 10; Already applied at tarball-build time
|
||||
# Patch201: coreclr-clang10.patch
|
||||
# Fix build on recent versions of gcc/clang
|
||||
# https://github.com/libunwind/libunwind/pull/166
|
||||
# Already applied
|
||||
#Patch202: coreclr-libunwind-fno-common.patch
|
||||
|
||||
Patch300: core-setup-do-not-strip.patch
|
||||
Patch301: core-setup-no-werror.patch
|
||||
# Build with with hardening flags, including -pie
|
||||
Patch300: core-setup-hardening-flags.patch
|
||||
Patch301: core-setup-gcc11.patch
|
||||
|
||||
# Disable telemetry by default; make it opt-in
|
||||
Patch500: cli-telemetry-optout.patch
|
||||
|
||||
|
||||
%if 0%{?fedora} > 32 || 0%{?rhel} > 8
|
||||
ExclusiveArch: aarch64 x86_64
|
||||
%else
|
||||
ExclusiveArch: x86_64
|
||||
%endif
|
||||
|
||||
BuildRequires: clang
|
||||
BuildRequires: cmake
|
||||
@ -97,6 +108,7 @@ BuildRequires: dotnet-build-reference-packages
|
||||
BuildRequires: dotnet-sdk-3.1
|
||||
BuildRequires: dotnet-sdk-3.1-source-built-artifacts
|
||||
%endif
|
||||
BuildRequires: findutils
|
||||
BuildRequires: git
|
||||
%if 0%{?fedora} || 0%{?rhel} > 7
|
||||
BuildRequires: glibc-langpack-en
|
||||
@ -111,8 +123,10 @@ BuildRequires: libunwind-devel
|
||||
BuildRequires: lldb-devel
|
||||
BuildRequires: llvm
|
||||
BuildRequires: lttng-ust-devel
|
||||
BuildRequires: make
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: python3
|
||||
BuildRequires: systemtap-sdt-devel
|
||||
BuildRequires: tar
|
||||
BuildRequires: zlib-devel
|
||||
|
||||
@ -191,10 +205,8 @@ Summary: NET Core 3.1 runtime
|
||||
Requires: dotnet-hostfxr-3.1%{?_isa} >= %{host_rpm_version}-%{release}
|
||||
|
||||
# libicu is dlopen()ed
|
||||
Requires: libicu
|
||||
Requires: libicu%{?_isa}
|
||||
|
||||
# See src/corefx.*/src/Native/AnyOS/brotli-version.txt
|
||||
Provides: bundled(libbrotli) = 1.0.9
|
||||
%if %{use_bundled_libunwind}
|
||||
Provides: bundled(libunwind) = 1.3
|
||||
%endif
|
||||
@ -254,6 +266,9 @@ applications and micro-services.
|
||||
Version: %{sdk_rpm_version}
|
||||
Summary: .NET Core 3.1 Software Development Kit
|
||||
|
||||
Provides: bundled(js-jquery)
|
||||
Provides: bundled(npm)
|
||||
|
||||
Requires: dotnet-runtime-3.1%{?_isa} >= %{runtime_rpm_version}-%{release}
|
||||
Requires: aspnetcore-runtime-3.1%{?_isa} >= %{aspnetcore_runtime_rpm_version}-%{release}
|
||||
|
||||
@ -275,16 +290,16 @@ It particularly focuses on creating console applications, web
|
||||
applications and micro-services.
|
||||
|
||||
|
||||
%define dotnet_targeting_pack() %{expand:
|
||||
%global dotnet_targeting_pack() %{expand:
|
||||
%package -n %{1}
|
||||
|
||||
Version: %{2}
|
||||
Summary: Targeting Pack for %{3} %{4}
|
||||
|
||||
Requires: dotnet-host
|
||||
Requires: dotnet-host%{?_isa}
|
||||
|
||||
%description -n %{1}
|
||||
This package provides a targetting pack for %{3} %{4}
|
||||
This package provides a targeting pack for %{3} %{4}
|
||||
that allows developers to compile against and target %{3} %{4}
|
||||
applications using the .NET Core SDK.
|
||||
|
||||
@ -296,7 +311,8 @@ applications using the .NET Core SDK.
|
||||
%dotnet_targeting_pack dotnet-apphost-pack-3.1 %{runtime_rpm_version} Microsoft.NETCore.App 3.1 Microsoft.NETCore.App.Host.%{runtime_id}
|
||||
%dotnet_targeting_pack dotnet-targeting-pack-3.1 %{runtime_rpm_version} Microsoft.NETCore.App 3.1 Microsoft.NETCore.App.Ref
|
||||
%dotnet_targeting_pack aspnetcore-targeting-pack-3.1 %{aspnetcore_runtime_rpm_version} Microsoft.AspNetCore.App 3.1 Microsoft.AspNetCore.App.Ref
|
||||
#%%dotnet_targeting_pack netstandard-targeting-pack-2.1 %%{sdk_rpm_version} NETStandard.Library 2.1 NETStandard.Library.Ref
|
||||
%dotnet_targeting_pack netstandard-targeting-pack-2.1 %{sdk_rpm_version} NETStandard.Library 2.1 NETStandard.Library.Ref
|
||||
|
||||
|
||||
%package -n dotnet-sdk-3.1-source-built-artifacts
|
||||
|
||||
@ -311,18 +327,7 @@ These are not meant for general use.
|
||||
|
||||
|
||||
%prep
|
||||
%if %{with bootstrap}
|
||||
|
||||
%ifarch x86_64
|
||||
%setup T -b0 -q -n dotnet-v%{sdk_version}-SDK-%{runtime_arch}-bootstrap
|
||||
%endif
|
||||
%ifarch aarch64
|
||||
%setup T -b1 -q -n dotnet-v%{sdk_version}-SDK-%{runtime_arch}-bootstrap
|
||||
%endif
|
||||
|
||||
%else
|
||||
%setup -q -n dotnet-v%{sdk_version}-SDK
|
||||
%endif
|
||||
%setup -q -n dotnet-v%{src_version}-SDK
|
||||
|
||||
%if %{without bootstrap}
|
||||
# Remove all prebuilts
|
||||
@ -336,38 +341,43 @@ rm -rf packages/source-built
|
||||
%endif
|
||||
|
||||
%if %{without bootstrap}
|
||||
sed -i -e 's|3.1.100-preview1-014459|3.1.103|' global.json
|
||||
mkdir -p packages/archive
|
||||
ln -s %{_libdir}/dotnet/source-built-artifacts/*.tar.gz packages/archive/
|
||||
ln -s %{_libdir}/dotnet/reference-packages/Private.SourceBuild.ReferencePackages*.tar.gz packages/archive
|
||||
%endif
|
||||
|
||||
# Fix bad hardcoded path in build
|
||||
sed -i 's|/usr/share/dotnet|%{_libdir}/dotnet|' src/dotnet-core-setup.*/src/corehost/common/pal.unix.cpp
|
||||
sed -i 's|/usr/share/dotnet|%{_libdir}/dotnet|' src/core-setup.*/src/corehost/common/pal.unix.cpp
|
||||
|
||||
# Disable warnings
|
||||
sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.common.props
|
||||
sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.proj
|
||||
|
||||
%patch1 -p1
|
||||
|
||||
pushd src/dotnet-corefx.*
|
||||
pushd src/corefx.*
|
||||
%patch100 -p1
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
%patch103 -p1
|
||||
popd
|
||||
|
||||
pushd src/dotnet-coreclr.*
|
||||
pushd src/coreclr.*
|
||||
%patch200 -p1
|
||||
#%%patch201 -p1
|
||||
#%%patch202 -p1
|
||||
popd
|
||||
|
||||
pushd src/dotnet-core-setup.*
|
||||
pushd src/core-setup.*
|
||||
%patch300 -p1
|
||||
%patch301 -p1
|
||||
popd
|
||||
|
||||
pushd src/dotnet-cli.*
|
||||
pushd src/cli.*
|
||||
%patch500 -p1
|
||||
popd
|
||||
|
||||
|
||||
# If CLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE is misisng, add it back
|
||||
grep CLR_CMAKE_USE_SYSTEM_LIBUNWIND repos/coreclr.common.props || \
|
||||
sed -i 's|\$(BuildArguments) </BuildArguments>|$(BuildArguments) cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE</BuildArguments>|' repos/coreclr.common.props
|
||||
@ -376,6 +386,11 @@ grep CLR_CMAKE_USE_SYSTEM_LIBUNWIND repos/coreclr.common.props || \
|
||||
sed -i 's|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=FALSE|' repos/coreclr.common.props
|
||||
%endif
|
||||
|
||||
%ifnarch x86_64
|
||||
mkdir -p artifacts/obj/%{runtime_arch}/Release
|
||||
cp artifacts/obj/x64/Release/PackageVersions.props artifacts/obj/%{runtime_arch}/Release/PackageVersions.props
|
||||
%endif
|
||||
|
||||
cat source-build-info.txt
|
||||
|
||||
find -iname 'nuget.config' -exec echo {}: \; -exec cat {} \; -exec echo \;
|
||||
@ -389,9 +404,40 @@ cat /etc/os-release
|
||||
cp -a %{_libdir}/dotnet previously-built-dotnet
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} > 32 || 0%{?rhel} > 8
|
||||
# Setting this macro ensures that only clang supported options will be
|
||||
# added to ldflags and cflags.
|
||||
%global toolchain clang
|
||||
%set_build_flags
|
||||
%else
|
||||
# Filter flags not supported by clang
|
||||
# -specs=
|
||||
%global dotnet_cflags %(echo %optflags | sed -re 's/-specs=[^ ]*//g')
|
||||
%global dotnet_ldflags %(echo %{__global_ldflags} | sed -re 's/-specs=[^ ]*//g')
|
||||
export CFLAGS="%{dotnet_cflags}"
|
||||
export CXXFLAGS="%{dotnet_cflags}"
|
||||
export LDFLAGS="%{dotnet_ldflags}"
|
||||
%endif
|
||||
|
||||
%ifarch aarch64
|
||||
# mbranch-protection=standard breaks unwinding in CoreCLR through libunwind
|
||||
CFLAGS=$(echo $CFLAGS | sed -e 's/-mbranch-protection=standard //')
|
||||
CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/-mbranch-protection=standard //')
|
||||
%endif
|
||||
|
||||
# fstack-clash-protection breaks CoreCLR
|
||||
CFLAGS=$(echo $CFLAGS | sed -e 's/-fstack-clash-protection//' )
|
||||
CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/-fstack-clash-protection//' )
|
||||
|
||||
echo $CFLAGS
|
||||
echo $CXXFLAGS
|
||||
echo $LDFLAGS
|
||||
|
||||
#%%if %%{without bootstrap}
|
||||
# --with-ref-packages %%{_libdir}/dotnet/reference-packages/ \
|
||||
# --with-packages %%{_libdir}/dotnet/source-built-artifacts/*.tar.gz \
|
||||
# --with-sdk %%{_libdir}/dotnet \
|
||||
#%%endif
|
||||
|
||||
VERBOSE=1 ./build.sh \
|
||||
%if %{without bootstrap}
|
||||
@ -405,12 +451,12 @@ VERBOSE=1 ./build.sh \
|
||||
/p:ContinueOnPrebuiltBaselineError=true \
|
||||
|
||||
|
||||
sed -e 's|[@]LIBDIR[@]|%{_libdir}|g' %{SOURCE101} > dotnet.sh
|
||||
sed -e 's|[@]LIBDIR[@]|%{_libdir}|g' %{SOURCE2} > dotnet.sh
|
||||
|
||||
|
||||
%install
|
||||
install -dm 0755 %{buildroot}%{_libdir}/dotnet
|
||||
find artifacts/%{runtime_arch}/Release
|
||||
ls artifacts/%{runtime_arch}/Release
|
||||
tar xf artifacts/%{runtime_arch}/Release/dotnet-sdk-%{sdk_version}-%{runtime_id}.tar.gz -C %{buildroot}%{_libdir}/dotnet/
|
||||
|
||||
# Install managed symbols
|
||||
@ -424,44 +470,30 @@ find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.props' -exec chmod -x {} \;
|
||||
find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.pubxml' -exec chmod -x {} \;
|
||||
find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.targets' -exec chmod -x {} \;
|
||||
chmod 0755 %{buildroot}/%{_libdir}/dotnet/sdk/%{sdk_version}/AppHostTemplate/apphost
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.10/data/FrameworkList.xml
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.10/data/PackageOverrides.txt
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.10/data/PlatformManifest.txt
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.10/ref/netcoreapp3.1/*.xml
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/nethost.h
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/data/FrameworkList.xml
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/data/PackageOverrides.txt
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/data/PlatformManifest.txt
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/NETStandard.Library.Ref/2.1.0/data/FrameworkList.xml
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/NETStandard.Library.Ref/2.1.0/data/PackageOverrides.txt
|
||||
chmod 0755 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/apphost
|
||||
chmod 0755 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/libnethost.so
|
||||
chmod 0755 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/apphost
|
||||
chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/nethost.h
|
||||
|
||||
# Provided by dotnet-host from another SRPM
|
||||
#install -dm 0755 %%{buildroot}%%{_sysconfdir}/profile.d/
|
||||
#install dotnet.sh %%{buildroot}%%{_sysconfdir}/profile.d/
|
||||
install -dm 0755 %{buildroot}%{_sysconfdir}/profile.d/
|
||||
install dotnet.sh %{buildroot}%{_sysconfdir}/profile.d/
|
||||
|
||||
# Provided by dotnet-host from another SRPM
|
||||
#install -dm 0755 %%{buildroot}/%%{_datadir}/bash-completion/completions
|
||||
install -dm 0755 %{buildroot}/%{_datadir}/bash-completion/completions
|
||||
# dynamic completion needs the file to be named the same as the base command
|
||||
#install src/dotnet-cli.*/scripts/register-completions.bash %%{buildroot}/%%{_datadir}/bash-completion/completions/dotnet
|
||||
install src/cli.*/scripts/register-completions.bash %{buildroot}/%{_datadir}/bash-completion/completions/dotnet
|
||||
|
||||
# TODO: the zsh completion script needs to be ported to use #compdef
|
||||
#install -dm 755 %%{buildroot}/%%{_datadir}/zsh/site-functions
|
||||
#install src/dotnet-cli/scripts/register-completions.zsh %%{buildroot}/%%{_datadir}/zsh/site-functions/_dotnet
|
||||
#install src/cli/scripts/register-completions.zsh %%{buildroot}/%%{_datadir}/zsh/site-functions/_dotnet
|
||||
|
||||
# Provided by dotnet-host from another SRPM
|
||||
#install -dm 0755 %%{buildroot}%%{_bindir}
|
||||
#ln -s ../../%%{_libdir}/dotnet/dotnet %%{buildroot}%%{_bindir}/
|
||||
install -dm 0755 %{buildroot}%{_bindir}
|
||||
ln -s ../../%{_libdir}/dotnet/dotnet %{buildroot}%{_bindir}/
|
||||
|
||||
# Provided by dotnet-host from another SRPM
|
||||
#install -dm 0755 %%{buildroot}%%{_mandir}/man1/
|
||||
#find -iname 'dotnet*.1' -type f -exec cp {} %%{buildroot}%%{_mandir}/man1/ \;
|
||||
install -dm 0755 %{buildroot}%{_mandir}/man1/
|
||||
find -iname 'dotnet*.1' -type f -exec cp {} %{buildroot}%{_mandir}/man1/ \;
|
||||
|
||||
# Provided by dotnet-host from another SRPM
|
||||
#echo "%%{_libdir}/dotnet" >> install_location
|
||||
#install -dm 0755 %%{buildroot}%%{_sysconfdir}/dotnet
|
||||
#install install_location %%{buildroot}%%{_sysconfdir}/dotnet/
|
||||
echo "%{_libdir}/dotnet" >> install_location
|
||||
install -dm 0755 %{buildroot}%{_sysconfdir}/dotnet
|
||||
install install_location %{buildroot}%{_sysconfdir}/dotnet/
|
||||
|
||||
install -dm 0755 %{buildroot}%{_libdir}/dotnet/source-built-artifacts
|
||||
install artifacts/%{runtime_arch}/Release/Private.SourceBuilt.Artifacts.*.tar.gz %{buildroot}/%{_libdir}/dotnet/source-built-artifacts/
|
||||
@ -470,18 +502,30 @@ install artifacts/%{runtime_arch}/Release/Private.SourceBuilt.Artifacts.*.tar.gz
|
||||
# because native binaries are stripped by rpm-build after %%install.
|
||||
# So we need to do this check earlier.
|
||||
echo "Testing build results for debug symbols..."
|
||||
%{SOURCE100} -v %{buildroot}%{_libdir}/dotnet/
|
||||
%{SOURCE1} -v %{buildroot}%{_libdir}/dotnet/
|
||||
|
||||
# Self-check
|
||||
|
||||
%check
|
||||
%{buildroot}%{_libdir}/dotnet/dotnet --info
|
||||
|
||||
# Provided by dotnet-host from another SRPM
|
||||
rm %{buildroot}%{_libdir}/dotnet/LICENSE.txt
|
||||
rm %{buildroot}%{_libdir}/dotnet/ThirdPartyNotices.txt
|
||||
rm %{buildroot}%{_libdir}/dotnet/dotnet
|
||||
|
||||
# Provided by netstandard-targeting-pack-2.1 from another SRPM
|
||||
rm -rf %{buildroot}%{_libdir}/dotnet/packs/NETStandard.Library.Ref/2.1.0
|
||||
%files -n dotnet
|
||||
# empty package useful for dependencies
|
||||
|
||||
%files -n dotnet-host
|
||||
%dir %{_libdir}/dotnet
|
||||
%{_libdir}/dotnet/dotnet
|
||||
%dir %{_libdir}/dotnet/host
|
||||
%dir %{_libdir}/dotnet/host/fxr
|
||||
%{_bindir}/dotnet
|
||||
%license %{_libdir}/dotnet/LICENSE.txt
|
||||
%license %{_libdir}/dotnet/ThirdPartyNotices.txt
|
||||
%doc %{_mandir}/man1/dotnet*.1.gz
|
||||
%{_sysconfdir}/profile.d/dotnet.sh
|
||||
%{_sysconfdir}/dotnet
|
||||
%dir %{_datadir}/bash-completion
|
||||
%dir %{_datadir}/bash-completion/completions
|
||||
%{_datadir}/bash-completion/completions/dotnet
|
||||
|
||||
%files -n dotnet-hostfxr-3.1
|
||||
%dir %{_libdir}/dotnet/host/fxr
|
||||
@ -510,181 +554,101 @@ rm -rf %{buildroot}%{_libdir}/dotnet/packs/NETStandard.Library.Ref/2.1.0
|
||||
%dir %{_libdir}/dotnet
|
||||
%{_libdir}/dotnet/source-built-artifacts
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Nov 30 2022 Omair Majid <omajid@redhat.com> - 3.1.426-1
|
||||
- Update to .NET SDK 3.1.426 and Runtime 3.1.32
|
||||
- Resolves: RHBZ#2148219
|
||||
|
||||
* Wed Sep 14 2022 Omair Majid <omajid@redhat.com> - 3.1.423-2
|
||||
- Update to .NET SDK 3.1.423 and Runtime 3.1.29
|
||||
- Resolves: RHBZ#2123784
|
||||
|
||||
* Tue Aug 09 2022 Omair Majid <omajid@redhat.com> - 3.1.422-2
|
||||
- Update to .NET SDK 3.1.422 and Runtime 3.1.28
|
||||
- Resolves: RHBZ#2115350
|
||||
|
||||
* Thu Jul 21 2022 Omair Majid <omajid@redhat.com> - 3.1.421-2
|
||||
- Update to .NET SDK 3.1.421 and Runtime 3.1.27
|
||||
- Resolves: RHBZ#2103273
|
||||
|
||||
* Thu Jun 23 2022 Omair Majid <omajid@redhat.com> - 3.1.420-1
|
||||
- Update to .NET SDK 3.1.420 and Runtime 3.1.26
|
||||
- Resolves: RHBZ#2096318
|
||||
|
||||
* Mon May 16 2022 Omair Majid <omajid@redhat.com> - 3.1.419-1
|
||||
- Update to .NET SDK 3.1.419 and Runtime 3.1.25
|
||||
- Resolves: RHBZ#2081442
|
||||
|
||||
* Wed Apr 27 2022 Omair Majid <omajid@redhat.com> - 3.1.418-2
|
||||
- Bump release
|
||||
- Related: RHBZ#2072012
|
||||
|
||||
* Mon Apr 25 2022 Omair Majid <omajid@redhat.com> - 3.1.418-1
|
||||
- Update to .NET SDK 3.1.418 and Runtime 3.1.24
|
||||
- Resolves: RHBZ#2072012
|
||||
|
||||
* Tue Jan 25 2022 Omair Majid <omajid@redhat.com> - 3.1.416-4
|
||||
- Update to .NET SDK 3.1.416 and Runtime 3.1.22
|
||||
- Resolves: RHBZ#2011820
|
||||
- Resolves: RHBZ#2003077
|
||||
- Resolves: RHBZ#2031428
|
||||
|
||||
* Sat Aug 14 2021 Omair Majid <omajid@redhat.com> - 3.1.118-1
|
||||
- Update to .NET SDK 3.1.118 and Runtime 3.1.18
|
||||
- Resolves: RHBZ#1990174
|
||||
|
||||
* Wed Aug 11 2021 Omair Majid <omajid@redhat.com> - 3.1.117-1
|
||||
- Update to .NET SDK 3.1.117 and Runtime 3.1.17
|
||||
- Resolves: RHBZ#1978389
|
||||
|
||||
* Fri Jun 11 2021 Omair Majid <omajid@redhat.com> - 3.1.116-1
|
||||
- Update to .NET SDK 3.1.116 and Runtime 3.1.16
|
||||
- Resolves: RHBZ#1965499
|
||||
- Resolves: RHBZ#1966998
|
||||
|
||||
* Wed Jun 02 2021 Omair Majid <omajid@redhat.com> - 3.1.115-1
|
||||
- Update to .NET SDK 3.1.115 and Runtime 3.1.15
|
||||
- Resolves: RHBZ#1954324
|
||||
|
||||
* Thu Apr 22 2021 Omair Majid <omajid@redhat.com> - 3.1.114-2
|
||||
- Update to .NET SDK 3.1.114 and Runtime 3.1.14
|
||||
- Add dotnet-sdk-3.1-source-built-artifacts subpackage
|
||||
- Resolves: RHBZ#1946721
|
||||
|
||||
* Wed Feb 10 2021 Omair Majid <omajid@redhat.com> - 3.1.112-2
|
||||
- Update to .NET Core SDK 3.1.112 and Runtime 3.1.12
|
||||
- Resolves: RHBZ#1923370
|
||||
|
||||
* Wed Jan 13 2021 Omair Majid <omajid@redhat.com> - 3.1.111-2
|
||||
* Fri Jan 15 2021 Omair Majid <omajid@redhat.com> - 3.1.111-1
|
||||
- Update to .NET Core SDK 3.1.111 and Runtime 3.1.11
|
||||
- Resolves: RHBZ#1907627
|
||||
|
||||
* Fri Nov 06 2020 Omair Majid <omajid@redhat.com> - 3.1.110-2
|
||||
* Sun Dec 06 2020 Jeff Law <law@redhat.com> - 3.1.110-2
|
||||
- Fix missing #include for gcc-11
|
||||
|
||||
* Tue Nov 10 2020 Omair Majid <omajid@redhat.com> - 3.1.110-1
|
||||
- Update to .NET Core SDK 3.1.110 and Runtime 3.1.10
|
||||
- Resolves: RHBZ#1893778
|
||||
|
||||
* Tue Oct 13 2020 Omair Majid <omajid@redhat.com> - 3.1.109-3
|
||||
* Wed Oct 14 2020 Omair Majid <omajid@redhat.com> - 3.1.109-1
|
||||
- Update to .NET Core SDK 3.1.109 and Runtime 3.1.9
|
||||
- Resolves: RHBZ#1886546
|
||||
|
||||
* Fri Sep 18 2020 Omair Majid <omajid@redhat.com> - 3.1.108-3
|
||||
- Bump release to preserve upgrade path
|
||||
- Resolves: RHBZ#1874503
|
||||
* Mon Sep 21 2020 Tom Stellard <tstellar@redhat.com> - 3.1.108-2
|
||||
- Use toolchain macro for setting clang-specific c/ld flags
|
||||
|
||||
* Fri Sep 04 2020 Omair Majid <omajid@redhat.com> - 3.1.108-2
|
||||
- Stop producing netstandard-targeting-pack-2.1
|
||||
- Resolves: RHBZ#1874503
|
||||
* Wed Sep 16 2020 Troy Dawson <tdawson@redhat.com> - 3.1.108-1
|
||||
- Generate runtime_id the same way that it does in the various build scripts
|
||||
|
||||
* Fri Sep 04 2020 Omair Majid <omajid@redhat.com> - 3.1.108-1
|
||||
* Fri Sep 11 2020 Omair Majid <omajid@redhat.com> - 3.1.108-1
|
||||
- Update to .NET Core SDK 3.1.108 and Runtime 3.1.8
|
||||
- Resolves: RHBZ#1874503
|
||||
- Resolves: RHBZ#1873454
|
||||
|
||||
* Mon Aug 17 2020 Omair Majid <omajid@redhat.com> - 3.1.107-2
|
||||
- Remove subpackages that conflict with dotnet5.0
|
||||
- Resolves: RHBZ#1862590
|
||||
* Wed Sep 09 2020 Omair Majid <omajid@redhat.com> - 3.1.107-1
|
||||
- Add Fedora 34 RID
|
||||
- Fix build of bundled libunwind
|
||||
|
||||
* Thu Aug 13 2020 Omair Majid <omajid@redhat.com> - 3.1.107-1
|
||||
- Update to .NET Core SDK 3.1.107 and Runtime 3.1.7
|
||||
- Resolves: RHBZ#1862590
|
||||
- Resolves: RHBZ#1861114
|
||||
* Wed Aug 19 2020 Omair Majid <omajid@redhat.com> - 3.1.107-1
|
||||
- Update to .NET Core Runtime 3.1.7 and SDK 3.1.107
|
||||
|
||||
* Thu Jul 30 2020 Omair Majid <omajid@redhat.com> - 3.1.106-6
|
||||
- Remove duplicate LDFLAGS (actually typoed ASMFLAGS) for build
|
||||
- Resolves: RHBZ#1811776
|
||||
* Thu Aug 13 2020 Omair Majid <omajid@redhat.com> - 3.1.106-3
|
||||
- Filter out -mbranch-protection=standard from cflags
|
||||
|
||||
* Wed Jul 29 2020 Omair Majid <omajid@redhat.com> - 3.1.106-5
|
||||
- Export ASMFLAGS during build
|
||||
- Resolves: RHBZ#1811776
|
||||
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.106-3
|
||||
- Second attempt - Rebuilt for
|
||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue Jul 28 2020 Omair Majid <omajid@redhat.com> - 3.1.106-4
|
||||
- Enable -fcf-protection
|
||||
- Resolves: RHBZ#1811776
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.106-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Mon Jul 27 2020 Omair Majid <omajid@redhat.com> - 3.1.106-3
|
||||
- Improve hardening in core-setup and corefx
|
||||
- Resolves: RHBZ#1811776
|
||||
* Tue Jul 21 2020 Jo Shields <joshield@microsoft.com> - 3.1.106-1
|
||||
- Update to .NET Core Runtime 3.1.6 and SDK 3.1.106
|
||||
|
||||
* Fri Jul 24 2020 Omair Majid <omajid@redhat.com> - 3.1.106-2
|
||||
- Improve hardening in CoreCLR
|
||||
- Resolves: RHBZ#1811776
|
||||
* Tue Jul 21 2020 Omair Majid <omajid@redhat.com> - 3.1.105-5
|
||||
- Fix up commented-out define for disabling LTO
|
||||
|
||||
* Thu Jul 16 2020 Omair Majid <omajid@redhat.com> - 3.1.106-1
|
||||
- Update to .NET Core SDK 3.1.106 and Runtime 3.1.6
|
||||
- Resolves: RHBZ#1853772
|
||||
- Resolves: RHBZ#1856939
|
||||
* Mon Jul 20 2020 Jeff Law <law@redhat.com> - 3.1.105-5
|
||||
- Disable LTO
|
||||
|
||||
* Tue Jun 09 2020 Omair Majid <omajid@redhat.com> - 3.1.105-1
|
||||
* Sat Jun 27 2020 Omair Majid <omajid@redhat.com> - 3.1.105-4
|
||||
- Disable bootstrap
|
||||
|
||||
* Fri Jun 26 2020 Omair Majid <omajid@redhat.com> - 3.1.105-3
|
||||
- Re-bootstrap aarch64
|
||||
|
||||
* Fri Jun 19 2020 Omair Majid <omajid@redhat.com> - 3.1.105-3
|
||||
- Disable bootstrap
|
||||
|
||||
* Thu Jun 18 2020 Omair Majid <omajid@redhat.com> - 3.1.105-1
|
||||
- Bootstrap aarch64
|
||||
|
||||
* Tue Jun 16 2020 Chris Rummel <crummel@microsoft.com> - 3.1.105-1
|
||||
- Update to .NET Core Runtime 3.1.5 and SDK 3.1.105
|
||||
- Resolves: RHBZ#1844491
|
||||
|
||||
* Mon Jun 01 2020 Omair Majid <omajid@redhat.com> - 3.1.104-3
|
||||
* Fri Jun 05 2020 Chris Rummel <crummel@microsoft.com> - 3.1.104-1
|
||||
- Update to .NET Core Runtime 3.1.4 and SDK 3.1.104
|
||||
- Resolves: RHBZ#1832685
|
||||
|
||||
* Fri Mar 20 2020 Omair Majid <omajid@redhat.com> - 3.1.103-2
|
||||
* Thu Apr 09 2020 Chris Rummel <crummel@microsoft.com> - 3.1.103-1
|
||||
- Update to .NET Core Runtime 3.1.3 and SDK 3.1.103
|
||||
- Resolves: RHBZ#1815632
|
||||
|
||||
* Wed Feb 19 2020 Omair Majid <omajid@redhat.com> - 3.1.102-2
|
||||
* Mon Mar 16 2020 Omair Majid <omajid@redhat.com> - 3.1.102-1
|
||||
- Update to .NET Core Runtime 3.1.2 and SDK 3.1.102
|
||||
- Resolves: RHBZ#1804452
|
||||
|
||||
* Thu Jan 23 2020 Omair Majid <omajid@redhat.com> - 3.1.101-2
|
||||
* Fri Feb 28 2020 Omair Majid <omajid@redhat.com> - 3.1.101-4
|
||||
- Disable bootstrap
|
||||
|
||||
* Fri Feb 28 2020 Omair Majid <omajid@redhat.com> - 3.1.101-3
|
||||
- Enable bootstrap
|
||||
- Add Fedora 33 runtime ids
|
||||
|
||||
* Thu Feb 27 2020 Omair Majid <omajid@redhat.com> - 3.1.101-2
|
||||
- Disable bootstrap
|
||||
|
||||
* Tue Jan 21 2020 Omair Majid <omajid@redhat.com> - 3.1.101-1
|
||||
- Update to .NET Core Runtime 3.1.1 and SDK 3.1.101
|
||||
- Resolves: RHBZ#1789154
|
||||
|
||||
* Wed Dec 04 2019 Omair Majid <omajid@redhat.com> - 3.1.100-2
|
||||
- Remove arm64 variant of the source tarball
|
||||
- Resolves: RHBZ#1711405
|
||||
|
||||
* Tue Dec 03 2019 Omair Majid <omajid@redhat.com> - 3.1.100-1
|
||||
* Thu Dec 05 2019 Omair Majid <omajid@redhat.com> - 3.1.100-1
|
||||
- Update to .NET Core Runtime 3.1.0 and SDK 3.1.100
|
||||
- Resolves: RHBZ#1711405
|
||||
|
||||
* Wed Nov 27 2019 Omair Majid <omajid@redhat.com> - 3.1.100-0.7.preview3
|
||||
- Extract self-contained executables under $HOME
|
||||
- Resolves: RHBZ#1711405
|
||||
|
||||
* Wed Nov 27 2019 Omair Majid <omajid@redhat.com> - 3.1.100-0.6.preview3
|
||||
- Drop local fixes for cgroupv2
|
||||
- Resolves: RHBZ#1711405
|
||||
|
||||
* Mon Nov 18 2019 Omair Majid <omajid@redhat.com> - 3.1.100-0.5.preview3
|
||||
- Fix permissions on apphost
|
||||
- Resolves: RHBZ#1711405
|
||||
|
||||
* Mon Nov 18 2019 Omair Majid <omajid@redhat.com> - 3.1.100-0.4.preview3
|
||||
- Update to .NET Core Runtime 3.1.0-preview3.19553.2 and SDK 3.1.100-preview3-014645
|
||||
- Resolves: RHBZ#1711405
|
||||
- Fix apphost permissions
|
||||
|
||||
* Wed Nov 13 2019 Omair Majid <omajid@redhat.com> - 3.1.100-0.3
|
||||
- Add gating tests
|
||||
- Resolves: RHBZ#1711405
|
||||
|
||||
* Wed Nov 13 2019 Omair Majid <omajid@redhat.com> - 3.1.100-0.2
|
||||
- Initial import from Fedora into RHEL
|
||||
- Resolves: RHBZ#1711405
|
||||
* Fri Nov 15 2019 Omair Majid <omajid@redhat.com> - 3.1.100-0.3.preview3
|
||||
- Update to .NET Core Runtime 3.1.0-preview3.19553.2 and SDK
|
||||
3.1.100-preview3-014645
|
||||
|
||||
* Wed Nov 06 2019 Omair Majid <omajid@redhat.com> - 3.1.100-0.2
|
||||
- Update to .NET Core 3.1 Preview 2
|
||||
@ -737,7 +701,7 @@ rm -rf %{buildroot}%{_libdir}/dotnet/packs/NETStandard.Library.Ref/2.1.0
|
||||
* Wed Jun 26 2019 Omair Majid <omajid@redhat.com> - 3.0.0-0.6.preview6
|
||||
- Update to .NET Core Runtime 3.0.0-preview6-27804-01 and SDK 3.0.100-preview6-012264
|
||||
- Set dotnet installation location in /etc/dotnet/install_location
|
||||
- Update targetting packs
|
||||
- Update targeting packs
|
||||
- Install managed symbols
|
||||
- Completely conditionalize libunwind bundling
|
||||
|
7
gating.yaml
Normal file
7
gating.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_testing
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
49
rename-tarball
Executable file
49
rename-tarball
Executable file
@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Usage:
|
||||
# ./rename-tarball original-name.tar.gz new-name.tar.gz
|
||||
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
positional_args=()
|
||||
while [[ "$#" -gt 0 ]]; do
|
||||
arg="${1}"
|
||||
case "${arg}" in
|
||||
-h|--help)
|
||||
print_usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
positional_args+=("$1")
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
original_name=${positional_args[0]:-}
|
||||
if [[ -z ${original_name} ]]; then
|
||||
echo "error: missing original tarball name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
new_name=${positional_args[1]:-}
|
||||
if [[ -z ${new_name} ]]; then
|
||||
echo "error: missing new tarball name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
original_name=${original_name/%.tar.gz}
|
||||
new_name=${new_name/.tar.gz}
|
||||
|
||||
echo "Original: ${original_name}.tar.gz"
|
||||
echo "New name: ${new_name}.tar.gz"
|
||||
|
||||
mkdir "temp-${new_name}"
|
||||
pushd "temp-${new_name}"
|
||||
tar xf "../${original_name}.tar.gz"
|
||||
mv "${original_name}" "${new_name}"
|
||||
tar czf ../"${new_name}.tar.gz" "${new_name}"
|
||||
rm -rf "${new_name}"
|
||||
popd
|
||||
rmdir "temp-${new_name}"
|
21
source-build-warnings-are-not-errors.patch
Normal file
21
source-build-warnings-are-not-errors.patch
Normal file
@ -0,0 +1,21 @@
|
||||
From c82976fd5eb4cbcf67faaba62f0bc59634d30338 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Rummel <crummel@microsoft.com>
|
||||
Date: Fri, 14 Aug 2020 15:34:07 -0500
|
||||
Subject: [PATCH] Disable XLiff warning as error
|
||||
|
||||
---
|
||||
repos/xliff-tasks.proj | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/repos/xliff-tasks.proj b/repos/xliff-tasks.proj
|
||||
index da2ae79c5b..9b86754018 100644
|
||||
--- a/repos/xliff-tasks.proj
|
||||
+++ b/repos/xliff-tasks.proj
|
||||
@@ -7,6 +7,7 @@
|
||||
<BuildCommandArgs>$(BuildCommandArgs) /v:$(LogVerbosity)</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) /flp:Verbosity=Diag</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) /bl</BuildCommandArgs>
|
||||
+ <BuildCommandArgs>$(BuildCommandArgs) /p:TreatWarningsAsErrors=false</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) $(RedirectRepoOutputToLog)</BuildCommandArgs>
|
||||
|
||||
<BuildCommand>$(DotnetToolCommand) $(BuildCommandArgs)</BuildCommand>
|
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
||||
SHA512 (dotnet-v3.1.111-SDK.tar.gz) = e65b8b96a0814a4a3fb9f56d2bde8f0f851fdeeeb1ce9980945994a0194aa1deabdb14141e0b77a09feaaf6a515565a337e7cac56be8ef663ca8ec127556b4e7
|
1
tests/.fmf/version
Normal file
1
tests/.fmf/version
Normal file
@ -0,0 +1 @@
|
||||
2
|
6
tests/provision.fmf
Normal file
6
tests/provision.fmf
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
|
||||
standard-inventory-qcow2:
|
||||
qemu:
|
||||
m: 5G
|
||||
|
35
tests/tests.yml
Normal file
35
tests/tests.yml
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
roles:
|
||||
- role: standard-test-basic
|
||||
tags:
|
||||
- classic
|
||||
- container
|
||||
- atomic
|
||||
repositories:
|
||||
- repo: "https://github.com/redhat-developer/dotnet-regular-tests.git"
|
||||
dest: "dotnet-regular-tests"
|
||||
version: "main"
|
||||
tests:
|
||||
- download_test_runner:
|
||||
dir: ./
|
||||
run: wget --no-verbose https://github.com/redhat-developer/dotnet-bunny/releases/latest/download/turkey-$(uname -m) -O turkey && chmod +x ./turkey
|
||||
- print_test_runner_version:
|
||||
dir: ./
|
||||
run: ./turkey --version
|
||||
- regular:
|
||||
dir: ./
|
||||
run: ./turkey -l={{ remote_artifacts }} dotnet-regular-tests
|
||||
required_packages:
|
||||
- babeltrace
|
||||
- bash-completion
|
||||
- binutils
|
||||
- expect
|
||||
- jq
|
||||
- lldb
|
||||
- lttng-tools
|
||||
- npm
|
||||
- python3
|
||||
- strace
|
||||
- wget
|
||||
- which
|
63
update-release
Executable file
63
update-release
Executable file
@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Usage:
|
||||
# ./update-release sdk-version runtime-version
|
||||
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
print_usage() {
|
||||
echo " Usage:"
|
||||
echo " ./update-release sdk-version runtime-version"
|
||||
}
|
||||
|
||||
positional_args=()
|
||||
while [[ "$#" -gt 0 ]]; do
|
||||
arg="${1}"
|
||||
case "${arg}" in
|
||||
-h|--help)
|
||||
print_usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
positional_args+=("$1")
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
spec_file=dotnet3.1.spec
|
||||
|
||||
sdk_version=${positional_args[0]:-}
|
||||
if [[ -z ${sdk_version} ]]; then
|
||||
echo "error: missing sdk version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
runtime_version=${positional_args[1]:-}
|
||||
if [[ -z ${runtime_version} ]]; then
|
||||
echo "error: missing runtime version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
host_version="$runtime_version"
|
||||
|
||||
if [[ ! -f "dotnet-v${sdk_version}-SDK.tar.gz" ]]; then
|
||||
./build-dotnet-tarball "v${sdk_version}-SDK"
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
sed -i -E "s|^%global host_version [[:digit:]]\.[[:digit:]]\.[[:digit:]]+|%global host_version ${host_version}|" "$spec_file"
|
||||
sed -i -E "s|^%global runtime_version [[:digit:]]\.[[:digit:]]\.[[:digit:]]+|%global runtime_version ${runtime_version}|" "$spec_file"
|
||||
sed -i -E "s|^%global sdk_version [[:digit:]]\.[[:digit:]]\.[[:digit:]][[:digit:]][[:digit:]]|%global sdk_version ${sdk_version}|" "$spec_file"
|
||||
|
||||
comment="Update to .NET Core SDK ${sdk_version} and Runtime ${runtime_version}"
|
||||
|
||||
rpmdev-bumpspec -D --comment="$comment" $spec_file
|
||||
|
||||
# Reset release to 1 in 'Release' tag
|
||||
sed -i -E 's|^Release: [[:digit:]]+%|Release: 1%|' $spec_file
|
||||
# Reset Release in changelog comment
|
||||
# See https://stackoverflow.com/questions/18620153/find-matching-text-and-replace-next-line
|
||||
sed -i -E '/^%changelog$/!b;n;s/-[[:digit:]]+$/-1/' $spec_file
|
Loading…
Reference in New Issue
Block a user