sylware / nyanlinux (public) (License: AFFERO GPLv3) (since 2019-09-09) (hash sha1)
scripts for a lean, from scratch, amd hardware, linux distro
List of commits:
Subject Hash Author Date (UTC)
lynx:www update to 2.9.0dev.6 6914b03a9305b0db75a8bfee9916ebb299dcbf22 Sylvain BERTRAND 2021-01-21 17:37:08
file: update to 5.39 4847c94be5ac71b7ee818db04bdcdb6f28040618 Sylvain BERTRAND 2021-01-19 16:13:16
README: notify that sane bootstrapping was broken by upstream 40767db0d574aa7d8efca6a1911a4ee8f4daac5f Sylvain BERTRAND 2021-01-19 16:06:57
gfx stack update 73c8ba9436bb1a88da6034cfdd6108d5cd9c28d6 Sylvain BERTRAND 2021-01-17 17:55:20
update:nyanmp 61a755da013289957beed697a1669f8f573b4e9e Sylvain BERTRAND 2021-01-16 18:40:51
update of nyanmp 0ff2e83c50843426a898a09326a720242c8adafe Sylvain BERTRAND 2021-01-15 18:23:31
nyanmp update a2653ca0724a316894b2976daccef64a49a8fa08 Sylvain BERTRAND 2021-01-15 02:06:39
update libX11 (planned obsolescence) d2f0a85fe482a44ebf472d8fa1e60cea3f78450c Sylvain BERTRAND 2021-01-12 19:56:09
update libxcb (planned obsolescence) d56c4fab2c59bf3543360255a4a1ee01ed1ad024 Sylvain BERTRAND 2021-01-12 19:50:49
update python xcb proto generator (planned obsolescence) 7ce68516c9c49b98b0174e41f4f94b5b909da90f Sylvain BERTRAND 2021-01-12 19:41:13
update libXau (planned obsolescence) 7f1a7d2bdb6738622d46817de07eede76782f777 Sylvain BERTRAND 2021-01-12 19:27:58
update xtrans (planned obsolescence) 201c7bd2e5290218bdce3e98c567804143359d30 Sylvain BERTRAND 2021-01-12 19:15:59
xorg-proto update (planned obsolescence) 558b0c8dd57fde37d3b612b77753515928cf0349 Sylvain BERTRAND 2021-01-12 19:01:18
gfx stack update 7ff23d836f9c05b7f8fbcc8974563049019c436a Sylvain BERTRAND 2021-01-11 02:09:04
gfx stack update b3d858ab0f83211d99202e5a552bc539404cb1b3 Sylvain BERTRAND 2021-01-04 19:38:04
gfx stack update cd5692e6c892585302811cb321411e5d5907d42e Sylvain BERTRAND 2020-12-28 16:18:30
links:update to latest version 84d2851077dab241a7120f96b404c977da515050 Sylvain BERTRAND 2020-12-26 21:54:00
libressl:update to lastest version f5c0db9ee9e710e498b89cad8f2c62b69febf4c7 Sylvain BERTRAND 2020-12-26 21:33:41
gfx stack update 4b113c9476a8006961c1182c47d0e1ef698adb3d Sylvain BERTRAND 2020-12-25 15:45:09
gfx stack update b20a36c8c94a0e893efec3d1b2660b1f3872ea66 Sylvain BERTRAND 2020-12-13 16:38:11
Commit 6914b03a9305b0db75a8bfee9916ebb299dcbf22 - lynx:www update to 2.9.0dev.6
Author: Sylvain BERTRAND
Author date (UTC): 2021-01-21 17:37
Committer name: Sylvain BERTRAND
Committer date (UTC): 2021-01-21 17:37
Parent(s): 4847c94be5ac71b7ee818db04bdcdb6f28040618
Signer:
Signing key:
Signing status: N
Tree: 80aba9d39c30927bc5584556ad5458a2a90e2a10
File Lines added Lines deleted
builders/lynx-1/1.LYCookie.c.patch 0 69
builders/lynx-1/2.LYCookie.c.patch 0 79
builders/lynx-1/3.gnutls_compression.patch 0 42
builders/lynx-1/4.gnutls_retry.patch 0 32
builders/lynx-1/builder.sh 0 107
builders/lynx-2.9.0dev.6/builder.sh 94 0
File builders/lynx-1/1.LYCookie.c.patch deleted (index e0c31a0..0000000)
1 --- ./src/LYCookie.c
2 +++ ./src/LYCookie.c
3 @@ -371,7 +371,6 @@
4 BOOL Replacement = FALSE;
5 int invprompt_reasons = 0; /* what is wrong with this cookie - kw */
6
7 -#define FAILS_COND1 0x01
8 #define FAILS_COND4 0x02
9
10 if (co == NULL)
11 @@ -397,38 +396,6 @@
12 cookie_list = de->cookie_list;
13
14 /*
15 - * Apply sanity checks.
16 - *
17 - * Section 4.3.2, condition 1: The value for the Path attribute is
18 - * not a prefix of the request-URI.
19 - *
20 - * If cookie checking for this domain is set to INVCHECK_LOOSE,
21 - * then we want to bypass this check. The user should be queried
22 - * if set to INVCHECK_QUERY.
23 - */
24 - if (!is_prefix(co->path, path)) {
25 - invcheck_behaviour_t invcheck_bv = (de ? de->invcheck_bv
26 - : DEFAULT_INVCHECK_BV);
27 -
28 - switch (invcheck_bv) {
29 - case INVCHECK_LOOSE:
30 - break; /* continue as if nothing were wrong */
31 -
32 - case INVCHECK_QUERY:
33 - /* will prompt later if we get that far */
34 - invprompt_reasons |= FAILS_COND1;
35 - break;
36 -
37 - case INVCHECK_STRICT:
38 - CTrace((tfp,
39 - "store_cookie: Rejecting because '%s' is not a prefix of '%s'.\n",
40 - co->path, path));
41 - freeCookie(co);
42 - return;
43 - }
44 - }
45 -
46 - /*
47 * The next 4 conditions do NOT apply if the domain is still
48 * the default of request-host. (domains - case insensitive).
49 */
50 @@ -543,19 +510,6 @@
51 freeCookie(co);
52 FREE(msg);
53 return;
54 - }
55 - }
56 - if (invprompt_reasons & FAILS_COND1) {
57 - HTSprintf0(&msg,
58 - INVALID_COOKIE_PATH_CONFIRMATION,
59 - co->path, path);
60 - if (!HTForcedPrompt(cookie_noprompt, msg, NO)) {
61 - CTrace((tfp,
62 - "store_cookie: Rejecting because '%s' is not a prefix of '%s'.\n",
63 - co->path, path));
64 - freeCookie(co);
65 - FREE(msg);
66 - return;
67 }
68 }
69 FREE(msg);
File builders/lynx-1/2.LYCookie.c.patch deleted (index 60dca50..0000000)
1 --- src/LYCookie.c
2 +++ src/LYCookie.c
3 @@ -369,9 +369,6 @@
4 const char *ptr;
5 domain_entry *de = NULL;
6 BOOL Replacement = FALSE;
7 - int invprompt_reasons = 0; /* what is wrong with this cookie - kw */
8 -
9 -#define FAILS_COND4 0x02
10
11 if (co == NULL)
12 return;
13 @@ -453,66 +450,6 @@
14 freeCookie(co);
15 return;
16 }
17 -
18 - /*
19 - * RFC 2109 -
20 - * Section 4.3.2, condition 4: The request-host is an HDN (not IP
21 - * address) and has the form HD, where D is the value of the Domain
22 - * attribute, and H is a string that contains one or more dots.
23 - *
24 - * If cookie checking for this domain is set to INVCHECK_LOOSE, then we
25 - * want to bypass this check. The user should be queried if set to
26 - * INVCHECK_QUERY.
27 - */
28 - ptr = ((hostname + strlen(hostname)) - strlen(co->domain));
29 - if (StrChr(hostname, '.') < ptr) {
30 - invcheck_behaviour_t invcheck_bv = (de ? de->invcheck_bv
31 - : DEFAULT_INVCHECK_BV);
32 -
33 - switch (invcheck_bv) {
34 - case INVCHECK_LOOSE:
35 - break; /* continue as if nothing were wrong */
36 -
37 - case INVCHECK_QUERY:
38 - invprompt_reasons |= FAILS_COND4;
39 - break; /* will prompt later if we get that far */
40 -
41 - case INVCHECK_STRICT:
42 - CTrace((tfp,
43 - "store_cookie: Rejecting because '%s' is not a prefix of '%s'.\n",
44 - co->path, path));
45 - freeCookie(co);
46 - return;
47 - }
48 - }
49 - }
50 -
51 - /*
52 - * If we found reasons for issuing an invalid cookie confirmation prompt,
53 - * do that now. Rejection by the user here is the last chance to
54 - * completely ignore this cookie; after it passes this hurdle, it may at
55 - * least supersede a previous cookie (even if it finally gets rejected). -
56 - * kw
57 - */
58 - if (invprompt_reasons) {
59 - char *msg = 0;
60 -
61 - if (invprompt_reasons & FAILS_COND4) {
62 - HTSprintf0(&msg,
63 - INVALID_COOKIE_DOMAIN_CONFIRMATION,
64 - co->ddomain,
65 - hostname);
66 - if (!HTForcedPrompt(cookie_noprompt, msg, NO)) {
67 - CTrace((tfp,
68 - "store_cookie: Rejecting domain '%s' for host '%s'.\n",
69 - co->ddomain,
70 - hostname));
71 - freeCookie(co);
72 - FREE(msg);
73 - return;
74 - }
75 - }
76 - FREE(msg);
77 }
78
79 if (de == NULL) {
File builders/lynx-1/3.gnutls_compression.patch deleted (index 7a782e8..0000000)
1 --- WWW/Library/Implementation/tidy_tls.h
2 +++ WWW/Library/Implementation/tidy_tls.h
3 @@ -45,7 +45,6 @@
4 struct {
5 int protocol[GNUTLS_MAX_ALGORITHM_NUM];
6 int encrypts[GNUTLS_MAX_ALGORITHM_NUM];
7 - int compress[GNUTLS_MAX_ALGORITHM_NUM];
8 int key_xchg[GNUTLS_MAX_ALGORITHM_NUM];
9 int msg_code[GNUTLS_MAX_ALGORITHM_NUM];
10 } priority;
11 @@ -61,7 +60,6 @@
12 typedef struct {
13 gnutls_certificate_type_t cert;
14 gnutls_cipher_algorithm_t encrypts;
15 - gnutls_compression_method_t compress;
16 gnutls_kx_algorithm_t key_xchg;
17 gnutls_mac_algorithm_t msg_code;
18 gnutls_protocol_t protocol;
19 --- src/tidy_tls.c
20 +++ src/tidy_tls.c
21 @@ -368,7 +368,6 @@
22 result->encrypts = gnutls_cipher_get(ssl->gnutls_state);
23 result->key_xchg = gnutls_kx_get(ssl->gnutls_state);
24 result->msg_code = gnutls_mac_get(ssl->gnutls_state);
25 - result->compress = gnutls_compression_get(ssl->gnutls_state);
26 result->cert = gnutls_certificate_type_get(ssl->gnutls_state);
27 }
28
29 @@ -556,13 +555,6 @@
30 m->priority.encrypts[n] = 0;
31
32 /*
33 - * List the compression algorithms in decreasing order of priority.
34 - */
35 - n = 0;
36 - m->priority.compress[n++] = GNUTLS_COMP_NULL;
37 - m->priority.compress[n] = 0;
38 -
39 - /*
40 * List the key exchange algorithms in decreasing order of priority.
41 */
42 n = 0;
File builders/lynx-1/4.gnutls_retry.patch deleted (index 10f0466..0000000)
1 --- src/tidy_tls.c
2 +++ src/tidy_tls.c
3 @@ -461,14 +461,22 @@
4 {
5 int rc;
6
7 - rc = (int) gnutls_record_recv(ssl->gnutls_state, buffer, (size_t) length);
8 + for(;;) {
9 + rc = (int) gnutls_record_recv(ssl->gnutls_state, buffer, (size_t) length);
10
11 - if (rc < 0 && gnutls_error_is_fatal(rc) == 0) {
12 - if (rc == GNUTLS_E_REHANDSHAKE) {
13 - (void) gnutls_handshake(ssl->gnutls_state);
14 - gnutls_record_send(ssl->gnutls_state, ssl->sendbuffer, (size_t) ssl->bytes_sent);
15 - rc = (int) gnutls_record_recv(ssl->gnutls_state, buffer, (size_t) length);
16 - }
17 + if (rc < 0 && gnutls_error_is_fatal(rc) == 0) {
18 + if (rc == GNUTLS_E_REHANDSHAKE) {
19 + (void) gnutls_handshake(ssl->gnutls_state);
20 + gnutls_record_send(ssl->gnutls_state, ssl->sendbuffer, (size_t) ssl->bytes_sent);
21 + continue;
22 + } else if (rc == GNUTLS_E_AGAIN || rc == GNUTLS_E_INTERRUPTED) {
23 + continue;
24 + }
25 + /* not handled gnutls non-fatal error */
26 + break;
27 + } else
28 + /* rc >= 0 or gnutls fatal error */
29 + break;
30 }
31
32 ssl->last_error = rc;
File builders/lynx-1/builder.sh deleted (index 01473f0..0000000)
1 src_name=lynx
2 major=2
3 minor=8
4 micro=9
5 v_rel=1
6 version=$major.$minor.${micro}rel.$v_rel
7 archive_name=$src_name-cur.tar.bz2
8 src_d=$src_name$version
9 url0=http://invisible-island.net/datafiles/release/$pkg_name-cur.tar.bz2
10
11 src_dir=$src_dir_root/$src_d
12 cd $src_dir_root
13 rm -Rf $src_name$version
14 tar xf $archive_name
15
16 cd $src_dir
17
18 # Increase redirection limit to 20 (thx microsoft!)
19 sed -i -e 's/redirection_attempts > 10/redirection_attempts > 20/' ./WWW/Library/Implementation/HTAccess.c
20 # fix cookie path acceptance
21 patch -N -p0 -i $nyan_root/builders/$pkg_name/1.LYCookie.c.patch
22 # fix cookie domain acceptance
23 patch -N -p0 -i $nyan_root/builders/$pkg_name/2.LYCookie.c.patch
24 # remove obsolete gnutls compression
25 patch -N -p0 -i $nyan_root/builders/$pkg_name/3.gnutls_compression.patch
26 # fix gnutls receive handling
27 patch -N -p0 -i $nyan_root/builders/$pkg_name/4.gnutls_retry.patch
28
29 build_dir=$builds_dir_root/$pkg_name-$version
30 rm -Rf $build_dir
31 mkdir -p $build_dir
32 cd $build_dir
33
34 OLD_PATH=$PATH
35 export PATH=/nyan/ncurses/current/bin:$PATH
36
37 # gnutls pkg-config generation broken in cross-compilation (because of GNU libunistring)
38
39 export "CPPFLAGS=\
40 -I/nyan/zlib/current/include \
41 -I/nyan/bzip2/current/include \
42 -I/nyan/libtasn1/current/include \
43 -I/nyan/nettle/current/include \
44 -I/nyan/gnutls/current/include"
45 export 'CC=gcc -B/nyan/glibc/current/lib -L/nyan/glibc/current/lib -Wl,-rpath-link,/nyan/glibc/current/lib -static-libgcc'
46 export "CFLAGS=-O2 -pipe -fPIC"
47 export "LDFLAGS=\
48 -L/nyan/zlib/current/lib \
49 -L/nyan/bzip2/current/lib \
50 \
51 -L/nyan/toolchains/current/lib \
52 -L/nyan/libunistring/current/lib \
53 -L/nyan/nettle/current/lib \
54 -L/nyan/libtasn1/current/lib \
55 -L/nyan/libidn2/current/lib \
56 -L/nyan/gnutls/current/lib"
57 export "LIBS=-lgnutls -lidn2 -lhogweed -lnettle -lgmp -ltasn1 -lunistring"
58 $src_dir/configure \
59 --prefix=/nyan/lynx/1 \
60 --disable-debug \
61 --disable-trace \
62 --disable-nls \
63 --disable-full-paths \
64 --without-ssl \
65 --with-gnutls \
66 --disable-gnutls-compat \
67 --without-pkg-config \
68 --enable-ipv6 \
69 --with-screen=ncursesw \
70 --enable-widec \
71 --enable-htmlized-cfg \
72 --disable-local-docs \
73 --disable-bibp-urls \
74 --disable-menu-options \
75 --disable-sessions \
76 --disable-session-cache \
77 --enable-japanese-utf8 \
78 --enable-nested-tables \
79 --disable-partial \
80 --disable-scrollbar \
81 --enable-charset-choice \
82 --enable-externs \
83 --with-bzlib \
84 --with-zlib \
85 --disable-finger \
86 --disable-gopher \
87 --disable-news \
88 --disable-dired \
89 --enable-nested-tables \
90 --without-x \
91 --disable-rpath-hack
92 unset LIBS
93 unset LDFLAGS
94 unset CFLAGS
95 unset CC
96 unset CPPFLAGS
97
98 export PATH=$OLD_PATH
99
100 make -j $threads_n
101 make install
102
103 # cleanup and tidying
104 rm -Rf /nyan/$src_name/1/share
105 strip -s /nyan/$src_name/1/bin/$src_name
106
107 rm -Rf $build_dir $src_dir
File builders/lynx-2.9.0dev.6/builder.sh added (mode: 100644) (index 0000000..8478bcb)
1 src_name=lynx
2 major=2
3 minor=9
4 micro=0
5 v_dev=6
6 version=$major.$minor.${micro}dev.$v_dev
7 archive_name=$src_name-cur.tar.bz2
8 src_d=$src_name$version
9 url0=http://invisible-island.net/datafiles/release/$src_name-cur.tar.bz2
10
11 slot=$version
12
13 pkg_dir=$pkgs_dir_root/$src_d
14 mkdir -p $pkgs_dir_root
15 rm -Rf $pkg_dir
16 cp $src_dir_root/$archive_name $pkgs_dir_root
17 cd $pkgs_dir_root
18 tar xf $archive_name
19
20 build_dir=$builds_dir_root/$src_name-$version
21 rm -Rf $build_dir
22 mkdir -p $build_dir
23 cd $build_dir
24
25 PATH_SAVED=$PATH
26 export PATH=/nyan/ncurses/current/bin:$PATH
27
28 export CPPFLAGS="\
29 -I/nyan/libressl/current/include \
30 -I/nyan/zlib/current/include \
31 -I/nyan/bzip2/current/include"
32 export CC="gcc"
33 export CFLAGS='-O2 -pipe -fPIC -static-libgcc'
34 export LDFLAGS="\
35 -B/nyan/glibc/current/lib \
36 -L/nyan/glibc/current/lib \
37 -Wl,-rpath-link,/nyan/glibc/current/lib \
38 -L/nyan/libressl/current/lib \
39 -L/nyan/zlib/current/lib \
40 -L/nyan/bzip2/current/lib"
41 export LIBS="-lpthread"
42
43 # --disable-trace is broken
44 $pkg_dir/configure \
45 --prefix=/nyan/lynx/$slot \
46 --disable-debug \
47 --enable-trace \
48 --disable-nls \
49 --disable-full-paths \
50 --with-ssl \
51 --without-pkg-config \
52 --enable-ipv6 \
53 --with-screen=ncursesw \
54 --enable-widec \
55 --enable-htmlized-cfg \
56 --disable-local-docs \
57 --disable-bibp-urls \
58 --disable-menu-options \
59 --disable-sessions \
60 --disable-session-cache \
61 --enable-japanese-utf8 \
62 --enable-wcwidth-support \
63 --enable-default-colors \
64 --enable-nested-tables \
65 --disable-idna \
66 --disable-partial \
67 --disable-scrollbar \
68 --enable-charset-choice \
69 --enable-externs \
70 --disable-nsl-fork \
71 --with-bzlib \
72 --with-zlib \
73 --disable-finger \
74 --disable-gopher \
75 --disable-news \
76 --disable-dired \
77 --without-x \
78 --disable-rpath-hack
79 unset CPPFLAGS
80 unset CC
81 unset CFLAGS
82 unset LDFLAGS
83 unset LIBS
84
85 export PATH=$PATH_SAVED
86
87 make -j $threads_n
88 make install
89
90 # cleanup and tidying
91 rm -Rf /nyan/$src_name/$slot/share
92 strip -s /nyan/$src_name/$slot/bin/$src_name
93
94 rm -Rf $build_dir $pkg_dir
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanlinux

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanlinux

Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanlinux

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main