SHA256
1
0
forked from pool/llvm
llvm/llvm.spec
Aaron Puchert e26fe2ab29 Accepting request 1075171 from home:favogt:branches:devel:tools:compiler
RFC. I couldn't find why the BRs are there in the first place.

- Drop BuildRequires. They are not necessary to build this package.
  This has the advantage that on version bumps, the llvm metapackages
  build first, turning everything depending on them unresolvable until
  the right LLVM version is actually available. Without this, the old
  llvm metapackages are available still and users of llvm build against
  the old version of LLVM until the new metapackage is built.
- Fix llvm-LTO-devel self-obsoletion

OBS-URL: https://build.opensuse.org/request/show/1075171
OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=581
2023-03-30 13:55:50 +00:00

352 lines
11 KiB
RPMSpec

#
# spec file for package llvm
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define _sonum 16
%ifarch x86_64
%define has_lldb 1
# python3-lldb%{_sonum} is only built with these distributions (see llvm%{_sonum} package)
%if 0%{?suse_version} > 1320
%define has_lldb_python 1
%endif
%endif
# obsolete_llvm_versioned() prefix postfix
# Obsolete packages <prefix>X or <prefix>X-<postfix> with X being a set of older versions.
%define obsolete_llvm_versioned() \
Obsoletes: %{1}10%{?2:-%{2}} \
Obsoletes: %{1}11%{?2:-%{2}} \
Obsoletes: %{1}12%{?2:-%{2}} \
Obsoletes: %{1}13%{?2:-%{2}} \
Obsoletes: %{1}14%{?2:-%{2}} \
Obsoletes: %{1}15%{?2:-%{2}} \
Obsoletes: %{1}7%{?2:-%{2}} \
Obsoletes: %{1}8%{?2:-%{2}} \
Obsoletes: %{1}9%{?2:-%{2}}
Name: llvm
Version: 16.0.0
Release: 0
Summary: Low Level Virtual Machine
License: Apache-2.0 WITH LLVM-exception OR NCSA
Group: Development/Languages/Other
URL: https://www.llvm.org/
# This file documents the process for updating llvm
Source0: README.packaging
Requires: llvm%{_sonum} = %{version}
Suggests: %{name}-doc
# Mirrors ExcludeArch in llvm%{_sonum}
ExcludeArch: s390
%description
LLVM is a compiler infrastructure designed for compile-time,
link-time, runtime, and idle-time optimization of programs from
arbitrary programming languages.
The compiler infrastructure includes mirror sets of programming
tools as well as libraries with equivalent functionality.
This package is a dummy package that depends on the version of
llvm that openSUSE currently supports. Packages that
don't require a specific LLVM version should depend on this.
%package devel
Summary: Header Files for LLVM
Group: Development/Libraries/C and C++
Requires: llvm%{_sonum}-devel = %{version}
Provides: llvm-LTO-devel = %{version}
Obsoletes: llvm-LTO-devel < %{version}
Requires: llvm-gold
%obsolete_llvm_versioned llvm devel
%obsolete_llvm_versioned llvm LTO-devel
%description devel
This package contains library and header files needed to develop
new native programs that use the LLVM infrastructure.
This package is a dummy package that depends on the version of
llvm-devel that openSUSE currently supports. Packages that
don't require a specific LLVM version should depend on this.
%package doc
Summary: Documentation for LLVM
Group: Documentation/HTML
Requires: %{name} = %{version}
Requires: llvm%{_sonum}-doc = %{version}
%obsolete_llvm_versioned llvm doc
%description doc
This package contains documentation for the LLVM infrastructure.
This package is a dummy package that depends on the version of
llvm-doc that openSUSE currently supports. Packages that
don't require a specific LLVM version should depend on this.
%package -n clang
Summary: CLANG frontend for LLVM
Group: Development/Languages/C and C++
URL: https://clang.llvm.org/
Requires: clang%{_sonum} = %{version}
Provides: llvm-clang = %{version}
Obsoletes: llvm-clang < %{version}
Provides: llvm-emacs-plugins
Suggests: clang-doc
%description -n clang
This package contains the clang (C language) frontend for LLVM.
This package is a dummy package that depends on the version of
clang that openSUSE currently supports. Packages that
don't require a specific Clang version should depend on this.
%package -n clang-devel
Summary: CLANG frontend for LLVM (devel package)
Group: Development/Libraries/C and C++
Requires: clang%{_sonum}-devel = %{version}
Provides: llvm-clang-devel = %{version}
Obsoletes: llvm-clang-devel < %{version}
Provides: clang-devel-static = %{version}
Obsoletes: clang-devel-static < %{version}
%obsolete_llvm_versioned clang devel
%description -n clang-devel
This package contains the clang (C language) frontend for LLVM.
(development files)
This package is a dummy package that depends on the version of
clang-devel that openSUSE currently supports. Packages that
don't require a specific Clang version should depend on this.
%package -n clang-doc
Summary: Documentation for Clang
Group: Documentation/HTML
Requires: clang = %{version}
Requires: clang%{_sonum}-doc = %{version}
%obsolete_llvm_versioned clang doc
%description -n clang-doc
This package contains documentation for the Clang compiler.
This package is a dummy package that depends on the version of
clang-doc that openSUSE currently supports. Packages that
don't require a specific Clang version should depend on this.
%package gold
Summary: Gold linker plugin for LLVM
Group: Development/Tools/Building
Requires: llvm%{_sonum}-gold = %{version}
%obsolete_llvm_versioned llvm gold
%description gold
This package contains the Gold linker plugin for LLVM.
This package is a dummy package that depends on the version of
llvm-gold that openSUSE currently supports. Packages that
don't require a specific LLVM version should depend on this.
%package vim-plugins
Summary: Vim plugins for LLVM
Group: Productivity/Text/Editors
Requires: llvm%{_sonum}-vim-plugins = %{version}
Supplements: packageand(llvm:vim)
%obsolete_llvm_versioned llvm vim-plugins
BuildArch: noarch
%description vim-plugins
This package contains vim plugins for LLVM like syntax highlighting.
This package is a dummy package that depends on the version of
llvm-vim-plugins that openSUSE currently supports. Packages that
don't require a specific LLVM version should depend on this.
%package opt-viewer
Summary: Tools for visualising the LLVM optimization records
Group: Development/Languages/Other
Requires: llvm%{_sonum}-opt-viewer = %{version}
%obsolete_llvm_versioned llvm opt-viewer
BuildArch: noarch
%description opt-viewer
Set of tools for visualising the LLVM optimization records generated
with -fsave-optimization-record. Used for compiler-assisted performance
analysis.
This package is a dummy package that depends on the version of
llvm-opt-viewer that openSUSE currently supports. Packages that
don't require a specific LLVM version should depend on this.
%package -n lldb
Summary: Software debugger built using LLVM libraries
Group: Development/Tools/Debuggers
URL: https://lldb.llvm.org/
Requires: lldb%{_sonum} = %{version}
Recommends: python3-lldb
%description -n lldb
LLDB is a next generation, high-performance debugger. It is built as a set
of reusable components which highly leverage existing libraries in the
larger LLVM Project, such as the Clang expression parser and LLVM
disassembler.
This package is a dummy package that depends on the version of
lldb that openSUSE currently supports. Packages that
don't require a specific LLDB version should depend on this.
%package -n lldb-devel
Summary: Development files for LLDB
Group: Development/Libraries/C and C++
Requires: lldb%{_sonum}-devel = %{version}
%obsolete_llvm_versioned lldb devel
%description -n lldb-devel
This package contains the development files for LLDB.
This package is a dummy package that depends on the version of
lldb-devel that openSUSE currently supports. Packages that
don't require a specific LLDB version should depend on this.
%package -n python3-clang
Summary: Python bindings for libclang
Group: Development/Libraries/Python
Requires: python3-clang%{_sonum}
%obsolete_llvm_versioned python3-clang
BuildArch: noarch
%description -n python3-clang
This package contains the Python bindings to clang (C language)
frontend for LLVM.
%package -n python3-lldb
Summary: Python bindings for liblldb
Group: Development/Libraries/Python
Requires: python3-lldb%{_sonum} = %{version}
%obsolete_llvm_versioned python3-lldb
%description -n python3-lldb
This package contains the Python bindings to clang (C language) frontend for LLVM.
This package is a dummy package that depends on the version of
python3-lldb that openSUSE currently supports. Packages that
don't require a specific LLDB version should depend on this.
%package -n lld
Summary: Linker for Clang/LLVM
Group: Development/Tools/Building
URL: https://lld.llvm.org/
Requires: lld%{_sonum} = %{version}
%description -n lld
LLD is a linker from the LLVM project. That is a drop-in replacement for
system linkers and runs much faster than them. It also provides features that
are useful for toolchain developers.
%package polly
Summary: LLVM Framework for High-Level Loop and Data-Locality Optimizations
Group: Development/Languages/Other
URL: https://polly.llvm.org/
Requires: llvm%{_sonum}-polly = %{version}
%obsolete_llvm_versioned llvm polly
%description polly
Polly is a high-level loop and data-locality optimizer and optimization
infrastructure for LLVM. It uses an abstract mathematical representation based
on integer polyhedra to analyze and optimize the memory access pattern of a
program. Polly can currently perform classical loop transformations, especially
tiling and loop fusion to improve data-locality. It can also exploit OpenMP
level parallelism and expose SIMDization opportunities.
This package is a dummy package that depends on the version of
llvm-polly that openSUSE currently supports. Packages that
don't require a specific LLVM version should depend on this.
%package polly-devel
Summary: Development files for Polly
Group: Development/Libraries/C and C++
Requires: llvm%{_sonum}-polly-devel = %{version}
Requires: llvm-polly = %{version}
%obsolete_llvm_versioned llvm polly-devel
%description polly-devel
This package contains the development files for Polly.
This package is a dummy package that depends on the version of
llvm-polly-devel that openSUSE currently supports. Packages that
don't require a specific LLVM version should depend on this.
%prep
# Not needed
%build
echo "This is a dummy package to provide a dependency on the system compiler." > README
%install
# Not needed
%files
%doc README
%files -n clang
%doc README
%files gold
%doc README
%files devel
%doc README
%files doc
%doc README
%files -n clang-devel
%doc README
%files -n clang-doc
%doc README
%files vim-plugins
%doc README
%files opt-viewer
%doc README
%if 0%{?has_lldb}
%files -n lldb
%doc README
%files -n lldb-devel
%doc README
%endif
%files -n python3-clang
%doc README
%if 0%{?has_lldb_python}
%files -n python3-lldb
%doc README
%endif
%files -n lld
%doc README
%files polly
%doc README
%files polly-devel
%doc README
%changelog