Skip site navigation (1)Skip section navigation (2)
Date:      Sun,  8 Dec 2013 21:12:47 +0100 (CET)
From:      Geoffroy Desvernay <dgeo@centrale-marseille.fr>
To:        FreeBSD-gnats-submit@freebsd.org
Cc:        ruby@FreeBSD.org
Subject:   ports/184604: [PATCH] www/redmine: update to 2.3.4, add UNICORN and STAGE
Message-ID:  <20131208201247.1D9251CCA2@dgeo.sysadm.ec-m.fr>
Resent-Message-ID: <201312082020.rB8KK0rW050276@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         184604
>Category:       ports
>Synopsis:       [PATCH] www/redmine: update to 2.3.4, add UNICORN and STAGE
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Dec 08 20:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Geoffroy Desvernay
>Release:        FreeBSD 10.0-BETA4 amd64
>Organization:
Ecole Centrale de Marseille
>Environment:
System: FreeBSD dgeo.sysadm.ec-m.fr 10.0-BETA4 FreeBSD 10.0-BETA4 #0: Mon Dec  2 18:21:18 CET
>Description:
- Update to 2.3.4
- Add UNICORN option (depend on unicorn and install example config)
  see also ports/184592, this should permit a quick unicorn setup
- enable STAGE-ing
- move some chmod/chown to plist as suggested by https://wiki.freebsd.org/ports/StageDir
- use OPTIONSng helpers to simplify a bit

Port maintainer (ruby@FreeBSD.org) is cc'd.

Generated with FreeBSD Port Tools 0.99_11 (mode: update, diff: SVN)
>How-To-Repeat:
>Fix:

--- redmine-2.3.4.patch begins here ---
Index: Makefile
===================================================================
--- Makefile	(revision 335926)
+++ Makefile	(working copy)
@@ -2,8 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	redmine
-PORTVERSION=	2.3.3
-PORTREVISION=	2
+PORTVERSION=	2.3.4
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_RUBYFORGE}
 MASTER_SITE_SUBDIR=	${PORTNAME}
@@ -27,11 +26,12 @@
 USE_RAKE=	yes
 NO_BUILD=	yes
 SUB_LIST+=	RUBY_NAME=${RUBY_NAME}
+SUB_FILES=	pkg-message
 
 OPTIONS_DEFINE=	MYSQL MYSQL2 POSTGRESQL RMAGIC WWWSERVER
 OPTIONS_DEFAULT=MYSQL2 RMAGIC WWWSERVER THIN
 OPTIONS_SINGLE=	WWWSERVER
-OPTIONS_SINGLE_WWWSERVER=	THIN PASSENGER
+OPTIONS_SINGLE_WWWSERVER=	THIN PASSENGER UNICORN
 POSTGRESQL_DESC=Enable PostgreSQL support
 RMAGIC_DESC=	Enable Gantt charts support
 THIN_DESC=	Use Thin WEB server
@@ -38,42 +38,39 @@
 PASSENGER_DESC=	Use Apache/Nginx WEB server
 MYSQL2_DESC=	MySQL database support (via mysql2 rubygem)
 NO_OPTIONS_SORT=yes
+OPTIONS_SUB=	yes
 
-NO_STAGE=	yes
-.include <bsd.port.pre.mk>
+MYSQL_RUN_DEPENDS=	rubygem-mysql>=2.8.1:${PORTSDIR}/databases/rubygem-mysql
+MYSQL2_RUN_DEPENDS=	rubygem-mysql2>=0:${PORTSDIR}/databases/rubygem-mysql2
+POSTGRESQL_RUN_DEPENDS=	rubygem-pg>=0:${PORTSDIR}/databases/rubygem-pg
+RMAGIC_RUN_DEPENDS=	rubygem-rmagick>=2.0.0:${PORTSDIR}/graphics/rubygem-rmagick
 
-.if ${PORT_OPTIONS:MMYSQL}
-RUN_DEPENDS+=	rubygem-mysql>=2.8.1:${PORTSDIR}/databases/rubygem-mysql
-.endif
+.include <bsd.port.options.mk>
 
-.if ${PORT_OPTIONS:MMYSQL2}
-RUN_DEPENDS+=	rubygem-mysql2>=0:${PORTSDIR}/databases/rubygem-mysql2
-.endif
-
-.if ${PORT_OPTIONS:MPOSTGRESQL}
-RUN_DEPENDS+=	rubygem-pg>=0:${PORTSDIR}/databases/rubygem-pg
-.endif
-
-.if ${PORT_OPTIONS:MRMAGIC}
-RUN_DEPENDS+=	rubygem-rmagick>=2.0.0:${PORTSDIR}/graphics/rubygem-rmagick
-.else
-EXTRA_PATCHES+=	${FILESDIR}/extra-patch-Gemfile
-.endif
-
 .if ${PORT_OPTIONS:MWWWSERVER}
-.if ${PORT_OPTIONS:MTHIN}
 USERS=		${WWWOWN}
 GROUPS=		${WWWGRP}
+SUB_LIST+=	WWWSERVER="" WWWOWN=${WWWOWN} WWWGRP=${WWWGRP}
+PLIST_SUB+=	WWWSERVER="" WWWOWN=${WWWOWN} WWWGRP=${WWWGRP}
+.if ${PORT_OPTIONS:MTHIN}
 RUN_DEPENDS+=	thin:${PORTSDIR}/www/rubygem-thin
 USE_RC_SUBR=	redmine
-SUB_LIST+=	WWWOWN=${WWWOWN} WWWGRP=${WWWGRP}
 .endif
 
 .if ${PORT_OPTIONS:MPASSENGER}
 RUN_DEPENDS+=	passenger-config:${PORTSDIR}/www/rubygem-passenger
 .endif
+
+.if ${PORT_OPTIONS:MUNICORN}
+RUN_DEPENDS+=	unicorn:${PORTSDIR}/www/rubygem-unicorn
+SUB_LIST+=	UNICORN=""
+.else
+SUB_LIST+=	UNICORN="@comment "
 .endif
+.endif
 
+.include <bsd.port.pre.mk>
+
 post-extract:
 	${MV} ${WRKSRC}/config/settings.yml ${WRKSRC}/config/settings.yml-dist
 
@@ -81,24 +78,22 @@
 	${MKDIR} ${WRKSRC}/public/plugin_assets
 
 do-install:
-	${MKDIR} ${WWWDIR}
-	${MKDIR} ${WWWDIR}/tmp/pids
+	${MKDIR} ${STAGEDIR}${WWWDIR}
+	${MKDIR} ${STAGEDIR}${WWWDIR}/tmp/pids
+.if ${PORT_OPTIONS:MWWWSERVER}
+.if ${PORT_OPTIONS:MUNICORN}
+	${CP} -p ${FILESDIR}/unicorn.config.rb.sample ${WRKSRC}/config/unicorn.config.rb.sample
+.endif
+.endif
+	${TOUCH} ${WRKSRC}/Gemfile.lock
+	${FIND} ${WRKSRC}/script -type f -print | ${XARGS} ${CHMOD} 755
 	cd ${WRKSRC} && \
-	${COPYTREE_SHARE} "*" ${WWWDIR} "! ( -name *\.orig -o -name *\.bak )"
-	${FIND} ${WRKSRC}/script -type f -print | ${XARGS} ${CHMOD} 755
+	${COPYTREE_SHARE} "*" ${STAGEDIR}${WWWDIR} "! ( -name *\.orig -o -name *\.bak )"
 
 post-install:
-	${TOUCH} ${WWWDIR}/Gemfile.lock
-	${CHOWN} ${WWWOWN}:${WWWGRP} ${WWWDIR}/Gemfile.lock
-	
-	if ! [ -r ${WWWDIR}/config/settings.yml ]; then			\
-		${INSTALL_DATA} ${WWWDIR}/config/settings.yml-dist	\
-			${WWWDIR}/config/settings.yml;			\
-	fi
-	for subdir in files log tmp public/plugin_assets; do \
-		${CHOWN} -R :${WWWGRP} ${WWWDIR}/$$subdir; \
-		${CHMOD} -R g+w ${WWWDIR}/$$subdir; \
+	@for subdir in files log tmp public/plugin_assets; do \
+		${CHOWN} -R :${WWWGRP} ${STAGEDIR}${WWWDIR}/$$subdir; \
+		${CHMOD} -R g+w ${STAGEDIR}${WWWDIR}/$$subdir; \
 	done
-	@${CAT} ${PKGMESSAGE}
 
 .include <bsd.port.post.mk>
Index: distinfo
===================================================================
--- distinfo	(revision 335926)
+++ distinfo	(working copy)
@@ -1,2 +1,2 @@
-SHA256 (redmine-2.3.3.tar.gz) = dbec7b62417b8cd36c02bf98f38d26429c27b67430217879ce8fe25af6add97b
-SIZE (redmine-2.3.3.tar.gz) = 3803852
+SHA256 (redmine-2.3.4.tar.gz) = 0b435f4b121baf4cea9f66dbf9558c9e3a8a3239f99ef1e46c9044b4d9d327c6
+SIZE (redmine-2.3.4.tar.gz) = 3810010
Index: files/extra-patch-Gemfile
===================================================================
--- files/extra-patch-Gemfile	(revision 335926)
+++ files/extra-patch-Gemfile	(working copy)
@@ -1,19 +0,0 @@
---- ./Gemfile.orig	2013-07-30 12:49:03.000000000 -0400
-+++ ./Gemfile	2013-07-30 12:49:13.000000000 -0400
-@@ -18,16 +18,6 @@
-   gem "rack-openid"
- end
- 
--# Optional gem for exporting the gantt to a PNG file, not supported with jruby
--platforms :mri, :mingw do
--  group :rmagick do
--    # RMagick 2 supports ruby 1.9
--    # RMagick 1 would be fine for ruby 1.8 but Bundler does not support
--    # different requirements for the same gem on different platforms
--    gem "rmagick", ">= 2.0.0"
--  end
--end
--
- platforms :jruby do
-   # jruby-openssl is bundled with JRuby 1.7.0
-   gem "jruby-openssl" if Object.const_defined?(:JRUBY_VERSION) && JRUBY_VERSION < '1.7.0'
Index: files/patch-Gemfile
===================================================================
--- files/patch-Gemfile	(revision 335926)
+++ files/patch-Gemfile	(working copy)
@@ -1,59 +0,0 @@
---- Gemfile.orig	2013-09-14 06:48:49.000000000 +0000
-+++ Gemfile	2013-10-28 18:11:49.154289224 +0000
-@@ -1,11 +1,11 @@
- source 'https://rubygems.org'
- 
--gem "rails", "3.2.13"
--gem "jquery-rails", "~> 2.0.2"
-+gem "rails", "3.2.15"
-+gem "jquery-rails", "~> 3.0"
- gem "i18n", "~> 0.6.0"
--gem "coderay", "~> 1.0.9"
-+gem "coderay", "~> 1.1.0"
- gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
--gem "builder", "3.0.0"
-+gem "builder", "~> 3.0.0"
- 
- # Optional gem for LDAP authentication
- group :ldap do
-@@ -14,7 +14,7 @@
- 
- # Optional gem for OpenID authentication
- group :openid do
--  gem "ruby-openid", "~> 2.2.3", :require => "openid"
-+  gem "ruby-openid", "~> 2.2", :require => "openid"
-   gem "rack-openid"
- end
- 
-@@ -46,10 +46,10 @@
-     adapters.each do |adapter|
-       case adapter
-       when 'mysql2'
--        gem "mysql2", "~> 0.3.11", :platforms => [:mri, :mingw]
-+        gem "mysql2", "~> 0.3", :platforms => [:mri, :mingw]
-         gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
-       when 'mysql'
--        gem "mysql", "~> 2.8.1", :platforms => [:mri, :mingw]
-+        gem "mysql", "~> 2.8", :platforms => [:mri, :mingw]
-         gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
-       when /postgresql/
-         gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw]
-@@ -71,18 +71,6 @@
-   warn("Please configure your config/database.yml first")
- end
- 
--group :development do
--  gem "rdoc", ">= 2.4.2"
--  gem "yard"
--end
--
--group :test do
--  gem "shoulda", "~> 3.3.2"
--  gem "mocha", "~> 0.13.3"
--  gem 'capybara', '~> 2.0.0'
--  gem 'nokogiri', '< 1.6.0'
--end
--
- local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
- if File.exists?(local_gemfile)
-   puts "Loading Gemfile.local ..." if $DEBUG # `ruby -d` or `bundle -v`
Index: files/pkg-message.in
===================================================================
--- files/pkg-message.in	(revision 0)
+++ files/pkg-message.in	(working copy)
@@ -0,0 +1,23 @@
+=============================================================================
+
+Redmine was installed.
+
+You now need to setup your Redmine installation so
+please have a look at the Installation Guide.
+
+http://www.redmine.org/wiki/redmine/RedmineInstall
+
+
+If you are upgrading please read the Upgrading Guide
+before starting the new version.
+
+http://www.redmine.org/wiki/redmine/RedmineUpgrade
+
+=============================================================================
+%%WWWSERVER%%%%UNICORN%%You configured redmine to work with unicorn:
+%%WWWSERVER%%%%UNICORN%%
+%%WWWSERVER%%%%UNICORN%% a sample unicorn config file was created to
+%%WWWSERVER%%%%UNICORN%% %%WWWDIR%%/config/unicorn.config.rb
+%%WWWSERVER%%%%UNICORN%%
+%%WWWSERVER%%%%UNICORN%%You still need to launch unicorn ...
+%%WWWSERVER%%%%UNICORN%%=============================================================================

Property changes on: files/pkg-message.in
___________________________________________________________________
Added: fbsd:nokeywords
## -0,0 +1 ##
+yes
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Index: files/unicorn.config.rb.sample
===================================================================
--- files/unicorn.config.rb.sample	(revision 0)
+++ files/unicorn.config.rb.sample	(working copy)
@@ -0,0 +1,37 @@
+worker_processes 2
+working_directory "/usr/local/www/redmine"
+ 
+#listen File.expand_path("tmp/unicorn.sock", ENV['RAILS_ROOT'])
+#listen "/var/tmp/unicorn_redmine.sock", :backlog => 64
+#listen 3030,tcp_nopush => true
+pid File.expand_path("tmp/unicorn.pid", ENV['RAILS_ROOT'])
+ 
+timeout 60
+ 
+preload_app true
+ 
+stdout_path File.expand_path("log/unicorn.stdout.log", ENV['RAILS_ROOT'])
+stderr_path File.expand_path("log/unicorn.stderr.log", ENV['RAILS_ROOT'])
+ 
+GC.respond_to?(:copy_on_write_friendly=) and GC.copy_on_write_friendly = true
+ 
+check_client_connection false
+
+before_fork do |server, worker|
+  defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
+ 
+  old_pid = "#{server.config[:pid]}.oldbin"
+    if old_pid != server.pid
+      begin
+        sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
+        Process.kill(sig, File.read(old_pid).to_i)
+      rescue Errno::ENOENT, Errno::ESRCH
+      end 
+    end 
+ 
+    sleep 1
+  end 
+ 
+after_fork do |server, worker|
+  defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
+end
Index: pkg-message
===================================================================
--- pkg-message	(revision 335926)
+++ pkg-message	(working copy)
@@ -1,16 +0,0 @@
-=============================================================================
-
-Redmine was installed.
-
-You now need to setup your Redmine installation so
-please have a look at the Installation Guide.
-
-http://www.redmine.org/wiki/redmine/RedmineInstall
-
-
-If you are upgrading please read the Upgrading Guide
-before starting the new version.
-
-http://www.redmine.org/wiki/redmine/RedmineUpgrade
-
-=============================================================================
Index: pkg-plist
===================================================================
--- pkg-plist	(revision 335926)
+++ pkg-plist	(working copy)
@@ -1,5 +1,4 @@
 %%WWWDIR%%/Gemfile
-%%WWWDIR%%/Gemfile.lock
 %%WWWDIR%%/README.rdoc
 %%WWWDIR%%/Rakefile
 %%WWWDIR%%/app/helpers/issue_statuses_helper.rb
@@ -575,8 +574,6 @@
 %%WWWDIR%%/config/environment.rb
 %%WWWDIR%%/config/application.rb
 %%WWWDIR%%/config/preinitializer.rb
-%%WWWDIR%%/config/settings.yml-dist
-%%WWWDIR%%/config/settings.yml
 %%WWWDIR%%/config.ru
 %%WWWDIR%%/db/migrate/001_setup.rb
 %%WWWDIR%%/db/migrate/20091017212644_add_missing_indexes_to_messages.rb
@@ -823,7 +820,6 @@
 %%WWWDIR%%/extra/sample_plugin/config/routes.rb
 %%WWWDIR%%/extra/sample_plugin/init.rb
 %%WWWDIR%%/extra/mail_handler/rdm-mailhandler.rb
-%%WWWDIR%%/files/delete.me
 %%WWWDIR%%/lib/redcloth3.rb
 %%WWWDIR%%/lib/SVG/GPL.txt
 %%WWWDIR%%/lib/SVG/LICENSE.txt
@@ -1147,7 +1143,6 @@
 %%WWWDIR%%/lib/plugins/acts_as_versioned/init.rb
 %%WWWDIR%%/lib/plugins/acts_as_versioned/MIT-LICENSE
 %%WWWDIR%%/lib/plugins/acts_as_versioned/CHANGELOG
-%%WWWDIR%%/log/delete.me
 %%WWWDIR%%/plugins/README
 %%WWWDIR%%/public/404.html
 %%WWWDIR%%/public/help/wiki_syntax.html
@@ -1413,8 +1408,6 @@
 %%WWWDIR%%/public/javascripts/i18n/jquery.ui.datepicker-fi.js
 %%WWWDIR%%/public/javascripts/select_list_move.js
 %%WWWDIR%%/public/javascripts/raphael.js
-%%WWWDIR%%/script/about
-%%WWWDIR%%/script/rails
 %%WWWDIR%%/test/mocks/open_id_authentication_mock.rb
 %%WWWDIR%%/test/object_helpers.rb
 %%WWWDIR%%/test/test_helper.rb
@@ -1773,9 +1766,24 @@
 %%WWWDIR%%/test/extra/redmine_pm/repository_subversion_test.rb
 %%WWWDIR%%/test/extra/redmine_pm/test_case.rb
 %%WWWDIR%%/test/extra/redmine_pm/repository_git_test.rb
+@unexec if cmp -s %D/%%WWWDIR%%/config/settings.yml %D/%%WWWDIR%%/config/settings.yml-dist ; then rm -f %D/%%WWWDIR%%/config/settings.yml; fi
+%%WWWDIR%%/config/settings.yml-dist
+@exec if [ ! -f %D/%%WWWDIR%%/config/settings.yml ]; then cp -p %D/%%WWWDIR%%/config/settings.yml-dist %D/%%WWWDIR%%/config/settings.yml; fi
+%%WWWSERVER%%%%UNICORN%%@unexec if cmp -s %D/%%WWWDIR%%/config/unicorn.config.rb %D/%%WWWDIR%%/config/unicorn.config.rb.sample ; then rm -f %D/%%WWWDIR%%/config/unicorn.config.rb; fi
+%%WWWSERVER%%%%UNICORN%%%%WWWDIR%%/config/unicorn.config.rb.sample
+%%WWWSERVER%%%%UNICORN%%@exec if [ ! -f %D/%%WWWDIR%%/config/unicorn.config.rb ]; then cp -p %D/%%WWWDIR%%/config/unicorn.config.rb.sample %D/%%WWWDIR%%/config/unicorn.config.rb; fi
+@mode 755
+%%WWWDIR%%/script/about
+%%WWWDIR%%/script/rails
+@group %%WWWGRP%%
+@mode g+w
+%%WWWDIR%%/files/delete.me
+%%WWWDIR%%/log/delete.me
 %%WWWDIR%%/tmp/test/empty
 %%WWWDIR%%/tmp/pdf/empty
 %%WWWDIR%%/tmp/thumbnails/empty
+@owner %%WWWOWN%%
+%%WWWDIR%%/Gemfile.lock
 @dirrmtry %%WWWDIR%%/vendor
 @dirrmtry %%WWWDIR%%/tmp/thumbnails
 @dirrmtry %%WWWDIR%%/tmp/test
--- redmine-2.3.4.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131208201247.1D9251CCA2>