From 18198782a28b6e3104db375455b9cdf9eca007ef Mon Sep 17 00:00:00 2001 From: Zeckmathederg Date: Sat, 27 Apr 2024 02:13:48 -0600 Subject: [PATCH] Added and mostly finished GNAT, started MinGW-w64 --- book/organization.xml | 15 +- index.xml | 2 + introduction/welcome/which.xml | 10 + packages.ent | 2 + .../deps => shareddeps}/audio/audiodummy.xml | 0 shareddeps/dps/basicx/basicxdummy.xml | 11 + {steam/deps => shareddeps}/dps/wl/wldummy.xml | 0 {steam/deps => shareddeps}/dps/x/xdummy.xml | 0 .../drivers/driversdummy.xml | 0 .../gfxapi/gfxapidummy.xml | 0 {steam/deps => shareddeps}/misc/miscdummy.xml | 0 {steam/deps => shareddeps}/net/curl.xml | 4 +- {steam/deps => shareddeps}/net/libidn2.xml | 6 +- {steam/deps => shareddeps}/net/libpsl.xml | 4 +- {steam/deps => shareddeps}/net/libtasn1.xml | 6 +- .../deps => shareddeps}/net/libunistring.xml | 4 +- {steam/deps => shareddeps}/net/make-ca.xml | 2 +- {steam/deps => shareddeps}/net/netdummy.xml | 0 {steam/deps => shareddeps}/net/nspr.xml | 2 +- {steam/deps => shareddeps}/net/nss.xml | 2 +- {steam/deps => shareddeps}/net/p11-kit.xml | 4 +- shareddeps/sdchapter.xml | 15 + shareddeps/sdintro.xml | 50 ++ steam/steamintro.xml | 32 - steam/whatissteam.xml | 8 +- wine/deps/tc/gnat-binary.xml | 193 ++++++ wine/deps/tc/gnat.xml | 652 ++++++++++++++++++ wine/deps/tc/mingw-w64-binary.xml | 113 +++ wine/deps/tc/mingw-w64-binutils.xml | 314 +++++++++ wine/deps/tc/mingw-w64-crt.xml | 186 +++++ wine/deps/tc/mingw-w64-gcc.xml | 186 +++++ wine/deps/tc/mingw-w64-headers.xml | 181 +++++ wine/deps/tc/mingw-w64-winpthreads.xml | 186 +++++ wine/whatiswine.xml | 18 + wine/wine/wine.xml | 18 + wine/wine/winedeps.xml | 18 + wine/{wine.xml => wine/winetrblshoot.xml} | 0 wine/{intro.xml => winechapter.xml} | 8 +- wine/wineintro.xml | 32 + 39 files changed, 2223 insertions(+), 61 deletions(-) rename {steam/deps => shareddeps}/audio/audiodummy.xml (100%) create mode 100644 shareddeps/dps/basicx/basicxdummy.xml rename {steam/deps => shareddeps}/dps/wl/wldummy.xml (100%) rename {steam/deps => shareddeps}/dps/x/xdummy.xml (100%) rename {steam/deps => shareddeps}/drivers/driversdummy.xml (100%) rename {steam/deps => shareddeps}/gfxapi/gfxapidummy.xml (100%) rename {steam/deps => shareddeps}/misc/miscdummy.xml (100%) rename {steam/deps => shareddeps}/net/curl.xml (99%) rename {steam/deps => shareddeps}/net/libidn2.xml (97%) rename {steam/deps => shareddeps}/net/libpsl.xml (97%) rename {steam/deps => shareddeps}/net/libtasn1.xml (97%) rename {steam/deps => shareddeps}/net/libunistring.xml (97%) rename {steam/deps => shareddeps}/net/make-ca.xml (99%) rename {steam/deps => shareddeps}/net/netdummy.xml (100%) rename {steam/deps => shareddeps}/net/nspr.xml (99%) rename {steam/deps => shareddeps}/net/nss.xml (99%) rename {steam/deps => shareddeps}/net/p11-kit.xml (98%) create mode 100644 shareddeps/sdchapter.xml create mode 100644 shareddeps/sdintro.xml create mode 100644 wine/deps/tc/gnat-binary.xml create mode 100644 wine/deps/tc/gnat.xml create mode 100644 wine/deps/tc/mingw-w64-binary.xml create mode 100644 wine/deps/tc/mingw-w64-binutils.xml create mode 100644 wine/deps/tc/mingw-w64-crt.xml create mode 100644 wine/deps/tc/mingw-w64-gcc.xml create mode 100644 wine/deps/tc/mingw-w64-headers.xml create mode 100644 wine/deps/tc/mingw-w64-winpthreads.xml create mode 100644 wine/whatiswine.xml create mode 100644 wine/wine/wine.xml create mode 100644 wine/wine/winedeps.xml rename wine/{wine.xml => wine/winetrblshoot.xml} (100%) rename wine/{intro.xml => winechapter.xml} (65%) create mode 100644 wine/wineintro.xml diff --git a/book/organization.xml b/book/organization.xml index 503b05c604..28f1158cb1 100644 --- a/book/organization.xml +++ b/book/organization.xml @@ -12,7 +12,7 @@ Organization - This book is divided into the following 5 sections + This book is divided into the following 6 sections: Part I - Introduction @@ -30,7 +30,16 @@ be a precursor to the following sections. - Part III - Steam + Part III - Shared Dependencies + + + This section is dedicated to covering dependencies that are shared + between Steam and Wine. As it turns out, there are quite a lot of + dependencies they both depend on. Anything specific to Steam and + Wine are covered in their respective chapters. + + + Part IV - Steam This part details how to install Steam and the linear line of @@ -38,7 +47,7 @@ certain packages. - Part IV - Wine + Part V - Wine This section goes over installing toolchains like Mingw-w64 diff --git a/index.xml b/index.xml index 05f7a1e0ff..a032ef7112 100644 --- a/index.xml +++ b/index.xml @@ -16,7 +16,9 @@ $Date$ + + diff --git a/introduction/welcome/which.xml b/introduction/welcome/which.xml index b7f8cb1990..563b9837a6 100644 --- a/introduction/welcome/which.xml +++ b/introduction/welcome/which.xml @@ -39,6 +39,16 @@ headache at the final stages. + + The following chapter is Shared Dependencies. Every user + who wants Steam and/or Wine will want to read this chapter + as both projects use the packages. Try as you may, but this + chapter is absolutely necessary. However, it is recommended + to check the dependency lists of Steam and Wine to see what + exactly you need from that section instead of installing + everything despite only needing maybe 90% of it. + + The next chapter is Steam, which covers all the packages, patches, configuration, and setup necessary to get Steam diff --git a/packages.ent b/packages.ent index f49d3512bc..745dcc5d03 100644 --- a/packages.ent +++ b/packages.ent @@ -318,6 +318,7 @@ + @@ -337,6 +338,7 @@ + diff --git a/steam/deps/audio/audiodummy.xml b/shareddeps/audio/audiodummy.xml similarity index 100% rename from steam/deps/audio/audiodummy.xml rename to shareddeps/audio/audiodummy.xml diff --git a/shareddeps/dps/basicx/basicxdummy.xml b/shareddeps/dps/basicx/basicxdummy.xml new file mode 100644 index 0000000000..9eecdc3271 --- /dev/null +++ b/shareddeps/dps/basicx/basicxdummy.xml @@ -0,0 +1,11 @@ + + + + + + + Basic X11 Software + + + diff --git a/steam/deps/dps/wl/wldummy.xml b/shareddeps/dps/wl/wldummy.xml similarity index 100% rename from steam/deps/dps/wl/wldummy.xml rename to shareddeps/dps/wl/wldummy.xml diff --git a/steam/deps/dps/x/xdummy.xml b/shareddeps/dps/x/xdummy.xml similarity index 100% rename from steam/deps/dps/x/xdummy.xml rename to shareddeps/dps/x/xdummy.xml diff --git a/steam/deps/drivers/driversdummy.xml b/shareddeps/drivers/driversdummy.xml similarity index 100% rename from steam/deps/drivers/driversdummy.xml rename to shareddeps/drivers/driversdummy.xml diff --git a/steam/deps/gfxapi/gfxapidummy.xml b/shareddeps/gfxapi/gfxapidummy.xml similarity index 100% rename from steam/deps/gfxapi/gfxapidummy.xml rename to shareddeps/gfxapi/gfxapidummy.xml diff --git a/steam/deps/misc/miscdummy.xml b/shareddeps/misc/miscdummy.xml similarity index 100% rename from steam/deps/misc/miscdummy.xml rename to shareddeps/misc/miscdummy.xml diff --git a/steam/deps/net/curl.xml b/shareddeps/net/curl.xml similarity index 99% rename from steam/deps/net/curl.xml rename to shareddeps/net/curl.xml index 77e7d369f9..6f29bdbc7a 100644 --- a/steam/deps/net/curl.xml +++ b/shareddeps/net/curl.xml @@ -1,7 +1,7 @@ + %general-entities; @@ -405,7 +405,7 @@ cp -v -R docs -T /usr/share/doc/curl-&curl-version; Command Explanations + href="../../xincludes/static-libraries.xml"/> --enable-threaded-resolver: This switch enables cURL's builtin threaded DNS resolver. diff --git a/steam/deps/net/libidn2.xml b/shareddeps/net/libidn2.xml similarity index 97% rename from steam/deps/net/libidn2.xml rename to shareddeps/net/libidn2.xml index ae78f50108..cd04b092b0 100644 --- a/steam/deps/net/libidn2.xml +++ b/shareddeps/net/libidn2.xml @@ -1,7 +1,7 @@ + %general-entities; @@ -105,10 +105,10 @@ make Command Explanations + href="../../xincludes/static-libraries.xml"/> + href="../../xincludes/gtk-doc-rebuild.xml"/> diff --git a/steam/deps/net/libpsl.xml b/shareddeps/net/libpsl.xml similarity index 97% rename from steam/deps/net/libpsl.xml rename to shareddeps/net/libpsl.xml index ad885bc75f..7ad82bae52 100644 --- a/steam/deps/net/libpsl.xml +++ b/shareddeps/net/libpsl.xml @@ -1,7 +1,7 @@ + %general-entities; @@ -107,7 +107,7 @@ ninja Command Explanations + href="../../xincludes/meson-buildtype-release.xml"/> diff --git a/steam/deps/net/libtasn1.xml b/shareddeps/net/libtasn1.xml similarity index 97% rename from steam/deps/net/libtasn1.xml rename to shareddeps/net/libtasn1.xml index 181091495f..df0b6eb64c 100644 --- a/steam/deps/net/libtasn1.xml +++ b/shareddeps/net/libtasn1.xml @@ -1,7 +1,7 @@ + %general-entities; @@ -119,10 +119,10 @@ make Command Explanations + href="../../xincludes/static-libraries.xml"/> + href="../../xincludes/gtk-doc-rebuild-problem.xml"/> diff --git a/steam/deps/net/libunistring.xml b/shareddeps/net/libunistring.xml similarity index 97% rename from steam/deps/net/libunistring.xml rename to shareddeps/net/libunistring.xml index 5dc9ee0527..b23a7ee805 100644 --- a/steam/deps/net/libunistring.xml +++ b/shareddeps/net/libunistring.xml @@ -1,7 +1,7 @@ + %general-entities; @@ -106,7 +106,7 @@ make Command Explanations + href="../../xincludes/static-libraries.xml"/> diff --git a/steam/deps/net/make-ca.xml b/shareddeps/net/make-ca.xml similarity index 99% rename from steam/deps/net/make-ca.xml rename to shareddeps/net/make-ca.xml index 503224e77c..2c0707e917 100644 --- a/steam/deps/net/make-ca.xml +++ b/shareddeps/net/make-ca.xml @@ -1,7 +1,7 @@ + %general-entities; diff --git a/steam/deps/net/netdummy.xml b/shareddeps/net/netdummy.xml similarity index 100% rename from steam/deps/net/netdummy.xml rename to shareddeps/net/netdummy.xml diff --git a/steam/deps/net/nspr.xml b/shareddeps/net/nspr.xml similarity index 99% rename from steam/deps/net/nspr.xml rename to shareddeps/net/nspr.xml index faa27c0da6..73fb2b19a8 100644 --- a/steam/deps/net/nspr.xml +++ b/shareddeps/net/nspr.xml @@ -1,7 +1,7 @@ + %general-entities; diff --git a/steam/deps/net/nss.xml b/shareddeps/net/nss.xml similarity index 99% rename from steam/deps/net/nss.xml rename to shareddeps/net/nss.xml index 3533fbfd69..5764218051 100644 --- a/steam/deps/net/nss.xml +++ b/shareddeps/net/nss.xml @@ -1,7 +1,7 @@ + %general-entities; diff --git a/steam/deps/net/p11-kit.xml b/shareddeps/net/p11-kit.xml similarity index 98% rename from steam/deps/net/p11-kit.xml rename to shareddeps/net/p11-kit.xml index 5373cca55a..ee8cd46fa6 100644 --- a/steam/deps/net/p11-kit.xml +++ b/shareddeps/net/p11-kit.xml @@ -1,7 +1,7 @@ + %general-entities; @@ -143,7 +143,7 @@ ln -sfv /usr/libexec/p11-kit/trust-extract-compat \ Command Explanations + href="../../xincludes/meson-buildtype-release.xml"/> -Dtrust_paths=/etc/pki/anchors: this switch diff --git a/shareddeps/sdchapter.xml b/shareddeps/sdchapter.xml new file mode 100644 index 0000000000..62ff2c1903 --- /dev/null +++ b/shareddeps/sdchapter.xml @@ -0,0 +1,15 @@ + + + %general-entities; +]> + + + + + Shared Dependencies + + + + diff --git a/shareddeps/sdintro.xml b/shareddeps/sdintro.xml new file mode 100644 index 0000000000..1bcfb1c50c --- /dev/null +++ b/shareddeps/sdintro.xml @@ -0,0 +1,50 @@ + + + %general-entities; +]> + + + + + Shared Dependencies + + + This chapter covers dependencies that both Steam and Wine depend on. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/steam/steamintro.xml b/steam/steamintro.xml index d0d2dcc9ba..ee0a7498dd 100644 --- a/steam/steamintro.xml +++ b/steam/steamintro.xml @@ -18,38 +18,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/steam/whatissteam.xml b/steam/whatissteam.xml index 65486dafd8..2e806f343e 100644 --- a/steam/whatissteam.xml +++ b/steam/whatissteam.xml @@ -32,11 +32,9 @@ Please check to find what you will need - before proceeding, although most of this chapter is a straight shot. - There is some choice involved such as choosing if you want X11 or - Wayland, Pulseaudio or Pipewire, so forth. There are subsections to - help readability and also meant to serve those following the Wine - chapter. + before proceeding, although most of + is a straight shot. There is some choice involved such as choosing + if you want X11 or Wayland, Pulseaudio or Pipewire, so forth. diff --git a/wine/deps/tc/gnat-binary.xml b/wine/deps/tc/gnat-binary.xml new file mode 100644 index 0000000000..a49adf068c --- /dev/null +++ b/wine/deps/tc/gnat-binary.xml @@ -0,0 +1,193 @@ + + + %general-entities; + + + + + + + + + + + + +]> + + + + + + Binary GNAT + + + gnat-binary + + + + About GNAT + + + Ada is a modern programming language designed for large, long-lived + applications — and embedded systems in particular — where + reliability and efficiency are essential. It has a set of unique technical + features that make it highly effective for use in large, complex and + safety-critical projects. + + + + The compiler and associated tools on this page are known as the + GNAT technology, developed by the Adacore + company, using the GCC backend. Since + parts of the Ada compiler are written in Ada, there is a circular + dependency on an Ada compiler. The instructions below install a + binary compiler. You do not need to do that if you already have built + GNAT tools. The next section covers how to + build GNAT once the circular dependency is satisfied. + + + &lfs121_checked; + + Binary Package Information + + + + Binary Download (x86): + + + + + Download MD5 sum: &gnat-binary-i686-md5sum; + + + + + Download size (binary): &gnat-binary-i686-size; + + + + + Estimated disk space required: &gnat-binary-i686-buildsize; + + + + + + + + Binary Download (x86_64): + + + + + Download MD5 sum: &gnat-binary-amd64-md5sum; + + + + + Download size (binary): &gnat-binary-amd64-size; + + + + + Estimated disk space required: &gnat-binary-amd64-buildsize; + + + + + + + If you are currently in a TTY and relying on command-line + tools to obtain software, it is recommended to open the + x86 GNAT download link with + + lynx-&lynx-version; or + + links-&links-version;. You can use + + wget-&wget-version; but not + . + If you do end up using wget + regardless of the recommendation against it, please run + the following the command before unpacking: + + + mv c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6\?filename\=gnat-gpl-2014-x86-linux-bin.tar.gz\&rand\=1247 \ + gnat-gpl-2014-x86-linux-bin.tar.gz + + + + + + If you are doing multilib, just download the x86_64 + GNAT binary tarball. + The instructions in the next section for multilib will + work as expected and GCC + will continue to have multilib support. + + + + + + + Installation of GNAT Binaries + + + Install the x86_64 GNAT + binaries by running the following commands as the + root user + while still in the directory the tarball is in: + + +export GNATTBPATH=$PWD && +cd /opt && +tar xpvf "$GNATTBPATH"/gnat-x86_64-linux-&gcc-version;-2.tar.gz + +ln -sv gnat-x86_64-linux-&gcc-version;-2 gnat && +cd $GNATTBPATH + +unset GNATTBPATH + + + Or install the x86 GNAT + binaries by running the following commands as the + root user + while still in the directory the tarball is in: + + +export GNATTBPATH=$PWD && +cd /opt && +tar xpvf "$GNATTBPATH"/gnat-gpl-2014-x86-linux-bin.tar.gz + +ln -sv gnat-gpl-2014-x86-linux-bin gnat && +chown -R root:root gnat && +cd $GNATTBPATH + +unset GNATTBPATH + + + Now adjust the PATH variable so + the GNAT software can be found + and used: + + +PATH_HOLD=$PATH && +export PATH=/opt/gnat/bin:$PATH_HOLD + + + Ensure ld and as + from the GNAT package aren't + used as to prevent issues with aging by issuing the + following as the root + user: + + +find /opt/gnat -name ld -exec mv -v {} {}.old \; +find /opt/gnat -name as -exec mv -v {} {}.old \; + + + + diff --git a/wine/deps/tc/gnat.xml b/wine/deps/tc/gnat.xml new file mode 100644 index 0000000000..adcea4b6a2 --- /dev/null +++ b/wine/deps/tc/gnat.xml @@ -0,0 +1,652 @@ + + + %general-entities; + + + + + + + +]> + + + + + + GNAT-&gcc-version; + + + gnat + + + + Introduction to GNAT + + + GNAT is a part of + GCC. It is often called + GCC-Ada because of this. Not many packages depend + on GNAT besides + , although some packages + optionally depend on it. + + + &lfs121_checked; + + Package Information + + + + Download (HTTP): + + + + + Download (FTP): + + + + + Download MD5 sum: &gnat-md5sum; + + + + + Download size: &gnat-size; + + + + + Estimated disk space required: &gnat-buildsize; + + + + + Estimated build time: &gnat-time; + + + + + GNAT Dependencies + + Required + + + + + Optional + + + GDB-&gdb-version;, + + Valgrind-&valgrind-version; (for tests), and + + ISL (to enable graphite optimization) + + + + + + Installation of GNAT + + + + Even if you specify only languages other than Ada, C, and C++ + to the ./configure command below, the installation process + will overwrite your existing GCC C and C++ compilers and + libraries. Running the full suite of tests is recommended. + + + Do not continue with the make install + command until you are confident the build was successful. + You can compare your test results with those found at + . + You may also want to refer to the information found in the + GCC section of Chapter 8 in the LFS book + (). + + + + + Normal Installation of GNAT + + + + If you are doing multilib, under no circumstance should you + follow the instructions immediately below or else you will + lose multilib support in GCC. + Skip to the Multilib GNAT section. + + + + + The instructions below are intentionally performing a + “bootstrap” process. Bootstrapping is needed for robustness + and is highly recommended when upgrading the compilers version. + To disable bootstrap anyway, add --disable-bootstrap + to the ./configure options below. + + + + Install GNAT by running the following + commands: + + +case $(uname -m) in + x86_64) + sed -e '/m64=/s/lib64/lib/' \ + -i.orig gcc/config/i386/t-linux64 + ;; +esac + +mkdir build && +cd build && + +../configure \ + --prefix=/usr \ + --disable-multilib \ + --with-system-zlib \ + --enable-default-pie \ + --enable-default-ssp \ + --disable-fixincludes \ + --enable-languages=ada && + +make + + + If you have installed additional packages such as + valgrind and gdb + , the gcc part of the + test suite will run more tests than in LFS. Some of those will + report FAIL and others XPASS (pass when expected to FAIL). + As of gcc-&gcc-version;, about 65 FAIL occur in the “guality” + suite, as well as miscellaneous failures throughout the rest of + the test suite. If all the compilers above are built, there will + be a little over 80 unexpected failures out of over 546,000 tests. + To run the tests, issue: + + +ulimit -s 32768 && +make -k check + + + The tests are very long, and the results may be hard to find in the + logs, specially if you use parallel jobs with make. You can get a + summary of the tests with: + + + ../contrib/test_summary + + + Now, as the root user: + + +make install && +mkdir -pv /usr/share/gdb/auto-load/usr/lib && +mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib && + +chown -v -R root:root \ + /usr/lib/gcc/*linux-gnu/7.2.0/include{,-fixed} \ + /usr/lib/gcc/*linux-gnu/7.2.0/ada{lib,include} + + + + + Multilib Installation of GNAT + + + The instructions below are intentionally performing a + “bootstrap” process. Bootstrapping is needed for robustness + and is highly recommended when upgrading the compilers version. + To disable bootstrap anyway, add --disable-bootstrap + to the ./configure options below. + + + + Install Multilib GNAT by running the + following commands: + + +case $(uname -m) in + x86_64) + sed -e '/m64=/s/lib64/lib/' \ + -i.orig gcc/config/i386/t-linux64 + ;; +esac + +mkdir build && +cd build && + +../configure \ + --prefix=/usr \ + --enable-multilib \ + --with-multilib-list=m64,m32 \ + --with-system-zlib \ + --enable-default-pie \ + --enable-default-ssp \ + --disable-fixincludes \ + --enable-languages=ada && + +make + + + + If you have installed additional packages such as + valgrind and gdb + , the gcc part of the + test suite will run more tests than in LFS. Some of those will + report FAIL and others XPASS (pass when expected to FAIL). + As of gcc-&gcc-version;, about 65 FAIL occur in the “guality” + suite, as well as miscellaneous failures throughout the rest of + the test suite. If all the compilers above are built, there will + be a little over 80 unexpected failures out of over 546,000 tests. + To run the tests, issue: + + +ulimit -s 32768 && +make -k check + + + The tests are very long, and the results may be hard to find in the + logs, specially if you use parallel jobs with make. You can get a + summary of the tests with: + + + ../contrib/test_summary + + + Now, as the root user: + + +make install && +mkdir -pv /usr/share/gdb/auto-load/usr/lib && +mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib && + +chown -v -R root:root \ + /usr/lib/gcc/*linux-gnu/7.2.0/include{,-fixed} \ + /usr/lib/gcc/*linux-gnu/7.2.0/ada{lib,include} + + + + + + Cleaning Up and Testing + + + Now that GNAT has been installed, + it is time to clean up and test your installation to make sure + everything is working as expected. + + + + Remove the binary installation that was installed earlier + as the root user: + + + rm -rf /opt/gnat* + + + Now as the regular user, restore the PATH + variable to what it was beforehand: + + +export PATH=$PATH_HOLD && +unset PATH_HOLD + + + Now it's time to test the installation. First confirm that the + C and C++ compilers are working correctly: + + +echo "int main(){}" >> main.c && +cp -v main.c main.cpp && +gcc main.c && +./a.out + +rm -v a.out && +g++ main.cpp && +./a.out + +rm -v a.out main.{c,cpp} + + + If you're doing multilib: + + +echo "int main(){}" >> main.c && +cp -v main.c main.cpp && +gcc -m32 main.c && +./a.out + +rm -v a.out && +g++ -m32 main.cpp && +./a.out + +rm -v a.out main.{c,cpp} + + + And finally, test the GNAT compiler: + + +cat >> testgnat.adb << "EOF" +with Ada.Text_IO; use Ada.Text_IO; +procedure Testgnat is +begin + Put_Line("Success!"); +end Testgnat; +EOF + +gnatmake testgnat.adb && +./testgnat + +rm -v testgnat* + + + The commands above should have no errors, otherwise + something went wrong with the installation. + + + + + + Command Explanations + + + mkdir build; cd build: The + GCC documentation recommends + building the package in a dedicated build directory. + + + + --disable-multilib: This parameter ensures + that files are created for the specific architecture of your computer. + + + + --enable-multilib: This parameter ensures + that files are created for both 32-bit and 64-bit despite computer + architecture. + + + + --with-system-zlib: Uses the system + zlib instead of the bundled one. + zlib is used for compressing + and decompressing GCC's intermediate + language in LTO (Link Time Optimization) object files. + + + + --enable-default-pie: Makes the + option the default when compiling programs. + Together with the feature enabled in the kernel, + this defeats some kind of attacks based on known memory layouts. + + + + --enable-default-ssp: Makes the + option the default when + compiling programs. is a technique preventing + alteration of the program flow by corrupting the parameter stack. + + + + --enable-languages=ada: + This command builds support for ada, but will also build support + for C and C++. Refer to + to find what other languages are supported. Make sure to add + ada to the option if you recompile + GCC. + + + + ulimit -s 32768: This command prevents several + tests from running out of stack space. + + + + make -k check: This command runs the test suite + without stopping if any errors are encountered. + + + + ../contrib/test_summary: This command will produce + a summary of the test suite results. You can append | grep + -A7 Summ to the command to produce an even more condensed + version of the summary. You may also wish to redirect the output + to a file for review and comparison later on. + + + + mv -v /usr/lib/*gdb.py ...: The installation + stage puts some files used by gdb under the + /usr/lib directory. This generates + spurious error messages when performing ldconfig. This + command moves the files to another location. + + + + chown -v -R root:root /usr/lib/gcc/*linux-gnu/...: + If the package is built by a user other than root, the ownership of the + installed include directory (and + its content) will be incorrect. This command changes the ownership to the + root user and group. + + + + : + Build libgccjit, a library + for embedding GCC inside programs and libraries for generating machine + code. Despite JIT (just-in-time) in the name, the + library can be used for AOT (ahead-of-time) compilation as well. + is needed for building + libgccjit, but it + significantly slows down GCC. So + libgccjit should be built and + installed separately, not as a part of the main GCC + installation. If you need this library, configure GCC with + these two options and install the library by running + + make -C gcc jit.install-common jit.install-info + as the &root; user. This library is not used by any BLFS package, + nor tested by the BLFS developers. + + + + + + Contents + + + Installed Programs + Installed Libraries + Installed Directories + + + + gnat, gnatbind, gnatchop, gnatclean, gnatfind, gnatkr, + gnatlink, gnatls, gnatmake, gnatname, gnatprep, gnatxref + + + libgnarl.{so,a}, libgnat.{so,a} in + /usr/lib/gcc/<arch-triplet>/&gcc-version;/adalib + + + /usr/lib/gcc/<arch-triplet>/&gcc-version;/ada{include,lib} + and /usr/lib/gcc/<arch-triplet>/&gcc-version;/plugin/include/ada + + + + + + Only the Ada specific files are listed here. Others can be found at + as they were + initially installed during the building of LFS. + + + + Short Descriptions + + + + + gnat + + + is a wrapper that accepts a number of commands and calls + the corresponding tool from the list below. + + + gnat + + + + + + gnatbind + + + is used to bind compiled objects. + + + gnatbind + + + + + + gnatchop + + + is useful for renaming files to meet the standard + Ada default file naming conventions. + + + gnatchop + + + + + + gnatclean + + + is used to remove files associated with a + GNAT project. + + + gnatclean + + + + + + gnatfind + + + is intended for locating definition and/or references to + specified entities in a GNAT project. + + + gnatfind + + + + + + gnatkr + + + is used to determine the crunched name for a given file, when + crunched to a specified maximum length. + + + gnatkr + + + + + + gnatlink + + + is used to link programs and build an executable file. + + + gnatlink + + + + + + gnatls + + + is the compiled unit browser. + + + gnatls + + + + + + gnatmake + + + is the Ada compiler, which performs + compilation, binding and linking. + + + gnatmake + + + + + + gnatname + + + will list the files associated with a + GNAT project. + + + gnatname + + + + + + gnatprep + + + is the GNAT external preprocessor. + + + gnatprep + + + + + + gnatxref + + + is similar to gnatfind, but generates + a full report of all cross-references. + + + gnatxref + + + + + + + + + diff --git a/wine/deps/tc/mingw-w64-binary.xml b/wine/deps/tc/mingw-w64-binary.xml new file mode 100644 index 0000000000..f944a79d80 --- /dev/null +++ b/wine/deps/tc/mingw-w64-binary.xml @@ -0,0 +1,113 @@ + + + %general-entities; + + + + + + +]> + + + + + + Binary MinGW-w64 + + + gnat-binary + + + + About MinGW-w64 + + + MinGW-w64 is an advancement of the original mingw.org project, + created to support the GCC compiler on Windows systems. + It has forked it in 2007 in order to provide support for 64 bits + and new APIs. It has since then gained widespread use and distribution. + + + + On Linux, it serves as a useful toolchain to compile code targeting + Windows, resulting binaries can include .exe and .dll files. + is a project that depends on + MinGW-W64 to compile .dll files. However in order + to build this toolchain, the toolchain must already be on the system, + so you need to install the binary toolchain first to satisfy the + circular dependency. + + + &lfs121_checked; + + Binary Package Information + + + + Binary Download: + + + + + Download MD5 sum: &mingw-w64-binary-md5sum; + + + + + Download size (binary): &mingw-w64-binary-size; + + + + + Estimated disk space required: &mingw-w64-binary-buildsize; + + + + + + + There is only one binary package, but that is fine. + The MinGW-w64 binaries + are separated based on the target architecture + and the binaries are often named with the architecture + prefix such as x86_64 and i686. The binary package + has binaries for those two architectures. + + + + + + + Installation of MinGW-w64 Binaries + + + Install the MinGW-w64 + binaries by running the following commands as the + root user + while still in the directory the tarball is in: + + +export MINGWTBPATH=$PWD && +cd /opt && +tar xpvf "$MINGWTBPATH"/mingw-w64-gcc-&gcc-version;-mingw-&mingw-w64-version;.tar.xz + +ln -sv mingw-w64-latest-03122024 mingw-w64 && +cd $MINGWTBPATH + +unset MINGWTBPATH + + + Now adjust the PATH variable so + the MinGW-w64 software can be found + and used: + + +PATH_HOLD=$PATH && +export PATH=/opt/mingw-w64/usr/bin:$PATH_HOLD + + + + diff --git a/wine/deps/tc/mingw-w64-binutils.xml b/wine/deps/tc/mingw-w64-binutils.xml new file mode 100644 index 0000000000..82a13ab6b7 --- /dev/null +++ b/wine/deps/tc/mingw-w64-binutils.xml @@ -0,0 +1,314 @@ + + + %general-entities; + + + + + + + +]> + + + + + + MinGW-w64-binutils-&binutils-version; + + + mingw-w64-binutils + + + + Introduction to MinGW-w64-binutils + + + MinGW-w64-binutils is a collection of software that can change + the state of Windows binaries or make them executable. These + binutils are specific to MinGW-w64, and using regular binutils + will not work for the proceeding packages. + + + &lfs121_checked; + + Package Information + + + + Download (HTTP): + + + + + Download (FTP): + + + + + Download MD5 sum: &mingw-w64-binutils-md5sum; + + + + + Download size: &mingw-w64-binutils-size; + + + + + Estimated disk space required: &mingw-w64-binutils-buildsize; + + + + + Estimated build time: &mingw-w64-binutils-time; + + + + + MinGW-w64-binutils Dependencies + + Optional + + + + + + + + Installation of MinGW-w64-binutils + + + First make sure libiberty does not get installed: + + +sed -i 's/install_to_$(INSTALL_DEST) //' \ libiberty/Makefile.in + + + + Now you may proceed. + + + + x86_64 MinGW-w64-binutils + + + Install x86_64 MinGW-w64-binutils + by running the following commands: + + +mkdir build-x86_64 && +cd build-x86_64 + +../configure --prefix=/usr \ + --target=x86_64-w64-mingw32 \ + --infodir=/usr/share/info/x86_64-w64-mingw32 \ + --enable-lto \ + --enable-plugins \ + --enable-deterministic-archives \ + --disable-multilib \ + --disable-nls \ + --disable-werror + +make + + + Now, as the root user: + + +make install +rm -v /usr/lib/bfd-plugins/libdep.so + + + + + + i686 MinGW-w64-binutils + + + Install i686 MinGW-w64-binutils + by running the following commands: + + +mkdir build-i686 && +cd build-i686 + +../configure --prefix=/usr \ + --target=i686-w64-mingw32 \ + --infodir=/usr/share/info/i686-w64-mingw32 \ + --enable-lto \ + --enable-plugins \ + --enable-deterministic-archives \ + --disable-multilib \ + --disable-nls \ + --disable-werror + +make + + + Now, as the root user: + + +make install +rm -v /usr/lib/bfd-plugins/libdep.so + + + + + + + Command Explanations + + + --enable-lto: This option builds lto support. + + + + --enable-plugins: This option enables + plugin support for the linker. + + + + --enable-deterministic-archives: This option + enables building determinable archives by hardcoding filemodes, + timestamps, and file owners into the archive. + + + + --disable-multilib: This option disables + multilib support in each architecture. It is not needed and doing + a Wine WoW64 build just uses the + binaries from each architecture. Do not set + --enable-multilib for any MinGW-w64 + package or else problems will occur. + + + + --disable-nls: This option disables + nls support, disabling output diagnostics in languages other than + American English. Omit --disable-nls and + invoke --enable-nls to enable nls support. + + + + --disable-werror: This option makes it so + warnings won't be considered errors. + + + + --target=*: This option builds files for + the architecture passed to it. + + + + rm -v /usr/lib/bfd-plugins/libdep.so: + This command removes an unnecessary library. + + + + + + Contents + + + Installed Programs + Installed Libraries + Installed Directories + + + + {i686,x86_64}-w64-mingw32-addr2line, + {i686,x86_64}-w64-mingw32-c++filt, + {i686,x86_64}-w64-mingw32-dllwrap, + {i686,x86_64}-w64-mingw32-elfedit, + {i686,x86_64}-w64-mingw32-gprof, + {i686,x86_64}-w64-mingw32-size, + {i686,x86_64}-w64-mingw32-strings, + {i686,x86_64}-w64-mingw32-windmc, + {i686,x86_64}-w64-mingw32-windres, + ar, as, dlltool, ld, ld.bfd, nm, objcopy, ranlib, + readelf, and strip (MinGW-w64 + specific binaries besides formatting include: + {i686,x86_64}-w64-mingw32-dllwrap, + {i686,x86_64}-w64-mingw32-windmc, + {i686,x86_64}-w64-mingw32-windres, + and dlltool) + + + None + + + /usr/{i686,x86_64}-w64-mingw32/bin, + /usr/{i686,x86_64}-w64-mingw32/lib/ldscripts, and + /usr/share/info/{i686,x86_64}-w64-mingw32 + + + + + + Only binutils specific to MinGW-w64 + will be explained. For the rest, see + + binutils-&binutils-version;. + + + + Short Descriptions + + + + + {i686,x86_64}-w64-mingw32-dllwrap + + + ancient tool for generating PE style DLLs + + + dllwrap + + + + + + {i686,x86_64}-w64-mingw32-windmc + + + generates Windows message resources + + + windmc + + + + + + {i686,x86_64}-w64-mingw32-windres + + + manipulates Windows resources + + + windres + + + + + + dlltool + + + creates files neededto build and use DLLs + + + dlltool + + + + + + + + + diff --git a/wine/deps/tc/mingw-w64-crt.xml b/wine/deps/tc/mingw-w64-crt.xml new file mode 100644 index 0000000000..b23a7ee805 --- /dev/null +++ b/wine/deps/tc/mingw-w64-crt.xml @@ -0,0 +1,186 @@ + + + %general-entities; + + + + + + + +]> + + + + + + libunistring-&libunistring-version; + + + libunistring + + + + Introduction to libunistring + + + libunistring is a library that provides + functions for manipulating Unicode strings and for manipulating C + strings according to the Unicode standard. + + + &lfs121_checked; + + Package Information + + + + Download (HTTP): + + + + + Download (FTP): + + + + + Download MD5 sum: &libunistring-md5sum; + + + + + Download size: &libunistring-size; + + + + + Estimated disk space required: &libunistring-buildsize; + + + + + Estimated build time: &libunistring-time; + + + + + libunistring Dependencies + + Optional + + ) + (to rebuild the documentation) + + + + + + Installation of libunistring + + + Install libunistring by running the following + commands: + + +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/libunistring-&libunistring-version; && +make + + + To test the results, issue: make check. + + + + Now, as the root user: + + +make install + + + + + Command Explanations + + + + + + + 32-bit Installation of lib32-libunistring + + + First clean the directory by running the following command: + + + make distclean + + + Install lib32-libunistring + by running the following commands: + + + CC="gcc -m32" CXX="g++ -m32" \ +PKG_CONFIG_PATH=/usr/lib32/pkgconfig \ +./configure --prefix=/usr \ + --libdir=/usr/lib32 \ + --host=i686-pc-linux-gnu \ + --disable-static && + +make + + + Now as the root user: + + +make DESTDIR=$PWD/DESTDIR install +cp -vr DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR +ldconfig + + + + + Contents + + + Installed Programs + Installed Libraries + Installed Directory + + + None + libunistring.so + + /usr/include/unistring and + /usr/share/doc/libunistring-&libunistring-version; + + + + + + Short Descriptions + + + + + libunistring.so + + + provides the unicode string library API + + + libunistring.so + + + + + + + + + diff --git a/wine/deps/tc/mingw-w64-gcc.xml b/wine/deps/tc/mingw-w64-gcc.xml new file mode 100644 index 0000000000..b23a7ee805 --- /dev/null +++ b/wine/deps/tc/mingw-w64-gcc.xml @@ -0,0 +1,186 @@ + + + %general-entities; + + + + + + + +]> + + + + + + libunistring-&libunistring-version; + + + libunistring + + + + Introduction to libunistring + + + libunistring is a library that provides + functions for manipulating Unicode strings and for manipulating C + strings according to the Unicode standard. + + + &lfs121_checked; + + Package Information + + + + Download (HTTP): + + + + + Download (FTP): + + + + + Download MD5 sum: &libunistring-md5sum; + + + + + Download size: &libunistring-size; + + + + + Estimated disk space required: &libunistring-buildsize; + + + + + Estimated build time: &libunistring-time; + + + + + libunistring Dependencies + + Optional + + ) + (to rebuild the documentation) + + + + + + Installation of libunistring + + + Install libunistring by running the following + commands: + + +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/libunistring-&libunistring-version; && +make + + + To test the results, issue: make check. + + + + Now, as the root user: + + +make install + + + + + Command Explanations + + + + + + + 32-bit Installation of lib32-libunistring + + + First clean the directory by running the following command: + + + make distclean + + + Install lib32-libunistring + by running the following commands: + + + CC="gcc -m32" CXX="g++ -m32" \ +PKG_CONFIG_PATH=/usr/lib32/pkgconfig \ +./configure --prefix=/usr \ + --libdir=/usr/lib32 \ + --host=i686-pc-linux-gnu \ + --disable-static && + +make + + + Now as the root user: + + +make DESTDIR=$PWD/DESTDIR install +cp -vr DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR +ldconfig + + + + + Contents + + + Installed Programs + Installed Libraries + Installed Directory + + + None + libunistring.so + + /usr/include/unistring and + /usr/share/doc/libunistring-&libunistring-version; + + + + + + Short Descriptions + + + + + libunistring.so + + + provides the unicode string library API + + + libunistring.so + + + + + + + + + diff --git a/wine/deps/tc/mingw-w64-headers.xml b/wine/deps/tc/mingw-w64-headers.xml new file mode 100644 index 0000000000..2a56553359 --- /dev/null +++ b/wine/deps/tc/mingw-w64-headers.xml @@ -0,0 +1,181 @@ + + + %general-entities; + + + + + + + +]> + + + + + + MinGW-w64-headers-&mingw-w64-version; + + + mingw-w64-headers + + + + Introduction to MinGW-w64-headers + + + MinGW-w64-headers provides header files for Windows. + + + &lfs121_checked; + + Package Information + + + + Download (HTTP): + + + + + Download (FTP): + + + + + Download MD5 sum: &mingw-w64-md5sum; + + + + + Download size: &mingw-w64-size; + + + + + Estimated disk space required: &mingw-w64-buildsize; + + + + + Estimated build time: &mingw-w64-time; + + + + + MinGW-w64-headers Dependencies + + Optional + + + + + + + + Installation of MinGW-w64-headers + + + x86_64 MinGW-w64-headers + + + Install x86_64 MinGW-w64-headers + by running the following commands: + + +mkdir build-x86_64-headers && +cd build-x86_64-headers + +../mingw-w64-headers/configure --prefix=/usr/x86_64-w64-mingw32 \ + --enable-sdk=all \ + --host=x86_64-w64-mingw32 + + + Now, as the root user: + + +make install +rm -v /usr/x86_64-w64-mingw32/include/pthread_{signal,time,unistd}.h + + + + + + i686 MinGW-w64-headers + + + Install i686 MinGW-w64-headers + by running the following commands: + + +mkdir build-i686-headers && +cd build-i686-headers + +../mingw-w64-headers/configure --prefix=/usr/i686-w64-mingw32 \ + --enable-sdk=all \ + --host=i686-w64-mingw32 + + + + Now, as the root user: + + +make install +rm -v /usr/i686-w64-mingw32/include/pthread_{signal,time,unistd}.h + + + + + + + Command Explanations + + + --prefix=/usr/*: This option installs + the files to their respective architecture for better separation + of architectures. + + + + --enable-sdk=all: This option enables + the full SDK. + + + + --host=*: This option builds files for + the architecture passed to it. + + + + rm -v /usr/*/include/pthread_*: + This command removes unnecessary header files. + + + + + + Contents + + + Installed Programs + Installed Libraries + Installed Directories + + + + None + + + None + + + /usr/{i686,x86_64}-w64-mingw32/include + + + + + + + diff --git a/wine/deps/tc/mingw-w64-winpthreads.xml b/wine/deps/tc/mingw-w64-winpthreads.xml new file mode 100644 index 0000000000..b23a7ee805 --- /dev/null +++ b/wine/deps/tc/mingw-w64-winpthreads.xml @@ -0,0 +1,186 @@ + + + %general-entities; + + + + + + + +]> + + + + + + libunistring-&libunistring-version; + + + libunistring + + + + Introduction to libunistring + + + libunistring is a library that provides + functions for manipulating Unicode strings and for manipulating C + strings according to the Unicode standard. + + + &lfs121_checked; + + Package Information + + + + Download (HTTP): + + + + + Download (FTP): + + + + + Download MD5 sum: &libunistring-md5sum; + + + + + Download size: &libunistring-size; + + + + + Estimated disk space required: &libunistring-buildsize; + + + + + Estimated build time: &libunistring-time; + + + + + libunistring Dependencies + + Optional + + ) + (to rebuild the documentation) + + + + + + Installation of libunistring + + + Install libunistring by running the following + commands: + + +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/libunistring-&libunistring-version; && +make + + + To test the results, issue: make check. + + + + Now, as the root user: + + +make install + + + + + Command Explanations + + + + + + + 32-bit Installation of lib32-libunistring + + + First clean the directory by running the following command: + + + make distclean + + + Install lib32-libunistring + by running the following commands: + + + CC="gcc -m32" CXX="g++ -m32" \ +PKG_CONFIG_PATH=/usr/lib32/pkgconfig \ +./configure --prefix=/usr \ + --libdir=/usr/lib32 \ + --host=i686-pc-linux-gnu \ + --disable-static && + +make + + + Now as the root user: + + +make DESTDIR=$PWD/DESTDIR install +cp -vr DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR +ldconfig + + + + + Contents + + + Installed Programs + Installed Libraries + Installed Directory + + + None + libunistring.so + + /usr/include/unistring and + /usr/share/doc/libunistring-&libunistring-version; + + + + + + Short Descriptions + + + + + libunistring.so + + + provides the unicode string library API + + + libunistring.so + + + + + + + + + diff --git a/wine/whatiswine.xml b/wine/whatiswine.xml new file mode 100644 index 0000000000..9a32054d15 --- /dev/null +++ b/wine/whatiswine.xml @@ -0,0 +1,18 @@ + + + %general-entities; +]> + + + + + + What is Wine? + + + a + + + diff --git a/wine/wine/wine.xml b/wine/wine/wine.xml new file mode 100644 index 0000000000..33805bd865 --- /dev/null +++ b/wine/wine/wine.xml @@ -0,0 +1,18 @@ + + + %general-entities; +]> + + + + + + Wine + + + a + + + diff --git a/wine/wine/winedeps.xml b/wine/wine/winedeps.xml new file mode 100644 index 0000000000..04403d1398 --- /dev/null +++ b/wine/wine/winedeps.xml @@ -0,0 +1,18 @@ + + + %general-entities; +]> + + + + + + Wine Dependencies + + + a + + + diff --git a/wine/wine.xml b/wine/wine/winetrblshoot.xml similarity index 100% rename from wine/wine.xml rename to wine/wine/winetrblshoot.xml diff --git a/wine/intro.xml b/wine/winechapter.xml similarity index 65% rename from wine/intro.xml rename to wine/winechapter.xml index 95e20371fb..5ca2efbc19 100644 --- a/wine/intro.xml +++ b/wine/winechapter.xml @@ -5,11 +5,11 @@ %general-entities; ]> - - + + - Introduction + Wine - + diff --git a/wine/wineintro.xml b/wine/wineintro.xml new file mode 100644 index 0000000000..c26b0936f9 --- /dev/null +++ b/wine/wineintro.xml @@ -0,0 +1,32 @@ + + + %general-entities; +]> + + + + + Wine + + + This section covers how to install the dependencies of Wine, + such as the gnat and Mingw-w64 toolchains, as well as Wine + itself and its configuration. + + + + + + + + + + + + + + + +