Commit graph

361 commits

Author SHA1 Message Date
Adam Spiers
9ce10eb3b1 Remove dependencies on Hash::Merge and Clone::Choose
stow 2.3.0 added external runtime dependencies on Hash::Merge and
Clone::Choose. Historically stow hasn't had runtime dependencies other
than Perl itself, which is a useful property if you're managing the
installation of Perl using stow; the bootstrapping instructions in
stow's manual would need updating to describe how to install these two
modules (and any dependencies they have now or in the future) as well.

However, Hash::Merge is much more general than stow actually needs, so
replace the merge() call with a few lines of equivalent code -- this
avoids the external dependencies, and is clearer than the merge()
call.

Many thanks to Adam Sampson for this patch:

https://lists.gnu.org/archive/html/bug-stow/2019-06/msg00001.html
2019-06-29 13:42:19 +01:00
Adam Spiers
4a9121eec9 Bump version to 2.3.1 for development of next release 2019-06-29 13:40:55 +01:00
Adam Spiers
7eb1a0c57b
Maintainer tweaks (#59)
Maintainer tweaks
2019-06-29 13:03:11 +01:00
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