Fossil

Timeline
Login

Timeline

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

100 check-ins using file auto.def version 4021fb1a

2022-08-19
04:42
Fix the logic to cancel default actions and further event bubbling to take effect for all handled keys. ... (check-in: 9cfd4e2b user: florian tags: timeline-keyboard-navigation)
2022-08-15
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)
10:25
Simplification and harmonisation of the help text. ... (check-in: 6d108417 user: florian tags: timeline-keyboard-navigation)
10:21
Also disable shortcut handling if the View Style drop-down list has keyboard focus. ... (check-in: f419c7eb user: florian tags: timeline-keyboard-navigation)
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)
08:54
Merge with trunk to get the latest web UI fixes. ... (check-in: e3178722 user: florian tags: timeline-keyboard-navigation)
08:16
Comment and TODO updates. ... (check-in: cfed59c9 user: florian tags: timeline-keyboard-navigation)
08:07
Cancel default actions and further bubbling of handled keys, in case of conflicts with browser (extension) defaults. ... (check-in: 52579600 user: florian tags: timeline-keyboard-navigation)
08:03
Fix the shortcut handler to cycle between selected, check-out and ticked entries getting stuck, and give highest priority to ticked entries. ... (check-in: b6a656b5 user: florian tags: timeline-keyboard-navigation)
07:56
Remap keyboard shortcuts, and ensure only letter keys are combined with SHIFT, as non-letter keys may produce different key code pairs with and without SHIFT depending on the keyboard layout. ... (check-in: 33f9315d user: florian tags: timeline-keyboard-navigation)
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
10:02
Potential, minimally-tested fix for (remote add default URL) not working, as reported in forum post 5748fcb117a99b43. ... (check-in: c06f58b5 user: stephan tags: remote-add-fix)
06:42
Another attempt to make the CSS for the focus indicator work with any skin foreground and background colors and branch colors: instead of changing just the background color, the foreground color is also adjusted, so the indicator can still be recognized even if similar to a branch color. Besides, no more editing of SVG code is necessary to make adjustments. ... (check-in: a8d306be user: florian tags: timeline-keyboard-navigation)
06:17
Mention in the help text that ticking the second entry node opens the diff page. Again, thanks @rouilj! ... (check-in: 13e0f32e user: florian tags: timeline-keyboard-navigation)
06:12
Swap semantics of the "primary" and "secondary" highlighted entries to improve selection of the default focused entry. The "secondary" corresponds to the "To:" entry on /vdiff pages and hance is the last focused entry, so should also be the default when returning to /timeline both by keyboard shortcut or the browser "backwards" command. Thanks @rouilj for spotting this! ... (check-in: 63c1be8c user: florian tags: timeline-keyboard-navigation)
05:57
Shortcut "." (period) to set focus to the entry closest to the center of the viewport. (The keys need to be reassigned later, since non-letter keys don't produce the same characters with or without SHIFT pressed on all keyboard layouts.) Thanks @rouilj for the suggestion and the hint! ... (check-in: e1796f2d user: florian tags: timeline-keyboard-navigation)
05:48
Refactorings to cookie handling. ... (check-in: cf38f5ab user: florian tags: timeline-keyboard-navigation)
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:02
Record a comment on the findings discovered during repair of the accordion panel JS script. ... (Closed-Leaf check-in: 2fc93df4 user: florian tags: accordion-fix)
06:00
Add the new subcommand `fossil branch lsh' to list the most recently modified branches. ... (check-in: fc8e5750 user: florian tags: trunk)
05:56
Fix a compiler warning. ... (Closed-Leaf check-in: 877b237b user: florian tags: ls-hot-branches)
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-07
08:12
Coding style fixes and comment updates. ... (check-in: ae932acd user: florian tags: timeline-keyboard-navigation)
08:09
Shortcut SHIFT+H to scroll to the focused entry without moving focus. This may be handy in conjunction with scrolling by arrow keys or PgUp/Dn. ... (check-in: 8d1edb82 user: florian tags: timeline-keyboard-navigation)
08:07
Remove a construct to escape the JS compressor obsoleted by [ffa1c7d0a0]. ... (check-in: 0e7357d2 user: florian tags: accordion-fix)
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)
10:18
Remove some unnecessary `bind()' calls for variables already held in function closure. Apart from that, the approach seems to work well and also covers odd cases, such as the post-expansion timeout to clear maxHeight being shorter than the CSS animation duration (in which case the animation would just jerkily stop, but with the correct element height), or setting a short "decoy value" (say, "100px") instead of the real scrollHeight for maxHeight (in which case the animated area would just be smaller, but with the same end result). ... (check-in: 7b8dd9ca user: florian tags: accordion-fix)
06:39
Also fix URLs for non-filtered /timeline links opened from /finfo pages, plus some code and comment cleanups. ... (check-in: 3ae1390f user: florian tags: timeline-keyboard-navigation)
06:22
Shortcut SHIFT+J to view the timeline of the focused entry filtered by branch. Add the 'm' query parameter to /timeline links. ... (check-in: 7bbd1b99 user: florian tags: timeline-keyboard-navigation)
05:23
Attempt to fix the accordion for "Changes" sections: (A) "Delay-init" the maxHeight property only right before the closing animation, so that the dynamic diffs have enough time to resize themselves without any constraints, and then set maxHeight to zero to trigger the animation in idle time, to prevent coalescing the maxHeight changes (or there won't be an animation when going from "undefined" to "0"). (B) On expansion, after awaiting the animation duration, clear the maxHeight property, so browsers are again free to resize without any constraints. This is the same trick that works well for the hamburger menu, and fixes another problem with FF to return too small values for scrollHeight with large diffs, so that they would again be truncated (but the error is small enough so it doesn't matter for the animation). ... (check-in: 6c591c3f user: florian tags: accordion-fix)
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)
12:02
The smart "scroll to" routine also needs to scroll upwards when used for their new purpose. ... (check-in: fff09df3 user: florian tags: timeline-keyboard-navigation)
11:46
Docs v0.1, with upper-/lower-case letter notation, instead of SHIFT+LETTER (which may be somewhat confusing for the "," and ";" case). ... (check-in: b02508d3 user: florian tags: timeline-keyboard-navigation)
11:42
Try to fix the focus indicator CSS to work for all skins: alpha-blending "10% black" with light-mode background colors, or "20% white" with dark-mode background colors, looks surprisingly well and conflicts less with branch colors (which can be orange-ish, but never black or white). Note that the dark-mode skins Ardoise, Dark Mode and Xekri (but not Eagle) require the previously removed !important directive. It\'s still possible for skins to overwrite the focus indicator CSS when duplicating the !important directive. ... (check-in: 7d026886 user: florian tags: timeline-keyboard-navigation)
06:57
Experimental change to scroll the focused entry into view with a Fossil-style scrolling function to keep the entry centered vertically. This is much better than `Element.scrollIntoView()' for FF (but maybe a matter of tweaking the function arguments). Kudos to the wiz who programmed the `scrollToSelected()' function! ... (check-in: ad3a8e0b user: florian tags: timeline-keyboard-navigation)
06:14
Comment and TODO updates. ... (check-in: ec8b53a9 user: florian tags: timeline-keyboard-navigation)
06:09
Enhance the H shortcut to consider the secondary selection on the /vdiff page as a waypoint. ... (check-in: 0c024627 user: florian tags: timeline-keyboard-navigation)
04:25
Change the "untick" and "copy hash/branch" handlers to not activate keyboard navigation mode, i.e. "untick" is also available in combination with mouse scrolling, and "copy hash/branch" requires a focused entry, instead of focusing an entry without copying its data. ... (check-in: 1d5e6e3c user: florian tags: timeline-keyboard-navigation)
04:11
Shortcut SHIFT+"," (comma) to untick all (better: one) node(s) without moving the focus indicator. ... (check-in: a4db0b2c user: florian tags: timeline-keyboard-navigation)
04:01
Remap the shortcut to disable keyboard navigation mode to ESC. This is also a test case for the high-priority ESC handlers of the timeline tooltip and the hamburger menu, and things seem to work fine. ... (check-in: 80085809 user: florian tags: timeline-keyboard-navigation)
03:57
Shortcut H to hop between the selected, current (check-out) and ticked entries. ... (check-in: 7703a5f7 user: florian tags: timeline-keyboard-navigation)
03:51
Shortcuts B and SHIFT+B top copy the hash or branch name of the focused entry to clipboard. ... (check-in: f23a6d13 user: florian tags: timeline-keyboard-navigation)
03:45
Shortcut "," (comma) to tick/untick the node of the currently focused entry. This has the same effect as mouse clicks, i.e. as soon as two nodes are ticked, the corresponding diff page is opened. ... (check-in: 15f943f0 user: florian tags: timeline-keyboard-navigation)
03:41
Shortcuts SHIFT+N and SHIFT+M to put focus the first (topmost) or last (bottommost) entry. ... (check-in: 145df5a3 user: florian tags: timeline-keyboard-navigation)
03:35
Access the hidden input field used for back/forward caching via dedicated functions, and let browsers do the buffering of `document.getElementById()' results themselves. ... (check-in: 115b4849 user: florian tags: timeline-keyboard-navigation)
03:34
Merge with trunk to get the latest web UI updates. ... (check-in: 0f998197 user: florian tags: timeline-keyboard-navigation)
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)
10:57
Take note of another possibly handy shortcut. ... (check-in: 2ffedc2b user: florian tags: timeline-keyboard-navigation)
10:27
Refactor the `-h' option to its own `lsh' subcommand sibling to `list|ls' to reuse their infrastructure and flags. To produce useful output with the `-r' option, the SQL query to generate the branch list is LIMIT'ed in an inner query, and then ORDER'ed again in an outer query. ... (check-in: dbd6efe2 user: florian tags: ls-hot-branches)
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-08-01
09:34
Take note of another possible TODO item. ... (check-in: b785da80 user: florian tags: timeline-keyboard-navigation)
09:30
Update the comments about back/forward caching. ... (check-in: e62b171d user: florian tags: timeline-keyboard-navigation)
09:21
Some code readability and function naming tweaks. ... (check-in: 89a0438f user: florian tags: timeline-keyboard-navigation)
2022-07-31
10:47
Add a new `-h' option to `fossil branch ls' to list the "hot" (first few recently modified) branches. ... (check-in: fe299ee4 user: florian tags: ls-hot-branches)
08:56
Take note of a possible TODO point. ... (check-in: 4bc9aa3c user: florian tags: timeline-keyboard-navigation)
08:48
Remove an unnecessary !important CSS directive that prevents overriding by skins. (This is a leftover from my private patches, where the same technique is used to alpha-blend an additional SVG background color with the original background color.) ... (check-in: 72dc40da user: florian tags: timeline-keyboard-navigation)
08:39
Revamp key handling to work with modifiers. ... (check-in: af89065e user: florian tags: timeline-keyboard-navigation)
08:20
Refactor a function for later reuse. ... (check-in: 2087ad10 user: florian tags: timeline-keyboard-navigation)
08:14
Sanitize URL composing. ... (check-in: 6c16d2ec user: florian tags: timeline-keyboard-navigation)
07:58
Replace the tooltip 'unload' handler with 'pageshow' and 'pagehide' handlers so that restoring the focused entry on back/forward navigation also works with FF. ... (check-in: 5e545a9f user: florian tags: timeline-keyboard-navigation)
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)
11:37
Don't use magic numbers, and also improve readability for adjacent lines. ... (check-in: 57baac30 user: florian tags: timeline-keyboard-navigation)
10:27
Drop a redundant check. ... (check-in: d145d92d user: florian tags: timeline-keyboard-navigation)
10:26
Fix dynamic style assignment. ... (check-in: bb59cc26 user: florian tags: timeline-keyboard-navigation)
10:24
Omit the expiration date when creating the session cookie. ... (check-in: 540955bd user: florian tags: timeline-keyboard-navigation)
06:36
Implement Javascript-based keyboard navigation for web UI timelines. Shortcuts N and M focus the next or previous entry, and J and K toggle between /timeline and /info views for the focused entry. See comments in the committed Javascript file for more information. ... (check-in: b18c4256 user: florian tags: timeline-keyboard-navigation)
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)