openpkg/Makefile

Thu, 04 Oct 2012 20:30:05 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 04 Oct 2012 20:30:05 +0200
changeset 715
c10fb90893b9
permissions
-rw-r--r--

Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.

     1 ##
     2 ##  Makefile -- OpenPKG Framework Developer Procedures
     3 ##  Copyright (c) 2000-2012 OpenPKG GmbH <http://openpkg.com/>
     4 ##
     5 ##  This software is property of the OpenPKG GmbH, DE MUC HRB 160208.
     6 ##  All rights reserved. Licenses which grant limited permission to use,
     7 ##  copy, modify and distribute this software are available from the
     8 ##  OpenPKG GmbH.
     9 ##
    10 ##  THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
    11 ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    12 ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    13 ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
    14 ##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    15 ##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    16 ##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
    17 ##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    18 ##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    19 ##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    20 ##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    21 ##  SUCH DAMAGE.
    22 ##
    24 PATH      = /usr/opkg/bin:/usr/opkg/sbin:/bin:/sbin:/usr/bin:/usr/sbin
    25 PREFIX    = /openpkg
    26 USER      = openpkg
    27 GROUP     = openpkg
    28 TAG       = openpkg
    30 SH        = /bin/sh
    31 RPM       = $(PREFIX)/bin/openpkg rpm
    32 SUDO      = sudo
    33 SCP       = scp
    34 RSYNC     = rsync
    35 RSYNC_REM = /v/openpkg/sw/bin/rsync
    36 MTN       = mtn
    38 UPLOAD1   = openpkg@experimental.openpkg.org:/v/openpkg/download/data/framework/release/source/
    39 UPLOAD2   = openpkg@experimental.openpkg.org:/v/openpkg/download/data/components/cache/openpkg/
    41 all:
    42 	@echo "Individual Steps:"
    43 	@echo "  $(MAKE) fetch-sh         fetch third-party distribution files (standalone)"
    44 	@echo "  $(MAKE) fetch-rpm        fetch third-party distribution files (requires $(PREFIX))"
    45 	@echo "  $(MAKE) build-src-sh     build   SOURCE SHELL package (standalone)"
    46 	@echo "  $(MAKE) build-bin-sh     build   BINARY SHELL package (standalone)"
    47 	@echo "  $(MAKE) build-src-rpm    build   SOURCE RPM   package (requires $(PREFIX))"
    48 	@echo "  $(MAKE) build-bin-rpm    build   BINARY RPM   package (requires $(PREFIX))"
    49 	@echo "  $(MAKE) install-bin-sh   install BINARY SHELL package (requires $(PREFIX))"
    50 	@echo "  $(MAKE) install-bin-rpm  install BINARY RPM   package (requires $(PREFIX))"
    51 	@echo "  $(MAKE) uninstall        uninstall entire instance under $(PREFIX)"
    52 	@echo "  $(MAKE) upload-dst       upload latest DISTRIBUTION files"
    53 	@echo "  $(MAKE) upload-pkg       upload latest SOURCE SHELL+RPM packages"
    54 	@echo "  $(MAKE) upload-src       upload latest SOURCE repository revisions"
    55 	@echo "  $(MAKE) clean            remove temporary files"
    56 	@echo ""
    57 	@echo "All-In-One Steps:"
    58 	@echo "  $(MAKE) bootstrap        BOOTSTRAP instance under $(PREFIX) from scratch"
    59 	@echo "  $(MAKE) update           UPDATE    instance under $(PREFIX)"
    60 	@echo "  $(MAKE) upload           upload all results"
    62 ##
    63 ##  Individual Steps
    64 ##
    66 fetch-sh:
    67 	@echo "++ fetching third-party distribution files (manually)"; \
    68 	eval `egrep '^%define *V_.*' openpkg.spec | \
    69 	    sed -e 's%^.*\(V_[a-z][a-zA-Z0-9_]*\) *\([^ ][^ ]*\).*$$%\1="\2";%'`; \
    70 	for url in \
    71 	    `egrep '^Source[0-9][0-9]*: *(http|ftp)://' openpkg.spec | \
    72 	    sed -e 's;^Source[0-9][0-9]*: *;;' -e 's;%{\(V_[a-z][a-zA-Z0-9_]*\)};$${\1};g'`; do \
    73 	    eval "url=\"$$url\""; \
    74 	    file=`echo "$$url" | sed -e 's;^.*/\([^/]*\)$$;../dst/\1;'`; \
    75 	    if [ ! -f $$file ]; then \
    76 			echo "-- downloading $$url"; \
    77 			if [ ".`(which curl) 2>/dev/null | egrep '^/'`" != . ]; then \
    78 				curl -s -L -o "$$file" "$$url" || true; \
    79 			elif [ ".`(which wget) 2>/dev/null | egrep '^/'`" != . ]; then \
    80 				wget -q -O "$$file" "$$url" || true; \
    81 			elif [ ".`(which fetch) 2>/dev/null | egrep '^/'`" != . ]; then \
    82 				fetch -o "$$file" "$$url" || true; \
    83 			elif [ ".`(which lwp-download) 2>/dev/null | egrep '^/'`" != . ]; then \
    84 				lwp-download "$$url" "$$file" || true; \
    85 			else \
    86 				echo "ERROR: sorry, no download tool found in \$$PATH (\"curl\", \"wget\", \"fetch\", \"lwp-download\")" 1>&2; \
    87 				exit 1; \
    88 			fi; \
    89 			if [ ! -f "$$file" ]; then \
    90 				echo "ERROR: failed to download \"$$url\"" 1>&2; \
    91 				exit 1; \
    92 			fi; \
    93 	    fi; \
    94 	done
    96 fetch-rpm:
    97 	@echo "++ fetching third-party distribution files (via RPM)"; \
    98 	PATH="$(PATH)" $(RPM) -bf *.spec
   100 build-src-sh:
   101 	@echo "++ building SOURCE SHELL package"; \
   102 	PATH="$(PATH)" $(SH) openpkg.boot -s
   104 build-bin-sh:
   105 	@echo "++ building BINARY SHELL package"; \
   106 	cd ../pkg && TMPDIR="`cd ../tmp && pwd`" && export TMPDIR && \
   107 	PATH="$(PATH)" $(SH) openpkg-*-`date '+%Y%m%d'`.src.sh \
   108 	    --prefix=$(PREFIX) \
   109 	    --user=$(USER) \
   110 	    --group=$(GROUP) \
   111 	    --tag=$(TAG)
   113 build-src-rpm:
   114 	@echo "++ building SOURCE RPM package"; \
   115 	PATH="$(PATH)" $(RPM) -bs openpkg.spec
   117 build-bin-rpm:
   118 	@echo "++ building BINARY RPM package"; \
   119 	PATH="$(PATH)" $(RPM) -bb openpkg.spec
   121 install-bin-sh:
   122 	@echo "++ installing BINARY SHELL package"; \
   123 	d=`cd ../pkg && pwd` && cd / && PATH="$(PATH)" $(SUDO) $(SH) $$d/openpkg-*-`date '+%Y%m%d'`.*-*-*.sh
   125 install-bin-rpm:
   126 	@echo "++ installing BINARY RPM package"; \
   127 	d=`cd ../pkg && pwd` && cd / && PATH="$(PATH)" $(SUDO) $(RPM) -Uvh --replacepkgs $$d/openpkg-*-`date '+%Y%m%d'`.*-*-*.rpm
   129 uninstall:
   130 	-@echo "++ uninstalling ENTIRE instance"; \
   131 	cd /; $(RPM) -qa | grep -v '^openpkg-[0-9]' | xargs $(SUDO) $(RPM) -e; \
   132 	$(SUDO) $(RPM) -e openpkg
   134 upload-dst:
   135 	@echo "++ uploading vendor DISTRIBUTION files:"; \
   136 	$(RSYNC) -raH --delete -v --progress --rsync-path=$(RSYNC_REM) ../dst/ $(UPLOAD2)
   138 upload-pkg:
   139 	@echo "++ uploading SOURCE SHELL/RPM package(s):"; \
   140 	$(RSYNC) -raH --delete -v --progress --rsync-path=$(RSYNC_REM) ../pkg/*.src.* $(UPLOAD1)
   142 upload-src:
   143 	@echo "++ uploading SOURCE repository revision(s):"; \
   144 	$(MTN) sync
   146 clean:
   147 	-rm -rf ../tmp/*
   149 pod2man:
   150 	pod2man --section=1 --center="OpenPKG" --release="OPENPKG(8)"    --date="OpenPKG" --quotes=none openpkg.pod    >openpkg.1
   151 	pod2man --section=8 --center="OpenPKG" --release="RC(8)"         --date="OpenPKG" --quotes=none rc.pod         >rc.8
   152 	pod2man --section=8 --center="OpenPKG" --release="RPMTOOL(8)"    --date="OpenPKG" --quotes=none rpmtool.pod    >rpmtool.8
   153 	pod2man --section=8 --center="OpenPKG" --release="LSYNC(8)"      --date="OpenPKG" --quotes=none lsync.pod      >lsync.8
   154 	pod2man --section=8 --center="OpenPKG" --release="RPM-CONFIG(8)" --date="OpenPKG" --quotes=none rpm-config.pod >rpm-config.8
   155 	pod2man --section=8 --center="OpenPKG" --release="UUID(8)"       --date="OpenPKG" --quotes=none uuid.pod       >uuid.8
   156 	pod2man --section=8 --center="OpenPKG" --release="RELEASE(8)"    --date="OpenPKG" --quotes=none release.pod    >release.8
   157 	pod2man --section=8 --center="OpenPKG" --release="BUILD(8)"      --date="OpenPKG" --quotes=none build.pod      >build.8
   158 	pod2man --section=8 --center="OpenPKG" --release="INDEX(8)"      --date="OpenPKG" --quotes=none index.pod      >index.8
   159 	pod2man --section=8 --center="OpenPKG" --release="SEARCH(8)"     --date="OpenPKG" --quotes=none search.pod     >search.8
   160 	pod2man --section=8 --center="OpenPKG" --release="MIRROR(8)"     --date="OpenPKG" --quotes=none mirror.pod     >mirror.8
   161 	pod2man --section=8 --center="OpenPKG" --release="MAKEPROXY(8)"  --date="OpenPKG" --quotes=none makeproxy.pod  >makeproxy.8
   162 	pod2man --section=8 --center="OpenPKG" --release="REGISTER(8)"   --date="OpenPKG" --quotes=none register.pod   >register.8
   163 	pod2man --section=8 --center="OpenPKG" --release="LICENSE(8)"    --date="OpenPKG" --quotes=none license.pod    >license.8
   164 	pod2man --section=8 --center="OpenPKG" --release="DEV(8)"        --date="OpenPKG" --quotes=none dev.pod        >dev.8
   165 	pod2man --section=8 --center="OpenPKG" --release="SEA(8)"        --date="OpenPKG" --quotes=none sea.pod        >sea.8
   166 	pod2man --section=8 --center="OpenPKG" --release="STACK(8)"      --date="OpenPKG" --quotes=none stack.pod      >stack.8
   168 ##
   169 ##  All-In-One Steps
   170 ##
   172 bootstrap: build-src-sh build-bin-sh install-bin-sh
   174 update: build-bin-rpm install-bin-rpm
   176 upload: build-src-sh build-src-rpm upload-pkg upload-src

mercurial