Reorganise more files into subdirectories and add CPAN support via Module::Build

This commit is contained in:
Adam Spiers 2011-11-21 13:59:36 +00:00
parent 382ad5c58d
commit 58625800ee
15 changed files with 369 additions and 95 deletions

58
Build.PL Normal file
View file

@ -0,0 +1,58 @@
use strict;
use warnings;
use Module::Build;
# These are required by the test suite.
use lib "t";
use lib "bin";
my $build = Module::Build->new(
module_name => 'Stow',
keywords => [ qw/stow symlink software package management install/ ],
license => 'gpl',
# Module::Build forces us to use v1.4 of the CPAN Meta Spec:
# https://rt.cpan.org/Ticket/Display.html?id=71502
# 'meta-spec' => {
# version => '2.0',
# url => 'http://search.cpan.org/perldoc?CPAN::Meta::Spec',
# },
meta_add => {
resources => {
license => 'http://www.gnu.org/licenses/gpl-2.0.html' ,
homepage => 'https://savannah.gnu.org/projects/stow',
# Module::Build forces us to use v1.4 of the CPAN Meta Spec:
# https://rt.cpan.org/Ticket/Display.html?id=71502
# bugtracker => {
# web => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Stow',
# mailto => 'mysqldiff@adamspiers.org',
# },
#bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Stow',
# Module::Build forces us to use v1.4 of the CPAN Meta Spec:
# https://rt.cpan.org/Ticket/Display.html?id=71502
# repository => {
# url => 'git:github.com/aspiers/stow.git',
# web => 'http://github.com/aspiers/stow',
# type => 'git',
# },
repository => 'http://github.com/aspiers/stow',
#repository => 'https://savannah.gnu.org/git/?group=stow',
},
},
requires => {
'perl' => '5.006',
'Carp' => 0,
'File::Slurp' => 0,
'IO::File' => 0,
},
script_files => [ 'bin/stow' ],
all_from => 'lib/Stow.pm',
configure_requires => {
'Module::Build' => 0,
},
);
$build->create_build_script();

46
MANIFEST Normal file
View file

@ -0,0 +1,46 @@
aclocal.m4
AUTHORS
automake/install-sh
automake/mdate-sh
automake/missing
automake/stamp-vti
bin/chkstow
bin/chkstow.in
bin/stow
bin/stow.in
Build.PL
ChangeLog
configure
configure.ac
COPYING
doc/stow.8
doc/stow.info
doc/stow.texi
doc/texinfo.tex
doc/version.texi
INSTALL
lib/Stow.pm
lib/Stow.pm.in
lib/Stow/Util.pm
Makefile.am
Makefile.in
MANIFEST This list of files
NEWS
README
t/chkstow.t
t/cleanup_invalid_links.t
t/defer.t
t/examples.t
t/find_stowed_path.t
t/foldable.t
t/join_paths.t
t/parent.t
t/stow.t
t/stow_contents.t
t/testutil.pm
t/unstow_contents.t
t/unstow_contents_orig.t
THANKS
TODO
META.yml
META.json

78
MANIFEST.SKIP Normal file
View file

@ -0,0 +1,78 @@
#!start included /usr/share/perl5/ExtUtils/MANIFEST.SKIP
# Avoid version control files.
\bRCS\b
\bCVS\b
\bSCCS\b
,v$
\B\.svn\b
\B\.git\b
\B\.gitignore\b
\b_darcs\b
\B\.cvsignore$
# Avoid VMS specific MakeMaker generated files
\bDescrip.MMS$
\bDESCRIP.MMS$
\bdescrip.mms$
# Avoid Makemaker generated and utility files.
\bMANIFEST\.bak
\bMakefile$
\bblib/
\bMakeMaker-\d
\bpm_to_blib\.ts$
\bpm_to_blib$
\bblibdirs\.ts$ # 6.18 through 6.25 generated this
# Avoid Module::Build generated and utility files.
\bBuild$
\b_build/
\bBuild.bat$
\bBuild.COM$
\bBUILD.COM$
\bbuild.com$
# Avoid temp and backup files.
~$
\.old$
\#$
\b\.#
\.bak$
\.tmp$
\.#
\.rej$
# Avoid OS-specific files/dirs
# Mac OSX metadata
\B\.DS_Store
# Mac OSX SMB mount metadata files
\B\._
# Avoid Devel::Cover files.
\bcover_db\b
#!end included /usr/share/perl5/ExtUtils/MANIFEST.SKIP
# Avoid configuration metadata file
^MYMETA\.
# Avoid Module::Build generated and utility files.
\bBuild$
\bBuild.bat$
\b_build
\bBuild.COM$
\bBUILD.COM$
\bbuild.com$
^MANIFEST\.SKIP
# Avoid archives of this distribution
\bStow-[\d\.\_]+
# Avoid autotools stuff
^autom4te\.cache/.+$
^config\.(log|status)$
^doc/\.dirstamp$
^doc/stamp-vti$
# Avoid test files
^t/(stow|target)/.+$

52
META.json Normal file
View file

@ -0,0 +1,52 @@
{
"abstract" : "manage the installation of multiple software packages",
"author" : [
"unknown"
],
"dynamic_config" : 1,
"generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112621",
"license" : [
"open_source"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
"version" : "2"
},
"name" : "Stow",
"prereqs" : {
"configure" : {
"requires" : {
"Module::Build" : 0
}
},
"runtime" : {
"requires" : {
"Carp" : 0,
"File::Slurp" : 0,
"IO::File" : 0,
"perl" : "5.006"
}
}
},
"provides" : {
"Stow" : {
"file" : "lib/Stow.pm",
"version" : "v2.0.2"
},
"Stow::Util" : {
"file" : "lib/Stow/Util.pm",
"version" : 0
}
},
"release_status" : "stable",
"resources" : {
"homepage" : "https://savannah.gnu.org/projects/stow",
"license" : [
"http://www.gnu.org/licenses/gpl-2.0.html"
],
"repository" : {
"url" : "http://github.com/aspiers/stow"
}
},
"version" : "v2.0.2"
}

31
META.yml Normal file
View file

@ -0,0 +1,31 @@
---
abstract: 'manage the installation of multiple software packages'
author:
- unknown
build_requires: {}
configure_requires:
Module::Build: 0
dynamic_config: 1
generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.112621'
license: open_source
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
name: Stow
provides:
Stow:
file: lib/Stow.pm
version: v2.0.2
Stow::Util:
file: lib/Stow/Util.pm
version: 0
requires:
Carp: 0
File::Slurp: 0
IO::File: 0
perl: 5.006
resources:
homepage: https://savannah.gnu.org/projects/stow
license: http://www.gnu.org/licenses/gpl-2.0.html
repository: http://github.com/aspiers/stow
version: v2.0.2

View file

@ -1,11 +1,14 @@
## Process this file with Automake to produce Makefile.in
bin_SCRIPTS = stow chkstow
info_TEXINFOS = stow.texi
dist_man_MANS = stow.8
dist_bin_SCRIPTS = bin/stow bin/chkstow
info_TEXINFOS = doc/stow.texi
TEXINFO_TEX = doc/texinfo.tex
dist_man_MANS = doc/stow.8
dist_doc_DATA = README
pmdir = $(libdir)/perl5
pm_DATA = lib/Stow.pm lib/Stow/Util.pm
dist_pm_DATA = lib/Stow.pm
pmstowdir = $(pmdir)/Stow
dist_pmstow_DATA = lib/Stow/Util.pm
TESTS_ENVIRONMENT=$(PERL) -I $(top_srcdir)
TESTS = \
@ -23,8 +26,13 @@ TESTS = \
t/chkstow.t
AUTOMAKE_OPTIONS = dist-shar
EXTRA_DIST = $(TESTS) t/testutil.pm
CLEANFILES = $(bin_SCRIPTS)
CPAN_FILES = MANIFEST MANIFEST.SKIP Build.PL META.yml META.json
EXTRA_DIST = \
bin/stow.in bin/chkstow.in lib/Stow.pm.in \
$(TESTS) t/testutil.pm \
$(TEXINFO_TEX) \
$(CPAN_FILES)
CLEANFILES = $(bin_SCRIPTS) $(dist_pm_DATA)
# clean up files left behind by test suite
clean-local:
@ -34,11 +42,11 @@ clean-local:
edit = sed -e 's|[@]PERL[@]|$(PERL)|g' \
-e 's|[@]VERSION[@]|$(VERSION)|g'
stow: stow.in Makefile
bin/stow: bin/stow.in Makefile
$(edit) < $< > $@
chmod +x $@
chkstow: chkstow.in Makefile
bin/chkstow: bin/chkstow.in Makefile
$(edit) < $< > $@
chmod +x $@
@ -47,15 +55,15 @@ lib/Stow.pm: lib/Stow.pm.in
# The rules for manual.html and manual.texi are only used by
# the developer
manual.html: manual.texi
doc/manual.html: doc/manual.texi
-rm -f $@
texi2html -expandinfo -menu -monolithic -verbose $<
manual.texi: stow.texi
doc/manual.texi: doc/stow.texi
-rm -f $@
cp $< $@
MODULES = lib/Stow.pm lib/Stow/Util.pm
test: stow chkstow $(MODULES)
test: bin/stow bin/chkstow $(MODULES)
perl -MTest::Harness -Ilib -It -Ibin -e 'runtests(@ARGV)' t/*.t

View file

@ -2,6 +2,7 @@ dnl Process this file with Autoconf to produce configure dnl
AC_INIT([stow], [2.0.2], [bug-stow@gnu.org])
AC_PREREQ([2.61])
AC_CONFIG_AUX_DIR([automake])
AM_INIT_AUTOMAKE([-Wall -Werror])
AC_PROG_INSTALL

View file

View file

@ -460,7 +460,7 @@ tree-folding symlink.
@cindex unfolding trees
The time often comes when a tree-folding symlink has to be undone
because another package uses one or more of the folded subdirectories in
its installation image. This operation is called @dfn{splitting open} or
its installation image. This operation is called @dfn{splitting open} or
@dfn{unfolding} a folded tree. It involves removing the original symlink from
the target tree, creating a true directory in its place, and then populating the
new directory with symlinks to the newly-installed package @emph{and} to
@ -1020,8 +1020,8 @@ the output from the command (preferably verbose output, obtained by
adding @samp{--verbose=3} to the Stow command line).
@end itemize
If you are really keen, consider developing a minimal test case and creating a
new test. See the @file{t/} for lots of examples.
If you are really keen, consider developing a minimal test case and
creating a new test. See the @file{t/} for lots of examples.
Before reporting a bug, please read the manual carefully, especially
@ref{Known Bugs}, to see whether you're encountering

View file

@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
\def\texinfoversion{2006-10-04.17}
\def\texinfoversion{2011-11-21.13}
%
% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free