Commit graph

458 commits

Author SHA1 Message Date
Adam Spiers 583f0f01ea Add GPL v3 upgrade to NEWS for 2.3.0 release
Forgot to do this prior to the release :-(  But at least it will
be mentioned in the announcement on the mailing lists.
2019-06-29 01:30:56 +01:00
Adam Spiers 94175829b9 Make NEWS export to text better
Run org-convert-to-odd-levels on NEWS and set local variables so
that sections can easily be exported for release announcements.
2019-06-29 01:30:33 +01:00
Adam Spiers 8d0a46cc88 Set DISTCLEANFILES to clean up more
Docker generates a whole bunch of files as root.
2019-06-29 00:56:11 +01:00
Adam Spiers 872ec96350 HOWTO-RELEASE: Fix cvs commit command for docs 2019-06-29 00:55:51 +01:00
Adam Spiers cef930852c HOWTO-RELEASE: Fix git tag command 2019-06-29 00:36:00 +01:00
Adam Spiers 8b2123847d Split perlbrew install-multiple into separate RUN cmd
This allows changing which Perls are used etc. without
re-bootstrapping perlbrew.
2019-06-28 23:54:30 +01:00
Adam Spiers 2a4c3d3120
Use Clone backend for Hash::Merge, not Storable (#58)
Use Clone backend for Hash::Merge, not Storable
2019-06-28 21:57:08 +01:00
Adam Spiers 00c92076d9 Use Clone backend for Hash::Merge, not Storable
Need to avoid Storable backend, since it can't deal with regexps:

    https://rt.perl.org/Public/Bug/Display.html?id=50608

This should fix the Docker builds.
2019-06-28 21:20:45 +01:00
Adam Spiers 089151c116 make maintainer-clean remove cover_db/ 2019-06-28 21:20:45 +01:00
Adam Spiers d991dfbbf8
Make testing within Docker containers easier (#56)
Make testing within Docker containers easier
2019-06-28 20:46:15 +01:00
Adam Spiers 5d667c3e71 Make testing within Docker containers easier 2019-06-28 20:36:38 +01:00
Adam Spiers 8acb10e26c
Merge pull request #57 from aspiers/strict-tests
Allow make to fail if missing modules for test dependencies
2019-06-28 20:33:30 +01:00
Adam Spiers ba243c0a61 Allow make to fail if missing modules for test dependencies
e.g. make STRICT_TESTS=1

However we don't need this in .travis.yml as explained in the
comments.
2019-06-28 20:28:22 +01:00
Adam Spiers 651f1e6503
Dockerfile: fix Debian jessie sources (#55)
Dockerfile: fix Debian jessie sources
2019-06-28 17:48:04 +01:00
Adam Spiers 71a8d5d42c Dockerfile: fix Debian jessie sources
https://superuser.com/questions/1423486/issue-with-fetching-http-deb-debian-org-debian-dists-jessie-updates-inrelease
2019-06-28 17:14:37 +01:00
Adam Spiers 97b6a35b38
Make docker scripts use get-version (#54)
Make docker scripts use get-version
2019-06-28 17:14:23 +01:00
Adam Spiers ded84b0d08
rebuild META.* in preparation for 2.3.0 release (#53)
rebuild META.* in preparation for 2.3.0 release
2019-06-28 17:10:42 +01:00
Adam Spiers ee57b1abc6 Make docker scripts use get-version 2019-06-28 17:08:48 +01:00
Adam Spiers e98fa1603a rebuild META.* in preparation for 2.3.0 release 2019-06-28 17:04:40 +01:00
Adam Spiers 6d195f95e0
Various improvements to tests (#52)
Various improvements to tests
2019-06-28 16:48:59 +01:00
Adam Spiers 74f0182834 Add separate tests for .stowrc from $HOME and $PWD
.stowrc can be obtained from $HOME and/or the current working
directory; however only the $HOME case was tested before, because
during tests Stow was being run from $HOME.

So switch $TEST_DIR to an absolute path, create a new run_from/
subdirectory, and chdir to that before invoking any Stow code.  This
allows us to test the behaviour of .stowrc in $HOME and run_from/
separately.
2019-06-28 16:39:53 +01:00
Adam Spiers ac74d75a98 Split up is_deeply() assertions in find_stowed_path.t
This makes the tests and any failures more readable.
2019-06-28 15:24:50 +01:00
Adam Spiers 40a0807185 Check that find_stowed_path $path matches relative/absolute with target
Watch out for a corner case probably only relevant in tests.
2019-06-28 15:24:50 +01:00
Adam Spiers 3270b145e1 Improve comments on function parameters for clarity 2019-06-28 15:24:50 +01:00
Adam Spiers e4f6a6742b Add examples of how to enable debugging in tests 2019-06-28 15:24:50 +01:00
Adam Spiers 6233298a91 Replace testutil::make_dir with File::Path::make_path
No need for a custom function here.
2019-06-28 01:02:48 +01:00
Adam Spiers ba48fd3908 Rename $OUT_DIR to $TEST_DIR
This is a more accurate reflection of what it is.
2019-06-28 00:53:12 +01:00
Adam Spiers 5f875009f8
Avoid dereferencing $ENV{HOME} if it is undefined (#32)
Avoid dereferencing $ENV{HOME} if it is undefined
2019-06-28 00:41:55 +01:00
Adam Spiers fea63ffe65
Improve the history of individual contributions and repositories (#49)
Improve the history of individual contributions and repositories
2019-06-27 20:49:44 +01:00
Adam Spiers d5d710e3e3
Upgrade to GPL v3 and add headers to files (#50)
Upgrade to GPL v3 and add headers to files
2019-06-27 20:49:18 +01:00
Adam Spiers 311c2d139e Improve the history of individual contributions and repositories
The source code has been through a rather complicated journey, and
it's occasionally useful to understand this history from CVS to a
private Subversion repository to its current location in git.  So
document this more thoroughly, and ensure that everyone involved
is in the THANKS file.
2019-06-27 20:44:48 +01:00
Adam Spiers 157f39385a Change -w to "use warnings;" in tools/get-version
This is more idiomatic and consistent with everywhere else.
2019-06-27 20:39:16 +01:00
Adam Spiers 0979a9c7bd Change #!/usr/local/bin/perl to #!/usr/bin/perl in t/*.t
This doesn't really matter, since these are not executed directly, but
it's more consistent with everything else and modern systems.
2019-06-27 20:37:50 +01:00
Adam Spiers 27796720d5 Upgrade to GPL v3 and add headers to files (#44)
Following advice from maintainers@gnu.org, bring Stow in line with
other GNU projects by upgrading it from GPL v2 to v3

  https://www.gnu.org/prep/maintain/html_node/Licensing-of-GNU-Packages.html#Licensing-of-GNU-Packages

as obtained in plain text and texinfo formats from

  https://www.gnu.org/licenses/

and adding appropriate headers:

  https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Code.html#License-Notices-for-Code

Fixes #44: https://github.com/aspiers/stow/issues/44
2019-06-27 20:37:40 +01:00
Adam Spiers a4c0ad62d1
Fix Travis failure after merging #42 (#46)
Fix Travis failure after merging #42
2019-06-27 14:14:23 +01:00
Adam Spiers 0f54900cfe
remove trailing whitespace from lines (#45)
remove trailing whitespace from lines
2019-06-27 14:06:19 +01:00
Adam Spiers fd17b807f5 Fix Travis failure after merging #42
Something weird happened with
https://travis-ci.org/aspiers/stow/jobs/551290921 after merging #42,
as shown below.  Maybe removing texi2html from the list of packages
for Travis to install will help.

---
Installing APT Packages
15.50s$ travis_apt_get_update
0.11s$ sudo -E apt-get -yq --no-install-suggests --no-install-recommends $(travis_apt_get_options) install texinfo texlive texi2html
Reading package lists...
Building dependency tree...
Reading state information...
Package texinfo is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  info install-info
E: Package 'texinfo' has no installation candidate
E: Unable to locate package texi2html
apt-get.diagnostics
apt-get install failed
$ cat ${TRAVIS_HOME}/apt-get-update.log
Get:2 http://dl.hhvm.com/ubuntu trusty InRelease [3,106 B]
Get:3 http://security.ubuntu.com/ubuntu trusty-security InRelease [65.9 kB]
Get:4 http://ppa.launchpad.net/chris-lea/redis-server/ubuntu trusty InRelease [15.4 kB]
Ign:5 http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 InRelease
Get:6 http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 Release [2,495 B]
Get:7 http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 Release.gpg [801 B]
Get:8 http://dl.hhvm.com/ubuntu trusty/main amd64 Packages [1,812 B]
Get:9 http://security.ubuntu.com/ubuntu trusty-security/main Sources [220 kB]
Get:10 http://security.ubuntu.com/ubuntu trusty-security/restricted Sources [5,050 B]
Get:11 http://security.ubuntu.com/ubuntu trusty-security/universe Sources [126 kB]
Get:12 http://security.ubuntu.com/ubuntu trusty-security/multiverse Sources [3,070 B]
Get:13 http://security.ubuntu.com/ubuntu trusty-security/main amd64 Packages [1,032 kB]
Get:14 http://security.ubuntu.com/ubuntu trusty-security/main i386 Packages [934 kB]
Get:15 http://security.ubuntu.com/ubuntu trusty-security/main Translation-en [541 kB]
Get:16 http://security.ubuntu.com/ubuntu trusty-security/restricted amd64 Packages [18.1 kB]
Get:17 http://security.ubuntu.com/ubuntu trusty-security/restricted i386 Packages [17.8 kB]
Get:18 http://security.ubuntu.com/ubuntu trusty-security/restricted Translation-en [3,272 B]
Get:19 http://security.ubuntu.com/ubuntu trusty-security/universe amd64 Packages [377 kB]
Get:20 http://security.ubuntu.com/ubuntu trusty-security/universe i386 Packages [355 kB]
Get:21 http://security.ubuntu.com/ubuntu trusty-security/universe Translation-en [203 kB]
Get:22 http://security.ubuntu.com/ubuntu trusty-security/multiverse amd64 Packages [4,730 B]
Get:23 http://security.ubuntu.com/ubuntu trusty-security/multiverse i386 Packages [4,887 B]
Get:24 http://security.ubuntu.com/ubuntu trusty-security/multiverse Translation-en [2,426 B]
Get:25 https://download.docker.com/linux/ubuntu trusty InRelease [37.1 kB]
Get:26 http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4/multiverse amd64 Packages [14.1 kB]
Get:27 https://download.docker.com/linux/ubuntu trusty/stable amd64 Packages [5,763 B]
Get:28 https://download.docker.com/linux/ubuntu trusty/edge amd64 Packages [6,911 B]
Ign:29 http://ppa.launchpad.net/couchdb/stable/ubuntu trusty InRelease
Get:30 http://ppa.launchpad.net/git-core/ppa/ubuntu trusty InRelease [20.8 kB]
Get:31 http://ppa.launchpad.net/hvr/ghc/ubuntu trusty InRelease [15.4 kB]
Get:32 http://ppa.launchpad.net/pollinate/ppa/ubuntu trusty InRelease [15.4 kB]
Get:33 http://ppa.launchpad.net/webupd8team/java/ubuntu trusty InRelease [15.5 kB]
Get:34 http://ppa.launchpad.net/chris-lea/redis-server/ubuntu trusty/main amd64 Packages [1,843 B]
Get:35 http://ppa.launchpad.net/chris-lea/redis-server/ubuntu trusty/main i386 Packages [1,842 B]
Get:36 http://ppa.launchpad.net/chris-lea/redis-server/ubuntu trusty/main Translation-en [990 B]
Get:37 http://ppa.launchpad.net/couchdb/stable/ubuntu trusty Release [15.1 kB]
Get:38 http://ppa.launchpad.net/couchdb/stable/ubuntu trusty Release.gpg [316 B]
Ign:39 http://dl.google.com/linux/chrome/deb stable InRelease
Get:40 http://dl.google.com/linux/chrome/deb stable Release [943 B]
Get:41 http://dl.google.com/linux/chrome/deb stable Release.gpg [819 B]
Get:42 http://ppa.launchpad.net/git-core/ppa/ubuntu trusty/main amd64 Packages [3,494 B]
Get:43 http://ppa.launchpad.net/git-core/ppa/ubuntu trusty/main i386 Packages [3,496 B]
Get:44 http://ppa.launchpad.net/git-core/ppa/ubuntu trusty/main Translation-en [2,368 B]
Get:45 http://ppa.launchpad.net/hvr/ghc/ubuntu trusty/main amd64 Packages [18.5 kB]
Get:46 http://ppa.launchpad.net/hvr/ghc/ubuntu trusty/main i386 Packages [15.7 kB]
Get:47 http://ppa.launchpad.net/hvr/ghc/ubuntu trusty/main Translation-en [1,107 B]
Get:48 http://ppa.launchpad.net/pollinate/ppa/ubuntu trusty/main amd64 Packages [430 B]
Get:49 http://ppa.launchpad.net/pollinate/ppa/ubuntu trusty/main i386 Packages [430 B]
Get:50 http://ppa.launchpad.net/pollinate/ppa/ubuntu trusty/main Translation-en [374 B]
Get:51 http://ppa.launchpad.net/webupd8team/java/ubuntu trusty/main amd64 Packages [20 B]
Get:52 http://ppa.launchpad.net/webupd8team/java/ubuntu trusty/main i386 Packages [20 B]
Get:53 http://ppa.launchpad.net/webupd8team/java/ubuntu trusty/main Translation-en [20 B]
Get:54 http://ppa.launchpad.net/couchdb/stable/ubuntu trusty/main amd64 Packages [985 B]
Get:55 http://ppa.launchpad.net/couchdb/stable/ubuntu trusty/main i386 Packages [985 B]
Get:56 http://ppa.launchpad.net/couchdb/stable/ubuntu trusty/main Translation-en [644 B]
Get:57 http://dl.google.com/linux/chrome/deb stable/main amd64 Packages [1,107 B]
Err:58 https://packagecloud.io/computology/apt-backport/ubuntu trusty InRelease
  Failed to connect to packagecloud.io port 443: Connection timed out
Err:59 http://us-east-1.ec2.archive.ubuntu.com/ubuntu trusty InRelease
  Could not connect to apt.cache.travis-ci.com:80 (34.96.81.152), connection timed out
Err:60 http://us-east-1.ec2.archive.ubuntu.com/ubuntu trusty-updates InRelease
  Unable to connect to apt.cache.travis-ci.com:http:
Err:61 http://toolbelt.heroku.com/ubuntu ./ InRelease
  Could not connect to apt.cache.travis-ci.com:80 (34.96.81.152), connection timed out
Err:62 http://us-east-1.ec2.archive.ubuntu.com/ubuntu trusty-backports InRelease
  Unable to connect to apt.cache.travis-ci.com:http:
Err:63 http://apt.postgresql.org/pub/repos/apt trusty-pgdg InRelease
  Could not connect to apt.cache.travis-ci.com:80 (34.96.81.152), connection timed out
Err:1 http://dl.bintray.com/apache/cassandra 39x InRelease
  Could not connect to apt.cache.travis-ci.com:80 (34.96.81.152), connection timed out
Get:64 https://packagecloud.io/github/git-lfs/ubuntu trusty InRelease [23.2 kB]
Ign:64 https://packagecloud.io/github/git-lfs/ubuntu trusty InRelease
Get:65 https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu trusty InRelease [23.7 kB]
Get:66 https://packagecloud.io/github/git-lfs/ubuntu trusty/main Sources [20 B]
Get:67 https://packagecloud.io/github/git-lfs/ubuntu trusty/main amd64 Packages [8,003 B]
Get:68 https://packagecloud.io/github/git-lfs/ubuntu trusty/main i386 Packages [7,761 B]
Get:69 https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu trusty/main Sources [20 B]
Get:70 https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu trusty/main amd64 Packages [7,866 B]
Get:71 https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu trusty/main i386 Packages [7,866 B]
Fetched 4,218 kB in 15s (279 kB/s)
Reading package lists...
W: http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg: Signature by key 15866BAFD9BCC4F3C1E0DFC7D69548E1C17EAB57 uses weak digest algorithm (SHA1)
W: GPG error: https://packagecloud.io/github/git-lfs/ubuntu trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6B05F25D762E3157
W: The repository 'https://packagecloud.io/github/git-lfs/ubuntu trusty InRelease' is not signed.
W: There is no public key available for the following key IDs:
6B05F25D762E3157
W: Failed to fetch http://us-east-1.ec2.archive.ubuntu.com/ubuntu/dists/trusty/InRelease  Could not connect to apt.cache.travis-ci.com:80 (34.96.81.152), connection timed out
W: Failed to fetch http://us-east-1.ec2.archive.ubuntu.com/ubuntu/dists/trusty-updates/InRelease  Unable to connect to apt.cache.travis-ci.com:http:
W: Failed to fetch http://us-east-1.ec2.archive.ubuntu.com/ubuntu/dists/trusty-backports/InRelease  Unable to connect to apt.cache.travis-ci.com:http:
W: Failed to fetch http://www.apache.org/dist/cassandra/debian/dists/39x/InRelease  Could not connect to apt.cache.travis-ci.com:80 (34.96.81.152), connection timed out
W: Failed to fetch https://packagecloud.io/computology/apt-backport/ubuntu/dists/trusty/InRelease  Failed to connect to packagecloud.io port 443: Connection timed out
W: Failed to fetch http://toolbelt.heroku.com/ubuntu/./InRelease  Could not connect to apt.cache.travis-ci.com:80 (34.96.81.152), connection timed out
W: Failed to fetch http://apt.postgresql.org/pub/repos/apt/dists/trusty-pgdg/InRelease  Could not connect to apt.cache.travis-ci.com:80 (34.96.81.152), connection timed out
W: Some index files failed to download. They have been ignored, or old ones used instead.
The command "sudo -E apt-get -yq --no-install-suggests --no-install-recommends $(travis_apt_get_options) install texinfo texlive texi2html" failed and exited with 100 during .
Your build has been stopped.
2019-06-27 13:55:35 +01:00
Adam Spiers c2a399985a remove trailing whitespace from lines 2019-06-27 13:54:36 +01:00
Adam Spiers 4efb438224
Update maintainership to reflect reality (#41)
Update maintainership to reflect reality
2019-06-27 13:27:12 +01:00
Adam Spiers a3e8103787
switch from unmaintained texi2html to makeinfo --html --no-split (#42)
switch from unmaintained texi2html to makeinfo --html --no-split
2019-06-26 14:08:48 +01:00
Adam Spiers 833abc4d93 Update maintainership to reflect reality
Troy hasn't been active on the project for many years.

https://lists.gnu.org/archive/html/stow-devel/2011-11/msg00009.html
2019-06-26 13:59:58 +01:00
Adam Spiers 22ca973d59 Switch to makeinfo --html --no-split for single-page HTML manual (#21)
Remove the dependency on the ancient and unmaintained texi2html, which
was difficult to get running on most distros other than openSUSE.

There are two more modern alternative approaches which can replace
this:

  - Use texi2any
  - Use makeinfo --html --no-split

The latter seems to be the standard way these days, so we switch to
that; however we keep Makefile rules for all three, and a phony
meta-rule 'manual-single-html-all' to allow quick comparison between
them.  Make tweaks accordingly to minimise the differences and improve
the output.

The rules for the older two approaches do not get triggered by
default.

Fixes #21: https://github.com/aspiers/stow/issues/21
2019-06-26 13:48:06 +01:00
Adam Spiers 9c402559d2 Include the preamble in online versions of the manual
This is more inline with the suggestion in the texinfo manual:

https://www.gnu.org/software/texinfo/manual/texinfo/html_node/_0040top-Command.html

and also the preamble is useful in all cases.
2019-06-26 13:46:37 +01:00
Adam Spiers b4cb6e775a Add Guillaume and myself to the list of @authors 2019-06-26 13:46:37 +01:00
Adam Spiers 6764788f71 remove trailing whitespace from lines 2019-06-26 13:25:53 +01:00
Adam Spiers 8b0733a8a0 add tools/get-version to MANIFEST
Forgot to do this, and it broke ./Build.PL distcheck.
2019-06-25 20:33:48 +01:00
Adam Spiers 66d511b07b Merge remote-tracking branch 'bricewge/fix-34' 2019-06-25 20:10:43 +01:00
Adam Spiers e647c53af1 Add some polish to the release process 2019-06-25 20:05:47 +01:00
Adam Spiers 42ed9ed942
Perform shell expansion on the contents of .stowrc (#40)
Perform shell expansion on the contents of .stowrc
2019-06-25 19:49:46 +01:00
Charles LeDoux dc42c34107 Add function to expand ~ in .stowrc files (#14)
Add a new expand_tilde() function that performs tilde expansion of
strings, and corresponding unit tests:

    * A ~ at the beginning of a path is expanded to the user's home
      directory.
    * Literal '~' can be provided with '\~'

Combine this with expand_environment() in a new expand_filepath()
function which applies all (both) required expansion functions to a
string, and use that in get_config_file_options() to expand .stowrc
options.

Add more tests to check that tilde expanded in correct places, i.e.:

    * expanded for --target and --dir
    * not expanded for --ignore, --defer, or --override

Update documentation on stowrc files according to this functionality
change.

Fixes #14: https://github.com/aspiers/stow/issues/14
2019-06-25 19:38:43 +01:00