Architecture specific change in rpms/rstudio.git
by githook-noreply@fedoraproject.org
The package rpms/rstudio.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rstudio.git/commit/?id=88447b887e....
Change:
+%ifarch %{qt5_qtwebengine_arches}
Thanks.
Full change:
============
commit 88447b887ef8632c08bfb0d9bb9ff177384611be
Author: Iaki car <iucar(a)fedoraproject.org>
Date: Tue Mar 3 18:52:59 2020 +0100
initial import (#1803528)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f817319
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/gin-2.1.2.zip
+/gwt-2.8.1.zip
+/rstudio-1.2.5033.tar.gz
diff --git a/0000-unbundle-dependencies-common.patch b/0000-unbundle-dependencies-common.patch
new file mode 100644
index 0000000..1df3bf6
--- /dev/null
+++ b/0000-unbundle-dependencies-common.patch
@@ -0,0 +1,67 @@
+From dc5d9b6c5fc48853fa22d12d116caaee5676a2ba Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= <iucar(a)fedoraproject.org>
+Date: Thu, 20 Feb 2020 18:22:09 +0100
+Subject: [PATCH] unbundle dependencies/common
+
+---
+ src/cpp/session/CMakeLists.txt | 33 ---------------------------------
+ 1 file changed, 33 deletions(-)
+
+diff --git a/src/cpp/session/CMakeLists.txt b/src/cpp/session/CMakeLists.txt
+index 1fd7718..8ab972c 100644
+--- a/src/cpp/session/CMakeLists.txt
++++ b/src/cpp/session/CMakeLists.txt
+@@ -17,18 +17,6 @@ project (SESSION)
+
+ add_subdirectory(workers)
+
+-# verify that install-dictionaries, install-mathjax, install-pandoc,
+-# and install-rmarkdown have been run as required
+-if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/dictionaries")
+- message(FATAL_ERROR "Dictionaries not found (re-run install-dependencies script to install)")
+-endif()
+-if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/mathjax-26")
+- message(FATAL_ERROR "Mathjax 2.6 not found (re-run install-dependencies script to install)")
+-endif()
+-if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/pandoc")
+- message(FATAL_ERROR "pandoc not found (re-run install-dependencies script to install)")
+-endif()
+-
+ # we often install embedded versions of these packages but don't do so currently
+
+ # if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/rmarkdown")
+@@ -478,31 +466,10 @@ if (NOT RSTUDIO_SESSION_WIN32)
+ install(FILES ${R_MODULE_SRC_FILES}
+ DESTINATION ${RSTUDIO_INSTALL_SUPPORTING}/R/modules)
+
+- # install hunspell dictionaries
+- install(DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/dictionaries"
+- DESTINATION "${RSTUDIO_INSTALL_SUPPORTING}/resources")
+-
+- # install mathjax for local html preview
+- install(DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/mathjax-26"
+- DESTINATION "${RSTUDIO_INSTALL_SUPPORTING}/resources")
+-
+ # icons for database connections
+ install(DIRECTORY "resources/connections"
+ DESTINATION ${RSTUDIO_INSTALL_SUPPORTING}/resources)
+
+- # install pandoc
+- if(WIN32)
+- set(PANDOC_VERSION "2.7.2" CACHE INTERNAL "Pandoc version")
+- else()
+- set(PANDOC_VERSION "2.3.1" CACHE INTERNAL "Pandoc version")
+- endif()
+-
+- set(PANDOC_BIN "${RSTUDIO_DEPENDENCIES_DIR}/common/pandoc/${PANDOC_VERSION}")
+- file(GLOB PANDOC_FILES "${PANDOC_BIN}/pandoc*")
+- install(FILES ${PANDOC_FILES}
+- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+- DESTINATION ${RSTUDIO_INSTALL_BIN}/pandoc)
+-
+ # install rmarkdown package
+ # file(GLOB RMARKDOWN_PACKAGE "${RSTUDIO_DEPENDENCIES_DIR}/common/rmarkdown*.tar.gz")
+ # install(FILES ${RMARKDOWN_PACKAGE}
+--
+2.24.1
+
diff --git a/0001-unbundle-qtsingleapplication.patch b/0001-unbundle-qtsingleapplication.patch
new file mode 100644
index 0000000..8533492
--- /dev/null
+++ b/0001-unbundle-qtsingleapplication.patch
@@ -0,0 +1,63 @@
+From 080a23e9f2802692eb8f02a9d7532c554145b527 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= <iucar(a)fedoraproject.org>
+Date: Thu, 20 Feb 2020 20:09:35 +0100
+Subject: [PATCH] unbundle qtsingleapplication
+
+---
+ src/cpp/desktop/CMakeLists.txt | 5 ++---
+ src/cpp/desktop/DesktopPosixApplication.hpp | 2 +-
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/src/cpp/desktop/CMakeLists.txt b/src/cpp/desktop/CMakeLists.txt
+index dabe4f4..ec28567 100644
+--- a/src/cpp/desktop/CMakeLists.txt
++++ b/src/cpp/desktop/CMakeLists.txt
+@@ -158,7 +158,6 @@ endif (NOT WIN32)
+
+ set(MOC_DESKTOP_HEADER_FILES ${DESKTOP_HEADER_FILES})
+ list(REMOVE_ITEM MOC_DESKTOP_HEADER_FILES
+- ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtsingleapplication/qtlockedfile.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/DesktopDetectRHome.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/DesktopOptions.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/DesktopRVersion.hpp
+@@ -224,8 +223,6 @@ set(DESKTOP_SOURCE_FILES
+ DesktopSlotBinders.cpp
+ DesktopSubMenu.cpp
+ DesktopSynctex.cpp
+- 3rdparty/qtsingleapplication/qtsingleapplication.cpp
+- 3rdparty/qtsingleapplication/qtlocalpeer.cpp
+ )
+
+ if(WIN32)
+@@ -387,6 +384,7 @@ if(NOT APPLE)
+ target_link_libraries(rstudio
+ ${RSTUDIO_QTMODULES}
+ ${QT_LIBRARIES}
++ Qt5Solutions_SingleApplication-2.6
+ ${Boost_LIBRARIES}
+ rstudio-core
+ ${LINK_FLAGS}
+@@ -429,6 +427,7 @@ else()
+ target_link_libraries(RStudio
+ ${RSTUDIO_QTMODULES}
+ ${QT_LIBRARIES}
++ Qt5Solutions_SingleApplication-2.6
+ rstudio-core
+ ${APPLICATION_SERVICES_LIBRARY}
+ ${COCOA_LIBRARY}
+diff --git a/src/cpp/desktop/DesktopPosixApplication.hpp b/src/cpp/desktop/DesktopPosixApplication.hpp
+index 03d09d9..ca2eaee 100644
+--- a/src/cpp/desktop/DesktopPosixApplication.hpp
++++ b/src/cpp/desktop/DesktopPosixApplication.hpp
+@@ -16,7 +16,7 @@
+ #ifndef DESKTOP_POSIX_APPLICATION_HPP
+ #define DESKTOP_POSIX_APPLICATION_HPP
+
+-#include "3rdparty/qtsingleapplication/QtSingleApplication"
++#include <qt5/QtSolutions/QtSingleApplication>
+
+ #include "DesktopApplicationLaunch.hpp"
+
+--
+2.24.1
+
diff --git a/0002-fix-rstudio-exec-path.patch b/0002-fix-rstudio-exec-path.patch
new file mode 100644
index 0000000..08fc362
--- /dev/null
+++ b/0002-fix-rstudio-exec-path.patch
@@ -0,0 +1,23 @@
+From bfd42aef8759252d4fb2f620c8869fc85e0a6684 Mon Sep 17 00:00:00 2001
+From: Marco Varlese <marco.varlese(a)suse.com>
+Date: Mon, 27 Jan 2020 14:29:40 +0100
+Subject: [PATCH 10/10] Fix rstudio exec path
+
+Fix the path to the rstudio executable in the rstudio.desktop file.
+---
+ src/cpp/desktop/resources/freedesktop/rstudio.desktop.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/cpp/desktop/resources/freedesktop/rstudio.desktop.in b/src/cpp/desktop/resources/freedesktop/rstudio.desktop.in
+index 0a1a387fd2..e8f68277e2 100644
+--- a/src/cpp/desktop/resources/freedesktop/rstudio.desktop.in
++++ b/src/cpp/desktop/resources/freedesktop/rstudio.desktop.in
+@@ -1,5 +1,5 @@
+ [Desktop Entry]
+-Exec=${CMAKE_INSTALL_PREFIX}/${RSTUDIO_INSTALL_BIN}/rstudio %F
++Exec=rstudio %F
+ Icon=rstudio
+ Type=Application
+ Terminal=false
+--
+2.25.0
diff --git a/0003-fix-STL-access-undefined-behaviour.patch b/0003-fix-STL-access-undefined-behaviour.patch
new file mode 100644
index 0000000..c952ac4
--- /dev/null
+++ b/0003-fix-STL-access-undefined-behaviour.patch
@@ -0,0 +1,32 @@
+From 3077fbe2890704d5d2150985bf796af07af6c2d1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= <iucar(a)fedoraproject.org>
+Date: Sun, 16 Feb 2020 14:22:20 +0100
+Subject: [PATCH] fix STL access undefined behaviour
+
+---
+ src/cpp/session/modules/SessionFiles.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/cpp/session/modules/SessionFiles.cpp b/src/cpp/session/modules/SessionFiles.cpp
+index a509c10..11c8015 100644
+--- a/src/cpp/session/modules/SessionFiles.cpp
++++ b/src/cpp/session/modules/SessionFiles.cpp
+@@ -909,13 +909,13 @@ SEXP rs_readLines(SEXP filePathSEXP)
+ return r::sexp::create(contents, &protect);
+
+ std::vector<std::string> splat = core::algorithm::split(contents, "\n");
+- if (splat[splat.size() - 1].empty())
++ if (splat.size() && splat[splat.size() - 1].empty())
+ splat.pop_back();
+
+ for (std::size_t i = 0, n = splat.size(); i < n; ++i)
+ {
+ std::string& rElement = splat[i];
+- if (rElement[rElement.size() - 1] == '\r')
++ if (rElement.size() && rElement[rElement.size() - 1] == '\r')
+ rElement.erase(rElement.size() - 1);
+ }
+
+--
+2.24.1
+
diff --git a/rstudio.spec b/rstudio.spec
new file mode 100644
index 0000000..a854fe6
--- /dev/null
+++ b/rstudio.spec
@@ -0,0 +1,339 @@
+%global bundled_gwt_version 2.8.1
+%global bundled_websockets_version 1.0.4
+%global bundled_gin_version 2.1.2
+%global bundled_guice_version 3.0
+%global bundled_aopalliance_version 1.0
+%global bundled_jsonspirit_version 4.03
+%global bundled_sundown_version 07d0d98
+%global bundled_hunspell_version 1.3
+%global bundled_synctex_version 1.17
+%global bundled_datatables_version 1.10.4
+%global bundled_pdfjs_version 1.3.158
+%global bundled_revealjs_version 2.4.0
+%global bundled_jsbn_version 2005
+%global bundled_highlightjs_version c589dcc
+%global bundled_qunitjs_version 1.18.0
+%global bundled_xtermjs_version 0.0.7
+%global mathjax_short 26
+%global rstudio_version_major 1
+%global rstudio_version_minor 2
+%global rstudio_version_patch 5033
+%global rstudio_git_revision_hash 330255ddec489e7a147ace3e8a9a3e4157d8d5ad
+
+Name: rstudio
+Version: %{rstudio_version_major}.%{rstudio_version_minor}.%{rstudio_version_patch}
+Release: 10%{?dist}
+Summary: RStudio base package
+
+# AGPLv3: RStudio, hunspell, icomoon glyphs
+# ASL 2.0: gwt, gwt-websockets, gin, guice, pdf.js
+# MIT: synctex, json-spirit, sundown, datatables, reveal.js, jsbn,
+# qunit.js, xterm.js
+# BSD: highlight.js
+# Public: aopalliance
+License: AGPLv3 and ASL 2.0 and MIT and BSD and Public Domain
+URL: https://github.com/%{name}/%{name}
+Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
+Source1: https://s3.amazonaws.com/%{name}-buildtools/gwt-%{bundled_gwt_version}.zip
+Source2: https://s3.amazonaws.com/%{name}-buildtools/gin-%{bundled_gin_version}.zip
+# Unbundle mathjax, pandoc, hunspell dictionaries, qtsingleapplication
+Patch0: 0000-unbundle-dependencies-common.patch
+Patch1: 0001-unbundle-qtsingleapplication.patch
+# Remove the installation prefix from the exec path in the .desktop file
+Patch2: 0002-fix-rstudio-exec-path.patch
+# https://github.com/rstudio/rstudio/pull/6244
+Patch3: 0003-fix-STL-access-undefined-behaviour.patch
+
+BuildRequires: cmake, ant
+BuildRequires: gcc-c++, java-devel, R-core-devel
+BuildRequires: pandoc, pandoc-citeproc
+BuildRequires: mathjax, js-jquery
+BuildRequires: lato-fonts, glyphography-newscycle-fonts
+BuildRequires: boost-devel
+BuildRequires: pam-devel
+BuildRequires: rapidxml-devel
+BuildRequires: pkgconfig(uuid)
+BuildRequires: pkgconfig(openssl)
+BuildRequires: pkgconfig(pango)
+BuildRequires: pkgconfig(libxslt)
+BuildRequires: pkgconfig(gl)
+BuildRequires: pkgconfig(libpq)
+BuildRequires: pkgconfig(xscrnsaver)
+BuildRequires: pkgconfig(websocketpp)
+%ifarch %{qt5_qtwebengine_arches}
+BuildRequires: qt5-devel
+BuildRequires: pkgconfig(Qt5WebKit)
+BuildRequires: pkgconfig(Qt5Location)
+BuildRequires: pkgconfig(Qt5Sensors)
+BuildRequires: pkgconfig(Qt5Svg)
+BuildRequires: pkgconfig(Qt5WebEngine)
+BuildRequires: pkgconfig(Qt5WebChannel)
+BuildRequires: pkgconfig(Qt5XmlPatterns)
+BuildRequires: qtsingleapplication-qt5-devel
+BuildRequires: hicolor-icon-theme
+BuildRequires: desktop-file-utils
+%endif
+BuildRequires: pkgconfig(systemd)
+BuildRequires: systemd
+%{?systemd_requires}
+Requires(pre): shadow-utils
+Requires: hunspell
+Requires: pandoc, pandoc-citeproc
+Requires: mathjax, js-jquery
+Requires: lato-fonts, glyphography-newscycle-fonts
+Recommends: git
+%ifarch %{qt5_qtwebengine_arches}
+Suggests: rstudio-desktop
+%endif
+Suggests: rstudio-server
+Provides: bundled(gwt) = %{bundled_gwt_version}
+Provides: bundled(gwt-websockets) = %{bundled_websockets_version}
+Provides: bundled(gin) = %{bundled_gin_version}
+Provides: bundled(guice) = %{bundled_guice_version}
+Provides: bundled(aopalliance) = %{bundled_aopalliance_version}
+Provides: bundled(json-spirit) = %{bundled_jsonspirit_version}
+Provides: bundled(sundown) = %{bundled_sundown_version}
+Provides: bundled(hunspell) = %{bundled_hunspell_version}
+Provides: bundled(synctex) = %{bundled_synctex_version}
+Provides: bundled(js-datatables) = %{bundled_datatables_version}
+Provides: bundled(js-pdf) = %{bundled_pdfjs_version}
+Provides: bundled(js-reveal) = %{bundled_revealjs_version}
+Provides: bundled(js-bn) = %{bundled_jsbn_version}
+Provides: bundled(js-highlight) = %{bundled_highlightjs_version}
+Provides: bundled(js-qunit) = %{bundled_qunitjs_version}
+Provides: bundled(js-xterm) = %{bundled_xtermjs_version}
+
+%global _description %{expand:
+RStudio is an integrated development environment (IDE) for R. It includes a
+console, syntax-highlighting editor that supports direct code execution, as
+well as tools for plotting, history, debugging and workspace management.
+}
+
+%description %_description
+This package provides common files for %{name}-desktop and %{name}-server.
+
+%ifarch %{qt5_qtwebengine_arches}
+%package desktop
+Summary: Integrated development environment for the R programming language
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: hicolor-icon-theme, shared-mime-info
+
+%description desktop %_description
+This package provides the Desktop version, to access the RStudio IDE locally.
+%endif
+
+%package server
+Summary: Access RStudio via a web browser
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: pam
+
+%description server %_description
+This package provides the Server version, a browser-based interface to the RStudio IDE.
+
+%prep
+%autosetup -p1
+
+# unpack gwt
+mkdir -p src/gwt/lib/gwt
+unzip -q -d src/gwt/lib/gwt/ %{SOURCE1}
+mv src/gwt/lib/gwt/gwt-%{bundled_gwt_version} src/gwt/lib/gwt/%{bundled_gwt_version}
+# unpack gin
+mkdir -p src/gwt/lib/gin/%{bundled_gin_version}
+unzip -q -d src/gwt/lib/gin/%{bundled_gin_version} %{SOURCE2}
+
+# use system libraries when available
+rm -rf src/cpp/desktop/3rdparty src/cpp/ext/websocketpp
+ln -sf %{_includedir}/rapidxml.h src/cpp/core/include/core/rapidxml/rapidxml.hpp
+ln -sf %{_includedir}/websocketpp src/cpp/ext/websocketpp
+
+# don't include gwt_build in ALL to avoid recompilation
+sed -i 's@gwt_build ALL@gwt_build@g' src/gwt/CMakeLists.txt
+# increase Java stack size
+%ifarch s390 s390x
+sed -i '/StackOverflowError/c\<jvmarg value="-Xss8M"/>' src/gwt/build.xml
+%endif
+
+%build
+export RSTUDIO_VERSION_MAJOR=%{rstudio_version_major}
+export RSTUDIO_VERSION_MINOR=%{rstudio_version_minor}
+export RSTUDIO_VERSION_PATCH=%{rstudio_version_patch}
+export RSTUDIO_GIT_REVISION_HASH=%{rstudio_git_revision_hash}
+export GIT_COMMIT=%{rstudio_git_revision_hash}
+%cmake . \
+%ifarch %{qt5_qtwebengine_arches}
+ -DRSTUDIO_TARGET=Desktop \
+ -DRSTUDIO_SERVER=TRUE \
+ -DQT_QMAKE_EXECUTABLE=%{_bindir}/qmake-qt5 \
+%else
+ -DRSTUDIO_TARGET=Server \
+%endif
+ -DCMAKE_BUILD_TYPE=Release \
+ -DRSTUDIO_USE_SYSTEM_BOOST=Yes \
+ -DBOOST_ROOT=%{_prefix} -DBOOST_LIBRARYDIR=%{_lib} \
+ -DCMAKE_INSTALL_PREFIX=%{_libexecdir}/%{name}
+%make_build # ALL
+%make_build gwt_build
+
+%install
+%make_install
+# expose symlinks in /usr/bin
+install -d -m 0755 %{buildroot}%{_bindir}
+%ifarch %{qt5_qtwebengine_arches}
+ln -s %{_libexecdir}/%{name}/bin/%{name} %{buildroot}%{_bindir}/%{name}
+%endif
+for bin in %{name}-server rserver rserver-pam; do
+ ln -s %{_libexecdir}/%{name}/bin/${bin} %{buildroot}%{_bindir}/${bin}
+done
+
+# validate .desktop file
+%ifarch %{qt5_qtwebengine_arches}
+desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
+%endif
+
+# create required directories for rstudio-server (according to INSTALL)
+mkdir -p %{buildroot}%{_sharedstatedir}/%{name}-server
+
+# install the systemd service file and change /var/run -> /run
+install -D -m 0644 \
+ %{buildroot}%{_libexecdir}/%{name}/extras/systemd/%{name}-server.service \
+ %{buildroot}%{_unitdir}/%{name}-server.service
+sed -i 's@/var/run@/run@g' %{buildroot}%{_unitdir}/%{name}-server.service
+
+# install the PAM module
+mkdir -p %{buildroot}%{_sysconfdir}/pam.d
+install -m 0644 \
+ %{buildroot}%{_libexecdir}/%{name}/extras/pam/%{name} \
+ %{buildroot}%{_sysconfdir}/pam.d/%{name}
+
+# symlink the location where the bundled dependencies should be
+pushd %{buildroot}%{_libexecdir}/%{name}/bin
+ mkdir -p pandoc
+ ln -sf %{_bindir}/pandoc pandoc/pandoc
+ ln -sf %{_bindir}/pandoc-citeproc pandoc/pandoc-citeproc
+popd
+pushd %{buildroot}%{_libexecdir}/%{name}/resources
+ ln -sf %{_datadir}/myspell dictionaries
+ ln -sf %{_datadir}/javascript/mathjax mathjax-%{mathjax_short}
+ ln -sf %{_datadir}/javascript/jquery/latest/jquery.js grid/datatables/js/jquery.js
+ pushd presentation/revealjs/fonts
+ for fnt in Lato*.ttf; do
+ ln -sf %{_datadir}/fonts/lato/${fnt} ${fnt}
+ done
+ for fnt in News*.ttf; do
+ ln -sf %{_datadir}/fonts/glyphography-newscycle-fonts/${fnt,,} ${fnt}
+ done
+ popd
+ # move and symlink bundled libraries
+ mv grid/datatables grid/datatables.bundled
+ ln -sf ./datatables.bundled grid/datatables
+ mv pdfjs pdfjs.bundled
+ ln -sf ./pdfjs.bundled pdfjs
+ mv presentation/revealjs presentation/revealjs.bundled
+ ln -sf ./revealjs.bundled presentation/revealjs
+popd
+
+# clean up
+pushd %{buildroot}%{_libexecdir}/%{name}
+ for f in .gitignore .Rbuildignore LICENSE README; do
+ find . -name ${f} -delete
+ done
+ rm -rf {extras,INSTALL,COPYING,NOTICE,README.md,SOURCE,VERSION}
+popd
+
+# add user rstudio-server
+%pre server
+getent group %{name}-server >/dev/null || groupadd -r %{name}-server
+getent passwd %{name}-server >/dev/null || \
+ useradd -r -g %{name}-server -d %{_sharedstatedir}/%{name}-server -s /sbin/nologin \
+ -c "User for %{name}-server" %{name}-server
+exit 0
+
+%post server
+%systemd_post %{name}-server.service
+
+%preun server
+%systemd_preun %{name}-server.service
+
+%postun server
+%systemd_postun_with_restart %{name}-server.service
+
+%files
+%license COPYING NOTICE
+%doc README.md
+%dir %{_libexecdir}/%{name}
+%{_libexecdir}/%{name}/R
+%{_libexecdir}/%{name}/bin
+%{_libexecdir}/%{name}/resources
+%{_libexecdir}/%{name}/www
+%{_libexecdir}/%{name}/www-symbolmaps
+
+%ifarch %{qt5_qtwebengine_arches}
+%files desktop
+%{_bindir}/%{name}
+%{_libexecdir}/%{name}/%{name}.png
+%{_datadir}/applications/%{name}.desktop
+%{_datadir}/icons/hicolor/*/apps/*
+%{_datadir}/icons/hicolor/*/mimetypes/*
+%{_datadir}/mime/packages/%{name}.xml
+%{_datadir}/pixmaps/%{name}.png
+%endif
+
+%files server
+%{_bindir}/%{name}-server
+%{_bindir}/rserver
+%{_bindir}/rserver-pam
+%dir %{_sharedstatedir}/%{name}-server
+%{_unitdir}/%{name}-server.service
+%config(noreplace) %{_sysconfdir}/pam.d/%{name}
+
+%changelog
+* Fri Feb 28 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-10
+- Do not remove NOTICE from resources dir (displayed in the help menu)
+
+* Thu Feb 27 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-9
+- Unbundle NewsCycle font
+- Make unzip quiet
+- Simplify description
+
+* Tue Feb 25 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-8
+- Explicitly list gcc-c++ and java-devel as BuildRequires
+- Change Source0 URL to include the package name
+- Add isa flag to subpackages
+- Require hicolor-icon-theme and shared-mimo-info in -desktop
+- Mark config file as noreplace in -server
+- Add comments to justify patches
+- Unbundle Lato font
+- Some refactoring
+
+* Sun Feb 23 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-7
+- Downgrade to gwt version 2.8.1 to fix notebook issues
+- Rebase patches
+
+* Fri Feb 21 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-6
+- Declare bundled hunspell, synctex (RStudio relies on an old APIs)
+
+* Thu Feb 20 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-5
+- Declare bundled gwt-websockets, guice, aopalliance, json-spirit, sundown,
+ datatables, pdfjs, revealjs, jsbn, highlightjs, qunitjs
+- Move and symlink bundled libraries included as-is: datatables, pdfjs, revealjs
+- Unbundle qtsingleapplication, websocketpp, hunspell, dictionaries, rapidxml,
+ synctex, jQuery
+- Validate .desktop file
+- Expose rstudio-server script in /usr/bin
+- Mark NOTICE as license, clean up more files
+- Rebase patches
+
+* Mon Feb 17 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-4
+- Increase Java stack size for s390x
+- Call target gwt_build manually
+
+* Sun Feb 16 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-3
+- Move PNG file to rstudio-desktop sub-package
+
+* Sun Feb 16 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-2
+- Exclude rstudio-desktop from arches not supported by QtWebEngine
+- Add 0004-fix-STL-access-undefined-behaviour.patch
+
+* Sun Feb 16 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-1
+- Initial packaging for Fedora
+- Most of the work ported from Dan ermk's SPEC for openSUSE
diff --git a/sources b/sources
new file mode 100644
index 0000000..89bcae8
--- /dev/null
+++ b/sources
@@ -0,0 +1,3 @@
+SHA512 (gin-2.1.2.zip) = 03407b6318ffb0dd504ce520649ed90e845f13fbdbd0bfb4d7e3b127842f1735093e39674077c3a04a11d434aefdc3a734652c3f85e8ab00ff37ae760ccb8dbb
+SHA512 (gwt-2.8.1.zip) = feeb00cb0413c2703dfd6931f57ba669813bd65f814715f2c04dd6dc69e885a8048337272333d7504c48e9fa52cdab699f854ee13211228ab142a1f458ee33ae
+SHA512 (rstudio-1.2.5033.tar.gz) = 3569d4fed342275a9905c87e4f97be63b6391d2c37f75397e06201a7c31f80d94799214f51ff8e57d458ef18d5e54afe1ec8a7c56ac05ed8b8225ecca72d1daf
4 years
Architecture specific change in rpms/rstudio.git
by githook-noreply@fedoraproject.org
The package rpms/rstudio.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rstudio.git/commit/?id=88447b887e....
Change:
+%ifarch %{qt5_qtwebengine_arches}
Thanks.
Full change:
============
commit 88447b887ef8632c08bfb0d9bb9ff177384611be
Author: Iaki car <iucar(a)fedoraproject.org>
Date: Tue Mar 3 18:52:59 2020 +0100
initial import (#1803528)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f817319
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/gin-2.1.2.zip
+/gwt-2.8.1.zip
+/rstudio-1.2.5033.tar.gz
diff --git a/0000-unbundle-dependencies-common.patch b/0000-unbundle-dependencies-common.patch
new file mode 100644
index 0000000..1df3bf6
--- /dev/null
+++ b/0000-unbundle-dependencies-common.patch
@@ -0,0 +1,67 @@
+From dc5d9b6c5fc48853fa22d12d116caaee5676a2ba Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= <iucar(a)fedoraproject.org>
+Date: Thu, 20 Feb 2020 18:22:09 +0100
+Subject: [PATCH] unbundle dependencies/common
+
+---
+ src/cpp/session/CMakeLists.txt | 33 ---------------------------------
+ 1 file changed, 33 deletions(-)
+
+diff --git a/src/cpp/session/CMakeLists.txt b/src/cpp/session/CMakeLists.txt
+index 1fd7718..8ab972c 100644
+--- a/src/cpp/session/CMakeLists.txt
++++ b/src/cpp/session/CMakeLists.txt
+@@ -17,18 +17,6 @@ project (SESSION)
+
+ add_subdirectory(workers)
+
+-# verify that install-dictionaries, install-mathjax, install-pandoc,
+-# and install-rmarkdown have been run as required
+-if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/dictionaries")
+- message(FATAL_ERROR "Dictionaries not found (re-run install-dependencies script to install)")
+-endif()
+-if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/mathjax-26")
+- message(FATAL_ERROR "Mathjax 2.6 not found (re-run install-dependencies script to install)")
+-endif()
+-if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/pandoc")
+- message(FATAL_ERROR "pandoc not found (re-run install-dependencies script to install)")
+-endif()
+-
+ # we often install embedded versions of these packages but don't do so currently
+
+ # if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/rmarkdown")
+@@ -478,31 +466,10 @@ if (NOT RSTUDIO_SESSION_WIN32)
+ install(FILES ${R_MODULE_SRC_FILES}
+ DESTINATION ${RSTUDIO_INSTALL_SUPPORTING}/R/modules)
+
+- # install hunspell dictionaries
+- install(DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/dictionaries"
+- DESTINATION "${RSTUDIO_INSTALL_SUPPORTING}/resources")
+-
+- # install mathjax for local html preview
+- install(DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/mathjax-26"
+- DESTINATION "${RSTUDIO_INSTALL_SUPPORTING}/resources")
+-
+ # icons for database connections
+ install(DIRECTORY "resources/connections"
+ DESTINATION ${RSTUDIO_INSTALL_SUPPORTING}/resources)
+
+- # install pandoc
+- if(WIN32)
+- set(PANDOC_VERSION "2.7.2" CACHE INTERNAL "Pandoc version")
+- else()
+- set(PANDOC_VERSION "2.3.1" CACHE INTERNAL "Pandoc version")
+- endif()
+-
+- set(PANDOC_BIN "${RSTUDIO_DEPENDENCIES_DIR}/common/pandoc/${PANDOC_VERSION}")
+- file(GLOB PANDOC_FILES "${PANDOC_BIN}/pandoc*")
+- install(FILES ${PANDOC_FILES}
+- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+- DESTINATION ${RSTUDIO_INSTALL_BIN}/pandoc)
+-
+ # install rmarkdown package
+ # file(GLOB RMARKDOWN_PACKAGE "${RSTUDIO_DEPENDENCIES_DIR}/common/rmarkdown*.tar.gz")
+ # install(FILES ${RMARKDOWN_PACKAGE}
+--
+2.24.1
+
diff --git a/0001-unbundle-qtsingleapplication.patch b/0001-unbundle-qtsingleapplication.patch
new file mode 100644
index 0000000..8533492
--- /dev/null
+++ b/0001-unbundle-qtsingleapplication.patch
@@ -0,0 +1,63 @@
+From 080a23e9f2802692eb8f02a9d7532c554145b527 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= <iucar(a)fedoraproject.org>
+Date: Thu, 20 Feb 2020 20:09:35 +0100
+Subject: [PATCH] unbundle qtsingleapplication
+
+---
+ src/cpp/desktop/CMakeLists.txt | 5 ++---
+ src/cpp/desktop/DesktopPosixApplication.hpp | 2 +-
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/src/cpp/desktop/CMakeLists.txt b/src/cpp/desktop/CMakeLists.txt
+index dabe4f4..ec28567 100644
+--- a/src/cpp/desktop/CMakeLists.txt
++++ b/src/cpp/desktop/CMakeLists.txt
+@@ -158,7 +158,6 @@ endif (NOT WIN32)
+
+ set(MOC_DESKTOP_HEADER_FILES ${DESKTOP_HEADER_FILES})
+ list(REMOVE_ITEM MOC_DESKTOP_HEADER_FILES
+- ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtsingleapplication/qtlockedfile.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/DesktopDetectRHome.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/DesktopOptions.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/DesktopRVersion.hpp
+@@ -224,8 +223,6 @@ set(DESKTOP_SOURCE_FILES
+ DesktopSlotBinders.cpp
+ DesktopSubMenu.cpp
+ DesktopSynctex.cpp
+- 3rdparty/qtsingleapplication/qtsingleapplication.cpp
+- 3rdparty/qtsingleapplication/qtlocalpeer.cpp
+ )
+
+ if(WIN32)
+@@ -387,6 +384,7 @@ if(NOT APPLE)
+ target_link_libraries(rstudio
+ ${RSTUDIO_QTMODULES}
+ ${QT_LIBRARIES}
++ Qt5Solutions_SingleApplication-2.6
+ ${Boost_LIBRARIES}
+ rstudio-core
+ ${LINK_FLAGS}
+@@ -429,6 +427,7 @@ else()
+ target_link_libraries(RStudio
+ ${RSTUDIO_QTMODULES}
+ ${QT_LIBRARIES}
++ Qt5Solutions_SingleApplication-2.6
+ rstudio-core
+ ${APPLICATION_SERVICES_LIBRARY}
+ ${COCOA_LIBRARY}
+diff --git a/src/cpp/desktop/DesktopPosixApplication.hpp b/src/cpp/desktop/DesktopPosixApplication.hpp
+index 03d09d9..ca2eaee 100644
+--- a/src/cpp/desktop/DesktopPosixApplication.hpp
++++ b/src/cpp/desktop/DesktopPosixApplication.hpp
+@@ -16,7 +16,7 @@
+ #ifndef DESKTOP_POSIX_APPLICATION_HPP
+ #define DESKTOP_POSIX_APPLICATION_HPP
+
+-#include "3rdparty/qtsingleapplication/QtSingleApplication"
++#include <qt5/QtSolutions/QtSingleApplication>
+
+ #include "DesktopApplicationLaunch.hpp"
+
+--
+2.24.1
+
diff --git a/0002-fix-rstudio-exec-path.patch b/0002-fix-rstudio-exec-path.patch
new file mode 100644
index 0000000..08fc362
--- /dev/null
+++ b/0002-fix-rstudio-exec-path.patch
@@ -0,0 +1,23 @@
+From bfd42aef8759252d4fb2f620c8869fc85e0a6684 Mon Sep 17 00:00:00 2001
+From: Marco Varlese <marco.varlese(a)suse.com>
+Date: Mon, 27 Jan 2020 14:29:40 +0100
+Subject: [PATCH 10/10] Fix rstudio exec path
+
+Fix the path to the rstudio executable in the rstudio.desktop file.
+---
+ src/cpp/desktop/resources/freedesktop/rstudio.desktop.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/cpp/desktop/resources/freedesktop/rstudio.desktop.in b/src/cpp/desktop/resources/freedesktop/rstudio.desktop.in
+index 0a1a387fd2..e8f68277e2 100644
+--- a/src/cpp/desktop/resources/freedesktop/rstudio.desktop.in
++++ b/src/cpp/desktop/resources/freedesktop/rstudio.desktop.in
+@@ -1,5 +1,5 @@
+ [Desktop Entry]
+-Exec=${CMAKE_INSTALL_PREFIX}/${RSTUDIO_INSTALL_BIN}/rstudio %F
++Exec=rstudio %F
+ Icon=rstudio
+ Type=Application
+ Terminal=false
+--
+2.25.0
diff --git a/0003-fix-STL-access-undefined-behaviour.patch b/0003-fix-STL-access-undefined-behaviour.patch
new file mode 100644
index 0000000..c952ac4
--- /dev/null
+++ b/0003-fix-STL-access-undefined-behaviour.patch
@@ -0,0 +1,32 @@
+From 3077fbe2890704d5d2150985bf796af07af6c2d1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= <iucar(a)fedoraproject.org>
+Date: Sun, 16 Feb 2020 14:22:20 +0100
+Subject: [PATCH] fix STL access undefined behaviour
+
+---
+ src/cpp/session/modules/SessionFiles.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/cpp/session/modules/SessionFiles.cpp b/src/cpp/session/modules/SessionFiles.cpp
+index a509c10..11c8015 100644
+--- a/src/cpp/session/modules/SessionFiles.cpp
++++ b/src/cpp/session/modules/SessionFiles.cpp
+@@ -909,13 +909,13 @@ SEXP rs_readLines(SEXP filePathSEXP)
+ return r::sexp::create(contents, &protect);
+
+ std::vector<std::string> splat = core::algorithm::split(contents, "\n");
+- if (splat[splat.size() - 1].empty())
++ if (splat.size() && splat[splat.size() - 1].empty())
+ splat.pop_back();
+
+ for (std::size_t i = 0, n = splat.size(); i < n; ++i)
+ {
+ std::string& rElement = splat[i];
+- if (rElement[rElement.size() - 1] == '\r')
++ if (rElement.size() && rElement[rElement.size() - 1] == '\r')
+ rElement.erase(rElement.size() - 1);
+ }
+
+--
+2.24.1
+
diff --git a/rstudio.spec b/rstudio.spec
new file mode 100644
index 0000000..a854fe6
--- /dev/null
+++ b/rstudio.spec
@@ -0,0 +1,339 @@
+%global bundled_gwt_version 2.8.1
+%global bundled_websockets_version 1.0.4
+%global bundled_gin_version 2.1.2
+%global bundled_guice_version 3.0
+%global bundled_aopalliance_version 1.0
+%global bundled_jsonspirit_version 4.03
+%global bundled_sundown_version 07d0d98
+%global bundled_hunspell_version 1.3
+%global bundled_synctex_version 1.17
+%global bundled_datatables_version 1.10.4
+%global bundled_pdfjs_version 1.3.158
+%global bundled_revealjs_version 2.4.0
+%global bundled_jsbn_version 2005
+%global bundled_highlightjs_version c589dcc
+%global bundled_qunitjs_version 1.18.0
+%global bundled_xtermjs_version 0.0.7
+%global mathjax_short 26
+%global rstudio_version_major 1
+%global rstudio_version_minor 2
+%global rstudio_version_patch 5033
+%global rstudio_git_revision_hash 330255ddec489e7a147ace3e8a9a3e4157d8d5ad
+
+Name: rstudio
+Version: %{rstudio_version_major}.%{rstudio_version_minor}.%{rstudio_version_patch}
+Release: 10%{?dist}
+Summary: RStudio base package
+
+# AGPLv3: RStudio, hunspell, icomoon glyphs
+# ASL 2.0: gwt, gwt-websockets, gin, guice, pdf.js
+# MIT: synctex, json-spirit, sundown, datatables, reveal.js, jsbn,
+# qunit.js, xterm.js
+# BSD: highlight.js
+# Public: aopalliance
+License: AGPLv3 and ASL 2.0 and MIT and BSD and Public Domain
+URL: https://github.com/%{name}/%{name}
+Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
+Source1: https://s3.amazonaws.com/%{name}-buildtools/gwt-%{bundled_gwt_version}.zip
+Source2: https://s3.amazonaws.com/%{name}-buildtools/gin-%{bundled_gin_version}.zip
+# Unbundle mathjax, pandoc, hunspell dictionaries, qtsingleapplication
+Patch0: 0000-unbundle-dependencies-common.patch
+Patch1: 0001-unbundle-qtsingleapplication.patch
+# Remove the installation prefix from the exec path in the .desktop file
+Patch2: 0002-fix-rstudio-exec-path.patch
+# https://github.com/rstudio/rstudio/pull/6244
+Patch3: 0003-fix-STL-access-undefined-behaviour.patch
+
+BuildRequires: cmake, ant
+BuildRequires: gcc-c++, java-devel, R-core-devel
+BuildRequires: pandoc, pandoc-citeproc
+BuildRequires: mathjax, js-jquery
+BuildRequires: lato-fonts, glyphography-newscycle-fonts
+BuildRequires: boost-devel
+BuildRequires: pam-devel
+BuildRequires: rapidxml-devel
+BuildRequires: pkgconfig(uuid)
+BuildRequires: pkgconfig(openssl)
+BuildRequires: pkgconfig(pango)
+BuildRequires: pkgconfig(libxslt)
+BuildRequires: pkgconfig(gl)
+BuildRequires: pkgconfig(libpq)
+BuildRequires: pkgconfig(xscrnsaver)
+BuildRequires: pkgconfig(websocketpp)
+%ifarch %{qt5_qtwebengine_arches}
+BuildRequires: qt5-devel
+BuildRequires: pkgconfig(Qt5WebKit)
+BuildRequires: pkgconfig(Qt5Location)
+BuildRequires: pkgconfig(Qt5Sensors)
+BuildRequires: pkgconfig(Qt5Svg)
+BuildRequires: pkgconfig(Qt5WebEngine)
+BuildRequires: pkgconfig(Qt5WebChannel)
+BuildRequires: pkgconfig(Qt5XmlPatterns)
+BuildRequires: qtsingleapplication-qt5-devel
+BuildRequires: hicolor-icon-theme
+BuildRequires: desktop-file-utils
+%endif
+BuildRequires: pkgconfig(systemd)
+BuildRequires: systemd
+%{?systemd_requires}
+Requires(pre): shadow-utils
+Requires: hunspell
+Requires: pandoc, pandoc-citeproc
+Requires: mathjax, js-jquery
+Requires: lato-fonts, glyphography-newscycle-fonts
+Recommends: git
+%ifarch %{qt5_qtwebengine_arches}
+Suggests: rstudio-desktop
+%endif
+Suggests: rstudio-server
+Provides: bundled(gwt) = %{bundled_gwt_version}
+Provides: bundled(gwt-websockets) = %{bundled_websockets_version}
+Provides: bundled(gin) = %{bundled_gin_version}
+Provides: bundled(guice) = %{bundled_guice_version}
+Provides: bundled(aopalliance) = %{bundled_aopalliance_version}
+Provides: bundled(json-spirit) = %{bundled_jsonspirit_version}
+Provides: bundled(sundown) = %{bundled_sundown_version}
+Provides: bundled(hunspell) = %{bundled_hunspell_version}
+Provides: bundled(synctex) = %{bundled_synctex_version}
+Provides: bundled(js-datatables) = %{bundled_datatables_version}
+Provides: bundled(js-pdf) = %{bundled_pdfjs_version}
+Provides: bundled(js-reveal) = %{bundled_revealjs_version}
+Provides: bundled(js-bn) = %{bundled_jsbn_version}
+Provides: bundled(js-highlight) = %{bundled_highlightjs_version}
+Provides: bundled(js-qunit) = %{bundled_qunitjs_version}
+Provides: bundled(js-xterm) = %{bundled_xtermjs_version}
+
+%global _description %{expand:
+RStudio is an integrated development environment (IDE) for R. It includes a
+console, syntax-highlighting editor that supports direct code execution, as
+well as tools for plotting, history, debugging and workspace management.
+}
+
+%description %_description
+This package provides common files for %{name}-desktop and %{name}-server.
+
+%ifarch %{qt5_qtwebengine_arches}
+%package desktop
+Summary: Integrated development environment for the R programming language
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: hicolor-icon-theme, shared-mime-info
+
+%description desktop %_description
+This package provides the Desktop version, to access the RStudio IDE locally.
+%endif
+
+%package server
+Summary: Access RStudio via a web browser
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: pam
+
+%description server %_description
+This package provides the Server version, a browser-based interface to the RStudio IDE.
+
+%prep
+%autosetup -p1
+
+# unpack gwt
+mkdir -p src/gwt/lib/gwt
+unzip -q -d src/gwt/lib/gwt/ %{SOURCE1}
+mv src/gwt/lib/gwt/gwt-%{bundled_gwt_version} src/gwt/lib/gwt/%{bundled_gwt_version}
+# unpack gin
+mkdir -p src/gwt/lib/gin/%{bundled_gin_version}
+unzip -q -d src/gwt/lib/gin/%{bundled_gin_version} %{SOURCE2}
+
+# use system libraries when available
+rm -rf src/cpp/desktop/3rdparty src/cpp/ext/websocketpp
+ln -sf %{_includedir}/rapidxml.h src/cpp/core/include/core/rapidxml/rapidxml.hpp
+ln -sf %{_includedir}/websocketpp src/cpp/ext/websocketpp
+
+# don't include gwt_build in ALL to avoid recompilation
+sed -i 's@gwt_build ALL@gwt_build@g' src/gwt/CMakeLists.txt
+# increase Java stack size
+%ifarch s390 s390x
+sed -i '/StackOverflowError/c\<jvmarg value="-Xss8M"/>' src/gwt/build.xml
+%endif
+
+%build
+export RSTUDIO_VERSION_MAJOR=%{rstudio_version_major}
+export RSTUDIO_VERSION_MINOR=%{rstudio_version_minor}
+export RSTUDIO_VERSION_PATCH=%{rstudio_version_patch}
+export RSTUDIO_GIT_REVISION_HASH=%{rstudio_git_revision_hash}
+export GIT_COMMIT=%{rstudio_git_revision_hash}
+%cmake . \
+%ifarch %{qt5_qtwebengine_arches}
+ -DRSTUDIO_TARGET=Desktop \
+ -DRSTUDIO_SERVER=TRUE \
+ -DQT_QMAKE_EXECUTABLE=%{_bindir}/qmake-qt5 \
+%else
+ -DRSTUDIO_TARGET=Server \
+%endif
+ -DCMAKE_BUILD_TYPE=Release \
+ -DRSTUDIO_USE_SYSTEM_BOOST=Yes \
+ -DBOOST_ROOT=%{_prefix} -DBOOST_LIBRARYDIR=%{_lib} \
+ -DCMAKE_INSTALL_PREFIX=%{_libexecdir}/%{name}
+%make_build # ALL
+%make_build gwt_build
+
+%install
+%make_install
+# expose symlinks in /usr/bin
+install -d -m 0755 %{buildroot}%{_bindir}
+%ifarch %{qt5_qtwebengine_arches}
+ln -s %{_libexecdir}/%{name}/bin/%{name} %{buildroot}%{_bindir}/%{name}
+%endif
+for bin in %{name}-server rserver rserver-pam; do
+ ln -s %{_libexecdir}/%{name}/bin/${bin} %{buildroot}%{_bindir}/${bin}
+done
+
+# validate .desktop file
+%ifarch %{qt5_qtwebengine_arches}
+desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
+%endif
+
+# create required directories for rstudio-server (according to INSTALL)
+mkdir -p %{buildroot}%{_sharedstatedir}/%{name}-server
+
+# install the systemd service file and change /var/run -> /run
+install -D -m 0644 \
+ %{buildroot}%{_libexecdir}/%{name}/extras/systemd/%{name}-server.service \
+ %{buildroot}%{_unitdir}/%{name}-server.service
+sed -i 's@/var/run@/run@g' %{buildroot}%{_unitdir}/%{name}-server.service
+
+# install the PAM module
+mkdir -p %{buildroot}%{_sysconfdir}/pam.d
+install -m 0644 \
+ %{buildroot}%{_libexecdir}/%{name}/extras/pam/%{name} \
+ %{buildroot}%{_sysconfdir}/pam.d/%{name}
+
+# symlink the location where the bundled dependencies should be
+pushd %{buildroot}%{_libexecdir}/%{name}/bin
+ mkdir -p pandoc
+ ln -sf %{_bindir}/pandoc pandoc/pandoc
+ ln -sf %{_bindir}/pandoc-citeproc pandoc/pandoc-citeproc
+popd
+pushd %{buildroot}%{_libexecdir}/%{name}/resources
+ ln -sf %{_datadir}/myspell dictionaries
+ ln -sf %{_datadir}/javascript/mathjax mathjax-%{mathjax_short}
+ ln -sf %{_datadir}/javascript/jquery/latest/jquery.js grid/datatables/js/jquery.js
+ pushd presentation/revealjs/fonts
+ for fnt in Lato*.ttf; do
+ ln -sf %{_datadir}/fonts/lato/${fnt} ${fnt}
+ done
+ for fnt in News*.ttf; do
+ ln -sf %{_datadir}/fonts/glyphography-newscycle-fonts/${fnt,,} ${fnt}
+ done
+ popd
+ # move and symlink bundled libraries
+ mv grid/datatables grid/datatables.bundled
+ ln -sf ./datatables.bundled grid/datatables
+ mv pdfjs pdfjs.bundled
+ ln -sf ./pdfjs.bundled pdfjs
+ mv presentation/revealjs presentation/revealjs.bundled
+ ln -sf ./revealjs.bundled presentation/revealjs
+popd
+
+# clean up
+pushd %{buildroot}%{_libexecdir}/%{name}
+ for f in .gitignore .Rbuildignore LICENSE README; do
+ find . -name ${f} -delete
+ done
+ rm -rf {extras,INSTALL,COPYING,NOTICE,README.md,SOURCE,VERSION}
+popd
+
+# add user rstudio-server
+%pre server
+getent group %{name}-server >/dev/null || groupadd -r %{name}-server
+getent passwd %{name}-server >/dev/null || \
+ useradd -r -g %{name}-server -d %{_sharedstatedir}/%{name}-server -s /sbin/nologin \
+ -c "User for %{name}-server" %{name}-server
+exit 0
+
+%post server
+%systemd_post %{name}-server.service
+
+%preun server
+%systemd_preun %{name}-server.service
+
+%postun server
+%systemd_postun_with_restart %{name}-server.service
+
+%files
+%license COPYING NOTICE
+%doc README.md
+%dir %{_libexecdir}/%{name}
+%{_libexecdir}/%{name}/R
+%{_libexecdir}/%{name}/bin
+%{_libexecdir}/%{name}/resources
+%{_libexecdir}/%{name}/www
+%{_libexecdir}/%{name}/www-symbolmaps
+
+%ifarch %{qt5_qtwebengine_arches}
+%files desktop
+%{_bindir}/%{name}
+%{_libexecdir}/%{name}/%{name}.png
+%{_datadir}/applications/%{name}.desktop
+%{_datadir}/icons/hicolor/*/apps/*
+%{_datadir}/icons/hicolor/*/mimetypes/*
+%{_datadir}/mime/packages/%{name}.xml
+%{_datadir}/pixmaps/%{name}.png
+%endif
+
+%files server
+%{_bindir}/%{name}-server
+%{_bindir}/rserver
+%{_bindir}/rserver-pam
+%dir %{_sharedstatedir}/%{name}-server
+%{_unitdir}/%{name}-server.service
+%config(noreplace) %{_sysconfdir}/pam.d/%{name}
+
+%changelog
+* Fri Feb 28 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-10
+- Do not remove NOTICE from resources dir (displayed in the help menu)
+
+* Thu Feb 27 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-9
+- Unbundle NewsCycle font
+- Make unzip quiet
+- Simplify description
+
+* Tue Feb 25 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-8
+- Explicitly list gcc-c++ and java-devel as BuildRequires
+- Change Source0 URL to include the package name
+- Add isa flag to subpackages
+- Require hicolor-icon-theme and shared-mimo-info in -desktop
+- Mark config file as noreplace in -server
+- Add comments to justify patches
+- Unbundle Lato font
+- Some refactoring
+
+* Sun Feb 23 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-7
+- Downgrade to gwt version 2.8.1 to fix notebook issues
+- Rebase patches
+
+* Fri Feb 21 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-6
+- Declare bundled hunspell, synctex (RStudio relies on an old APIs)
+
+* Thu Feb 20 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-5
+- Declare bundled gwt-websockets, guice, aopalliance, json-spirit, sundown,
+ datatables, pdfjs, revealjs, jsbn, highlightjs, qunitjs
+- Move and symlink bundled libraries included as-is: datatables, pdfjs, revealjs
+- Unbundle qtsingleapplication, websocketpp, hunspell, dictionaries, rapidxml,
+ synctex, jQuery
+- Validate .desktop file
+- Expose rstudio-server script in /usr/bin
+- Mark NOTICE as license, clean up more files
+- Rebase patches
+
+* Mon Feb 17 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-4
+- Increase Java stack size for s390x
+- Call target gwt_build manually
+
+* Sun Feb 16 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-3
+- Move PNG file to rstudio-desktop sub-package
+
+* Sun Feb 16 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-2
+- Exclude rstudio-desktop from arches not supported by QtWebEngine
+- Add 0004-fix-STL-access-undefined-behaviour.patch
+
+* Sun Feb 16 2020 Iaki car <iucar(a)fedoraproject.org> - 1.2.5033-1
+- Initial packaging for Fedora
+- Most of the work ported from Dan ermk's SPEC for openSUSE
diff --git a/sources b/sources
new file mode 100644
index 0000000..89bcae8
--- /dev/null
+++ b/sources
@@ -0,0 +1,3 @@
+SHA512 (gin-2.1.2.zip) = 03407b6318ffb0dd504ce520649ed90e845f13fbdbd0bfb4d7e3b127842f1735093e39674077c3a04a11d434aefdc3a734652c3f85e8ab00ff37ae760ccb8dbb
+SHA512 (gwt-2.8.1.zip) = feeb00cb0413c2703dfd6931f57ba669813bd65f814715f2c04dd6dc69e885a8048337272333d7504c48e9fa52cdab699f854ee13211228ab142a1f458ee33ae
+SHA512 (rstudio-1.2.5033.tar.gz) = 3569d4fed342275a9905c87e4f97be63b6391d2c37f75397e06201a7c31f80d94799214f51ff8e57d458ef18d5e54afe1ec8a7c56ac05ed8b8225ecca72d1daf
4 years
Architecture specific change in rpms/scorep.git
by githook-noreply@fedoraproject.org
The package rpms/scorep.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/scorep.git/commit/?id=e14a890f842...
https://src.fedoraproject.org/cgit/rpms/scorep.git/commit/?id=d08d77d7153....
Change:
+%ifarch aarch64
-%ifarch aarch64
Thanks.
Full change:
============
commit d08d77d7153e5a1143d56a32d909e5130f606d29
Author: Dave Love <loveshack(a)fedoraproject.org>
Date: Tue Mar 3 12:46:03 2020 +0000
Fix libunwind build; avoid aarch64 oshm on el8 too
diff --git a/scorep.spec b/scorep.spec
index 81b966d..ccdb0af 100644
--- a/scorep.spec
+++ b/scorep.spec
@@ -4,14 +4,12 @@
# OMPI4 oshcc is now not on all arches (depending on UCX)
%global oshm 1
-%if 0%{?fedora} > 30
-%ifnarch aarch64 ppc64le x86_64
+# Fixme: There's something odd here, since aarch64 has the oshm compilers
+%if 0%{?fedora} > 30 || 0%{?el8}
+%ifnarch ppc64le x86_64
%global oshm 0
%endif
%endif
-%ifarch aarch64
-%{?el8:%global oshm 0}
-%endif
%global libuwcommit 5646a9b520c51bf6aaa86ae4c25289e30b7c3a41
%global libuwshort %(c=%{libuwcommit}; echo ${c:0:7})
@@ -237,15 +235,15 @@ tar fx %SOURCE1
%build
%global _configure ../configure
-# pushd libunwind*
-# # Per Fedora packaging
-# sed -i 's/= UNW_ARM_METHOD_ALL/= UNW_ARM_METHOD_EXIDX/' src/arm/Gglobal.c
-# ./autogen.sh
-# CFLAGS="%build_cflags" LDFLAGS="%build_ldflags" \
-# ./configure --prefix=$(pwd)/unwind --enable-static --disable-dynamic
-# %make_build -k
-# %make_install
-# popd
+pushd libunwind*
+# Per Fedora packaging
+sed -i 's/= UNW_ARM_METHOD_ALL/= UNW_ARM_METHOD_EXIDX/' src/arm/Gglobal.c
+./autogen.sh
+CFLAGS="%build_cflags -fcommon" LDFLAGS="%build_ldflags" \
+ ./configure --prefix=$(pwd)/unwind --enable-static --disable-dynamic
+%make_build -k
+%make_install
+popd
# See above
PATH=$(pwd)/bin:$PATH
%global configure_opts --enable-shared --disable-static --disable-silent-rules --with-unwind=$(pwd)/unwind
@@ -270,7 +268,6 @@ do
%else
module load mpi/$mpi-%{_arch}
%endif
- ln -s ../configure .
%configure %{configure_opts} \
--libdir=%{_libdir}/$mpi/lib \
--bindir=%{_libdir}/$mpi/bin \
@@ -463,7 +460,7 @@ make -C serial check V=1
* Wed Feb 26 2020 Dave love <loveshack(a)fedoraproject.org> - 6.0-7
- Bundle the recommended modified libunwind
- Fix FTBFS with binutils 2.34
-- Don't try to build oshm on el8 aarch64
+- Avoid oshm on el8/fedora aarch64
* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
commit e14a890f8422bb8cb1410bf766b849e5a1306e93
Author: Dave Love <loveshack(a)fedoraproject.org>
Date: Wed Feb 26 17:51:52 2020 +0000
- Bundle the recommended modified libunwind
- Fix FTBFS with binutils 2.34
- Don't try to build oshm on el8 aarch64
diff --git a/scorep.spec b/scorep.spec
index 10e24b7..81b966d 100644
--- a/scorep.spec
+++ b/scorep.spec
@@ -9,6 +9,9 @@
%global oshm 0
%endif
%endif
+%ifarch aarch64
+%{?el8:%global oshm 0}
+%endif
%global libuwcommit 5646a9b520c51bf6aaa86ae4c25289e30b7c3a41
%global libuwshort %(c=%{libuwcommit}; echo ${c:0:7})
@@ -457,9 +460,10 @@ make -C serial check V=1
%changelog
-* Mon Feb 24 2020 Dave love <loveshack(a)fedoraproject.org> - 6.0-7
+* Wed Feb 26 2020 Dave love <loveshack(a)fedoraproject.org> - 6.0-7
- Bundle the recommended modified libunwind
- Fix FTBFS with binutils 2.34
+- Don't try to build oshm on el8 aarch64
* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
4 years
Architecture specific change in rpms/wine.git
by githook-noreply@fedoraproject.org
The package rpms/wine.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/wine.git/commit/?id=85f25c8c1cfbd....
Change:
+%ifnarch %{arm} aarch64
Thanks.
Full change:
============
commit 85f25c8c1cfbda0aaaeb726f347a51e44865f017
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Tue Mar 3 12:32:30 2020 -0600
Don't ship activeds.tlb on ARM arches
diff --git a/wine.spec b/wine.spec
index ed7832c..a1fd9b0 100644
--- a/wine.spec
+++ b/wine.spec
@@ -1204,7 +1204,6 @@ fi
%{_libdir}/wine/acledit.%{winedll}
%{_libdir}/wine/aclui.%{winedll}
%{_libdir}/wine/activeds.%{winedll}
-%{_libdir}/wine/activeds.tlb
%{_libdir}/wine/actxprxy.%{winedll}
%{_libdir}/wine/adsldp.%{winedll}
%{_libdir}/wine/adsldpc.%{winedll}
@@ -2009,6 +2008,10 @@ fi
%endif
%endif
+%ifnarch %{arm} aarch64
+%{_libdir}/wine/activeds.tlb
+%endif
+
# 16 bit and other non 64bit stuff
%ifnarch x86_64 %{arm} aarch64
%{_libdir}/wine/winevdm.exe.so
4 years
Architecture specific change in rpms/supercollider.git
by githook-noreply@fedoraproject.org
The package rpms/supercollider.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/supercollider.git/commit/?id=0ab5....
Change:
+%ifarch %ix86 x86_64
Thanks.
Full change:
============
commit 0ab54b1547d12d21c53d6008ce39091f43d87c7f
Author: Tristan Cacqueray <tdecacqu(a)redhat.com>
Date: Tue Mar 3 16:29:48 2020 +0000
Fix aarch64 build failure
diff --git a/supercollider.spec b/supercollider.spec
index cb68f92..ec05a5b 100644
--- a/supercollider.spec
+++ b/supercollider.spec
@@ -1,15 +1,15 @@
# build options
%{!?qt5_qtwebengine_arches:%global qt5_qtwebengine_arches %{ix86} x86_64 %{arm} aarch64 mips mipsel mips64el}
-%ifarch %{arm}
-%define cmakearch -DSUPERNOVA=OFF -DSSE=OFF -DSSE2=OFF -DNOVA_SIMD=ON -DSC_WII=OFF
-%else
+%ifarch %ix86 x86_64
%define cmakearch -DSUPERNOVA=ON
+%else
+%define cmakearch -DSUPERNOVA=OFF -DSSE=OFF -DSSE2=OFF -DNOVA_SIMD=ON -DSC_WII=OFF
%endif
Summary: Object oriented programming environment for real-time audio and video processing
Name: supercollider
Version: 3.10.4
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
URL: https://supercollider.github.io/
@@ -60,7 +60,6 @@ compositions, interactive performances, installations etc.
%package devel
Summary: Development files for SuperCollider
-BuildArch: noarch
Requires: supercollider%{?_isa} = %{version}-%{release}
Requires: alsa-lib-devel
Requires: avahi-devel
@@ -75,7 +74,6 @@ SuperCollider applications
%package emacs
Summary: SuperCollider support for Emacs
-BuildArch: noarch
Requires: supercollider%{?_isa} = %{version}-%{release}
%description emacs
@@ -90,7 +88,6 @@ SuperCollider support for the GEdit text editor.
%package vim
Summary: SuperCollider support for Vim
-BuildArch: noarch
Requires: supercollider%{?_isa} = %{version}-%{release}
%description vim
@@ -157,7 +154,7 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/SuperColliderIDE.des
%{_bindir}/scsynth
%dir %{_libdir}/SuperCollider
%{_libdir}/SuperCollider/plugins
-%ifnarch %{arm}
+%ifarch %ix86 x86_64
# supernova
%{_bindir}/supernova
%endif
@@ -186,6 +183,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/SuperColliderIDE.des
%{_datadir}/gtksourceview*/language-specs/supercollider.lang
%changelog
+* Tue Mar 3 2020 Tristan Cacqueray <tdecacqu(a)redhat.com> - 3.10.4-2
+- Fix aarch64 build failure
+
* Sat Jan 25 2020 Tristan Cacqueray <tdecacqu(a)redhat.com> - 3.10.4-1
- Bump to 3.10.4
4 years
Architecture specific change in rpms/dotnet3.1.git
by githook-noreply@fedoraproject.org
The package rpms/dotnet3.1.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/dotnet3.1.git/commit/?id=b18622e4....
Change:
+ExclusiveArch: x86_64
Thanks.
Full change:
============
commit 5a4961b806dc1de340a2b640d4a406d36fb00554
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Feb 28 10:22:16 2020 -0500
Enable bootstrap and add Fedora 33 runtime ids
diff --git a/corefx-42871-fedora-33-rid.patch b/corefx-42871-fedora-33-rid.patch
new file mode 100644
index 0000000..2802dcd
--- /dev/null
+++ b/corefx-42871-fedora-33-rid.patch
@@ -0,0 +1,124 @@
+From 6cf4ff086875eaf29381cf406ea85846d9f66178 Mon Sep 17 00:00:00 2001
+From: Omair Majid <omajid(a)redhat.com>
+Date: Mon, 24 Feb 2020 14:11:03 -0500
+Subject: [PATCH] Add Fedora 33 runtime ids
+
+Fedora 32 is gearing up for release[1], and in-development version of
+Fedora has been offically labelled as being Fedora 33:
+
+ $ podman run -it fedora:33 cat /etc/os-release
+ NAME=Fedora
+ VERSION="33 (Container Image)"
+ ID=fedora
+ VERSION_ID=33
+ VERSION_CODENAME=""
+ PLATFORM_ID="platform:f33"
+ PRETTY_NAME="Fedora 33 (Container Image)"
+ ANSI_COLOR="0;34"
+ LOGO=fedora-logo-icon
+ CPE_NAME="cpe:/o:fedoraproject:fedora:33"
+ HOME_URL="https://fedoraproject.org/"
+ DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/rawhide/system-administrators..."
+ SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
+ BUG_REPORT_URL="https://bugzilla.redhat.com/"
+ REDHAT_BUGZILLA_PRODUCT="Fedora"
+ REDHAT_BUGZILLA_PRODUCT_VERSION=rawhide
+ REDHAT_SUPPORT_PRODUCT="Fedora"
+ REDHAT_SUPPORT_PRODUCT_VERSION=rawhide
+ PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
+ VARIANT="Container Image"
+ VARIANT_ID=container
+
+[1] https://fedorapeople.org/groups/schedule/f-32/f-32-key-tasks.html
+---
+ eng/Packaging.props | 2 +-
+ .../runtime.compatibility.json | 32 +++++++++++++++++++
+ pkg/Microsoft.NETCore.Platforms/runtime.json | 17 ++++++++++
+ .../runtimeGroups.props | 2 +-
+ src/packages.builds | 3 ++
+ 5 files changed, 54 insertions(+), 2 deletions(-)
+
+diff --git a/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json b/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json
+index 1e5c380a7a6a..c20e35394d6b 100644
+--- a/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json
++++ b/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json
+@@ -953,6 +953,38 @@
+ "any",
+ "base"
+ ],
++ "fedora.33": [
++ "fedora.33",
++ "fedora",
++ "linux",
++ "unix",
++ "any",
++ "base"
++ ],
++ "fedora.33-arm64": [
++ "fedora.33-arm64",
++ "fedora.33",
++ "fedora-arm64",
++ "fedora",
++ "linux-arm64",
++ "linux",
++ "unix-arm64",
++ "unix",
++ "any",
++ "base"
++ ],
++ "fedora.33-x64": [
++ "fedora.33-x64",
++ "fedora.33",
++ "fedora-x64",
++ "fedora",
++ "linux-x64",
++ "linux",
++ "unix-x64",
++ "unix",
++ "any",
++ "base"
++ ],
+ "freebsd": [
+ "freebsd",
+ "unix",
+diff --git a/pkg/Microsoft.NETCore.Platforms/runtime.json b/pkg/Microsoft.NETCore.Platforms/runtime.json
+index b2f286ea2479..b3380ecbbef3 100644
+--- a/pkg/Microsoft.NETCore.Platforms/runtime.json
++++ b/pkg/Microsoft.NETCore.Platforms/runtime.json
+@@ -488,6 +488,23 @@
+ "fedora-x64"
+ ]
+ },
++ "fedora.33": {
++ "#import": [
++ "fedora"
++ ]
++ },
++ "fedora.33-arm64": {
++ "#import": [
++ "fedora.33",
++ "fedora-arm64"
++ ]
++ },
++ "fedora.33-x64": {
++ "#import": [
++ "fedora.33",
++ "fedora-x64"
++ ]
++ },
+ "freebsd": {
+ "#import": [
+ "unix"
+diff --git a/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props b/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props
+index eeb8130b54fb..da48e5f9d09f 100644
+--- a/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props
++++ b/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props
+@@ -43,7 +43,7 @@
+ <RuntimeGroup Include="fedora">
+ <Parent>linux</Parent>
+ <Architectures>x64;arm64</Architectures>
+- <Versions>23;24;25;26;27;28;29;30;31;32</Versions>
++ <Versions>23;24;25;26;27;28;29;30;31;32;33</Versions>
+ <TreatVersionsAsCompatible>false</TreatVersionsAsCompatible>
+ </RuntimeGroup>
+
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 7f89d4b..7fc1ded 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -1,4 +1,4 @@
-%bcond_with bootstrap
+%bcond_without bootstrap
# Avoid provides/requires from private libraries
%global privlibs libhostfxr
@@ -56,7 +56,7 @@
Name: dotnet3.1
Version: %{sdk_rpm_version}
-Release: 2%{?dist}
+Release: 3%{?dist}
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/
@@ -67,6 +67,8 @@ Source0: dotnet-v%{sdk_version}-SDK.tar.gz
Source1: check-debug-symbols.py
Source2: dotnet.sh.in
+Patch1: sdk-rid.patch
+
# Fix building with our additional CFLAGS/CXXFLAGS/LDFLAGS
Patch100: corefx-optflags-support.patch
@@ -76,6 +78,9 @@ Patch101: corefx-39686-cgroupv2-01.patch
Patch102: corefx-39686-cgroupv2-02.patch
Patch103: corefx-39633-cgroupv2-mountpoints.patch
+# Add Fedora 33 RID to corefx
+Patch104: corefx-42871-fedora-33-rid.patch
+
# Build with with hardening flags, including -pie
Patch200: coreclr-hardening-flags.patch
# Fix build with clang 10
@@ -346,6 +351,7 @@ pushd src/corefx.*
%patch101 -p1
%patch102 -p1
%patch103 -p1
+%patch104 -p1
popd
pushd src/coreclr.*
@@ -379,6 +385,7 @@ cat /etc/os-release
%if %{without bootstrap}
cp -a %{_libdir}/dotnet .dotnet
+patch -p0 -i %{PATCH1}
%endif
export CFLAGS="%{dotnet_cflags}"
@@ -499,6 +506,10 @@ echo "Testing build results for debug symbols..."
%changelog
+* Fri Feb 28 2020 Omair Majid <omajid(a)redhat.com> - 3.1.101-3
+- Enable bootstrap
+- Add Fedora 33 runtime ids
+
* Thu Feb 27 2020 Omair Majid <omajid(a)redhat.com> - 3.1.101-2
- Disable bootstrap
diff --git a/sdk-rid.patch b/sdk-rid.patch
new file mode 100644
index 0000000..85e97b5
--- /dev/null
+++ b/sdk-rid.patch
@@ -0,0 +1,33 @@
+--- .dotnet/sdk/3.1.101/RuntimeIdentifierGraph.json.orig 2020-02-27 19:48:57.286692828 -0500
++++ .dotnet/sdk/3.1.101/RuntimeIdentifierGraph.json 2020-02-27 19:49:17.185262594 -0500
+@@ -488,6 +488,23 @@
+ "fedora-x64"
+ ]
+ },
++ "fedora.33": {
++ "#import": [
++ "fedora"
++ ]
++ },
++ "fedora.33-arm64": {
++ "#import": [
++ "fedora.33",
++ "fedora-arm64"
++ ]
++ },
++ "fedora.33-x64": {
++ "#import": [
++ "fedora.33",
++ "fedora-x64"
++ ]
++ },
+ "freebsd": {
+ "#import": [
+ "unix"
+@@ -2042,4 +2059,4 @@
+ ]
+ }
+ }
+-}
+\ No newline at end of file
++}
commit b909e7156775b1d8c8ea7198c41f11eda135636a
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Feb 27 17:57:48 2020 -0500
Disable bootstrap
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 32d18ba..7f89d4b 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -1,4 +1,4 @@
-%bcond_without bootstrap
+%bcond_with bootstrap
# Avoid provides/requires from private libraries
%global privlibs libhostfxr
@@ -56,7 +56,7 @@
Name: dotnet3.1
Version: %{sdk_rpm_version}
-Release: 1%{?dist}
+Release: 2%{?dist}
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/
@@ -499,6 +499,9 @@ echo "Testing build results for debug symbols..."
%changelog
+* Thu Feb 27 2020 Omair Majid <omajid(a)redhat.com> - 3.1.101-2
+- Disable bootstrap
+
* Tue Jan 21 2020 Omair Majid <omajid(a)redhat.com> - 3.1.101-1
- Update to .NET Core Runtime 3.1.1 and SDK 3.1.101
commit 39697ab889857504725b0798acddec3d7848bad7
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Feb 26 21:56:12 2020 -0500
Fix build with clang 10
diff --git a/coreclr-clang10.patch b/coreclr-clang10.patch
new file mode 100644
index 0000000..3b13cb1
--- /dev/null
+++ b/coreclr-clang10.patch
@@ -0,0 +1,54 @@
+diff --git a/configurecompiler.cmake b/configurecompiler.cmake
+index d769e82f57..4936c8b00d 100644
+--- a/configurecompiler.cmake
++++ b/configurecompiler.cmake
+@@ -474,6 +474,7 @@ if (CLR_CMAKE_PLATFORM_UNIX)
+ add_compile_options(-Wno-unused-variable)
+ add_compile_options(-Wno-unused-value)
+ add_compile_options(-Wno-unused-function)
++ add_compile_options(-Wno-error=misleading-indentation)
+
+ #These seem to indicate real issues
+ add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-Wno-invalid-offsetof>)
+diff --git a/src/inc/slist.h b/src/inc/slist.h
+index f05d763dc6..abebe04d47 100644
+--- a/src/inc/slist.h
++++ b/src/inc/slist.h
+@@ -160,13 +160,13 @@ public:
+ void Init()
+ {
+ LIMITED_METHOD_CONTRACT;
+- m_pHead = &m_link;
++ m_pHead = PTR_SLink(&m_link);
+ // NOTE :: fHead variable is template argument
+ // the following code is a compiled in, only if the fHead flag
+ // is set to false,
+ if (!fHead)
+ {
+- m_pTail = &m_link;
++ m_pTail = PTR_SLink(&m_link);
+ }
+ }
+
+@@ -274,7 +274,7 @@ public:
+ SLink *ret = SLink::FindAndRemove(m_pHead, GetLink(pObj), &prior);
+
+ if (ret == m_pTail)
+- m_pTail = prior;
++ m_pTail = PTR_SLink(prior);
+
+ return GetObject(ret);
+ }
+diff --git a/src/pal/inc/pal.h b/src/pal/inc/pal.h
+index 08a35c8f62..43eb648a14 100644
+--- a/src/pal/inc/pal.h
++++ b/src/pal/inc/pal.h
+@@ -145,7 +145,7 @@ typedef PVOID NATIVE_LIBRARY_HANDLE;
+
+ /******************* Compiler-specific glue *******************************/
+ #ifndef THROW_DECL
+-#if defined(_MSC_VER) || defined(__llvm__) || !defined(__cplusplus)
++#if defined(_MSC_VER) || !defined(__cplusplus)
+ #define THROW_DECL
+ #else
+ #define THROW_DECL throw()
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 4536929..32d18ba 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -78,6 +78,8 @@ Patch103: corefx-39633-cgroupv2-mountpoints.patch
# Build with with hardening flags, including -pie
Patch200: coreclr-hardening-flags.patch
+# Fix build with clang 10
+Patch201: coreclr-clang10.patch
# Build with with hardening flags, including -pie
Patch300: core-setup-hardening-flags.patch
@@ -112,6 +114,7 @@ BuildRequires: lttng-ust-devel
BuildRequires: make
BuildRequires: openssl-devel
BuildRequires: python3
+BuildRequires: systemtap-sdt-devel
BuildRequires: tar
BuildRequires: zlib-devel
@@ -347,6 +350,7 @@ popd
pushd src/coreclr.*
%patch200 -p1
+%patch201 -p1
popd
pushd src/dotnet-core-setup.*
commit b18622e4ac5651fd10701af3cb2ef6cdd933d32f
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Feb 20 20:23:21 2020 -0500
Initial import (#1802803)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..72735bd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/dotnet-v3.1.101-SDK.tar.gz
diff --git a/build-dotnet-tarball b/build-dotnet-tarball
new file mode 100755
index 0000000..0923778
--- /dev/null
+++ b/build-dotnet-tarball
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+# Usage:
+# build-dotnet-tarball <tag-from-source-build>
+#
+# Creates a source archive from a tag (or commit) at github.com/dotnet/source-build
+
+# Source-build is a little strange, we need to clone it, check out the
+# tag, build it and then create a tarball from the archive directory
+# it creates. Also, it is likely that the source archive is only
+# buildable on the OS it was initially created in.
+
+set -euo pipefail
+IFS=$'\n\t'
+
+print_usage() {
+ echo "Usage:"
+ echo "$0 <tag-from-source-build>"
+ echo
+ echo "Creates a source archive from a tag at https://github.com/dotnet/source-build"
+}
+
+clean_dotnet_cache() {
+ rm -rf ~/.aspnet ~/.dotnet/ ~/.nuget/ ~/.local/share/NuGet ~/.templateengine
+ rm -rf /tmp/NuGet /tmp/NuGetScratch /tmp/.NETCore* /tmp/.NETStandard* /tmp/.dotnet /tmp/dotnet.* /tmp/clr-debug-pipe* /tmp/Razor-Server /tmp/CoreFxPipe* /tmp/VBCSCompiler /tmp/.NETFramework*
+}
+
+function runtime_id {
+
+ declare -A archmap
+ archmap=(
+ ["aarch64"]="arm64"
+ ["amd64"]="x64"
+ ["armv8l"]="arm"
+ ["i686"]="x86"
+ ["i386"]="x86"
+ ["x86_64"]="x64"
+ )
+
+ arch=${archmap["$(uname -m)"]}
+
+ source /etc/os-release
+ case "${ID}" in
+ # Remove the RHEL minor version
+ rhel) rid_version=${VERSION_ID%.*} ;;
+
+ *) rid_version=${VERSION_ID} ;;
+ esac
+
+ echo "${ID}.${rid_version}-${arch}"
+}
+
+positional_args=()
+while [[ "$#" -gt 0 ]]; do
+ arg="${1}"
+ case "${arg}" in
+ -h|--help)
+ print_usage
+ exit 0
+ ;;
+ *)
+ positional_args+=("$1")
+ shift
+ ;;
+ esac
+done
+
+
+tag=${positional_args[0]:-}
+if [[ -z ${tag} ]]; then
+ echo "error: missing tag to build"
+ exit 1
+fi
+
+set -x
+
+dir_name="dotnet-${tag}"
+unmodified_tarball_name="${dir_name}-original"
+tarball_name="${dir_name}"
+
+if [ -f "${tarball_name}.tar.gz" ]; then
+ echo "error: ${tarball_name}.tar.gz already exists"
+ exit 1
+fi
+
+if [ ! -f "${unmodified_tarball_name}.tar.gz" ]; then
+ temp_dir=$(mktemp -d -p "$(pwd)")
+ pushd "${temp_dir}"
+ git clone https://github.com/dotnet/source-build
+ pushd source-build
+ git checkout "${tag}"
+ git submodule update --init --recursive
+ clean_dotnet_cache
+ sed -i -e 's|cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE||' repos/coreclr.proj
+ ./build-source-tarball.sh "${unmodified_tarball_name}"
+ popd
+ popd
+
+ tar czf "${unmodified_tarball_name}.tar.gz" -C "${temp_dir}/source-build" "${unmodified_tarball_name}"
+
+ rm -rf "${temp_dir}"
+fi
+
+rm -rf "${tarball_name}"
+tar xf "${unmodified_tarball_name}.tar.gz"
+mv "${unmodified_tarball_name}" "${tarball_name}"
+
+pushd "${tarball_name}"
+# Remove files with funny licenses, crypto implementations and other
+# not-very-useful artifacts to reduce tarball size
+rm -r src/AspNetCore.*/src/SignalR/clients/java/signalr/gradle*
+find src/AspNetCore.*/src -type d -name samples -print0 | xargs -0 rm -r
+rm -r src/NuGet.Client.*/test/EndToEnd/ProjectTemplates/NetCoreWebApplication1.0.zip
+find src/coreclr.*/ -depth -name tests -print0 | xargs -0 rm -r
+popd
+
+tar czf "${tarball_name}.tar.gz" "${tarball_name}"
diff --git a/check-debug-symbols.py b/check-debug-symbols.py
new file mode 100755
index 0000000..be26d87
--- /dev/null
+++ b/check-debug-symbols.py
@@ -0,0 +1,136 @@
+#!/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:]))
diff --git a/cli-telemetry-optout.patch b/cli-telemetry-optout.patch
new file mode 100644
index 0000000..9b01f13
--- /dev/null
+++ b/cli-telemetry-optout.patch
@@ -0,0 +1,18 @@
+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();
diff --git a/core-setup-hardening-flags.patch b/core-setup-hardening-flags.patch
new file mode 100644
index 0000000..3f6b91c
--- /dev/null
+++ b/core-setup-hardening-flags.patch
@@ -0,0 +1,11 @@
+diff --git a/src/settings.cmake b/src/settings.cmake
+--- a/src/settings.cmake
++++ b/src/settings.cmake
+@@ -218,6 +218,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic -Bsymbolic-functions")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--build-id=sha1")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--build-id=sha1")
++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
+ add_compile_options(-fstack-protector-strong)
+ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ add_compile_options(-fstack-protector)
diff --git a/coreclr-hardening-flags.patch b/coreclr-hardening-flags.patch
new file mode 100644
index 0000000..d58d735
--- /dev/null
+++ b/coreclr-hardening-flags.patch
@@ -0,0 +1,11 @@
+diff --git a/src/debug/createdump/CMakeLists.txt b/src/debug/createdump/CMakeLists.txt
+--- a/src/debug/createdump/CMakeLists.txt
++++ b/src/debug/createdump/CMakeLists.txt
+@@ -21,6 +21,7 @@ include_directories(BEFORE ${VM_DIR})
+ add_definitions(-DPAL_STDCPP_COMPAT)
+
+ add_compile_options(-fPIE)
++add_link_options(-pie)
+
+ set(CREATEDUMP_SOURCES
+ createdump.cpp
diff --git a/corefx-39633-cgroupv2-mountpoints.patch b/corefx-39633-cgroupv2-mountpoints.patch
new file mode 100644
index 0000000..34fbecb
--- /dev/null
+++ b/corefx-39633-cgroupv2-mountpoints.patch
@@ -0,0 +1,46 @@
+From 1864630f762160e1cb439362cc0577471624192a Mon Sep 17 00:00:00 2001
+From: Omair Majid <omajid(a)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":
diff --git a/corefx-39686-cgroupv2-01.patch b/corefx-39686-cgroupv2-01.patch
new file mode 100644
index 0000000..e7628e2
--- /dev/null
+++ b/corefx-39686-cgroupv2-01.patch
@@ -0,0 +1,391 @@
+From 2b2273ea4ea1c28472fa0d6ad2ffeb6374500550 Mon Sep 17 00:00:00 2001
+From: Omair Majid <omajid(a)redhat.com>
+Date: Wed, 23 Oct 2019 17:45:59 -0400
+Subject: [PATCH 1/2] Add cgroup v2 support to Interop.cgroups
+
+Fix up code to adjust cgroup v1 assumptions and check cgroup v2 paths,
+locations and values.
+
+Continue using the older cgroup v1 terminology for APIs.
+---
+ .../Interop/Linux/cgroups/Interop.cgroups.cs | 116 ++++++++++++++----
+ src/Common/tests/Common.Tests.csproj | 4 +
+ .../tests/Tests/Interop/cgroupsTests.cs | 107 ++++++++++++++++
+ .../tests/DescriptionNameTests.cs | 2 +-
+ 4 files changed, 206 insertions(+), 23 deletions(-)
+ create mode 100644 src/Common/tests/Tests/Interop/cgroupsTests.cs
+
+diff --git a/src/Common/src/Interop/Linux/cgroups/Interop.cgroups.cs b/src/Common/src/Interop/Linux/cgroups/Interop.cgroups.cs
+index 0ffd4d7b7c03..186fe0516c5b 100644
+--- a/src/Common/src/Interop/Linux/cgroups/Interop.cgroups.cs
++++ b/src/Common/src/Interop/Linux/cgroups/Interop.cgroups.cs
+@@ -9,17 +9,22 @@
+
+ internal static partial class Interop
+ {
++ /// <summary>Provides access to some cgroup (v1 and v2) features</summary>
+ internal static partial class cgroups
+ {
++ // For cgroup v1, see https://www.kernel.org/doc/Documentation/cgroup-v1/
++ // For cgroup v2, see https://www.kernel.org/doc/Documentation/cgroup-v2.txt
++
++ /// <summary>The version of cgroup that's being used </summary>
++ internal enum CGroupVersion { None, CGroup1, CGroup2 };
++
+ /// <summary>Path to mountinfo file in procfs for the current process.</summary>
+ private const string ProcMountInfoFilePath = "/proc/self/mountinfo";
+ /// <summary>Path to cgroup directory in procfs for the current process.</summary>
+ private const string ProcCGroupFilePath = "/proc/self/cgroup";
+
+- /// <summary>Path to the found cgroup location, or null if it couldn't be found.</summary>
+- internal static readonly string s_cgroupMemoryPath = FindCGroupPath("memory");
+- /// <summary>Path to the found cgroup memory limit_in_bytes path, or null if it couldn't be found.</summary>
+- private static readonly string s_cgroupMemoryLimitPath = s_cgroupMemoryPath != null ? s_cgroupMemoryPath + "/memory.limit_in_bytes" : null;
++ /// <summary>Path to the found cgroup memory limit path, or null if it couldn't be found.</summary>
++ internal static readonly string s_cgroupMemoryLimitPath = FindCGroupMemoryLimitPath();
+
+ /// <summary>Tries to read the memory limit from the cgroup memory location.</summary>
+ /// <param name="limit">The read limit, or 0 if it couldn't be read.</param>
+@@ -42,7 +47,7 @@ public static bool TryGetMemoryLimit(out ulong limit)
+ /// <param name="path">The path to the file to parse.</param>
+ /// <param name="result">The parsed result, or 0 if it couldn't be parsed.</param>
+ /// <returns>true if the value was read successfully; otherwise, false.</returns>
+- private static bool TryReadMemoryValueFromFile(string path, out ulong result)
++ internal static bool TryReadMemoryValueFromFile(string path, out ulong result)
+ {
+ if (File.Exists(path))
+ {
+@@ -79,6 +84,11 @@ private static bool TryReadMemoryValueFromFile(string path, out ulong result)
+ result = checked(ulongValue * multiplier);
+ return true;
+ }
++
++ // 'max' is also a possible valid value
++ //
++ // Treat this as 'no memory limit' and let the caller
++ // fallback to reading the real limit via other means
+ }
+ catch (Exception e)
+ {
+@@ -90,12 +100,35 @@ private static bool TryReadMemoryValueFromFile(string path, out ulong result)
+ return false;
+ }
+
++ /// <summary>Find the cgroup memory limit path.</summary>
++ /// <returns>The limit path if found; otherwise, null.</returns>
++ private static string FindCGroupMemoryLimitPath()
++ {
++ string cgroupMemoryPath = FindCGroupPath("memory", out CGroupVersion version);
++ if (cgroupMemoryPath != null)
++ {
++ if (version == CGroupVersion.CGroup1)
++ {
++ return cgroupMemoryPath + "/memory.limit_in_bytes";
++ }
++
++ if (version == CGroupVersion.CGroup2)
++ {
++ // 'memory.high' is a soft limit; the process may get throttled
++ // 'memory.max' is where OOM killer kicks in
++ return cgroupMemoryPath + "/memory.max";
++ }
++ }
++
++ return null;
++ }
++
+ /// <summary>Find the cgroup path for the specified subsystem.</summary>
+ /// <param name="subsystem">The subsystem, e.g. "memory".</param>
+ /// <returns>The cgroup path if found; otherwise, null.</returns>
+- private static string FindCGroupPath(string subsystem)
++ private static string FindCGroupPath(string subsystem, out CGroupVersion version)
+ {
+- if (TryFindHierarchyMount(subsystem, out string hierarchyRoot, out string hierarchyMount) &&
++ if (TryFindHierarchyMount(subsystem, out version, out string hierarchyRoot, out string hierarchyMount) &&
+ TryFindCGroupPathForSubsystem(subsystem, out string cgroupPathRelativeToMount))
+ {
+ // For a host cgroup, we need to append the relative path.
+@@ -113,19 +146,24 @@ private static string FindCGroupPath(string subsystem)
+ /// <param name="root">The path of the directory in the filesystem which forms the root of this mount; null if not found.</param>
+ /// <param name="path">The path of the mount point relative to the process's root directory; null if not found.</param>
+ /// <returns>true if the mount was found; otherwise, null.</returns>
+- private static bool TryFindHierarchyMount(string subsystem, out string root, out string path)
++ private static bool TryFindHierarchyMount(string subsystem, out CGroupVersion version, out string root, out string path)
+ {
+- if (File.Exists(ProcMountInfoFilePath))
++ return TryFindHierarchyMount(ProcMountInfoFilePath, subsystem, out version, out root, out path);
++ }
++
++ internal static bool TryFindHierarchyMount(string mountInfoFilePath, string subsystem, out CGroupVersion version, out string root, out string path)
++ {
++ if (File.Exists(mountInfoFilePath))
+ {
+ try
+ {
+- using (var reader = new StreamReader(ProcMountInfoFilePath))
++ using (var reader = new StreamReader(mountInfoFilePath))
+ {
+ string line;
+ while ((line = reader.ReadLine()) != null)
+ {
+ // Look for an entry that has cgroup as the "filesystem type"
+- // and that has options containing the specified subsystem.
++ // and, for cgroup1, that has options containing the specified subsystem
+ // See man page for /proc/[pid]/mountinfo for details, e.g.:
+ // (1)(2)(3) (4) (5) (6) (7) (8) (9) (10) (11)
+ // 36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
+@@ -148,17 +186,35 @@ private static bool TryFindHierarchyMount(string subsystem, out string root, out
+ continue;
+ }
+
+- if (postSeparatorlineParts[0] != "cgroup" ||
+- Array.IndexOf(postSeparatorlineParts[2].Split(','), subsystem) < 0)
++ bool validCGroup1Entry = ((postSeparatorlineParts[0] == "cgroup") &&
++ (Array.IndexOf(postSeparatorlineParts[2].Split(','), subsystem) >= 0));
++ bool validCGroup2Entry = postSeparatorlineParts[0] == "cgroup2";
++
++ if (!validCGroup1Entry && !validCGroup2Entry)
+ {
+ // Not the relevant entry.
+ continue;
+ }
+
+- // Found the relevant entry. Extract the mount root and path.
++ // Found the relevant entry. Extract the cgroup version, mount root and path.
++ switch (postSeparatorlineParts[0])
++ {
++ case "cgroup":
++ version = CGroupVersion.CGroup1;
++ break;
++ case "cgroup2":
++ version = CGroupVersion.CGroup2;
++ break;
++ default:
++ version = CGroupVersion.None;
++ Debug.Fail($"invalid value for CGroupVersion \"{postSeparatorlineParts[0]}\"");
++ break;
++ }
++
+ string[] lineParts = line.Substring(0, endOfOptionalFields).Split(' ');
+ root = lineParts[3];
+ path = lineParts[4];
++
+ return true;
+ }
+ }
+@@ -169,6 +225,7 @@ private static bool TryFindHierarchyMount(string subsystem, out string root, out
+ }
+ }
+
++ version = CGroupVersion.None;
+ root = null;
+ path = null;
+ return false;
+@@ -180,27 +237,42 @@ private static bool TryFindHierarchyMount(string subsystem, out string root, out
+ /// <returns></returns>
+ private static bool TryFindCGroupPathForSubsystem(string subsystem, out string path)
+ {
+- if (File.Exists(ProcCGroupFilePath))
++ return TryFindCGroupPathForSubsystem(ProcCGroupFilePath, subsystem, out path);
++ }
++
++ internal static bool TryFindCGroupPathForSubsystem(string procCGroupFilePath, string subsystem, out string path)
++ {
++ if (File.Exists(procCGroupFilePath))
+ {
+ try
+ {
+- using (var reader = new StreamReader(ProcCGroupFilePath))
++ using (var reader = new StreamReader(procCGroupFilePath))
+ {
+ string line;
+ while ((line = reader.ReadLine()) != null)
+ {
+- // Find the first entry that has the subsystem listed in its controller
+- // list. See man page for cgroups for /proc/[pid]/cgroups format, e.g:
+- // hierarchy-ID:controller-list:cgroup-path
+- // 5:cpuacct,cpu,cpuset:/daemons
+-
+ string[] lineParts = line.Split(':');
++
+ if (lineParts.Length != 3)
+ {
+ // Malformed line.
+ continue;
+ }
+
++ // cgroup v2: Find the first entry that matches the cgroup v2 hierarchy:
++ // 0::$PATH
++
++ if ((lineParts[0] == "0") && (string.Empty == lineParts[1]))
++ {
++ path = lineParts[2];
++ return true;
++ }
++
++ // cgroup v1: Find the first entry that has the subsystem listed in its controller
++ // list. See man page for cgroups for /proc/[pid]/cgroups format, e.g:
++ // hierarchy-ID:controller-list:cgroup-path
++ // 5:cpuacct,cpu,cpuset:/daemons
++
+ if (Array.IndexOf(lineParts[1].Split(','), subsystem) < 0)
+ {
+ // Not the relevant entry.
+@@ -214,7 +286,7 @@ private static bool TryFindCGroupPathForSubsystem(string subsystem, out string p
+ }
+ catch (Exception e)
+ {
+- Debug.Fail($"Failed to read or parse \"{ProcMountInfoFilePath}\": {e}");
++ Debug.Fail($"Failed to read or parse \"{procCGroupFilePath}\": {e}");
+ }
+ }
+
+diff --git a/src/Common/tests/Common.Tests.csproj b/src/Common/tests/Common.Tests.csproj
+index a189d856348b..979c8dd7fbe6 100644
+--- a/src/Common/tests/Common.Tests.csproj
++++ b/src/Common/tests/Common.Tests.csproj
+@@ -12,6 +12,9 @@
+ <Compile Include="$(CommonTestPath)\System\Security\Cryptography\ByteUtils.cs">
+ <Link>Common\System\Security\Cryptography\ByteUtils.cs</Link>
+ </Compile>
++ <Compile Include="$(CommonPath)\Interop\Linux\cgroups\Interop.cgroups.cs">
++ <Link>Common\Interop\Linux\cgroups\Interop.cgroups.cs</Link>
++ </Compile>
+ <Compile Include="$(CommonPath)\Interop\Linux\procfs\Interop.ProcFsStat.cs">
+ <Link>Common\Interop\Linux\procfs\Interop.ProcFsStat.cs</Link>
+ </Compile>
+@@ -69,6 +72,7 @@
+ <Compile Include="$(CommonPath)\CoreLib\System\PasteArguments.cs">
+ <Link>Common\CoreLib\System\PasteArguments.cs</Link>
+ </Compile>
++ <Compile Include="Tests\Interop\cgroupsTests.cs" />
+ <Compile Include="Tests\Interop\procfsTests.cs" />
+ <Compile Include="Tests\System\CharArrayHelpersTests.cs" />
+ <Compile Include="Tests\System\IO\PathInternal.Tests.cs" />
+diff --git a/src/Common/tests/Tests/Interop/cgroupsTests.cs b/src/Common/tests/Tests/Interop/cgroupsTests.cs
+new file mode 100644
+index 000000000000..f16d9242879c
+--- /dev/null
++++ b/src/Common/tests/Tests/Interop/cgroupsTests.cs
+@@ -0,0 +1,107 @@
++// Licensed to the .NET Foundation under one or more agreements.
++// The .NET Foundation licenses this file to you under the MIT license.
++// See the LICENSE file in the project root for more information.
++
++using System;
++using System.IO;
++using System.Text;
++using Xunit;
++
++namespace Common.Tests
++{
++ public class cgroupsTests
++ {
++ [Theory]
++ [InlineData(true, "0", 0)]
++ [InlineData(false, "max", 0)]
++ [InlineData(true, "1k", 1024)]
++ [InlineData(true, "1K", 1024)]
++ public static void ValidateTryReadMemoryValue(bool expectedResult, string valueText, ulong expectedValue)
++ {
++ string path = Path.GetTempFileName();
++ try
++ {
++ File.WriteAllText(path, valueText);
++
++ bool result = Interop.cgroups.TryReadMemoryValueFromFile(path, out ulong val);
++
++ Assert.Equal(expectedResult, result);
++ if (result)
++ {
++ Assert.Equal(expectedValue, val);
++ }
++ }
++ finally
++ {
++ File.Delete(path);
++ }
++ }
++
++ [Theory]
++ [InlineData(false, "0 0 0:0 / /foo ignore ignore - overlay overlay ignore", "ignore", 0, "/", "/")]
++ [InlineData(true, "0 0 0:0 / /foo ignore ignore - cgroup2 cgroup2 ignore", "ignore", 2, "/", "/foo")]
++ [InlineData(true, "0 0 0:0 / /foo ignore ignore - cgroup2 cgroup2 ignore", "memory", 2, "/", "/foo")]
++ [InlineData(true, "0 0 0:0 / /foo ignore ignore - cgroup2 cgroup2 ignore", "cpu", 2, "/", "/foo")]
++ [InlineData(true, "0 0 0:0 / /foo ignore - cgroup2 cgroup2 ignore", "cpu", 2, "/", "/foo")]
++ [InlineData(true, "0 0 0:0 / /foo ignore ignore ignore - cgroup2 cgroup2 ignore", "cpu", 2, "/", "/foo")]
++ [InlineData(true, "0 0 0:0 / /foo-with-dashes ignore ignore - cgroup2 cgroup2 ignore", "ignore", 2, "/", "/foo-with-dashes")]
++ [InlineData(true, "0 0 0:0 / /foo ignore ignore - cgroup cgroup memory", "memory", 1, "/", "/foo")]
++ [InlineData(true, "0 0 0:0 / /foo-with-dashes ignore ignore - cgroup cgroup memory", "memory", 1, "/", "/foo-with-dashes")]
++ [InlineData(true, "0 0 0:0 / /foo ignore ignore - cgroup cgroup cpu,memory", "memory", 1, "/", "/foo")]
++ [InlineData(true, "0 0 0:0 / /foo ignore ignore - cgroup cgroup memory,cpu", "memory", 1, "/", "/foo")]
++ [InlineData(false, "0 0 0:0 / /foo ignore ignore - cgroup cgroup cpu", "memory", 0, "/", "/foo")]
++ public static void ParseValidateMountInfo(bool found, string procSelfMountInfoText, string subsystem, int expectedVersion, string expectedRoot, string expectedMount)
++ {
++ string path = Path.GetTempFileName();
++ try
++ {
++ File.WriteAllText(path, procSelfMountInfoText);
++
++ bool result = Interop.cgroups.TryFindHierarchyMount(path, subsystem, out Interop.cgroups.CGroupVersion version, out string root, out string mount);
++
++ Assert.Equal(found, result);
++ if (found)
++ {
++ Assert.Equal(expectedVersion, (int)version);
++ Assert.Equal(expectedRoot, root);
++ Assert.Equal(expectedMount, mount);
++ }
++ }
++ finally
++ {
++ File.Delete(path);
++ }
++ }
++
++ [Theory]
++ [InlineData(true, "0::/foo", "ignore", "/foo")]
++ [InlineData(true, "0::/bar", "ignore", "/bar")]
++ [InlineData(true, "0::frob", "ignore", "frob")]
++ [InlineData(false, "1::frob", "ignore", "ignore")]
++ [InlineData(true, "1:foo:bar", "foo", "bar")]
++ [InlineData(true, "2:foo:bar", "foo", "bar")]
++ [InlineData(false, "2:foo:bar", "bar", "ignore")]
++ [InlineData(true, "1:foo:bar\n2:eggs:spam", "foo", "bar")]
++ [InlineData(true, "1:foo:bar\n2:eggs:spam", "eggs", "spam")]
++ public static void ParseValidateProcCGroup(bool found, string procSelfCgroupText, string subsystem, string expectedMountPath)
++ {
++ string path = Path.GetTempFileName();
++ try
++ {
++ File.WriteAllText(path, procSelfCgroupText);
++
++ bool result = Interop.cgroups.TryFindCGroupPathForSubsystem(path, subsystem, out string mountPath);
++
++ Assert.Equal(found, result);
++ if (found)
++ {
++ Assert.Equal(expectedMountPath, mountPath);
++ }
++ }
++ finally
++ {
++ File.Delete(path);
++ }
++ }
++ }
++}
+diff --git a/src/System.Runtime.InteropServices.RuntimeInformation/tests/DescriptionNameTests.cs b/src/System.Runtime.InteropServices.RuntimeInformation/tests/DescriptionNameTests.cs
+index 910af2fd82b4..73f692898dbc 100644
+--- a/src/System.Runtime.InteropServices.RuntimeInformation/tests/DescriptionNameTests.cs
++++ b/src/System.Runtime.InteropServices.RuntimeInformation/tests/DescriptionNameTests.cs
+@@ -40,7 +40,7 @@ public void DumpRuntimeInformationToConsole()
+
+ Console.WriteLine($"### CURRENT DIRECTORY: {Environment.CurrentDirectory}");
+
+- string cgroupsLocation = Interop.cgroups.s_cgroupMemoryPath;
++ string cgroupsLocation = Interop.cgroups.s_cgroupMemoryLimitPath;
+ if (cgroupsLocation != null)
+ {
+ Console.WriteLine($"### CGROUPS MEMORY: {cgroupsLocation}");
+
diff --git a/corefx-39686-cgroupv2-02.patch b/corefx-39686-cgroupv2-02.patch
new file mode 100644
index 0000000..88dcd99
--- /dev/null
+++ b/corefx-39686-cgroupv2-02.patch
@@ -0,0 +1,129 @@
+From 9a8c5e4014ffca8aff70808cc0e50a403d38c292 Mon Sep 17 00:00:00 2001
+From: Stephen Toub <stoub(a)microsoft.com>
+Date: Wed, 23 Oct 2019 20:35:49 -0400
+Subject: [PATCH 2/2] Clean up new tests
+
+---
+ .../tests/Tests/Interop/cgroupsTests.cs | 79 ++++++-------------
+ 1 file changed, 25 insertions(+), 54 deletions(-)
+
+diff --git a/src/Common/tests/Tests/Interop/cgroupsTests.cs b/src/Common/tests/Tests/Interop/cgroupsTests.cs
+index f16d9242879c..fc6ab5c9753c 100644
+--- a/src/Common/tests/Tests/Interop/cgroupsTests.cs
++++ b/src/Common/tests/Tests/Interop/cgroupsTests.cs
+@@ -2,38 +2,27 @@
+ // The .NET Foundation licenses this file to you under the MIT license.
+ // See the LICENSE file in the project root for more information.
+
+-using System;
+ using System.IO;
+-using System.Text;
+ using Xunit;
+
+ namespace Common.Tests
+ {
+- public class cgroupsTests
++ public class cgroupsTests : FileCleanupTestBase
+ {
+ [Theory]
+- [InlineData(true, "0", 0)]
+- [InlineData(false, "max", 0)]
+- [InlineData(true, "1k", 1024)]
+- [InlineData(true, "1K", 1024)]
+- public static void ValidateTryReadMemoryValue(bool expectedResult, string valueText, ulong expectedValue)
++ [InlineData(true, "0", 0)]
++ [InlineData(false, "max", 0)]
++ [InlineData(true, "1k", 1024)]
++ [InlineData(true, "1K", 1024)]
++ public void ValidateTryReadMemoryValue(bool expectedResult, string valueText, ulong expectedValue)
+ {
+- string path = Path.GetTempFileName();
+- try
+- {
+- File.WriteAllText(path, valueText);
+-
+- bool result = Interop.cgroups.TryReadMemoryValueFromFile(path, out ulong val);
++ string path = GetTestFilePath();
++ File.WriteAllText(path, valueText);
+
+- Assert.Equal(expectedResult, result);
+- if (result)
+- {
+- Assert.Equal(expectedValue, val);
+- }
+- }
+- finally
++ Assert.Equal(expectedResult, Interop.cgroups.TryReadMemoryValueFromFile(path, out ulong val));
++ if (expectedResult)
+ {
+- File.Delete(path);
++ Assert.Equal(expectedValue, val);
+ }
+ }
+
+@@ -50,26 +39,17 @@ public static void ValidateTryReadMemoryValue(bool expectedResult, string valueT
+ [InlineData(true, "0 0 0:0 / /foo ignore ignore - cgroup cgroup cpu,memory", "memory", 1, "/", "/foo")]
+ [InlineData(true, "0 0 0:0 / /foo ignore ignore - cgroup cgroup memory,cpu", "memory", 1, "/", "/foo")]
+ [InlineData(false, "0 0 0:0 / /foo ignore ignore - cgroup cgroup cpu", "memory", 0, "/", "/foo")]
+- public static void ParseValidateMountInfo(bool found, string procSelfMountInfoText, string subsystem, int expectedVersion, string expectedRoot, string expectedMount)
++ public void ParseValidateMountInfo(bool expectedFound, string procSelfMountInfoText, string subsystem, int expectedVersion, string expectedRoot, string expectedMount)
+ {
+- string path = Path.GetTempFileName();
+- try
+- {
+- File.WriteAllText(path, procSelfMountInfoText);
+-
+- bool result = Interop.cgroups.TryFindHierarchyMount(path, subsystem, out Interop.cgroups.CGroupVersion version, out string root, out string mount);
++ string path = GetTestFilePath();
++ File.WriteAllText(path, procSelfMountInfoText);
+
+- Assert.Equal(found, result);
+- if (found)
+- {
+- Assert.Equal(expectedVersion, (int)version);
+- Assert.Equal(expectedRoot, root);
+- Assert.Equal(expectedMount, mount);
+- }
+- }
+- finally
++ Assert.Equal(expectedFound, Interop.cgroups.TryFindHierarchyMount(path, subsystem, out Interop.cgroups.CGroupVersion version, out string root, out string mount));
++ if (expectedFound)
+ {
+- File.Delete(path);
++ Assert.Equal(expectedVersion, (int)version);
++ Assert.Equal(expectedRoot, root);
++ Assert.Equal(expectedMount, mount);
+ }
+ }
+
+@@ -83,24 +63,15 @@ public static void ParseValidateMountInfo(bool found, string procSelfMountInfoTe
+ [InlineData(false, "2:foo:bar", "bar", "ignore")]
+ [InlineData(true, "1:foo:bar\n2:eggs:spam", "foo", "bar")]
+ [InlineData(true, "1:foo:bar\n2:eggs:spam", "eggs", "spam")]
+- public static void ParseValidateProcCGroup(bool found, string procSelfCgroupText, string subsystem, string expectedMountPath)
++ public void ParseValidateProcCGroup(bool expectedFound, string procSelfCgroupText, string subsystem, string expectedMountPath)
+ {
+- string path = Path.GetTempFileName();
+- try
+- {
+- File.WriteAllText(path, procSelfCgroupText);
++ string path = GetTestFilePath();
++ File.WriteAllText(path, procSelfCgroupText);
+
+- bool result = Interop.cgroups.TryFindCGroupPathForSubsystem(path, subsystem, out string mountPath);
+-
+- Assert.Equal(found, result);
+- if (found)
+- {
+- Assert.Equal(expectedMountPath, mountPath);
+- }
+- }
+- finally
++ Assert.Equal(expectedFound, Interop.cgroups.TryFindCGroupPathForSubsystem(path, subsystem, out string mountPath));
++ if (expectedFound)
+ {
+- File.Delete(path);
++ Assert.Equal(expectedMountPath, mountPath);
+ }
+ }
+ }
diff --git a/corefx-optflags-support.patch b/corefx-optflags-support.patch
new file mode 100644
index 0000000..6f76d7f
--- /dev/null
+++ b/corefx-optflags-support.patch
@@ -0,0 +1,39 @@
+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,6 @@ add_compile_options(-fPIC)
+ add_compile_options(-Wthread-safety)
+ add_compile_options(-Wno-thread-safety-analysis)
+ endif()
+-add_compile_options(-Werror)
+
+ 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>
diff --git a/dotnet.sh.in b/dotnet.sh.in
new file mode 100644
index 0000000..65b92a0
--- /dev/null
+++ b/dotnet.sh.in
@@ -0,0 +1,14 @@
+
+# Set location for AppHost lookup
+[ -z "$DOTNET_ROOT" ] && export DOTNET_ROOT=@LIBDIR@/dotnet
+
+# Add dotnet tools directory to PATH
+DOTNET_TOOLS_PATH="$HOME/.dotnet/tools"
+case "$PATH" in
+ *"$DOTNET_TOOLS_PATH"* ) true ;;
+ * ) PATH="$PATH:$DOTNET_TOOLS_PATH" ;;
+esac
+
+# Extract self-contained executables under HOME
+# to avoid multi-user issues from using the default '/var/tmp'.
+[ -z "$DOTNET_BUNDLE_EXTRACT_BASE_DIR" ] && export DOTNET_BUNDLE_EXTRACT_BASE_DIR="${XDG_CACHE_HOME:-"$HOME"/.cache}/dotnet_bundle_extract"
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
new file mode 100644
index 0000000..4536929
--- /dev/null
+++ b/dotnet3.1.spec
@@ -0,0 +1,682 @@
+%bcond_without bootstrap
+
+# Avoid provides/requires from private libraries
+%global privlibs libhostfxr
+%global privlibs %{privlibs}|libclrjit
+%global privlibs %{privlibs}|libcoreclr
+%global privlibs %{privlibs}|libcoreclrtraceptprovider
+%global privlibs %{privlibs}|libdbgshim
+%global privlibs %{privlibs}|libhostpolicy
+%global privlibs %{privlibs}|libmscordaccore
+%global privlibs %{privlibs}|libmscordbi
+%global privlibs %{privlibs}|libsos
+%global privlibs %{privlibs}|libsosplugin
+%global __provides_exclude ^(%{privlibs})\\.so
+%global __requires_exclude ^(%{privlibs})\\.so
+
+# Filter flags not supported by clang
+# -fstack-clash-protection
+# -specs=
+%global dotnet_cflags %(echo %optflags | sed -e 's/-fstack-clash-protection//' | sed -re 's/-specs=[^ ]*//g')
+%global dotnet_ldflags %(echo %{__global_ldflags} | sed -re 's/-specs=[^ ]*//g')
+
+%global host_version 3.1.1
+%global runtime_version 3.1.1
+%global aspnetcore_runtime_version %{runtime_version}
+%global sdk_version 3.1.101
+%global templates_version %{runtime_version}
+
+%global host_rpm_version %{host_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
+%global use_bundled_libunwind 0
+%else
+%global use_bundled_libunwind 1
+%endif
+
+%ifarch x86_64
+%global runtime_arch x64
+%endif
+%ifarch aarch64
+%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
+
+Name: dotnet3.1
+Version: %{sdk_rpm_version}
+Release: 1%{?dist}
+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/
+
+# The source is generated on a Fedora box via:
+# ./build-dotnet-tarball v%%{sdk_version}-SDK
+Source0: dotnet-v%{sdk_version}-SDK.tar.gz
+Source1: check-debug-symbols.py
+Source2: dotnet.sh.in
+
+# 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
+
+# Build with with hardening flags, including -pie
+Patch200: coreclr-hardening-flags.patch
+
+# Build with with hardening flags, including -pie
+Patch300: core-setup-hardening-flags.patch
+
+# Disable telemetry by default; make it opt-in
+Patch500: cli-telemetry-optout.patch
+
+ExclusiveArch: x86_64
+
+BuildRequires: clang
+BuildRequires: cmake
+BuildRequires: coreutils
+%if %{without bootstrap}
+BuildRequires: dotnet-build-reference-packages
+BuildRequires: dotnet-sdk-3.1
+BuildRequires: dotnet-sdk-3.1-source-built-artifacts
+%endif
+BuildRequires: git
+%if 0%{?fedora} || 0%{?rhel} > 7
+BuildRequires: glibc-langpack-en
+%endif
+BuildRequires: hostname
+BuildRequires: krb5-devel
+BuildRequires: libcurl-devel
+BuildRequires: libicu-devel
+%if ! %{use_bundled_libunwind}
+BuildRequires: libunwind-devel
+%endif
+BuildRequires: lldb-devel
+BuildRequires: llvm
+BuildRequires: lttng-ust-devel
+BuildRequires: make
+BuildRequires: openssl-devel
+BuildRequires: python3
+BuildRequires: tar
+BuildRequires: zlib-devel
+
+%description
+.NET Core is a fast, lightweight and modular platform for creating
+cross platform applications that work on Linux, macOS and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+.NET Core contains a runtime conforming to .NET Standards a set of
+framework libraries, an SDK containing compilers and a 'dotnet'
+application to drive everything.
+
+
+%package -n dotnet
+
+Version: %{sdk_rpm_version}
+Summary: .NET Core CLI tools and runtime
+
+Requires: dotnet-sdk-3.1%{?_isa} >= %{sdk_rpm_version}-%{release}
+
+%description -n dotnet
+.NET Core is a fast, lightweight and modular platform for creating
+cross platform applications that work on Linux, macOS and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+.NET Core contains a runtime conforming to .NET Standards a set of
+framework libraries, an SDK containing compilers and a 'dotnet'
+application to drive everything.
+
+
+%package -n dotnet-host
+
+Version: %{host_rpm_version}
+Summary: .NET command line launcher
+
+%description -n dotnet-host
+The .NET Core host is a command line program that runs a standalone
+.NET core application or launches the SDK.
+
+.NET Core is a fast, lightweight and modular platform for creating
+cross platform applications that work on Linux, Mac and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+
+%package -n dotnet-hostfxr-3.1
+
+Version: %{host_rpm_version}
+Summary: .NET Core command line host resolver
+
+# Theoretically any version of the host should work. But lets aim for the one
+# provided by this package, or from a newer version of .NET Core
+Requires: dotnet-host%{?_isa} >= %{host_rpm_version}-%{release}
+
+%description -n dotnet-hostfxr-3.1
+The .NET Core host resolver contains the logic to resolve and select
+the right version of the .NET Core SDK or runtime to use.
+
+.NET Core is a fast, lightweight and modular platform for creating
+cross platform applications that work on Linux, Mac and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+
+%package -n dotnet-runtime-3.1
+
+Version: %{runtime_rpm_version}
+Summary: NET Core 3.1 runtime
+
+Requires: dotnet-hostfxr-3.1%{?_isa} >= %{host_rpm_version}-%{release}
+
+# libicu is dlopen()ed
+Requires: libicu%{?_isa}
+
+%if %{use_bundled_libunwind}
+Provides: bundled(libunwind) = 1.3
+%endif
+
+%description -n dotnet-runtime-3.1
+The .NET Core runtime contains everything needed to run .NET Core applications.
+It includes a high performance Virtual Machine as well as the framework
+libraries used by .NET Core applications.
+
+.NET Core is a fast, lightweight and modular platform for creating
+cross platform applications that work on Linux, Mac and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+
+%package -n aspnetcore-runtime-3.1
+
+Version: %{aspnetcore_runtime_rpm_version}
+Summary: ASP.NET Core 3.1 runtime
+
+Requires: dotnet-runtime-3.1%{?_isa} >= %{runtime_rpm_version}-%{release}
+
+%description -n aspnetcore-runtime-3.1
+The ASP.NET Core runtime contains everything needed to run .NET Core
+web applications. It includes a high performance Virtual Machine as
+well as the framework libraries used by .NET Core applications.
+
+ASP.NET Core is a fast, lightweight and modular platform for creating
+cross platform web applications that work on Linux, Mac and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+
+%package -n dotnet-templates-3.1
+
+Version: %{sdk_rpm_version}
+Summary: .NET Core 3.1 templates
+
+# Theoretically any version of the host should work. But lets aim for the one
+# provided by this package, or from a newer version of .NET Core
+Requires: dotnet-host%{?_isa} >= %{host_rpm_version}-%{release}
+
+%description -n dotnet-templates-3.1
+This package contains templates used by the .NET Core SDK.
+
+ASP.NET Core is a fast, lightweight and modular platform for creating
+cross platform web applications that work on Linux, Mac and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+
+%package -n dotnet-sdk-3.1
+
+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}
+
+Requires: dotnet-apphost-pack-3.1%{?_isa} >= %{runtime_rpm_version}-%{release}
+Requires: dotnet-targeting-pack-3.1%{?_isa} >= %{runtime_rpm_version}-%{release}
+Requires: aspnetcore-targeting-pack-3.1%{?_isa} >= %{aspnetcore_runtime_rpm_version}-%{release}
+Requires: netstandard-targeting-pack-2.1%{?_isa} >= %{sdk_rpm_version}-%{release}
+
+Requires: dotnet-templates-3.1%{?_isa} >= %{sdk_rpm_version}-%{release}
+
+%description -n dotnet-sdk-3.1
+The .NET Core SDK is a collection of command line applications to
+create, build, publish and run .NET Core applications.
+
+.NET Core is a fast, lightweight and modular platform for creating
+cross platform applications that work on Linux, Mac and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+
+%global dotnet_targeting_pack() %{expand:
+%package -n %{1}
+
+Version: %{2}
+Summary: Targeting Pack for %{3} %{4}
+
+Requires: dotnet-host%{?_isa}
+
+%description -n %{1}
+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.
+
+%files -n %{1}
+%dir %{_libdir}/dotnet/packs
+%{_libdir}/dotnet/packs/%{5}
+}
+
+%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
+
+
+%package -n dotnet-sdk-3.1-source-built-artifacts
+
+Version: %{sdk_rpm_version}
+Summary: Internal package for building .NET Core 3.1 Software Development Kit
+
+%description -n dotnet-sdk-3.1-source-built-artifacts
+The .NET Core source-built archive is a collection of packages needed
+to build the .NET Core SDK itself.
+
+These are not meant for general use.
+
+
+%prep
+%setup -q -n dotnet-v%{sdk_version}-SDK
+
+%if %{without bootstrap}
+# Remove all prebuilts
+find -iname '*.dll' -type f -delete
+find -iname '*.so' -type f -delete
+find -iname '*.tar.gz' -type f -delete
+find -iname '*.nupkg' -type f -delete
+find -iname '*.zip' -type f -delete
+rm -r .dotnet/
+rm -r packages/source-built
+%endif
+
+%if %{without bootstrap}
+sed -i -e 's|3.1.100-preview1-014459|3.1.101|' 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
+
+# Disable warnings
+sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.proj
+
+pushd src/corefx.*
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+%patch103 -p1
+popd
+
+pushd src/coreclr.*
+%patch200 -p1
+popd
+
+pushd src/dotnet-core-setup.*
+%patch300 -p1
+popd
+
+pushd src/dotnet-cli.*
+%patch500 -p1
+popd
+
+# If CLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE is misisng, add it back
+grep CLR_CMAKE_USE_SYSTEM_LIBUNWIND repos/coreclr.proj || \
+ sed -i 's|\$(BuildArguments) </BuildArguments>|$(BuildArguments) cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE</BuildArguments>|' repos/coreclr.proj
+
+%if %{use_bundled_libunwind}
+sed -i 's|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=FALSE|' repos/coreclr.proj
+%endif
+
+cat source-build-info.txt
+
+find -iname 'nuget.config' -exec echo {}: \; -exec cat {} \; -exec echo \;
+
+
+%build
+cat /etc/os-release
+
+%if %{without bootstrap}
+cp -a %{_libdir}/dotnet .dotnet
+%endif
+
+export CFLAGS="%{dotnet_cflags}"
+export CXXFLAGS="%{dotnet_cflags}"
+export LDFLAGS="%{dotnet_ldflags}"
+
+VERBOSE=1 ./build.sh \
+ /v:n \
+ /p:LogVerbosity=n \
+ /p:MinimalConsoleLogOutput=false \
+ /p:ContinueOnPrebuiltBaselineError=true \
+
+
+sed -e 's|[@]LIBDIR[@]|%{_libdir}|g' %{SOURCE2} > dotnet.sh
+
+
+%install
+install -dm 0755 %{buildroot}%{_libdir}/dotnet
+ls bin/%{runtime_arch}/Release
+tar xf bin/%{runtime_arch}/Release/dotnet-sdk-%{sdk_version}-%{runtime_id}.tar.gz -C %{buildroot}%{_libdir}/dotnet/
+
+# Install managed symbols
+tar xf bin/%{runtime_arch}/Release/runtime/dotnet-runtime-symbols-%{runtime_version}-%{runtime_id}.tar.gz \
+ -C %{buildroot}/%{_libdir}/dotnet/shared/Microsoft.NETCore.App/%{runtime_version}/
+
+# Fix executable permissions on files
+find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.dll' -exec chmod -x {} \;
+find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.pdb' -exec chmod -x {} \;
+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 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
+chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.0/obj/Microsoft.AspNetCore.App.Ref.csproj.nuget.cache
+chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.0/Microsoft.AspNetCore.App.Ref/3.1.0/Debug/netstandard2.0/Microsoft.AspNetCore.App.Ref.assets.cache
+
+install -dm 0755 %{buildroot}%{_sysconfdir}/profile.d/
+install dotnet.sh %{buildroot}%{_sysconfdir}/profile.d/
+
+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
+
+# TODO: the zsh completion script needs to be ported to use #compdef
+#install -dm 755 %%{buildroot}/%%{_datadir}/zsh/site-functions
+#install src/cli/scripts/register-completions.zsh %%{buildroot}/%%{_datadir}/zsh/site-functions/_dotnet
+
+install -dm 0755 %{buildroot}%{_bindir}
+ln -s ../../%{_libdir}/dotnet/dotnet %{buildroot}%{_bindir}/
+
+install -dm 0755 %{buildroot}%{_mandir}/man1/
+find -iname 'dotnet*.1' -type f -exec cp {} %{buildroot}%{_mandir}/man1/ \;
+
+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 bin/%{runtime_arch}/Release/Private.SourceBuilt.Artifacts.*.tar.gz %{buildroot}/%{_libdir}/dotnet/source-built-artifacts/
+
+# Check debug symbols in all elf objects. This is not in %%check
+# 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..."
+%{SOURCE1} -v %{buildroot}%{_libdir}/dotnet/
+
+
+%check
+%{buildroot}%{_libdir}/dotnet/dotnet --info
+
+
+%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
+%{_libdir}/dotnet/host/fxr/%{host_version}
+
+%files -n dotnet-runtime-3.1
+%dir %{_libdir}/dotnet/shared
+%dir %{_libdir}/dotnet/shared/Microsoft.NETCore.App
+%{_libdir}/dotnet/shared/Microsoft.NETCore.App/%{runtime_version}
+
+%files -n aspnetcore-runtime-3.1
+%dir %{_libdir}/dotnet/shared
+%dir %{_libdir}/dotnet/shared/Microsoft.AspNetCore.App
+%{_libdir}/dotnet/shared/Microsoft.AspNetCore.App/%{aspnetcore_runtime_version}
+
+%files -n dotnet-templates-3.1
+%dir %{_libdir}/dotnet/templates
+%{_libdir}/dotnet/templates/%{templates_version}
+
+%files -n dotnet-sdk-3.1
+%dir %{_libdir}/dotnet/sdk
+%{_libdir}/dotnet/sdk/%{sdk_version}
+%dir %{_libdir}/dotnet/packs
+
+%files -n dotnet-sdk-3.1-source-built-artifacts
+%dir %{_libdir}/dotnet
+%{_libdir}/dotnet/source-built-artifacts
+
+
+%changelog
+* Tue Jan 21 2020 Omair Majid <omajid(a)redhat.com> - 3.1.101-1
+- Update to .NET Core Runtime 3.1.1 and SDK 3.1.101
+
+* Thu Dec 05 2019 Omair Majid <omajid(a)redhat.com> - 3.1.100-1
+- Update to .NET Core Runtime 3.1.0 and SDK 3.1.100
+
+* Mon Nov 18 2019 Omair Majid <omajid(a)redhat.com> - 3.1.100-0.4.preview3
+- Fix apphost permissions
+
+* Fri Nov 15 2019 Omair Majid <omajid(a)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(a)redhat.com> - 3.1.100-0.2
+- Update to .NET Core 3.1 Preview 2
+
+* Wed Oct 30 2019 Omair Majid <omajid(a)redhat.com> - 3.1.100-0.1
+- Update to .NET Core 3.1 Preview 1
+
+* Thu Oct 24 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-5
+- Add cgroupv2 support to .NET Core
+
+* Wed Oct 16 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-4
+- Include fix from coreclr for building on Fedora 32
+
+* Wed Oct 16 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-3
+- Harden built binaries to pass annocheck
+
+* Fri Oct 11 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-2
+- Export DOTNET_ROOT in profile to make apphost lookup work
+
+* Fri Sep 27 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-1
+- Update to .NET Core Runtime 3.0.0 and SDK 3.0.100
+
+* Wed Sep 25 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-0.18.rc1
+- Update to .NET Core Runtime 3.0.0-rc1-19456-20 and SDK 3.0.100-rc1-014190
+
+* Tue Sep 17 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-0.16.preview9
+- Fix files duplicated between dotnet-apphost-pack-3.0 and dotnet-targeting-pack-3.0
+- Fix dependencies between .NET SDK and the targeting packs
+
+* Mon Sep 16 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-0.15.preview9
+- Update to .NET Core Runtime 3.0.0-preview 9 and SDK 3.0.100-preview9
+
+* Mon Aug 19 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-0.11.preview8
+- Update to .NET Core Runtime 3.0.0-preview8-28405-07 and SDK
+ 3.0.100-preview8-013656
+
+* Tue Jul 30 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-0.9.preview7
+- Update to .NET Core Runtime 3.0.0-preview7-27912-14 and SDK
+ 3.0.100-preview7-012821
+
+* Fri Jul 26 2019 Omair Majid <omajid(a)redhat.com> - 3.0.100-0.8.preview7
+- Update to .NET Core Runtime 3.0.0-preview7-27902-19 and SDK
+ 3.0.100-preview7-012802
+
+* Wed Jun 26 2019 Omair Majid <omajid(a)redhat.com> - 3.0.0-0.7.preview6
+- Obsolete dotnet-sdk-3.0.1xx
+- Add supackages for targeting packs
+- Add -fcf-protection to CFLAGS
+
+* Wed Jun 26 2019 Omair Majid <omajid(a)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 targeting packs
+- Install managed symbols
+- Completely conditionalize libunwind bundling
+
+* Tue May 07 2019 Omair Majid <omajid(a)redhat.com> - 3.0.0-0.3.preview4
+- Update to .NET Core 3.0 preview 4
+
+* Tue Dec 18 2018 Omair Majid <omajid(a)redhat.com> - 3.0.0-0.1.preview1
+- Update to .NET Core 3.0 preview 1
+
+* Fri Dec 07 2018 Omair Majid <omajid(a)redhat.com> - 2.2.100
+- Update to .NET Core 2.2.0
+
+* Wed Nov 07 2018 Omair Majid <omajid(a)redhat.com> - 2.2.100-0.2.preview3
+- Update to .NET Core 2.2.0-preview3
+
+* Fri Nov 02 2018 Omair Majid <omajid(a)redhat.com> - 2.1.403-3
+- Add host-fxr-2.1 subpackage
+
+* Mon Oct 15 2018 Omair Majid <omajid(a)redhat.com> - 2.1.403-2
+- Disable telemetry by default
+- Users have to manually export DOTNET_CLI_TELEMETRY_OPTOUT=0 to enable
+
+* Tue Oct 02 2018 Omair Majid <omajid(a)redhat.com> - 2.1.403-1
+- Update to .NET Core Runtime 2.1.5 and SDK 2.1.403
+
+* Wed Sep 26 2018 Omair Majid <omajid(a)redhat.com> - 2.1.402-2
+- Add ~/.dotnet/tools to $PATH to make it easier to use dotnet tools
+
+* Thu Sep 13 2018 Omair Majid <omajid(a)redhat.com> - 2.1.402-1
+- Update to .NET Core Runtime 2.1.4 and SDK 2.1.402
+
+* Wed Sep 05 2018 Omair Majid <omajid(a)redhat.com> - 2.1.401-2
+- Use distro-standard flags when building .NET Core
+
+* Tue Aug 21 2018 Omair Majid <omajid(a)redhat.com> - 2.1.401-1
+- Update to .NET Core Runtime 2.1.3 and SDK 2.1.401
+
+* Mon Aug 20 2018 Omair Majid <omajid(a)redhat.com> - 2.1.302-1
+- Update to .NET Core Runtime 2.1.2 and SDK 2.1.302
+
+* Fri Jul 20 2018 Omair Majid <omajid(a)redhat.com> - 2.1.301-1
+- Update to .NET Core 2.1
+
+* Thu May 03 2018 Omair Majid <omajid(a)redhat.com> - 2.0.7-1
+- Update to .NET Core 2.0.7
+
+* Wed Mar 28 2018 Omair Majid <omajid(a)redhat.com> - 2.0.6-2
+- Enable bash completion for dotnet
+- Remove redundant buildrequires and requires
+
+* Wed Mar 14 2018 Omair Majid <omajid(a)redhat.com> - 2.0.6-1
+- Update to .NET Core 2.0.6
+
+* Fri Feb 23 2018 Omair Majid <omajid(a)redhat.com> - 2.0.5-1
+- Update to .NET Core 2.0.5
+
+* Wed Jan 24 2018 Omair Majid <omajid(a)redhat.com> - 2.0.3-5
+- Don't apply corefx clang warnings fix on clang < 5
+
+* Fri Jan 19 2018 Omair Majid <omajid(a)redhat.com> - 2.0.3-4
+- Add a test script to sanity check debug and symbol info.
+- Build with clang 5.0
+- Make main package real instead of using a virtual provides (see RHBZ 1519325)
+
+* Wed Nov 29 2017 Omair Majid <omajid(a)redhat.com> - 2.0.3-3
+- Add a Provides for 'dotnet'
+- Fix conditional macro
+
+* Tue Nov 28 2017 Omair Majid <omajid(a)redhat.com> - 2.0.3-2
+- Fix build on Fedora 27
+
+* Fri Nov 17 2017 Omair Majid <omajid(a)redhat.com> - 2.0.3-1
+- Update to .NET Core 2.0.3
+
+* Thu Oct 19 2017 Omair Majid <omajid(a)redhat.com> - 2.0.0-4
+- Add a hack to let omnisharp work
+
+* Wed Aug 30 2017 Omair Majid <omajid(a)redhat.com> - 2.0.0-3
+- Add a patch for building coreclr and core-setup correctly on Fedora >= 27
+
+* Fri Aug 25 2017 Omair Majid <omajid(a)redhat.com> - 2.0.0-2
+- Move libicu/libcurl/libunwind requires to runtime package
+- Make sdk depend on the exact version of the runtime package
+
+* Thu Aug 24 2017 Omair Majid <omajid(a)redhat.com> - 2.0.0-1
+- Update to 2.0.0 final release
+
+* Wed Jul 26 2017 Omair Majid <omajid(a)redhat.com> - 2.0.0-0.3.preview2
+- Add man pages
+
+* Tue Jul 25 2017 Omair Majid <omajid(a)redhat.com> - 2.0.0-0.2.preview2
+- Add Requires on libicu
+- Split into multiple packages
+- Do not repeat first-run message
+
+* Fri Jul 21 2017 Omair Majid <omajid(a)redhat.com> - 2.0.0-0.1.preview2
+- Update to .NET Core 2.0 Preview 2
+
+* Thu Mar 16 2017 Nemanja Miloevi <nmilosevnm(a)gmail.com> - 1.1.0-7
+- rebuilt with latest libldb
+* Wed Feb 22 2017 Nemanja Milosevic <nmilosev(a)fedoraproject.org> - 1.1.0-6
+- compat-openssl 1.0 for F26 for now
+* Sun Feb 19 2017 Nemanja Milosevic <nmilosev(a)fedoraproject.org> - 1.1.0-5
+- Fix wrong commit id's
+* Sat Feb 18 2017 Nemanja Milosevic <nmilosev(a)fedoraproject.org> - 1.1.0-4
+- Use commit id's instead of branch names
+* Sat Feb 18 2017 Nemanja Milosevic <nmilosev(a)fedoraproject.org> - 1.1.0-3
+- Improper patch5 fix
+* Sat Feb 18 2017 Nemanja Milosevic <nmilosev(a)fedoraproject.org> - 1.1.0-2
+- SPEC cleanup
+- git removal (using all tarballs for reproducible builds)
+- more reasonable versioning
+* Thu Feb 09 2017 Nemanja Milosevic <nmilosev(a)fedoraproject.org> - 1.1.0-1
+- Fixed debuginfo going to separate package (Patch1)
+- Added F25/F26 RIL and fixed the version info (Patch2)
+- Added F25/F26 RIL in Microsoft.NETCore.App suported runtime graph (Patch3)
+- SPEC file cleanup
+* Wed Jan 11 2017 Nemanja Milosevic <nmilosev(a)fedoraproject.org> - 1.1.0-0
+- Initial RPM for Fedora 25/26.
+
diff --git a/rename-tarball b/rename-tarball
new file mode 100755
index 0000000..b6b6086
--- /dev/null
+++ b/rename-tarball
@@ -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}"
diff --git a/sources b/sources
new file mode 100644
index 0000000..e5c1d68
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (dotnet-v3.1.101-SDK.tar.gz) = b2eb9df091186e793e82ac7560496c9ac3478e41efa94e58300606e2883d9bdb187f588a48a7bd9cf7f10f3d8f641d0867eb013de9b159e3d471a71dd823278c
diff --git a/update-release b/update-release
new file mode 100755
index 0000000..09eb509
--- /dev/null
+++ b/update-release
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+# Usage:
+# ./update-release runtime-version sdk-version
+
+set -euo pipefail
+IFS=$'\n\t'
+
+print_usage() {
+ echo " Usage:"
+ echo " ./update-release runtime-version sdk-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
+
+runtime_version=${positional_args[0]:-}
+if [[ -z ${runtime_version} ]]; then
+ echo "error: missing runtime version"
+ exit 1
+fi
+host_version="$runtime_version"
+
+sdk_version=${positional_args[1]:-}
+if [[ -z ${sdk_version} ]]; then
+ echo "error: missing sdk version"
+ exit 1
+fi
+
+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 Runtime ${runtime_version} and SDK ${sdk_version}"
+
+rpmdev-bumpspec --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-repla...
+sed -i -E '/^%changelog$/!b;n;s/-[[:digit:]]+$/-1/' $spec_file
4 years
Architecture specific change in rpms/supercollider.git
by githook-noreply@fedoraproject.org
The package rpms/supercollider.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/supercollider.git/commit/?id=4917....
Change:
+%ifnarch %{arm}
Thanks.
Full change:
============
commit 491722656f724ac4c610809839fcbb146040df48
Author: Tristan Cacqueray <tdecacqu(a)redhat.com>
Date: Tue Mar 3 15:25:16 2020 +0000
Initial import (#1698871)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5d816f4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/SuperCollider-3.10.4-Source-linux.tar.bz2
diff --git a/sources b/sources
new file mode 100644
index 0000000..ef0cf2c
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (SuperCollider-3.10.4-Source-linux.tar.bz2) = 8d414e036899ed2c8f1e6852cf325d85f2b99b0fa98dc1bd832be6106c8ec4d71f130a3280a86abc24ff71606e98242899319f1c7ed782fbf02af375e0477f6b
diff --git a/supercollider.spec b/supercollider.spec
new file mode 100644
index 0000000..cb68f92
--- /dev/null
+++ b/supercollider.spec
@@ -0,0 +1,573 @@
+# build options
+%{!?qt5_qtwebengine_arches:%global qt5_qtwebengine_arches %{ix86} x86_64 %{arm} aarch64 mips mipsel mips64el}
+%ifarch %{arm}
+%define cmakearch -DSUPERNOVA=OFF -DSSE=OFF -DSSE2=OFF -DNOVA_SIMD=ON -DSC_WII=OFF
+%else
+%define cmakearch -DSUPERNOVA=ON
+%endif
+
+Summary: Object oriented programming environment for real-time audio and video processing
+Name: supercollider
+Version: 3.10.4
+Release: 1%{?dist}
+License: GPLv2+
+URL: https://supercollider.github.io/
+
+Source0: https://github.com/supercollider/supercollider/releases/download/Version-...
+
+ExclusiveArch: %{qt5_qtwebengine_arches}
+
+Requires: emacs
+Requires: qjackctl
+
+BuildRequires: alsa-lib-devel
+BuildRequires: avahi-devel
+BuildRequires: boost-devel
+BuildRequires: cmake
+BuildRequires: desktop-file-utils
+BuildRequires: emacs
+BuildRequires: fftw3-devel
+BuildRequires: gcc-c++
+BuildRequires: jack-audio-connection-kit-devel
+BuildRequires: libatomic
+BuildRequires: libcurl-devel
+BuildRequires: libicu-devel
+BuildRequires: libsndfile-devel
+BuildRequires: libtool
+BuildRequires: libX11-devel
+BuildRequires: libXt-devel
+BuildRequires: make
+BuildRequires: pkgconfig
+BuildRequires: python3-devel
+BuildRequires: qt5-qtbase-devel
+BuildRequires: qt5-qtlocation-devel
+BuildRequires: qt5-qtsensors-devel
+BuildRequires: qt5-qtsvg-devel
+BuildRequires: qt5-qttools-devel
+BuildRequires: qt5-qtwebengine-devel
+BuildRequires: qt5-qtwebkit-devel
+BuildRequires: qt5-qtwebsockets-devel
+BuildRequires: readline-devel
+BuildRequires: systemd-devel
+BuildRequires: yaml-cpp-devel
+
+%description
+SuperCollider is an object oriented programming environment for
+real-time audio and video processing. It is one of the finest and most
+versatile environments for signal processing and especially for
+creating music applications of all kinds, such as complete
+compositions, interactive performances, installations etc.
+
+%package devel
+Summary: Development files for SuperCollider
+BuildArch: noarch
+Requires: supercollider%{?_isa} = %{version}-%{release}
+Requires: alsa-lib-devel
+Requires: avahi-devel
+Requires: boost-devel
+Requires: jack-audio-connection-kit-devel
+Requires: libsndfile-devel
+Requires: pkgconfig
+
+%description devel
+This package includes include files and libraries needed to develop
+SuperCollider applications
+
+%package emacs
+Summary: SuperCollider support for Emacs
+BuildArch: noarch
+Requires: supercollider%{?_isa} = %{version}-%{release}
+
+%description emacs
+SuperCollider support for the Emacs text editor.
+
+%package gedit
+Summary: SuperCollider support for GEdit
+Requires: supercollider%{?_isa} = %{version}-%{release}
+
+%description gedit
+SuperCollider support for the GEdit text editor.
+
+%package vim
+Summary: SuperCollider support for Vim
+BuildArch: noarch
+Requires: supercollider%{?_isa} = %{version}-%{release}
+
+%description vim
+SuperCollider support for the Vim text editor.
+
+%prep
+%setup -q -n SuperCollider-Source
+
+# Ensure external libraries bundle are not used
+rm -Rf external_libraries/boost external_libraries/boost*.patch external_libraries/yaml-cpp
+# Remove unused boost component not provided by system package
+sed -e 's/ test_exec_monitor//' \
+ -e 's/.*boost_test_exec_monitor_lib.*//' \
+ -e 's/.*Boost_TEST_EXEC_MONITOR_LIBRARY.*//' \
+ -i CMakeLists.txt
+
+%build
+mkdir build
+pushd build
+export CFLAGS="%{build_cflags} -fext-numeric-literals"
+export CXXFLAGS="%{build_cxxflags} -fext-numeric-literals"
+%cmake -DCMAKE_SKIP_RPATH:BOOL=ON \
+ -DSYSTEM_BOOST=ON \
+ -DSYSTEM_YAMLCPP=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_VERBOSE_MAKEFILE=TRUE \
+ %{cmakearch} %{?geditver} \
+ ..
+%make_build
+popd
+
+%install
+pushd build
+%make_install
+popd
+# install external header libraries needed to build external ugens
+mkdir -p %{buildroot}/%{_includedir}/SuperCollider/external_libraries
+cp -r external_libraries/nova* %{buildroot}/%{_includedir}/SuperCollider/external_libraries
+# install the version file
+install -m0644 SCVersion.txt %{buildroot}/%{_includedir}/SuperCollider/
+# remove .placeholder file
+find %{buildroot}/%{_datadir} -name .placeholder -delete
+
+%check
+desktop-file-validate %{buildroot}/%{_datadir}/applications/SuperColliderIDE.desktop
+
+%files
+%doc README*
+%license COPYING
+%{_bindir}/sclang
+# in doc
+%exclude %{_datadir}/SuperCollider/AUTHORS
+%exclude %{_datadir}/SuperCollider/COPYING
+%exclude %{_datadir}/SuperCollider/README.md
+%exclude %{_datadir}/SuperCollider/README_LINUX.md
+%exclude %{_datadir}/SuperCollider/CHANGELOG.md
+%dir %{_datadir}/SuperCollider
+%{_datadir}/SuperCollider/HelpSource
+%{_datadir}/SuperCollider/SCClassLibrary
+%{_datadir}/SuperCollider/sounds
+%{_datadir}/SuperCollider/translations
+%{_datadir}/pixmaps/supercollider*
+# scsynth
+%{_bindir}/scsynth
+%dir %{_libdir}/SuperCollider
+%{_libdir}/SuperCollider/plugins
+%ifnarch %{arm}
+# supernova
+%{_bindir}/supernova
+%endif
+# examples
+%{_datadir}/SuperCollider/examples
+%exclude %{_datadir}/doc/SuperCollider/
+%{_datadir}/SuperCollider/HID_Support
+# ide
+%{_bindir}/scide
+%{_datadir}/applications/SuperColliderIDE.desktop
+%{_datadir}/pixmaps/sc_ide.svg
+%{_datadir}/mime/packages/supercollider.xml
+
+%files devel
+%{_includedir}/SuperCollider
+
+%files emacs
+%{_datadir}/emacs/site-lisp/SuperCollider
+%{_datadir}/SuperCollider/Extensions/scide_scel
+
+%files vim
+%{_datadir}/SuperCollider/Extensions/scide_scvim/SCVim.sc
+
+%files gedit
+%{_libdir}/gedit*/plugins/*
+%{_datadir}/gtksourceview*/language-specs/supercollider.lang
+
+%changelog
+* Sat Jan 25 2020 Tristan Cacqueray <tdecacqu(a)redhat.com> - 3.10.4-1
+- Bump to 3.10.4
+
+* Fri Apr 12 2019 Tristan Cacqueray <tdecacqu(a)redhat.com> - 3.10.2-2
+- add skip_rpath option to cmake
+- removed un-necessary defattr and cleaning steps
+- remove boost/yaml-cpp bundle
+- switch to Source-linux release
+- use rpm macros
+- cleanup for Fedora review request
+
+* Tue Jul 31 2018 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.10.2-1
+- update to 3.10.2 (fixes bad memory leak)
+
+* Tue Jul 31 2018 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.9.3-1
+- update to 3.9.3
+- updated scvim list of files (just one SC class)
+
+* Wed Oct 25 2017 Yann Collette <ycollette.nospam(a)free.fr> 3.8.0-1
+- update to 3.8.0
+
+* Thu Dec 15 2016 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.7.2-1
+- add "-fext-numeric-literals" to build on Fedora 25
+
+* Thu Nov 24 2016 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.7.2-1
+- update to 3.7.2
+
+* Wed Aug 5 2015 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.7.0-0.2.350.gae6996d
+- newest git
+
+* Wed Aug 5 2015 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.7.0-0.2.207.g4b75ab6
+- newest git again
+- some information on the atomic problem here:
+ http://stackoverflow.com/questions/31381892/fedora-22-compile-atomic-is-l...
+ so, link against libatomic and add the libatomic build requirement (link_with_atomic.patch)
+
+* Wed Jun 3 2015 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.7.0-0.2.54.g29f2195
+- update to latest git again, 54.g29f2195
+
+* Wed May 13 2015 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.7.0-0.1.111.ga86e12a
+- update to latest git
+
+* Tue Apr 14 2015 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.7.0-0.1.ge130238
+- update to latest git ge130238
+- now requires qt5 and friends (the packaging has changed)
+
+* Tue Feb 3 2015 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.7.0-0.1.gf312c5f
+- get latest master git, relabel package to 3.7.0-0.1.git (alpha 0), this
+ should have been done in the last build (see SCVersion.txt)
+- add systemd-devel build requirement for udev libraries
+- increment calibrate_backoff to 60 seconds in supernova
+
+* Tue Dec 17 2013 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.6.6-1.g7ed54b1
+- update to 3.6.6, latest git pull
+- add build requirement for older version of yaml-cpp03 for Fedora > 19
+- removed README docs from editors
+
+* Sun Sep 15 2013 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.6.5-1.gc4f595a
+- update to latest git, do proper git release numbering
+
+* Tue Sep 3 2013 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.6.5-1
+- start a build on the arm platform
+- update to latest git
+- add patch for enabling nanosleep (patch2)
+- set SC_WII=OFF as there are problems with uint64_t & friends
+
+* Thu Jun 27 2013 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.6.5-1
+- update to 3.6.5
+
+* Mon Apr 22 2013 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.6.4-1
+- update to 3.6.4
+
+* Tue Mar 12 2013 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.6.3-1
+- update to 3.6.3
+
+* Wed Jan 16 2013 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.6.2-1
+- update to 3.6.2
+- add yaml-cpp-devel build requirement
+- add SCVersion.txt to the install (needed by sc3-plugins)
+
+* Tue Sep 11 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5.5-1
+- update to 3.5.5
+
+* Sun Jul 15 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5.3-2
+- strip weird characters from sc source files, causes problems
+ (apparently) with some locales
+
+* Wed Jun 27 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5.3-1
+- update to 3.5.3
+
+* Tue Jun 26 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5.2-1.fcX.1
+- rebuild for fc14 and gedit2
+
+* Wed May 9 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu>
+- downloaded Dan Stowell's version of Julius Smith's patch, no change in release
+
+* Tue May 8 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5.2-1
+- update to 3.5.2 and latest pv ugens fix by Julius Smith
+
+* Mon May 7 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu>
+- new version of new pv ugens by Julius Smith (no change in release)
+
+* Sat May 5 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5.1-4
+- add new pv ugens by Julius Smith
+
+* Fri May 4 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5.1-3
+- add patch to fix sfft code (Julius Smith)
+
+* Thu Apr 19 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5.1-2
+- add patch to fix qttextview background
+
+* Mon Apr 2 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5.1-1
+- update to 3.5.1
+
+* Tue Mar 20 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5.0-1
+- update to official 3.5.0 release
+- remove the build_supernova flag, always build it
+
+* Sat Mar 17 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20120317
+- updated to current git for latest fixes
+
+* Thu Mar 1 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20120301
+- add perl incantation to fix supernova plugin path for x86_64
+- update to current 3.5 branch git (should be post-rc3)
+
+* Tue Feb 28 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20120228
+- update to current 3.5 git to fix boost asio includes
+- fix file list, gedit-2 no longer there
+- readd libscsynth and libsupercollider_boost_thread libraries, add
+ build define to keep the spec file compatible with git HEAD
+
+* Mon Feb 27 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.rc2
+- updated to 3.5-rc2 (February 20th)
+
+* Tue Feb 14 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20120213
+- update to current git
+- remove supercollider-sclang package and supercollider-libscsynth,
+ these packages were created when sc was not 64 bit compliant so
+ we could install a 32 bit sclang on a 64 bit install
+- merge supernova package into main package, remove boost library from files
+- remove -DSSE42=ON build option (only valid for very new Nehalem processors)
+- remove -DSSE41=ON, roundsd does not work even in a Core Duo processor
+
+* Wed Feb 1 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20120201
+- updated to current git (20120201)
+- libsclang.so* is no longer used, remove from files
+
+* Tue Jan 3 2012 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20111230
+- libQtCollider.so no longer exists, add qt-webkit-devel build requirement
+
+* Fri Dec 30 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20111230
+- update to latest git
+
+* Wed Oct 26 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20111026
+- update to latest git (fix sse initialization)
+
+* Mon Oct 24 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20111024
+- update to latest git fixes
+
+* Fri Oct 21 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20111021
+- update to current supercollider git
+- remove sc3-plugins, SwingOSC and quarks from build, they are now
+ (again) separate packages
+- remove very old obsolete and provides
+
+* Tue Oct 18 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu>
+- tons of changes to the spec file
+
+* Tue Oct 18 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20111018
+- update to latest sc3 and sc3-plugins git (makefile fixes for supernova)
+
+* Sat Oct 15 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu>
+- add git version of sc3-plugins, latest swingosc and latest quarks
+- package cruciallib for Instr and friends (used to be part of the
+ main distribution)
+
+* Fri Oct 14 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.5-0.1.git20111014
+- start packaging current supercollider git for supernova support
+
+* Sat Aug 27 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.4.4-1
+- new build, supercollider > 3.4 does not come with sc3-plugins
+ or swingosc anymore, add those two sources separately as well as
+ svn 2002 of the quark repository
+
+* Tue May 31 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.4-2
+- added -fpermissive workaround for building on fc15/gcc4.6 (SC_Wii.cpp
+ fails to compile). This is of course not a proper fix.
+
+* Sat Jan 8 2011 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.4-2
+- add optimizations to plugins build
+
+* Mon Jul 19 2010 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.4-1
+- add supercollider-3.4-stknamespace.patch for Fedora 13's gcc
+
+* Fri Jul 16 2010 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.4-1
+- update to 3.4, sclang now builds on x86_64
+- add libicu and readline build dependencies (readline test fails
+ due to - probably - a header problem, so comment the test out and
+ assume that readline-devel is installed, patch1)
+- rework stkfloat patch for new version
+
+* Tue Jun 8 2010 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.3.1-5
+- add patch to change MY_FLOAT to StkFloat in stk ugen code, use the
+ external include files for stk. Do not use internal header files anymore.
+
+* Fri May 21 2010 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.3.1-4
+- with newer version of stk in Fedora sc can link dynamically against
+ stk
+
+* Mon Mar 8 2010 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.3.1-4
+- rebuild against newer stk libraries, fails to link at runtime with
+ missing symbols (will try with static stk build)
+
+* Fri Jan 22 2010 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.3.1-3
+- split libscsynth into a separate package so that both 32 and 64 bits
+ versions can be installed in a 64 bit environment (the 32 bit version
+ is needed by the 32 bit sclang binary).
+
+* Tue Jul 21 2009 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.3.1-2
+- add patch2 to deal with breakage in gcc4.4/fc11 in swingosc, see
+ http://www.listarc.bham.ac.uk/lists/sc-dev/msg10558.html
+
+* Sat Jul 4 2009 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu>
+- install to proper lib64 path on x86_64
+- add sc scel code to install, SConstruct fails to install it
+
+* Wed Jul 1 2009 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu>
+- split out language in supercollider-sclang
+- redo all file lists based on manual installs in a mock chroot
+- enable builds on x86_64, the supercollider-sclang will be copied
+ from the i386 build
+
+* Tue Jun 30 2009 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu>
+- split emacs support into separate package
+- added ProcMod.sc patch from Josh for extras
+- create MathLib, AmbIEM, redUniverse, dewdrop_lib packages from
+ quarks source
+
+* Sun Jun 28 2009 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.3.1-1
+- updated to stable 3.3.1 with Extras
+- rework stk.so patch, AY patch included now in source
+- rework scvim and sce idnstall
+
+* Fri Jun 12 2009 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.3-1
+- updated to stable 3.3 with Extras (added Obsoletes/Provides for all
+ sc3 related packages
+- build and install all sc3-plugins, SwingOSC
+- add AY patch PIC to avoid selinux text relocation errors
+
+* Thu Mar 26 2009 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.3-0.rc.svn8982.1
+- testing 3.3.RC svn
+
+* Mon Mar 16 2009 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.3-0.alpha.svn8939.1
+- testing 3.3 alpha, added ruby to build requirements (needed by scvim)
+- disable install of scvim until install target is fixed
+
+* Mon Nov 10 2008 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.2.1-0.svn7903.1
+- add obsoletes/provides for supercollider-beqsuite-ugens
+
+* Sun Nov 9 2008 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.2.1-0.svn7903.1
+- update to current svn
+
+* Wed Apr 16 2008 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.2.1-0.svn7501.4
+- build with JACK_DLL enabled and Wii support on on Fedora >= 7
+ (needs cwiid-devel package)
+
+* Tue Apr 8 2008 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.2.1-0.svn7501.2
+- do not use SC_USE_JACK_CLIENT_NEW which is the default, add patch0
+ to eliminate the code from SC_Jack.cpp (was it truly on? I should
+ double check)
+
+* Sat Apr 5 2008 Fernando Lopez-Lezcano <nando(a)ccrma.stanford.edu> 3.2.1-0.svn7501.1
+- updated to current svn
+- no longer install /etc/sclang.cfg
+- changed version numbering scheme to include the proper version
+- /usr/lib/SuperCollider/plugins/ReverbUGens.so conflicts with the
+ old supercollider-reverb-ugens collection (built from the
+ supercollider-sc3-plugins, also supercollider-ljpc-classes,
+ supercollider-dewdrop, supercollider-josh-ugens
+
+* Fri Feb 1 2008 Arnaud Gomes-do-Vale <Arnaud.Gomes(a)ircam.fr>
+- built on CentOS
+- won't build on x86_64
+
+* Sat Nov 17 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU>
+- installed Headers in the proper location that matches the pkgconfig
+ CFLAGS locations
+
+* Tue Jul 24 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU>
+- updated to svn from 07.07.23
+- added w3m to build and run dependencies
+- "source" directory is now "Source"
+- added emacs readme file as README.emacs
+- fix build on fc7, replace emacs with emacs-22.1
+
+* Tue May 8 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20070219-0.2.5866svn
+- build on fc7, add patch0 to direct X11 path to right location
+
+* Thu Mar 8 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20070219-0.2.5866svn
+- install all source files in the -devel package, some UGens (sc3-plugins)
+ need the full source to build
+
+* Wed Feb 21 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20070219-0.1.5866svn
+- updated to svn 5866
+
+* Fri Jan 19 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20070118-0.2.5811svn
+- added Platform to /etc/sclang.conf (otherwise linux specific classes
+ are not loaded)
+- in fc4 remove URL tag from .pc files, the stock pkgconfig does not like
+ them (later updates do but the build env does not use them)
+- split -devel package, add proper requires (libhowl, avahi)
+
+* Thu Jan 18 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20070118-0.1.5811svn
+- switched to svn, updated to revision 5811
+- added static scsynth.a lib to files list
+
+* Mon Jan 15 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20061127-0.1.cvs
+- added missing libXt-devel dependency in fc5/6
+
+* Thu Jan 11 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20061127-0.5.cvs
+- build on fc5 and fc6, remove howl-devel dependency as howl is no
+ longer being developed or maintained. Replace with Avahi.
+
+* Mon Jan 8 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20061127-0.5.cvs
+- added howl-devel build requirement (erased openmotif-devel)
+- fix removal of CVS directories (a directory with spaces in it was
+ being erased by mistake)
+
+* Thu Jan 4 2007 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20061127-0.4.cvs
+- updated to cvs snapshot 2007.01.04
+- add a line in /etc/sclang.cfg to include ~/.sclang.scel.cfg if exists
+
+* Tue Dec 26 2006 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20061127-0.4.cvs
+- really enable crucial and JITLib (needed \+ instead of just + in
+ perl one-liner)
+
+* Tue Dec 19 2006 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20061127-0.3.cvs
+- install SCComplex.h file, Josh Parmenter's PV needs it (and anything
+ using FFT_UGens.h)
+
+* Mon Dec 18 2006 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20061127-0.2.cvs
+- enabled crucial and JITlib by default in /etc/sclang.conf
+
+* Mon Nov 27 2006 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20061127
+- updated get-cvs script with new urls
+- updated to cvs snapshot dated 20061127.105006
+
+* Thu Jan 5 2006 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20060105
+- updated to cvs snapshot 2006.01.05
+
+* Fri Jul 15 2005 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU>
+- added fc4/gcc4 patch posted by Russell Johnston
+
+* Thu Jul 14 2005 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20050714
+- updated to today's cvs
+- add scons DEVELOPMENT option to get all the devel files built and
+ installed
+
+* Thu Jun 30 2005 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20050630
+- updated to cvs snapshot 2005.06.30
+- build is now scons based
+- added patch for gcc4 build
+
+* Thu May 5 2005 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20050505
+- updated to cvs snapshot 2005.05.05
+- added howl-devel build requirement on fc3
+- create proper configuration file
+- do not add ~/supercollider directory, users will need to create the
+ proper subdirectories in the current directory before starting sclang
+
+* Sun Oct 3 2004 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20040930
+- tried to --enable-lid but compile fails
+
+* Thu Sep 30 2004 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 0.0.20040930
+- cvs: 2004/09/30
+- added patch to configure to add X11 library path search
+
+* Fri Aug 13 2004 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 2004.08.13-1
+- downloaded new cvs snapshot
+- many changes to spec file
+- add .so.0 links for sclang and scsynth shared libraries
+
+* Wed Jan 21 2004 Fernando Lopez-Lezcano <nando(a)ccrma.Stanford.EDU> 3.0-1.cvs
+- Initial build.
+- installs a /root/.sclang.cfg??
4 years
Architecture specific change in rpms/ceph.git
by githook-noreply@fedoraproject.org
The package rpms/ceph.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/ceph.git/commit/?id=de4da99414a1b....
Change:
-%ifarch x86_64
Thanks.
Full change:
============
commit de4da99414a1bda4f2ec6ec65832a6277e5eae8c
Author: Kaleb S. KEITHLEY <kkeithle(a)redhat.com>
Date: Tue Mar 3 09:38:35 2020 -0500
ceph 14.2.8 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle(a)redhat.com>
diff --git a/0005-mount.ceph-remove-arbitrary-limit-on-size-of-name-op.patch b/0005-mount.ceph-remove-arbitrary-limit-on-size-of-name-op.patch
deleted file mode 100644
index 3d951ea..0000000
--- a/0005-mount.ceph-remove-arbitrary-limit-on-size-of-name-op.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 8db2a44c9438749be98d41fb309f10d5084805df Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton(a)redhat.com>
-Date: Fri, 17 Jan 2020 07:48:12 -0500
-Subject: [PATCH] mount.ceph: remove arbitrary limit on size of name= option
-
-Aaron was getting back -ERANGE errors when trying to mount using
-a long name= option. The issue is that the destination buffer for the
-"key=" string is not big enough to hold long names.
-
-When I overhauled the mount.ceph code recently, I made this buffer much
-smaller than before figuring that it didn't need to be any larger than
-the length of "secret=<base64 encoded key>".
-
-In the case where the secret is set in the keyring though, this buffer
-needs to be able to hold a string like "key=client.<cephx name>". The
-cephx name can be of arbitrary length, however.
-
-Rework the code to just safe_cat the strings directly into the options
-buffer, eliminating an extra copy and the need for an arbitrary limit.
-This also allows us to remove get_secret_option() from the the common
-code as well.
-
-Fixes: https://tracker.ceph.com/issues/43649
-Reported-by: Aaron <aarongmldt(a)gmail.com>
-Signed-off-by: Jeff Layton <jlayton(a)redhat.com>
----
- src/common/secret.h | 7 ------
- src/mount/mount.ceph.c | 45 ++++++++++++++++++++++++-------------
- src/mount/mount.ceph.h | 3 ---
- 4 files changed, 30 insertions(+), 75 deletions(-)
-
-diff --git a/src/common/secret.h b/src/common/secret.h
-index b681fa1ec7..5d2ad179dd 100644
---- a/src/common/secret.h
-+++ b/src/common/secret.h
-@@ -7,13 +7,6 @@ extern "C" {
-
- int read_secret_from_file(const char *filename, char *secret, size_t max_len);
-
--/*
-- * Attempts to add the secret to the kernel, but falls back to
-- * the old secret= option if the kernel is too old.
-- */
--int get_secret_option(const char *secret, const char *key_name,
-- char *secret_option, size_t secret_option_len);
--
- int set_kernel_secret(const char *secret, const char *key_name);
-
- int is_kernel_secret(const char *key_name);
-diff --git a/src/mount/mount.ceph.c b/src/mount/mount.ceph.c
-index e970648c59..133bc554f5 100644
---- a/src/mount/mount.ceph.c
-+++ b/src/mount/mount.ceph.c
-@@ -425,24 +425,39 @@ static void ceph_mount_info_free(struct ceph_mount_info *cmi)
- free(cmi->cmi_conf);
- }
-
--static int finalize_options(struct ceph_mount_info *cmi)
-+static int append_key_or_secret_option(struct ceph_mount_info *cmi)
- {
-- int pos;
-+ int pos = strlen(cmi->cmi_opts);
-
-- if (cmi->cmi_secret[0] || is_kernel_secret(cmi->cmi_name)) {
-- int ret;
-- char secret_option[SECRET_OPTION_BUFSIZE];
-+ if (!cmi->cmi_secret[0] && !is_kernel_secret(cmi->cmi_name))
-+ return 0;
-
-- ret = get_secret_option(cmi->cmi_secret, cmi->cmi_name,
-- secret_option, sizeof(secret_option));
-- if (ret < 0)
-+ if (pos)
-+ pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, ",");
-+
-+ /* when parsing kernel options (-o remount) we get '<hidden>' as the secret */
-+ if (cmi->cmi_secret[0] && (strcmp(cmi->cmi_secret, "<hidden>") != 0)) {
-+ int ret = set_kernel_secret(cmi->cmi_secret, cmi->cmi_name);
-+ if (ret < 0) {
-+ if (ret == -ENODEV || ret == -ENOSYS) {
-+ /* old kernel; fall back to secret= in options */
-+ pos = safe_cat(&cmi->cmi_opts,
-+ &cmi->cmi_opts_len, pos,
-+ "secret=");
-+ pos = safe_cat(&cmi->cmi_opts,
-+ &cmi->cmi_opts_len, pos,
-+ cmi->cmi_secret);
-+ return 0;
-+ }
-+ fprintf(stderr, "adding ceph secret key to kernel failed: %s\n",
-+ strerror(-ret));
- return ret;
--
-- pos = strlen(cmi->cmi_opts);
-- if (pos)
-- pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, ",");
-- pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, secret_option);
-+ }
- }
-+
-+ pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, "key=");
-+ pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, cmi->cmi_name);
-+
- return 0;
- }
-
-@@ -493,9 +508,9 @@ int main(int argc, char *argv[])
- /* Ensure the ceph key_type is available */
- modprobe();
-
-- retval = finalize_options(&cmi);
-+ retval = append_key_or_secret_option(&cmi);
- if (retval) {
-- fprintf(stderr, "couldn't finalize options: %d\n", retval);
-+ fprintf(stderr, "couldn't append secret option: %d\n", retval);
- retval = EX_USAGE;
- goto out;
- }
-diff --git a/src/mount/mount.ceph.h b/src/mount/mount.ceph.h
-index c563597c43..b61176923d 100644
---- a/src/mount/mount.ceph.h
-+++ b/src/mount/mount.ceph.h
-@@ -21,9 +21,6 @@ extern "C" {
- /* Max Including null terminator */
- #define SECRET_BUFSIZE (MAX_SECRET_LEN + 1)
-
--/* Buffer size for secret= option */
--#define SECRET_OPTION_BUFSIZE (sizeof("secret=") + MAX_SECRET_LEN + 1)
--
- /* 2k should be enough for anyone? */
- #define MON_LIST_BUFSIZE 2048
-
---
-2.24.1
-
diff --git a/ceph.spec b/ceph.spec
index 8301f46..8002d20 100644
--- a/ceph.spec
+++ b/ceph.spec
@@ -108,8 +108,8 @@
# main package definition
#################################################################################
Name: ceph
-Version: 14.2.7
-Release: 2%{?dist}
+Version: 14.2.8
+Release: 1%{?dist}
%if 0%{?fedora} || 0%{?rhel}
Epoch: 2
%endif
@@ -128,7 +128,6 @@ Source0: %{?_remote_tarball_prefix}ceph-%{version}.tar.gz
Patch002: 0002-src-common-CMakeLists.txt.patch
Patch003: 0003-src-common-bitstr.h.patch
Patch004: 0004-src-librbd-api-PoolMetadata.h.patch
-Patch005: 0005-mount.ceph-remove-arbitrary-limit-on-size-of-name-op.patch
# ceph 14.0.1 does not support 32-bit architectures, bugs #1727788, #1727787
ExcludeArch: i686 armv7hl
#################################################################################
@@ -158,12 +157,8 @@ BuildRequires: fuse-devel
%if 0%{?rhel} == 7
# devtoolset offers newer make and valgrind-devel, but the old ones are good
# enough.
-%ifarch x86_64
BuildRequires: devtoolset-8-gcc-c++ >= 8.2.1
%else
-BuildRequires: devtoolset-7-gcc-c++ >= 7.3.1-5.13
-%endif
-%else
BuildRequires: gcc-c++
%endif
BuildRequires: gdbm
@@ -296,6 +291,7 @@ BuildRequires: python%{_python_buildid}-PyJWT
BuildRequires: python%{_python_buildid}-Routes
BuildRequires: python%{_python_buildid}-Werkzeug
BuildRequires: python%{_python_buildid}-numpy-devel
+BuildRequires: rpmbuild
BuildRequires: xmlsec1-devel
%endif
%endif
@@ -1544,6 +1540,7 @@ fi
%files mgr
%{_bindir}/ceph-mgr
%dir %{_datadir}/ceph/mgr
+%{_datadir}/ceph/mgr/alerts
%{_datadir}/ceph/mgr/ansible
%{_datadir}/ceph/mgr/balancer
%{_datadir}/ceph/mgr/crash
@@ -2268,6 +2265,9 @@ exit 0
%endif
%changelog
+* Tue Mar 3 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:14.2.8-1
+- ceph 14.2.8 GA
+
* Mon Feb 3 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:14.2.7-2
- ceph 14.2.7 python3-remoto #1784216
diff --git a/sources b/sources
index d574db2..eb20e86 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (ceph-14.2.7.tar.gz) = 59f475e56053ba5e7e3a482a3a91b4d44272e6ec8051b92783de76c09c0d967a7ef76676db998968a709e48f08e90828dd8f86bd96a7c3fd111d48bfb7fd93b1
+SHA512 (ceph-14.2.8.tar.gz) = 38b0c6df58579377528c8f8e06d0cbc40f471f6eb2fb4a05b395f6fddbd3f2117674545b2147d8730973b01967ddcd4322a769ba03f9c625417ed35cc39f195a
4 years
Architecture specific change in rpms/rust-humantime1.git
by githook-noreply@fedoraproject.org
The package rpms/rust-humantime1.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-humantime1.git/commit/?id=d3....
Change:
+ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit d3fd3bc6a3fa13014b05f51be3e1e4f27b757916
Author: Igor Raits <ignatenkobrain(a)fedoraproject.org>
Date: Tue Mar 3 15:34:11 2020 +0100
Initial import
Signed-off-by: Igor Raits <ignatenkobrain(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a11d51a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/humantime-1.3.0.crate
diff --git a/rust-humantime1.spec b/rust-humantime1.spec
new file mode 100644
index 0000000..e0e9794
--- /dev/null
+++ b/rust-humantime1.spec
@@ -0,0 +1,75 @@
+# Generated by rust2rpm 13
+%bcond_with check
+%global debug_package %{nil}
+
+%global crate humantime
+
+Name: rust-%{crate}1
+Version: 1.3.0
+Release: 1%{?dist}
+Summary: Parser and formatter for std::time::{Duration, SystemTime}
+
+# Upstream license specification: MIT/Apache-2.0
+License: MIT or ASL 2.0
+URL: https://crates.io/crates/humantime
+Source: %{crates_source}
+
+ExclusiveArch: %{rust_arches}
+%if %{__cargo_skip_build}
+BuildArch: noarch
+%endif
+
+BuildRequires: rust-packaging
+
+%global _description %{expand:
+Parser and formatter for std::time::{Duration, SystemTime}.}
+
+%description %{_description}
+
+%package devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description devel %{_description}
+
+This package contains library source intended for building other packages
+which use "%{crate}" crate.
+
+%files devel
+%license LICENSE-MIT LICENSE-APACHE
+%doc README.md
+%{cargo_registry}/%{crate}-%{version_no_tilde}/
+
+%package -n %{name}+default-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n %{name}+default-devel %{_description}
+
+This package contains library source intended for building other packages
+which use "default" feature of "%{crate}" crate.
+
+%files -n %{name}+default-devel
+%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+
+%prep
+%autosetup -n %{crate}-%{version_no_tilde} -p1
+%cargo_prep
+
+%generate_buildrequires
+%cargo_generate_buildrequires
+
+%build
+%cargo_build
+
+%install
+%cargo_install
+
+%if %{with check}
+%check
+%cargo_test
+%endif
+
+%changelog
+* Tue Mar 03 15:33:46 CET 2020 Igor Raits <ignatenkobrain(a)fedoraproject.org> - 1.3.0-1
+- Initial package
diff --git a/sources b/sources
new file mode 100644
index 0000000..0855b89
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (humantime-1.3.0.crate) = 2589bfdac96108951882b7ee497528b9084ddd344a67914810ea9961a1e319167d5cab959c66cbb26e398e75ca50d488a251694fff35f3c2f69a88b6f22844da
4 years
Architecture specific change in rpms/gdal.git
by githook-noreply@fedoraproject.org
The package rpms/gdal.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/gdal.git/commit/?id=d89196fcc80b7....
Change:
-%ifarch sparcv9 sparc64 s390 s390x
Thanks.
Full change:
============
commit d89196fcc80b735a9f11f76c5059dc969981b6bf
Author: Sandro Mani <manisandro(a)gmail.com>
Date: Tue Mar 3 15:20:35 2020 +0100
Update to 3.0.4
diff --git a/gdal-1.9.0-java.patch b/gdal-1.9.0-java.patch
index 289ca0d..b0f1871 100644
--- a/gdal-1.9.0-java.patch
+++ b/gdal-1.9.0-java.patch
@@ -1,7 +1,6 @@
-Index: gdal-2.2.3-fedora/swig/java/java.opt
-===================================================================
---- gdal-2.2.3-fedora.orig/swig/java/java.opt
-+++ gdal-2.2.3-fedora/swig/java/java.opt
+diff -rupN --no-dereference gdal-3.0.4-fedora/swig/java/java.opt gdal-3.0.4-fedora-new/swig/java/java.opt
+--- gdal-3.0.4-fedora/swig/java/java.opt 2020-01-28 11:13:12.000000000 +0100
++++ gdal-3.0.4-fedora-new/swig/java/java.opt 2020-02-06 00:23:36.321286290 +0100
@@ -7,6 +7,6 @@ JAVADOC=$(JAVA_HOME)/bin/javadoc
JAVAC=$(JAVA_HOME)/bin/javac
JAVA=$(JAVA_HOME)/bin/java
diff --git a/gdal-2.3.0-zlib.patch b/gdal-2.3.0-zlib.patch
deleted file mode 100644
index a830193..0000000
--- a/gdal-2.3.0-zlib.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/frmts/mrf/mrf_band.cpp b/frmts/mrf/mrf_band.cpp
-index d5b3403..0772ec8 100644
---- a/frmts/mrf/mrf_band.cpp
-+++ b/frmts/mrf/mrf_band.cpp
-@@ -49,7 +49,7 @@
-
- #include <vector>
- #include <assert.h>
--#include "../zlib/zlib.h"
-+#include <zlib.h>
-
- CPL_CVSID("$Id: mrf_band.cpp 7e07230bbff24eb333608de4dbd460b7312839d0 2017-12-11 19:08:47Z Even Rouault $")
-
diff --git a/gdal-2.3.1-perl-build.patch b/gdal-2.3.1-perl-build.patch
deleted file mode 100644
index 1704dcc..0000000
--- a/gdal-2.3.1-perl-build.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 33beac3add11101ba09b3261adcd3375f87b51dd Mon Sep 17 00:00:00 2001
-From: Pavel Raiskup <praiskup(a)redhat.com>
-Date: Tue, 21 Aug 2018 12:58:49 +0200
-Subject: [PATCH] swig-perl: fix make dep graph
-
-Makefile_Geo__GDAL must depend on Makefile.PL, instead of
-non-existing gdal_wrap.cc (otherwise the module rebuilds on every
-make hit).
-
-Upstream proposal:
-https://github.com/OSGeo/gdal/pull/876
-
-Also the 'generate' target should be .PHONY.
----
- gdal/swig/perl/GNUmakefile | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/swig/perl/GNUmakefile b/swig/perl/GNUmakefile
-index 68d389d..2dfd533 100644
---- a/swig/perl/GNUmakefile
-+++ b/swig/perl/GNUmakefile
-@@ -20,16 +20,14 @@ generate: ${WRAPPERS}
- if [ -f OSR.pm ]; then mv OSR.pm lib/Geo; fi
- if [ -f GNM.pm ]; then mv GNM.pm lib/Geo; fi
-
--build: gdal_wrap.cc Makefile_Geo__GDAL
-+build: Makefile_Geo__GDAL
- $(MAKE) -f Makefile_Geo__GDAL
- $(MAKE) -f Makefile_Geo__GDAL__Const
- $(MAKE) -f Makefile_Geo__OSR
- if [ -f Makefile_Geo__OGR ]; then $(MAKE) -f Makefile_Geo__OGR; fi
- if [ -f Makefile_Geo__GNM ]; then $(MAKE) -f Makefile_Geo__GNM; fi
-
--gdal_wrap.cc: generate
--
--Makefile_Geo__GDAL: gdal_wrap.cc
-+Makefile_Geo__GDAL: Makefile.PL
- perl Makefile.PL INSTALL_BASE=$(INST_PREFIX)
-
- test: build
-@@ -66,3 +64,5 @@ doc: .FORCE
-
- .FORCE:
- perl parse-for-doxygen.pl > all.pm; doxygen; rm -f all.pm
-+
-+.PHONY: generate
diff --git a/gdal-2.3.2-poppler-0.73.0.patch b/gdal-2.3.2-poppler-0.73.0.patch
deleted file mode 100644
index ba046bd..0000000
--- a/gdal-2.3.2-poppler-0.73.0.patch
+++ /dev/null
@@ -1,314 +0,0 @@
---- gdal-2.3.2-fedora/frmts/pdf/pdfdataset.cpp
-+++ gdal-2.3.2-fedora/frmts/pdf/pdfdataset.cpp
-@@ -165,7 +165,7 @@ class GDALPDFOutputDev : public SplashOu
-
- public:
- GDALPDFOutputDev(SplashColorMode colorModeA, int bitmapRowPadA,
-- GBool reverseVideoA, SplashColorPtr paperColorA) :
-+ bool reverseVideoA, SplashColorPtr paperColorA) :
- SplashOutputDev(colorModeA, bitmapRowPadA,
- reverseVideoA, paperColorA),
- bEnableVector(TRUE),
-@@ -227,11 +227,11 @@ class GDALPDFOutputDev : public SplashOu
- }
-
- #ifndef POPPLER_0_23_OR_LATER
-- virtual GBool deviceHasTextClip(GfxState *state) override
-+ virtual bool deviceHasTextClip(GfxState *state) override
- {
- if (bEnableText)
- return SplashOutputDev::deviceHasTextClip(state);
-- return gFalse;
-+ return false;
- }
- #endif
-
-@@ -242,8 +242,8 @@ class GDALPDFOutputDev : public SplashOu
- }
-
- virtual void drawImageMask(GfxState *state, Object *ref, Stream *str,
-- int width, int height, GBool invert,
-- GBool interpolate, GBool inlineImg) override
-+ int width, int height, bool invert,
-+ bool interpolate, bool inlineImg) override
- {
- if (bEnableBitmap)
- SplashOutputDev::drawImageMask(state, ref, str,
-@@ -263,8 +263,8 @@ class GDALPDFOutputDev : public SplashOu
- #ifdef POPPLER_0_20_OR_LATER
- virtual void setSoftMaskFromImageMask(GfxState *state,
- Object *ref, Stream *str,
-- int width, int height, GBool invert,
-- GBool inlineImg, double *baseMatrix) override
-+ int width, int height, bool invert,
-+ bool inlineImg, double *baseMatrix) override
- {
- if (bEnableBitmap)
- SplashOutputDev::setSoftMaskFromImageMask(state, ref, str,
-@@ -283,7 +283,7 @@ class GDALPDFOutputDev : public SplashOu
-
- virtual void drawImage(GfxState *state, Object *ref, Stream *str,
- int width, int height, GfxImageColorMap *colorMap,
-- GBool interpolate, int *maskColors, GBool inlineImg) override
-+ bool interpolate, int *maskColors, bool inlineImg) override
- {
- if (bEnableBitmap)
- SplashOutputDev::drawImage(state, ref, str,
-@@ -305,9 +305,9 @@ class GDALPDFOutputDev : public SplashOu
- virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str,
- int width, int height,
- GfxImageColorMap *colorMap,
-- GBool interpolate,
-+ bool interpolate,
- Stream *maskStr, int maskWidth, int maskHeight,
-- GBool maskInvert, GBool maskInterpolate) override
-+ bool maskInvert, bool maskInterpolate) override
- {
- if (bEnableBitmap)
- SplashOutputDev::drawMaskedImage(state, ref, str,
-@@ -322,11 +322,11 @@ class GDALPDFOutputDev : public SplashOu
- virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str,
- int width, int height,
- GfxImageColorMap *colorMap,
-- GBool interpolate,
-+ bool interpolate,
- Stream *maskStr,
- int maskWidth, int maskHeight,
- GfxImageColorMap *maskColorMap,
-- GBool maskInterpolate) override
-+ bool maskInterpolate) override
- {
- if (bEnableBitmap)
- {
-@@ -1728,7 +1728,7 @@ CPLErr PDFDataset::ReadPixels( int nReqX
- GDALPDFOutputDev *poSplashOut =
- new GDALPDFOutputDev(
- (nBands < 4) ? splashModeRGB8 : splashModeXBGR8,
-- 4, gFalse,
-+ 4, false,
- (nBands < 4) ? sColor : nullptr);
-
- if (pszRenderingOptions != nullptr)
-@@ -1780,7 +1780,7 @@ CPLErr PDFDataset::ReadPixels( int nReqX
- iPage,
- dfDPI, dfDPI,
- 0,
-- TRUE, gFalse, gFalse,
-+ TRUE, false, false,
- nReqXOff, nReqYOff,
- nReqXSize, nReqYSize);
-
-@@ -2599,7 +2599,7 @@ static void PDFDatasetErrorFunction(CPL_
- #else
- int nPos,
- #endif
-- char *pszMsg)
-+ const char *pszMsg)
- {
- CPLString osError;
-
-@@ -3440,16 +3440,15 @@ void PDFDataset::FindLayersPoppler()
- }
- else
- {
-- GooList* ocgList = optContentConfig->getOCGs();
-- for(int i=0;i<ocgList->getLength();i++)
-- {
-- OptionalContentGroup* ocg = (OptionalContentGroup*) ocgList->get(i);
-- if( ocg != nullptr && ocg->getName() != nullptr )
-- {
-- const char* pszLayerName = (const char*)ocg->getName()->getCString();
-- AddLayer(pszLayerName);
-- oLayerOCGMapPoppler[pszLayerName] = ocg;
-- }
-+ const auto &ocgList = optContentConfig->getOCGs();
-+ for (const auto &oc : ocgList) {
-+ OptionalContentGroup* ocg = (OptionalContentGroup*) oc.second.get();
-+ if( ocg != nullptr && ocg->getName() != nullptr )
-+ {
-+ const char* pszLayerName = (const char*)ocg->getName()->c_str();
-+ AddLayer(pszLayerName);
-+ oLayerOCGMapPoppler[pszLayerName] = ocg;
-+ }
- }
- }
-
-@@ -3472,11 +3471,10 @@ void PDFDataset::TurnLayersOnOffPoppler(
- {
- int i;
- int bAll = EQUAL(pszLayers, "ALL");
-- GooList* ocgList = optContentConfig->getOCGs();
-- for(i=0;i<ocgList->getLength();i++)
-- {
-- OptionalContentGroup* ocg = (OptionalContentGroup*) ocgList->get(i);
-- ocg->setState( (bAll) ? OptionalContentGroup::On : OptionalContentGroup::Off );
-+ const auto &ocgList = optContentConfig->getOCGs();
-+ for (const auto &oc : ocgList) {
-+ OptionalContentGroup* ocg = (OptionalContentGroup*) oc.second.get();
-+ ocg->setState( (bAll) ? OptionalContentGroup::On : OptionalContentGroup::Off );
- }
-
- char** papszLayers = CSLTokenizeString2(pszLayers, ",", 0);
-@@ -4430,7 +4428,7 @@ GDALDataset *PDFDataset::Open( GDALOpenI
- #ifdef HAVE_POPPLER
- if (bUseLib.test(PDFLIB_POPPLER))
- {
-- PDFRectangle* psMediaBox = poPagePoppler->getMediaBox();
-+ const PDFRectangle* psMediaBox = poPagePoppler->getMediaBox();
- dfX1 = psMediaBox->x1;
- dfY1 = psMediaBox->y1;
- dfX2 = psMediaBox->x2;
-@@ -4768,12 +4766,12 @@ GDALDataset *PDFDataset::Open( GDALOpenI
- GooString* poMetadata = poCatalogPoppler->readMetadata();
- if (poMetadata)
- {
-- char* pszContent = poMetadata->getCString();
-+ const char* pszContent = poMetadata->c_str();
- if (pszContent != nullptr &&
- STARTS_WITH(pszContent, "<?xpacket begin="))
- {
- char *apszMDList[2];
-- apszMDList[0] = pszContent;
-+ apszMDList[0] = (char *) pszContent;
- apszMDList[1] = nullptr;
- poDS->SetMetadata(apszMDList, "xml:XMP");
- }
---- gdal-2.3.2-fedora/frmts/pdf/pdfio.cpp
-+++ gdal-2.3.2-fedora/frmts/pdf/pdfio.cpp
-@@ -66,7 +66,7 @@ VSIPDFFileStream::VSIPDFFileStream(
- poFilename(new GooString(pszFilename)),
- f(fIn),
- nStart(0),
-- bLimited(gFalse),
-+ bLimited(false),
- nLength(0),
- nCurrentPos(VSI_L_OFFSET_MAX),
- bHasSavedPos(FALSE),
-@@ -80,7 +80,7 @@ VSIPDFFileStream::VSIPDFFileStream(
- /************************************************************************/
-
- VSIPDFFileStream::VSIPDFFileStream( VSIPDFFileStream* poParentIn,
-- vsi_l_offset startA, GBool limitedA,
-+ vsi_l_offset startA, bool limitedA,
- vsi_l_offset lengthA,
- makeSubStream_object_type dictA) :
- #ifdef POPPLER_0_58_OR_LATER
-@@ -139,7 +139,7 @@ BaseStream* VSIPDFFileStream::copy()
- /************************************************************************/
- /* makeSubStream() */
- /************************************************************************/
--Stream *VSIPDFFileStream::makeSubStream(makeSubStream_offset_type startA, GBool limitedA,
-+Stream *VSIPDFFileStream::makeSubStream(makeSubStream_offset_type startA, bool limitedA,
- makeSubStream_offset_type lengthA, makeSubStream_object_type dictA)
- {
- #ifdef POPPLER_0_58_OR_LATER
-@@ -346,7 +346,7 @@ void VSIPDFFileStream::setPos(setPos_off
- }
- else
- {
-- if (bLimited == gFalse)
-+ if (bLimited == false)
- {
- VSIFSeekL(f, 0, SEEK_END);
- }
-@@ -380,7 +380,7 @@ void VSIPDFFileStream::moveStart(moveSta
- /* hasGetChars() */
- /************************************************************************/
-
--GBool VSIPDFFileStream::hasGetChars()
-+bool VSIPDFFileStream::hasGetChars()
- {
- return true;
- }
-@@ -389,7 +389,7 @@ GBool VSIPDFFileStream::hasGetChars()
- /* getChars() */
- /************************************************************************/
-
--int VSIPDFFileStream::getChars(int nChars, Guchar *buffer)
-+int VSIPDFFileStream::getChars(int nChars, unsigned char *buffer)
- {
- int nRead = 0;
- while (nRead < nChars)
---- gdal-2.3.2-fedora/frmts/pdf/pdfio.h
-+++ gdal-2.3.2-fedora/frmts/pdf/pdfio.h
-@@ -46,9 +46,9 @@
- #define moveStart_delta_type Goffset
- #else
- #define getPos_ret_type int
--#define getStart_ret_type Guint
--#define makeSubStream_offset_type Guint
--#define setPos_offset_type Guint
-+#define getStart_ret_type unsigned int
-+#define makeSubStream_offset_type unsigned int
-+#define setPos_offset_type unsigned int
- #define moveStart_delta_type int
- #endif
-
-@@ -64,7 +64,7 @@ class VSIPDFFileStream: public BaseStrea
- VSIPDFFileStream(VSILFILE* f, const char* pszFilename,
- makeSubStream_object_type dictA);
- VSIPDFFileStream(VSIPDFFileStream* poParent,
-- vsi_l_offset startA, GBool limitedA,
-+ vsi_l_offset startA, bool limitedA,
- vsi_l_offset lengthA,
- makeSubStream_object_type dictA);
- virtual ~VSIPDFFileStream();
-@@ -73,7 +73,7 @@ class VSIPDFFileStream: public BaseStrea
- virtual BaseStream* copy() override;
- #endif
-
-- virtual Stream * makeSubStream(makeSubStream_offset_type startA, GBool limitedA,
-+ virtual Stream * makeSubStream(makeSubStream_offset_type startA, bool limitedA,
- makeSubStream_offset_type lengthA, makeSubStream_object_type dictA) override;
- virtual getPos_ret_type getPos() override;
- virtual getStart_ret_type getStart() override;
-@@ -99,8 +99,8 @@ class VSIPDFFileStream: public BaseStrea
- * This test will be wrong for poppler 0.15 or 0.16,
- * but will still compile correctly.
- */
-- virtual GBool hasGetChars() override;
-- virtual int getChars(int nChars, Guchar *buffer) override;
-+ virtual bool hasGetChars() override;
-+ virtual int getChars(int nChars, unsigned char *buffer) override;
- #else
- virtual GBool hasGetChars() ;
- virtual int getChars(int nChars, Guchar *buffer) ;
-@@ -110,7 +110,7 @@ class VSIPDFFileStream: public BaseStrea
- GooString *poFilename;
- VSILFILE *f;
- vsi_l_offset nStart;
-- GBool bLimited;
-+ bool bLimited;
- vsi_l_offset nLength;
-
- vsi_l_offset nCurrentPos;
---- gdal-2.3.2-fedora/frmts/pdf/pdfobject.cpp
-+++ gdal-2.3.2-fedora/frmts/pdf/pdfobject.cpp
-@@ -1061,7 +1061,7 @@ const CPLString& GDALPDFObjectPoppler::G
- #else
- GooString* gooString = m_po->getString();
- #endif
-- return (osStr = GDALPDFGetUTF8StringFromBytes(reinterpret_cast<const GByte*>(gooString->getCString()),
-+ return (osStr = GDALPDFGetUTF8StringFromBytes(reinterpret_cast<const GByte*>(gooString->c_str()),
- static_cast<int>(gooString->getLength())));
- }
- else
-@@ -1422,7 +1422,7 @@ char* GDALPDFStreamPoppler::GetBytes()
- char* pszContent = (char*) VSIMalloc(m_nLength + 1);
- if (pszContent)
- {
-- memcpy(pszContent, gstr->getCString(), m_nLength);
-+ memcpy(pszContent, gstr->c_str(), m_nLength);
- pszContent[m_nLength] = '\0';
- }
- delete gstr;
---- gdal-2.3.2-fedora/frmts/pdf/pdfsdk_headers.h
-+++ gdal-2.3.2-fedora/frmts/pdf/pdfsdk_headers.h
-@@ -50,7 +50,6 @@
- #pragma warning( disable : 4244 ) /* conversion from 'const int' to 'Guchar', possible loss of data */
- #endif
-
--#include <goo/gtypes.h>
- #include <goo/GooList.h>
-
- /* begin of poppler xpdf includes */
diff --git a/gdal-2.3.2-poppler-0.76.0.patch b/gdal-2.3.2-poppler-0.76.0.patch
deleted file mode 100644
index 74144da..0000000
--- a/gdal-2.3.2-poppler-0.76.0.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-diff -up ./frmts/pdf/pdfdataset.cpp.poppler-0.76.0 ./frmts/pdf/pdfdataset.cpp
---- ./frmts/pdf/pdfdataset.cpp.poppler-0.76.0 2020-01-18 12:42:15.887861696 -0500
-+++ ./frmts/pdf/pdfdataset.cpp 2020-01-18 12:48:22.515663567 -0500
-@@ -212,7 +212,7 @@ class GDALPDFOutputDev : public SplashOu
- virtual void drawChar(GfxState *state, double x, double y,
- double dx, double dy,
- double originX, double originY,
-- CharCode code, int nBytes, Unicode *u, int uLen) override
-+ CharCode code, int nBytes, const Unicode *u, int uLen) override
- {
- if (bEnableText)
- SplashOutputDev::drawChar(state, x, y, dx, dy,
-@@ -283,7 +283,7 @@ class GDALPDFOutputDev : public SplashOu
-
- virtual void drawImage(GfxState *state, Object *ref, Stream *str,
- int width, int height, GfxImageColorMap *colorMap,
-- bool interpolate, int *maskColors, bool inlineImg) override
-+ bool interpolate, const int *maskColors, bool inlineImg) override
- {
- if (bEnableBitmap)
- SplashOutputDev::drawImage(state, ref, str,
-@@ -4071,7 +4071,7 @@ GDALDataset *PDFDataset::Open( GDALOpenI
- CPLMutexHolderD(&hGlobalParamsMutex);
- /* poppler global variable */
- if (globalParams == nullptr)
-- globalParams = new GlobalParams();
-+ globalParams.reset(new GlobalParams());
-
- globalParams->setPrintCommands(CPLTestBool(
- CPLGetConfigOption("GDAL_PDF_PRINT_COMMANDS", "FALSE")));
-diff -up ./frmts/pdf/pdfio.cpp.poppler-0.76.0 ./frmts/pdf/pdfio.cpp
---- ./frmts/pdf/pdfio.cpp.poppler-0.76.0 2020-01-18 11:38:59.373535988 -0500
-+++ ./frmts/pdf/pdfio.cpp 2020-01-18 11:38:59.375536039 -0500
-@@ -175,7 +175,7 @@ getStart_ret_type VSIPDFFileStream::getS
- /* getKind() */
- /************************************************************************/
-
--StreamKind VSIPDFFileStream::getKind()
-+StreamKind VSIPDFFileStream::getKind() const
- {
- return strFile;
- }
-diff -up ./frmts/pdf/pdfio.h.poppler-0.76.0 ./frmts/pdf/pdfio.h
---- ./frmts/pdf/pdfio.h.poppler-0.76.0 2020-01-18 11:38:59.373535988 -0500
-+++ ./frmts/pdf/pdfio.h 2020-01-18 11:38:59.375536039 -0500
-@@ -81,7 +81,7 @@ class VSIPDFFileStream: public BaseStrea
- virtual void setPos(setPos_offset_type pos, int dir = 0) override;
- virtual void moveStart(moveStart_delta_type delta) override;
-
-- virtual StreamKind getKind() override;
-+ virtual StreamKind getKind() const override;
- virtual GooString *getFileName() override;
-
- virtual int getChar() override;
-diff -up ./frmts/pdf/pdfobject.cpp.poppler-0.76.0 ./frmts/pdf/pdfobject.cpp
---- ./frmts/pdf/pdfobject.cpp.poppler-0.76.0 2020-01-18 13:11:46.693450692 -0500
-+++ ./frmts/pdf/pdfobject.cpp 2020-01-18 13:25:51.256924278 -0500
-@@ -1190,7 +1190,7 @@ GDALPDFObject* GDALPDFDictionaryPoppler:
- return oIter->second;
-
- #ifdef POPPLER_0_58_OR_LATER
-- Object o = m_poDict->lookupNF(((char*)pszKey));
-+ auto&& o(m_poDict->lookupNF(((char*)pszKey)));
- if (!o.isNull())
- {
- int nRefNum = 0;
-@@ -1210,7 +1210,7 @@ GDALPDFObject* GDALPDFDictionaryPoppler:
- }
- else
- {
-- GDALPDFObjectPoppler* poObj = new GDALPDFObjectPoppler(new Object(std::move(o)), TRUE);
-+ GDALPDFObjectPoppler* poObj = new GDALPDFObjectPoppler(new Object(o.copy()), TRUE);
- poObj->SetRefNumAndGen(nRefNum, nRefGen);
- m_map[pszKey] = poObj;
- return poObj;
-@@ -1324,7 +1324,7 @@ GDALPDFObject* GDALPDFArrayPoppler::Get(
- return m_v[nIndex];
-
- #ifdef POPPLER_0_58_OR_LATER
-- Object o = m_poArray->getNF(nIndex);
-+ auto&& o(m_poArray->getNF(nIndex));
- if( !o.isNull() )
- {
- int nRefNum = 0;
-@@ -1344,7 +1344,7 @@ GDALPDFObject* GDALPDFArrayPoppler::Get(
- }
- else
- {
-- GDALPDFObjectPoppler* poObj = new GDALPDFObjectPoppler(new Object(std::move(o)), TRUE);
-+ GDALPDFObjectPoppler* poObj = new GDALPDFObjectPoppler(new Object(o.copy()), TRUE);
- poObj->SetRefNumAndGen(nRefNum, nRefGen);
- m_v[nIndex] = poObj;
- return poObj;
-diff -up ./frmts/pdf/pdfsdk_headers.h.poppler-0.76.0 ./frmts/pdf/pdfsdk_headers.h
---- ./frmts/pdf/pdfsdk_headers.h.poppler-0.76.0 2020-01-18 11:38:59.373535988 -0500
-+++ ./frmts/pdf/pdfsdk_headers.h 2020-01-18 11:38:59.375536039 -0500
-@@ -50,7 +50,8 @@
- #pragma warning( disable : 4244 ) /* conversion from 'const int' to 'Guchar', possible loss of data */
- #endif
-
--#include <goo/GooList.h>
-+// GooList.h removed in poppler 0.76
-+//#include <goo/GooList.h>
-
- /* begin of poppler xpdf includes */
- #include <poppler/Object.h>
diff --git a/gdal-3.0.1-perl-build.patch b/gdal-3.0.1-perl-build.patch
deleted file mode 100644
index e387e51..0000000
--- a/gdal-3.0.1-perl-build.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- swig/perl/GNUmakefile.old 2019-09-02 16:37:34.566311857 +0100
-+++ swig/perl/GNUmakefile 2019-09-02 16:38:36.695697656 +0100
-@@ -64,3 +64,5 @@
-
- .FORCE:
- perl parse-for-doxygen.pl > all.pm; doxygen; rm -f all.pm
-+
-+.PHONY: generate
diff --git a/gdal-3.0.1-zlib.patch b/gdal-3.0.1-zlib.patch
deleted file mode 100644
index de5a1aa..0000000
--- a/gdal-3.0.1-zlib.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- frmts/mrf/mrf_band.cpp.old 2019-09-02 16:35:50.670667617 +0100
-+++ frmts/mrf/mrf_band.cpp 2019-09-02 16:36:00.888730978 +0100
-@@ -49,7 +49,7 @@
-
- #include <vector>
- #include <assert.h>
--#include "../zlib/zlib.h"
-+#include "zlib.h"
-
- CPL_CVSID("$Id: mrf_band.cpp 09abe392b2b229ee2ee7625cfc5d6509c57f4f17 2019-02-02 13:13:07 -0800 Lucian Plesea $")
-
diff --git a/gdal-cleaner.sh b/gdal-cleaner.sh
index 1668535..beb0059 100755
--- a/gdal-cleaner.sh
+++ b/gdal-cleaner.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-VERSION="2.3.2"
+VERSION="3.0.4"
tar xvf gdal-"${VERSION}".tar.xz
diff --git a/gdal-completion.patch b/gdal-completion.patch
index f68acad..0c195f1 100644
--- a/gdal-completion.patch
+++ b/gdal-completion.patch
@@ -1,7 +1,6 @@
-Index: gdal-2.2.3-fedora/scripts/GNUmakefile
-===================================================================
---- gdal-2.2.3-fedora.orig/scripts/GNUmakefile
-+++ gdal-2.2.3-fedora/scripts/GNUmakefile
+diff -rupN --no-dereference gdal-3.0.4-fedora/scripts/GNUmakefile gdal-3.0.4-fedora-new/scripts/GNUmakefile
+--- gdal-3.0.4-fedora/scripts/GNUmakefile 2020-01-28 11:13:13.000000000 +0100
++++ gdal-3.0.4-fedora-new/scripts/GNUmakefile 2020-02-06 00:23:36.089287463 +0100
@@ -5,6 +5,6 @@ completion:
install:
diff --git a/gdal-g2clib.patch b/gdal-g2clib.patch
deleted file mode 100644
index bcc5019..0000000
--- a/gdal-g2clib.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-Index: gdal-2.2.3-fedora/frmts/grib/GNUmakefile
-===================================================================
---- gdal-2.2.3-fedora.orig/frmts/grib/GNUmakefile
-+++ gdal-2.2.3-fedora/frmts/grib/GNUmakefile
-@@ -7,8 +7,7 @@ include ../../GDALmake.opt
- OBJ = gribdataset.o \
- clock.o \
- degrib1.o \
-- degrib2.o inventory.o metaname.o myerror.o tdlpack.o filedatasource.o memorydatasource.o grib1tab.o myutil.o metaparse.o weather.o metaprint.o engribapi.o grib2api.o myassert.o scan.o memendian.o fileendian.o gridtemplates.o drstemplates.o pdstemplates.o gbits.o g2_free.o g2_unpack1.o g2_unpack2.o g2_unpack3.o g2_unpack4.o g2_unpack5.o g2_unpack6.o g2_unpack7.o g2_info.o g2_getfld.o simunpack.o comunpack.o pack_gp.o reduce.o specpack.o specunpack.o rdieee.o mkieee.o int_power.o simpack.o compack.o cmplxpack.o misspack.o g2_create.o g2_addlocal.o g2_addgrid.o g2_addfield.o g2_gribend.o getdim.o g2_miss.o getpoly.o seekgb.o \
-- dec_jpeg2000.o jpcunpack.o jpcpack.o enc_jpeg2000.o
-+ degrib2.o inventory.o metaname.o myerror.o tdlpack.o filedatasource.o memorydatasource.o grib1tab.o myutil.o metaparse.o weather.o metaprint.o engribapi.o grib2api.o myassert.o scan.o memendian.o fileendian.o
-
- ifeq ($(PNG_SETTING),internal)
- EXTRAFLAGS := $(EXTRAFLAGS) -I../png/libpng -DUSE_PNG
-@@ -20,7 +19,7 @@ endif
-
- ifeq ($(PNG_SETTING),external)
- EXTRAFLAGS := $(EXTRAFLAGS) -DUSE_PNG
--OBJ := $(OBJ) pngpack.o pngunpack.o enc_png.o dec_png.o
-+OBJ := $(OBJ)
- endif
-
- CPPFLAGS := $(CPPFLAGS) $(EXTRAFLAGS)
-Index: gdal-2.2.3-fedora/frmts/grib/degrib18/degrib/engribapi.c
-===================================================================
---- gdal-2.2.3-fedora.orig/frmts/grib/degrib18/degrib/engribapi.c
-+++ gdal-2.2.3-fedora/frmts/grib/degrib18/degrib/engribapi.c
-@@ -419,7 +419,6 @@ int fillSect3 (enGribMeta *en, uShort2 t
- double meshLat, double orientLon, double scaleLat1,
- double scaleLat2, double southLat, double southLon)
- {
-- const struct gridtemplate *templatesgrid = get_templatesgrid();
- int i; /* loop counter over number of GDS templates. */
- double unit; /* Used to convert from stored value to degrees
- * lat/lon. See GRIB2 Regulation 92.1.6 */
-@@ -641,7 +640,6 @@ int fillSect4_0 (enGribMeta *en, uShort2
- double dSurfVal2)
- {
- int i; /* loop counter over number of PDS templates. */
-- const struct pdstemplate *templatespds = get_templatespds();
-
- /* analysis template (0) */
- /* In addition templates (1, 2, 5, 8, 9, 12) begin with 4.0 info. */
-@@ -1197,7 +1195,6 @@ int fillSect5 (enGribMeta *en, uShort2 t
- uChar orderOfDiff)
- {
- int i; /* loop counter over number of DRS templates. */
-- const struct drstemplate *templatesdrs = get_templatesdrs();
-
- /* Find NCEP's template match */
- for (i = 0; i < MAXDRSTEMP; i++) {
-Index: gdal-2.2.3-fedora/frmts/grib/degrib18/degrib/grib2api.c
-===================================================================
---- gdal-2.2.3-fedora.orig/frmts/grib/degrib18/degrib/grib2api.c
-+++ gdal-2.2.3-fedora/frmts/grib/degrib18/degrib/grib2api.c
-@@ -961,7 +961,6 @@ void unpk_g2ncep (CPL_UNUSED sInt4 * kfi
- }
- curIndex = 14;
- for (i = 0; i < gfld->igdtlen; i++) {
-- const struct gridtemplate *templatesgrid = get_templatesgrid();
- is3[curIndex] = gfld->igdtmpl[i];
- curIndex += abs (templatesgrid[gridIndex].mapgrid[i]);
- }
-@@ -1029,7 +1028,6 @@ void unpk_g2ncep (CPL_UNUSED sInt4 * kfi
- }
- curIndex = 9;
- for (i = 0; i < gfld->ipdtlen; i++) {
-- const struct pdstemplate *templatespds = get_templatespds();
- is4[curIndex] = gfld->ipdtmpl[i];
- curIndex += abs (templatespds[pdsIndex].mappds[i]);
- }
-@@ -1047,7 +1045,6 @@ void unpk_g2ncep (CPL_UNUSED sInt4 * kfi
- }
- curIndex = 11;
- for (i = 0; i < gfld->idrtlen; i++) {
-- const struct drstemplate *templatesdrs = get_templatesdrs();
- is5[curIndex] = gfld->idrtmpl[i];
- curIndex += abs (templatesdrs[drsIndex].mapdrs[i]);
- }
diff --git a/gdal-jni.patch b/gdal-jni.patch
deleted file mode 100644
index 5b096d5..0000000
--- a/gdal-jni.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Index: gdal-2.2.3-fedora/swig/include/java/gdalconst_java.i
-===================================================================
---- gdal-2.2.3-fedora.orig/swig/include/java/gdalconst_java.i
-+++ gdal-2.2.3-fedora/swig/include/java/gdalconst_java.i
-@@ -13,7 +13,7 @@
-
- static {
- try {
-- System.loadLibrary("gdalconstjni");
-+ System.load("/usr/lib/java/gdal/libgdalconstjni.so");
- available = true;
- } catch (UnsatisfiedLinkError e) {
- available = false;
-Index: gdal-2.2.3-fedora/swig/include/java/gdal_java.i
-===================================================================
---- gdal-2.2.3-fedora.orig/swig/include/java/gdal_java.i
-+++ gdal-2.2.3-fedora/swig/include/java/gdal_java.i
-@@ -15,7 +15,7 @@
-
- static {
- try {
-- System.loadLibrary("gdaljni");
-+ System.load("/usr/lib/java/gdal/libgdaljni.so");
- available = true;
-
- if (gdal.HasThreadSupport() == 0)
-Index: gdal-2.2.3-fedora/swig/include/java/ogr_java.i
-===================================================================
---- gdal-2.2.3-fedora.orig/swig/include/java/ogr_java.i
-+++ gdal-2.2.3-fedora/swig/include/java/ogr_java.i
-@@ -17,7 +17,7 @@
-
- static {
- try {
-- System.loadLibrary("ogrjni");
-+ System.load("/usr/lib/java/gdal/libogrjni.so");
- available = true;
-
- if (org.gdal.gdal.gdal.HasThreadSupport() == 0)
-Index: gdal-2.2.3-fedora/swig/include/java/osr_java.i
-===================================================================
---- gdal-2.2.3-fedora.orig/swig/include/java/osr_java.i
-+++ gdal-2.2.3-fedora/swig/include/java/osr_java.i
-@@ -20,7 +20,7 @@
-
- static {
- try {
-- System.loadLibrary("osrjni");
-+ System.load("/usr/lib/java/gdal/libosrjni.so");
- available = true;
- } catch (UnsatisfiedLinkError e) {
- available = false;
diff --git a/gdal.spec b/gdal.spec
index 7219dca..0740e58 100644
--- a/gdal.spec
+++ b/gdal.spec
@@ -1,4 +1,3 @@
-#TODO: g2clib and grib (said to be modified)
#TODO: Create script to make clean tarball
#TODO: msg needs to have PublicDecompWT.zip from EUMETSAT, which is not free;
# Building without msg therefore
@@ -9,22 +8,13 @@
#TODO: e00compr source is the same in the package and bundled in GDAL
#TODO: Consider doxy patch from Suse, setting EXTRACT_LOCAL_CLASSES = NO
-# Soname should be bumped on API/ABI break
-# http://trac.osgeo.org/gdal/ticket/4543
-
-# Conditionals and structures for EL 5 are there
-# to make life easier for downstream ELGIS.
-# Sadly noarch doesn't work in EL 5, see
-# http://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies
-
# Tests can be of a different version
-%global testversion 2.3.2
+%global testversion 3.0.4
%global run_tests 0
%global bashcompletiondir %(pkg-config --variable=compatdir bash-completion)
%if 0%{?bootstrap}
-%global build_refman 0
%global with_mysql 0
%global mysql --without-mysql
%global with_poppler 0
@@ -32,9 +22,6 @@
%global with_spatialite 0
%global spatialite --without-spatialite
%else
-# Enable/disable generating refmans
-# texlive currently broken deps and FTBFS in rawhide
-%global build_refman 1
# https://bugzilla.redhat.com/show_bug.cgi?id=1490492
%global with_mysql 1
%global mysql --with-mysql
@@ -57,142 +44,125 @@
%endif
%endif
-Name: gdal
-Version: 2.3.2
-Release: 16%{?dist}%{?bootstrap:.%{bootstrap}.bootstrap}
-Summary: GIS file format library
-License: MIT
-URL: http://www.gdal.org
+Name: gdal
+Version: 3.0.4
+Release: 1%{?dist}%{?bootstrap:.%{bootstrap}.bootstrap}
+Summary: GIS file format library
+License: MIT
+URL: http://www.gdal.org
# Source0: http://download.osgeo.org/gdal/%%{version}/gdal-%%{version}.tar.xz
# See PROVENANCE.TXT-fedora and the cleaner script for details!
-Source0: %{name}-%{version}-fedora.tar.xz
-Source1: http://download.osgeo.org/%{name}/%{testversion}/%{name}autotest-%{testve...
+Source0: %{name}-%{version}-fedora.tar.xz
+Source1: http://download.osgeo.org/%{name}/%{testversion}/%{name}autotest-%{testve...
# Cleaner script for the tarball
-Source3: %{name}-cleaner.sh
+Source3: %{name}-cleaner.sh
-Source4: PROVENANCE.TXT-fedora
+Source4: PROVENANCE.TXT-fedora
-# Patch to use system g2clib
-Patch1: %{name}-g2clib.patch
-# Patch for Fedora JNI library location
-Patch2: %{name}-jni.patch
# Fix bash-completion install dir
-Patch3: %{name}-completion.patch
-
+Patch1: %{name}-completion.patch
# Fedora uses Alternatives for Java
-Patch8: %{name}-1.9.0-java.patch
-
-Patch9: %{name}-2.3.0-zlib.patch
-
-# https://github.com/OSGeo/gdal/pull/876
-Patch10: %{name}-2.3.1-perl-build.patch
-
-Patch11: %{name}-2.3.2-poppler-0.73.0.patch
-
-# Remove goo/GooList.h for new poppler
-# https://github.com/OSGeo/gdal/commit/8958528f9b5737581afa7249b0e16f2ff89d...
-Patch12: %{name}-2.3.2-poppler-0.76.0.patch
-
-BuildRequires: gcc gcc-c++
-BuildRequires: ant
+Patch2: %{name}-1.9.0-java.patch
+# Ensure rpc/types.h is found by dods driver (indirectly required by libdap/XDRUtils.h)
+Patch3: gdal_tirpcinc.patch
+# Use libtool to create libiso8211.a, otherwise broken static lib is created since object files are compiled through libtool
+Patch4: gdal_iso8211.patch
+
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: libtool
+BuildRequires: automake
+BuildRequires: autoconf
+BuildRequires: ant
# No armadillo in EL5
-BuildRequires: armadillo-devel
-BuildRequires: bash-completion
-BuildRequires: cfitsio-devel
+BuildRequires: armadillo-devel
+BuildRequires: bash-completion
+BuildRequires: cfitsio-devel
# No CharLS in EL5
#BuildRequires: CharLS-devel
-BuildRequires: chrpath
-BuildRequires: curl-devel
-BuildRequires: doxygen
-BuildRequires: expat-devel
-BuildRequires: fontconfig-devel
+BuildRequires: chrpath
+BuildRequires: curl-devel
+BuildRequires: doxygen
+BuildRequires: expat-devel
+BuildRequires: fontconfig-devel
# No freexl in EL5
-BuildRequires: freexl-devel
-BuildRequires: g2clib-static
-BuildRequires: geos-devel >= 3.7.1
-BuildRequires: ghostscript
-BuildRequires: hdf-devel
-BuildRequires: hdf-static
-BuildRequires: hdf5-devel
-BuildRequires: java-devel >= 1:1.6.0
-BuildRequires: jasper-devel
-BuildRequires: jpackage-utils
+BuildRequires: freexl-devel
+BuildRequires: g2clib-static
+BuildRequires: geos-devel >= 3.7.1
+BuildRequires: ghostscript
+BuildRequires: hdf-devel
+BuildRequires: hdf-static
+BuildRequires: hdf5-devel
+BuildRequires: java-devel >= 1:1.6.0
+BuildRequires: jasper-devel
+BuildRequires: jpackage-utils
# For 'mvn_artifact' and 'mvn_install'
-BuildRequires: javapackages-local
-BuildRequires: json-c-devel
-BuildRequires: libgeotiff-devel
+BuildRequires: javapackages-local
+BuildRequires: json-c-devel
+BuildRequires: libgeotiff-devel
# No libgta in EL5
-BuildRequires: libgta-devel
+BuildRequires: libgta-devel
-BuildRequires: libjpeg-devel
-BuildRequires: libpng-devel
+BuildRequires: libjpeg-devel
+BuildRequires: libpng-devel
# No libkml in EL
-BuildRequires: libkml-devel
+BuildRequires: libkml-devel
%if %{with_spatialite}
-BuildRequires: libspatialite-devel
+BuildRequires: libspatialite-devel
%endif
-BuildRequires: libtiff-devel
+BuildRequires: libtiff-devel
# No libwebp in EL 5 and 6
-BuildRequires: libwebp-devel
-BuildRequires: libtool
-BuildRequires: giflib-devel
-BuildRequires: netcdf-devel
-BuildRequires: libdap-devel
-BuildRequires: librx-devel
+BuildRequires: libwebp-devel
+BuildRequires: libtool
+BuildRequires: giflib-devel
+BuildRequires: netcdf-devel
+BuildRequires: libdap-devel
+BuildRequires: librx-devel
%if 0%{?with_mysql}
-BuildRequires: mariadb-connector-c-devel
+BuildRequires: mariadb-connector-c-devel
%endif
-BuildRequires: pcre-devel
-BuildRequires: ogdi-devel
-BuildRequires: perl-devel
-BuildRequires: perl-generators
-BuildRequires: openjpeg2-devel
-BuildRequires: perl(ExtUtils::MakeMaker)
-BuildRequires: %{_bindir}/pkg-config
+BuildRequires: pcre-devel
+BuildRequires: ogdi-devel
+BuildRequires: perl-devel
+BuildRequires: perl-generators
+BuildRequires: openjpeg2-devel
+BuildRequires: perl(ExtUtils::MakeMaker)
+BuildRequires: %{_bindir}/pkg-config
%if 0%{?with_poppler}
-BuildRequires: poppler-devel
+BuildRequires: poppler-devel
%endif
-BuildRequires: libpq-devel
-BuildRequires: proj-devel >= 5.2.0
+BuildRequires: libpq-devel
+BuildRequires: proj-devel >= 5.2.0
%if %{with python2}
-BuildRequires: python2-devel
-BuildRequires: python2-numpy
+BuildRequires: python2-devel
+BuildRequires: python2-numpy
%endif
%if %{with python3}
-BuildRequires: python3-devel
-BuildRequires: python3-numpy
+BuildRequires: python3-devel
+BuildRequires: python3-numpy
%endif
-BuildRequires: sqlite-devel
-BuildRequires: swig
-%if %{build_refman}
-BuildRequires: texlive-latex
-BuildRequires: texlive-collection-fontsrecommended
-%if 0%{?fedora}
-BuildRequires: texlive-collection-langcyrillic
-BuildRequires: texlive-collection-langportuguese
-%endif
-BuildRequires: texlive-collection-latex
-BuildRequires: texlive-epstopdf
-BuildRequires: tex(multirow.sty)
-BuildRequires: tex(sectsty.sty)
-BuildRequires: tex(tabu.sty)
-BuildRequires: tex(tocloft.sty)
-BuildRequires: tex(xtab.sty)
-%endif
-BuildRequires: unixODBC-devel
-BuildRequires: xerces-c-devel
-BuildRequires: xz-devel
-BuildRequires: zlib-devel
-BuildRequires: libtirpc-devel
+BuildRequires: sqlite-devel
+BuildRequires: swig
+BuildRequires: unixODBC-devel
+BuildRequires: xerces-c-devel
+BuildRequires: xz-devel
+BuildRequires: zlib-devel
+BuildRequires: libtirpc-devel
+
+BuildRequires: /usr/bin/epstopdf
+BuildRequires: /usr/bin/latex
+BuildRequires: /usr/bin/dvips
+BuildRequires: tex(newunicodechar.sty)
+
# Run time dependency for gpsbabel driver
-Requires: gpsbabel
+Requires: gpsbabel
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
# We have multilib triage
%if "%{_lib}" == "lib"
@@ -201,11 +171,6 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%global cpuarch 64
%endif
-%if ! (0%{?fedora} || 0%{?rhel} > 5)
-%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
-%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
-%endif
-
#TODO: Description on the lib?
%description
Geospatial Data Abstraction Library (GDAL/OGR) is a cross platform
@@ -219,51 +184,45 @@ GDAL/OGR is the most widely used geospatial data access library.
%package devel
-Summary: Development files for the GDAL file format library
-
-# Old rpm didn't figure out
-%if 0%{?rhel} < 6
-Requires: pkgconfig
-%endif
-
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-Obsoletes: %{name}-static < 1.9.0-1
+Summary: Development files for the GDAL file format library
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description devel
This package contains development files for GDAL.
%package libs
-Summary: GDAL file format library
-# https://trac.osgeo.org/gdal/ticket/3978#comment:5
-Obsoletes: %{name}-ruby < 1.11.0-1
+Summary: GDAL file format library
+# See frmts/grib/degrib/README.TXT
+Provides: bundled(g2lib) = 1.6.0
+Provides: bundled(degrib) = 2.14
%description libs
This package contains the GDAL file format library.
%package java
-Summary: Java modules for the GDAL file format library
-Requires: jpackage-utils
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Summary: Java modules for the GDAL file format library
+Requires: jpackage-utils
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description java
The GDAL Java modules provide support to handle multiple GIS file formats.
%package javadoc
-Summary: Javadocs for %{name}
-Requires: jpackage-utils
-BuildArch: noarch
+Summary: Javadocs for %{name}
+Requires: jpackage-utils
+BuildArch: noarch
%description javadoc
This package contains the API documentation for %{name}.
%package perl
-Summary: Perl modules for the GDAL file format library
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+Summary: Perl modules for the GDAL file format library
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%description perl
The GDAL Perl modules provide support to handle multiple GIS file formats.
@@ -275,9 +234,9 @@ The GDAL Perl modules provide support to handle multiple GIS file formats.
Provides: %{name}-python = %{version}-%{release}
Provides: %{name}-python%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-python < %{version}-%{release}
-Summary: Python modules for the GDAL file format library
-Requires: numpy
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Summary: Python modules for the GDAL file format library
+Requires: numpy
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description -n python2-gdal
The GDAL Python modules provide support to handle multiple GIS file formats.
@@ -288,11 +247,11 @@ The package also includes a couple of useful utilities in Python.
%if %{with python3}
%package -n python3-gdal
%{?python_provide:%python_provide python3-gdal}
-Summary: Python modules for the GDAL file format library
-Requires: python3-numpy
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-Obsoletes: gdal-python3 < 2.3.1
-Provides: gdal-python3 = %version-%release
+Summary: Python modules for the GDAL file format library
+Requires: python3-numpy
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Obsoletes: gdal-python3 < 2.3.1
+Provides: gdal-python3 = %version-%release
%description -n python3-gdal
The GDAL Python 3 modules provide support to handle multiple GIS file formats.
@@ -301,8 +260,8 @@ The GDAL Python 3 modules provide support to handle multiple GIS file formats.
%if %{with python2} || %{with python3}
%package python-tools
-Summary: Python tools for the GDAL file format library
-Requires: %{?with_python3:python3-gdal}%{?!with_python3:python2-gdal}
+Summary: Python tools for the GDAL file format library
+Requires: %{?with_python3:python3-gdal}%{?!with_python3:python2-gdal}
%description python-tools
The GDAL Python package provides number of tools for programming and
@@ -311,201 +270,115 @@ manipulating GDAL file format library
%package doc
-Summary: Documentation for GDAL
-BuildArch: noarch
+Summary: Documentation for GDAL
+BuildArch: noarch
%description doc
-This package contains HTML and PDF documentation for GDAL.
+This package contains documentation for GDAL.
# We don't want to provide private Python extension libs
+%if %{with python2} && %{with python3}
%global __provides_exclude_from ^(%{python2_sitearch}|%{python3_sitearch})/.*\.so$
+%elif %{with python2}
+%global __provides_exclude_from ^%{python2_sitearch}/.*\.so$
+%elif %{with_python3}
+%global __provides_exclude_from ^%{python3_sitearch}/.*\.so$
+%endif
+
+
%prep
-%setup -q -n %{name}-%{version}-fedora -a 1
+%autosetup -p1 -n %{name}-%{version}-fedora -a 1
# Delete bundled libraries
rm -rf frmts/zlib
rm -rf frmts/png/libpng
rm -rf frmts/gif/giflib
-rm -rf frmts/jpeg/libjpeg \
- frmts/jpeg/libjpeg12
-rm -rf frmts/gtiff/libgeotiff \
- frmts/gtiff/libtiff
-#rm -r frmts/grib/degrib/g2clib
-
-#%%patch1 -p1 -b .g2clib~
-#%%patch2 -p1 -b .jni~
-%patch3 -p1 -b .completion~
-%patch8 -p1 -b .java~
-%patch9 -p1 -b .zlib~
-%patch10 -p1 -b .perl-build~
-%patch11 -p1 -b .poppler-0.73.0
-%patch12 -p1 -b .poppler-0.76.0
+rm -rf frmts/jpeg/libjpeg
+rm -rf frmts/jpeg/libjpeg12
+rm -rf frmts/gtiff/libgeotiff
+rm -rf frmts/gtiff/libtiff
# Copy in PROVENANCE.TXT-fedora
cp -p %SOURCE4 .
-# Sanitize linebreaks and encoding
-#TODO: Don't touch data directory!
-# /frmts/grib/degrib18/degrib/metaname.cpp
-# and geoconcept.c are potentially dangerous to change
-set +x
-for f in `find . -type f` ; do
- if file $f | grep -q ISO-8859 ; then
- set -x
- iconv -f ISO-8859-1 -t UTF-8 $f > ${f}.tmp && \
- mv -f ${f}.tmp $f
- set +x
- fi
- if file $f | grep -q CRLF ; then
- set -x
- sed -i -e 's|\r||g' $f
- set +x
- fi
-done
-set -x
-
-for f in apps; do
-pushd $f
- chmod 644 *.cpp
-popd
-done
-
-# Replace hard-coded library- and include paths
-sed -i 's|-L\$with_cfitsio -L\$with_cfitsio/lib -lcfitsio|-lcfitsio|g' configure
-sed -i 's|-I\$with_cfitsio -I\$with_cfitsio/include|-I\$with_cfitsio/include/cfitsio|g' configure
-sed -i 's|-L\$with_netcdf -L\$with_netcdf/lib -lnetcdf|-lnetcdf|g' configure
-sed -i 's|-L\$DODS_LIB -ldap++|-ldap++|g' configure
-sed -i 's|-L\$with_ogdi -L\$with_ogdi/lib -logdi|-logdi|g' configure
-sed -i 's|-L\$with_jpeg -L\$with_jpeg/lib -ljpeg|-ljpeg|g' configure
-sed -i 's|-L\$with_libtiff\/lib -ltiff|-ltiff|g' configure
-sed -i 's|-lgeotiff -L$with_geotiff $LIBS|-lgeotiff $LIBS|g' configure
-sed -i 's|-L\$with_geotiff\/lib -lgeotiff $LIBS|-lgeotiff $LIBS|g' configure
-
-%if %{with python3} || %{with python2}
-# Fix Python samples to depend on correct interpreter
-mkdir -p swig/python3/samples
-pushd swig/python/samples
-for f in `find . -name '*.py'`; do
- sed 's|^#!.\+python$|#!/usr/bin/python3|' $f > ../../python3/samples/$f
- chmod --reference=$f ../../python3/samples/$f
- sed -i 's|^#!.\+python$|#!/usr/bin/python2|' $f
-done
-popd
-%endif
+# Sanitize permissions
+chmod 644 apps/gnmanalyse.cpp apps/gnmmanage.cpp
# Adjust check for LibDAP version
# http://trac.osgeo.org/gdal/ticket/4545
%if %cpuarch == 64
- sed -i 's|with_dods_root/lib|with_dods_root/lib64|' configure
+ sed -i 's|with_dods_root/lib|with_dods_root/lib64|' configure.ac
%endif
# Fix mandir
-sed -i "s|^mandir=.*|mandir='\${prefix}/share/man'|" configure
+sed -i "s|^mandir=.*|mandir='\${prefix}/share/man'|" configure.ac
-# Add our custom cflags when trying to find geos
-# https://bugzilla.redhat.com/show_bug.cgi?id=1284714
-sed -i 's|CFLAGS=\"${GEOS_CFLAGS}\"|CFLAGS=\"${CFLAGS} ${GEOS_CFLAGS}\"|g' configure
%build
-#TODO: Couldn't I have modified that in the prep section?
-%ifarch sparcv9 sparc64 s390 s390x
-export CFLAGS="$RPM_OPT_FLAGS -fPIC"
-%else
-export CFLAGS="$RPM_OPT_FLAGS -fpic"
-%endif
-export CXXFLAGS="$CFLAGS -I%{_includedir}/libgeotiff -I%{_includedir}/tirpc"
-export CPPFLAGS="$CPPFLAGS -I%{_includedir}/libgeotiff -I%{_includedir}/tirpc"
-
# For future reference:
# epsilon: Stalled review -- https://bugzilla.redhat.com/show_bug.cgi?id=660024
# Building without pgeo driver, because it drags in Java
-
-%if 0%{?fedora} >= 27 || 0%{?rhel} > 7
-%global g2clib g2c_v1.6.0
-%else
-%global g2clib grib2c
-%endif
+autoreconf -ifv
%configure \
- LIBS="-l%{g2clib} -ltirpc" \
--with-autoload=%{_libdir}/%{name}plugins \
--datadir=%{_datadir}/%{name}/ \
--includedir=%{_includedir}/%{name}/ \
- --prefix=%{_prefix} \
- --with-armadillo \
- --with-curl \
- --with-cfitsio=%{_prefix} \
- --with-dods-root=%{_prefix} \
- --with-expat \
- --with-freexl \
- --with-geos \
- --with-geotiff=external \
- --with-gif \
- --with-gta \
- --with-hdf4 \
- --with-hdf5 \
- --with-jasper \
- --with-java \
- --with-jpeg \
- --with-libjson-c \
- --without-jpeg12 \
- --with-liblzma \
- --with-libtiff=external \
- --with-libz \
- --without-mdb \
- --without-msg \
- %{mysql} \
- --with-netcdf \
- --with-odbc \
- --with-ogdi \
- --with-openjpeg \
- --with-pcraster \
- --with-pg \
- --with-png \
- %{poppler} \
- --with-proj \
- %{spatialite} \
- --with-sqlite3 \
- --with-threads \
- --with-webp \
- --with-xerces \
- --enable-shared \
+ --prefix=%{_prefix} \
+ --with-armadillo \
+ --with-curl \
+ --with-cfitsio \
+ --with-dods-root=%{_prefix} \
+ --with-expat \
+ --with-freexl \
+ --with-geos \
+ --with-geotiff \
+ --with-gif \
+ --with-gta \
+ --with-hdf4 \
+ --with-hdf5 \
+ --with-jasper \
+ --with-java \
+ --with-jpeg \
+ --with-libjson-c \
+ --without-jpeg12 \
+ --with-liblzma \
+ --with-libtiff \
+ --with-libz \
+ --without-mdb \
+ --without-msg \
+ %{mysql} \
+ --with-netcdf \
+ --with-odbc \
+ --with-ogdi \
+ --with-openjpeg \
+ --with-pcraster \
+ --with-pg \
+ --with-png \
+ %{poppler} \
+ --with-proj \
+ %{spatialite} \
+ --with-sqlite3 \
+ --with-threads \
+ --with-webp \
+ --with-xerces \
+ --enable-shared \
--with-libkml
-sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
-sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
-
-# {?_smp_mflags} doesn't work; Or it does -- who knows!
-# NOTE: running autoconf seems to break build:
-# fitsdataset.cpp:37:10: fatal error: fitsio.h: No such file or directory
-# #include <fitsio.h>
-
-POPPLER_OPTS="POPPLER_0_20_OR_LATER=yes POPPLER_0_23_OR_LATER=yes POPPLER_BASE_STREAM_HAS_TWO_ARGS=yes"
-%if 0%{?fedora} > 26 || 0%{?rhel} > 7
-POPPLER_OPTS="$POPPLER_OPTS POPPLER_0_58_OR_LATER=yes"
-%endif
-
-make %{?_smp_mflags} $POPPLER_OPTS
-
+%make_build
make man
make docs
# Build some utilities, as requested in BZ #1271906
-pushd ogr/ogrsf_frmts/s57/
- make all
-popd
-
-pushd frmts/iso8211/
- make all
-popd
+make -C ogr/ogrsf_frmts/s57 all
+make -C frmts/iso8211 all
# Make Java module and documentation
pushd swig/java
make
ant maven
popd
-
%mvn_artifact swig/java/build/maven/gdal-%version.pom swig/java/build/maven/gdal-%version.jar
# Make Python modules
@@ -514,7 +387,7 @@ pushd swig/python
%{?with_python3:%py3_build}
popd
-# Make Python modules
+# Make Perl modules
pushd swig/perl
perl Makefile.PL INSTALLDIRS=vendor
%make_build
@@ -525,50 +398,30 @@ popd
# No useful documentation in swig
%global docdirs apps doc doc/br doc/ru ogr ogr/ogrsf_frmts frmts/gxf frmts/iso8211 frmts/pcidsk frmts/sdts frmts/vrt ogr/ogrsf_frmts/dgn/
for docdir in %{docdirs}; do
- # CreateHTML and PDF documentation, if specified
pushd $docdir
if [ ! -f Doxyfile ]; then
doxygen -g
else
doxygen -u
fi
- sed -i -e 's|^GENERATE_LATEX|GENERATE_LATEX = YES\n#GENERATE_LATEX |' Doxyfile
- sed -i -e 's|^GENERATE_HTML|GENERATE_HTML = YES\n#GENERATE_HTML |' Doxyfile
- sed -i -e 's|^USE_PDFLATEX|USE_PDFLATEX = YES\n#USE_PDFLATEX |' Doxyfile
-
if [ $docdir == "doc/ru" ]; then
sed -i -e 's|^OUTPUT_LANGUAGE|OUTPUT_LANGUAGE = Russian\n#OUTPUT_LANGUAGE |' Doxyfile
fi
- rm -rf latex html
+ rm -rf html
doxygen
-
- %if %{build_refman}
- pushd latex
- sed -i -e '/rfoot\[/d' -e '/lfoot\[/d' doxygen.sty
- sed -i -e '/small/d' -e '/large/d' refman.tex
- sed -i -e 's|pdflatex|pdflatex -interaction nonstopmode |g' Makefile
- make refman.pdf || true
- popd
- %endif
popd
done
%install
-rm -rf %{buildroot}
-
pushd swig/python
%{?with_python2:%py2_install}
%{?with_python3:%py3_install}
popd
-pushd swig/perl
- %make_install
-popd
+%make_install -C swig/perl
-make DESTDIR=%{buildroot} \
- install \
- install-man
+%make_install install-man
install -pm 755 ogr/ogrsf_frmts/s57/s57dump %{buildroot}%{_bindir}
install -pm 755 frmts/iso8211/8211createfromxml %{buildroot}%{_bindir}
@@ -612,14 +465,6 @@ for docdir in %{docdirs}; do
path=%{_builddir}/%{name}-%{version}-fedora/refman
mkdir -p $path/html/$docdir
cp -r html $path/html/$docdir
-
- # Install all Refmans
- %if %{build_refman}
- if [ -f latex/refman.pdf ]; then
- mkdir -p $path/pdf/$docdir
- cp latex/refman.pdf $path/pdf/$docdir
- fi
- %endif
popd
done
@@ -653,26 +498,6 @@ EOF
#<<<<<<<<<<<<<
touch -r NEWS port/cpl_config.h
-# Create and install pkgconfig file
-#TODO: Why does that exist? Does Grass really use it? I don't think so.
-# http://trac.osgeo.org/gdal/ticket/3470
-#>>>>>>>>>>>>>
-cat > %{name}.pc <<EOF
-prefix=%{_prefix}
-exec_prefix=%{_prefix}
-libdir=%{_libdir}
-includedir=%{_includedir}
-
-Name: GDAL
-Description: GIS file format library
-Version: %{version}
-Libs: -L\${libdir} -lgdal
-Cflags: -I\${includedir}/%{name}
-EOF
-#<<<<<<<<<<<<<
-mkdir -p %{buildroot}%{_libdir}/pkgconfig/
-install -m 644 %{name}.pc %{buildroot}%{_libdir}/pkgconfig/
-touch -r NEWS %{buildroot}%{_libdir}/pkgconfig/%{name}.pc
# Multilib gdal-config
# Rename the original script to gdal-config-$arch (stores arch-specific information)
@@ -698,9 +523,6 @@ EOF
touch -r NEWS %{buildroot}%{_bindir}/%{name}-config
chmod 755 %{buildroot}%{_bindir}/%{name}-config
-# Clean up junk
-rm -f %{buildroot}%{_bindir}/*.dox
-
#jni-libs and libgdal are also built static (*.a)
#.exists and .packlist stem from Perl
for junk in {*.a,*.la,*.bs,.exists,.packlist} ; do
@@ -708,16 +530,8 @@ for junk in {*.a,*.la,*.bs,.exists,.packlist} ; do
done
# Don't duplicate license files
-rm -f %{buildroot}%{_datadir}/%{name}/LICENSE.TXT
+rm %{buildroot}%{_datadir}/%{name}/LICENSE.TXT
-# Throw away random API man mages plus artefact seemingly caused by Doxygen 1.8.1 or 1.8.1.1
-for f in 'GDAL*' BandProperty ColorAssociation CutlineTransformer DatasetProperty EnhanceCBInfo ListFieldDesc NamedColor OGRSplitListFieldLayer VRTBuilder; do
- rm -rf %{buildroot}%{_mandir}/man1/$f.1*
-done
-
-#TODO: What's that?
-rm -f %{buildroot}%{_mandir}/man1/*_%{name}-%{version}-fedora_apps_*
-rm -f %{buildroot}%{_mandir}/man1/_home_rouault_dist_wrk_gdal_apps_.1*
%check
%if %{run_tests}
@@ -794,8 +608,8 @@ popd
%files libs
%doc LICENSE.TXT NEWS PROVENANCE.TXT COMMITTERS PROVENANCE.TXT-fedora
-%{_libdir}/libgdal.so.20
-%{_libdir}/libgdal.so.20.*
+%{_libdir}/libgdal.so.26
+%{_libdir}/libgdal.so.26.*
%{_datadir}/%{name}
#TODO: Possibly remove files like .dxf, .dgn, ...
%dir %{_libdir}/%{name}plugins
@@ -823,20 +637,19 @@ popd
%if %{with python2}
%files -n python2-gdal
-%doc swig/python/README.txt
+%doc swig/python/README.rst
%doc swig/python/samples
%{python2_sitearch}/osgeo
%{python2_sitearch}/GDAL-%{version}-py*.egg-info
%{python2_sitearch}/osr.py*
%{python2_sitearch}/ogr.py*
%{python2_sitearch}/gdal*.py*
-%{python2_sitearch}/gnm.py*
%endif
%if %{with python3}
%files -n python3-gdal
-%doc swig/python/README.txt
-%doc swig/python3/samples
+%doc swig/python/README.rst
+%doc swig/python/samples
%{python3_sitearch}/osgeo
%{python3_sitearch}/GDAL-%{version}-py*.egg-info
%{python3_sitearch}/osr.py
@@ -845,8 +658,6 @@ popd
%{python3_sitearch}/__pycache__/ogr.*.py*
%{python3_sitearch}/gdal*.py
%{python3_sitearch}/__pycache__/gdal*.*.py*
-%{python3_sitearch}/gnm.py*
-%{python3_sitearch}/__pycache__/gnm.*.py*
%endif
%if %{with python2} || %{with python3}
@@ -873,6 +684,9 @@ popd
#Or as before, using ldconfig
%changelog
+* Wed Feb 05 2020 Sandro Mani <manisandro(a)gmail.com> - 3.0.4-1
+- Update to 3.0.4
+
* Tue Jan 28 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.3.2-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/gdal_iso8211.patch b/gdal_iso8211.patch
new file mode 100644
index 0000000..ee1c4c5
--- /dev/null
+++ b/gdal_iso8211.patch
@@ -0,0 +1,13 @@
+diff -rupN gdal-3.0.4-fedora/frmts/iso8211/GNUmakefile gdal-3.0.4-fedora-new/frmts/iso8211/GNUmakefile
+--- gdal-3.0.4-fedora/frmts/iso8211/GNUmakefile 2020-01-28 11:13:11.000000000 +0100
++++ gdal-3.0.4-fedora-new/frmts/iso8211/GNUmakefile 2020-02-06 00:24:10.382117696 +0100
+@@ -23,8 +23,7 @@ dist-clean: clean
+ rm -rf $(DISTDIR)
+
+ $(ISOLIB): $(OBJ:.o=.$(OBJ_EXT))
+- $(AR) r $(ISOLIB) $?
+- $(RANLIB) $(ISOLIB)
++ $(SHELL) $(top_builddir)/libtool --mode=link gcc -static -o $(ISOLIB) $?
+
+ 8211createfromxml$(EXE): 8211createfromxml.$(OBJ_EXT)
+ $(LD) $(LDFLAGS) 8211createfromxml.$(OBJ_EXT) $(CONFIG_LIBS) -o 8211createfromxml$(EXE)
diff --git a/gdal_tirpcinc.patch b/gdal_tirpcinc.patch
new file mode 100644
index 0000000..5b55069
--- /dev/null
+++ b/gdal_tirpcinc.patch
@@ -0,0 +1,24 @@
+diff -rupN --no-dereference gdal-3.0.4-fedora/frmts/dods/GNUmakefile gdal-3.0.4-fedora-new/frmts/dods/GNUmakefile
+--- gdal-3.0.4-fedora/frmts/dods/GNUmakefile 2020-01-28 11:13:11.000000000 +0100
++++ gdal-3.0.4-fedora-new/frmts/dods/GNUmakefile 2020-02-06 00:23:36.543285168 +0100
+@@ -4,7 +4,7 @@ include ../../GDALmake.opt
+
+ OBJ = dodsdataset2.o
+
+-CPPFLAGS := $(CPPFLAGS) $(DODS_INC)
++CPPFLAGS := $(CPPFLAGS) $(DODS_INC) -I/usr/include/tirpc
+
+ default: $(OBJ:.o=.$(OBJ_EXT))
+
+diff -rupN --no-dereference gdal-3.0.4-fedora/ogr/ogrsf_frmts/dods/GNUmakefile gdal-3.0.4-fedora-new/ogr/ogrsf_frmts/dods/GNUmakefile
+--- gdal-3.0.4-fedora/ogr/ogrsf_frmts/dods/GNUmakefile 2020-01-28 11:13:11.000000000 +0100
++++ gdal-3.0.4-fedora-new/ogr/ogrsf_frmts/dods/GNUmakefile 2020-02-06 00:23:36.543285168 +0100
+@@ -5,7 +5,7 @@ include ../../../GDALmake.opt
+ OBJ = ogrdodsdriver.o ogrdodsdatasource.o ogrdodslayer.o \
+ ogrdodssequencelayer.o ogrdodsfielddefn.o ogrdodsgrid.o
+
+-CPPFLAGS := -I.. $(CPPFLAGS) $(DODS_INC) -DDO_NOT_USE_DEBUG_BOOL
++CPPFLAGS := -I.. $(CPPFLAGS) $(DODS_INC) -DDO_NOT_USE_DEBUG_BOOL -I/usr/include/tirpc
+
+ default: $(O_OBJ:.o=.$(OBJ_EXT))
+
diff --git a/sources b/sources
index e224f5f..1ac9d4c 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,2 @@
-SHA512 (gdalautotest-2.3.2.tar.gz) = 7781d48407acb4a643175f5f9ecf625ad463a57c6c69c212d4b273d633b34cc8b9bb18d79a303c4905b345f400947d7952d7c75254db7b2f5fadfee865a98815
-SHA512 (gdal-2.3.2-fedora.tar.xz) = d9fc4e3395af00673c3d62c3eed9175886ca9efa706f7712a933176245f73b3f348844fb2e5f4315aa6cb079fbc1cfbc64273aeeac91cc5a0b1d2f7bc1a3bc14
-SHA512 (gdalautotest-3.0.1.zip) = 07f50ac17d7033ba08e4ca4552a0f59eebbe2b43f351b675df22fae6087edd98687b46b50f7d3fea2a2159ad4183082a3afaac8caa9bf632a410492f098c5be8
-SHA512 (gdal-3.0.1-fedora.tar.xz) = 9129e7e7263d1901150a7130a4170d91f3039b3ed416731ad9cc91c2d30066575ad5178c35ee47848e81319482c2ef8bf06a8b05b86ea394bdc4962473a752d1
+SHA512 (gdal-3.0.4-fedora.tar.xz) = f880a763cbf3e846789df4c45a68be11121fdc66252dab126d95b79141589435ef7712ed0efcb7d633643f2c82cde88f9663bb15b624e69f362ed2e10a79a110
+SHA512 (gdalautotest-3.0.4.tar.gz) = d205c6eba1c68ade3cd55b9ae77c9a885f1ff87f6964ea4e71799bc98393ddcf92081a5319afd3d0d9d0cf8862d140eb59ad2ccf7e70a955cad2732f55c28e72
4 years