Dillo-dev
By thread
dillo-dev@mailman3.com
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1999 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1998 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1997 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1996 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1995 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
October 2025
- 3 participants
- 9 messages
Re: dillo plugin patches
by Rodrigo Arias
Hi,
I added an exception for your email to the list. Following replies
should get archived.
On Fri, Oct 31, 2025 at 11:34:04AM -0400, John McCue wrote:
>Hi Rodrigo,
>
>Attached are these 3 patches, the third one is
>a very minor one for the gemini plugin's Makefile.
Thanks for the patches.
>1. io.txt -- A patch to io.c to avoid a compile error
> on OpenBSD. This is based upon the email I responded to
> earlier today.
>
>2. dpi.txt -- Corrects an odd issue on OpenBSD with the
> gopher plugin. Access a gopher hole works fine on first
> try, accessing a 2nd hole does nothing, no data is
> presented. Selecting the "Stop" button in dillo works to
> stop the attempted load. My wild guess is one of the
> casts fixed the issue.
I cannot reproduce this, with or without the patch. Tested in order:
- gopher://gopher.quux.org:70/1/
- gopher://gopher.floodgap.com/
If you can reliably reproduce this, you could dump the backtrace while
is "doing nothing" in case it got stuck in some network operation.
>3. gemini_mk.txt -- a simple change to the gemini plugin's
> Makefile. It allows the gemini plugin to 'compile' on
> NetBSD. NetBSD installs packages in /usr/pkg.
>
>As mentioned in the last email, I will be happy to test
>on OpenBSD and NetBSD.
>
>Thanks
>John
>diff --git a/dpi.c b/dpi.c
>index 7b38800..52547f8 100644
>--- a/dpi.c
>+++ b/dpi.c
>@@ -7,7 +7,7 @@
> #include "io.h"
>
> static void check_auth() {
>- char buf[30];
>+ char buf[31];
> int rc;
> char key[4], local_key[4];
> char keys[128];
>@@ -16,16 +16,16 @@ static void check_auth() {
> rc = read_all(STDIN_FILENO, buf, 29);
> if (rc < 0) err(1, "read auth");
> buf[30] = '\0';
>- rc = sscanf(buf, "<cmd='auth' msg='%4x' '>", key);
>+ rc = sscanf(buf, "<cmd='auth' msg='%4x' '>", (unsigned int *) key);
The address of key may not be aligned to the size of a word. Some
architectures will cause an invalid access trying to write an int to a
non-aligned address.
A better solution is to declare key as an unsigned int. I applied your
fixes and then changed the key variables.
> if (rc < 0) err(1, "auth: %.*s", 29, buf);
> if (rc < 1) errx(1, "auth: %.*s", 29, buf);
> home = getenv("HOME");
> if (!home) home = ".";
> sz = read_file(keys, sizeof(keys), "%s/.dillo/dpid_comm_keys", home);
> if (sz < 0) err(1, "read dillo comm keys");
>- rc = sscanf(keys, "%*d %4x' '>", local_key);
>- if (rc < 0) err(1, "comm key: %.*s", sz, keys);
>- if (rc < 1) errx(1, "comm key: %.*s", sz, keys);
>+ rc = sscanf(keys, "%*d %4x' '>", (unsigned int *) local_key);
>+ if (rc < 0) err(1, "comm key: %.*s", (int) sz, keys);
>+ if (rc < 1) errx(1, "comm key: %.*s", (int) sz, keys);
> if (memcmp(key, local_key, 4)) errx(1, "wrong dillo key");
> }
>
>@@ -38,7 +38,7 @@ static void get_url(char *url_buf, size_t url_len) {
> rc = read_all(STDIN_FILENO, buf, sizeof(buf));
> if (rc < 0) err(1, "read open_url");
> if (strncmp(buf, "<cmd='open_url' url='", 21)) {
>- err(1, "bad open_url cmd: %.*s", sizeof(buf), buf);
>+ err(1, "bad open_url cmd: %.*s", (int) sizeof(buf), buf);
> }
> len = url_len;
> rc = read_some(STDIN_FILENO, url_buf, &len);
>@@ -48,7 +48,7 @@ static void get_url(char *url_buf, size_t url_len) {
> if (url_buf[i] == '\'' && url_buf[i+1] == ' ') break;
> }
> if (i > len-3 || strncmp(url_buf + i, "' '>", 4)) {
>- err(1, "bad url end: %.*s", len, url_buf);
>+ err(1, "bad url end: %.*s", (int) len, url_buf);
> }
> url_buf[i] = '\0';
> }
>diff --git a/Makefile b/Makefile
>index 1ff7047..e41e173 100644
>--- a/Makefile
>+++ b/Makefile
>@@ -13,6 +13,7 @@ $(DPIDRC):
> mkdir -p $(DPI_DIR)
> if [ -f /etc/dillo/dpidrc ]; then cp /etc/dillo/dpidrc $@; \
> elif [ -f /usr/local/etc/dillo/dpidrc ]; then cp /usr/local/etc/dillo/dpidrc $@; \
>+ elif [ -f /usr/pkg/etc/dillo/dpidrc ]; then cp /usr/pkg/etc/dillo/dpidrc $@; \
> else echo "Can't find dpidrc, is dillo installed?"; false; fi
This is not in our upstream, but I would rather avoid having each
possible path here. I added a DILLO_PREFIX variable, empty by default.
So you can use `make install DILLO_PREFIX=/usr/pkg` to find dpidrc in
your system. By default it only looks at /etc/dillo/dpidrc.
> install-proto: $(DPIDRC)
>diff --git a/io.c b/io.c
>index 615f346..f437c2e 100644
>--- a/io.c
>+++ b/io.c
>@@ -7,6 +7,7 @@
> #include <fcntl.h>
> #include <netdb.h>
> #include <netinet/in.h>
>+#include <sys/socket.h>
Applied.
>
> #include "io.h"
>
I fixed several other problems and set the C standard to C99 and enabled
POSIX 2001 by default in CFLAGS. I also performed the build with gcc and
clang on Linux with -Werror -Wall -Wextra -pedantic as well as with
-fsanitize=address to see if I catch something while running the plugin.
Nothing so far.
I pushed it here (we are moving away from GitHub):
https://git.dillo-browser.org/plugins/gopher/log/?h=fix-bsd
Let me know if you encounter problems building it on any BSD.
Thanks!,
Rodrigo.
Oct. 31, 2025
Re: FWD - dillo gopher plugin issue (reddit)
by a1ex@dismail.de
Hi Rodrigo,
Rodrigo Arias <rodarima(a)gmail.com> wrote:
> I don't have a machine with OpenBSD at hand, can you test if the build
> succeeds using the current master code in OpenBSD with these CFLAGS?
> It does on Linux:
>
> % git
> clone https://git.dillo-browser.org/plugins/gopher && cd gopher % make CC=clang CFLAGS=
> "-Wall -std=c99 -D_POSIX_C_SOURCE=200112L"
$ make CC=clang CFLAGS="-Wall -std=c99 -D_POSIX_C_SOURCE=200112L"
clang -Wall -std=c99 -D_POSIX_C_SOURCE=200112L -I/usr/local/include -I/usr/X11R6/include -c io.c
io.c:84:20: error: use of undeclared identifier 'AF_UNSPEC'
84 | hints.ai_family = AF_UNSPEC;
| ^
io.c:95:8: warning: call to undeclared function 'socket'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
95 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
| ^
io.c:97:7: warning: call to undeclared function 'connect'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
97 | if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) break;
| ^
2 warnings and 1 error generated.
> There are many warnings that should be fixed (as below), but the
> current includes should work otherwise. If not, does adding the extra
>
> + #include <sys/socket.h>
>
> line solves it?
Looks better, now we get this:
$ make CC=clang CFLAGS="-Wall -std=c99 -D_POSIX_C_SOURCE=200112L"
clang -Wall -std=c99 -D_POSIX_C_SOURCE=200112L -I/usr/local/include -I/usr/X11R6/include -c io.c
clang -Wall -std=c99 -D_POSIX_C_SOURCE=200112L -I/usr/local/include -I/usr/X11R6/include -c dpi.c
dpi.c:19:47: warning: format specifies type 'unsigned int *' but the argument has type 'char *' [-Wformat]
19 | rc = sscanf(buf, "<cmd='auth' msg='%4x' '>", key);
| ~~~ ^~~
| %3s
dpi.c:26:35: warning: format specifies type 'unsigned int *' but the argument has type 'char *' [-Wformat]
26 | rc = sscanf(keys, "%*d %4x' '>", local_key);
| ~~~ ^~~~~~~~~
| %3s
dpi.c:27:34: warning: field precision should have type 'int', but argument has type 'ssize_t' (aka 'long') [-Wformat]
27 | if (rc < 0) err(1, "comm key: %.*s", sz, keys);
| ~~^~ ~~
dpi.c:28:35: warning: field precision should have type 'int', but argument has type 'ssize_t' (aka 'long') [-Wformat]
28 | if (rc < 1) errx(1, "comm key: %.*s", sz, keys);
| ~~^~ ~~
dpi.c:18:2: warning: array index 30 is past the end of the array (that has type 'char[30]') [-Warray-bounds]
18 | buf[30] = '\0';
| ^ ~~
dpi.c:10:2: note: array 'buf' declared here
10 | char buf[30];
| ^
dpi.c:41:31: warning: field precision should have type 'int', but argument has type 'unsigned long' [-Wformat]
41 | err(1, "bad open_url cmd: %.*s", sizeof(buf), buf);
| ~~^~ ~~~~~~~~~~~
dpi.c:51:26: warning: field precision should have type 'int', but argument has type 'size_t' (aka 'unsigned long') [-Wformat]
51 | err(1, "bad url end: %.*s", len, url_buf);
| ~~^~ ~~~
7 warnings generated.
Regards,
Alex
Oct. 31, 2025
Re: FWD - dillo gopher plugin issue (reddit)
by Rodrigo Arias
Hi Alex, John,
On Thu, Oct 30, 2025 at 12:05:51PM +0000, a1ex(a)dismail.de wrote:
> Hi,
>
> I saw this issue on Reddit today pertaining to the Gopher plugin not
> working correctly on OpenBSD. It includes a fix (I haven't tested it):
>
> https://eddrit.com/r/openbsd/comments/1oj3ljg/dillo_gopher_plugin_issue_wor…
Thanks, I saw it as well. Nice frontend btw.
> Date: Thu, 30 Oct 2025 11:10:21 -0400
> From: John McCue <jmccue(a)jmcunx.com>
> To: a1ex(a)dismail.de
> Cc: dillo-dev(a)mailman3.com
> Subject: Re: Dillo gopher plugin on OpenBSD issue
>
>
> [...]
>
> Somehow I missed it seeing there was a list. I found another
> issues with the gopher plugin on OpenBSD.
>
> The issue I am testing is with dpi.c. On OpenBSD, it has to
> do with how clang works on OpenBSD. The diffs are below.
I can reproduce many issues on Linux with `CC=clang make`. I'm getting a
few more warnings that should be easy to solve.
> So far, with the changes to io.c and dpi.c, the plugin
> works fine on both OpenBSD and NetBSD.
>
> diff --git a/io.c b/io.c
> index 615f346..a10a0b3 100644
> --- a/io.c
> +++ b/io.c
> @@ -1,3 +1,4 @@
> +#include <sys/param.h>
> #include <string.h>
> #include <errno.h>
> #include <unistd.h>
> @@ -8,6 +9,12 @@
> #include <netdb.h>
> #include <netinet/in.h>
>
> +#ifdef OpenBSD
I don't think we need to handle OpenBSD differently, but instead make
the code portable by targeting C and POSIX standards.
> +#include <sys/socket.h>
This is always needed as we use socket(), but it should not be needed
here as it would be included via <netinet/in.h>, from netinet_in.h(0P):
> Inclusion of the <netinet/in.h> header may also make visible all
> symbols from <inttypes.h> and <sys/socket.h>
Not sure if OpenBSD follows this, otherwise can simply include it
unconditionally.
> +#include <net/if.h>
> +#include <net/route.h>
Needed?
> +#endif
> +
Building with:
% make CC=clang CFLAGS="-std=c11 -Wall -pedantic"
Already reveals many problems. We can probably lower the C standard to
C99.
I don't have a machine with OpenBSD at hand, can you test if the build
succeeds using the current master code in OpenBSD with these CFLAGS? It
does on Linux:
% git clone https://git.dillo-browser.org/plugins/gopher && cd gopher
% make CC=clang CFLAGS="-Wall -std=c99 -D_POSIX_C_SOURCE=200112L"
There are many warnings that should be fixed (as below), but the
current includes should work otherwise. If not, does adding the extra
+ #include <sys/socket.h>
line solves it?
> #include "io.h"
>
> int read_all(int fd, unsigned char *buf, size_t len) {
>
>
> diff --git a/dpi.c b/dpi.c
> index 7b38800..52547f8 100644
> --- a/dpi.c
> +++ b/dpi.c
> @@ -7,7 +7,7 @@
> #include "io.h"
>
> static void check_auth() {
> - char buf[30];
> + char buf[31];
> int rc;
> char key[4], local_key[4];
> char keys[128];
> @@ -16,16 +16,16 @@ static void check_auth() {
> rc = read_all(STDIN_FILENO, buf, 29);
> if (rc < 0) err(1, "read auth");
> buf[30] = '\0';
> - rc = sscanf(buf, "<cmd='auth' msg='%4x' '>", key);
> + rc = sscanf(buf, "<cmd='auth' msg='%4x' '>", (unsigned int *)
> key); if (rc < 0) err(1, "auth: %.*s", 29, buf);
The patch is badly mangled, better use `git send-patch` or attach it as
a file.
> if (rc < 1) errx(1, "auth: %.*s", 29, buf);
> home = getenv("HOME");
> if (!home) home = ".";
> sz = read_file(keys, sizeof(keys),
> "%s/.dillo/dpid_comm_keys", home); if (sz < 0) err(1, "read dillo comm
> keys");
> - rc = sscanf(keys, "%*d %4x' '>", local_key);
> - if (rc < 0) err(1, "comm key: %.*s", sz, keys);
> - if (rc < 1) errx(1, "comm key: %.*s", sz, keys);
> + rc = sscanf(keys, "%*d %4x' '>", (unsigned int *) local_key);
> + if (rc < 0) err(1, "comm key: %.*s", (int) sz, keys);
> + if (rc < 1) errx(1, "comm key: %.*s", (int) sz, keys);
> if (memcmp(key, local_key, 4)) errx(1, "wrong dillo key");
> }
>
> @@ -38,7 +38,7 @@ static void get_url(char *url_buf, size_t url_len) {
> rc = read_all(STDIN_FILENO, buf, sizeof(buf));
> if (rc < 0) err(1, "read open_url");
> if (strncmp(buf, "<cmd='open_url' url='", 21)) {
> - err(1, "bad open_url cmd: %.*s", sizeof(buf), buf);
> + err(1, "bad open_url cmd: %.*s", (int) sizeof(buf),
> buf); }
> len = url_len;
> rc = read_some(STDIN_FILENO, url_buf, &len);
> @@ -48,7 +48,7 @@ static void get_url(char *url_buf, size_t url_len) {
> if (url_buf[i] == '\'' && url_buf[i+1] == ' ') break;
> }
> if (i > len-3 || strncmp(url_buf + i, "' '>", 4)) {
> - err(1, "bad url end: %.*s", len, url_buf);
> + err(1, "bad url end: %.*s", (int) len, url_buf);
> }
> url_buf[i] = '\0';
> }
>
Thanks!,
Rodrigo.
Oct. 30, 2025
Fw: Dillo gopher plugin on OpenBSD issue
by a1ex@dismail.de
Forwarding to dillo-dev, since the list only accepts mails from
subscribers.
Begin forwarded message:
Date: Thu, 30 Oct 2025 11:10:21 -0400
From: John McCue <jmccue(a)jmcunx.com>
To: a1ex(a)dismail.de
Cc: dillo-dev(a)mailman3.com
Subject: Re: Dillo gopher plugin on OpenBSD issue
[...]
Somehow I missed it seeing there was a list. I found another
issues with the gopher plugin on OpenBSD.
The issue I am testing is with dpi.c. On OpenBSD, it has to
do with how clang works on OpenBSD. The diffs are below.
So far, with the changes to io.c and dpi.c, the plugin
works fine on both OpenBSD and NetBSD.
diff --git a/io.c b/io.c
index 615f346..a10a0b3 100644
--- a/io.c
+++ b/io.c
@@ -1,3 +1,4 @@
+#include <sys/param.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
@@ -8,6 +9,12 @@
#include <netdb.h>
#include <netinet/in.h>
+#ifdef OpenBSD
+#include <sys/socket.h>
+#include <net/if.h>
+#include <net/route.h>
+#endif
+
#include "io.h"
int read_all(int fd, unsigned char *buf, size_t len) {
diff --git a/dpi.c b/dpi.c
index 7b38800..52547f8 100644
--- a/dpi.c
+++ b/dpi.c
@@ -7,7 +7,7 @@
#include "io.h"
static void check_auth() {
- char buf[30];
+ char buf[31];
int rc;
char key[4], local_key[4];
char keys[128];
@@ -16,16 +16,16 @@ static void check_auth() {
rc = read_all(STDIN_FILENO, buf, 29);
if (rc < 0) err(1, "read auth");
buf[30] = '\0';
- rc = sscanf(buf, "<cmd='auth' msg='%4x' '>", key);
+ rc = sscanf(buf, "<cmd='auth' msg='%4x' '>", (unsigned int *)
key); if (rc < 0) err(1, "auth: %.*s", 29, buf);
if (rc < 1) errx(1, "auth: %.*s", 29, buf);
home = getenv("HOME");
if (!home) home = ".";
sz = read_file(keys, sizeof(keys),
"%s/.dillo/dpid_comm_keys", home); if (sz < 0) err(1, "read dillo comm
keys");
- rc = sscanf(keys, "%*d %4x' '>", local_key);
- if (rc < 0) err(1, "comm key: %.*s", sz, keys);
- if (rc < 1) errx(1, "comm key: %.*s", sz, keys);
+ rc = sscanf(keys, "%*d %4x' '>", (unsigned int *) local_key);
+ if (rc < 0) err(1, "comm key: %.*s", (int) sz, keys);
+ if (rc < 1) errx(1, "comm key: %.*s", (int) sz, keys);
if (memcmp(key, local_key, 4)) errx(1, "wrong dillo key");
}
@@ -38,7 +38,7 @@ static void get_url(char *url_buf, size_t url_len) {
rc = read_all(STDIN_FILENO, buf, sizeof(buf));
if (rc < 0) err(1, "read open_url");
if (strncmp(buf, "<cmd='open_url' url='", 21)) {
- err(1, "bad open_url cmd: %.*s", sizeof(buf), buf);
+ err(1, "bad open_url cmd: %.*s", (int) sizeof(buf),
buf); }
len = url_len;
rc = read_some(STDIN_FILENO, url_buf, &len);
@@ -48,7 +48,7 @@ static void get_url(char *url_buf, size_t url_len) {
if (url_buf[i] == '\'' && url_buf[i+1] == ' ') break;
}
if (i > len-3 || strncmp(url_buf + i, "' '>", 4)) {
- err(1, "bad url end: %.*s", len, url_buf);
+ err(1, "bad url end: %.*s", (int) len, url_buf);
}
url_buf[i] = '\0';
}
Oct. 30, 2025
FWD - dillo gopher plugin issue (reddit)
by a1ex@dismail.de
Hi,
I saw this issue on Reddit today pertaining to the Gopher plugin not
working correctly on OpenBSD. It includes a fix (I haven't tested it):
https://eddrit.com/r/openbsd/comments/1oj3ljg/dillo_gopher_plugin_issue_wor…
Regards,
Alex
Oct. 30, 2025
Re: New website dillo-browser.org
by Rodrigo Arias
Hi,
> There may be something we can tune in cgit or maybe in the git
> repository to make it faster. I'll need to dive a bit more on how git
> works under the hood to fix it.
This seems to be caused by cgit not implementing the git protocol v2,
which allows downloading only the needed objects. There is a patch
available, but never got merged. I might try to add it to our cgit or
configure the http server to send git requests directly to a git server.
Tracked here: https://bug.dillo-browser.org/504/
Best,
Rodrigo.
Oct. 10, 2025
Re: New website dillo-browser.org
by Kevin Koster
Rodrigo Arias wrote:
> On Mon, Sep 29, 2025 at 09:22:13AM +1000, Kevin Koster wrote:
>> This command works to change the Git repo URL if you've already
>> cloned from GitHub:
>>
>> git remote set-url origin https://git.dillo-browser.org/dillo
>>
>> It did take quite a while to respond to "git pull" after that.
>
> I'm not sure if there is a problem on our end or is it expected to take
> long. Here is what I see if I clone the repo from our cgit and github in
> my old netbook:
Same here, the total clone time seems similar to GitHub.
"git pull" is now responding much quicker too:
$ time git pull
Fetching objects: 536, done.
From https://git.dillo-browser.org/dillo
* [new branch] ci -> origin/ci
* [new branch] mouse-back-forward -> origin/mouse-back-forward
Already up to date.
real 0m 4.76s
user 0m 0.20s
sys 0m 0.26s
But there were changes pulled in last time whereas now it's
"already up to date". I know last time I was sure Git had hung and
started writing a post warning about that, checking back just in
case, and Git eventually finished while I was writing. At least a
minute or two for an operation that's usually fairly immediate. It
_could_ have coincidentally been a network issue or a problem
reading/writing storage on my end (actually eMMC flash) causing the
delay I suppose. Anyway so long as it works it's not really a
problem for me.
> Bonus: WIP bug tracker https://bug.dillo-browser.org/
Excellent! Although apparantly Dillo can't find a ← character
in the font I'm using (which is probably my problem, I like lean
font packages).
Oct. 5, 2025
Re: New website dillo-browser.org
by Rodrigo Arias
Hi,
On Mon, Oct 06, 2025 at 09:08:49AM +1000, Kevin Koster wrote:
> I know last time I was sure Git had hung and started writing a post
> warning about that, checking back just in case, and Git eventually
> finished while I was writing. At least a minute or two for an
> operation that's usually fairly immediate.
I think the problem is that it is downloading a single big 77MiB git
object (pack) with all the contents and somehow this causes git to not
print anything until the download finishes.
On the GitHub side, it downloads multiple files and knows how many there
are. I'm not sure what is causing this. If I use HTTP, this is what I
see with -vv:
% git clone -vv https://github.com/dillo-browser/dillo
Cloning into 'dillo'...
POST git-upload-pack (181 bytes)
want 29a46a2da7e9350a1252e30aea3c8294097f63a4 (HEAD)
want e14906ab1407f800e3a06d57c838a2887cf65a2f (refs/heads/3.0.5)
...
want e637d2158a9ef1cb82273f54d9d68d0b05dbb6f6 (refs/tags/v3.2.0)
want 5338882730f1098becb199fc629e0adf22e94461 (refs/tags/v3.2.0-rc1)
POST git-upload-pack (gzip 1808 to 934 bytes)
remote: Enumerating objects: 27353, done.
remote: Counting objects: 100% (2266/2266), done.
remote: Compressing objects: 100% (497/497), done.
^Cceiving objects: 1% (274/27353)
But our server doesn't do that via HTTPS:
% git clone -vv https://git.dillo-browser.org/dillo
Cloning into 'dillo'...
got f57e4fe95b2c0cfd2e966bcebdd6d21fd26e71bb
walk f57e4fe95b2c0cfd2e966bcebdd6d21fd26e71bb
Getting alternates list for https://git.dillo-browser.org/dillo
got f48288b62f7e4d1e17cf06796d8738bd01de3746
Getting pack list for https://git.dillo-browser.org/dillo
Getting index for pack dc484618e815fff3daa3971cb11b4b9457361592
got d5b3971fbd3b685d458d3e07061cfc5a01c31db7
got 8cd2d04fc6ed054b999744cedc0b29141d8fa747
got cb7820ed982df6e6dcac16ddd92eed8b8667f0d1
got 3a9d001498ca0c211431fd08bfce014c20f6a8f1
got e637d2158a9ef1cb82273f54d9d68d0b05dbb6f6
got db482d4c2b517270c7e1da03a090e6e293893139
got 5338882730f1098becb199fc629e0adf22e94461
Getting pack dc484618e815fff3daa3971cb11b4b9457361592
which contains 29a46a2da7e9350a1252e30aea3c8294097f63a4
^here takes a lot of time
However, via ssh I get immediate feedback:
% git clone -vv XXXX@dillo-browser.org:dillo
Cloning into 'dillo'...
Server version is git/2.47.3
Server supports shallow
Server supports multi_ack_detailed
Server supports side-band-64k
Server supports thin-pack
Server supports no-progress
Server supports include-tag
Server supports ofs-delta
Server supports deepen-since
Server supports deepen-not
Server supports deepen-relative
want f57e4fe95b2c0cfd2e966bcebdd6d21fd26e71bb (HEAD)
want f57e4fe95b2c0cfd2e966bcebdd6d21fd26e71bb (refs/heads/ci)
want 29a46a2da7e9350a1252e30aea3c8294097f63a4 (refs/heads/master)
want f48288b62f7e4d1e17cf06796d8738bd01de3746 (refs/heads/mouse-back-forward)
want adb3d5c87fae7196dbae6c35828434cdcd6227a4 (refs/tags/2.1-noCss)
want ce8e972a10c9340312f21511de053242dad3f5db (refs/tags/release-2_0)
...
want e637d2158a9ef1cb82273f54d9d68d0b05dbb6f6 (refs/tags/v3.2.0)
want 5338882730f1098becb199fc629e0adf22e94461 (refs/tags/v3.2.0-rc1)
done
remote: Enumerating objects: 27300, done.
remote: Counting objects: 100% (27300/27300), done.
remote: Compressing objects: 100% (6518/6518), done.
^Cceiving objects: 11% (3003/27300)
There may be something we can tune in cgit or maybe in the git
repository to make it faster. I'll need to dive a bit more on how git
works under the hood to fix it.
Best,
Rodrigo.
Oct. 5, 2025
Re: New website dillo-browser.org
by Rodrigo Arias
Hi Kevin,
On Mon, Sep 29, 2025 at 09:22:13AM +1000, Kevin Koster wrote:
> Rodrigo Arias wrote:
> > As well as a new git web frontend (cgit) that works well from Dillo
> > (after some CSS fixes), so we can link to a given commit or source file:
> >
> > https://git.dillo-browser.org/
>
> This command works to change the Git repo URL if you've already
> cloned from GitHub:
>
> git remote set-url origin https://git.dillo-browser.org/dillo
>
> It did take quite a while to respond to "git pull" after that.
I'm not sure if there is a problem on our end or is it expected to take
long. Here is what I see if I clone the repo from our cgit and github in
my old netbook:
% time git clone https://git.dillo-browser.org/dillo/ /tmp/1
Cloning into '/tmp/1'...
Fetching objects: 27292, done.
git clone https://git.dillo-browser.org/dillo/ /tmp/1 29.28s user 4.30s system 104% cpu 32.080 total
% time git clone https://github.com/dillo-browser/dillo /tmp/2
Cloning into '/tmp/2'...
remote: Enumerating objects: 27353, done.
remote: Counting objects: 100% (2266/2266), done.
remote: Compressing objects: 100% (497/497), done.
remote: Total 27353 (delta 2067), reused 1769 (delta 1769), pack-reused 25087 (from 3)
Receiving objects: 100% (27353/27353), 83.77 MiB | 5.37 MiB/s, done.
Resolving deltas: 100% (19766/19766), done.
git clone https://github.com/dillo-browser/dillo /tmp/2 34.44s user 9.13s system 163% cpu 26.682 total
In the cgit case, it takes a while to output the "Fetching objects:
27292, done".
> > I'm also working on migrating the issues away from GitHub, so we can
> > host them ourselves. Same for the CI infrastructure.
>
> Great to hear. "Not hosted on GitHub" is a rare feature for Web
> browsers now and I'm glad Dillo is reimplementing it. :)
I'm still thinking what to do with the CI runner, as before we used to
build Dillo with Mac OS and Cygwin in Windows, but now I only have
Linux/BSD machines available.
I would imagine that we can lower the support level in those platforms
to "was known to work", but I would like to avoid that. Not sure if
someone has a better suggestion.
Bonus: WIP bug tracker https://bug.dillo-browser.org/
Best,
Rodrigo.
Oct. 1, 2025