Skip to content

Latest commit

 

History

History
61 lines (42 loc) · 3 KB

CONTRIBUTING.md

File metadata and controls

61 lines (42 loc) · 3 KB

CONTRIBUTING

Unchangable folders

Except for the following folders, these unlisted folders should not be changed, under any circumstances, because these are created by GNU, and should be stored in there as the rest-overs.

  • .admin - Admin folder, for further changing in the repo
  • .github - Containing GitHub-related files and actions.
  • .gnu-windows - Including sources and build instructions. May can change to compatible with the installation
  • .gitattributes, .gitignore, *.md, dockerfile, and LICENSE are all generated by GitHub Actions workflows or manually written.

Changes in repo layout and updating versions and tools

For in-repo layout and updating versions and tools, please run .admin/run_admin.sh with changes variables.

Once it's done, make sure you move all extracted folders into the main repo, remove all compressed files, and also update versioning, paths, and build instructions in .gnu-windows/build.sh

Building the repo

⚠️ Warning

Because an unknown error was detected in the Windows Subsystem for Linux, we recommend you build the repo in Linux or use Docker Desktop within Hyper-V.

Building within Docker

You need to run the pre-defined Docker image, mount your cloned GitHub repo, and build from that.

Replace <your path> with your real path to the local repo. Double-quote is needed if there are spaces in your path.

docker run -it -v <your path>:/root shiroinekotfs/gnu-windows:latest bash

Once you're in the bash, try this command:

/root/.gnu-windows/build.sh

Once it's done, you'll see your GNU application is building in folder .gnu-windows\bootstrap

Building within Linux

Make sure you've installed all of these packages before building GNU Windows

autotools-dev binutils binutils-x86-64-linux-gnu cmake-data cpp cpp-12 fakeroot
fontconfig-config fonts-dejavu-core g++-12 gcc-12 libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libaom3 libarchive13 libasan8 libatomic1 libbinutils libbrotli1 libc-dev-bin
libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libcurl4 libde265-0 libdeflate0
libdpkg-perl libexpat1 libfakeroot libfile-fcntllock-perl libfl2 libfontconfig1 libfreetype6
libgcc-12-dev libgd3 libgmpxx4ldbl libgomp1 libheif1  libitm1 libjbig0  libjsoncpp25  liblsan0
libnghttp2-14 libnsl-dev libnsl2 libnuma1 libpng16-16 libpsl5 libquadmath0  librhash0 librtmp1
libssh2-1 libstdc++-12-dev libtirpc-dev libtsan2 libubsan1 libuv1 libwebp7 libx11-6 libx11-data
libx265-199 libxau6 libxcb1 libxdmcp6 libxml2 libxpm4 libyuv0 linux-libc-dev manpages-dev patch
publicsuffix rpcsvc-proto unzip autoconf automake bison build-essential cmake curl dpkg-dev flex
g++ gcc libfl-dev libgmp-dev libmpc-dev libmpfr-dev m4 make wget zip texinfo pkg-config python3
python3-pip python3-venv file mingw-w64-x86-64-dev mingw-w64-i686-dev mingw-w64-tools

Just run the <your path>/.gnu-windows/build.sh directly, without changing the current console directory. Don't forget to use chmod command.