Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Installing Template::Toolkit on Windows

by davies (Vicar)
on Feb 22, 2013 at 13:44 UTC ( #1020161=perlmeditation: print w/ replies, xml ) Need Help??

This is needed by BugZilla and, I believe, other applications. Unfortunately, I've never been able to install it without a fight, one of which I documented in PPM has module but BugZilla says it's missing, and the goalposts seem to me to be highly mobile. I'm writing this in the hope that it will help people who are in the same position as I am and inspire those with the knowledge, power and tuits to make life a little easier for us lesser mortals. If you already know all these things, I will be wasting your time, but I had to do a lot of studying to work them out for myself. This is the short version.

The BugZilla installation instructions at https://wiki.mozilla.org/Bugzilla:Win32Install make the process look easy. The only route suggested is the command line as follows:

C:\>ppm install Template-Toolkit Downloading Template-Toolkit-2.22...done Unpacking Template-Toolkit-2.22...done Generating HTML for Template-Toolkit-2.22...done Updating files in site area...done 140 files installed
What could possibly go wrong? Well, it appears that ActiveState no longer serves TT, at least for 64 bit 5.16.2. At this point, I went off on a useless search. Google made it appear that there would be something useful at http://www.template-toolkit.org/. From here I went to the downloads page (http://www.template-toolkit.org/download/index.html) which talks about BugZilla. The links to ppm packages seemed to be exactly what I wanted. At this stage I was getting really optimistic, until I clicked on the link for the ppm download for TT. If you want to see a 404 error, this is the place to go (http://landfill.bugzilla.org/ppm/Template-Toolkit.ppd). As I said, the goalposts do seem to move, so I entertain hopes that this may change to something other than a dead end.

The next thing I tried was CPAN. While I was ultimately successful, I approached it with great trepidation. My only previous attempt (documented at Raspberry Pi: some sort of dependency hell involving YAML) had not been a success, and the helpful advice to use something else still rang in my ears. I didn't think that AS would have written ppm if CPAN worked better all along. It didn't start well, either. It tried to install "dmake" and the MinGW c compiler (which I thought I had installed anyway with git) and failed. The process threatened "This may take a few minutes", but I have a fast, powerful computer that was running nothing else, as well as a fast internet link, so it only took about 20 minutes. Anyway, I have no idea whether these things are necessary nor, in the case of "dmake", what its purpose is, so I decided to keep trying.

CPAN's help (brought up by "h"), is more of the form of a memory jogger than something to get the beginner started. It assumes rather a lot of knowledge, especially about things like "make". I believe that dmake and nmake (of which more later) are Windows variants of make, but if someone corrects me they are more likely to be right than I am. But it suggests install so, following ppm, I tried install Template-Toolkit. This complained about being unable to find the package, but suggested using i. This returns a list of possibilities, but there is little or nothing to indicate what to do next. I don't know if it is what I want, but the incantation that seemed to give me progress was install ABW/Template-Toolkit-2.24.tar.gz.

The process started with the reporting of so many files that I couldn't scroll back to the start as the buffer (set to the maximum Windows will allow) wasn't large enough. It then complained about the lack of a c compiler and make utility and started - apparently - the same process that had taken 20 minutes to fail earlier. Another 20 minutes later, I was pleasantly surprised to see a report of success. I was also told Please use the `dmake` program to run commands from a Makefile! without any clue as to where to find dmake, what a makefile is or why I might want to run commands from one.

I then got a lot of text about Template::Stash::XS, followed by a pair of options where I used the defaults:

Do you want to build the XS Stash module? [y] y Do you want to use the XS Stash by default? [y] y

I suspect that these should not be chosen unless a c compiler is available, but as indicated earlier, I'm not absolutely sure what constitutes "available". Anyway, this produced some encouraging messages until a range of colours that I won't attempt to reproduce reported (I've tried to improve the wrapping):

Configuration complete. You should now run 'C:\Perl\site\bin\dmake.ex +e', 'C:\Perl\site\bin\dmake.exe test' and then 'C:\Perl\site\bin\dmake.exe install'. See the README file f +or further information. 'nmake' is not recognized as an internal or external command, operable + program or batch file. ABW/Template-Toolkit-2.24.tar.gz nmake -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible Failed during this command: ABW/Template-Toolkit-2.24.tar.gz : make NO

First, the "dmake" commands have to be run in a way I didn't expect which I will explain in the next paragraph. Second, "the README" file is either missing or lost among all the others that exist on my machine. Third, the mention of "nmake" seems to be a total red herring. These can prove a vast time sink and certainly got me nowhere. I made further progress only when I gave up and tried to install again from scratch.

This failed with the message Has already been unwrapped into directory C:\Perl\cpan\build\Template-Toolkit-2.24-RFIUGI. However, this gives an important clue. Leaving the CPAN shell, I changed to this directory and then tried issuing the three "dmake" commands suggested earlier.

Bugzilla's checksetup routine now indicates that TT is present. Only 9 more modules to go.

Regards,

John Davies

Comment on Installing Template::Toolkit on Windows
Select or Download Code
Re: Installing Template::Toolkit on Windows
by afoken (Parson) on Feb 22, 2013 at 14:24 UTC

    Smells like ActiveState's Perl. You essentially have two options other then messing around with a wild mix of PPMs provided by ActiveState and others and modules from CPAN:

    • Install MinGW via PPM, this is said to give you a working C compiler
    • Get rid of ActiveState's Perl and use Strawberry Perl, that comes preconfigured with a working C compiler, linker etc., and behaves as much as a Perl on a Unix system as possible.

    I've switched from AS to SP long ago, and never regretted it. I also (ab-)use SP to just get a free, working C compiler and linker for Windows.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
Re: Installing Template::Toolkit on Windows (ghost story)
by Anonymous Monk on Feb 22, 2013 at 14:57 UTC

      Your first URL is one that I looked at. I rejected it because it says:

      You must understand that these installers are provided for testing purposes only and are only available for older versions of Bugzilla. These older versions are vulnerable to several security issues and so shouldn't be used for production.

      Regards,

      John Davies

        apache friends - xampp for windows

        Apache 2.4.3 MySQL 5.5.27 PHP 5.4.7 phpMyAdmin 3.5.2.2 FileZilla FTP Server 0.9.41 Tomcat 7.0.30 (with mod_proxy_ajp as connector) Strawberry Perl 5.16.1.1 Portable XAMPP Control Panel 3.1.0 (from hackattack142)
Re: Installing Template::Toolkit on Windows
by sundialsvc4 (Monsignor) on Feb 27, 2013 at 13:50 UTC

    I’ll second the motion that Strawberry is probably a better way to go on Windows, if you need to install anything other than through AS’s sometimes dated packages.   The experience is roughly akin to trying to maintain a Perl setup on a Linux box strictly through the use of a distro’s packaging system.   It works, to a degree, but you outgrow it in due time, and when you do, there’s nowhere to grow.   AS had a wonderful concept and did it reasonably well, but then you start bumping into its margins.

      Iíll second the motion that

      you sir are a troll

      The last time I tried to get Strawberry working, it didn't play nicely with Win32::OLE and Excel. I'd be delighted to hear that all such issues are closed, but the BugZilla instructions recommend AS, so I prefer situations in which I can point would-be helpers to the instructions I am trying to follow rather than making up my own as I go along.

      Regards,

      John Davies

        Now that is downright interesting, because I certainly have never found that to be the case.   I use Strawberry quite a bit in connection specifically to Excel (and Outlook), specifically using OLE ... (so much for being “a troll”) ... and have never encountered a lick of trouble with it.

        The key difference, if there is any (and I doubt), is that, yes, you do need to have a compiler on-hand to do a lot of these things in the Windows environment ... which Strawberry takes care of and which AS (I do believe by design) generally seeks to avoid [the need for].   AS seems to strive to do things “the Windows way,” if you will, whereas Strawberry appears in like manner to do things much closer to the way that the same things are done in Linux/Unix.

        Certainly, it has never been my experience ... and (sorry, “troll-UK,” but I do have “experience” here) ... that Strawberry was in any way “problematic” with regards to using OLE.   Therefore, I have no clue where that recommendation comes from.   Perl technology worked splendidly, as did Strawberry, as did OLE.

Re: Installing Template::Toolkit on Windows
by BrowserUk (Pope) on Feb 27, 2013 at 17:00 UTC

    Hm. I issued the following sequence of commands into a command window:

    cd \perl64\packages wget "http://search.cpan.org/CPAN/authors/id/A/AB/ABW/Template-Toolkit +-2.24.tar.gz" gunzip Template-Toolkit-2.24.tar.gz tar -xvf Template-Toolkit-2.24.tar cd Template-Toolkit-2.24 makefile to build the XS Stash module? [y] y to use the XS Stash by default? [y] y nmake nmake test ... All tests successful. Files=89, Tests=2762, 26 wallclock secs ( 0.70 usr + 0.23 sys = 0.94 + CPU) Result: PASS C:\PROGRA~2\MICROS~1.0\VC\Bin\amd64\nmake.exe test -nologo 'No tests defined for Template::Stash::XS extension.' cd ..

    The results after less than 2 minutes was T::T downloaded, unpacked, compiled, tested and ready to install.

    ASPerl 5.10.1 & MSVC.

    Full console log of the above:

    C:\perl64\packages>wget "http://search.cpan.org/CPAN/authors/id/A/AB/A +BW/Template-Toolkit-2.24.tar.gz" --2013-02-27 16:49:44-- http://search.cpan.org/CPAN/authors/id/A/AB/A +BW/Template-Toolkit-2.24.tar.gz Resolving search.cpan.org... 199.15.176.161 Connecting to search.cpan.org|199.15.176.161|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://www.cpan.org/authors/id/A/AB/ABW/Template-Toolkit-2.2 +4.tar.gz [following] --2013-02-27 16:49:44-- http://www.cpan.org/authors/id/A/AB/ABW/Templ +ate-Toolkit-2.24.tar.gz Resolving www.cpan.org... 212.117.177.118 Connecting to www.cpan.org|212.117.177.118|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 499410 (488K) [application/x-gzip] Saving to: `Template-Toolkit-2.24.tar.gz' 100%[================================================================= +================================================== 2013-02-27 16:49:45 (1.27 MB/s) - `Template-Toolkit-2.24.tar.gz' saved + [499410/499410] C:\perl64\packages>gunzip Template-Toolkit-2.24.tar.gz C:\perl64\packages>tar -xvf Template-Toolkit-2.24.tar Template-Toolkit-2.24/ Template-Toolkit-2.24/bin/ Template-Toolkit-2.24/Changes Template-Toolkit-2.24/HACKING Template-Toolkit-2.24/images/ Template-Toolkit-2.24/INSTALL Template-Toolkit-2.24/lib/ Template-Toolkit-2.24/Makefile.PL Template-Toolkit-2.24/MANIFEST Template-Toolkit-2.24/META.json Template-Toolkit-2.24/META.yml Template-Toolkit-2.24/parser/ Template-Toolkit-2.24/README Template-Toolkit-2.24/t/ Template-Toolkit-2.24/TODO Template-Toolkit-2.24/xs/ Template-Toolkit-2.24/xs/Makefile.PL Template-Toolkit-2.24/xs/MANIFEST Template-Toolkit-2.24/xs/ppport.h Template-Toolkit-2.24/xs/README Template-Toolkit-2.24/xs/Stash.xs Template-Toolkit-2.24/t/args.t Template-Toolkit-2.24/t/assert.t Template-Toolkit-2.24/t/base.t Template-Toolkit-2.24/t/binop.t Template-Toolkit-2.24/t/block.t Template-Toolkit-2.24/t/blocks.t Template-Toolkit-2.24/t/capture.t Template-Toolkit-2.24/t/case.t Template-Toolkit-2.24/t/cgi.t Template-Toolkit-2.24/t/chomp.t Template-Toolkit-2.24/t/compile1.t Template-Toolkit-2.24/t/compile2.t Template-Toolkit-2.24/t/compile3.t Template-Toolkit-2.24/t/compile4.t Template-Toolkit-2.24/t/compile5.t Template-Toolkit-2.24/t/config.t Template-Toolkit-2.24/t/constants.t Template-Toolkit-2.24/t/context.t Template-Toolkit-2.24/t/datafile.t Template-Toolkit-2.24/t/date.t Template-Toolkit-2.24/t/debug.t Template-Toolkit-2.24/t/directive.t Template-Toolkit-2.24/t/directry.t Template-Toolkit-2.24/t/document.t Template-Toolkit-2.24/t/dumper.t Template-Toolkit-2.24/t/error.t Template-Toolkit-2.24/t/evalperl.t Template-Toolkit-2.24/t/exception.t Template-Toolkit-2.24/t/factory.t Template-Toolkit-2.24/t/file.t Template-Toolkit-2.24/t/fileline.t Template-Toolkit-2.24/t/filter.t Template-Toolkit-2.24/t/foreach.t Template-Toolkit-2.24/t/format.t Template-Toolkit-2.24/t/html.t Template-Toolkit-2.24/t/image.t Template-Toolkit-2.24/t/include.t Template-Toolkit-2.24/t/iterator.t Template-Toolkit-2.24/t/leak.t Template-Toolkit-2.24/t/lib/ Template-Toolkit-2.24/t/list.t Template-Toolkit-2.24/t/macro.t Template-Toolkit-2.24/t/math.t Template-Toolkit-2.24/t/object.t Template-Toolkit-2.24/t/output.t Template-Toolkit-2.24/t/parser.t Template-Toolkit-2.24/t/plugins.t Template-Toolkit-2.24/t/plusfile.t Template-Toolkit-2.24/t/pod.t Template-Toolkit-2.24/t/prefix.t Template-Toolkit-2.24/t/proc.t Template-Toolkit-2.24/t/process.t Template-Toolkit-2.24/t/provider.t Template-Toolkit-2.24/t/README Template-Toolkit-2.24/t/ref.t Template-Toolkit-2.24/t/scalar.t Template-Toolkit-2.24/t/service.t Template-Toolkit-2.24/t/skel.t Template-Toolkit-2.24/t/stash-xs-unicode.t Template-Toolkit-2.24/t/stash-xs.t Template-Toolkit-2.24/t/stash.t Template-Toolkit-2.24/t/stashc.t Template-Toolkit-2.24/t/stop.t Template-Toolkit-2.24/t/strcat.t Template-Toolkit-2.24/t/strict.t Template-Toolkit-2.24/t/string.t Template-Toolkit-2.24/t/switch.t Template-Toolkit-2.24/t/table.t Template-Toolkit-2.24/t/tags.t Template-Toolkit-2.24/t/template.t Template-Toolkit-2.24/t/test/ Template-Toolkit-2.24/t/text.t Template-Toolkit-2.24/t/throw.t Template-Toolkit-2.24/t/tiedhash.t Template-Toolkit-2.24/t/try.t Template-Toolkit-2.24/t/unicode.t Template-Toolkit-2.24/t/url.t Template-Toolkit-2.24/t/url2.t Template-Toolkit-2.24/t/vars.t Template-Toolkit-2.24/t/varsv1.t Template-Toolkit-2.24/t/view.t Template-Toolkit-2.24/t/vmethods/ Template-Toolkit-2.24/t/while.t Template-Toolkit-2.24/t/wrap.t Template-Toolkit-2.24/t/wrapper.t Template-Toolkit-2.24/t/zz-pmv.t Template-Toolkit-2.24/t/zz-pod-coverage.t Template-Toolkit-2.24/t/zz-pod-kwalitee.t Template-Toolkit-2.24/t/zz-stash-xs-leak.t Template-Toolkit-2.24/t/vmethods/hash.t Template-Toolkit-2.24/t/vmethods/list.t Template-Toolkit-2.24/t/vmethods/replace.t Template-Toolkit-2.24/t/vmethods/text.t Template-Toolkit-2.24/t/test/dir/ Template-Toolkit-2.24/t/test/lib/ Template-Toolkit-2.24/t/test/plugin/ Template-Toolkit-2.24/t/test/pod/ Template-Toolkit-2.24/t/test/src/ Template-Toolkit-2.24/t/test/tmp/ Template-Toolkit-2.24/t/test/tmp/README Template-Toolkit-2.24/t/test/src/bar/ Template-Toolkit-2.24/t/test/src/baz Template-Toolkit-2.24/t/test/src/benchmark Template-Toolkit-2.24/t/test/src/blam Template-Toolkit-2.24/t/test/src/complex Template-Toolkit-2.24/t/test/src/divisionbyzero Template-Toolkit-2.24/t/test/src/evalperl Template-Toolkit-2.24/t/test/src/foo Template-Toolkit-2.24/t/test/src/foobar Template-Toolkit-2.24/t/test/src/golf Template-Toolkit-2.24/t/test/src/leak1 Template-Toolkit-2.24/t/test/src/leak2 Template-Toolkit-2.24/t/test/src/metadata Template-Toolkit-2.24/t/test/src/mywrap Template-Toolkit-2.24/t/test/src/README Template-Toolkit-2.24/t/test/src/recurse Template-Toolkit-2.24/t/test/src/bar/baz Template-Toolkit-2.24/t/test/src/bar/baz.txt Template-Toolkit-2.24/t/test/pod/test1.pod Template-Toolkit-2.24/t/test/plugin/MyPlugs/ Template-Toolkit-2.24/t/test/plugin/MyPlugs/Bar.pm Template-Toolkit-2.24/t/test/plugin/MyPlugs/Baz.pm Template-Toolkit-2.24/t/test/plugin/MyPlugs/Foo.pm Template-Toolkit-2.24/t/test/lib/after Template-Toolkit-2.24/t/test/lib/badrawperl Template-Toolkit-2.24/t/test/lib/barfed Template-Toolkit-2.24/t/test/lib/before Template-Toolkit-2.24/t/test/lib/blockdef Template-Toolkit-2.24/t/test/lib/chomp Template-Toolkit-2.24/t/test/lib/config Template-Toolkit-2.24/t/test/lib/content Template-Toolkit-2.24/t/test/lib/default Template-Toolkit-2.24/t/test/lib/dos_newlines Template-Toolkit-2.24/t/test/lib/error Template-Toolkit-2.24/t/test/lib/footer Template-Toolkit-2.24/t/test/lib/header Template-Toolkit-2.24/t/test/lib/header.tt2 Template-Toolkit-2.24/t/test/lib/incblock Template-Toolkit-2.24/t/test/lib/inner Template-Toolkit-2.24/t/test/lib/menu Template-Toolkit-2.24/t/test/lib/one/ Template-Toolkit-2.24/t/test/lib/outer Template-Toolkit-2.24/t/test/lib/process Template-Toolkit-2.24/t/test/lib/README Template-Toolkit-2.24/t/test/lib/simple2 Template-Toolkit-2.24/t/test/lib/trimme Template-Toolkit-2.24/t/test/lib/two/ Template-Toolkit-2.24/t/test/lib/udata1 Template-Toolkit-2.24/t/test/lib/udata2 Template-Toolkit-2.24/t/test/lib/warning Template-Toolkit-2.24/t/test/lib/two/bar Template-Toolkit-2.24/t/test/lib/two/foo Template-Toolkit-2.24/t/test/lib/one/foo Template-Toolkit-2.24/t/test/dir/file1 Template-Toolkit-2.24/t/test/dir/file2 Template-Toolkit-2.24/t/test/dir/sub_one/ Template-Toolkit-2.24/t/test/dir/sub_two/ Template-Toolkit-2.24/t/test/dir/xyzfile Template-Toolkit-2.24/t/test/dir/sub_two/waz.html Template-Toolkit-2.24/t/test/dir/sub_two/wiz.html Template-Toolkit-2.24/t/test/dir/sub_one/bar Template-Toolkit-2.24/t/test/dir/sub_one/foo Template-Toolkit-2.24/t/lib/Template/ Template-Toolkit-2.24/t/lib/Template/Plugin/ Template-Toolkit-2.24/t/lib/Template/Plugin/ProcBar.pm Template-Toolkit-2.24/t/lib/Template/Plugin/ProcFoo.pm Template-Toolkit-2.24/t/lib/Template/Plugin/Simple.pm Template-Toolkit-2.24/parser/Grammar.pm.skel Template-Toolkit-2.24/parser/Parser.yp Template-Toolkit-2.24/parser/README Template-Toolkit-2.24/parser/yc Template-Toolkit-2.24/lib/Template/ Template-Toolkit-2.24/lib/Template.pm Template-Toolkit-2.24/lib/Template/Base.pm Template-Toolkit-2.24/lib/Template/Config.pm Template-Toolkit-2.24/lib/Template/Constants.pm Template-Toolkit-2.24/lib/Template/Context.pm Template-Toolkit-2.24/lib/Template/Directive.pm Template-Toolkit-2.24/lib/Template/Document.pm Template-Toolkit-2.24/lib/Template/Exception.pm Template-Toolkit-2.24/lib/Template/FAQ.pod Template-Toolkit-2.24/lib/Template/Filters.pm Template-Toolkit-2.24/lib/Template/Grammar.pm Template-Toolkit-2.24/lib/Template/Iterator.pm Template-Toolkit-2.24/lib/Template/Manual/ Template-Toolkit-2.24/lib/Template/Manual.pod Template-Toolkit-2.24/lib/Template/Modules.pod Template-Toolkit-2.24/lib/Template/Namespace/ Template-Toolkit-2.24/lib/Template/Parser.pm Template-Toolkit-2.24/lib/Template/Plugin/ Template-Toolkit-2.24/lib/Template/Plugin.pm Template-Toolkit-2.24/lib/Template/Plugins.pm Template-Toolkit-2.24/lib/Template/Provider.pm Template-Toolkit-2.24/lib/Template/Service.pm Template-Toolkit-2.24/lib/Template/Stash/ Template-Toolkit-2.24/lib/Template/Stash.pm Template-Toolkit-2.24/lib/Template/Test.pm Template-Toolkit-2.24/lib/Template/Toolkit.pod Template-Toolkit-2.24/lib/Template/Tools/ Template-Toolkit-2.24/lib/Template/Tools.pod Template-Toolkit-2.24/lib/Template/Tutorial/ Template-Toolkit-2.24/lib/Template/Tutorial.pod Template-Toolkit-2.24/lib/Template/View.pm Template-Toolkit-2.24/lib/Template/VMethods.pm Template-Toolkit-2.24/lib/Template/Tutorial/Datafile.pod Template-Toolkit-2.24/lib/Template/Tutorial/Web.pod Template-Toolkit-2.24/lib/Template/Tools/tpage.pod Template-Toolkit-2.24/lib/Template/Tools/ttree.pod Template-Toolkit-2.24/lib/Template/Stash/Context.pm Template-Toolkit-2.24/lib/Template/Stash/XS.pm Template-Toolkit-2.24/lib/Template/Plugin/Assert.pm Template-Toolkit-2.24/lib/Template/Plugin/CGI.pm Template-Toolkit-2.24/lib/Template/Plugin/Datafile.pm Template-Toolkit-2.24/lib/Template/Plugin/Date.pm Template-Toolkit-2.24/lib/Template/Plugin/Directory.pm Template-Toolkit-2.24/lib/Template/Plugin/Dumper.pm Template-Toolkit-2.24/lib/Template/Plugin/File.pm Template-Toolkit-2.24/lib/Template/Plugin/Filter.pm Template-Toolkit-2.24/lib/Template/Plugin/Format.pm Template-Toolkit-2.24/lib/Template/Plugin/HTML.pm Template-Toolkit-2.24/lib/Template/Plugin/Image.pm Template-Toolkit-2.24/lib/Template/Plugin/Iterator.pm Template-Toolkit-2.24/lib/Template/Plugin/Math.pm Template-Toolkit-2.24/lib/Template/Plugin/Pod.pm Template-Toolkit-2.24/lib/Template/Plugin/Procedural.pm Template-Toolkit-2.24/lib/Template/Plugin/Scalar.pm Template-Toolkit-2.24/lib/Template/Plugin/String.pm Template-Toolkit-2.24/lib/Template/Plugin/Table.pm Template-Toolkit-2.24/lib/Template/Plugin/URL.pm Template-Toolkit-2.24/lib/Template/Plugin/View.pm Template-Toolkit-2.24/lib/Template/Plugin/Wrap.pm Template-Toolkit-2.24/lib/Template/Namespace/Constants.pm Template-Toolkit-2.24/lib/Template/Manual/Config.pod Template-Toolkit-2.24/lib/Template/Manual/Credits.pod Template-Toolkit-2.24/lib/Template/Manual/Directives.pod Template-Toolkit-2.24/lib/Template/Manual/Filters.pod Template-Toolkit-2.24/lib/Template/Manual/Internals.pod Template-Toolkit-2.24/lib/Template/Manual/Intro.pod Template-Toolkit-2.24/lib/Template/Manual/Plugins.pod Template-Toolkit-2.24/lib/Template/Manual/Syntax.pod Template-Toolkit-2.24/lib/Template/Manual/Variables.pod Template-Toolkit-2.24/lib/Template/Manual/Views.pod Template-Toolkit-2.24/lib/Template/Manual/VMethods.pod Template-Toolkit-2.24/images/tt2power.gif Template-Toolkit-2.24/images/ttdotorg.gif Template-Toolkit-2.24/bin/README Template-Toolkit-2.24/bin/tpage Template-Toolkit-2.24/bin/tt-bench.pl Template-Toolkit-2.24/bin/tt2inst Template-Toolkit-2.24/bin/ttree C:\perl64\packages>cd Template-Toolkit-2.24 C:\perl64\packages\Template-Toolkit-2.24>makefile Template Toolkit Version 2.24 ============================= Using Win32 defaults. Run 'perl Makefile.PL TT_HELP' for a summary of options. The Template Toolkit requires that the AppConfig module (version 1.56 or later) first be installed. This is used by the 'ttree' program for reading command line options and configuration files. It is available from CPAN: http://www.cpan.org/authors/Andy_Wardley/ Template::Stash::XS ------------------- The Template::Stash module is a core part of the Template Toolkit, implementing the magic for accessing data using the dot notation. There is a high speed version, Template::Stash::XS, written in C. This makes the Template Toolkit run about twice as fast as when using the regular Template::Stash written in Perl. If you've got a C compiler on your system then you can elect to have the XS Stash built. You can also specify that you want to use the XS Stash by default. Note that as of version 2.15 the XS Stash now supports access to tied hashes and arrays. See 'perldoc Template::Config' for further details. Do you want to build the XS Stash module? [y] y Do you want to use the XS Stash by default? [y] y Checking if your kit is complete... Looks good Warning: prerequisite AppConfig 1.56 not found. Checking if your kit is complete... Looks good Writing Makefile for Template::Stash::XS Writing Makefile for Template Configuration complete. You should now run 'C:\PROGRA~2\MICROS~1.0\VC +\Bin\amd64\nmake.exe', 'C:\PROGRA~2\MICROS~1.0\VC\ then 'C:\PROGRA~2\MICROS~1.0\VC\Bin\amd64\nmake.exe install'. See th +e README file for further information. C:\perl64\packages\Template-Toolkit-2.24>nmake Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. cp lib/Template/Stash/XS.pm blib\lib\Template\Stash\XS.pm cp lib/Template/Manual.pod blib\lib\Template\Manual.pod cp lib/Template/Manual/Directives.pod blib\lib\Template\Manual\Directi +ves.pod cp lib/Template/Manual/Views.pod blib\lib\Template\Manual\Views.pod cp lib/Template/Plugin/HTML.pm blib\lib\Template\Plugin\HTML.pm cp lib/Template/Stash.pm blib\lib\Template\Stash.pm cp lib/Template/Context.pm blib\lib\Template\Context.pm cp lib/Template/Manual/Intro.pod blib\lib\Template\Manual\Intro.pod cp lib/Template/Modules.pod blib\lib\Template\Modules.pod cp lib/Template/Manual/Credits.pod blib\lib\Template\Manual\Credits.po +d cp lib/Template/View.pm blib\lib\Template\View.pm cp lib/Template/Plugin/Procedural.pm blib\lib\Template\Plugin\Procedur +al.pm cp lib/Template/Plugin/Iterator.pm blib\lib\Template\Plugin\Iterator.p +m cp lib/Template/Tools/ttree.pod blib\lib\Template\Tools\ttree.pod cp lib/Template/Toolkit.pod blib\lib\Template\Toolkit.pod cp lib/Template/Plugin/Scalar.pm blib\lib\Template\Plugin\Scalar.pm cp lib/Template/Namespace/Constants.pm blib\lib\Template\Namespace\Con +stants.pm cp lib/Template/Tutorial/Web.pod blib\lib\Template\Tutorial\Web.pod cp lib/Template/Iterator.pm blib\lib\Template\Iterator.pm cp lib/Template/Plugin/String.pm blib\lib\Template\Plugin\String.pm cp lib/Template/Plugin/Format.pm blib\lib\Template\Plugin\Format.pm cp lib/Template/Provider.pm blib\lib\Template\Provider.pm cp lib/Template/Plugin/View.pm blib\lib\Template\Plugin\View.pm cp lib/Template/Stash/Context.pm blib\lib\Template\Stash\Context.pm cp lib/Template/Plugin/Filter.pm blib\lib\Template\Plugin\Filter.pm cp lib/Template/Manual/Plugins.pod blib\lib\Template\Manual\Plugins.po +d cp lib/Template/Plugin/Dumper.pm blib\lib\Template\Plugin\Dumper.pm cp lib/Template/Plugin/Datafile.pm blib\lib\Template\Plugin\Datafile.p +m cp lib/Template/Directive.pm blib\lib\Template\Directive.pm cp lib/Template/Plugin/Date.pm blib\lib\Template\Plugin\Date.pm cp lib/Template/Manual/VMethods.pod blib\lib\Template\Manual\VMethods. +pod cp lib/Template/Plugin/File.pm blib\lib\Template\Plugin\File.pm cp lib/Template/Constants.pm blib\lib\Template\Constants.pm cp lib/Template/Plugin/Image.pm blib\lib\Template\Plugin\Image.pm cp lib/Template/Plugin/Assert.pm blib\lib\Template\Plugin\Assert.pm cp lib/Template/Manual/Config.pod blib\lib\Template\Manual\Config.pod cp lib/Template/Test.pm blib\lib\Template\Test.pm cp lib/Template.pm blib\lib\Template.pm cp lib/Template/VMethods.pm blib\lib\Template\VMethods.pm cp lib/Template/Plugin/Table.pm blib\lib\Template\Plugin\Table.pm cp lib/Template/Manual/Variables.pod blib\lib\Template\Manual\Variable +s.pod cp lib/Template/Tools/tpage.pod blib\lib\Template\Tools\tpage.pod cp lib/Template/Parser.pm blib\lib\Template\Parser.pm cp lib/Template/Plugins.pm blib\lib\Template\Plugins.pm cp lib/Template/Manual/Syntax.pod blib\lib\Template\Manual\Syntax.pod cp lib/Template/Grammar.pm blib\lib\Template\Grammar.pm cp lib/Template/Tutorial.pod blib\lib\Template\Tutorial.pod cp lib/Template/Plugin.pm blib\lib\Template\Plugin.pm cp lib/Template/Config.pm blib\lib\Template\Config.pm cp lib/Template/FAQ.pod blib\lib\Template\FAQ.pod cp lib/Template/Plugin/CGI.pm blib\lib\Template\Plugin\CGI.pm cp lib/Template/Tools.pod blib\lib\Template\Tools.pod cp lib/Template/Plugin/Directory.pm blib\lib\Template\Plugin\Directory +.pm cp lib/Template/Plugin/Wrap.pm blib\lib\Template\Plugin\Wrap.pm cp lib/Template/Base.pm blib\lib\Template\Base.pm cp lib/Template/Manual/Filters.pod blib\lib\Template\Manual\Filters.po +d cp lib/Template/Plugin/Math.pm blib\lib\Template\Plugin\Math.pm cp lib/Template/Filters.pm blib\lib\Template\Filters.pm cp lib/Template/Plugin/Pod.pm blib\lib\Template\Plugin\Pod.pm cp lib/Template/Manual/Internals.pod blib\lib\Template\Manual\Internal +s.pod cp lib/Template/Service.pm blib\lib\Template\Service.pm cp lib/Template/Document.pm blib\lib\Template\Document.pm cp lib/Template/Plugin/URL.pm blib\lib\Template\Plugin\URL.pm cp lib/Template/Exception.pm blib\lib\Template\Exception.pm cp lib/Template/Tutorial/Datafile.pod blib\lib\Template\Tutorial\Dataf +ile.pod C:\PROGRA~2\MICROS~1.0\VC\Bin\amd64\nmake.exe -f Makefile all +-nologo C:\perl64\bin\perl.exe C:\perl64\site\lib\ExtUtils\xsubpp -ty +pemap C:\Perl64\lib\ExtUtils\typemap Stash.xs > S cl -c -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN32 - +D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -D Stash.c C:\Perl64\lib\CORE\XSUB.h(130) : warning C4005: 'dAX' : macro redefini +tion c:\perl64\packages\template-toolkit-2.24\xs\ppport.h(4073) : s +ee previous definition of 'dAX' C:\Perl64\lib\CORE\XSUB.h(134) : warning C4005: 'dAXMARK' : macro rede +finition c:\perl64\packages\template-toolkit-2.24\xs\ppport.h(4084) : s +ee previous definition of 'dAXMARK' C:\Perl64\lib\CORE\XSUB.h(136) : warning C4005: 'dITEMS' : macro redef +inition c:\perl64\packages\template-toolkit-2.24\xs\ppport.h(4077) : s +ee previous definition of 'dITEMS' C:\Perl64\lib\CORE\XSUB.h(148) : warning C4005: 'dXSTARG' : macro rede +finition c:\perl64\packages\template-toolkit-2.24\xs\ppport.h(4080) : s +ee previous definition of 'dXSTARG' C:\Perl64\lib\CORE\XSUB.h(169) : warning C4005: 'dUNDERBAR' : macro re +definition c:\perl64\packages\template-toolkit-2.24\xs\ppport.h(4066) : s +ee previous definition of 'dUNDERBAR' C:\Perl64\lib\CORE\XSUB.h(172) : warning C4005: 'UNDERBAR' : macro red +efinition c:\perl64\packages\template-toolkit-2.24\xs\ppport.h(4070) : s +ee previous definition of 'UNDERBAR' Stash.xs(151) : warning C4146: unary minus operator applied to unsigne +d type, result still unsigned Stash.xs(158) : warning C4267: 'function' : conversion from 'size_t' t +o 'I32', possible loss of data Stash.xs(163) : warning C4244: 'function' : conversion from 'IV' to 'I +32', possible loss of data Stash.xs(241) : warning C4002: too many actual parameters for macro 'd +ebug' Stash.xs(243) : warning C4267: 'function' : conversion from 'size_t' t +o 'I32', possible loss of data Stash.xs(270) : warning C4267: 'function' : conversion from 'size_t' t +o 'I32', possible loss of data Stash.xs(307) : warning C4244: 'function' : conversion from 'IV' to 'I +32', possible loss of data Stash.xs(364) : warning C4996: '_snprintf': This function or variable +may be unsafe. Consider using _snprintf_s instead. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +stdio.h(358) : see declaration of '_snprintf' Stash.xs(491) : warning C4146: unary minus operator applied to unsigne +d type, result still unsigned Stash.xs(517) : warning C4002: too many actual parameters for macro 'd +ebug' Stash.xs(530) : warning C4002: too many actual parameters for macro 'd +ebug' Stash.xs(534) : warning C4267: 'function' : conversion from 'size_t' t +o 'I32', possible loss of data Stash.xs(536) : warning C4002: too many actual parameters for macro 'd +ebug' Stash.xs(544) : warning C4267: 'function' : conversion from 'size_t' t +o 'I32', possible loss of data Stash.xs(553) : warning C4002: too many actual parameters for macro 'd +ebug' Stash.xs(563) : warning C4244: 'function' : conversion from 'IV' to 'I +32', possible loss of data Stash.xs(565) : warning C4002: too many actual parameters for macro 'd +ebug' Stash.xs(582) : warning C4244: 'function' : conversion from 'IV' to 'I +32', possible loss of data Stash.xs(797) : warning C4101: 'retval' : unreferenced local variable Stash.xs(866) : warning C4101: 'retval' : unreferenced local variable Stash.xs(935) : warning C4267: 'function' : conversion from 'size_t' t +o 'I32', possible loss of data Stash.xs(1191) : warning C4267: 'function' : conversion from 'size_t' +to 'I32', possible loss of data Stash.xs(1251) : warning C4267: 'function' : conversion from 'size_t' +to 'I32', possible loss of data Running Mkbootstrap for Template::Stash::XS () C:\perl64\bin\perl.exe -MExtUtils::Command -e chmod -- 644 XS. +bs C:\perl64\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists( +'NAME'=>\"Template::Stash::XS\", 'DLBASE' => 'XS', link -out:..\blib\arch\auto\Template\Stash\XS\XS.dll -dll -nol +ogo -nodefaultlib -debug -opt:ref,icf -ltcg -libp Creating library ..\blib\arch\auto\Template\Stash\XS\XS.lib and obj +ect ..\blib\arch\auto\Template\Stash\XS\XS.exp Generating code Finished generating code if exist ..\blib\arch\auto\Template\Stash\XS\XS.dll.manifest m +t -nologo -manifest ..\blib\arch\auto\Template\Sta if exist ..\blib\arch\auto\Template\Stash\XS\XS.dll.manifest d +el ..\blib\arch\auto\Template\Stash\XS\XS.dll.mani C:\perl64\bin\perl.exe -MExtUtils::Command -e chmod -- 755 ..\ +blib\arch\auto\Template\Stash\XS\XS.dll C:\perl64\bin\perl.exe -MExtUtils::Command -e cp -- XS.bs ..\b +lib\arch\auto\Template\Stash\XS\XS.bs C:\perl64\bin\perl.exe -MExtUtils::Command -e chmod -- 644 ..\ +blib\arch\auto\Template\Stash\XS\XS.bs cd .. C:\perl64\bin\perl.exe -MExtUtils::Command -e cp -- bin/tpage +blib\script\tpage pl2bat.bat blib\script\tpage C:\perl64\bin\perl.exe -MExtUtils::Command -e cp -- bin/ttree +blib\script\ttree pl2bat.bat blib\script\ttree C:\perl64\packages\Template-Toolkit-2.24>nmake test Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. C:\PROGRA~2\MICROS~1.0\VC\Bin\amd64\nmake.exe -f Makefile all +-nologo cd .. C:\perl64\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_ha +rness(0, 'blib\lib', 'blib\arch')" t/args.t t/asse pmv.t t/zz-pod-coverage.t t/zz-pod-kwalitee.t t/zz-stash-xs-leak.t t/v +methods/hash.t t/vmethods/list.t t/vmethods/replac t/args.t .............. ok t/assert.t ............ ok t/base.t .............. ok t/binop.t ............. ok t/block.t ............. ok t/blocks.t ............ ok t/capture.t ........... ok t/case.t .............. ok t/cgi.t ............... ok t/chomp.t ............. ok t/compile1.t .......... ok t/compile2.t .......... ok t/compile3.t .......... ok t/compile4.t .......... ok t/compile5.t .......... ok t/config.t ............ ok t/constants.t ......... ok t/context.t ........... ok t/datafile.t .......... ok t/date.t .............. ok t/debug.t ............. ok t/directive.t ......... ok t/directry.t .......... skipped: skipping tests on MS Win 32 platform t/document.t .......... ok t/dumper.t ............ ok t/error.t ............. ok t/evalperl.t .......... ok t/exception.t ......... ok t/factory.t ........... ok t/file.t .............. skipped: skipping tests on MS Win 32 platform t/fileline.t .......... ok t/filter.t ............ ok t/foreach.t ........... ok t/format.t ............ ok t/html.t .............. ok t/image.t ............. skipped: Neither Image::Info nor Image::Size i +nstalled t/include.t ........... ok t/iterator.t .......... ok t/leak.t .............. ok t/list.t .............. ok t/macro.t ............. ok t/math.t .............. ok t/object.t ............ ok t/output.t ............ ok t/parser.t ............ ok t/plugins.t ........... ok t/plusfile.t .......... ok t/pod.t ............... skipped: Pod::POM not installed t/prefix.t ............ ok t/proc.t .............. ok t/process.t ........... ok t/provider.t .......... ok t/ref.t ............... ok t/scalar.t ............ ok t/service.t ........... ok t/skel.t .............. ok t/stash-xs-unicode.t .. ok t/stash-xs.t .......... ok t/stash.t ............. ok t/stashc.t ............ ok t/stop.t .............. ok t/strcat.t ............ ok t/strict.t ............ ok t/string.t ............ ok t/switch.t ............ ok t/table.t ............. ok t/tags.t .............. ok t/template.t .......... ok t/text.t .............. ok t/throw.t ............. ok t/tiedhash.t .......... ok t/try.t ............... ok t/unicode.t ........... ok t/url.t ............... ok t/url2.t .............. skipped: We can't agree on the right joint for + the URL plugin t/vars.t .............. ok t/varsv1.t ............ ok t/view.t .............. ok t/vmethods/hash.t ..... ok t/vmethods/list.t ..... ok t/vmethods/replace.t .. ok t/vmethods/text.t ..... ok t/while.t ............. ok t/wrap.t .............. ok t/wrapper.t ........... ok t/zz-pmv.t ............ skipped: These aren't the tests you're looking + for... move along t/zz-pod-coverage.t ... skipped: Author tests not required for install +ation t/zz-pod-kwalitee.t ... skipped: Author tests not required for install +ation t/zz-stash-xs-leak.t .. skipped: Internal test for abw, add the --abw +flag to run All tests successful. Files=89, Tests=2762, 26 wallclock secs ( 0.70 usr + 0.23 sys = 0.94 + CPU) Result: PASS C:\PROGRA~2\MICROS~1.0\VC\Bin\amd64\nmake.exe test -nologo 'No tests defined for Template::Stash::XS extension.' cd ..

    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

      Oh, I wasted LOTS of time doing this. :-) I think, had I known how to do it, it wouldn't have taken much longer than your 2 minutes. The two 20 minute waits (and I didn't time them accurately - that's an estimate) were for the installation of the C compiler and ?make utility. Without that the computer time would have been much shorter. But even the 40 minutes for that was only a small part of the time I wasted not knowing what to do and googling frenetically. That's why I thought it might be worth putting up the OP in case someone found themselves in the same boat.

      I'm interested to see you using wget instead of the two tools I'd heard of previously. Is this documented anywhere? Especially, is there any documentation on which to use and when? As I stated in the OP, the only ones I've ever tried are PPM and the CPAN shell (I've also used Debian's apt-get on the Pi).

      Regards,

      John Davies

        I'm interested to see you using wget instead of the two tools I'd heard of previously. Is this documented anywhere?

        wget is just a GNU download tool -- you can get a binary version for Windows from here -- but you can download the tar.gz using any other tool or method including just clicking the link on the CPAN website for whatever package you want.

        I long ago gave up on CPAN(P/plus/whatever) because they:

        • insist downloading stuff that I neither need nor want;

          Like some ancient version of nmake that hasn't worked for building perl modules since pre-5.6.1 days. If then. It is well-known that it is a pointless exercise to install that; but still the CPAN shell will insist on downloading it even when there is a working, up-to-date version already installed and available via the path! Shear bloody-mindedness.

        • Insist on installing alternative compiler & tool chain that don't work, rather than using the already installed compiler that does, simply because the broken algorithm they use to look for the compiler -- that does everything but the sensible thing of searching the path -- cannot find it.
        • Insist on trying to provide a broken emulation of *nix command line history functionality; when my shell has its own history facility -- that works -- built-in.
        • Insist on fucking with my carefully chosen shell color settings in order to try and highlight random bits of output in random colors according to no discernible pattern; and rendering the output entire unreadable in the process.

        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
Re: Installing Template::Toolkit on Windows
by Anonymous Monk on Jul 17, 2013 at 08:38 UTC
    You are da MAN! Thank you so much for posting this!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://1020161]
Front-paged by Arunbear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (6)
As of 2014-08-02 07:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Who would be the most fun to work for?















    Results (55 votes), past polls