diff -uNr a/gbw-node/README b/gbw-node/README --- a/gbw-node/README 6aab42c3e5b1d6908f04d3903a3ec18ee872a0409d99b2eca618e7d97ef1b7a21aa6edb3f78973a66d21774331e19a18749dc0c625317eb88d53dc61ea63e11b +++ b/gbw-node/README 6c3d0898ec345de244948d1d992cbcc55dcd4e66feea03a855557a823389c01cbc1664e29af35802a16f654c5fd0e19a6e5fa64724f093f9c1c74cbb3a10e092 @@ -15,23 +15,27 @@ - sqlite 3.7.0 or newer including the sqlite3 shell - python 2.7.x including the sqlite3 module -- The Real Bitcoin node +- Bitcoin node including at least the dumpblock fix ( http://fixpoint.welshcomputing.com/2021/alert-dumpblock-flaw-in-bitcoind-can-cause-gbw-node-to-incorrectly-report-transactions/ ) Installation ------------ -This software sheds some historical Unix conventions in favor of Bernstein's /package scheme ( http://cr.yp.to/slashpackage.html ), which I find meshes fairly well with the ideas of V. If this is your first time using it, you may need to create the /package directory and add /command to your shell's PATH variable. +This software ignores some historical Unix conventions in favor of a simplified variant of Bernstein's /package scheme ( http://cr.yp.to/slashpackage.html ). Installation paths and command names are not configurable, which amounts to a global namespace claim, such that people and programs can count on finding components at known paths if they are to be found at all. User commands are symlinked into /usr/bin and will replace prior files in case of conflict; see "package/commands" for the list. -1. Press or otherwise install the tree at the path: +You will need root privileges to install. - /package/gbw-node-1 +1. Create the top-level /package directory if necessary and place the tree at its fully version-qualified path: -The installation path is not configurable. This amounts to a claim on the global namespace, as command names always do. People and programs can count on finding components at known paths if they are to be found at all, as surely as with /bin/sh. This doesn't mean the files must physically exist under /package; for example, a symlink from there could ease working on the code as a non-root user. + mkdir -p /package + cp -r /YOUR/PATH/TO/gbw-node /package/gbw-node-2 -2. From the above directory, run (as root): +2. Run the install script from the above directory: + cd /package/gbw-node-2 sh package/install +To revert to this version after installing a different one, simply repeat step 2. + Operation --------- diff -uNr a/gbw-node/manifest b/gbw-node/manifest --- a/gbw-node/manifest fb0faf16617725f55877619b24acdad397c6a3df6a7eb1097330909e1d58dd7885f9467720403f256bfacf987e59188efd101026624290f7bacf826fdeb0d0c0 +++ b/gbw-node/manifest e0072723f44e0dd43f913c26331ca48460d0c0cad577376e57eeb2479a551a3417b905c119915e5f19d60224f79ecdc51752f893ab861d6e4b7b15c19d1361c4 @@ -1 +1,2 @@ 711740 gbw-node_subdir_genesis jfw Online database frontend and schema for gbw, the Gales Bitcoin Wallet. Reissued to follow various conventions: top-level project subdir, lowercase manifest filename, README at project level. (File renaming only; pending content changes are to follow.) +711740 gbw-node_usrbin jfw As seen also with gscm, change command symlink from /command/gbw-node to /usr/bin/gbw-node, and correct the install script for the case of replacing an existing version. Update README and bump version to reflect the packaging changes. diff -uNr a/gbw-node/package/install b/gbw-node/package/install --- a/gbw-node/package/install 76078f968969be15f36e9ff8bdf68381f33f7c3bb38ec44a5d80f8547d372c69b665b5e0b2f396f44c3d1a6b047962f4eeba8b086f2d66a9d6e07bf57ec1ff2a +++ b/gbw-node/package/install cec63f16206fe24a42d7ba1231fc777e385afa7bf62748374b0faa6d67dc9133d521128e5ce5911106c6fa6f95d841d40ead2f62548c2543aa8ab5b87894aeeb @@ -2,22 +2,22 @@ set -e P=gbw-node -V=1 +V=2 cd /package/$P-$V # Versioned path duplicated in: -# package/README +# README -echo "Creating symlink $P -> $P-$V" -rm -f /package/$P'{new}' -ln -s $P-$V /package/$P'{new}' -mv -f /package/$P'{new}' /package/$P +echo "Creating symlink $P -> $P-$V..." +rm -f $P +ln -s $P-$V $P +mv -f $P /package/ -echo 'Making command links in /command' -mkdir -p /command +echo 'Making command links in /usr/bin...' +mkdir -p /usr/bin for i in `cat package/commands` ; do chmod 755 command/$i - rm -f /command/$i'{new}' - ln -s /package/$P/command/$i /command/$i'{new}' - mv -f /command/$i'{new}' /command/$i + rm -f /usr/bin/$i'{new}' + ln -s /package/$P/command/$i /usr/bin/$i'{new}' + mv -f /usr/bin/$i'{new}' /usr/bin/$i done