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 ## Process this file with Automake to produce Makefile.in
bin_SCRIPTS = stow chkstow dist_bin_SCRIPTS = bin/stow bin/chkstow
info_TEXINFOS = stow.texi info_TEXINFOS = doc/stow.texi
dist_man_MANS = stow.8 TEXINFO_TEX = doc/texinfo.tex
dist_man_MANS = doc/stow.8
dist_doc_DATA = README dist_doc_DATA = README
pmdir = $(libdir)/perl5 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_ENVIRONMENT=$(PERL) -I $(top_srcdir)
TESTS = \ TESTS = \
@ -23,8 +26,13 @@ TESTS = \
t/chkstow.t t/chkstow.t
AUTOMAKE_OPTIONS = dist-shar AUTOMAKE_OPTIONS = dist-shar
EXTRA_DIST = $(TESTS) t/testutil.pm CPAN_FILES = MANIFEST MANIFEST.SKIP Build.PL META.yml META.json
CLEANFILES = $(bin_SCRIPTS) 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 up files left behind by test suite
clean-local: clean-local:
@ -34,11 +42,11 @@ clean-local:
edit = sed -e 's|[@]PERL[@]|$(PERL)|g' \ edit = sed -e 's|[@]PERL[@]|$(PERL)|g' \
-e 's|[@]VERSION[@]|$(VERSION)|g' -e 's|[@]VERSION[@]|$(VERSION)|g'
stow: stow.in Makefile bin/stow: bin/stow.in Makefile
$(edit) < $< > $@ $(edit) < $< > $@
chmod +x $@ chmod +x $@
chkstow: chkstow.in Makefile bin/chkstow: bin/chkstow.in Makefile
$(edit) < $< > $@ $(edit) < $< > $@
chmod +x $@ 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 rules for manual.html and manual.texi are only used by
# the developer # the developer
manual.html: manual.texi doc/manual.html: doc/manual.texi
-rm -f $@ -rm -f $@
texi2html -expandinfo -menu -monolithic -verbose $< texi2html -expandinfo -menu -monolithic -verbose $<
manual.texi: stow.texi doc/manual.texi: doc/stow.texi
-rm -f $@ -rm -f $@
cp $< $@ cp $< $@
MODULES = lib/Stow.pm lib/Stow/Util.pm 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 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_INIT([stow], [2.0.2], [bug-stow@gnu.org])
AC_PREREQ([2.61]) AC_PREREQ([2.61])
AC_CONFIG_AUX_DIR([automake])
AM_INIT_AUTOMAKE([-Wall -Werror]) AM_INIT_AUTOMAKE([-Wall -Werror])
AC_PROG_INSTALL AC_PROG_INSTALL

View file

View file

@ -460,7 +460,7 @@ tree-folding symlink.
@cindex unfolding trees @cindex unfolding trees
The time often comes when a tree-folding symlink has to be undone 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 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 @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 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 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). adding @samp{--verbose=3} to the Stow command line).
@end itemize @end itemize
If you are really keen, consider developing a minimal test case and creating a If you are really keen, consider developing a minimal test case and
new test. See the @file{t/} for lots of examples. creating a new test. See the @file{t/} for lots of examples.
Before reporting a bug, please read the manual carefully, especially Before reporting a bug, please read the manual carefully, especially
@ref{Known Bugs}, to see whether you're encountering @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. % Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi \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, % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free