Installation is failing during make install. Output from make: if [ -f ssh_prng_cmds -a ! -z "yes" ]; then \ /usr/bin/perl ./fixprogs ssh_prng_cmds ; \ if [ ! -f /usr/local/etc/ssh_prng_cmds ] ; then \ ./install-sh -c -m 644 ssh_prng_cmds.out /usr/local/etc/ssh_prng_cmds; \ else \ echo "/usr/local/etc/ssh_prng_cmds already exists, install will not overwrite"; \ fi ; \ fi Couldn't open output file ssh_prng_cmds.out at ./fixprogs line 31. *** Error code 13 make: Fatal error: Command failed for target `install-files'
errno 13 == EACCES. Did you do the "make install" as root? If so did you do it on an NFS filesystem that maps root -> nobody?
Created attachment 186 [details] Makefile patch This isn't specific to Solaris; I'm having the same problem under AIX. Yes, I am building in an NFS-mounted directory where root is mapped to nobody. However, this is something that the build system should handle. Please look at the attached patch and let me know what you think.
Does anyone see any problems with the patch id #186? It seems OK to me.
Maybe it would just be simpler to make sure that ssh_prng_cmds.out is world-readable after creation by "make"
I don't think that will help: "fixprogs" is run as part of "make install" and tries to write to the current dir as root.
The only problem with patch (id=186) is that most of the commands in ssh_prng_cmds.in will only produce meaningful output when run as root.
Is that necessarily a bad thing? ssh also uses ssh-rand-helper.
Sorry, should have been clearer. fixprogs runs through all of the programs listed in ssh_prng_cmds.in and determines whether the command works (return code==0) and optionally how many bits of entropy the command can be expected to really provide on the particular system. If fixprogs is run as a user and not root, most if not all commands will be removed. This is likely also the reason it has been put in the install phase.
On my Solaris 8 host here (admittedly not locked down, so things like /var/adm are still readable), the output files are idential for root and non-root users. $ make ssh_prng_cmds.out if test ! -z "yes"; then \ /usr/local/bin/perl ../fixprogs ssh_prng_cmds ; \ fi $ mv ssh_prng_cmds.out ssh_prng_cmds.out.user $ sudo make ssh_prng_cmds.out if test ! -z "yes"; then \ /usr/local/bin/perl ../fixprogs ssh_prng_cmds ; \ fi $ ls -l ssh_prng*.out* -rw-r--r-- 1 root other 1985 May 7 22:53 ssh_prng_cmds.out -rw-r--r-- 1 dtucker dtucker 1985 May 7 22:53 ssh_prng_cmds.out.user $ diff -u ssh_prng_cmds.out ssh_prng_cmds.out.user
Quite right. My local machine had six lines removed as user, a Debian system I tried had 26 out of the total 52 removed, I was pretty sure this would be much worse. I'm glad I was wrong though. :)
OK, good. Any other objections?
Fix applied. Thanks.
Mass change of RESOLVED bugs to CLOSED