3 Commits

Author SHA256 Message Date
Richard Biener
175209bb2f - Improve go/gofmt alternative removal upon migration to an
alternative-less system.
2026-01-27 15:13:09 +01:00
Richard Biener
3f7bae42d0 Fix typo in comment 2025-12-05 14:51:42 +01:00
Richard Biener
6f45f8905d - Remove go/gofmt alternatives. [bsc#1245878] 2025-12-05 08:38:41 +01:00
2 changed files with 140 additions and 23 deletions

View File

@@ -1,3 +1,19 @@
-------------------------------------------------------------------
Tue Jan 27 14:12:22 UTC 2026 - Richard Biener <rguenther@suse.com>
- Improve go/gofmt alternative removal upon migration to an
alternative-less system.
-------------------------------------------------------------------
Fri Dec 5 07:33:47 UTC 2025 - Richard Biener <rguenther@suse.com>
- Remove go/gofmt alternatives. [bsc#1245878]
-------------------------------------------------------------------
Wed May 7 11:27:11 UTC 2025 - Richard Biener <rguenther@suse.com>
- Add packages for Modula-2 and Cobol.
-------------------------------------------------------------------
Wed Mar 12 17:41:50 UTC 2025 - Richard Biener <rguenther@suse.com>

147
gcc.spec
View File

@@ -53,6 +53,16 @@ Name: gcc%{gccsuffix}
%else
%define build_d 0
%endif
%define build_m2 1
%ifarch x86_64 aarch64 ppc64le riscv64
%if %{gcc_version} >= 15 && %{suse_version} >= 1699
%define build_cobol 1
%else
%define build_cobol 0
%endif
%else
%define build_cobol 0
%endif
%define quadmath_arch %ix86 x86_64 ia64 ppc64le
%define libgccjit_sover 0
@@ -80,6 +90,12 @@ BuildRequires: gcc%{gcc_version}-ada
%if %{build_d}
BuildRequires: gcc%{gcc_version}-d
%endif
%if %{build_m2}
BuildRequires: gcc%{gcc_version}-m2
%endif
%if %{build_cobol}
BuildRequires: gcc%{gcc_version}-cobol
%endif
Source: cpp
%if "%{gccsuffix}" != "" && 0%{?is_opensuse}
ExclusiveArch: do-not-build
@@ -180,6 +196,8 @@ The system GNU Compiler documentation.
# install / update the entries
%post -n gcc%{gccsuffix}-info
%install_info --info-dir=%{_infodir} --name=cpp --description='The GNU C preprocessor.' %{_infodir}/cpp.info.gz
@@ -451,8 +469,8 @@ Conflicts: gcc-go
%endif
Requires: gcc%{gcc_version}-go
Requires: gcc%{gccsuffix} = %{version}
Requires(post): update-alternatives
Requires(postun): update-alternatives
OrderWithRequires(pre): update-alternatives
Suggests: update-alternatives
%description -n gcc%{gccsuffix}-go
The system GNU Go Compiler.
@@ -495,8 +513,6 @@ Conflicts: gcc-d
%endif
Requires: gcc%{gcc_version}-d
Requires: gcc%{gccsuffix} = %{version}
Requires(post): update-alternatives
Requires(postun): update-alternatives
%description -n gcc%{gccsuffix}-d
The system GNU D Compiler.
@@ -555,6 +571,62 @@ Requires: libquadmath0-devel-gcc%{gcc_version}
%description -n libquadmath%{gccsuffix}-devel
Development files for the quadprecision math library.
%package -n gcc%{gccsuffix}-m2
Summary: The system GNU Modula-2 Compiler
License: GPL-3.0-or-later
Group: Development/Languages/C and C++
%if "%{gccsuffix}" != ""
Provides: gcc-m2 = %{version}
Conflicts: gcc-m2
%endif
Requires: gcc%{gcc_version}-m2
Requires: gcc%{gccsuffix} = %{version}
%description -n gcc%{gccsuffix}-m2
The system GNU Modula-2 Compiler.
%package -n gcc%{gccsuffix}-m2-32bit
Summary: The system GNU Modula-2 Compiler 32bit support
License: GPL-3.0-or-later
Group: Development/Languages/C and C++
%if "%{gccsuffix}" != ""
Provides: gcc-m2-32bit = %{version}
Conflicts: gcc-m2-32bit
%endif
Requires: gcc%{gcc_version}-m2-32bit
Requires: gcc%{gccsuffix}-m2 = %{version}
%description -n gcc%{gccsuffix}-m2-32bit
The system GNU Modula-2 Compiler 32bit support
%package -n gcc%{gccsuffix}-m2-64bit
Summary: The system GNU Modula-2 Compiler 64bit support
License: GPL-3.0-or-later
Group: Development/Languages/C and C++
%if "%{gccsuffix}" != ""
Provides: gcc-m2-64bit = %{version}
Conflicts: gcc-m2-64bit
%endif
Requires: gcc%{gcc_version}-m2-64bit
Requires: gcc%{gccsuffix}-m2 = %{version}
%description -n gcc%{gccsuffix}-m2-64bit
The system GNU Modula-2 Compiler 64bit support
%package -n gcc%{gccsuffix}-cobol
Summary: The system GNU Cobol Compiler
License: GPL-3.0-or-later
Group: Development/Languages/C and C++
%if "%{gccsuffix}" != ""
Provides: gcc-cobol = %{version}
Conflicts: gcc-cobol
%endif
Requires: gcc%{gcc_version}-cobol
Requires: gcc%{gccsuffix} = %{version}
%description -n gcc%{gccsuffix}-cobol
The system GNU Cobol Compiler.
%prep
%install
@@ -577,15 +649,20 @@ for program in \
%endif
%if %{build_d}
gdc \
%endif
%if %{build_m2}
gm2 \
%endif
%if %{build_cobol}
gcobol gcobc \
%endif
gcc-ar gcc-nm gcc-ranlib \
; do
ln -sf $program-%{gcc_suffix} $RPM_BUILD_ROOT%{_prefix}/bin/$program
done
# For go and gofmt use alternatives since they are shared with golang
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
ln -sf %{_sysconfdir}/alternatives/go %{buildroot}%{_bindir}/go
ln -sf %{_sysconfdir}/alternatives/gofmt %{buildroot}%{_bindir}/gofmt
# Do not add a gofmt link from gofmt-%{gcc_suffix} since that conflicts with
# the golang libalternatives version of this. Do not use gccgofmt either,
# that's nonstandard and not expected by anyone.
# Link section 1 manpages
for man1 in \
gcc gcov gcov-dump gcov-tool lto-dump \
@@ -595,6 +672,12 @@ for man1 in \
gccgo \
%if %{build_d}
gdc \
%endif
%if %{build_m2}
gm2 \
%endif
%if %{build_cobol}
gcobol \
%endif
; do
ln -sf $man1-%{gcc_suffix}.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/$man1.1.gz
@@ -622,17 +705,10 @@ ln -sf gcc-%{gcc_suffix}.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/cc.1.gz
mkdir -p $RPM_BUILD_ROOT%{_libdir}/bfd-plugins
ln -s `gcc-%{gcc_suffix} -print-file-name=liblto_plugin.so` $RPM_BUILD_ROOT%{_libdir}/bfd-plugins/liblto_plugin.so
%post -n gcc%{gccsuffix}-go
# we don't want a BuildRequires on gccN-go but otherwise the install
# step of the build fails, so simply skip the script when gccN-go isn't there
if [ -f %{_bindir}/go-%{gcc_suffix} ] ; then
update-alternatives \
--install %{_bindir}/go go %{_bindir}/go-%{gcc_suffix} 100 \
--slave %{_bindir}/gofmt gofmt %{_bindir}/gofmt-%{gcc_suffix}
fi
%postun -n gcc%{gccsuffix}-go
if [ $1 -eq 0 ] ; then
# We no longer register go/gofmt alternatives for gcc-go, but remove
# any existing one on upgrade if it still exists
%pre -n gcc%{gccsuffix}-go
if [ $1 -eq 2 ] && [ -f %{_sysconfdir}/alternatives/go ] ; then
update-alternatives --remove go %{_bindir}/go-%{gcc_suffix}
fi
@@ -729,10 +805,6 @@ fi
%files -n gcc%{gccsuffix}-go
%defattr(-,root,root)
%{_bindir}/gccgo
%{_bindir}/go
%{_bindir}/gofmt
%ghost %{_sysconfdir}/alternatives/go
%ghost %{_sysconfdir}/alternatives/gofmt
%doc %{_mandir}/man1/gccgo.1.gz
%if %{build_d}
@@ -742,6 +814,21 @@ fi
%doc %{_mandir}/man1/gdc.1.gz
%endif
%if %{build_m2}
%files -n gcc%{gccsuffix}-m2
%defattr(-,root,root)
%{_bindir}/gm2
%doc %{_mandir}/man1/gm2.1.gz
%endif
%if %{build_cobol}
%files -n gcc%{gccsuffix}-cobol
%defattr(-,root,root)
%{_bindir}/gcobol
%{_bindir}/gcobc
%doc %{_mandir}/man1/gcobol.1.gz
%endif
%if %{separate_bi32}
%files -n gcc%{gccsuffix}-32bit
@@ -779,7 +866,15 @@ fi
%defattr(-,root,root)
# empty - only for the dependency
%endif
%if %{build_m2}
%files -n gcc%{gccsuffix}-m2-32bit
%defattr(-,root,root)
# empty - only for the dependency
%endif
%endif
%if %{separate_bi64}
%files -n gcc%{gccsuffix}-64bit
@@ -818,6 +913,12 @@ fi
# empty - only for the dependency
%endif
%if %{build_m2}
%files -n gcc%{gccsuffix}-m2-64bit
%defattr(-,root,root)
# empty - only for the dependency
%endif
%endif
%files -n libgccjit%{gccsuffix}-devel