Subject: Makefile.sol

From: David Ross <[email-masked]>
Date: Sun, 8 Aug 1999 15:25:44 +1000 (EST)

Does anyone know why wu-ftpd-2.5.0/makefiles/Makefile.sol has:

BINDIR=         ${DESTDIR}/usr/sbin
and
SBINDIR=        ${DESTDIR}/etc

when every Solaris box I've worked on needs:

BINDIR=         ${DESTDIR}/usr/bin
and
SBINDIR=        ${DESTDIR}/usr/sbin

Is this something peculiar about my boxes or a bug?

Thanks - Dave.

-------------------------------------------------------------------------
Dave Ross

[email-masked]
Department of Computer Science and Electrical Engineering,
The University of Queensland

[email-masked]
CFMU UNIX - TSG3 - Internet Team,
Facilities Management and Bureau Services,
CITEC (in Brisbane, Queensland, Australia.)
-------------------------------------------------------------------------

---

From: Gregory A Lundberg <[email-masked]>
Date: Sun, 8 Aug 1999 05:32:28 -0400

> Is this something peculiar about my boxes or a bug?

In 2.4.2 and earlier versions these were called BINDIR and ETCDIR
respectively.  I renamed them for consistency across platforms.  And
because, quite frankly, I wanted people to see eactly the kinds of dumb
things as you're pointing at.

Here's the phylosophy:

  The WU-FTPD, by default, is a drop-in replacement for the old, original
  BSD ftpd.

What that means is, for installation, the Makefile should put the WU-FTPD
daemon where the BSD daemon which originally came with your operating
system appears.  Now, you have to remember that all this is based on FIVE
to TEN YEARS AGO.  Worse yet, the configuration and installation files for
your (read: any) platform were done be someone with no time and little
knowledge (read: some FTP site administrator) whose only qualification to
do the work was he/she took the time to report back what was needed to get
it to work.

My personal take on it:

  Both locations are incorrect.  So is POSIX and the Single Unix Standard
  (or whatever the "standards" are Redhat claims when asked why they put
  something in the idiotic spot they did).

The correct location to install a package is /usr/local/<packagename>.  If
you need an /etc/<conffile> for the package, it should be a symlink to
/usr/local/<packagename>/<conffile>.  If you need several config files (say
Sendmail), /etc/<feature>/<files> is good.  I have /etc/ftpd /etc/mail
/etc/ntpd and so forth; makes things in /etc a lot easier to take care of.

I've tried a lot of other schemes; I like this one because it keeps the
packages separate.  The only thing I really don't like about it is all the
symlinks (which is why I'm moving toward /etc/<feature>).  But it is nice
knowing that all files for a package are in one place.

-- 

Gregory A Lundberg              WU-FTPD Development Group
1441 Elmdale Drive              [email-masked]
Kettering, OH 45409-1615 USA    1-800-809-2195

---

From: Chad Price <[email-masked]>
Date: Mon, 09 Aug 1999 10:18:50 -0500

>knowing that all files for a package are in one place.

This is exactly why I use GNU Stow.  It makes all the symlinks and verifies 
that none over-write existing ones.
         config --prefix=/usr/local/stow-dir/package-name

allows me to install it as:
         /usr/local/stow-dir/package-name/bin
         (etc)
and then cd to /usr/local/stow-dir  and issue the command
         stow package-name

Which creates all the symlinks to all the appropriate /usr/local/ 
directories. unstow inverts the process and cleans up all the symlinks 
without deleting any of the actual binaries or config files.  As a result, 
swapping between versions of packages verges on trivial. Stow it and test 
it. If it works, fine; otherwise, unstow it and stow the old one again.

Chad

Chad Price
Systems Manager
University of Nebraska Medical Center
600 S 42nd St
Omaha, NE 68506-6495
[email-masked]
(402) 559-9527
(402) 559-4077 (FAX)

---

From: "Gregory A. Parmer" <[email-masked]>
Date: Mon, 9 Aug 1999 16:27:20 -0500 (CDT)

> you need an /etc/<conffile> for the package, it should be a symlink to

The caveat is that /usr/local/ may be used for SW that is available to all
machines at a site (via NFS). At such a site, the above makes for a tidy
installation at the expense of added network traffic.

Same for /opt/<packagename>.

In response to the original post, /usr/sbin/ and /etc work on my
Solaris boxes although it scatters files all over the system and
makes a general mess.

-greg

---

From: Johan Claesson <[email-masked]>
Date: Tue, 10 Aug 1999 00:58:07 +0200

> Solaris boxes although it scatters files all over the system and

Greetings,

Probably off-topic, but...

I usally don't trust 'make install' for most packages. Most of them
installs where they were supposed to, but I have also discoverd some,
like Gregory mentioned, which scatters files around and makes a mess.
wu-ftpd is definetly not one of theese though.

Anyhow, I usally keep the entire distribution under /usr/local/pgm. Like
this:
% ls -F /usr/local/pgm
/usr/local/pgm:
wu-ftpd@    wu-ftpd-2.4.2-vr16/    wu-ftpd-2.5.0/

Where wu-ftpd is symbolic link pointing to the current release. In this
case:
ls -l wu-ftpd
... wu-ftpd -> wu-ftpd-2.5.0/

In /usr/sbin on our Solaris server there are symbolic links for ftpd,
ftpwho and ftpcount which are pointing to
/usr/local/pgm/wu-ftpd/bin/ftpd etc.

This makes it very easy and fast to upgrade to a more current release.
Download the latest tar-ball, unpack in /usr/local/pgm, make, and change
the wu-ftpd link under /usr/local/pgm, to point to the new release. The
/usr/sbin links will still remain and will point to the new release.
This way we never need to run a make install after a make, it simply
just works.

/J

---

From: Chad Price <[email-masked]>
Date: Tue, 10 Aug 1999 09:36:36 -0500

Hey guys - one more time.  GNU stow takes care of the location problems and 
intermingling of files from different packages. Why reinvent the wheel?

http://www.gnu.org/software/stow/stow.html  Which says:

GNU Stow

GNU Stow is a program for managing the installation of software packages, 
keeping them separate (/usr/local/stow/emacs vs. /usr/local/stow/perl, for 
example)
while making them appear to be installed in the same place (/usr/local).

You can read the Stow manual (52k characters) on-line.

Stow is a Perl script which should run correctly under Perl 4 and Perl 5. 
You must install Perl before running Stow. For more information about Perl, see
http://www.perl.com/perl/.

Stow was inspired by Carnegie Mellon's Depot program, but is substantially 
simpler. Whereas Depot requires database files to keep things in sync, Stow 
stores no extra
state between runs, so there's no danger (as there is in Depot) of mangling 
directories when file hierarchies don't match the database. Also unlike 
Depot, Stow will never
delete any files, directories, or links that appear in a Stow directory 
(e.g., /usr/local/stow/emacs), so it's always possible to rebuild the 
target tree (e.g., /usr/local).
Stow is free software, licensed under the GNU General Public License.

       Changes in version 1.3:
             Added --restow option.
             Fixed handling of slashes in package names.
             Expanded configure-time search for Perl binary.
       Changes in version 1.2:
             Dependency on `pwd' removed.
             Perl 4 compatibility fixes.
             Manual expanded even more.
       Changes in version 1.1:
             Long and short options now accepted.
             Manual expanded.
             `make clean' removes stow (which is generated from stow.in).

Please mail comments, questions, and criticisms to the author, Bob 
Glickstein, <[email-masked]>.

Chad Price
Systems Manager