Over the last two days, in a frenzy of activity, I got some awesome done at work: using git and Vagrant, I finally got Cfengine to install packages in Ubuntu without asking me any goram questions. There were two bits involved:
Telling Apt to use old config files. This prevents it from asking for confirmation when it comes across your already-installed-with-Cfengine config file. Cfengine doesn't do things in a particular order, and in any case I do package installation once an hour -- so I might well have an NTP config file show up before the NTP package itself.
Preseeding, which I've known about for a while but have not had a chance to get right. My summer student came up with a script to do this, and I hope to be able to release it.
Now: Fully automated package installation FTMFW.
And did you know that Emacs can check your laptop battery status? I didn't.
Excellent overview of one workflow on Stack Overflow.
Mandriva shows how to set up rpm macros to use git during rpmbuild.
Software project A is kept in git. A depends on unrelated project B, so B is configured as a submodule in A. Unfortunately, A's Makefile assumes B's location in that subdirectory, with no provision for looking for its libraries and header files in the usual locations. Good or whack? @FunnelFiasco: "I concur. It's total bullshit."
Unrelated: xpdf crashes on Ubuntu 12.04. Wow.
When using magit, I came across errors that looked much like these:
Unpulled commits:
fatal: ambiguous argument 'HEAD..exoplanet/compute_server': unknown revision
or path not in the working tree.
Use '--' to separate paths from revisions
(Here, "exoplanet" is the name of a machine, and "compute_server" the name of a branch.)
The problem turned out to be that .git/config looked like this:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = exoplanet:~/dotfiles-git-master
[branch "compute_server"]
remote = exoplanet
Note how the branch lists the remote as "exoplanet", but there's no "exoplanet" remote config stanza -- only one called "origin". Changing the remote listed under the branch to be "origin" worked. Here's the working config:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = exoplanet:~/dotfiles-git-master
[branch "compute_server"]
remote = origin
I need to add a post-commit hook to my RT git trees to email the day's logs to RT; send 'em as a comment so they show up automagically in the ticket. Looks like the default should do nicely.