Changeset 0f9a1f08 for general/prog
- Timestamp:
- 01/18/2023 02:35:32 PM (17 months ago)
- Branches:
- 11.3, 12.0, 12.1, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, lazarus, lxqt, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, trunk, xry111/llvm18, xry111/xf86-video-removal
- Children:
- c10acfe
- Parents:
- f56d2e7 (diff), 97e7219 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- general/prog
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
general/prog/apache-ant.xml
rf56d2e7 r0f9a1f08 7 7 <!ENTITY apache-ant-download-http "https://archive.apache.org/dist/ant/source/apache-ant-&apache-ant-version;-src.tar.xz"> 8 8 <!ENTITY apache-ant-download-ftp " "> 9 <!ENTITY apache-ant-md5sum " d12488eb56ec73e079bd0f95395e06d6">9 <!ENTITY apache-ant-md5sum "4cf5c6728612f4787eda265b0a2d266b"> 10 10 <!ENTITY apache-ant-size "3.7 MB"> 11 <!ENTITY apache-ant-buildsize "2 35MB">11 <!ENTITY apache-ant-buildsize "242 MB"> 12 12 <!ENTITY apache-ant-time "0.3 SBU (excluding download time)"> 13 13 ]> -
general/prog/llvm.xml
rf56d2e7 r0f9a1f08 9 9 <!ENTITY llvm-download-http "&llvm-url;/llvm-&llvm-version;.src.tar.xz"> 10 10 <!ENTITY llvm-download-ftp " "> 11 <!ENTITY llvm-md5sum " 6812fb953d8e50f029848b281d89ad67">12 <!ENTITY llvm-size "5 1MB">13 <!ENTITY llvm-buildsize " 3.6GB (848 MB installed; add 18.3 GB for tests and 308 MB for documentation)">14 <!ENTITY llvm-time " 31 SBU (with doc, on 4 CPU cores; add 22 SBU for tests)">11 <!ENTITY llvm-md5sum "c77db4c71e1eb267358204dffe2c6e10"> 12 <!ENTITY llvm-size "50 MB"> 13 <!ENTITY llvm-buildsize "2.7 GB (848 MB installed; add 18.3 GB for tests and 308 MB for documentation)"> 14 <!ENTITY llvm-time "24 SBU (Using parallelism=4; add 22 SBU for tests)"> 15 15 16 16 <!ENTITY clang-download-http "&llvm-url;/clang-&llvm-version;.src.tar.xz"> 17 <!ENTITY clang-md5sum " f9c15101030fb669af522cc8814484e8">17 <!ENTITY clang-md5sum "a6d0141e50b48f5e60c682277dac83b4"> 18 18 <!ENTITY clang-size "18 MB"> 19 19 20 20 <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz"> 21 <!ENTITY compiler-rt-md5sum " c1d9422709c74c208bfaf7f9d707b757">22 <!ENTITY compiler-rt-size "2. 2MB">21 <!ENTITY compiler-rt-md5sum "12e6777354f0121cbe73ef13342a9302"> 22 <!ENTITY compiler-rt-size "2.3 MB"> 23 23 24 24 <!ENTITY cmake-llvm-download-http "&sources-anduin-http;/llvm/llvm-cmake-&llvm-version;.src.tar.xz"> 25 25 <!-- <!ENTITY cmake-llvm-download-http "&llvm-url;/cmake-&llvm-version;.src.tar.xz"> 26 26 Renamed cmake-15.0.1.src.tar.xz and placed on anduin.--> 27 <!ENTITY cmake-llvm-md5sum " 39eb4055b66b65c9052ea1d1240026e2">27 <!ENTITY cmake-llvm-md5sum "c3647d253f67ce255e1aba014e528f5b"> 28 28 <!ENTITY cmake-llvm-size "6.8 KB"> 29 29 ]> … … 322 322 323 323 <para> 324 Now, as the <systemitem class="username">root</systemitem> user: 325 </para> 326 327 <screen role="root"><userinput>ninja install</userinput></screen> 324 Now, as the &root; user: 325 </para> 326 327 <screen role="root"><userinput>ninja install && 328 cp bin/FileCheck /usr/bin</userinput></screen> 328 329 <!-- as of version 13.0.0, the install process seems to install the html 329 330 documentation and the manual pages. The llvm html documentation … … 457 458 clang-offload-bundler, clang-offload-packager, clang-offload-wrapper, 458 459 clang-refactor, clang-rename, clang-repl, clang-scan-deps, 459 diagtool, dsymutil, git-clang-format, hmaptool, intercept-build, llc, lli,460 diagtool, dsymutil, FileCheck, git-clang-format, hmaptool, intercept-build, llc, lli, 460 461 llvm-addr2line (symlink to llvm-symbolizer), 461 462 llvm-ar, llvm-as, llvm-bcanalyzer, … … 705 706 </varlistentry> 706 707 708 <varlistentry id="FileCheck"> 709 <term><command>FileCheck</command></term> 710 <listitem> 711 <para> 712 is a tool that reads two files (one from standard input, 713 and one specified on the command line) and uses one to verify the other. 714 </para> 715 <indexterm zone="llvm FileCheck"> 716 <primary sortas="b-FileCheck">FileCheck</primary> 717 </indexterm> 718 </listitem> 719 </varlistentry> 720 707 721 <varlistentry id="dsymutil"> 708 722 <term><command>dsymutil</command></term> -
general/prog/perl-modules/perl-io-socket-ssl.xml
rf56d2e7 r0f9a1f08 6 6 7 7 <!ENTITY my-download-http "&perl_authors;/id/S/SU/SULLR/IO-Socket-SSL-&IO-Socket-SSL-version;.tar.gz"> 8 <!ENTITY my-md5sum " f2f8fae0c2fde670a3031cbbf0b4fc4c">8 <!ENTITY my-md5sum "5fea30979d562d128c15026b736ea7c5"> 9 9 10 10 <!ENTITY IO-Socket-SSL-download-http "&perl_authors;/id/S/SU/SULLR/IO-Socket-SSL-&IO-Socket-SSL-version;.tar.gz"> -
general/prog/rust.xml
rf56d2e7 r0f9a1f08 7 7 <!ENTITY rust-download-http "https://static.rust-lang.org/dist/rustc-&rust-version;-src.tar.xz"> 8 8 <!ENTITY rust-download-ftp " "> 9 <!ENTITY rust-md5sum "e77ac3a786d013604061b17f99dd9b27"> 10 <!ENTITY rust-size "131 MB"> 11 <!-- Gentle Reminder: buildsize is how much the user requires for the real 12 install, i.e. the source with its DESTDIR *plus* the DESTDIR. You 13 can 'mkdir /tmp/RUST ; cp -a install/* /tmp/RUST' and then run 'du -sch' 14 to measure it, or du -sm to look at the size of the build tree before and 15 after the tests. --> 16 17 <!ENTITY rust-buildsize "10 GB (516 MB installed) including 266 MB of ~/.cargo files for the user building this. Add 6.2 GB including extra 243 MB of ~/.cargo files if running the tests"> 18 <!ENTITY rust-time "21 SBU (including download time; add 10 SBU for tests, both on a 4-core machine)"> 9 <!ENTITY rust-md5sum "96b082a8b44707eafa9d696923f40c28"> 10 <!ENTITY rust-size "136 MB"> 11 <!ENTITY rust-buildsize "9.1 GB (323 MB installed); add 6.2 GB if running the tests"> 12 <!ENTITY rust-time "17 SBU (including download time; add 23 SBU for tests, both on a 4-core machine)"> 19 13 ]> 20 14 … … 47 41 <para> 48 42 As with many other programming languages, rustc (the rust compiler) 49 needs a binary from which to bootstrap. It will download a stage0 binary 50 and many cargo crates (these are actually .tar.gz source archives) at 51 the start of the build, so you cannot compile it without an internet 52 connection. 53 </para> 54 55 <para> 56 These crates will then remain in various forms (cache, directories of 57 extracted source), in <filename class="directory">~/.cargo</filename> for 58 ever more. It is common for large <application>rust</application> packages 59 to use multiple versions of some crates. If you purge the files before 60 updating this package, very few crates will need to be updated by the 61 packages in this book which use it (and they will be downloaded as 62 required). But if you retain an older version as a fallback option and 63 then use it (when <emphasis>not</emphasis> building in 64 <filename class="directory">/usr</filename>), it is likely that it will 65 then have to re-download some crates. For a full download (i.e. starting 66 with an empty or missing <filename class="directory">~/.cargo</filename>) 67 downloading the external cargo files for this version only takes a minute 68 or so on a fast network. 43 needs a binary from which to bootstrap. It will download a stage0 44 binary at the start of the build, so you cannot compile it without an 45 Internet connection. 69 46 </para> 70 47 … … 89 66 <para> 90 67 If you prefer, you can of course change the prefix to <filename 91 class="directory">/usr</filename> and omit the 92 <command>ldconfig</command> and the actions to add rustc to the PATH. 68 class="directory">/usr</filename>. 93 69 </para> 94 70 </note> … … 138 114 often reasonably consistent, but as with all compilations using 139 115 <command>rustc</command> there can be some very slow outliers. 140 </para>141 <para>142 Unusually, a DESTDIR-style method is being used to install this package.143 This is because running the install as root not only downloads all of the144 cargo files again (to <filename>/root/.cargo</filename>), it then spends145 a very long time recompiling. Using this method saves a lot of time, at146 the cost of extra disk space.147 116 </para> 148 117 </note> … … 258 227 <para> 259 228 To install into the 260 <filename class="directory">/opt</filename> directory, remove the symlink 229 <filename class="directory">/opt</filename> directory, remove any 230 existing <filename>/opt/rustc</filename> symlink 261 231 and create a new directory (i.e. with a different name if trying a 262 modified build ).232 modified build of the same version). 263 233 As the <systemitem class="username">root</systemitem> 264 234 user: 265 235 </para> 266 236 267 <screen role="root"><userinput>mkdir /opt/rustc-&rust-version; 237 <screen role="root"><userinput>mkdir /opt/rustc-&rust-version; && 268 238 ln -svfn rustc-&rust-version; /opt/rustc</userinput></screen> 269 239 … … 284 254 <screen><userinput>cat << EOF > config.toml 285 255 <literal># see config.toml.example for more possible options 286 # See the 8.4 book for an example using shipped LLVM 287 # e.g. if not installing clang, or using a version before 10.0 256 # See the 8.4 book for an old example using shipped LLVM 257 # e.g. if not installing clang, or using a version before 13.0 258 259 # tell x.py to not keep printing an annoying warning 260 changelog-seen = 2 261 288 262 [llvm] 289 263 # by default, rust will build for a myriad of architectures … … 297 271 docs = false 298 272 299 # install cargo as well as rust273 # install extended tools: cargo, clippy, etc 300 274 extended = true 275 276 # Do not query new versions of dependencies online. 277 locked-deps = true 278 279 # Specify which extended tools (those from the default install). 280 tools = ["cargo", "clippy", "rustfmt"] 281 282 # Use the source code shipped in the tarball for the dependencies. 283 # The combination of this and the "locked-deps" entry avoids downloading 284 # many crates from Internet, and makes the Rustc build more stable. 285 vendor = true 301 286 302 287 [install] … … 306 291 [rust] 307 292 channel = "stable" 308 rpath = false 309 310 # BLFS does not install the FileCheck executable from llvm, 311 # so disable codegen tests 312 codegen-tests = false 293 description = "for BLFS &version;" 294 295 # BLFS used to not install the FileCheck executable from llvm, 296 # so disabled codegen tests. The assembly tests rely on FileCheck 297 # and cannot easily be disabled, so those will anyway fail if 298 # FileCheck has not been installed. 299 #codegen-tests = false 313 300 314 301 [target.x86_64-unknown-linux-gnu] … … 341 328 src/tools/cargo/Cargo.toml && --> 342 329 343 <screen><userinput>export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi" && 344 { [ ! -e /usr/include/libssh2.h ] || 330 <screen><userinput>{ [ ! -e /usr/include/libssh2.h ] || 345 331 export LIBSSH2_SYS_USE_PKG_CONFIG=1; } && 346 python3 ./x.py build --exclude src/tools/miri</userinput></screen>332 python3 ./x.py build</userinput></screen> 347 333 348 334 <note> … … 358 344 359 345 <para> 360 To run the tests issue <command>python3 ./x.py test --verbose 361 --no-fail-fast | tee rustc-testlog</command>: as with the build, that 362 will use all available CPUs. 363 </para> 364 365 <para> 366 At a minimum, 51 tests will fail: all 46 of the tests in 367 the <quote>assembly</quote> suite which are not skipped (various lints 368 cause the warnings in these tests to be treated as errors), and 369 5 other tests, 4 of which involve the 370 <filename>rustdoc-ui/issue-98690.rs</filename> file, and another one, 371 <filename>run-make-fulldeps/long-linker-command-lines</filename>. 372 <!-- If <command>gdb</command> is installed, another failure 373 (debuginfo/function-names.rs) can be expected. 374 # seems ok with 11.2 ken --> 346 To run the tests (again using all available CPUs) issue: 347 </para> 348 349 <screen remap="test"><userinput>python3 ./x.py test --verbose --no-fail-fast | tee rustc-testlog</userinput></screen> 350 351 <para> 352 If <command>FileCheck</command> from <application>LLVM</application> has 353 not been installed, all 47 tests from the <quote>assembly</quote> suite 354 will fail. 375 355 </para> 376 356 … … 397 377 </para> 398 378 399 <!-- 400 The total number 401 of tests varies depending on which dependencies are present, e.g. more 402 will be run if <command>gdb</command> is available. If you wish, the 403 total number which were considered can be found if you run: 404 </para> 405 406 <screen remap="test"><userinput>egrep 'running [[:digit:]]+ test' rustc-testlog | awk '{ sum += $2 } END { print sum }'</userinput></screen>--> 407 408 <para> 409 The number of tests which failed can be found by running: 410 </para> 411 412 <screen remap="test"><userinput>grep '^test result:' rustc-testlog | awk '{ sum += $6 } END { print sum }'</userinput></screen> 413 414 <para> 415 And similarly if you care about how many tests passed use $4, for those 416 which were ignored (i.e. skipped) use $8 (and $10 for 'measured', $12 for 417 'filtered out' but both are probably zero). 418 </para> 419 420 <para> 421 Still as your normal user, do a DESTDIR install: 422 </para> 423 424 <screen><userinput>DESTDIR=${PWD}/install python3 ./x.py install && 425 unset LIBSSH2_SYS_USE_PKG_CONFIG</userinput></screen> 426 427 <para> 428 Now, as the <systemitem class="username">root</systemitem> user 429 install the files from the DESTDIR: 430 </para> 431 432 <screen role="root"><userinput>chown -R root:root install && 433 cp -a install/* /</userinput></screen> 379 <para> 380 The number of tests which passed and failed can be found by running: 381 </para> 382 383 <!-- split into two lines for narrower screen windows --> 384 <screen remap="test"><userinput>grep '^test result:' rustc-testlog | 385 awk '{sum1 += $4; sum2 += $6} END { print sum1 " passed; " sum2 " failed" }'</userinput></screen> 386 387 <para> 388 The other available fields are $8 for those which were ignored 389 (i.e. skipped), $10 for 'measured' and $12 for 'filtered out' but both 390 those last two are probably zero. 391 </para> 392 393 <para> 394 Now, as the &root; user, install the package: 395 </para> 396 397 <screen role='root'><userinput>python3 ./x.py install</userinput></screen> 434 398 435 399 </sect2> 436 400 437 401 <sect2 role="commands"> 438 <title>Command Explanations</title> 402 <title>Command Explanations</title> 439 403 440 404 <para> … … 447 411 <para> 448 412 <command>targets = "X86"</command>: this avoids building all the available 449 linux cross-compilers (A arch64, MIPS, PowerPC, SystemZ, etc). Unfortunately,413 linux cross-compilers (AArch64, MIPS, PowerPC, SystemZ, etc). Unfortunately, 450 414 rust insists on installing source files for these below 451 415 <filename class="directory">/opt/rustc/lib/src</filename>. … … 453 417 454 418 <para> 455 <command>extended = true</command>: this installs Cargo alongside Rust. 419 <command>extended = true</command>: this installs several tools 420 (specified by the <literal>tools</literal> entry) alongside 421 <command>rustc</command>. 422 </para> 423 424 <para> 425 <command>tools = ["cargo", "clippy", "rustfmt"]</command>: if the tools 426 are not scecified, the absence of <application>Miri</application> now 427 causes the install to fail. But <application>Miri</application> is not 428 built in the stable channel. Some of the other tools are unlikely to 429 be useful unless using (old) code analyzers or editing the standard library. 430 This set match those from the 'default' profile in binary command 431 <command>rustup</command> which are recommended for most users, except that 432 the documentation was disabled at the start of the '[build]' section. 456 433 </para> 457 434 … … 460 437 can be used, the default in <filename>config.toml</filename> is to use 461 438 development features, which is not appropriate for a released version. 462 </para>463 464 <para>465 <command>rpath = false</command>: by default, <command>rust</command> can466 be run from where it was built, without being installed. That adds DT_RPATH467 entries to all of the ELF files, which produces very messy output from468 <command>ldd</command>, showing the libraries in the place they were built,469 even if they have been deleted from there after the install.470 439 </para> 471 440 … … 489 458 </para>--> 490 459 491 <para> 460 <!-- https://github.com/alexcrichton/ssh2-rs/issues/173 --> 461 <para> 462 <command>export LIBSSH2_SYS_USE_PKG_CONFIG=1</command>: Allow 463 <command>cargo</command> to link to system libssh2. 464 </para> 465 466 <!--<para> 492 467 <command>export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi"</command>: 493 468 This adds a link to libffi to any RUSTFLAGS you may already be passing 494 469 to the build. On some systems, linking fails to include libffi unless 495 470 this is used. The reason why this is needed is not clear. 496 </para> 497 498 <para> 499 <command>--exclude src/tools/miri</command>: For a long time, the miri 500 crate (an interpreter for the Midlevel Intermediate Representation) 501 has failed to build on releases. It is optional, but the failure 502 messages can persuade people that the whole build failed. However, 503 although it is not built in the main compile, with rustc-1.35.0 it 504 now got compiled during the install, but it was broken in that version. 505 <!-- might be unbroken in 1.36.0, if so remove broken from description 506 of miri below. https://github.com/rust-lang/rust/issues/61830 --> 507 Omitting it should save a little time. Even if this switch is 508 not given, miri is not installed. 509 </para> 471 2023-01-14 : assumed to be no longer needed, but it is some years 472 since one person reported needing this, keep it commented for the moment. 473 </para>--> 510 474 511 475 <para> … … 517 481 <command>--no-fail-fast</command>: this switch ensures that the test suite 518 482 will not stop at the first error. 519 </para>520 521 <!-- https://github.com/alexcrichton/ssh2-rs/issues/173 -->522 <para>523 <command>export LIBSSH2_SYS_USE_PKG_CONFIG=1</command>: Allow524 <command>cargo</command> to link to system libssh2.525 </para>526 527 <para>528 <command>DESTDIR=${PWD}/install python3 ./x.py install</command>: This529 effects a DESTDIR-style install in the source tree,creating an <filename530 class="directory">install</filename> directory. Note that DESTDIR installs531 need an absolute path, passing 'install' will not work.532 </para>533 534 <para>535 <command>chown -R root:root install</command>: the DESTDIR install536 was run by a regular user, who owns the files. For security, change their537 owner before doing a simple copy to install them.538 483 </para> 539 484 … … 554 499 555 500 <para> 556 As the <systemitem class="username">root</systemitem> user, update557 the <filename>/etc/ld.so.conf</filename> file and the dynamic linker's558 run-time cache file:559 </para>560 561 <screen role="root"><userinput>cat >> /etc/ld.so.conf << EOF562 <literal># Begin rustc addition563 564 /opt/rustc/lib565 566 # End rustc addition</literal>567 EOF568 569 ldconfig</userinput></screen>570 571 <indexterm zone="rust rustc-config">572 <primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>573 </indexterm>574 575 <para>576 501 As the <systemitem class="username">root</systemitem> user, create 577 502 the <filename>/etc/profile.d/rustc.sh</filename> file: … … 608 533 <segtitle>Installed Directories</segtitle> 609 534 610 <seglistitem> 535 <seglistitem> 611 536 <seg> 612 cargo-clippy, cargo-fmt, cargo-miri (optional), cargo, clippy-driver, 613 miri (optional), rls, rust-analyzer, rust-demangler, rust-gdb, 537 cargo-clippy, cargo-fmt, cargo, clippy-driver, rust-gdb, 614 538 rust-gdbgui, rust-lldb, rustc, rustdoc, and rustfmt 615 539 </seg> … … 657 581 </varlistentry> 658 582 659 583 <!-- <varlistentry id="cargo-miri"> 660 584 <term><command>cargo-miri</command></term> 661 585 <listitem> … … 668 592 </indexterm> 669 593 </listitem> 670 </varlistentry> 594 </varlistentry>--> 671 595 672 596 <varlistentry id="cargo"> … … 694 618 </varlistentry> 695 619 696 620 <!-- <varlistentry id="miri"> 697 621 <term><command>miri</command></term> 698 622 <listitem> … … 745 669 </indexterm> 746 670 </listitem> 747 </varlistentry> 671 </varlistentry> --> 748 672 749 673 <varlistentry id="rust-gdb">
Note:
See TracChangeset
for help on using the changeset viewer.