Discussion:
pspp 0.6.1 for windows
(too old to reply)
unknown-1
2008-10-10 19:12:47 UTC
Permalink
An update setup for the update to pspp version 0.6.1. for windows is
available at pspp.wardspace.com

Have fun.
Richard Brittain
2008-10-11 03:01:21 UTC
Permalink
Building PSPP on Mac OSX

Hi,
I'm helping to evaluate PSPP and wanted a Mac version, but the
installation notes don't have much advice about building this on a Mac, so
I plugged away and got a version that seems to install and run. I also a
found a few questions about this in the list archives, but few answers, so
I thought this list might like a description of what worked for me. I've
done this right through on two PPC macs running 10.4.11. I've not yet
tried it on a 10.5 system, or an intel Mac. I'm just a tinkerer, not a
developer, when it comes to Macs, so there may be a more efficient way to
do this.

1. Install Xcode developer tools and X11.

I needed to upgrade Xcode to the latest version (2.4.1 for 10.4
systems) to make some errors in 'configure' go away. You have to
do that by downloading the .dmg from the Apple Developer web site.
Xcode does not seem to get updates through the 'System Update'
mechanism. The GUI version of PSPP needs X11 (not installed by
default in 10.4, but on the distribution CD, optional packages).

2. Install MacPorts from <http://www.macports.org/>,
if you don't already have it.

3. Edit /etc/profile or ~/.profile and ~/.bashrc
and add "/opt/local/bin" to your $PATH setting. At the same time,
add "/usr/local/bin" if it isn't there already, since pspp will install
itself there.

4. Make sure the ports package is updated, and install all the
prerequisite libraries for PSPP

sudo port selfupdate
sudo port install yelp gsl plotutils

This will run for _hours_, downloading sources from BSD ports
repositories and compiling and installing them. It will automatically
pull down all needed prerequisite packages. On my system I ended
up with 94 port packages installed. You can use "port list installed"
to see them. All of the prerequisites are supported ports. Some
of the packages are just newer versions of things which the Mac has
already, like perl and python. I suspect that the vast majority of the stuff
installed by this step is not needed at run time by pspp.

5. Download the PSPP tarball and unpack it.

I think it might help to put it in a location without weird characters
in the pathname. The "configure" script generated some errors which
might have been due to my current directory being "User's Documents"

6. In a terminal, cd to the unpacked psp source tree and run configure

./configure CPPFLAGS="/opt/local/include" LDFLAGS="-L/opt/local/lib -L/usr/local/lib/pspp"

The /opt/local settings let it find all the libraries installed by
MacPorts. The /usr/local/lib/pspp seems to be necessary to let it
later find the pspp dynamic libraries which will be placed there
at the install step.

7. Build pspp

make

8. Test it

make check

I get 1 failing test in the set of 158. The actual message is:
1c1
< /private/tmp/pspp-tst-8859/foo.sps:10: error: DISPLAY: AKSDJ is not a variable name.
---
/tmp/pspp-tst-8859/foo.sps:10: error: DISPLAY: AKSDJ is not a variable name.
3c3
< /private/tmp/pspp-tst-8859/foo.sps:10: error: Stopping syntax file processing
here to avoid a cascade of dependent command failures.
---
/tmp/pspp-tst-8859/foo.sps:10: error: Stopping syntax file processing
here to avoid a cascade of dependent command failures.
examine output 1
FAILED
FAIL: tests/command/insert.sh

9. Install it (assuming the above error isn't too critical)

sudo make install

At this point "pspp" seems to work for batch mode operation. To get the
GUI we need to start X11 and also augment the shared library search path.

10. Make symlinks for libpsppire.so and libpsppwidgets.so

The dynamic library routines seem to be hard coded to look for .so files,
but on the Mac they are called .dylib files, which seem to be equivalent.

cd /usr/local/lib/pspp
sudo ln -s libpspsswidgets.dylib libpsppwidgets.so
sudo ln -s libpsppire.dylib libpsppire.so

11. Start X11 and an xterm window.

Make sure that $DISPLAY is set, and that /usr/local/bin is in your
search path in the xterm window.

12. Set $DYLD_LIBRARY_PATH

Set $DYLD_LIBRARY_PATH to allow the dynamic link loader to find
the psppire and psppwidgets libaries.

export DYLD_LIBRARY_PATH=/usr/local/lib/pspp

This can be added to ~/.bashrc so that it always takes effect, or
there could be a simple wrapper script to start up psppire which sets
$DYLD_LIBRARY_PATH first. I'm not sure why this is needed for
/usr/local/lib/pspp and not for /opt/local/lib.

13. Run it!

psppire


I've not yet figured out how to get other than ASCII output from psppire,
or generate plots and charts. The reference manual (running in 'yelp')
seems to throw errors on some of the cross linked pages. I also get a few
warnings in the terminal window when certain features are selected in psppire.
I'd like to try and figure out the minimum set of run-time files needed, so
that I could copy the executables to another machine with a simple tarball, and
avoid this day-long compilation exercise (if pspp proves useful - I'm not
the statistician!).

Richard
--
Richard Brittain, Kiewit Computing Services, 6224 Baker/Berry Library
Dartmouth College, Hanover NH 03755
Email: ***@dartmouth.edu
Ben Pfaff
2008-10-11 22:34:45 UTC
Permalink
Post by Richard Brittain
I'm helping to evaluate PSPP and wanted a Mac version, but the
installation notes don't have much advice about building this on a
Mac, so I plugged away and got a version that seems to install and
run. I also a found a few questions about this in the list archives,
but few answers, so I thought this list might like a description of
what worked for me. I've done this right through on two PPC macs
running 10.4.11. I've not yet tried it on a 10.5 system, or an intel
Mac. I'm just a tinkerer, not a developer, when it comes to Macs, so
there may be a more efficient way to do this.
Hello. Thanks so much for the detailed notes.
Post by Richard Brittain
3. Edit /etc/profile or ~/.profile and ~/.bashrc
and add "/opt/local/bin" to your $PATH setting. At the same time, add
"/usr/local/bin" if it isn't there already, since pspp will install
itself there.
For what it's worth, you can install PSPP elsewhere if you like,
by passing the --prefix option to configure. But /usr/local/bin
is usually as good a place as any.
Post by Richard Brittain
4. Make sure the ports package is updated, and install all the
prerequisite libraries for PSPP
sudo port selfupdate
sudo port install yelp gsl plotutils
This will run for _hours_, downloading sources from BSD ports
repositories and compiling and installing them. It will automatically
pull down all needed prerequisite packages. On my system I ended
up with 94 port packages installed. You can use "port list installed"
to see them. All of the prerequisites are supported ports. Some
of the packages are just newer versions of things which the Mac has
already, like perl and python.
Wow. I am not familiar with OS X, but I am surprised that binary
packages are not available for these programs. There is little
benefit in compiling them for yourself if you can install binaries.
Post by Richard Brittain
I suspect that the vast majority of the stuff installed by this
step is not needed at run time by pspp.
Should not be.
Post by Richard Brittain
I think it might help to put it in a location without weird characters
in the pathname. The "configure" script generated some errors which
might have been due to my current directory being "User's Documents"
Yes, automake and libtool do not cope well with build directory
names that contain spaces or single-quotes. Sorry about that.
I'll add a note to the install instructions for the future.
Post by Richard Brittain
6. In a terminal, cd to the unpacked psp source tree and run configure
./configure CPPFLAGS="/opt/local/include" LDFLAGS="-L/opt/local/lib -L/usr/local/lib/pspp"
Probably there's a missing -I in those CPPFLAGS but otherwise it
looks right.
Post by Richard Brittain
1c1
< /private/tmp/pspp-tst-8859/foo.sps:10: error: DISPLAY: AKSDJ is not a variable name.
---
Post by Richard Brittain
/tmp/pspp-tst-8859/foo.sps:10: error: DISPLAY: AKSDJ is not a variable name.
How unusual. Is there actually a /private directory on your
system, and does it have some relationship to /tmp?
Post by Richard Brittain
10. Make symlinks for libpsppire.so and libpsppwidgets.so
The dynamic library routines seem to be hard coded to look for .so
files, but on the Mac they are called .dylib files, which seem to be
equivalent.
cd /usr/local/lib/pspp
sudo ln -s libpspsswidgets.dylib libpsppwidgets.so
sudo ln -s libpsppire.dylib libpsppire.so
Hmm. There is certainly nothing hard-coded into our source tree
with the .so extension. I don't know why this would be happening.
Post by Richard Brittain
12. Set $DYLD_LIBRARY_PATH
Set $DYLD_LIBRARY_PATH to allow the dynamic link loader to find the
psppire and psppwidgets libaries.
export DYLD_LIBRARY_PATH=/usr/local/lib/pspp
This can be added to ~/.bashrc so that it always takes effect, or
there could be a simple wrapper script to start up psppire which sets
$DYLD_LIBRARY_PATH first. I'm not sure why this is needed for
/usr/local/lib/pspp and not for /opt/local/lib.
You should be able to add something to LDFLAGS to bypass this
step. On GNU/Linux, the option would be something like
LDFLAGS="-Wl,-rpath,/usr/local/lib".
Post by Richard Brittain
I've not yet figured out how to get other than ASCII output from psppire,
or generate plots and charts.
That's something that's not really present in the current version
of PSPPIRE, but it's a pretty high priority for the next
version.

You can get PostScript or HTML output from the command-line
version of PSPP by passing "-o html" or "-o list-ps" on the
command line.
Post by Richard Brittain
The reference manual (running in yelp') seems to throw errors
on some of the cross linked pages. I also get a few warnings
in the terminal window when certain features are selected in
psppire.
We welcome bug reports if you want to be more specific.
--
"I admire him, I frankly confess it; and when his time comes
I shall buy a piece of the rope for a keepsake."
--Mark Twain
John Darrington
2008-10-11 23:47:20 UTC
Permalink
Post by Richard Brittain
1c1
< /private/tmp/pspp-tst-8859/foo.sps:10: error: DISPLAY: AKSDJ is not a variable name.
---
Post by Richard Brittain
/tmp/pspp-tst-8859/foo.sps:10: error: DISPLAY: AKSDJ is not a variable name.
How unusual. Is there actually a /private directory on your
system, and does it have some relationship to /tmp?


I also got this problem when running make test on the Mac. I've no
idea why. I guess it need a mac expert to tell us.

J'
--
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://pgp.mit.edu or any PGP keyserver for public key.
Richard Brittain
2008-10-13 15:06:08 UTC
Permalink
Post by Ben Pfaff
Hello. Thanks so much for the detailed notes.
Post by Richard Brittain
4. Make sure the ports package is updated, and install all the
prerequisite libraries for PSPP
sudo port selfupdate
sudo port install yelp gsl plotutils
This will run for _hours_, downloading sources from BSD ports
repositories and compiling and installing them. It will automatically
pull down all needed prerequisite packages. On my system I ended
up with 94 port packages installed. You can use "port list installed"
to see them. All of the prerequisites are supported ports. Some
of the packages are just newer versions of things which the Mac has
already, like perl and python.
Wow. I am not familiar with OS X, but I am surprised that binary
packages are not available for these programs. There is little
benefit in compiling them for yourself if you can install binaries.
I believe that there are binary packages available through MacPorts, but
the default behaviour is to build from source, and I wanted to do as
little non-default stuff as possible at this step. The dependencies seem
to err on the side of safety, and it spends a lot of time doing things
other than compiling. I know that many of the packages can be obtained
precompiled from other sources, but the ports mechanism ensures that the
whole lot is self consistent.
Post by Ben Pfaff
Post by Richard Brittain
6. In a terminal, cd to the unpacked psp source tree and run configure
./configure CPPFLAGS="/opt/local/include" LDFLAGS="-L/opt/local/lib -L/usr/local/lib/pspp"
Probably there's a missing -I in those CPPFLAGS but otherwise it
looks right.
Oops - typo.
Post by Ben Pfaff
Post by Richard Brittain
1c1
< /private/tmp/pspp-tst-8859/foo.sps:10: error: DISPLAY: AKSDJ is not a variable name.
---
Post by Richard Brittain
/tmp/pspp-tst-8859/foo.sps:10: error: DISPLAY: AKSDJ is not a variable name.
How unusual. Is there actually a /private directory on your
system, and does it have some relationship to /tmp?
On OSX, /tmp symlinks to /private/tmp - I think it is just to make it
easier to stop the finder from browsing down that tree too easily. I
presume that the other tests also write files in /tmp, so that in itself
isn't causing the problem.
Post by Ben Pfaff
Post by Richard Brittain
10. Make symlinks for libpsppire.so and libpsppwidgets.so
The dynamic library routines seem to be hard coded to look for .so
files, but on the Mac they are called .dylib files, which seem to be
equivalent.
cd /usr/local/lib/pspp
sudo ln -s libpspsswidgets.dylib libpsppwidgets.so
sudo ln -s libpsppire.dylib libpsppire.so
Hmm. There is certainly nothing hard-coded into our source tree
with the .so extension. I don't know why this would be happening.
The actual error came from libglade. My guess is that a UI item created
by Glade was causing it to dynamically load a library not previously used,
and libglade was searching for libpsppire.so with dlopen()
Post by Ben Pfaff
Post by Richard Brittain
12. Set $DYLD_LIBRARY_PATH
Set $DYLD_LIBRARY_PATH to allow the dynamic link loader to find the
psppire and psppwidgets libaries.
export DYLD_LIBRARY_PATH=/usr/local/lib/pspp
This can be added to ~/.bashrc so that it always takes effect, or
there could be a simple wrapper script to start up psppire which sets
$DYLD_LIBRARY_PATH first. I'm not sure why this is needed for
/usr/local/lib/pspp and not for /opt/local/lib.
You should be able to add something to LDFLAGS to bypass this
step. On GNU/Linux, the option would be something like
LDFLAGS="-Wl,-rpath,/usr/local/lib".
I suspect that this is true. I'd already learned more than I wanted to
know about dynamic linking on OSX so I stopped with the first solution
that worked!
Post by Ben Pfaff
Post by Richard Brittain
I've not yet figured out how to get other than ASCII output from psppire,
or generate plots and charts.
That's something that's not really present in the current version
of PSPPIRE, but it's a pretty high priority for the next
version.
Aha - I look forward to it :-)
Our statistics guy reckons that most of the potential users have got out
of the command-line habit since SPSS effectively took it away (we don't
run the SPSS server version here).

Richard
--
Richard Brittain, Kiewit Computing Services, 6224 Baker/Berry Library
Dartmouth College, Hanover NH 03755
Email: ***@dartmouth.edu
Ben Pfaff
2008-10-14 01:06:22 UTC
Permalink
Post by Richard Brittain
Post by Ben Pfaff
Post by Richard Brittain
1c1
< /private/tmp/pspp-tst-8859/foo.sps:10: error: DISPLAY: AKSDJ is not a variable name.
---
Post by Richard Brittain
/tmp/pspp-tst-8859/foo.sps:10: error: DISPLAY: AKSDJ is not a variable name.
How unusual. Is there actually a /private directory on your
system, and does it have some relationship to /tmp?
On OSX, /tmp symlinks to /private/tmp - I think it is just to make it
easier to stop the finder from browsing down that tree too easily. I
presume that the other tests also write files in /tmp, so that in
itself isn't causing the problem.
That's helpful, thanks.

For now, I've filed a bug report with these facts. It's bug
#24553 at Savannah. You should receive a separate email about
it, since I took the liberty of CC'ing you on the bug report.
Post by Richard Brittain
Post by Ben Pfaff
Post by Richard Brittain
10. Make symlinks for libpsppire.so and libpsppwidgets.so
The dynamic library routines seem to be hard coded to look for .so
files, but on the Mac they are called .dylib files, which seem to be
equivalent.
cd /usr/local/lib/pspp
sudo ln -s libpspsswidgets.dylib libpsppwidgets.so
sudo ln -s libpsppire.dylib libpsppire.so
Hmm. There is certainly nothing hard-coded into our source tree
with the .so extension. I don't know why this would be happening.
The actual error came from libglade. My guess is that a UI item
created by Glade was causing it to dynamically load a library not
previously used, and libglade was searching for libpsppire.so with
dlopen()
I'm starting to think that this and some of the other odd
behavior we've seen on Mac and Windows may have to do with the
relatively old version of libtool that I used to generate the
PSPP tarballs. As an experiment, I've re-built a PSPP 0.6.1
tarball using libtool 2.2.2, which is much newer. If you are
willing and able, please try out the following tarball and let me
know whether the results are better or worse:
ftp://alpha.gnu.org/gnu/pspp/pspp-0.6.1+libtool-2.2.2.tar.gz
(Note that this will extract into a directory named pspp-0.6.1,
since really it *is* pspp-0.6.1, just assembled slightly
differently).
--
"I was born lazy. I am no lazier now than I was forty years ago,
but that is because I reached the limit forty years ago. You can't
go beyond possibility."
--Mark Twain
Ben Pfaff
2008-10-11 23:25:28 UTC
Permalink
Post by Richard Brittain
Building PSPP on Mac OSX
Also, John Darrington pointed out that recently a binary package
for PSPP has appeared at:
http://www.evolutionbeach.org/2008/10/stats-for-students-pspp.html
--
"[Modern] war is waged by each ruling group against its own subjects,
and the object of the war is not to make or prevent conquests of territory,
but to keep the structure of society intact."
--George Orwell, _1984_
Richard Brittain
2008-10-13 19:09:36 UTC
Permalink
Post by Ben Pfaff
Post by Richard Brittain
Building PSPP on Mac OSX
Also, John Darrington pointed out that recently a binary package
http://www.evolutionbeach.org/2008/10/stats-for-students-pspp.html
This looks great, except that unless I'm missing something, it contains
only the executables (for i386) and no shared libraries. Even if all the
prerequsite shared libraries are assumed present, don't we need
libpsppire.dylib and libpsppwidgets.dylib too ?

I'm trying a build now on a newly updated 10.5 system (PPC architecture)

Richard
--
Richard Brittain, Kiewit Computing Services, 6224 Baker/Berry Library
Dartmouth College, Hanover NH 03755
Email: ***@dartmouth.edu
Ben Pfaff
2008-10-14 00:21:10 UTC
Permalink
Post by Richard Brittain
Post by Ben Pfaff
Post by Richard Brittain
Building PSPP on Mac OSX
Also, John Darrington pointed out that recently a binary package
http://www.evolutionbeach.org/2008/10/stats-for-students-pspp.html
This looks great, except that unless I'm missing something, it
contains only the executables (for i386) and no shared libraries.
Even if all the prerequsite shared libraries are assumed present,
don't we need libpsppire.dylib and libpsppwidgets.dylib too ?
You may be right--I'm don't know much about OS X (never used it),
and I didn't even download the packaging he provided. If it
doesn't work, it's probably a good idea to email the packager
directly; he was very responsive to my own email.
--
Ben Pfaff
http://benpfaff.org
Richard Brittain
2008-10-14 15:53:20 UTC
Permalink
Post by Ben Pfaff
Post by Richard Brittain
Post by Ben Pfaff
Post by Richard Brittain
Building PSPP on Mac OSX
Also, John Darrington pointed out that recently a binary package
http://www.evolutionbeach.org/2008/10/stats-for-students-pspp.html
This looks great, except that unless I'm missing something, it
contains only the executables (for i386) and no shared libraries.
Even if all the prerequsite shared libraries are assumed present,
don't we need libpsppire.dylib and libpsppwidgets.dylib too ?
You may be right--I'm don't know much about OS X (never used it),
and I didn't even download the packaging he provided. If it
doesn't work, it's probably a good idea to email the packager
directly; he was very responsive to my own email.
I'll do that. I know nothing about building Mac installers the 'proper'
way, but it occurred to me that I could probably build pspp with all the
necessary run-time libraries in /usr/local/lib/pspp (once I've figured out
what they are), and then it would be effectively 'stand-alone' and
installable on a system without any macports tree. The harder problem is
installing on a system with out-of-date libraries which get found first.

On the libtool issue, I was wondering just what that gets used for. I
noticed that pspp creates its own (shell script) libtool, when configure
is run. OSX also comes with /usr/bin/libtool, inherited from the BSD side
of things, which seems to be a functionally similar tool, but maybe not
identical. I found at least one explicit reference to "./libtool" -- I
hope that no part of the build scripts pull in the system libtool
accidentally. I'll try rebuilding with the new tarball. It did occur to
me that it was odd that I needed to explicitly set the path to
/usr/local/lib/pspp/*.dylib.

I also noticed that other pieces of Unix-derived software had installed
miscellaneous .so files on my system, so pspp isn't unique in that
regard. The makefiles from Macports all create .dylib files though
--
Richard Brittain, Kiewit Computing Services, 6224 Baker/Berry Library
Dartmouth College, Hanover NH 03755
Email: ***@dartmouth.edu
Ben Pfaff
2008-10-15 01:46:17 UTC
Permalink
Post by Richard Brittain
On the libtool issue, I was wondering just what that gets used for. I
noticed that pspp creates its own (shell script) libtool, when
configure is run. OSX also comes with /usr/bin/libtool, inherited
from the BSD side of things, which seems to be a functionally similar
tool, but maybe not identical.
I believe that the primary purpose of installing libtool on a
system is for developers who want to create programs that use
libtool. I do not think that the installed libtool is used by
PSPP (or other libtool-based programs); rather, the libtool
included with the package is used.
Post by Richard Brittain
I found at least one explicit reference to "./libtool" -- I
hope that no part of the build scripts pull in the system
libtool accidentally. I'll try rebuilding with the new
tarball.
Great.
--
Ben Pfaff
http://benpfaff.org
alma rivera
2008-10-13 19:53:26 UTC
Permalink
If anyone finally discovers, or compiles, PSPP por OSX10.4 (Intel), please let me know. I have tried to, but haven't finally find the time to do it.

Thanks,

Alma

Liberation is a praxis: the action and reflection of men and women upon their world in order to transform it.
Paulo Freire

La única manera para que la historia no se repita es manteniéndola viva....
Eduardo Galeano

You're never too old, too wacky, too wild, to pick up a book and read to a child.
Dr. Seuss



----- Original Message ----
From: Richard Brittain <***@dartmouth.edu>
To: Ben Pfaff <***@cs.stanford.edu>
Cc: "pspp-***@gnu.org" <pspp-***@gnu.org>; Richard Brittain <***@Dartmouth.EDU>; Jaime Combariza <***@Dartmouth.EDU>
Sent: Monday, October 13, 2008 3:09:36 PM
Subject: Re: Building PSPP on a Mac
Post by Ben Pfaff
Post by Richard Brittain
Building PSPP on Mac OSX
Also, John Darrington pointed out that recently a binary package
http://www.evolutionbeach.org/2008/10/stats-for-students-pspp.html
This looks great, except that unless I'm missing something, it contains
only the executables (for i386) and no shared libraries. Even if all the
prerequsite shared libraries are assumed present, don't we need
libpsppire.dylib and libpsppwidgets.dylib too ?

I'm trying a build now on a newly updated 10.5 system (PPC architecture)

Richard
--
Richard Brittain, Kiewit Computing Services, 6224 Baker/Berry Library
Dartmouth College, Hanover NH 03755
Email: ***@dartmouth.edu
Continue reading on narkive:
Loading...