Introduced deb packages building tools.

This commit is contained in:
Andrei Belov
2017-10-19 18:23:32 +03:00
parent eabe25d98e
commit 156877f3c9
39 changed files with 1367 additions and 3 deletions

View File

@@ -0,0 +1,32 @@
Source: %%NAME%%
Section: admin
Priority: extra
Maintainer: Andrei Belov <defan@nginx.com>
Build-Depends: debhelper (>= 9),
linux-libc-dev%%MODULE_BUILD_DEPENDS%%
Standards-Version: 3.9.5
Homepage: https://unit.nginx.org
Package: %%NAME%%
Section: admin
Architecture: any
Depends: lsb-base,
${misc:Depends}, ${shlibs:Depends},
unit (= %%UNIT_VERSION%%-%%UNIT_RELEASE%%~%%CODENAME%%)%%MODULE_DEPENDS%%
Description: %%SUMMARY%%
NGINX Unit is a runtime and delivery environment for modern distributed
applications. It runs the application code in multiple languages
(PHP, Python, Go, etc.), and tightly couples it with traffic delivery
in and out of the application. Take this application server and proxy
directly in the cloud / container environments and fully control your app
dynamically via an API.
This package contains %%SUMMARY%%.
Package: %%NAME%%-dbg
Section: debug
Architecture: any
Priority: extra
Depends: %%NAME%% (= ${binary:Version}),
${misc:Depends}
Description: %%SUMMARY%% (debug symbols)
This package contains the debugging symbols for %%NAME%%

View File

@@ -0,0 +1,21 @@
#!/bin/sh
set -e
case "$1" in
install)
%%MODULE_POST%%
;;
upgrade)
;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \`$1'" >&2
exit 0
;;
esac
#DEBHELPER#
exit 0

95
pkg/deb/debian.module/rules.in Executable file
View File

@@ -0,0 +1,95 @@
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
BUILDDIR_unit = $(CURDIR)/debian/build-unit
BUILDDIR_unit_debug = $(CURDIR)/debian/build-unit-debug
INSTALLDIR = $(CURDIR)/debian/%%NAME%%
BASEDIR = $(CURDIR)
%%MODULE_DEFINITIONS%%
config.env.%:
dh_testdir
mkdir -p $(BUILDDIR_$*)
cp -Pa $(CURDIR)/auto $(BUILDDIR_$*)/
cp -Pa $(CURDIR)/configure $(BUILDDIR_$*)/
cp -Pa $(CURDIR)/src $(BUILDDIR_$*)/
cp -Pa $(CURDIR)/test $(BUILDDIR_$*)/
touch $@
configure.unit: config.env.unit
cd $(BUILDDIR_unit) && \
./configure \
%%CONFIGURE_ARGS%% \
--modules=/usr/lib/unit/modules && \
./configure %%MODULE_CONFARGS%%
touch $@
configure.unit_debug: config.env.unit_debug
cd $(BUILDDIR_unit_debug) && \
./configure \
%%CONFIGURE_ARGS%% \
--modules=/usr/lib/unit/debug-modules \
--debug && \
./configure %%MODULE_CONFARGS%%
touch $@
build-arch.%: configure.%
dh_testdir
$(MAKE) -C $(BUILDDIR_$*) %%MODULE_MAKEARGS%%
touch $@
build-indep:
dh_testdir
touch $@
build-arch: build-arch.unit build-arch.unit_debug
dh_testdir
touch $@
build: build-arch build-indep
dh_testdir
touch $@
clean:
dh_testdir
dh_testroot
dh_clean
find $(CURDIR) -maxdepth 1 -size 0 -delete
install: build
dh_testdir
dh_testroot
dh_prep
dh_installdirs
dh_installinit
dh_installlogrotate
%%MODULE_PREINSTALL%%
cd $(BUILDDIR_unit) && \
DESTDIR=$(INSTALLDIR) make %%MODULE_INSTARGS%%
cd $(BUILDDIR_unit_debug) && \
DESTDIR=$(INSTALLDIR) make %%MODULE_INSTARGS%%
binary-indep: build install
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_link
dh_strip --dbg-package=%%NAME%%-dbg
dh_shlibdeps
dh_compress
dh_fixperms
dh_installdeb
dh_perl
dh_gencontrol
dh_md5sums
dh_builddeb
binary-arch: install
binary: binary-indep binary-arch
.PHONY: clean binary-indep binary-arch binary install build

View File

@@ -0,0 +1,20 @@
package main
import (
"fmt"
"net/http"
"unit"
)
func handler(w http.ResponseWriter, r *http.Request) {
w.Header().Add("Content-Type", "text/plain");
fmt.Fprintf(w, "Method : %s\n", r.Method)
fmt.Fprintf(w, "URL : %s\n", r.URL.Path)
fmt.Fprintf(w, "Host : %s\n", r.Host)
}
func main() {
http.HandleFunc("/", handler)
unit.ListenAndServe("8000", nil)
}

View File

@@ -0,0 +1,15 @@
{
"applications": {
"example_go": {
"type": "go",
"user": "nobody",
"executable": "/tmp/go-app"
}
},
"listeners": {
"*:8500": {
"application": "example_go"
}
}
}

View File

@@ -0,0 +1,15 @@
{
"applications": {
"example_go": {
"type": "go",
"user": "nobody",
"executable": "/tmp/go1.7-app"
}
},
"listeners": {
"*:8500": {
"application": "example_go"
}
}
}

View File

@@ -0,0 +1,15 @@
{
"applications": {
"example_go": {
"type": "go",
"user": "nobody",
"executable": "/tmp/go1.8-app"
}
},
"listeners": {
"*:8500": {
"application": "example_go"
}
}
}

View File

@@ -0,0 +1 @@
<?php phpinfo(); ?>

View File

@@ -0,0 +1,17 @@
{
"applications": {
"example_php": {
"type": "php",
"user": "nobody",
"workers": 2,
"root": "/usr/share/doc/unit-php/examples/phpinfo-app",
"index": "index.php"
}
},
"listeners": {
"*:8300": {
"application": "example_php"
}
}
}

View File

@@ -0,0 +1,16 @@
import os
import datetime
import sys
def application(environ, start_response):
output = datetime.datetime.now().strftime("%Y-%m-%d %I:%M:%S %p")
output += "\n\nPython: "
output += sys.version
output += "\n\nENV Variables:\n\n"
for param in os.environ.keys():
output += param
output += "\t"
output += os.environ[param]
output += "\n"
start_response('200 OK', [('Content-type', 'text/plain')])
return [s.encode('utf8') for s in output]

View File

@@ -0,0 +1,17 @@
{
"applications": {
"example_python": {
"type": "python",
"user": "nobody",
"workers": 2,
"path": "/usr/share/doc/unit-python/examples/python-app",
"module": "wsgi"
}
},
"listeners": {
"*:8400": {
"application": "example_python"
}
}
}

View File

@@ -0,0 +1,17 @@
{
"applications": {
"example_python": {
"type": "python",
"user": "nobody",
"workers": 2,
"path": "/usr/share/doc/unit-python2.7/examples/python-app",
"module": "wsgi"
}
},
"listeners": {
"*:8400": {
"application": "example_python"
}
}
}

View File

@@ -0,0 +1,17 @@
{
"applications": {
"example_python": {
"type": "python",
"user": "nobody",
"workers": 2,
"path": "/usr/share/doc/unit-python3.4/examples/python-app",
"module": "wsgi"
}
},
"listeners": {
"*:8400": {
"application": "example_python"
}
}
}

View File

@@ -0,0 +1,17 @@
{
"applications": {
"example_python": {
"type": "python",
"user": "nobody",
"workers": 2,
"path": "/usr/share/doc/unit-python3.5/examples/python-app",
"module": "wsgi"
}
},
"listeners": {
"*:8400": {
"application": "example_python"
}
}
}