Initial commit.

This commit is contained in:
Mid Favila 2022-12-01 20:40:24 -04:00
parent 74acce7243
commit e819d7bd33
3685 changed files with 2977 additions and 16630 deletions

View File

@ -1,9 +1,6 @@
-Packages adhere to the same basic set of rules as standard KISS packages.
-However, indentation is three spaces, instead of four.
-The only package from Core that should be listed as an explicit dependency of
anything is cURL; this is because cURL is not absolutely necessary.
-Packages under sys/core should NEVER be listed as an explicit dependency.
-Packages will only be accepted if they are available from an HTTPS source;
a good place to find secure sources is the Debian repositories. You can
@ -14,18 +11,10 @@
(e.g what UI toolkit to use), always take the option that results in the
fewest overall dependencies. Remember that forking is encouraged.
-Internationalization should always be disabled by default.
-Internationalization should always be disabled by default. English is the
only official language of this distribution.
-Unless necessary for an existing package, arbitrary libraries will not be
accepted.
-Packages not interesting or useful may be allowed in unofficial, or will
be rejected
-New packages will not use install -d, nor shall they use sed -i. Neither of
these are portable. The former can be handled with -D, and the latter can
be accomplished using redirects. (note that this is subject to change if sed-i is put into core)
-Packages built from Git will be stored under ports/unofficial/rolling
-Packages built from tarballs will be stored under ports/unofficial/stable
-Packages with git+ sources will not be accepted. Git support was a mistake.

29
NR_MAINT_TOOLS/make.sh Executable file
View File

@ -0,0 +1,29 @@
#!/bin/sh -e
find "$1" | grep include > includes
sort includes|uniq -u > includes2
IDIR=$(cat includes2|tr '\n' ' '|sed -ne 's/\.\.\//-I\.\.\//gp')
PNME=$(grep PACKAGE_NAME Makefile|cut -f3 -d' ')
VNUM=$(sed -ne 's/.*\([0-9][0-9]*:[0-9][0-9]*:[0-9][0-9]*\).*/\1/p' Makefile)
# the below might need adjusting if the linker args span multiple lines... guess we'll find out
LIBS=$(grep '.*_LIBS = ' Makefile|cut -f3 -d' ')
MNSO="$(printf '%s.so.%s.%s.%s' "${PNME}" "$(echo $VNUM|cut -f1 -d:)" "$(echo $VNUM|cut -f2 -d:)" "$(echo $VNUM|cut -f3 -d:)")"
for c in $(ls *.c|cut -f1 -d.)
do
cc -DHAVE_CONFIG_H -I. -I.. -I../include $IDIR -c $c.c -o $c.o
done
cc *.o -shared -o "${MNSO}" $LIBS
for i in "$(printf "$PNME.so.%s" "$(echo $VNUM|cut -f1 -d:)")" "$(printf "%s.so" "${PNME}")"
do
ln -s "${MNSO}" "${i}"
done
cc *.o -r -o "$PNME.a"
sed -ne s/.*\([0-9][0-9]*:[0-9][0-9]*:[0-9][0-9]*\).*/\1/p Makefile

28
NR_MAINT_TOOLS/make.sh~ Executable file
View File

@ -0,0 +1,28 @@
#!/bin/sh -e
find "$1" | grep include > includes
sort includes|uniq -u > includes2
IDIR=$(cat includes2|tr '\n' ' '|sed -ne 's/\.\.\//-I\.\.\//gp')
PNME=$(grep PACKAGE_NAME Makefile|cut -f3 -d' ')
VNUM=$(grep '[0-9][0-9]*:[0-9][0-9]*:[0-9][0-9]*' Makefile|cut -f3 -d' ')
# the below might need adjusting if the linker args span multiple lines... guess we'll find out
LIBS=$(grep '.*_LIBS = ' Makefile|cut -f3 -d' ')
MNSO="$(printf '%s.so.%s.%s.%s' "${PNME}" "$(echo $VNUM|cut -f1 -d:)" "$(echo $VNUM|cut -f2 -d:)" "$(echo $VNUM|cut -f3 -d:)")"
for c in $(ls *.c|cut -f1 -d.)
do
cc -DHAVE_CONFIG_H -I. -I.. -I../include $IDIR -c $c.c -o $c.o
done
cc *.o -shared -o "${MNSO}" $LIBS
for i in "$(printf "$PNME.so.%s" "$(echo $VNUM|cut -f1 -d:)")" "$(printf "$PNME.so.%s.%s.%s" "$(echo $VNUM|cut -f1 -d:)" "$(echo $VNUM|cut -f2 -d:)" "$(echo $VNUM|cut -f3 -d:)")"
do
ln -s "${MNSO}" "${i}"
done
cc *.o -r -o "$PNME.a"

View File

@ -1,7 +1,17 @@
-get python to build without GNU-compatible grep?
-get everything under core/ to build statically?
-anything that relies on libz is an issue, it seems
-binutils is an issue
-so is eudev
-flex
-attempt to replace gcc with tcc?
-get python to build without GNU-compatible grep? [we should just avoid python...]
-get everything under core/ to build statically? [only bsdtar, se, pkgconf, tcc]
-attempt to replace gcc with tcc? [in progress]
-write minimally viable HTTP/S client for official/core
-patch procps-ng to build with tcc
-patch pciutils or, more likely, replaced - fails to assemble with tccasm
-replace network-tools configure script
-replace mandoc with heirloom-doctools
-fix or replace syslinux with something that builds with tcc [done]
-replace libressl with bearssl [done]
-patch or replace libarchive to work with tcc
-patch libz makefile for tcc compat [done]
-curses library needs to be patched [done]
-restructure official/* [done]
-fix or replace util-linux, procps-ng and libarchive
-work on building tinyx
-flac needs its configure patched

103
NR_README
View File

@ -11,70 +11,17 @@ stability is the concern of security, and then performance.
Expect patches for many - if not most - packages, in the future.
The mbase directory contains symlinks to packages that I install as my core
userspace.
All packages under ports have been tested to compile with musl and tcc.
Packages not under ports have no guarantee. Breakage of things under
ports/unofficial will be handled when time is available. ports/official
will be handled by me personally, with top priority.
The banished directory contains software that has been isolated for whatever
reason. May or may not include a "JUSTIFICATION" file to remind myself in the
future.
A binaries subdir will be added in the future. I, however, encourage you to
build from source if possible.
Note that not all of the packages in this repo are written by me; some are
forked from Core and Community. This is purely a matter of convenience.
All packages under mbase have been tested and build on the Haswell
microarchitecture using the following CFLAGS (assuming GCC):
-pipe
Compile in memory
-w
Suppress errors
-D_FORTIFY_SOURCE=1
Perform lightweight tests to catch overflows and etc
-O2
Standard level of optimization
-march=native
Compile for the current micro-arch
-fno-asynchronous-unwind-tables
Do not include asynchronous unwind tables. Reduces binary size
-momit-leaf-frame-pointer
Leave out unneeded pointers
-ftree-loop-vectorize
Vectorize trees (unsure of the implications, but doesn't appear to cause
breakage; will investigate further)
-fstack-protector-strong
Sacrifice a fair amount of performance in order to protect from stack
smashing
--param ssp-buffer-size=4
Increase the number of functions under the stack protector
-fstack-clash-protection
Protect from stack clashing. Will investigate further
-fPIE
Generate position-independent executables
-fPIC
Generate position-independent code
-Wl,--hash-style=gnu -Wl,-pie
Linker arguments
-fno-lto
Prevent LTO. You can discard this if and only if you are not using
a statically-linked gold or bfd as your primary linker.
A new subdir, bin, containing binaries built with the above CFLAGS (sans native)
will be added in the future. I, however, encourage you to build from source if
possible.
As the system is not fully self-hosting yet, some elements of core will be
provided in binary form as a convenience. Feel free to build them on your own
KISS system if you don't trust me, though.
________________________________________________________________________________
@ -85,31 +32,26 @@ ________________________________________________________________________________
(Un)Official Repositories
________________________________________________________________________________
This repository is compatible with the legacy KISS package management
standard. Originally forked from upstream on 2021/7/9, I feel that
sufficient changes have been made for me to lay claim to the entire
repository.
The unofficial repositories for KISS Linux maintained by Mid Favila.
Included in my repo is a snapshot of the community and musl core, xorg, and
extra repos as of 2021/7/9, modified to replace the utterly garbage packages
that some members had contributed (in blatant violation of guidelines, too!).
Tentatively, it will be referred to as A/OS; I'm taking the FVWM
approach to naming things, so the A stands for whatever you want.
These were forked due to upstream's insistence on switching from LibreSSL to
OpenSSL, and from X11 to Wayland; the former due to Python, and the latter,
I'm not quite sure of. Regardless, I dislike these changes.
Over time, packages that I'm not willing to maintain will be moved to
mid-graveyard; after a few months, they'll be deleted.
Any programs that require Python as a build-time dependency will have their
scripts rewritten in Common Lisp, or they will be removed. This will happen
ASAP.
I will also be removing packages that I just flat out don't like. If you want
them yourself, then copy them from an old git push. Software that will be
removed and never added includes, but is not limited to, the following;
Software that will be removed and never added includes, but is not limited to,
the following:
-systemd or any of its ilk
-OpenSSL or programs that explicitly depend on it
-Open/LibreSSL or programs that explicitly depend on it
-Programs that require a version of Python newer than 3.9
-Programs written with or requiring Rust tooling
-Programs written with or requiring C++ tooling
-Programs written primarily by or for corporations, such as BTRFS utilities
(This applies triply to FAGMAN; Facebook, Apple, Google, Microsoft,
Amazon, and Netflix. I also will not tolerate software related to Tencent
@ -120,9 +62,7 @@ CAPACITY. THEY ARE NOT RESPONSIBLE FOR THESE PACKAGES. DO NOT SUBMIT REPORTS IN
#KISSLINUX ON LIBERA.CHAT IF THESE BREAK; EMAIL ME.
ALSO NOTE THAT THESE PACKAGES ARE CURRENTLY BEING REWRITTEN AND ARE NOT LIKELY
TO BE IN A USABLE STATE. I WILL NOT ACCEPT BUG REPORTS RELATING TO COMMUNITY
OR CORE, AND I WILL NOT ACCEPT REPORTS IF YOUR SYSTEM IS COMPILED WITH FLAGS
THAT ARE NOT INCLUDED ABOVE.
TO BE IN A USABLE STATE.
BEFORE SUBMITTING BUG REPORTS, READ ERIC S. RAYMOND'S "HOW TO ASK QUESTIONS THE
SMART WAY", AND SPEND SOME TIME STUDYING YOUR LOGS. I HAVE NO QUALMS HELPING
@ -132,6 +72,7 @@ BE SURE TO INCLUDE THE FOLLOWING:
-PACKAGE BUILD LOG
-SYSTEM DMESG
-YOUR CFLAGS
-GCC VERSION (CLANG UNSUPPORTED)
-TCC OR CPROC VERSION (OTHER COMPILERS UNSUPPORTED)
-X11 LOGS (IF RELEVANT; WAYLAND UNSUPPORTED)
THANK YOU FOR YOUR COOPERATION.

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

@ -1 +0,0 @@
./community-mod/stable/iptables

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

@ -1,37 +0,0 @@
#!/bin/sh -e
CFLAGS="$CFLAGS -static -fPIC"
LDFLAGS="$LDFLAGS -static -fPIC -fno-lto -fno-use-linker-plugin -static -fPIC"
cat > makeinfo <<EOF
#!/bin/sh
printf 'makeinfo (GNU texinfo) 5.2\n'
EOF
chmod +x makeinfo
export PATH=$PATH:$PWD
./configure \
--prefix=/usr \
--with-lib-path=/usr/lib:/usr/local/lib \
--enable-targets=x86_64-pep \
--enable-deterministic-archives \
--enable-gold \
--enable-ld=default \
--disable-multilib \
--with-static-standard-libraries \
--disable-werror \
--disable-gdb \
--disable-nls \
--disable-readline \
--disable-gprof \
--with-mmap \
--with-system-zlib \
--disable-lto \
--disable-plugins
make configure-host
make tooldir=/usr
make DESTDIR="$1" tooldir=/usr install
ln -sf ld.gold "$1/usr/bin/ld"

View File

@ -1 +0,0 @@
e316477a914f567eccc34d5d29785b8b0f5a10208d36bbacedcc39048ecfe024

View File

@ -1,2 +0,0 @@
flex

Some files were not shown because too many files have changed in this diff Show More