Fossil

Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

200 most recent check-ins tagged with "trunk"

2022-10-02
03:58
Typo fixes in the /dir browser header: All File ==> All Files. ... (Leaf check-in: 7727f9a6 user: stephan tags: trunk)
2022-09-30
12:38
Simplification to the JS used as part of anti-robot defenses. ... (check-in: 08535b22 user: drh tags: trunk)
2022-09-29
15:19
Correct skintxt2config.c to be able to handle 0-byte input files. ... (check-in: c7c1c4e8 user: stephan tags: trunk)
09:25
'skin:' CGI config directive now accepts an empty value for consistency with the --skin CLI flag. ... (check-in: 6362a98f user: stephan tags: trunk)
09:13
--skin "" now forces use of the current edited skin and the warning on the /skins page about a forced skin now distinguishes between /draft and --skin ... usage. ... (check-in: 816f6c04 user: stephan tags: trunk)
08:22
Import the latest 3.40.0 alpha version of SQLite into the tree. ... (check-in: fbad2772 user: drh tags: trunk)
2022-09-28
15:35
add new "Related Work" page linked from the User Links page

Suggested by drh@ with lots of tweaks from wyoung@ ... (check-in: 8ab498bd user: mark tags: trunk)

12:28
improve login-group command documentation and output

Prompted by 58f01f6d92, a7d15cc071, and 1c639bcdea. Clarify semantics of -R|--repository in 'fossil login-group join' and make user output more helpful. While here, trim some trailing whitespace. ... (check-in: 83bc81e8 user: mark tags: trunk)

2022-09-27
14:39
make chatbot message box transparent to avoid collisions

Suggested by mgagnon in /chat. Hint from stephan. ... (check-in: c8b3ec1e user: mark tags: trunk)

13:47
Fix a bug in the chat-robot. ... (check-in: b3f87ef7 user: drh tags: trunk)
11:11
print stash metadata when popping or applying stash

Feature request from Alfred M. Szmidt in ae3ad9c69f. Minor tweak of original patch by stephan@ ... (check-in: 1392710f user: mark tags: trunk)

2022-09-26
22:29
Replaced most of the speculation in the walmode section of the containers doc with a link to the walbanger project, where we'll be answering this question. ... (check-in: 96633067 user: wyoung tags: trunk)
12:08
The g.fJail global variable should always be set whenever a chroot jail has been entered. ... (check-in: 558cef7c user: drh tags: trunk)
07:08
Cherrypick [5ade6fb863e4], inadvertently checked in on a different branch. ... (check-in: 44c5d029 user: stephan tags: trunk)
06:43
Update the hyperlink for purchasing a SEE license. ... (check-in: c3ce8a42 user: danield tags: trunk)
2022-09-25
14:18
fix specified file path case in locate_unmanaged_files()

Only insert unmanaged files into the temp sfile table. This now makes the routine behave consistently whether file, directory, or no paths are passed on the command line, and fixes the `fossil changes --extra` bug report in 452ec8fac167. ... (check-in: 39eb451a user: mark tags: trunk)

13:44
tweak `fossil remote` cmd to update the "default" name

Don't delete the current default remote-url when the user invokes the invalid `fossil remote add default` command; instead, output correct usage to update the special "default" symbolic name. Tweak help text to make this more obvious. Prompted by 5748fcb117a99b43. ... (check-in: 2a3e851e user: mark tags: trunk)

07:18
Minor changes to option handling for the `ui' command: (A) Abort early with an error message if the specified port number is invalid (instead of later with an assertion failure); (B) Add short form -p for --page; (C) Add short form -B for --nobrowser. ... (check-in: 1431ebae user: florian tags: trunk)
06:50
Prevent the web UI side-by-side diffs and their scrollbars from getting truncated on the right. Forum Post f9becc251c. ... (check-in: 1a668d35 user: florian tags: trunk)
2022-09-23
17:13
Enhancements to the "fossil finfo -i" command such that it only shows the first check-in for the file (unless -v is also used) and so that it shows the modification time as a separate line for easy parsing by scripts. ... (check-in: ac6edb35 user: drh tags: trunk)
16:44
Fix the help text for the previous check-in. ... (check-in: c0162a4f user: drh tags: trunk)
16:44
Fix the "finfo" command so that -r is not required with -i. If the -r is omitted, then "current" is used in its place. ... (check-in: 35c6d15a user: drh tags: trunk)
13:17
Remove an extra newline character from the output of the new "fossil remote hyperlink" command. ... (check-in: 76bc66a9 user: drh tags: trunk)
13:04
Add the "fossil remote hyperlink" and "fossil remote ui" subcommands. ... (check-in: b2e2fc03 user: drh tags: trunk)
2022-09-21
17:14
Backup any unmamaged files that are about to be overwritten by an update or merge. Potentially avoid the loss of a local file if the overwrite warning goes unnoticed, in which case undo is useless. ... (check-in: e99e58c5 user: mgagnon tags: trunk)
16:52
Fix a typo in comment (no code change) ... (check-in: 13561519 user: mgagnon tags: trunk)
2022-09-17
12:45
Add a comment to the tree-view to explain that file ages are relative to the check-in time. ... (check-in: 0fb353c1 user: drh tags: trunk)
2022-09-15
17:11
Add documentation for chat-timeline-user. ... (check-in: 24c71dfb user: drh tags: trunk)
17:08
Add the chat-timeline-user setting to the 2.20 change log. ... (check-in: 0efd583a user: stephan tags: trunk)
16:58
Added lmtime value to chat-timeline-user's chat messages, using the server's local time, to fix time display in the /chat message popup. ... (check-in: e1ad4992 user: stephan tags: trunk)
15:51
Improved comments on the new chat-timeline-user feature. ... (check-in: c3ed2430 user: drh tags: trunk)
15:35
Improved chat messages for the chat-timeline-robot. ... (check-in: 974cf366 user: drh tags: trunk)
2022-09-14
19:24
Do not require that the chat-timeline robot username be an actual user in the USER table. If the chat-timeline-user config variable exists, then timeline events are announced in chat, regardless. ... (check-in: 1f5474ec user: drh tags: trunk)
2022-09-13
20:11
Add the ability to designate a timeline robot user. If such a user exists, and if chat is enabled, then notifications of all timeline events appear in chat, from the robot user. ... (check-in: e9d7cf3e user: drh tags: trunk)
2022-09-09
18:26
Minor improvement to SEE integration. ... (check-in: 660c2b15 user: mistachkin tags: trunk)
17:22
Sync up custom makefile for MinGW. ... (check-in: a3ed29ea user: mistachkin tags: trunk)
2022-09-07
09:11
Mentioned containerd+nerdctl in place of runc in the containers doc. A tightened-up version of the prior runc and crun sections are now collected below the Podman section. This gives a better flow: each successive option is smaller than the last, excepting only nspawn, which is a bit bigger than crun. (We leave nspawn last because we can't get it to work!) ... (check-in: 457c14a4 user: wyoung tags: trunk)
07:35
Updated the "nojail" patch for our Dockerfile to track the recent changes: rename back from Dockerfile.in and the layer refactoring. It does essentially the same thing as before. ... (check-in: 19abf0ac user: wyoung tags: trunk)
2022-09-05
14:03
Update the built-in SQLite to the latest 3.40.0 alpha. ... (check-in: 9d12e964 user: drh tags: trunk)
08:15
Broke the Dockerfile up into more layers to allow better local caching at build time. Further optimized build time by producing the Fossil source tarball from the local repo instead of hitting the home site if you use the container-image target, since we can be reasonably certain you're working from a repo checkout and thus have all the info available here locally already. ... (check-in: 1da464ee user: wyoung tags: trunk)
01:42
Expanded the paragraph on WAL mode interactions in the container doc into a full section, placed higher up, immediately after the first use of Docker's "--volume" flag, to explain why we don't map just the repo DB file, but the whole directory it sits in. Even if we later convince ourselves WAL is safe under this scenario, it'll be conditional at best, so some remnant of this section must remain, no matter which way the experiments go. ... (check-in: 698587d4 user: wyoung tags: trunk)
2022-09-04
23:46
Renamed Dockerfile.in back to Dockerfile so it can be used as-is on non-autosetup systems. Realized that we can pass the Fossil checkin hash prefix in as a build arg instead of regenerating the file on disk from auto.def. If you use the Dockerfile as-shipped, you get a "trunk" build, which risks a stale cache — it thinks it already has a tarball by that name and helpfully refuses to pull it again — but at least Windows users get *something* without hand-hacking the file. ... (check-in: b0c9c26a user: wyoung tags: trunk)
22:20
Added a /jail/log directory to the container so someone can pass --errorlog and such to the Fossil instance and have a place to put it. It also acts as a mountpoint for appending to a log out on the host. ... (check-in: ed50ceee user: wyoung tags: trunk)
21:58
/dev permissions were too tight in the container. They're still tighter than on a stock Ubuntu box, but they should suffice for Fossil's needs. ... (check-in: 8eeb95e1 user: wyoung tags: trunk)
12:55
Restricted the container listeners to localhost in section 6 of the containers doc, and mentioned a few other items related to reverse proxying with nginx. ... (check-in: c9ab736f user: wyoung tags: trunk)
12:14
Folded info from an exchange with the Podman devs into the container doc. ... (check-in: 80f4a1dd user: wyoung tags: trunk)
11:36
Added section numbers to the containers doc (it was getting confusing) and added a few internal fragment IDs. ... (check-in: 4d51d524 user: wyoung tags: trunk)
11:26
Finished all the new topics planned for the new containers doc, adding sections on rootful Podman containers and on building via Docker but running via Podman, using Docker Hub as an intermediary to avoid building on the remote host. ... (check-in: 9c96e499 user: wyoung tags: trunk)
09:27
Sanitized a local port number out of previous ... (check-in: 3dfa4581 user: wyoung tags: trunk)
09:25
Added my sad tale of failure and woe with systemd-nspawn to the container docs, both as a warning to those who follow, and as a cry for help to someone who can make this work. I can't be bothered to spend more time on it, but there's no point throwing the work away. ... (check-in: 1e8c6655 user: wyoung tags: trunk)
09:15
Documented another cause to modify the "m" variable in the runc examples in the container docs. ... (check-in: bf503088 user: wyoung tags: trunk)
08:09
Added more jq filters to the runc examples to remove further problematic things left in the automatic conversion from the Docker container configuration file to the one we provide to runc. ... (check-in: 4e8c7479 user: wyoung tags: trunk)
07:15
Worked through some difficulties here in applying the runc method on remote systems, then documented what I learned in the containers doc. ... (check-in: 56f4e2ce user: wyoung tags: trunk)
06:28
Small fix to previous ... (check-in: d5695c8e user: wyoung tags: trunk)
06:02
Expanded the runc section of the container doc to cover "bundle" terminology and to show a method for rsyncing the bundle across to a remote host. Also explained why this is a bad idea unless you've got a rather constrained use case, lest people avoid using podman/docker in places where they could provide real value. ... (check-in: f9f13ce7 user: wyoung tags: trunk)
04:32
Documented the runc and crun options for running a container, including the cryptic method for exporting an OCI bundle from Docker, allowing you to use both together: Docker Desktop on your big dev box in the office, then one of the two lightweight runtimes out in the cloud. ... (check-in: c9431ef4 user: wyoung tags: trunk)
02:35
Added explicit instructions for patching the Dockerfile for the nojail/podman method and for mapping a single Fossil repo into the container rather than a directory. Also included my best current advice on using WAL mode in these contexts. ... (check-in: 87a23d2a user: wyoung tags: trunk)
02:15
Removed a TODO-based section of the new containers doc that wasn't meant to be checked in yet. Made a few improvements to the new Podman material as well. ... (check-in: 5adf6c40 user: wyoung tags: trunk)
02:01
Added the "Lightweight Alternatives to Docker" section to the new containers doc, currently limited to a tutorial on converting the stock Dockerfile to work under Podman in its default mode, creating a rootless container. This brings in the second container-related file at the root of the repo, the patch file for this, so we don't have to maintain two nearly-parallel Dockerfiles. As a bonus, it allows us to point to the patch from the prose, making explicit what we had to change. ... (check-in: f0399ea9 user: wyoung tags: trunk)
01:53
Moved the busybox-config file from tools/ into a new containers/ subdirectory. We were using that as a junk-drawer directory, for lack of a better place to put it. Now that we're about to have a second container-related file in the repo, that weak excuse is wearing thin. ... (check-in: b08e2bb7 user: wyoung tags: trunk)
01:39
Referencing the new containers.md file from Dockerfile.in so we can remove a big redundant block comment from it. While in there, made a few style tweaks that will help the ongoing container document expansion. ... (check-in: be8f721d user: wyoung tags: trunk)
2022-09-03
23:34
Extracted the Docker containers material from www/build.wiki and moved it into a new document dedicated to the topic, containers.md. It was already pushing the bounds of how much info we want to provide in a single section of that doc, and it's about to get bigger.

As part of the conversion from wiki format to Markdown, did another edit pass on the doc, improving a few things along the way.

Dropped the "docker-" prefix from all internal IDs, as we no longer need them to disambiguate references to other parts of the build doc. ... (check-in: 7129dc98 user: wyoung tags: trunk)

2022-09-01
16:05
Address builtin_deliver_multiple_js_files() endless loop reported in forum post a9a60fab07. ... (check-in: 76c9bbb3 user: stephan tags: trunk)
10:52
Add aliases as a new command type and display these next to the corresponding main command in /help. Make sure that for the 'test-all-help' command and webpage each help string is output at most once. ... (check-in: db708494 user: danield tags: trunk)
2022-08-30
01:49
Embroidered the "make container-run" target to make it more convenient. ... (check-in: bc09e28a user: wyoung tags: trunk)
2022-08-29
18:21
The container doc bit on raw sockets now covers the other three Busybox utilities we left out previously. Today's removal of ping and traceroute merely completes the set; it wasn't complete in itself. ... (check-in: b429bd71 user: wyoung tags: trunk)
18:07
Clarified the points in §5.2.1 of the Docker container build doc regarding the reason why the server parent process runs as root. ... (check-in: c2eaa60d user: wyoung tags: trunk)
17:54
Researched, tested, and documented the set of "docker create --cap-drop" options we can add to strip away unnecessary root privileges inside the container without harming normal operation. Belt-and-suspenders: if any bad actor ever got into the container with root privileges, this would help prevent them from affecting anything outside the container. Added that set to the "make container-run" target so they get applied by default in the easy case. ... (check-in: f715add9 user: wyoung tags: trunk)
17:32
Removed ping and traceroute commands from the Docker container. They require raw sockets support, which means if anyone broke into the container and managed a root privilege escalation, they could do a wide array of bad things on any network the container is bound to. ... (check-in: f00a88f8 user: wyoung tags: trunk)
16:01
Polishing pass on §5.2 of the container build doc, "Why Chroot?" ... (check-in: e9860314 user: wyoung tags: trunk)
2022-08-28
17:58
Clarified the parent process user ID vs the child process in the explanation of how the chroot feature interacts with the custom user feature of the Docker container. ... (check-in: f9ddd38e user: wyoung tags: trunk)
17:52
Made a better distinction between bind mounts and Docker volumes in the new Docker section of the build doc. ... (check-in: 958a6af9 user: wyoung tags: trunk)
2022-08-23
11:14
Correct a NULL being passed to strcmp() which caused any submit of JS script code in the skin editor to segfault. Reported in forum post 9d9f0580fd. ... (check-in: a8847839 user: stephan tags: trunk)
2022-08-18
13:21
Add the "Timeline" submenu link on the setup_edit page, for ordinary users. Change the "Access Log" link on that same page so that it is only present for ordinary users - not special users like "reader" or "developer". ... (check-in: 6f70a236 user: drh tags: trunk)
2022-08-17
05:30
Removed a digression in the gitusers doc about Fossil's new clone-and-open mechanisms. That got moved to the ckout-workflows doc quite some time back, and we already point to it from that same section. There's no reason for the redundancy. Also cleaned up some grammar and typos while in there. ... (check-in: f43eaf01 user: wyoung tags: trunk)
2022-08-16
11:05
Changed the "fossil server --user" flag's argument back to "admin" from "fossil" for the container: I was confusing the Unix user name with the default Fossil repo user name. The new "adduser fossil" stuff doesn't help here; we still want it to be called "admin". ... (check-in: 72d820f3 user: wyoung tags: trunk)
11:04
ARM build fixes for the container:
  • QEMU couldn't cope with "make -j" on the BusyBox step (too many processes) so I changed it to -j11
  • Made the new executable compression step conditional, since there is no upx package in Alpine for either ARM flavor. There's a long bug thread for it on GitHub, which doesn't look to be getting resolved any time soon.
... (check-in: 8849abb7 user: wyoung tags: trunk)
09:39
Minor fixes to the Docker container build process ... (check-in: 454397b0 user: wyoung tags: trunk)
07:14
URL fix necessitated from the Dockerfile.in rename ... (check-in: 2f67bf94 user: wyoung tags: trunk)
07:03
Carved the Docker container image size down still further by stripping out all but two of the stock skins (d* so we get default and darkmode) and packing Fossil and BusyBox with UPX. ... (check-in: e20d044c user: wyoung tags: trunk)
06:49
Fixed an Obi Wan error in the new Fossil version prefix stuff in auto.def: it was extracting the first 13 characters of the hash, not the first 12. ... (check-in: 7ecd23e0 user: wyoung tags: trunk)
2022-08-15
23:21
Added the container-image and container-run top-level build targets to manage dependencies better and to auto-version the build products. ... (check-in: 67386c75 user: wyoung tags: trunk)
23:07
Put the "--user fossil" bit back into the fossil server command for the container. Just ran into a situations where it's still needed. ... (check-in: 4c8cc804 user: wyoung tags: trunk)
22:13
Polishing pass on the container repo storage section of the build docs. ... (check-in: 3e332637 user: wyoung tags: trunk)
22:02
Changed several of the Docker environment variables to build arguments so the user an override them at build time rather than container creation time, and documented them in build.wiki. Using this new mechanism to pull the Fossil source tarball in such a way that we can use the Docker artifact cache without getting stale builds. You can now pass one of the new build args to force the old behavior if you want it. This required generating Dockerfile from Dockerfile.in at configure time, to inject the current Fossil checkin ID. (This busts the Docker cache when the source tree changes.) ... (check-in: f9384383 user: wyoung tags: trunk)
15:32
Adding the BusyBox tarball to the container image with an ADD command rather than wget to avoid triggering GitHub throttling. Unlike the Fossil repo URL, it has a version number baked into it, so it's safe to give it over to Docker's caching behavior. ... (check-in: d06d7c46 user: wyoung tags: trunk)
14:48
Noted the container size shrinkage in the fossil-v-git doc ... (check-in: f21de33e user: wyoung tags: trunk)
14:42
The container now builds Busybox from source so we can remove utilities that are unhelpful inside the container. We leave a lot behind for expansion (e.g. the runit init system, crond, inetd…) but we remove things that have no possible justification, such as modprobe. We remove everything from /bin that's a shell builtin (echo, printf, test…) and we replace a few BusyBox commands (sha[13]sum) with wrapper shell scripts that call Fossil builtins. We cap that off by adding a "sqlite3" wrapper that calls "fossil sqlite3 --no-repository", just for fun. All together, this trims about a meg of fat. ... (check-in: 953f367e user: wyoung tags: trunk)
10:28
Add #ifdef's to fix the Windows build. ... (check-in: f572f752 user: florian tags: trunk)
2022-08-14
19:53
The chown -R bit added to the Dockerfile touches /jail/bin/fossil, which causes "docker build" to promote it back into a new layer, nearly doubling the container size. Doing a chown now only on two directories, restoring it to its sub-9M size. ... (check-in: 00cc9c3e user: wyoung tags: trunk)
19:42
Fossil's chroot feature drops root permissions based on file ownership, but since the container was built with everything-root, its HTTP hit handling children would run as whatever host-side UID/GID pair you used for file ownership. What happened next was complex.

If you let the container create the repo internally, it would be owned as root, so it would drop root permissions for…root! This isn't super-bad, since Fossil is presumed secure and is double-jailed besides. The risk is, if anyone works out an RCE for Fossil, they might be able to get it to create raw sockets or do various other types of escapes despite the double-jail dance.

Attaching a Docker volume brings external permisssions into the container. We were recommending a "chown 0" command on the shared volume to make it similar to the in-container case, but that opens you to the same risks above. If you ignored this and used host-side UID/GID pairs, Fossil would then be left running under IDs that didn't exist internally, which could cause assorted weirdness.

We're now creating an explicit "fossil" user/group pair inside the container and recommending that Docker volumes use these IDs for copied-in files to batten down something that shouldn't've been left flapping.

Updated build.wiki to cover all this. ... (check-in: ba21bc0b user: wyoung tags: trunk)

19:33
Resolved timeline segfault reported in forum post 0bbb66eee4ba35db, triggered by entries with NULL checkin messages. ... (check-in: 20eab785 user: stephan tags: trunk)
18:48
Moved the SIGTERM handler up before the "fossil server" HTTP hit handler. We had it clustered with the other signal() calls, but those are to handle signals intended to occur only during CGI processing. This one will normally occur while we're blocked, waiting for the HTTP hit to occur, so it had no useful effect where it was. ... (check-in: d3c55fe0 user: wyoung tags: trunk)
18:01
Changed previous to call fossil_exit() instead of exit(3) so we close our databases before dying. ... (check-in: 7c857d22 user: wyoung tags: trunk)
17:59
The parent process now handles SIGTERM with an explicit exit(3) call when its PID is 1, as when it's running as "fossil server" in a Docker container. Without this, the container host's shutdown process takes a long time because it's waiting on PID 1 to die and eventually has to time out and kill it. ... (check-in: 1d09e607 user: wyoung tags: trunk)
16:19
Markup fix ... (check-in: cf149787 user: wyoung tags: trunk)
16:18
Clarified the fact that the "docker cp" command is changing the name of the repository DB file. ... (check-in: f0b15a37 user: wyoung tags: trunk)
16:15
Slight emphasis fix in previous ... (check-in: 1441c2e6 user: wyoung tags: trunk)
16:13
Edit pass on §5.1 of build.wiki, fixing a number of unclear bits, particularly with regard to images vs containers. ... (check-in: e2b9114b user: wyoung tags: trunk)
2022-08-13
23:39
Using the preceding --chroot fixes to make the Docker container serve the repo from /jail/museum/repo.fossil rather than from the chroot dir, /jail. This then allows us to mount a Docker volume at /jail/museum, which has an independent persistence from the container proper, so we can now rebuild the container without destroying the presumably precious repo. Updated build.wiki to track this change and document the lessons gleaned from doing all of this. ... (check-in: f76e762f user: wyoung tags: trunk)
22:15
Moved the chdir() call within enter_chroot_jail() down below the new repo name canonicalization code to allow use of relative path names. Before, you had to give an absolute path to the repo, since we'd cd'd away from that directory before we started to validate the path. ... (check-in: e9462118 user: wyoung tags: trunk)
22:14
Moved the setting of g.fJail flag into the repo = "/" case since it exists only to communicate the chroot status to --repolist mode. (This confirms the speculation in the prior commit's comment: the prior behavior existed to serve repolist mode only.) ... (check-in: 324d232c user: wyoung tags: trunk)
21:21
Fixed the --chroot flag to "fossil server" and "fossil http" to allow it to work in conjunction with the single-repository case. Before, it blindly assumed --repolist mode. ... (check-in: 6f92ad99 user: wyoung tags: trunk)
2022-08-12
17:01
Fixed pointless use of interwiki link in the new section 2.2 material of fossil-v-git. ... (check-in: 73c95307 user: wyoung tags: trunk)
2022-08-11
03:53
Fix a build error introduced by check-in [fc8e5750d7]. ... (check-in: 49a2d136 user: florian tags: trunk)
2022-08-10
06:03
Merge fixes to the accordion panel JS script. ... (check-in: 44a7149d user: florian tags: trunk)
06:00
Add the new subcommand `fossil branch lsh' to list the most recently modified branches. ... (check-in: fc8e5750 user: florian tags: trunk)
2022-08-09
12:35
Do not show information about the number of chat messages unless the user has read privilege on the chat. ... (check-in: ad0aac2f user: drh tags: trunk)
2022-08-08
11:52
/setup_config typo fix reported in forum post ec5bd222a2. ... (check-in: 6d5d5f02 user: stephan tags: trunk)
2022-08-06
22:13
Fixed a few stray parens in the new material in the fossil-v-git doc, left behind from a prior edit. ... (check-in: ea13701c user: wyoung tags: trunk)
22:08
Typo fix ... (check-in: b628a883 user: wyoung tags: trunk)
20:30
Fixed a problem in image naming in the new Docker container doc in build.wiki reported on the forum. ... (check-in: 509447a2 user: wyoung tags: trunk)
19:56
Did away with the temporary src.tar.gz file in the new Docker container by streaming the output of wget straight into tar's stdin. This cuts the build time by about five seconds, presumably due to the saving from unnecessary file I/O. Also replaced the explicit "cd src" afterward with an out-of-tree build configuration, since it doesn't matter if we clutter the first stage's /tmp dir. ... (check-in: 289c9b50 user: wyoung tags: trunk)
19:34
The build docs for "./configure --static" now reference the section further down on Docker, since you may need to use this indirection to get --static to produce something suitable. ... (check-in: 7bfd7413 user: wyoung tags: trunk)
04:24
Replaced Jan Nijtman's Dockerfile with a new one that does a 2-stage build. The first stage runs atop Alpine Linux instead of Fedora, reducing the initial build from ~635 MiB to about 16.

Rather than stop there, I then made it multi-stage, copying two key static binaries — Fossil and Busybox — over from the first stage into a fresh-from-scratch container and set it up to run the former jailed away from the latter.

The result is under 9 MiB, and it's as secure as one can hope, given that it starts up in "PUBLIC" mode. The new build doesn't have all the extra features turned on that the old one did, but it seems right to build the container with Fossil in its default configuration. If you want something else, copy the Dockerfile, hack it, and make it do what you want instead.

Having done all this, I replaced the one-off Dockerfile inline in section 5.0 of the build doc with a reference to this new Dockerfile and rewrote the section in terms of the new capabilities.

Finally, this lets us brag on how small the container can be, as compared to the Gitlab-CE container. Before, we were comparing a standalone binary to the container, which wan't entirely fair. (The desire to produce such a container was the spark that kicked this project off.) ... (check-in: 77d603c6 user: wyoung tags: trunk)

2022-08-05
12:05
Assorted improvements to the first few sections of the fossil-v-git doc, mainly in updating them to track changes to world facts and to clarify the presentation. ... (check-in: c7afd68b user: wyoung tags: trunk)
2022-08-04
12:19
Remove the accordion from the "Changes" division of the /vinfo page (at least temporarily) because it is cutting off the bottom of the diff. ... (check-in: 69a6f453 user: drh tags: trunk)
2022-08-02
20:55
Put all sections of the /vinfo page (or the /info page for a check-in) inside an accordion widget. ... (check-in: ab553393 user: drh tags: trunk)
00:45
Corrected broken link introduced in the previous commit which works under (fossil ui) but not on the live server (due to the addition of another URI path element). ... (check-in: bf0efda7 user: stephan tags: trunk)
00:42
doc index: added a link to the Release Build How-To wiki page, per forum request. ... (check-in: 9f3945fc user: stephan tags: trunk)
2022-07-30
20:33
login-group command: corrected help text for 'join' option to include REPO and extended code to allow REPO to optionally be passed on as -R REPO. Resolves issue reported in forum post 240b6d856a3dd4b5. ... (check-in: 769a7651 user: stephan tags: trunk)
2022-07-29
19:03
Fix the /alerts page so that access is provided even for users that are not logged in as long as a complete subscription code is provided as the "name" query parameter. ... (check-in: a27c908f user: drh tags: trunk)
18:57
The /unsubscribe page now requests comformation. And so email notifications contain only an "Unsubscribe" link, and not a link to subscription management. ... (check-in: f045c5dd user: drh tags: trunk)
2022-07-28
18:59
Consolidated some minor code drift between pikchr's fiddle and fossil's pikchrshow. ... (check-in: 44cd9753 user: stephan tags: trunk)
18:19
Patch the javascript compressor so that it does not elide text after // if the // immediately follows a :, as that text might be part of a URI string literal. ... (check-in: ffa1c7d0 user: drh tags: trunk)
17:38
Fix a build problem with zlib on Windows. ... (check-in: 8bd19cad user: drh tags: trunk)
17:06
Update the built-in copy of zLib to version 1.2.12. ... (check-in: adb9e8e0 user: drh tags: trunk)
15:23
Latest upstream pikchr.c and pikchr.wasm. ... (check-in: d5ec3629 user: stephan tags: trunk)
2022-07-27
14:16
Add zlib1g-dev to the list of libraries needed for building. ... (check-in: 12ce928a user: danield tags: trunk)
2022-07-26
16:05
auto.def: --with-zlib=tree now fails if compat/zlib is not configured and built in advance, resolving the curious problem that the downstream test for openssl fails if libz is not built. Problem discovered by Daniel D. and reported in /chat. ... (check-in: b0dc2792 user: stephan tags: trunk)
2022-07-25
16:47
Corrected the --with-see build to use sqlite3-see.c. Problem reported in forum post b3653991172dcd14. The SEE build was broken by the late-December 2021 reworking of the --with-sqlite flag and its related build infrastructure. ... (check-in: 18acd948 user: stephan tags: trunk)
2022-07-24
14:53
Added --dry-run change to the change log. ... (check-in: 5960a16f user: stephan tags: trunk)
14:51
Replaced the remaining --dryrun flags with --dry-run, for consistency, per discussion/monologue in forum post d732b4026f44bdba. ... (check-in: 4a720c26 user: stephan tags: trunk)
2022-07-21
21:38
Removed an unused var (compiler warning). ... (check-in: 7ca55e92 user: stephan tags: trunk)
20:00
Revise the "fossil version -v" command to give less detail. Use -vv or -v -v to get the original full detail. ... (check-in: bbbd7ef8 user: drh tags: trunk)
16:11
Updated changes.wiki and VERSION to 2.20. ... (check-in: a3bdee62 user: stephan tags: trunk)
16:10
Version 2.19 ... (check-in: 1e131feb user: stephan tags: trunk, release, version-2.19)
14:48
Update the built-in SQLite to version 3.39.2 RC 1. ... (check-in: 8c36dad3 user: drh tags: trunk)
2022-07-19
23:33
Add a quote from https://wholesomedonut.prose.sh/using-fossil-not-git to the "quotes.wiki" page of the documentation. ... (check-in: ff95be00 user: drh tags: trunk)
13:23
Removed the -- flag handling from expand_args_option(), instead letting it fall through to find_option(), to eliminate inconsistencies and corner cases uncovered in forum thread 4382bbc66757c39f. ... (check-in: 62a16882 user: stephan tags: trunk)
13:17
Update the built-in SQLite to the latest trunk version for testing. ... (check-in: e5be71d6 user: drh tags: trunk)
13:15
Add a "Timeline" link to the /forum page. ... (check-in: 39bc414b user: drh tags: trunk)
2022-07-18
18:02
Typo fix in the 'timeline' command's help as per forum post 27bc0a9716. ... (check-in: c8a39b66 user: danield tags: trunk)
14:47
Do not omit a forum thread's title while rendering /forumthread page. ... (check-in: ffd32a9f user: george tags: trunk)
12:07
Added a note to the cgi command's help about the processing order of directives, per forum request. ... (check-in: 8d3176f1 user: stephan tags: trunk)
01:39
Still moer grammar fixes in fossil-v-git ... (check-in: e28c25e4 user: wyoung tags: trunk)
01:08
More grammar fixes ... (check-in: 9f135f2f user: wyoung tags: trunk)
01:07
Grammar fix to the fossil-v-git doc ... (check-in: f36fb951 user: wyoung tags: trunk)
2022-07-17
23:48
Changed a number of "a" articles followed by vowels in docs and comments to "an", per a forum post. ... (check-in: 99a319bd user: wyoung tags: trunk)
23:23
Mentioned "fnc stash" at the end of the section of gitusers where it talks about alternatives to "git add -p" and such. ... (check-in: b3b2c1ab user: wyoung tags: trunk)
17:30
On the /secaudit0 page, add a link to the canonical URL setting in the /setup_config page, per request in forum post 154494bfaf45949ca93. ... (check-in: 861ec9c7 user: stephan tags: trunk)
2022-07-13
15:06
Updated the ignore-glob and keep-glob docs so that the example glob conforms to the documention. Reported in forum post 16c422dac445449a. ... (check-in: e33181c1 user: stephan tags: trunk)
07:38
show original path of renamed files in changes/status output

For context, print renamed files in the form "from -> to" except in the `fossil {changes,status} --renamed` case as suggested by wyoung. Requested by ams in 9ca95426f.

ok stephan in /chat ... (check-in: 1b8cfdb0 user: mark tags: trunk)

2022-07-11
19:49
Continued the edit pass on the main body of the gitusers doc, shy of the case studies, mainly doing minor style tweaks. Biggest substantial change is to rewrite the colorized diff section to cover the changes in Fossil 2.17, and to present the alternatives in a more logical order. ... (check-in: c026fb9a user: wyoung tags: trunk)
18:50
Fix to the fix. :( ... (check-in: e3f9584e user: wyoung tags: trunk)
18:50
Fixed a broken internal link in the gitusers doc resulting from moving the museum tree pikchr into the glossary. ... (check-in: 116d8c75 user: wyoung tags: trunk)
2022-07-09
16:07
Correction to spelling in zip/tarball command help. ... (check-in: d708847e user: andybradford tags: trunk)
2022-07-06
05:53
Typo fix in the 'all' command's help. ... (check-in: 3a24a52e user: stephan tags: trunk)
2022-07-05
06:52
Added the obligator generic 'other enhancements' line to the 2.19 change log. ... (check-in: d18a2f61 user: stephan tags: trunk)
2022-07-04
01:06
When doing configure pull --overwrite, ensure that the USER table can be overwritten by removing the db-protect flag on it. ... (check-in: 7384cf51 user: stephan tags: trunk)
2022-07-02
20:05
Honor 'timeline-utc' setting while rendering of /wdiff pages. This is similar to [17ebe42d6183ed]. ... (check-in: 46de798a user: george tags: trunk)
12:24
Enhance "Changes to wiki page" entries within /timeline: turn the word "Changes" into a hyperlink to the corresponding /wdiff page. ... (check-in: 3a9090fc user: george tags: trunk)
2022-07-01
01:31
Update the custom makefile for MinGW. ... (check-in: eddd6b4a user: mistachkin tags: trunk)
2022-06-30
22:05
Documented a browser incompatibility in the pikchr-centering CSS, for later analysis/hacking. Comment changes only, no CSS. ... (check-in: d32df118 user: stephan tags: trunk)
2022-06-25
17:31
Update the built-in SQLite to the 3.39.0 release. ... (check-in: 720f0956 user: drh tags: trunk)
08:22
Fixed y=all arg for timeline.rss (broken in [cb651568fbfe6]) and renamed a shadowed variable, both problems reported in forum post d48f7f12656a291f. ... (check-in: 8903d1eb user: stephan tags: trunk)
2022-06-24
05:40
In the Windows application manifest, use generic placeholder values for the 'processorArchitecture' attributes of the 'assemblyIdentity' elements. This should enable Fossil to run on 64-bit systems without the WOW64 emulator installed, see Forum Post 9a3eaa6ad5 and following for the problem report and discussion. ... (check-in: 12ac6727 user: florian tags: trunk)
2022-06-23
21:16
Minor bisect linear doc tweak suggested in forum post 0ff3db6e4a5b218a. ... (check-in: ed4ac971 user: stephan tags: trunk)
13:08
In the 'all' command, use strcmp instead of strncmp to compare the subcommand name to avoid the problem described in forum post 8ec0c228c1ce8da5, where (e.g.) the subcommand 's' evaluates to 'server' and 'p' to 'push' despite both of those being ambiguous subcommand name prefixes. ... (check-in: e098d810 user: stephan tags: trunk)
12:44
Changes to the file_getcwd() routine to avoid a false-positive compiler warning from gcc 10.2.1. ... (check-in: 85b83206 user: drh tags: trunk)
12:10
Update the built-in SQLite to the latest 3.39.0 beta, for SQLite testing. ... (check-in: d7a2bda9 user: drh tags: trunk)
10:25
Update the open/checkout --keep flag help text to be more generic about the manifest files, to account for manifest.tags, (potentially) manifest.descr, and any future manifest.* files. No code changes. ... (check-in: ca2248ec user: stephan tags: trunk)
10:13
www/cgi.wiki: document the new repolist behavior introduced in [9584806cc6a8]. ... (check-in: c7b9f05f user: stephan tags: trunk)
2022-06-22
13:51
Updates to the change log. ... (check-in: b7e638f8 user: danield tags: trunk)
13:37
Add '--versions' option to 'fossil diff' to display details about the compared versions. ... (check-in: 41f6a451 user: danield tags: trunk)
13:33
Add an option to the 'timeline' command to display only items on a specific branch. ... (check-in: 213ca339 user: danield tags: trunk)
12:35
Fix a minor footnotes-related bug that was discovered by Stephan: if a free-standing footnote reference follows immediately after the exclamation mark then parse that as a footnote (and not as an image). This check-in also postpones initialization of a few local variables within char_link() function (which may save a few CPU cycles). ... (check-in: 97b28fea user: george tags: trunk)
11:11
In directory/repolist mode, do not link to X/Y.fossil if X.fossil exists, to avoid the X/Y/... URI ambiguity. Reported in forum post f50f647c97c72fc1. ... (check-in: 9584806c user: stephan tags: trunk)
2022-06-20
22:18
/chat: added a missing JS dependency which broke the new text-toggle/copy feature. Bug introduced in [f98a4f5c94a844dd], caused by failure to check in one of the associated files. ... (check-in: eeacf821 user: stephan tags: trunk)
2022-06-18
13:45
/timeline.rss: updated TITLE fields for wiki entry comment formatting changes. Add explicit forum posts support (they were shown before in some contexts but only by virtue of being 'not a checkin/ticket/wiki' and not honoring the caller's permissions to read them). ... (check-in: cb651568 user: stephan tags: trunk)
2022-06-17
11:04
Made a cryptic 'not found' error message when failing to resolve a symbolic name slightly less cryptic in response to confusion reported in forum post 1eaa68bb75. ... (check-in: 30f669b0 user: stephan tags: trunk)
2022-06-15
17:37
Update the built-in SQLite to the latest 3.39.0 beta, for testing. ... (check-in: b0f84d8d user: drh tags: trunk)
2022-06-14
17:42
Latest upstream pikchr.c to enable HTML entities which contain digits. ... (check-in: b1ffe209 user: stephan tags: trunk)
14:34
Updated pikchr.c for HTML entity escaping fix. ... (check-in: b3a0a4cd user: stephan tags: trunk)
10:36
Tweak [1142db3091]: Make sure `builtin_get_js_delivery_mode_name()' never returns an empty string, for that would be silently swallowed by `blob_append_escaped_arg()' when assembling the command-line for a HTTP child process, resulting in a broken command-line with a missing --jsmode option argument. Also add a hint next to the definition of the `JS_*' modes about dependencies to be reviewed on updates. ... (check-in: b258a41c user: florian tags: trunk)
08:59
build.wiki: remove outdated note about Alpine Linux 3.14. ... (check-in: e70ceb1a user: stephan tags: trunk)
06:58
On Windows, forward the --jsmode option to individual HTTP requests. ... (check-in: 1142db30 user: florian tags: trunk)
2022-06-13
22:18
Removed the inadvertent vertically-centered alignment of the /pikchrshow pikchr when not in auto-fit mode. ... (check-in: d9bd5603 user: stephan tags: trunk)
2022-06-12
19:32
Add extsrc/pikchr.wasm to the list of binary blobs. ... (check-in: 13cd92de user: george tags: trunk)
2022-06-11
08:32
Typo fix report in 099e10c762b43add. ... (check-in: b942cd21 user: stephan tags: trunk)
2022-06-10
14:12
Minor /pikchrshow CSS cleanups. ... (check-in: 864ed8d0 user: stephan tags: trunk)
14:11
In the /winfo view (/info/WIKI_ARTIFACT_ID), honor the timeline-utc configuration flag, per request in 7e7219e59120b2db. Though that setting is ostensibly only for the timeline, it seems to be used just about where except where times are explicitly labeled as UTC. ... (check-in: 17ebe42d user: stephan tags: trunk)
2022-06-09
09:12
build.wiki: added a note about minimum emcc version and notes about using alternatives to Emscripten. ... (check-in: f7d53fa8 user: stephan tags: trunk)
2022-06-08
23:27
Merge in pikchrshow-wasm branch: reimplement /pikchrshow using a client-side WASM build of pikchr.c, plus related feature-adjacent tweaks in mimetype handling. ... (check-in: 7fcb4626 user: stephan tags: trunk)
15:52
/chat: do not show the Toggle Text Mode feature for messages with no text, e.g. image-only posts (resolves an unhandled exception). When text is toggled to the unparsed state, show a copy-to-clipboard button which copies the raw message text to the clipboard. That is a workaround for mouse-copying of that text collecting extraneous newlines for reasons only the browsers understand. ... (check-in: f98a4f5c user: stephan tags: trunk)
15:17
In /chat, change the EOL whitespace-stripping policy to retain up to 2 spaces, only stripping after the 3rd, to avoid breaking certain markdown constructs. Per /chat discussion. ... (check-in: cd7f2ddc user: stephan tags: trunk)
2022-06-07
20:36
Fix popen2() return value check in hook_backoffice(). ... (check-in: e6aaeb1b user: jan tags: trunk)
16:13
Added entry for the email-listid setting to the change log. ... (check-in: d3acca57 user: stephan tags: trunk)
06:22
Corrected a bit of misinformation in search.c's comments, per a report in the forum. ... (check-in: 6d6880c8 user: stephan tags: trunk)
2022-06-06
00:41
Fix the new linear bisect so that it always goes from good to bad and stops at the first bad check-in found. ... (check-in: e6554457 user: drh tags: trunk)