How are filenames constructed for installation? =============================================== 6 relevant kinds of files, according to setup.rb in these directories: bin lib ext data conf doc What about those? sbin libexec sharedstate localstate include info man Additional directories that could make sense: test General scheme: =============== KINDprefix + KINDdir + $filename $filename is seen local to the given subdirectory of the project. KINDprefix defaults to the prefix ruby is installed. (Is this true for etcprefix too? It's probably a vendor packaging issue, by default etcprefix should be prefix. Official packages then still can (see below) change it to "/". FHS says: "/usr/local/etc may be a symbolic link to /etc/local.", "Note that /usr/etc is still not allowed: programs in /usr should place configuration files in /etc.") KINDdir depends on the kind of the file, there are two presets: rbconfig-style, --vendor: bin/: $bindir lib/: $rubylibdir ext/: $archdir data/: $datadir conf/: $sysconfdir doc/: $datadir/doc rbconfig-style, --site (default): bin/: $bindir lib/: $sitelibdir ext/: $sitearchdir data/: $datadir conf/: $sysconfdir doc/: $datadir/doc What goes into those directories? ================================= bin/: executable scripts, will get shebang fixing lib/: ruby libraries ext/: extensions written in C, possibly subdirectories with one extension each data/: data and resources that are not code used by the project conf/: configuration files doc/: documentation that should get installed How does it go into those directories? ====================================== Projects put their files directly into the directory: bin/ etc/ (depends, for single files) lib/ (depends, for single files) Projects put their files into a project subdirectory: etc/ (if multiple) lib/ (if multiple) data/ doc/ File mode: bin/ 0755 lib/ 0644 ext/ 0555 data/ 0644 conf 0644 ? doc/ 0644 ? Switches for new setup.rb ========================= --with-prefix --with-KINDprefix --with-KINDdir --with-KIND (complete override) aliases (for RPA setup.rb suggestions): --with-scriptdir => --with-bindir --with-rbdir => --with-libdir --with-sodir => --with-extdir