source: projects/specs/trunk/r/rust/rust-vl.spec @ 12512

Revision 12512, 26.9 KB checked in by tomop, 3 years ago (diff)

rust-1.48.0-1

Line 
1%bcond_with bootstrap
2%bcond_with test
3%bcond_with newrpm
4%bcond_without clang
5%bcond_without bundled_libgit2
6%bcond_without bundled_libssh2
7
8# Some sub-packages are versioned independently of the rust compiler and runtime itself.
9# Also beware that if any of these are not changed in a version bump, then the release
10# number should still increase, not be reset to 1!
11%global rustc_version 1.48.0
12%global cargo_version %{rustc_version}
13%global rustfmt_version %{rustc_version}
14%global rls_version %{rustc_version}
15%global clippy_version %{rustc_version}
16
17# The channel can be stable, beta, or nightly
18%{!?channel: %global channel stable}
19
20# Only x86_64 and i686 are Tier 1 platforms at this time.
21# https://forge.rust-lang.org/platform-support.html
22%global rust_arches x86_64 i686
23
24# To bootstrap from scratch, set the channel and date from src/stage0.txt
25# e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24
26# or nightly wants some beta-YYYY-MM-DD
27%global bootstrap_rust 1.46.0
28%global bootstrap_cargo 1.46.0
29%global bootstrap_channel %{bootstrap_rust}
30
31# Only the specified arches will use bootstrap binaries.
32%if %{with bootstrap}
33%global bootstrap_arches %%{rust_arches}
34%endif
35
36# We generally don't want llvm-static present at all, since llvm-config will
37# make us link statically.  But we can opt in, e.g. to aid LLVM rebases.
38# FIXME: LLVM 3.9 prefers shared linking now! Which is good, but next time we
39# *want* static we'll have to force it with "llvm-config --link-static".
40# See also https://github.com/rust-lang/rust/issues/36854
41# The new rustbuild accepts `--enable-llvm-link-shared`, else links static.
42%bcond_with llvm_static
43
44# We can also choose to just use Rust's bundled LLVM, in case the system LLVM
45# is insufficient.  Rust currently requires LLVM 3.7+.
46%bcond_with bundled_llvm
47
48# LLDB only works on some architectures
49%ifarch %{arm} aarch64 %{ix86} x86_64
50# LLDB isn't available everywhere...
51%bcond_without lldb
52%else
53%bcond_with lldb
54%endif
55
56Summary:        The Rust Programming Language
57Name:           rust
58Version:        %{rustc_version}
59Release:        1%{?_dist_release}
60Group:          programming
61Vendor:         Project Vine
62Distribution:   Vine Linux
63
64License:        (ASL 2.0 or MIT) and (BSD and ISC and MIT)
65# ^ written as: (rust itself) and (bundled libraries)
66URL:            https://www.rust-lang.org
67
68ExclusiveArch:  %{rust_arches}
69
70%if "%{channel}" == "stable"
71%global rustc_package rustc-%{version}-src
72%else
73%global rustc_package rustc-%{channel}-src
74%endif
75Source0:        https://static.rust-lang.org/dist/%{rustc_package}.tar.gz
76
77# Get the Rust triple for any arch.
78%{lua: function rust_triple(arch)
79  local abi = "gnu"
80  if arch == "armv7hl" then
81    arch = "armv7"
82    abi = "gnueabihf"
83  elseif arch == "ppc64" then
84    arch = "powerpc64"
85  elseif arch == "ppc64le" then
86    arch = "powerpc64le"
87  end
88  return arch.."-unknown-linux-"..abi
89end}
90
91%global rust_triple %{lua: print(rust_triple(rpm.expand("%{_target_cpu}")))}
92
93%if %defined bootstrap_arches
94# For each bootstrap arch, add an additional binary Source.
95# Also define bootstrap_source just for the current target.
96%{lua: do
97  local bootstrap_arches = {}
98  for arch in string.gmatch(rpm.expand("%{bootstrap_arches}"), "%S+") do
99    table.insert(bootstrap_arches, arch)
100  end
101  local base = rpm.expand("https://static.rust-lang.org/dist"
102                          .."/rust-%{bootstrap_channel}")
103  local target_arch = rpm.expand("%{_target_cpu}")
104  for i, arch in ipairs(bootstrap_arches) do
105    print(string.format("Source%d: %s-%s.tar.gz\n",
106                        i, base, rust_triple(arch)))
107    if arch == target_arch then
108      rpm.define("bootstrap_source "..i)
109    end
110  end
111end}
112%endif
113
114%ifarch %{bootstrap_arches}
115%global bootstrap_root rust-%{bootstrap_channel}-%{rust_triple}
116%global local_rust_root %{_builddir}/%{bootstrap_root}/usr
117Provides:       bundled(%{name}-bootstrap) = %{bootstrap_rust}
118%else
119BuildRequires:  cargo >= %{bootstrap_cargo}
120BuildRequires:  %{name} >= %{bootstrap_rust}
121BuildConflicts: %{name} > %{version}
122%global local_rust_root %{_prefix}
123%endif
124
125BuildRequires:  cmake
126BuildRequires:  make
127%if %{with clang}
128BuildRequires:  clang
129BuildRequires:  lld
130%else
131BuildRequires:  gcc
132BuildRequires:  gcc-c++
133%endif
134%if %{without bundled_libgit2}
135BuildRequires:  libgit2-devel
136%endif
137%if %{without bundled_libssh2}
138BuildRequires:  libssh2-devel
139%endif
140BuildRequires:  ncurses-devel
141BuildRequires:  openssl-devel
142BuildRequires:  zlib-devel
143BuildRequires:  python3
144BuildRequires:  python3-rpm-macros
145BuildRequires:  curl
146BuildRequires:  curl-devel
147BuildRequires:  xz-devel
148
149%if %{with bundled_llvm}
150BuildRequires:  cmake
151BuildRequires:  git
152Provides:       bundled(llvm) = 6.0
153%else
154BuildRequires:  cmake
155%if %defined llvm
156%global llvm_root %{_libdir}/%{llvm}
157%else
158%global llvm llvm
159%global llvm_root %{_prefix}
160%global llvm_has_filecheck 1
161%endif
162BuildRequires:  %{llvm}-devel >= 11.0.0
163%if %{with llvm_static}
164BuildRequires:  %{llvm}-static
165BuildRequires:  libffi-devel
166%else
167BuildConflicts: %{llvm}-static
168%endif
169%endif
170
171# make check needs "ps" for src/test/run-pass/wait-forked-but-failed-child.rs
172BuildRequires:  procps
173
174# debuginfo-gdb tests need gdb
175BuildRequires:  gdb
176
177# TODO: work on unbundling these!
178Provides:       bundled(jquery) = 2.1.4
179Provides:       bundled(miniz) = 1.14
180
181# Virtual provides for folks who attempt "dnf install rustc"
182Provides:       rustc = %{version}-%{release}
183Provides:       rustc%{?_isa} = %{version}-%{release}
184
185# Always require our exact standard library
186Requires:       %{name}-std-static%{?_isa} = %{version}-%{release}
187
188# The C compiler is needed at runtime just for linking.  Someday rustc might
189# invoke the linker directly, and then we'll only need binutils.
190# https://github.com/rust-lang/rust/issues/11937
191Requires:       /usr/bin/cc
192
193# ALL Rust libraries are private, because they don't keep an ABI.
194%global _privatelibs lib(.*-[[:xdigit:]]{16}*|rustc.*)[.]so.*
195%global __provides_exclude ^(%{_privatelibs})$
196%global __requires_exclude ^(%{_privatelibs})$
197%global __provides_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$
198%global __requires_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$
199
200%if !%{with newrpm}
201# eu-strip is very eager by default, so we have to limit it to -g, only debugging symbols.
202%global _find_debuginfo_opts -g
203%undefine _include_minidebuginfo
204%else
205# Newer find-debuginfo.sh supports --keep-section, which is preferable. rhbz1465997
206%global _find_debuginfo_opts --keep-section .rustc
207%endif
208
209# Use hardening ldflags.
210%global rustflags -Clink-arg=-Wl,-z,relro,-z,now
211
212%if %{without bundled_llvm} && "%{llvm_root}" != "%{_prefix}"
213# https://github.com/rust-lang/rust/issues/40717
214%global library_path $(%{llvm_root}/bin/llvm-config --libdir)
215%endif
216
217%description
218Rust is a systems programming language that runs blazingly fast, prevents
219segfaults, and guarantees thread safety.
220
221This package includes the Rust compiler and documentation generator.
222
223
224%package std-static
225Summary:        Standard library for Rust
226Group:          programming
227
228%description std-static
229This package includes the standard libraries for building applications
230written in Rust.
231
232
233%package debugger-common
234Summary:        Common debugger pretty printers for Rust
235Group:          programming
236BuildArch:      noarch
237
238%description debugger-common
239This package includes the common functionality for %{name}-gdb and %{name}-lldb.
240
241
242%package gdb
243Summary:        GDB pretty printers for Rust
244Group:          programming
245BuildArch:      noarch
246Requires:       gdb
247Requires:       %{name}-debugger-common = %{version}-%{release}
248
249%description gdb
250This package includes the rust-gdb script, which allows easier debugging of Rust
251programs.
252
253
254%if %{with lldb}
255
256%package lldb
257Summary:        LLDB pretty printers for Rust
258Group:          programming
259
260# It could be noarch, but lldb has limited availability
261#BuildArch:      noarch
262
263Requires:       lldb
264Requires:       python3-lldb
265Requires:       %{name}-debugger-common = %{version}-%{release}
266
267%description lldb
268This package includes the rust-lldb script, which allows easier debugging of Rust
269programs.
270
271%endif
272
273
274%package doc
275Summary:        Documentation for Rust
276Group:          documentation
277# NOT BuildArch:      noarch
278# Note, while docs are mostly noarch, some things do vary by target_arch.
279# Koji will fail the build in rpmdiff if two architectures build a noarch
280# subpackage differently, so instead we have to keep its arch.
281
282%description doc
283This package includes HTML documentation for the Rust programming language and
284its standard library.
285
286
287%package -n cargo
288Summary:        Rust's package manager and build tool
289Version:        %{cargo_version}
290Group:          programming
291# For tests:
292BuildRequires:  git
293# Cargo is not much use without Rust
294Requires:       rust
295
296%description -n cargo
297Cargo is a tool that allows Rust projects to declare their various dependencies
298and ensure that you'll always get a repeatable build.
299
300
301%package -n cargo-doc
302Summary:        Documentation for Cargo
303Version:        %{cargo_version}
304Group:          programming
305BuildArch:      noarch
306# Cargo no longer builds its own documentation
307# https://github.com/rust-lang/cargo/pull/4904
308Requires:       rust-doc = %{rustc_version}-%{release}
309
310%description -n cargo-doc
311This package includes HTML documentation for Cargo.
312
313
314%package -n rustfmt
315Summary:        Tool to find and fix Rust formatting issues
316Version:        %{rustfmt_version}
317Group:          programming
318Requires:       cargo
319Obsoletes:      rustfmt-preview < 1.0.0
320
321%description -n rustfmt
322A tool for formatting Rust code according to style guidelines.
323
324
325%package -n rls
326Summary:        Rust Language Server for IDE integration
327Version:        %{rls_version}
328Group:          programming
329Requires:       rust-analysis
330# /usr/bin/rls is dynamically linked against internal rustc libs
331Requires:       %{name} = %{rustc_version}-%{release}
332Obsoletes:      rls-preview < 1.0.0
333
334%description -n rls
335The Rust Language Server provides a server that runs in the background,
336providing IDEs, editors, and other tools with information about Rust programs.
337It supports functionality such as 'goto definition', symbol search,
338reformatting, and code completion, and enables renaming and refactorings.
339
340
341%package -n clippy
342Summary:        Lints to catch common mistakes and improve your Rust code
343Version:        %{clippy_version}
344Group:          programming
345License:        MPLv2.0
346Requires:       cargo
347# /usr/bin/clippy-driver is dynamically linked against internal rustc libs
348Requires:       %{name} = %{rustc_version}-%{release}
349Obsoletes:      clippy-preview < 1.0.0
350
351%description -n clippy
352A collection of lints to catch common mistakes and improve your Rust code.
353
354
355%package src
356Summary:        Sources for the Rust standard library
357Group:          programming
358BuildArch:      noarch
359
360%description src
361This package includes source files for the Rust standard library.  It may be
362useful as a reference for code completion tools in various editors.
363
364
365%package analysis
366Summary:        Compiler analysis data for the Rust standard library
367Group:          programming
368Requires:       rust-std-static = %{rustc_version}-%{release}
369
370%description analysis
371This package contains analysis data files produced with rustc's -Zsave-analysis
372feature for the Rust standard library. The RLS (Rust Language Server) uses this
373data to provide information about the Rust standard library.
374
375
376%debug_package
377
378
379%prep
380%ifarch %{bootstrap_arches}
381%setup -q -n %{bootstrap_root} -T -b %{bootstrap_source}
382./install.sh --components=cargo,rustc,rust-std-%{rust_triple} \
383  --prefix=%{local_rust_root} --disable-ldconfig
384test -f '%{local_rust_root}/bin/cargo'
385test -f '%{local_rust_root}/bin/rustc'
386%endif
387
388%setup -q -n %{rustc_package}
389
390sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure
391
392%if %without bundled_llvm
393rm -rf src/llvm-project/
394mkdir -p src/llvm-project/libunwind/
395%endif
396
397# We never enable emscripten.
398rm -rf src/llvm-emscripten/
399
400# Remove other unused vendored libraries
401#rm -rf vendor/curl-sys/curl/
402rm -rf vendor/jemalloc-sys/jemalloc/
403rm -rf vendor/libz-sys/src/zlib/
404rm -rf vendor/lzma-sys/xz-*/
405rm -rf vendor/openssl-src/openssl/
406%if %{without bundled_libgit2}
407rm -rf vendor/libgit2-sys/libgit2/
408%endif
409%if %{without bundled_libssh2}
410rm -rf vendor/libssh2-sys/libssh2/
411%endif
412
413# This only affects the transient rust-installer, but let it use our dynamic xz-libs
414sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/tool.rs
415
416# rename bundled license for packaging
417if [ -e vendor/backtrace-sys/src/libbacktrace/LICENSE ]; then
418  cp -a vendor/backtrace-sys/src/libbacktrace/LICENSE{,-libbacktrace}
419fi
420
421%if %{with bundled_llvm} && 0%{?epel}
422mkdir -p cmake-bin
423ln -s /usr/bin/cmake cmake-bin/cmake
424%global cmake_path $PWD/cmake-bin
425%endif
426
427%if %{without bundled_llvm} && %{with llvm_static}
428# Static linking to distro LLVM needs to add -lffi
429# https://github.com/rust-lang/rust/issues/34486
430sed -i.ffi -e '$a #[link(name = "ffi")] extern {}' \
431  src/librustc_llvm/lib.rs
432%endif
433
434# The configure macro will modify some autoconf-related files, which upsets
435# cargo when it tries to verify checksums in those files.  If we just truncate
436# that file list, cargo won't have anything to complain about.
437find vendor -name .cargo-checksum.json \
438  -exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+'
439
440
441%build
442%if %{without bundled_libgit2}
443export LIBGIT2_SYS_USE_PKG_CONFIG=1
444%endif
445%if %{without bundled_libssh2}
446export LIBSSH2_SYS_USE_PKG_CONFIG=1
447%endif
448
449%{?cmake_path:export PATH=%{cmake_path}:$PATH}
450%{?library_path:export LIBRARY_PATH="%{library_path}"}
451%{?rustflags:export RUSTFLAGS="%{rustflags}"}
452
453# We're going to override --libdir when configuring to get rustlib into a
454# common path, but we'll fix the shared libraries during install.
455%global common_libdir %{_prefix}/lib
456%global rustlibdir %{common_libdir}/rustlib
457
458%ifarch x86_64
459%if %{with newrpm}
460%define enable_debuginfo --debuginfo-level=0 --debuginfo-level-std=2
461%else
462%define enable_debuginfo --debuginfo-level=0
463%global debug_package %{nil}
464%endif
465%else
466%define enable_debuginfo --debuginfo-level=0
467%global debug_package %{nil}
468%endif
469
470# Some builders have relatively little memory for their CPU count.
471# At least 2GB per CPU is a good rule of thumb for building rustc.
472ncpus=$(/usr/bin/getconf _NPROCESSORS_ONLN)
473max_cpus=$(( ($(LANG=C free -g | awk '/^Mem:/{print $2}') + 1) / 2 ))
474if [ "$max_cpus" -ge 1 -a "$max_cpus" -lt "$ncpus" ]; then
475  ncpus="$max_cpus"
476fi
477
478%if %{with clang}
479export CC=clang
480export CXX=clang++
481export LDFLAGS="$LDFLAGS -fuse-ld=lld"
482export RUSTFLAGS="$RUSTFLAGS -C linker=clang -C link-arg=-fuse-ld=lld"
483%endif
484
485# workaround for https://github.com/rust-lang/rust/issues/69953
486#  --set rust.deny-warnings=false
487
488%configure \
489  --disable-option-checking \
490  --libdir=%{common_libdir} \
491  --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \
492  --enable-local-rust --local-rust-root=%{local_rust_root} \
493  %{!?with_bundled_llvm: --llvm-root=%{llvm_root} \
494    %{!?llvm_has_filecheck: --disable-codegen-tests} \
495    %{!?with_llvm_static: --enable-llvm-link-shared } } \
496  --disable-rpath \
497  %{enable_debuginfo} \
498  --enable-extended \
499  --enable-vendor \
500  --enable-verbose-tests \
501  --set rust.codegen-units-std=1 \
502  --release-channel=%{channel} \
503  --set rust.deny-warnings=false \
504  %{nil}
505
506RUST_BACKTRACE=1 %{__python3} ./x.py build -j "$ncpus" --stage 2
507%{__python3} ./x.py doc --stage 2
508
509
510%install
511rm -rf %{buildroot}
512
513%{?cmake_path:export PATH=%{cmake_path}:$PATH}
514%{?library_path:export LIBRARY_PATH="%{library_path}"}
515%{?rustflags:export RUSTFLAGS="%{rustflags}"}
516%if %{with clang}
517export CC=clang
518export CXX=clang++
519export RUSTFLAGS="$RUSTFLAGS -C linker=clang -C link-arg=-fuse-ld=lld"
520%endif
521
522DESTDIR=%{buildroot} ./x.py install
523#DESTDIR=%{buildroot} ./x.py install src
524
525
526# Make sure the shared libraries are in the proper libdir
527%if "%{_libdir}" != "%{common_libdir}"
528mkdir -p %{buildroot}%{_libdir}
529find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' \
530  -exec mv -v -t %{buildroot}%{_libdir} '{}' '+'
531%endif
532
533# The shared libraries should be executable for debuginfo extraction.
534find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \
535  -exec chmod -v +x '{}' '+'
536
537# The libdir libraries are identical to those under rustlib/.  It's easier on
538# library loading if we keep them in libdir, but we do need them in rustlib/
539# to support dynamic linking for compiler plugins, so we'll symlink.
540(cd "%{buildroot}%{rustlibdir}/%{rust_triple}/lib" &&
541 find ../../../../%{_lib} -maxdepth 1 -name '*.so' |
542 while read lib; do
543   if [ -f "${lib##*/}" ]; then
544     # make sure they're actually identical!
545     cmp "$lib" "${lib##*/}"
546     ln -v -f -s -t . "$lib"
547   fi
548 done)
549 
550# Remove installer artifacts (manifests, uninstall scripts, etc.)
551find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+'
552
553# Remove backup files from %%configure munging
554find %{buildroot}%{rustlibdir} -type f -name '*.orig' -exec rm -v '{}' '+'
555
556# https://fedoraproject.org/wiki/Changes/Make_ambiguous_python_shebangs_error
557# We don't actually need to ship any of those python scripts in rust-src anyway.
558
559find %{buildroot}%{rustlibdir}/src -type f -name '*.py' -exec rm -v '{}' '+'
560
561# FIXME: __os_install_post will strip the rlibs
562# -- should we find a way to preserve debuginfo?
563
564# Remove unwanted documentation files (we already package them)
565# Remove unwanted documentation files (we already package them)
566rm -f %{buildroot}%{_docdir}/%{name}/README.md
567rm -f %{buildroot}%{_docdir}/%{name}/COPYRIGHT
568rm -f %{buildroot}%{_docdir}/%{name}/LICENSE
569rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-APACHE
570rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-MIT
571rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-THIRD-PARTY
572rm -f %{buildroot}%{_docdir}/%{name}/*.old
573
574# Sanitize the HTML documentation
575find %{buildroot}%{_docdir}/%{name}/html -empty -delete
576find %{buildroot}%{_docdir}/%{name}/html -type f -exec chmod -x '{}' '+'
577
578# Create the path for crate-devel packages
579mkdir -p %{buildroot}%{_datadir}/cargo/registry
580
581# Cargo no longer builds its own documentation
582# https://github.com/rust-lang/cargo/pull/4904
583mkdir -p %{buildroot}%{_docdir}/cargo
584ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html
585
586%if %{without lldb}
587rm -f %{buildroot}%{_bindir}/rust-lldb
588rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py*
589rm -f %{buildroot}%{rustlibdir}/etc/lldb_commands
590%endif
591
592%if %{with bundled_llvm}
593rm -rf %{buildroot}/home
594%endif
595
596
597%check
598%if %{with test}
599%{?cmake_path:export PATH=%{cmake_path}:$PATH}
600%{?library_path:export LIBRARY_PATH="%{library_path}"}
601%{?rustflags:export RUSTFLAGS="%{rustflags}"}
602%if %{with clang}
603export CC=clang
604export CXX=clang++
605export LD=ld.lld
606export RUSTFLAGS="$RUSTFLAGS -C linker=ld.lld -C link-arg=-fuse-ld=lld"
607%endif
608
609# The results are not stable on koji, so mask errors and just log it.
610%{__python3} ./x.py test --no-fail-fast || :
611%{__python3} ./x.py test --no-fail-fast cargo || :
612%{__python3} ./x.py test --no-fail-fast clippy || :
613%{__python3} ./x.py test --no-fail-fast rls || :
614%{__python3} ./x.py test --no-fail-fast rustfmt || :
615%endif
616
617
618%post -p /sbin/ldconfig
619%postun -p /sbin/ldconfig
620
621
622%files
623%license COPYRIGHT LICENSE-APACHE LICENSE-MIT
624#license src/libbacktrace/LICENSE-libbacktrace
625%doc README.md
626%{_bindir}/rustc
627%{_bindir}/rustdoc
628%{_libdir}/*.so
629%{_mandir}/man1/rustc.1*
630%{_mandir}/man1/rustdoc.1*
631%dir %{rustlibdir}
632%dir %{rustlibdir}/%{rust_triple}
633%dir %{rustlibdir}/%{rust_triple}/lib
634%{rustlibdir}/%{rust_triple}/lib/*.so
635
636%files std-static
637%dir %{rustlibdir}
638%dir %{rustlibdir}/%{rust_triple}
639%dir %{rustlibdir}/%{rust_triple}/lib
640%{rustlibdir}/%{rust_triple}/lib/*.rlib
641
642%files debugger-common
643%dir %{rustlibdir}
644%dir %{rustlibdir}/etc
645%{rustlibdir}/etc/rust_types.py*
646
647%files gdb
648%{_bindir}/rust-gdb
649%{rustlibdir}/etc/gdb_*.py*
650%exclude %{_bindir}/rust-gdbgui
651
652%if %with lldb
653%files lldb
654%{_bindir}/rust-lldb
655%{rustlibdir}/etc/lldb_*.py*
656%{rustlibdir}/etc/lldb_commands
657%endif
658
659%files doc
660%docdir %{_docdir}/%{name}
661%dir %{_docdir}/%{name}
662%dir %{_docdir}/%{name}/html
663%{_docdir}/%{name}/html/*/
664%{_docdir}/%{name}/html/*.html
665%{_docdir}/%{name}/html/*.css
666%{_docdir}/%{name}/html/*.js
667%{_docdir}/%{name}/html/*.png
668%{_docdir}/%{name}/html/*.svg
669%{_docdir}/%{name}/html/*.woff
670%license %{_docdir}/%{name}/html/*.txt
671%license %{_docdir}/%{name}/html/*.md
672
673%files -n cargo
674%license src/tools/cargo/LICENSE-APACHE src/tools/cargo/LICENSE-MIT src/tools/cargo/LICENSE-THIRD-PARTY
675%doc src/tools/cargo/README.md
676%{_bindir}/cargo
677%{_mandir}/man1/cargo*.1*
678%dir %{_sysconfdir}/bash_completion.d
679%{_sysconfdir}/bash_completion.d/cargo
680%dir %{_datadir}/zsh
681%dir %{_datadir}/zsh/site-functions
682%{_datadir}/zsh/site-functions/_cargo
683%dir %{_datadir}/cargo
684%dir %{_datadir}/cargo/registry
685
686%files -n cargo-doc
687%docdir %{_docdir}/cargo
688%dir %{_docdir}/cargo
689%{_docdir}/cargo/html
690
691%files -n rustfmt
692%{_bindir}/rustfmt
693%{_bindir}/cargo-fmt
694%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md
695%license src/tools/rustfmt/LICENSE-{APACHE,MIT}
696
697%files -n rls
698%{_bindir}/rls
699%doc src/tools/rls/{README.md,COPYRIGHT,debugging.md}
700%license src/tools/rls/LICENSE-{APACHE,MIT}
701
702%files -n clippy
703%{_bindir}/cargo-clippy
704%{_bindir}/clippy-driver
705%doc src/tools/clippy/{README.md,CHANGELOG.md}
706%license src/tools/clippy/LICENSE*
707
708%files src
709%dir %{rustlibdir}
710%{rustlibdir}/src
711
712%files analysis
713%{_bindir}/rust-analyzer
714%{rustlibdir}/%{rust_triple}/analysis/
715
716
717%changelog
718* Sat Dec 12 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.48.0-1
719- new upstream release.
720
721* Fri Oct 16 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.47.0-1
722- new upstream release.
723
724* Thu Sep 24 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.46.0-1
725- new upstream release.
726
727* Thu Mar 26 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.42.0-1
728- new upstream release.
729- separated debuginfo.
730
731* Sun Dec 22 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.40.0-1
732- new upstream release.
733
734* Sat Sep 28 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.38.0-1
735- new upstream release.
736- erased "-preview" from the name of subpackages.
737
738* Wed Dec 05 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.30.1-1
739- new upstream release.
740- dropped Patch1.
741- added subpackages cargo, cargo-doc, rustformat-preview, rls-preview, clippy-preview and rust-analysis.
742
743* Fri Jan 05 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.23.0-1
744- Update to 1.23.0 (stable).
745
746* Tue Jan 02 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.23.0-0.beta1
747- initial build for Vine Linux.
748- Update to 1.23.0-beta.
749- built a bootstrap rpm.
750
751* Thu Nov 23 2017 Josh Stone <jistone@redhat.com> - 1.22.1-1
752- Update to 1.22.1.
753
754* Thu Oct 12 2017 Josh Stone <jistone@redhat.com> - 1.21.0-1
755- Update to 1.21.0.
756
757* Mon Sep 11 2017 Josh Stone <jistone@redhat.com> - 1.20.0-2
758- ABI fixes for ppc64 and s390x.
759
760* Thu Aug 31 2017 Josh Stone <jistone@redhat.com> - 1.20.0-1
761- Update to 1.20.0.
762- Add a rust-src subpackage.
763
764* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.19.0-4
765- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
766
767* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.19.0-3
768- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
769
770* Mon Jul 24 2017 Josh Stone <jistone@redhat.com> - 1.19.0-2
771- Use find-debuginfo.sh --keep-section .rustc
772
773* Thu Jul 20 2017 Josh Stone <jistone@redhat.com> - 1.19.0-1
774- Update to 1.19.0.
775
776* Thu Jun 08 2017 Josh Stone <jistone@redhat.com> - 1.18.0-1
777- Update to 1.18.0.
778
779* Mon May 08 2017 Josh Stone <jistone@redhat.com> - 1.17.0-2
780- Move shared libraries back to libdir and symlink in rustlib
781
782* Thu Apr 27 2017 Josh Stone <jistone@redhat.com> - 1.17.0-1
783- Update to 1.17.0.
784
785* Mon Mar 20 2017 Josh Stone <jistone@redhat.com> - 1.16.0-3
786- Make rust-lldb arch-specific to deal with lldb deps
787
788* Fri Mar 17 2017 Josh Stone <jistone@redhat.com> - 1.16.0-2
789- Limit rust-lldb arches
790
791* Thu Mar 16 2017 Josh Stone <jistone@redhat.com> - 1.16.0-1
792- Update to 1.16.0.
793- Use rustbuild instead of the old makefiles.
794- Update bootstrapping to include rust-std and cargo.
795- Add a rust-lldb subpackage.
796
797* Thu Feb 09 2017 Josh Stone <jistone@redhat.com> - 1.15.1-1
798- Update to 1.15.1.
799- Require rust-rpm-macros for new crate packaging.
800- Keep shared libraries under rustlib/, only debug-stripped.
801- Merge and clean up conditionals for epel7.
802
803* Fri Dec 23 2016 Josh Stone <jistone@redhat.com> - 1.14.0-2
804- Rebuild without bootstrap binaries.
805
806* Thu Dec 22 2016 Josh Stone <jistone@redhat.com> - 1.14.0-1
807- Update to 1.14.0.
808- Rewrite bootstrap logic to target specific arches.
809- Bootstrap ppc64, ppc64le, s390x. (thanks to Sinny Kumari for testing!)
810
811* Thu Nov 10 2016 Josh Stone <jistone@redhat.com> - 1.13.0-1
812- Update to 1.13.0.
813- Use hardening flags for linking.
814- Split the standard library into its own package
815- Centralize rustlib/ under /usr/lib/ for multilib integration.
816
817* Thu Oct 20 2016 Josh Stone <jistone@redhat.com> - 1.12.1-1
818- Update to 1.12.1.
819
820* Fri Oct 14 2016 Josh Stone <jistone@redhat.com> - 1.12.0-7
821- Rebuild with LLVM 3.9.
822- Add ncurses-devel for llvm-config's -ltinfo.
823
824* Thu Oct 13 2016 Josh Stone <jistone@redhat.com> - 1.12.0-6
825- Rebuild with llvm-static, preparing for 3.9
826
827* Fri Oct 07 2016 Josh Stone <jistone@redhat.com> - 1.12.0-5
828- Rebuild with fixed eu-strip (rhbz1380961)
829
830* Fri Oct 07 2016 Josh Stone <jistone@redhat.com> - 1.12.0-4
831- Rebuild without bootstrap binaries.
832
833* Thu Oct 06 2016 Josh Stone <jistone@redhat.com> - 1.12.0-3
834- Bootstrap aarch64.
835- Use jemalloc's MALLOC_CONF to work around #36944.
836- Apply pr36933 to really disable armv7hl NEON.
837
838* Sat Oct 01 2016 Josh Stone <jistone@redhat.com> - 1.12.0-2
839- Protect .rustc from rpm stripping.
840
841* Fri Sep 30 2016 Josh Stone <jistone@redhat.com> - 1.12.0-1
842- Update to 1.12.0.
843- Always use --local-rust-root, even for bootstrap binaries.
844- Remove the rebuild conditional - the build system now figures it out.
845- Let minidebuginfo do its thing, since metadata is no longer a note.
846- Let rust build its own compiler-rt builtins again.
847
848* Sat Sep 03 2016 Josh Stone <jistone@redhat.com> - 1.11.0-3
849- Rebuild without bootstrap binaries.
850
851* Fri Sep 02 2016 Josh Stone <jistone@redhat.com> - 1.11.0-2
852- Bootstrap armv7hl, with backported no-neon patch.
853
854* Wed Aug 24 2016 Josh Stone <jistone@redhat.com> - 1.11.0-1
855- Update to 1.11.0.
856- Drop the backported patches.
857- Patch get-stage0.py to trust existing bootstrap binaries.
858- Use libclang_rt.builtins from compiler-rt, dodging llvm-static issues.
859- Use --local-rust-root to make sure the right bootstrap is used.
860
861* Sat Aug 13 2016 Josh Stone <jistone@redhat.com> 1.10.0-4
862- Rebuild without bootstrap binaries.
863
864* Fri Aug 12 2016 Josh Stone <jistone@redhat.com> - 1.10.0-3
865- Initial import into Fedora (#1356907), bootstrapped
866- Format license text as suggested in review.
867- Note how the tests already run in parallel.
868- Undefine _include_minidebuginfo, because it duplicates ".note.rustc".
869- Don't let checks fail the whole build.
870- Note that -doc can't be noarch, as rpmdiff doesn't allow variations.
871
872* Tue Jul 26 2016 Josh Stone <jistone@redhat.com> - 1.10.0-2
873- Update -doc directory ownership, and mark its licenses.
874- Package and declare licenses for libbacktrace and hoedown.
875- Set bootstrap_base as a global.
876- Explicitly require python2.
877
878* Thu Jul 14 2016 Josh Stone <jistone@fedoraproject.org> - 1.10.0-1
879- Initial package, bootstrapped
Note: See TracBrowser for help on using the repository browser.