profile
3 years agoel/dot-emacs.el (Man-getpage-in-background): Don't try to split atoms.
Mark Wooding [Mon, 22 Jun 2020 10:41:12 +0000 (11:41 +0100)]
el/dot-emacs.el (Man-getpage-in-background): Don't try to split atoms.

In particular, the symbol `nil' isn't a string, so check for this
specially.  Conveniently, `nil' is exactly the right list.

3 years agoel/dot-emacs.el (Man-getpage-in-background): Save match-data around loop.
Mark Wooding [Mon, 22 Jun 2020 10:40:30 +0000 (11:40 +0100)]
el/dot-emacs.el (Man-getpage-in-background): Save match-data around loop.

Rather than for each item we check.

3 years agofirefox/stylus/salsa.debian.org.css: Suppress rule under subsection heads.
Mark Wooding [Fri, 19 Jun 2020 11:04:45 +0000 (12:04 +0100)]
firefox/stylus/salsa.debian.org.css: Suppress rule under subsection heads.

The section and subsection styles aren't very clearly distinguished.
This helps, and also declutters the page.

3 years agofirefox/stylus/salsa.debian.org.css: Use `.md' rather than ...
Mark Wooding [Fri, 19 Jun 2020 11:04:00 +0000 (12:04 +0100)]
firefox/stylus/salsa.debian.org.css: Use `.md' rather than ...

`.blob-viewer[data-type="rich"]'.  Maybe this is a mistake.

3 years agofirefox/stylus/salsa.debian.org.css: Squash the `body' styling.
Mark Wooding [Fri, 19 Jun 2020 11:03:31 +0000 (12:03 +0100)]
firefox/stylus/salsa.debian.org.css: Squash the `body' styling.

3 years agofirefox/stylus/: Some more style overrides.
Mark Wooding [Fri, 19 Jun 2020 09:16:42 +0000 (10:16 +0100)]
firefox/stylus/: Some more style overrides.

3 years agofirefox/explode-stylus: Suppress a final blank line in output sections.
Mark Wooding [Fri, 19 Jun 2020 09:16:18 +0000 (10:16 +0100)]
firefox/explode-stylus: Suppress a final blank line in output sections.

3 years agofirefox/explode-stylus: Don't fail if the output directory already exists.
Mark Wooding [Fri, 19 Jun 2020 09:12:08 +0000 (10:12 +0100)]
firefox/explode-stylus: Don't fail if the output directory already exists.

3 years agobin/mdw-build, etc.: Add option to suppress tests during Debian build.
Mark Wooding [Fri, 19 Jun 2020 08:40:23 +0000 (09:40 +0100)]
bin/mdw-build, etc.: Add option to suppress tests during Debian build.

3 years agobin/mdw-build: Reflow the negated options list.
Mark Wooding [Fri, 19 Jun 2020 08:38:50 +0000 (09:38 +0100)]
bin/mdw-build: Reflow the negated options list.

I haven't been very principled about this.

3 years agobin/mdw-sbuild, bin/mdw-sbuild-server: Update `usage' messages.
Mark Wooding [Fri, 19 Jun 2020 08:37:03 +0000 (09:37 +0100)]
bin/mdw-sbuild, bin/mdw-sbuild-server: Update `usage' messages.

Missing the `-k', `-p', and `-A' options.

3 years agodot/e16-bindings: Define a key to highlight the mouse cursor.
Mark Wooding [Fri, 19 Jun 2020 08:33:58 +0000 (09:33 +0100)]
dot/e16-bindings: Define a key to highlight the mouse cursor.

A little embarrassing: on spirit's vast screen, I sometimes lose track
of where the cursor is.

3 years agofirefox/stylus/outlook.office.com.css: Override `min-width'.
Mark Wooding [Thu, 11 Jun 2020 12:36:45 +0000 (13:36 +0100)]
firefox/stylus/outlook.office.com.css: Override `min-width'.

Why is this even there?  Everything works fine without.  Is it just
to say `fuck you' to people who like narrow columns?

3 years agodot/e16-bindings: Snap `.disorder/passwd' symlink when running Disobedience.
Mark Wooding [Wed, 10 Jun 2020 15:47:30 +0000 (16:47 +0100)]
dot/e16-bindings: Snap `.disorder/passwd' symlink when running Disobedience.

Nowadays, Disobedience will pass its user-configuration file name on to
`disorder-playrtp'.  This has the effect that each Disobedience session
is correctly linked to its `own' matching `disorder-playrtp'
instance(s).

3 years agofirefox/: Add some Firefox configuration stuff.
Mark Wooding [Wed, 10 Jun 2020 15:06:29 +0000 (16:06 +0100)]
firefox/: Add some Firefox configuration stuff.

3 years agoMakefile: Make `all' be phony. and add empty `clean'.
Mark Wooding [Wed, 10 Jun 2020 15:06:05 +0000 (16:06 +0100)]
Makefile: Make `all' be phony. and add empty `clean'.

3 years agobin/disorder-notify: Add a proper command-line parser, and support `-u'.
Mark Wooding [Wed, 10 Jun 2020 15:05:46 +0000 (16:05 +0100)]
bin/disorder-notify: Add a proper command-line parser, and support `-u'.

3 years agobin/disorder-notify: Stop reading when we reach end-of-file.
Mark Wooding [Wed, 10 Jun 2020 15:05:16 +0000 (16:05 +0100)]
bin/disorder-notify: Stop reading when we reach end-of-file.

Just a stupid bug.

3 years agopl/DisOrder.pm, etc.: Split `load_config' from `connect_to_server'.
Mark Wooding [Wed, 10 Jun 2020 15:03:56 +0000 (16:03 +0100)]
pl/DisOrder.pm, etc.: Split `load_config' from `connect_to_server'.

Now we can read the configuration once and use it throughout the
program.  This is most useful for `disorder-notify watch', which no
longer unexpectedly tracks changes to the password-file symlink when it
reconnects.

3 years ago.gitignore: Arrange a place for generated files which can't be installed.
Mark Wooding [Wed, 10 Jun 2020 15:02:04 +0000 (16:02 +0100)]
.gitignore: Arrange a place for generated files which can't be installed.

3 years agogit/gitignore: Ignore `.mdw-build.conf' files.
Mark Wooding [Sat, 6 Jun 2020 12:30:41 +0000 (13:30 +0100)]
git/gitignore: Ignore `.mdw-build.conf' files.

3 years agobin/disorder-notify: Keep the log connection alive by sending bytes back.
Mark Wooding [Tue, 2 Jun 2020 10:11:01 +0000 (11:11 +0100)]
bin/disorder-notify: Keep the log connection alive by sending bytes back.

This was, if it's not already clear, the main objective to the
`select'-based log loop.

3 years agobin/disorder-notify: Improve error handling in the `select' loop.
Mark Wooding [Tue, 2 Jun 2020 10:09:36 +0000 (11:09 +0100)]
bin/disorder-notify: Improve error handling in the `select' loop.

Don't crash out on read errors.  Report the problem in the `lost
connection' message.

3 years agobin/disorder-notify: Use `select' to read the log in non-blocking mode.
Mark Wooding [Tue, 2 Jun 2020 10:06:44 +0000 (11:06 +0100)]
bin/disorder-notify: Use `select' to read the log in non-blocking mode.

This involves handling the line splitting ourselves, but this is quite
straightforward in Perl.

3 years agobin/disorder-notify: Don't fork on an explicit `watch' request.
Mark Wooding [Tue, 2 Jun 2020 09:58:48 +0000 (10:58 +0100)]
bin/disorder-notify: Don't fork on an explicit `watch' request.

3 years agobin/disorder-notify: Print the current play position in `now-playing' output.
Mark Wooding [Tue, 2 Jun 2020 16:13:00 +0000 (17:13 +0100)]
bin/disorder-notify: Print the current play position in `now-playing' output.

3 years agobin/disorder-autoplay: Restructure into a two-pass arrangement.
Mark Wooding [Tue, 2 Jun 2020 10:42:51 +0000 (11:42 +0100)]
bin/disorder-autoplay: Restructure into a two-pass arrangement.

One command to fetch a server's current settings; another to update them
to match an input file.

4 years agobin/disorder-notify: New operation to cycle through configurations.
Mark Wooding [Sat, 30 May 2020 15:14:11 +0000 (16:14 +0100)]
bin/disorder-notify: New operation to cycle through configurations.

4 years agobin/disorder-notify: Rewrite and take over the functionality of `media-keys'.
Mark Wooding [Sat, 30 May 2020 12:16:10 +0000 (13:16 +0100)]
bin/disorder-notify: Rewrite and take over the functionality of `media-keys'.

4 years agopl/DisOrder.pm: Extract and enhance the DisOrder protocol machinery.
Mark Wooding [Sat, 30 May 2020 12:12:57 +0000 (13:12 +0100)]
pl/DisOrder.pm: Extract and enhance the DisOrder protocol machinery.

4 years agodot/profile: Publish local Perl and Python directories.
Mark Wooding [Sat, 30 May 2020 12:11:40 +0000 (13:11 +0100)]
dot/profile: Publish local Perl and Python directories.

4 years agodot/profile: Add a new function to export a variable only if it's defined.
Mark Wooding [Sat, 30 May 2020 12:10:32 +0000 (13:10 +0100)]
dot/profile: Add a new function to export a variable only if it's defined.

This is useful for pathish variables: if they're exported then they're
set to empty, which implies the current directory.

4 years agodot/profile: Fix `__mdw_addto' if variable is initially empty.
Mark Wooding [Sat, 30 May 2020 12:09:01 +0000 (13:09 +0100)]
dot/profile: Fix `__mdw_addto' if variable is initially empty.

Previously it would leave an empty path component, which programs tend
to interpret (unhelpfully) as the current directory.

4 years agoMakefile: Add a facility for general symlinks.
Mark Wooding [Sat, 30 May 2020 12:07:03 +0000 (13:07 +0100)]
Makefile: Add a facility for general symlinks.

Not used yet.

4 years agodot/emacs: Add a binding to open a file in `view-mode'.
Mark Wooding [Sat, 30 May 2020 09:43:31 +0000 (10:43 +0100)]
dot/emacs: Add a binding to open a file in `view-mode'.

Why isn't there one of these already?

4 years agodot/emacs: Use loopback pinentry if we get a choice.
Mark Wooding [Tue, 26 May 2020 23:40:11 +0000 (00:40 +0100)]
dot/emacs: Use loopback pinentry if we get a choice.

Alas, Emacs 24 doesn't understand this setting.  Worse, Emacs and
`pinentry-curses' (or the `curses' mode of other pinentries) fight over
the terminal in a rather disastrous way.

4 years agodot/gnus-local.el.distorted, dot/vm: Use an encrypted credential file.
Mark Wooding [Tue, 26 May 2020 21:51:25 +0000 (22:51 +0100)]
dot/gnus-local.el.distorted, dot/vm: Use an encrypted credential file.

4 years agodot/gnus-local.el.distorted: Use `nnimap-user' to distinguish credentials.
Mark Wooding [Tue, 26 May 2020 21:33:46 +0000 (22:33 +0100)]
dot/gnus-local.el.distorted: Use `nnimap-user' to distinguish credentials.

This lets us consolidate some entries in the `authinfo' database, and
removes some of the bizarre Gnus-specific nicknames.  Alas, `VM' is
rather old-fashioned and can't look up by user name, so some of the old
fake hostnames are still in use.

4 years agobin/wakey.sh: Treat a zero `active window' as being some foreign thing.
Mark Wooding [Tue, 26 May 2020 15:29:17 +0000 (16:29 +0100)]
bin/wakey.sh: Treat a zero `active window' as being some foreign thing.

`xpra' reports a window outside of its session as having id `0'  But
`xwininfo' treats this as a request to choose a window interactively,
which is not what we want.

4 years agobin/wakey.sh: Cope if `_NET_ACTIVE_WINDOW' is `CARDINAL' rather than `WINDOW'.
Mark Wooding [Tue, 26 May 2020 15:28:12 +0000 (16:28 +0100)]
bin/wakey.sh: Cope if `_NET_ACTIVE_WINDOW' is `CARDINAL' rather than `WINDOW'.

Helpfully, `xprop' shows the value in an entirely different way in that
case.  And `xpra' uses `CARDINAL'.

4 years agobin/disorder-switch-config, bin/disorder-propagate-autoplay: New sripts.
Mark Wooding [Tue, 26 May 2020 09:20:35 +0000 (10:20 +0100)]
bin/disorder-switch-config, bin/disorder-propagate-autoplay: New sripts.

4 years agodot/emacs: Turn off `mouse-autoselect-window'.
Mark Wooding [Tue, 26 May 2020 09:18:50 +0000 (10:18 +0100)]
dot/emacs: Turn off `mouse-autoselect-window'.

I think I've given this a fair shake and decided that I don't like it.
Honestly, I'm a bit surprised: I expected to have a strong feeling about
this one way or the other, but I don't.  It's just a tiny bit annoying.

Anyway, I think it was a worthwhile experiment.

4 years agodot/gnus.el: Include an abbreviated date in summary lines.
Mark Wooding [Sun, 24 May 2020 15:23:42 +0000 (16:23 +0100)]
dot/gnus.el: Include an abbreviated date in summary lines.

4 years agodot/gnus.el: Reformat some long `setq' forms.
Mark Wooding [Sun, 24 May 2020 15:22:47 +0000 (16:22 +0100)]
dot/gnus.el: Reformat some long `setq' forms.

When I can't fit the place and value on the same line, indent the value
by two spaces.

4 years agodot/gnus.el: Don't skip around wildly in the `Group' buffer.
Mark Wooding [Sun, 24 May 2020 12:32:33 +0000 (13:32 +0100)]
dot/gnus.el: Don't skip around wildly in the `Group' buffer.

I have a huge number of folders, most of which are fully caught-up, and
fairly often show them all.  It's very annoying when Gnus decides to
move point a long way away from where I was last working.

Of course, Gnus is configurable in this regard.  So configure it.

4 years agoel/dot-emacs.el: Fix phase-separation bug.
Mark Wooding [Sun, 24 May 2020 03:24:07 +0000 (04:24 +0100)]
el/dot-emacs.el: Fix phase-separation bug.

Previously, the macro would expect the parent style to exist at
expansion time, which works at the REPL, but not in the byte compiler.
Instead, expand to code to handle inheritance at runtime.

4 years agodot/Xdefaults: Make old Xt-based programs be white-on-dark.
Mark Wooding [Sun, 24 May 2020 03:23:37 +0000 (04:23 +0100)]
dot/Xdefaults: Make old Xt-based programs be white-on-dark.

4 years agodot/Xdefaults, Makefile: Replace `putty-defaults' with X resources.
Mark Wooding [Sun, 24 May 2020 03:21:16 +0000 (04:21 +0100)]
dot/Xdefaults, Makefile: Replace `putty-defaults' with X resources.

This is more cumbersome to set up, but ends up being more useful.  Using
X resources, it's possible to have a number of different profiles for
`pterm' which can be switched using the `-name' option.  Also, this
allows for overriding on the command-line using `-xrm', which doesn't
work if the settings are defined in `pterm''s own configuration file.

4 years agodot/emacs: Add key bindings for VM.
Mark Wooding [Sun, 24 May 2020 01:54:01 +0000 (02:54 +0100)]
dot/emacs: Add key bindings for VM.

4 years agodot/vm: Configure displaying messages as threads.
Mark Wooding [Sun, 24 May 2020 01:53:50 +0000 (02:53 +0100)]
dot/vm: Configure displaying messages as threads.

4 years agodot/vm: Set a `From' header when composing mail.
Mark Wooding [Sun, 24 May 2020 01:52:54 +0000 (02:52 +0100)]
dot/vm: Set a `From' header when composing mail.

We have `mail-envelope-from' set to `header', which doesn't work unless
there's, well, a header.

4 years agodot/vm: Configure IMAP support.
Mark Wooding [Sun, 24 May 2020 01:52:27 +0000 (02:52 +0100)]
dot/vm: Configure IMAP support.

4 years agodot/vm: Make `vm-reply-ignored-addresses' patterns match correctly.
Mark Wooding [Sun, 24 May 2020 01:50:31 +0000 (02:50 +0100)]
dot/vm: Make `vm-reply-ignored-addresses' patterns match correctly.

They're taken from the BBDB patterns, but BBDB only matches the actual
mailbox part of an address, while VM wants to match the entire address
string.  Strip off leading `^' and trailing `$', and wrap `\<...\>'
around instead.

4 years agodot/vm: Make `vm-reply-ignored-addresses' be a list.
Mark Wooding [Sun, 24 May 2020 01:49:54 +0000 (02:49 +0100)]
dot/vm: Make `vm-reply-ignored-addresses' be a list.

Otherwise you get a type error rather than anything useful.

4 years agodot/vm: Actually provide a value for `vm-delete-empty-folders'.
Mark Wooding [Sun, 24 May 2020 01:48:18 +0000 (02:48 +0100)]
dot/vm: Actually provide a value for `vm-delete-empty-folders'.

This should have been a syntax error.

4 years agodot/vm: Use Emacs's built-in MIME decoding machinery.
Mark Wooding [Sun, 24 May 2020 00:42:17 +0000 (01:42 +0100)]
dot/vm: Use Emacs's built-in MIME decoding machinery.

In particular, the `mimencode' program doesn't actually exist any more.

4 years agodot/gnus-local.el.distorted: Add rule for Google leak.
Mark Wooding [Sun, 24 May 2020 00:41:38 +0000 (01:41 +0100)]
dot/gnus-local.el.distorted: Add rule for Google leak.

4 years agodot/gnus-local.el.distorted: Expand the `spotify' and `gandi' patterns.
Mark Wooding [Sat, 23 May 2020 21:56:40 +0000 (22:56 +0100)]
dot/gnus-local.el.distorted: Expand the `spotify' and `gandi' patterns.

Found that some mail was being misclassified.

4 years ago(Emacs Lisp): Use `...?' rather than `\(...\|\)' in regular expressions.
Mark Wooding [Sat, 23 May 2020 21:52:50 +0000 (22:52 +0100)]
(Emacs Lisp): Use `...?' rather than `\(...\|\)' in regular expressions.

4 years agodot/emacs: Don't snarf addresses from Microsoft's `Junk Email' folder.
Mark Wooding [Wed, 20 May 2020 16:03:25 +0000 (17:03 +0100)]
dot/emacs: Don't snarf addresses from Microsoft's `Junk Email' folder.

4 years agodot/emacs: Split regex into little pieces.
Mark Wooding [Wed, 20 May 2020 15:58:58 +0000 (16:58 +0100)]
dot/emacs: Split regex into little pieces.

This one is about to get messier.

4 years agoel/dot-emacs.el: And the last use of `mdw-define-c-style'.
Mark Wooding [Wed, 20 May 2020 13:35:16 +0000 (14:35 +0100)]
el/dot-emacs.el: And the last use of `mdw-define-c-style'.

:-(

4 years agodot/emacs: Bind `backspace' in `isearch' mode.
Mark Wooding [Wed, 20 May 2020 13:32:31 +0000 (14:32 +0100)]
dot/emacs: Bind `backspace' in `isearch' mode.

4 years agoel/dot-emacs.el: Add missing parent argument to `mdw-define-c-style' calls.
Mark Wooding [Wed, 20 May 2020 13:32:06 +0000 (14:32 +0100)]
el/dot-emacs.el: Add missing parent argument to `mdw-define-c-style' calls.

Missed these the first time.

4 years agoel/dot-emacs.el: Split out a `mdw-trustonic-basic-c' style.
Mark Wooding [Tue, 19 May 2020 10:51:58 +0000 (11:51 +0100)]
el/dot-emacs.el: Split out a `mdw-trustonic-basic-c' style.

Some parts of the codebase have a more sensible style where arguments
are aligned properly.

4 years agoel/dot-emacs.el: Improve `mdw-define-c-style' to support simple inheritance.
Mark Wooding [Tue, 19 May 2020 10:48:30 +0000 (11:48 +0100)]
el/dot-emacs.el: Improve `mdw-define-c-style' to support simple inheritance.

Delete the duplicate settings in `mdw-trustonic-c'.

4 years agoel/dot-emacs.el: Hoist `mdw-c' to the top as the primary style.
Mark Wooding [Tue, 19 May 2020 10:45:18 +0000 (11:45 +0100)]
el/dot-emacs.el: Hoist `mdw-c' to the top as the primary style.

4 years agodot/emacs: Fix DEL to work properly in `isearch' mode.
Mark Wooding [Mon, 18 May 2020 03:53:32 +0000 (04:53 +0100)]
dot/emacs: Fix DEL to work properly in `isearch' mode.

Now it actually deletes a single character, rather than doing some
random thing.

The old binding is still available as M-DEL, should I ever want it.

4 years agobin/wakey.sh: Cope if the `_NET_ACTIVE_WINDOW' property is missing.
Mark Wooding [Sun, 17 May 2020 21:24:48 +0000 (22:24 +0100)]
bin/wakey.sh: Cope if the `_NET_ACTIVE_WINDOW' property is missing.

4 years agodot/parallel-hosts: Add missing entry for `mango'.
Mark Wooding [Sun, 17 May 2020 11:34:06 +0000 (12:34 +0100)]
dot/parallel-hosts: Add missing entry for `mango'.

4 years agodot/parallel-hosts: Introduce `@root' group for all things I maintain.
Mark Wooding [Sun, 17 May 2020 11:33:31 +0000 (12:33 +0100)]
dot/parallel-hosts: Introduce `@root' group for all things I maintain.

4 years agobin/run-with-shell-env: Preserve the original argument list.
Mark Wooding [Thu, 14 May 2020 13:48:37 +0000 (14:48 +0100)]
bin/run-with-shell-env: Preserve the original argument list.

The `profile' script makes use of `set', which trashes the argument
list.  Capture it in a shell array at the start (because we're using
Bash here) and then run the target program from the array.

4 years agodot/shell-rc: Behave usefully in Cygwin elevated sessions.
Mark Wooding [Fri, 8 May 2020 22:45:11 +0000 (23:45 +0100)]
dot/shell-rc: Behave usefully in Cygwin elevated sessions.

Decorate the prompt as if we're root -- which, really, we basically are
-- and put a `%admin' marker in the window title.

4 years agodot/shell-rc: Cache whether we're running as root.
Mark Wooding [Fri, 8 May 2020 22:43:31 +0000 (23:43 +0100)]
dot/shell-rc: Cache whether we're running as root.

Rather than running `id' every time.  What was I thinking?

4 years agodot/shell-rc: Introduce `$__mdw_user' as an indirection over `$USER'.
Mark Wooding [Fri, 8 May 2020 22:33:09 +0000 (23:33 +0100)]
dot/shell-rc: Introduce `$__mdw_user' as an indirection over `$USER'.

4 years agodot/shell-rc: Use `$USER' directly now that I've set it properly.
Mark Wooding [Fri, 8 May 2020 22:38:08 +0000 (23:38 +0100)]
dot/shell-rc: Use `$USER' directly now that I've set it properly.

Eliminate the `$user' local variable from `__mdw_set_prompt_pieces'.

4 years agodot/shell-rc: Make sure that `$USER' is defined.
Mark Wooding [Fri, 8 May 2020 22:29:50 +0000 (23:29 +0100)]
dot/shell-rc: Make sure that `$USER' is defined.

4 years agodot/emacs: Include the turd created by Emacs's ELPA package system.
Mark Wooding [Fri, 8 May 2020 22:27:33 +0000 (23:27 +0100)]
dot/emacs: Include the turd created by Emacs's ELPA package system.

Guarded to make sure it doesn't break ancient Emacsen.

4 years agodot/user-dirs.*: Override idiotic desktoppy directories.
Mark Wooding [Sun, 10 May 2020 16:49:27 +0000 (17:49 +0100)]
dot/user-dirs.*: Override idiotic desktoppy directories.

Programs keep creating these things.  It's really annoying.

4 years agodot/putty-defaults: Hugely increase the scrollback size.
Mark Wooding [Sun, 10 May 2020 14:14:08 +0000 (15:14 +0100)]
dot/putty-defaults: Hugely increase the scrollback size.

I chose 1000 back when memory was less plentiful than it is now.

I calculate:

10,000 lines by
   638 columns (6x13 on UHD+ display), by
     8 bytes (four bytes Unicode, four attributes)

comes out as 48.5MB, which is trivial by modern standards.

4 years agobin/mdw-build: Always create the logfile, even in verbose builds.
Mark Wooding [Sun, 10 May 2020 14:02:32 +0000 (15:02 +0100)]
bin/mdw-build: Always create the logfile, even in verbose builds.

I finally realised that I can use process substitution to make this
work, rather than messing about with coprocesses.  Go me.

4 years agobin/mdw-build: Do all of the log descriptor setting in one place.
Mark Wooding [Sun, 10 May 2020 14:00:31 +0000 (15:00 +0100)]
bin/mdw-build: Do all of the log descriptor setting in one place.

Rather than setting things up for a verbose build and then changing
things later.

4 years agobin/mdw-build: Delay official `assign' for `$toppath' and `$releasepath'.
Mark Wooding [Sun, 10 May 2020 13:59:14 +0000 (14:59 +0100)]
bin/mdw-build: Delay official `assign' for `$toppath' and `$releasepath'.

... until after we've established the logfile.  Otherwise it won't
capture these things.

4 years agobin/mdw-build: Don't assign `$srcpath' until after `checkout'.
Mark Wooding [Sun, 10 May 2020 13:51:05 +0000 (14:51 +0100)]
bin/mdw-build: Don't assign `$srcpath' until after `checkout'.

Otherwise we end up printing two `--- srcpath = ...' lines in the common
`checkout' case, which is just silly.

Instead:

  * set `$srcpath' in the `checkout' stanza, either pointing the new
    tree or back at the original one; and

  * use `$topath' for the original source tree until we've established
    `$srcpath'.

4 years agobin/mdw-build, bin/mdw-sbuild-server: Run the builds nicely.
Mark Wooding [Sun, 10 May 2020 12:43:47 +0000 (13:43 +0100)]
bin/mdw-build, bin/mdw-sbuild-server: Run the builds nicely.

4 years agobin/xduplic-terminal: New script: start terminals for `xduplic-copier'.
Mark Wooding [Sun, 10 May 2020 18:43:37 +0000 (19:43 +0100)]
bin/xduplic-terminal: New script: start terminals for `xduplic-copier'.

While `xduplic-copier' is awesome, it doesn't work with terminal
emulators built against GTK 3 for bogus `security' reasons.  Also,
typically, I want to start lots of terminals starting out doing slightly
different things.

Anyway, this is a simple which opens a bunch of suitable terminals based
on tags provided on the command line.

4 years agobin/mdw-build: Use dynamically chosen file descriptors.
Mark Wooding [Sun, 10 May 2020 01:56:28 +0000 (02:56 +0100)]
bin/mdw-build: Use dynamically chosen file descriptors.

Having just ranted about a bug caused by shell scripts statically
allocating file descriptors, fix `mdw-build' to allocate descriptors
dynamically, since it's written in Bash, which can apparently do this.

4 years agobin/mdw-build: Close our file descriptors when running subcommands.
Mark Wooding [Sun, 10 May 2020 01:49:02 +0000 (02:49 +0100)]
bin/mdw-build: Close our file descriptors when running subcommands.

Otherwise they cause problems.  Automake's generated `Makefile' calls
out to `config.status' to do something involving dependency tracking;
but that in turn calls back out to `make'.  If the jobserver is active,
then the file-descriptor juggling done inside `config.status' can
clobber the jobserver pipe descriptors, which breaks things badly.

It appears that the file-descriptor assignments in `config.status' are
finely judged so that they will avoid the jobserver descriptors /if/ the
prevailing environment hasn't opened any descriptors beyond the standard
three.  So we must keep our descriptors from leaking out and messing up
this delicate balance.

Of course, this is really a bug in Autoconf and/or Automake, but POSIX
shell doesn't have a way to allocate a descriptor dynamically, so I'm
going to cut them some slack here.

4 years agobin/mdw-build: Make a note of the persistent file-descriptor assignments.
Mark Wooding [Sun, 10 May 2020 01:48:03 +0000 (02:48 +0100)]
bin/mdw-build: Make a note of the persistent file-descriptor assignments.

It's a little fiddly to work out each time.

4 years agobin/mdw-build: Allow overriding the `make' program.
Mark Wooding [Sat, 9 May 2020 23:50:23 +0000 (00:50 +0100)]
bin/mdw-build: Allow overriding the `make' program.

Not generally useful, but handy for debugging.

4 years agodot/shell-rc: Put the hostname qualifiers in the terminal title.
Mark Wooding [Sat, 9 May 2020 23:47:27 +0000 (00:47 +0100)]
dot/shell-rc: Put the hostname qualifiers in the terminal title.

4 years agodot/shell-rc: Factor out the terminal and screen title-setting.
Mark Wooding [Sat, 9 May 2020 23:46:45 +0000 (00:46 +0100)]
dot/shell-rc: Factor out the terminal and screen title-setting.

This is getting even more complicated as time goes on.

4 years agodot/shell-rc: Calculate the hostname qualifiers once in advance.
Mark Wooding [Sat, 9 May 2020 23:45:20 +0000 (00:45 +0100)]
dot/shell-rc: Calculate the hostname qualifiers once in advance.

The `qualifiers' here are things like the chroot or cross-environment
name.

4 years agodot/profile: Unbungle the setting of `$DEB_BUILD_OPTIONS'.
Mark Wooding [Sat, 9 May 2020 21:07:21 +0000 (22:07 +0100)]
dot/profile: Unbungle the setting of `$DEB_BUILD_OPTIONS'.

Oops.

4 years agodot/shell-rc: Run `cross-run' nicely by default.
Mark Wooding [Sat, 9 May 2020 13:53:48 +0000 (14:53 +0100)]
dot/shell-rc: Run `cross-run' nicely by default.

The usual application is to run make(1) or some other highly intensive
thing in lots of different cross environments at the same time, so this
seems like something that should try to be nice.

4 years agodot/emacs: Experimentally tern on focus-follows-mouse in Emacs.
Mark Wooding [Fri, 8 May 2020 17:15:40 +0000 (18:15 +0100)]
dot/emacs: Experimentally tern on focus-follows-mouse in Emacs.

4 years agodot/parallel-hosts: A useful SSH hosts file for GNU `parallel'.
Mark Wooding [Fri, 8 May 2020 16:43:02 +0000 (17:43 +0100)]
dot/parallel-hosts: A useful SSH hosts file for GNU `parallel'.

4 years agodot/profile, dot/mdw-build.conf: Set `DEB_BUILD_OPTIONS' automatically.
Mark Wooding [Fri, 8 May 2020 13:45:42 +0000 (14:45 +0100)]
dot/profile, dot/mdw-build.conf: Set `DEB_BUILD_OPTIONS' automatically.

There's a new `.mdw.conf' setting for the parallelism level.

4 years agoMakefile: Actually install a link for `mdw-build.conf'.
Mark Wooding [Fri, 8 May 2020 02:15:36 +0000 (03:15 +0100)]
Makefile: Actually install a link for `mdw-build.conf'.

4 years agodot/mdw-build.conf: Set the parallelism from `.mdw.conf'.
Mark Wooding [Fri, 8 May 2020 02:15:09 +0000 (03:15 +0100)]
dot/mdw-build.conf: Set the parallelism from `.mdw.conf'.