%global libname Newtonsoft.Json # mono is without any packagable debuginfo %global debug_package %{nil} %ifarch ppc64 ppc64le aarch64 armv7hl s390x # disable the tests for some arches because quite a number of them fail %bcond_with tests %else %bcond_without tests %endif Name: newtonsoft-json Version: 9.0.1 Release: 29%{?dist} Summary: Popular high-performance JSON framework # almost all files are licensed as MIT/X11, but BSD for LinqBridge.cs # (and LGPLv2.1+ for Tools/7-Zip, not used) License: MIT and BSD URL: http://www.newtonsoft.com/json Source0: https://github.com/JamesNK/%{libname}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz Patch10: %{name}-tests-skip-samples.patch Patch11: %{name}-nunit.patch Patch12: %{name}-mscorlibtest.patch ExclusiveArch: %{mono_arches} # nunit2 fails to build on armv7hl. Mono crashes. see bug 1923663 # it is too much work to switch to nunit (version 3) at the moment. ExcludeArch: armv7hl BuildRequires: mono-devel BuildRequires: mono-web BuildRequires: mono-data BuildRequires: mono-mvc BuildRequires: nunit2-devel %description %{libname} aka Json.NET is a popular high-performance JSON framework %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel %{summary}. %prep %setup -qn%{libname}-%{version} #find Src -name \*.cs |xargs sed -i 's,\r\n,\n,' #find Src -name \*.csproj |xargs sed -i 's,\r\n,\n,' # E: wrong-script-interpreter rm README.md # sign the assembly to get a strong name, https://msdn.microsoft.com/en-us/library/xc31ft41.aspx sed -i "s#false#true#g; s###g; s##Dynamic.snk#g;" Src/%{libname}/%{libname}.Net40.csproj sed -i "s##SIGNED;#g" Src/%{libname}/%{libname}.Net40.csproj sed -i "s#false#true#g; s###g; s##../%{libname}/Dynamic.snk#g;" Src/%{libname}.Tests/%{libname}.Tests.Net40.csproj sed -i "s##SIGNED;#g" Src/%{libname}.Tests/%{libname}.Tests.Net40.csproj # fix the public key, for Dynamic.snk sed -i "s#PublicKey=0024000004800000940000000602000000240000525341310004000001000100f561df277c6c0b497d629032b410cdcf286e537c054724f7ffa0164345f62b3e642029d7a80cc351918955328c4adc8a048823ef90b0cf38ea7db0d729caf2b633c3babe08b0310198c1081995c19029bc675193744eab9d7345b8a67258ec17d112cebdbbb2a281487dceeafb9d83aa930f32103fbe1d2911425bc5744002c7#PublicKey=0024000004800000940000000602000000240000525341310004000001000100cbd8d53b9d7de30f1f1278f636ec462cf9c254991291e66ebb157a885638a517887633b898ccbcf0d5c5ff7be85a6abe9e765d0ac7cd33c68dac67e7e64530e8222101109f154ab14a941c490ac155cd1d4fcba0fabb49016b4ef28593b015cab5937da31172f03f67d09edda404b88a60023f062ae71d0b2e4438b74cc11dc9#g" Src/%{libname}/Properties/AssemblyInfo.cs %if %{with tests} # skip files with unmet dependencies (FSharp etc.), FIXME use nuget %patch10 sed -i /DiscriminatedUnionConverterTests.cs/d Src/%{libname}.Tests/%{libname}.Tests.Net40.csproj sed -i /Serialization.DependencyInjectionTests.cs/d Src/%{libname}.Tests/%{libname}.Tests.Net40.csproj sed -i /Serialization.FSharpTests.cs/d Src/%{libname}.Tests/%{libname}.Tests.Net40.csproj sed -i /Serialization.ImmutableCollectionsTests.cs/d Src/%{libname}.Tests/%{libname}.Tests.Net40.csproj sed -i /TestObjects.Currency.cs/d Src/%{libname}.Tests/%{libname}.Tests.Net40.csproj sed -i /TestObjects.Shape.cs/d Src/%{libname}.Tests/%{libname}.Tests.Net40.csproj sed -i /Schema.JsonSchemaBuilderTests.cs/d Src/%{libname}.Tests/%{libname}.Tests.Net40.csproj sed -i /Schema.JsonSchemaNodeTests.cs/d Src/%{libname}.Tests/%{libname}.Tests.Net40.csproj #FIXME comment tests that fail or have errors sed -i -r 's,public void Example\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Documentation/Samples/Linq/DeserializeWithLinq.cs sed -i -r 's,public void Example\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Documentation/Samples/Linq/SerializeWithLinq.cs sed -i -r 's,public void MemoryTraceWriterTest\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Documentation/TraceWriterTests.cs sed -i -r 's,public void ExceptionFromOverloadWithJValue\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Linq/LinqToJsonTest.cs sed -i -r 's,public void GenerateSchemaForDirectoryInfo\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Schema/JsonSchemaGeneratorTests.cs sed -i -r 's,public void EmitDefaultValueTest\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Serialization/DefaultValueHandlingTests.cs sed -i -r 's,public void CannotDeserializeArrayIntoLinqToJson\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Serialization/JsonSerializerTest.cs sed -i -r 's,public void MailMessageConverterTest\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Serialization/JsonSerializerTest.cs sed -i -r 's,public void MemoryTraceWriterDeserializeTest\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Serialization/TraceWriterTests.cs sed -i -r 's,public void MemoryTraceWriterSerializeTest\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Serialization/TraceWriterTests.cs sed -i -r 's,public void CreateGetWithBadObjectTarget\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Utilities/DynamicReflectionDelegateFactoryTests.cs sed -i -r 's,public void CreateSetWithBadObjectTarget\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Utilities/DynamicReflectionDelegateFactoryTests.cs sed -i -r 's,public void CreateSetWithBadObjectValue\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Utilities/DynamicReflectionDelegateFactoryTests.cs sed -i -r 's,public void CreateGetWithBadObjectTarget\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Utilities/ExpressionReflectionDelegateFactoryTests.cs sed -i -r 's,public void CreateSetWithBadObjectTarget\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Utilities/ExpressionReflectionDelegateFactoryTests.cs sed -i -r 's,public void CreateSetWithBadObjectValue\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Utilities/ExpressionReflectionDelegateFactoryTests.cs sed -i -r 's,public void DefaultConstructor_Abstract\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Utilities/ExpressionReflectionDelegateFactoryTests.cs sed -i -r 's,public void DeserializingErrorHandlingUsingEvent\(,[Ignore("broken")] \0,' Src/Newtonsoft.Json.Tests/Serialization/SerializationErrorHandlingTests.cs # make sure that NUnit is properly referenced %patch11 %patch12 -p1 # we do not have FSharp available for f in Converters/DiscriminatedUnionConverterTests.cs \ Serialization/FSharpTests.cs \ TestObjects/Currency.cs \ TestObjects/Shape.cs ; do \ sed -i "s/using Microsoft\.FSharp.*;//g" Src/%{libname}.Tests/$f; done # The type `NUnit.Framework.IgnoreAttribute' does not contain a constructor that takes `0' arguments sed -i 's/\[Ignore\]/[Ignore("Ignore")]/g' Src/Newtonsoft.Json.Tests/JsonTextReaderTest.cs %endif %build pushd Src/%{libname} xbuild /p:Configuration=Release %{libname}.Net40.csproj /p:TargetFrameworkVersion="v4.7.1" %install mkdir -p %{buildroot}/%{_monogacdir} gacutil -i Src/%{libname}/bin/Release/Net40/%{libname}.dll -package %{name} -root %{buildroot}/usr/lib # pkgconfig mkdir -p %{buildroot}/%{_libdir}/pkgconfig cat <>%{buildroot}/%{_libdir}/pkgconfig/%{name}.pc Name: %{libname} Description: %{summary} Version: 9.0.1 Requires: mono Libs: -r:%{_monodir}/%{name}/%{libname}.dll Libraries=%{_monodir}/%{name}/%{libname}.dll EOT %check %if %{with tests} pushd Src/%{libname}.Tests xbuild /p:Configuration=Release %{libname}.Tests.Net40.csproj /p:TargetFrameworkVersion="v4.7.1" nunit-console26 -labels bin/Release/Net40/*Tests.dll #rm -r obj bin %endif %files %license Doc/license.txt %doc *.md Doc/readme.txt %{_monogacdir}/%{libname} %{_monodir}/%{name} %files devel %{_libdir}/pkgconfig/%{name}.pc %changelog * Thu Jan 25 2024 Fedora Release Engineering - 9.0.1-29 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Sun Jan 21 2024 Fedora Release Engineering - 9.0.1-28 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Thu Jul 20 2023 Fedora Release Engineering - 9.0.1-27 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Thu Jan 19 2023 Fedora Release Engineering - 9.0.1-26 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Fri Jul 22 2022 Fedora Release Engineering - 9.0.1-25 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Thu Jan 20 2022 Fedora Release Engineering - 9.0.1-24 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Thu Aug 05 2021 Timotheus Pokorra - 9.0.1-23 - disable arch armv7hl * Thu Jul 22 2021 Fedora Release Engineering - 9.0.1-22 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Tue Jan 26 2021 Fedora Release Engineering - 9.0.1-21 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Sat Aug 01 2020 Fedora Release Engineering - 9.0.1-20 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Tue Jul 28 2020 Fedora Release Engineering - 9.0.1-19 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Wed Jan 29 2020 Fedora Release Engineering - 9.0.1-18 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Thu Jan 23 2020 Timotheus Pokorra - 9.0.1-17 - ignore another test case so that we can build with Mono 6 * Thu Jul 25 2019 Fedora Release Engineering - 9.0.1-16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Mon Apr 29 2019 Timotheus Pokorra - 9.0.1-15 - fixes to build with Mono 5.18 Target Framework 4.7.1 - explicitly require some mono packages because the provides script fail * Fri Feb 01 2019 Fedora Release Engineering - 9.0.1-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Fri Jul 13 2018 Fedora Release Engineering - 9.0.1-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Sat Jun 02 2018 Timotheus Pokorra - 9.0.1-12 - disable tests for s390x so that it can be built on all arches * Thu Feb 08 2018 Fedora Release Engineering - 9.0.1-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Mon Aug 07 2017 Timotheus Pokorra - 9.0.1-10 - fix a test that references mscorlib * Thu Aug 03 2017 Fedora Release Engineering - 9.0.1-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 9.0.1-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Fri Feb 10 2017 Fedora Release Engineering - 9.0.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Sat Nov 19 2016 Timotheus Pokorra - 9.0.1-6 - disable more tests so that it can be built on all arches * Thu Oct 13 2016 Fedora Release Engineering - 9.0.1-5 - mono rebuild for aarch64 support * Fri Sep 02 2016 Timotheus Pokorra - 9.0.1-4 - enable tests, disable 17 tests that are failing or produce errors (fixes #1354599) * Fri Sep 02 2016 Timotheus Pokorra - 9.0.1-3 - fix the Newtonsoft.Json.Tests.dll to build. 17 tests are failing, so not enabling test yet * Wed Aug 31 2016 Timotheus Pokorra - 9.0.1-2 - build with nunit2 package * Mon Jul 11 2016 Raphael Groner - 9.0.1-1 - new version * Fri Mar 25 2016 Raphael Groner - 8.0.3-1 - new version * Sat Feb 06 2016 Raphael Groner - 8.0.2-1 - new version * Thu Feb 04 2016 Fedora Release Engineering - 7.0.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Thu Dec 17 2015 Raphael Groner - 7.0.1-3 - readd pkgconfig, split into devel subpackage * Thu Nov 26 2015 Raphael Groner - 7.0.1-2 - fix folders ownership - remove obsolete generation of pkgconfig file * Fri Oct 09 2015 Raphael Groner - 7.0.1-1 - initial