From aa8f2c3295cbf7e1b8e134e70b135e07c35f88e9 Mon Sep 17 00:00:00 2001 From: Andrei Belov Date: Mon, 2 Apr 2018 15:48:33 +0300 Subject: Added Ruby packaging support. --- docs/Makefile | 3 +- docs/changes.xml | 13 +++++ pkg/deb/Makefile | 5 ++ pkg/deb/Makefile.ruby | 47 ++++++++++++++++ pkg/deb/debian.module/unit.example-ruby-app | 7 +++ pkg/deb/debian.module/unit.example-ruby-config | 16 ++++++ pkg/docker/Makefile | 8 ++- pkg/rpm/Makefile | 3 ++ pkg/rpm/Makefile.ruby | 65 +++++++++++++++++++++++ pkg/rpm/rpmbuild/SOURCES/unit.example-ruby-app | 7 +++ pkg/rpm/rpmbuild/SOURCES/unit.example-ruby-config | 16 ++++++ 11 files changed, 187 insertions(+), 3 deletions(-) create mode 100644 pkg/deb/Makefile.ruby create mode 100644 pkg/deb/debian.module/unit.example-ruby-app create mode 100644 pkg/deb/debian.module/unit.example-ruby-config create mode 100644 pkg/rpm/Makefile.ruby create mode 100644 pkg/rpm/rpmbuild/SOURCES/unit.example-ruby-app create mode 100644 pkg/rpm/rpmbuild/SOURCES/unit.example-ruby-config diff --git a/docs/Makefile b/docs/Makefile index 5bc503b9..189fd95c 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -10,7 +10,8 @@ PACKAGES= unit \ unit-python unit-python2.7 unit-python3.4 \ unit-python3.5 unit-python3.6 \ unit-go unit-go1.7 unit-go1.8 unit-go1.9 \ - unit-perl + unit-perl \ + unit-ruby all: changes changelogs diff --git a/docs/changes.xml b/docs/changes.xml index 8a2135e0..5381f446 100644 --- a/docs/changes.xml +++ b/docs/changes.xml @@ -23,6 +23,19 @@ NGINX Unit updated to 0.7. + + + + +Initial release of Ruby module for NGINX Unit. + + + + + + diff --git a/pkg/deb/Makefile b/pkg/deb/Makefile index ad8e642c..73ff2b8d 100644 --- a/pkg/deb/Makefile +++ b/pkg/deb/Makefile @@ -25,6 +25,7 @@ include Makefile.python36 include Makefile.go18 include Makefile.go19 include Makefile.perl +include Makefile.ruby endif # Ubuntu 17.04 @@ -35,6 +36,7 @@ include Makefile.python35 include Makefile.go17 include Makefile.go18 include Makefile.perl +include Makefile.ruby endif # Ubuntu 16.04 @@ -44,6 +46,7 @@ include Makefile.python27 include Makefile.python35 include Makefile.go include Makefile.perl +include Makefile.ruby endif # Ubuntu 14.04 @@ -61,6 +64,7 @@ include Makefile.python35 include Makefile.go17 include Makefile.go18 include Makefile.perl +include Makefile.ruby endif # Debian 8 @@ -69,6 +73,7 @@ include Makefile.php include Makefile.python27 include Makefile.python34 include Makefile.perl +include Makefile.ruby endif CONFIGURE_ARGS=\ diff --git a/pkg/deb/Makefile.ruby b/pkg/deb/Makefile.ruby new file mode 100644 index 00000000..516c41c7 --- /dev/null +++ b/pkg/deb/Makefile.ruby @@ -0,0 +1,47 @@ +MODULES+= ruby +MODULE_SUFFIX_ruby= ruby + +MODULE_SUMMARY_ruby= Ruby module for NGINX Unit + +MODULE_VERSION_ruby= $(VERSION) +MODULE_RELEASE_ruby= 1 + +MODULE_CONFARGS_ruby= ruby +MODULE_MAKEARGS_ruby= ruby +MODULE_INSTARGS_ruby= ruby-install + +MODULE_SOURCES_ruby= unit.example-ruby-app \ + unit.example-ruby-config + +BUILD_DEPENDS_ruby= ruby-dev ruby-rack +BUILD_DEPENDS+= $(BUILD_DEPENDS_ruby) + +MODULE_BUILD_DEPENDS_ruby=,ruby-dev,ruby-rack + +MODULE_DEPENDS_ruby=,ruby-rack + +define MODULE_PREINSTALL_ruby + mkdir -p debian/unit-ruby/usr/share/doc/unit-ruby/examples + install -m 644 -p debian/unit.example-ruby-app debian/unit-ruby/usr/share/doc/unit-ruby/examples/ruby-app.ru + install -m 644 -p debian/unit.example-ruby-config debian/unit-ruby/usr/share/doc/unit-ruby/examples/unit.config +endef +export MODULE_PREINSTALL_ruby + +define MODULE_POST_ruby +cat < 'text/plain', + }, ["Hello from Unit running with Ruby #{RUBY_VERSION}!\n\n"]] +end + +run app diff --git a/pkg/deb/debian.module/unit.example-ruby-config b/pkg/deb/debian.module/unit.example-ruby-config new file mode 100644 index 00000000..53eee534 --- /dev/null +++ b/pkg/deb/debian.module/unit.example-ruby-config @@ -0,0 +1,16 @@ +{ + "applications": { + "example_ruby": { + "type": "ruby", + "user": "nobody", + "processes": 2, + "script": "/usr/share/doc/unit-ruby/examples/ruby-app.ru" + } + }, + + "listeners": { + "*:8700": { + "application": "example_ruby" + } + } +} diff --git a/pkg/docker/Makefile b/pkg/docker/Makefile index 0c5a50ff..140ac5b3 100644 --- a/pkg/docker/Makefile +++ b/pkg/docker/Makefile @@ -10,7 +10,8 @@ CODENAME := stretch UNIT_VERSION = $(VERSION)-$(RELEASE)~$(CODENAME) -MODULES = python2.7 python3.5 php7.0 go1.7-dev go1.8-dev perl5.24 full minimal +MODULES = python2.7 python3.5 php7.0 go1.7-dev go1.8-dev perl5.24 ruby2.3 \ + full minimal MODULE_php7.0="unit=$${UNIT_VERSION} unit-php=$${UNIT_VERSION}" @@ -24,7 +25,9 @@ MODULE_go1.8-dev="unit=$${UNIT_VERSION} unit-go1.8=$${UNIT_VERSION} gcc" MODULE_perl5.24="unit=$${UNIT_VERSION} unit-perl=$${UNIT_VERSION}" -MODULE_full="unit=$${UNIT_VERSION} unit-php=$${UNIT_VERSION} unit-python2.7=$${UNIT_VERSION} unit-python3.5=$${UNIT_VERSION} unit-perl=$${UNIT_VERSION}" +MODULE_ruby2.3="unit=$${UNIT_VERSION} unit-ruby=$${UNIT_VERSION}" + +MODULE_full="unit=$${UNIT_VERSION} unit-php=$${UNIT_VERSION} unit-python2.7=$${UNIT_VERSION} unit-python3.5=$${UNIT_VERSION} unit-perl=$${UNIT_VERSION} unit-ruby=$${UNIT_VERSION}" MODULE_minimal="unit=$${UNIT_VERSION}" @@ -35,6 +38,7 @@ export \ MODULE_go1.7-dev \ MODULE_go1.8-dev \ MODULE_perl5.24 \ + MODULE_ruby2.3 \ MODULE_full \ MODULE_minimal diff --git a/pkg/rpm/Makefile b/pkg/rpm/Makefile index 718b475d..656eea0b 100644 --- a/pkg/rpm/Makefile +++ b/pkg/rpm/Makefile @@ -68,6 +68,7 @@ include Makefile.python27 include Makefile.python34 include Makefile.go include Makefile.perl +include Makefile.ruby endif ifeq ($(OSVER), opensuse-tumbleweed) @@ -76,6 +77,7 @@ include Makefile.python27 include Makefile.python36 include Makefile.go include Makefile.perl +include Makefile.ruby endif ifeq ($(OSVER), sles) @@ -90,6 +92,7 @@ include Makefile.python27 include Makefile.python36 include Makefile.go include Makefile.perl +include Makefile.ruby endif CONFIGURE_ARGS=\ diff --git a/pkg/rpm/Makefile.ruby b/pkg/rpm/Makefile.ruby new file mode 100644 index 00000000..4c7af084 --- /dev/null +++ b/pkg/rpm/Makefile.ruby @@ -0,0 +1,65 @@ +MODULES+= ruby +MODULE_SUFFIX_ruby= ruby + +MODULE_SUMMARY_ruby= Ruby module for NGINX Unit + +MODULE_VERSION_ruby= $(VERSION) +MODULE_RELEASE_ruby= 1 + +MODULE_CONFARGS_ruby= ruby +MODULE_MAKEARGS_ruby= ruby +MODULE_INSTARGS_ruby= ruby-install + +MODULE_SOURCES_ruby= unit.example-ruby-app \ + unit.example-ruby-config + +ifeq ($(OSVER), opensuse-leap) +RACK_PACKAGE= ruby2.1-rubygem-rack +else ifeq ($(OSVER), opensuse-tumbleweed) +RACK_PACKAGE= ruby2.5-rubygem-rack +else +RACK_PACKAGE= rubygem-rack +endif + +BUILD_DEPENDS_ruby= ruby-devel $(RACK_PACKAGE) +BUILD_DEPENDS+= $(BUILD_DEPENDS_ruby) + +define MODULE_DEFINITIONS_ruby +BuildRequires: $(BUILD_DEPENDS_ruby) +Requires: $(RACK_PACKAGE) +endef +export MODULE_DEFINITIONS_ruby + +define MODULE_PREINSTALL_ruby +%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit-ruby/examples +%{__install} -m 644 -p %{SOURCE100} \ + %{buildroot}%{_datadir}/doc/unit-ruby/examples/ruby-app.ru +%{__install} -m 644 -p %{SOURCE101} \ + %{buildroot}%{_datadir}/doc/unit-ruby/examples/unit.config +endef +export MODULE_PREINSTALL_ruby + +define MODULE_FILES_ruby +%{_libdir}/unit/modules/* +%{_libdir}/unit/debug-modules/* +endef +export MODULE_FILES_ruby + +define MODULE_POST_ruby +cat < 'text/plain', + }, ["Hello from Unit running with Ruby #{RUBY_VERSION}!\n\n"]] +end + +run app diff --git a/pkg/rpm/rpmbuild/SOURCES/unit.example-ruby-config b/pkg/rpm/rpmbuild/SOURCES/unit.example-ruby-config new file mode 100644 index 00000000..53eee534 --- /dev/null +++ b/pkg/rpm/rpmbuild/SOURCES/unit.example-ruby-config @@ -0,0 +1,16 @@ +{ + "applications": { + "example_ruby": { + "type": "ruby", + "user": "nobody", + "processes": 2, + "script": "/usr/share/doc/unit-ruby/examples/ruby-app.ru" + } + }, + + "listeners": { + "*:8700": { + "application": "example_ruby" + } + } +} -- cgit