summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMax Romanov <max.romanov@nginx.com>2017-12-01 16:59:41 +0300
committerMax Romanov <max.romanov@nginx.com>2017-12-01 16:59:41 +0300
commitcdf900cf2c98b4e3fad11e8b69cd2135f2c306c7 (patch)
treeda2ed9180008803fcc0500c28191d8c2643df891
parent40eb1f8b9b2a76d76ef6a4a094bf8192a44cbe41 (diff)
downloadunit-cdf900cf2c98b4e3fad11e8b69cd2135f2c306c7.tar.gz
unit-cdf900cf2c98b4e3fad11e8b69cd2135f2c306c7.tar.bz2
Packaging changes for updated Go package.
- package name changed to 'nginx/unit'; - source files installed in /usr/share/gocode; - rpm and deb go packages made noarch.
-rw-r--r--pkg/deb/Makefile6
-rw-r--r--pkg/deb/Makefile.go9
-rw-r--r--pkg/deb/Makefile.go1713
-rw-r--r--pkg/deb/Makefile.go1813
-rw-r--r--pkg/deb/debian.module/control-noarch.in23
-rwxr-xr-xpkg/deb/debian.module/rules-noarch.in93
-rw-r--r--pkg/deb/debian.module/unit.example-go-app2
-rw-r--r--pkg/deb/debian/unit.example-go-app2
-rw-r--r--pkg/rpm/Makefile.go13
-rw-r--r--pkg/rpm/rpmbuild/SOURCES/unit.example-go-app2
10 files changed, 140 insertions, 36 deletions
diff --git a/pkg/deb/Makefile b/pkg/deb/Makefile
index fb31ad2b..6fdb667d 100644
--- a/pkg/deb/Makefile
+++ b/pkg/deb/Makefile
@@ -144,7 +144,7 @@ debuild-%: debuild/unit_$(VERSION).orig.tar.gz ../../docs/changes.xml
> $@/$(SRCDIR)/debian/changelog
cp debian/copyright debuild-$*/$(SRCDIR)/debian/
@{ \
- set -e ; \
+ set -e ; \
for src in $(MODULE_SOURCES_$*); do \
cp debian.module/$${src} $@/$(SRCDIR)/debian/ ; \
done ; \
@@ -152,7 +152,7 @@ debuild-%: debuild/unit_$(VERSION).orig.tar.gz ../../docs/changes.xml
prebuild=`echo "$$MODULE_PREBUILD_$*" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
preinstall=`echo "$$MODULE_PREINSTALL_$*" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
post=`echo "$$MODULE_POST_$*" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
- cat debian.module/control.in | sed \
+ cat debian.module/$(if $(MODULE_NOARCH_$*),control-noarch.in,control.in) | sed \
-e "s#%%NAME%%#unit-$(MODULE_SUFFIX_$*)#g" \
-e "s#%%SUMMARY%%#$(MODULE_SUMMARY_$*)#g" \
-e "s#%%CODENAME%%#$(CODENAME)#g" \
@@ -163,7 +163,7 @@ debuild-%: debuild/unit_$(VERSION).orig.tar.gz ../../docs/changes.xml
-e "s#%%MODULE_BUILD_DEPENDS%%#$(MODULE_BUILD_DEPENDS_$*)#g" \
-e "s#%%MODULE_DEPENDS%%#$(MODULE_DEPENDS_$*)#g" \
> $@/$(SRCDIR)/debian/control ; \
- cat debian.module/rules.in | sed \
+ cat debian.module/$(if $(MODULE_NOARCH_$*),rules-noarch.in,rules.in) | sed \
-e "s#%%NAME%%#unit-$(MODULE_SUFFIX_$*)#g" \
-e "s#%%CODENAME%%#$(CODENAME)#g" \
-e "s#%%UNIT_VERSION%%#$(VERSION)#g" \
diff --git a/pkg/deb/Makefile.go b/pkg/deb/Makefile.go
index d960a68d..53ed6b4c 100644
--- a/pkg/deb/Makefile.go
+++ b/pkg/deb/Makefile.go
@@ -6,7 +6,7 @@ MODULE_SUMMARY_go= Go module for NGINX Unit
MODULE_VERSION_go= $(VERSION)
MODULE_RELEASE_go= 1
-MODULE_CONFARGS_go= go --go-path=\$$(GOROOT)
+MODULE_CONFARGS_go= go --go-path=/usr/share/gocode
MODULE_MAKEARGS_go= go
MODULE_INSTARGS_go= go-install
@@ -18,10 +18,7 @@ BUILD_DEPENDS+= golang
MODULE_BUILD_DEPENDS_go=,golang
MODULE_DEPENDS_go=,golang
-define MODULE_DEFINITIONS_go
-GOROOT = $(shell go env GOROOT)
-endef
-export MODULE_DEFINITIONS_go
+MODULE_NOARCH_go= true
define MODULE_PREINSTALL_go
mkdir -p debian/unit-go/usr/share/doc/unit-go/examples/go-app
@@ -38,7 +35,7 @@ The $(MODULE_SUMMARY_go) has been installed.
To check out the sample app, run these commands:
- go build -o /tmp/go-app /usr/share/doc/unit-go/examples/go-app/let-my-people.go
+ GOPATH=/usr/share/gocode go build -o /tmp/go-app /usr/share/doc/unit-go/examples/go-app/let-my-people.go
sudo service unit restart
sudo service unit loadconfig /usr/share/doc/unit-go/examples/unit.config
curl http://localhost:8500/
diff --git a/pkg/deb/Makefile.go17 b/pkg/deb/Makefile.go17
index 7fbfd360..8c2ee1b2 100644
--- a/pkg/deb/Makefile.go17
+++ b/pkg/deb/Makefile.go17
@@ -6,7 +6,7 @@ MODULE_SUMMARY_go17= Go 1.7 module for NGINX Unit
MODULE_VERSION_go17= $(VERSION)
MODULE_RELEASE_go17= 1
-MODULE_CONFARGS_go17= go --go=/usr/lib/go-1.7/bin/go --go-path=\$$(GOROOT)
+MODULE_CONFARGS_go17= go --go=/usr/lib/go-1.7/bin/go --go-path=/usr/share/gocode
MODULE_MAKEARGS_go17= /usr/lib/go-1.7/bin/go
MODULE_INSTARGS_go17= /usr/lib/go-1.7/bin/go-install
@@ -15,13 +15,10 @@ MODULE_SOURCES_go17= unit.example-go-app \
BUILD_DEPENDS+= golang-1.7
-MODULE_BUILD_DEPENDS_go=,golang-1.7
-MODULE_DEPENDS_go=,golang-1.7
+MODULE_BUILD_DEPENDS_go17=,golang-1.7
+MODULE_DEPENDS_go17=,golang-1.7
-define MODULE_DEFINITIONS_go17
-GOROOT = \$$(shell /usr/lib/go-1.7/bin/go env GOROOT)
-endef
-export MODULE_DEFINITIONS_go17
+MODULE_NOARCH_go17= true
define MODULE_PREINSTALL_go17
mkdir -p debian/unit-go1.7/usr/share/doc/unit-go1.7/examples/go-app
@@ -38,7 +35,7 @@ The $(MODULE_SUMMARY_go17) has been installed.
To check out the sample app, run these commands:
- /usr/lib/go-1.7/bin/go build -o /tmp/go1.7-app /usr/share/doc/unit-go1.7/examples/go-app/let-my-people.go
+ GOPATH=/usr/share/gocode /usr/lib/go-1.7/bin/go build -o /tmp/go1.7-app /usr/share/doc/unit-go1.7/examples/go-app/let-my-people.go
sudo service unit restart
sudo service unit loadconfig /usr/share/doc/unit-go1.7/examples/unit.config
curl http://localhost:8500/
diff --git a/pkg/deb/Makefile.go18 b/pkg/deb/Makefile.go18
index 4f15bbc9..2f427da4 100644
--- a/pkg/deb/Makefile.go18
+++ b/pkg/deb/Makefile.go18
@@ -6,7 +6,7 @@ MODULE_SUMMARY_go18= Go 1.8 module for NGINX Unit
MODULE_VERSION_go18= $(VERSION)
MODULE_RELEASE_go18= 1
-MODULE_CONFARGS_go18= go --go=/usr/lib/go-1.8/bin/go --go-path=\$$(GOROOT)
+MODULE_CONFARGS_go18= go --go=/usr/lib/go-1.8/bin/go --go-path=/usr/share/gocode
MODULE_MAKEARGS_go18= /usr/lib/go-1.8/bin/go
MODULE_INSTARGS_go18= /usr/lib/go-1.8/bin/go-install
@@ -15,13 +15,10 @@ MODULE_SOURCES_go18= unit.example-go-app \
BUILD_DEPENDS+= golang-1.8
-MODULE_BUILD_DEPENDS_go=,golang-1.8
-MODULE_DEPENDS_go=,golang-1.8
+MODULE_BUILD_DEPENDS_go18=,golang-1.8
+MODULE_DEPENDS_go18=,golang-1.8
-define MODULE_DEFINITIONS_go18
-GOROOT = \$$(shell /usr/lib/go-1.8/bin/go env GOROOT)
-endef
-export MODULE_DEFINITIONS_go18
+MODULE_NOARCH_go18= true
define MODULE_PREINSTALL_go18
mkdir -p debian/unit-go1.8/usr/share/doc/unit-go1.8/examples/go-app
@@ -38,7 +35,7 @@ The $(MODULE_SUMMARY_go18) has been installed.
To check out the sample app, run these commands:
- /usr/lib/go-1.8/bin/go build -o /tmp/go1.8-app /usr/share/doc/unit-go1.8/examples/go-app/let-my-people.go
+ GOPATH=/usr/share/gocode /usr/lib/go-1.8/bin/go build -o /tmp/go1.8-app /usr/share/doc/unit-go1.8/examples/go-app/let-my-people.go
sudo service unit restart
sudo service unit loadconfig /usr/share/doc/unit-go1.8/examples/unit.config
curl http://localhost:8500/
diff --git a/pkg/deb/debian.module/control-noarch.in b/pkg/deb/debian.module/control-noarch.in
new file mode 100644
index 00000000..e22bb49a
--- /dev/null
+++ b/pkg/deb/debian.module/control-noarch.in
@@ -0,0 +1,23 @@
+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: all
+Depends: lsb-base,
+ ${misc: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%%.
diff --git a/pkg/deb/debian.module/rules-noarch.in b/pkg/deb/debian.module/rules-noarch.in
new file mode 100755
index 00000000..d74420c1
--- /dev/null
+++ b/pkg/deb/debian.module/rules-noarch.in
@@ -0,0 +1,93 @@
+#!/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_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
diff --git a/pkg/deb/debian.module/unit.example-go-app b/pkg/deb/debian.module/unit.example-go-app
index ef2568ec..7ca0c9fd 100644
--- a/pkg/deb/debian.module/unit.example-go-app
+++ b/pkg/deb/debian.module/unit.example-go-app
@@ -3,7 +3,7 @@ package main
import (
"fmt"
"net/http"
- "unit"
+ "nginx/unit"
)
func handler(w http.ResponseWriter, r *http.Request) {
diff --git a/pkg/deb/debian/unit.example-go-app b/pkg/deb/debian/unit.example-go-app
index ef2568ec..7ca0c9fd 100644
--- a/pkg/deb/debian/unit.example-go-app
+++ b/pkg/deb/debian/unit.example-go-app
@@ -3,7 +3,7 @@ package main
import (
"fmt"
"net/http"
- "unit"
+ "nginx/unit"
)
func handler(w http.ResponseWriter, r *http.Request) {
diff --git a/pkg/rpm/Makefile.go b/pkg/rpm/Makefile.go
index 9dfbca77..37cf53cb 100644
--- a/pkg/rpm/Makefile.go
+++ b/pkg/rpm/Makefile.go
@@ -5,7 +5,7 @@ MODULE_SUMMARY_go= Go module for NGINX Unit
MODULE_VERSION_go= $(VERSION)
MODULE_RELEASE_go= 1
-MODULE_CONFARGS_go= go --go-path=%{goroot}
+MODULE_CONFARGS_go= go --go-path=%{gopath}
MODULE_MAKEARGS_go= go
MODULE_INSTARGS_go= go-install
@@ -15,11 +15,9 @@ MODULE_SOURCES_go= unit.example-go-app \
BUILD_DEPENDS+= golang
define MODULE_DEFINITIONS_go
-%define goroot %(go env GOROOT)
-%define goos %(go env GOOS)
-%define goarch %(go env GOARCH)
BuildRequires: golang
+BuildArch: noarch
endef
export MODULE_DEFINITIONS_go
@@ -36,9 +34,8 @@ endef
export MODULE_PREINSTALL_go
define MODULE_FILES_go
-%dir %{goroot}/src/unit
-%{goroot}/src/unit/*
-%{goroot}/pkg/%{goos}_%{goarch}/unit.a
+%dir %{gopath}/src/nginx/unit
+%{gopath}/src/nginx/unit/*
endef
export MODULE_FILES_go
@@ -50,7 +47,7 @@ The $(MODULE_SUMMARY_go) has been installed.
To check the sample app, run these commands:
- go build -o /tmp/go-app /usr/share/doc/unit-go/examples/go-app/let-my-people.go
+ GOPATH=/usr/share/gocode go build -o /tmp/go-app /usr/share/doc/unit-go/examples/go-app/let-my-people.go
sudo service unit start
sudo service unit loadconfig /usr/share/doc/unit-go/examples/unit.config
curl http://localhost:8500/
diff --git a/pkg/rpm/rpmbuild/SOURCES/unit.example-go-app b/pkg/rpm/rpmbuild/SOURCES/unit.example-go-app
index ef2568ec..7ca0c9fd 100644
--- a/pkg/rpm/rpmbuild/SOURCES/unit.example-go-app
+++ b/pkg/rpm/rpmbuild/SOURCES/unit.example-go-app
@@ -3,7 +3,7 @@ package main
import (
"fmt"
"net/http"
- "unit"
+ "nginx/unit"
)
func handler(w http.ResponseWriter, r *http.Request) {