# $OpenBSD: README,v 1.8 2013/11/13 19:53:08 naddy Exp $ # # +----------------------------------------------------------------------- # | Running ${FULLPKGNAME} on OpenBSD # +----------------------------------------------------------------------- # # Original author: Jolan Luff <jolan@openbsd.org> # # In order to make CVSweb operate in a chroot environment, it is # necessary to copy all of the relevant tools, libraries, and perl modules # that CVSweb employs into /var/www. # # NOTE: You can run this README directly with sh(1). # # First, create the basic directory structure: cd /var/www mkdir -p tmp usr chown www:www tmp # needs to be writeable for the www user cd /var/www/usr mkdir -p bin lib libdata/perl5 libexec cd /var/www/usr/libdata/perl5 mkdir -p File IPC Time warnings `arch -s`-openbsd/5.16.3/auto/Fcntl unicore # The "annotate" function requires this empty file: # # NOTE: You can create an actual null device instead, but that will # not work if the filesystem is mounted with the nodev option, and # it is not required for cvsweb. cd /var/www/dev touch null # Now, the required binaries: cd /var/www/usr/bin cp -p /usr/bin/{co,cvs,diff,perl,rcsdiff,rlog,uname} . # Next, the libraries that the binaries are linked to: # # NOTE: Wildcards will, of course, copy any old, unused libraries that are # lurking around (for example, from an upgrade): cd /var/www/usr/lib cp -p /usr/lib/lib{c,m,perl,pthread,util,z}.so* . # Now, the run-time link-editor: cd /var/www/usr/libexec cp -p /usr/libexec/ld.so . # And finally, the perl modules: cd /var/www/usr/libdata/perl5 cp -p /usr/libdata/perl5/{Carp,Exporter,Symbol,base,integer}.pm . cp -p /usr/libdata/perl5/{strict,warnings,vars,constant,utf8}.pm . cp -p /usr/libdata/perl5/utf8_heavy.pl . cp -p /usr/libdata/perl5/unicore/Heavy.pl ./unicore/ cp -p /usr/libdata/perl5/File/Basename.pm ./File/ cp -p /usr/libdata/perl5/IPC/Open{2,3}.pm ./IPC/ cp -p /usr/libdata/perl5/Time/Local.pm ./Time/ cp -p /usr/libdata/perl5/warnings/register.pm ./warnings/ cp -p /usr/libdata/perl5/XSLoader.pm . cd /var/www/usr/libdata/perl5/`arch -s`-openbsd/5.16.3 cp -p /usr/libdata/perl5/`arch -s`-openbsd/5.16.3/{Config,Cwd}.pm . cp -p /usr/libdata/perl5/`arch -s`-openbsd/5.16.3/Config_{git,heavy}.pl . cp -p /usr/libdata/perl5/`arch -s`-openbsd/5.16.3/DynaLoader.pm . cp -p /usr/libdata/perl5/`arch -s`-openbsd/5.16.3/Fcntl.pm . cp -p /usr/libdata/perl5/`arch -s`-openbsd/5.16.3/auto/Fcntl/Fcntl.{bs,so} \ ./auto/Fcntl/ # Editing cvsweb and cvsweb.conf # ------------------------------ # # The cvsweb program itself and cvsweb.conf both assume Apache is not # running in a chroot environment, so we need to change some default paths # so they are relative to /var/www. # # In /var/www/cgi-bin/cvsweb: # # for ("$mydir/cvsweb.conf", '/var/www/conf/cvsweb/cvsweb.conf') { # for ("$mydir/cvsweb.conf", '/conf/cvsweb/cvsweb.conf') { # # In /var/www/conf/cvsweb/cvsweb.conf: # # Change CVSrepositories to reflect the location of the directories which # contain CVSROOT. This example shows a local repository NFS mounted over # loopback into /var/www/cvs, since the directory must be relative to # /var/www, we use /cvs. # # @CVSrepositories = ( # 'local' => ['Local Repository', '/home/cvs'], (default) # 'local' => ['Local Repository', '/cvs'], (chroot) # # And the same idea for $mimetypes: # # $mime_types = '/var/www/conf/mime.types'; (default) # $mime_types = '/conf/mime.types'; (chroot)