--- Begin Message ---
Package: coquelicot
Version: 0.9.3-1
Tags: patch
Control: block -1 by 774859
Following on from the patches I provided for bug #774859 this patch-series
updates the packaging for the new upstream v0.9.3 - I realise 0.9.2-x is now
frozen for Jessie, but I needed to backport v0.9.3 to a Jessie system, so I
made the attached patches and built (with pbuilder Jessie env) and ran/tested
it on a Jessie server. Perhaps that qualifies this as a "backport" (even though
Jessie isn't the new Stable yet...). Either way it should need trivial/no
changes for the patches to work in Unstable.
Note that these patches are designed to work against code already updated by
the #774859 patches (hence why I added the block control command). I kept the
two separate so that (if OK) the #774859 patches are towards version 0.9.2-5,
and these patches are towards version 0.9.3-1 (or -bpo...).
--
Rowan Thorpe
PGP fingerprint:
BB0A 0787 C0EE BDD8 7F97 3D30 49F2 13A5 265D CCBD
----
"There is a great difference between worry and concern. A worried person sees
a problem, and a concerned person solves a problem."
- Harold Stephens
From bcc16a03e4cf967fa9a3cebbbe0d387a8836c066 Mon Sep 17 00:00:00 2001
From: Rowan Thorpe <[email protected]>
Date: Fri, 9 Jan 2015 10:37:49 +0200
Subject: [PATCH] Fixes related to new upstream 0.9.3
* Delete 0002-Set-a-default-time-zone.patch (included upstream)
* Delete 0007-Add-support-for-the-Psych-YAML-engine.patch (included
upstream)
* Delete 0008-Fix-rubygem-dep-naming.patch (included upstream)
* Delete 0009-Backport-auth-error-spill-fix.patch (included upstream)
* Add 0010-Fix-gem-dependency-issues.patch
* Refresh other patches ("dquilt refresh" also updates all patch formats)
* Regenerate static gemspec
* Update debian/README.source about running
"debian/rules create-static-gemspec" _with patches applied_
* Update debian/README.Debian, debian/control, debian/coquelicot.examples,
and debian/settings.yml with info/dependency for new ldap auth.
* Update version in debian/README.source
* Update years in debian/copyright
---
debian/README.Debian | 6 +-
debian/README.source | 6 +-
debian/control | 4 +-
debian/copyright | 4 +-
debian/coquelicot.examples | 1 +
debian/coquelicot.gemspec | 31 ++--
...ems-and-bundler-optional-to-run-the-tests.patch | 2 -
debian/patches/0002-Set-a-default-time-zone.patch | 37 -----
...use-rubygems-or-bundler-to-run-Coquelicot.patch | 2 -
...4-Send-the-gem-prepared-earlier-as-source.patch | 157 ++++++++++++++-------
...0005-Adjust-paths-to-fit-Debian-packaging.patch | 15 +-
...0006-Stop-using-non-free-background-image.patch | 14 +-
...007-Add-support-for-the-Psych-YAML-engine.patch | 81 -----------
debian/patches/0008-Fix-rubygem-dep-naming.patch | 44 ------
.../0009-Backport-auth-error-spill-fix.patch | 35 -----
.../patches/0010-Fix-gem-dependency-issues.patch | 27 ++++
debian/patches/series | 5 +-
debian/settings.yml | 5 +-
18 files changed, 179 insertions(+), 297 deletions(-)
delete mode 100644 debian/patches/0002-Set-a-default-time-zone.patch
delete mode 100644 debian/patches/0007-Add-support-for-the-Psych-YAML-engine.patch
delete mode 100644 debian/patches/0008-Fix-rubygem-dep-naming.patch
delete mode 100644 debian/patches/0009-Backport-auth-error-spill-fix.patch
create mode 100644 debian/patches/0010-Fix-gem-dependency-issues.patch
diff --git a/debian/README.Debian b/debian/README.Debian
index 5f16ff9..1e68def 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -14,8 +14,10 @@ To adjust the authentication method, edit the `authentication_method` options
at the bottom of `/etc/coquelicot/settings.yml`. More details about the
supported authentication methods can be found in
`/usr/share/doc/coquelicot/examples/settings-simplepass.yml` for the pre-shared
-password and `/usr/share/doc/coquelicot/examples/settings-imap.yml` for
-authentication against an IMAP server.
+password, `/usr/share/doc/coquelicot/examples/settings-imap.yml` for
+authentication against an IMAP server, and
+`/usr/share/doc/coquelicot/examples/settings-ldap.yml` for authentication
+against an LDAP server.
Non-buffering HTTPS reverse proxy
---------------------------------
diff --git a/debian/README.source b/debian/README.source
index a61b1f0..657cf83 100644
--- a/debian/README.source
+++ b/debian/README.source
@@ -19,13 +19,15 @@ Here is how to setup a work environment:
Once this is done, upgrading to a new version should look like:
- VERSION=0.9.3
+ VERSION=0.9.4
git fetch potager-upstream
git tag -v coquelicot-$VERSION
uscan --verbose
git-import-orig --upstream-vcs-tag=coquelicot-$VERSION ../coquelicot-$VERSION.tar.gz
- debian/rules create-static-gemspec
[… Adapt as needed, refresh debian/patches …]
+ [… Apply all patches using quilt …]
+ debian/rules create-static-gemspec
+ [… Unapply all patches using quilt …]
dch -v $VERSION-1
git-buildpackage
[… Test, hack, build, repeat …]
diff --git a/debian/control b/debian/control
index a21c904..1b0cf10 100644
--- a/debian/control
+++ b/debian/control
@@ -26,7 +26,8 @@ Build-Depends: debhelper (>= 7.0.50~),
ruby-sinatra-contrib,
ruby-timecop,
ruby-tzinfo,
- ruby-upr
+ ruby-upr,
+ ruby-net-ldap
Standards-Version: 3.9.6
Vcs-Git: git://anonscm.debian.org/collab-maint/coquelicot.git
Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/coquelicot.git;a=summary
@@ -53,6 +54,7 @@ Depends: adduser,
ruby-sinatra,
ruby-sinatra-contrib,
ruby-upr,
+ ruby-net-ldap,
ruby | ruby-interpreter,
${misc:Depends},
${shlibs:Depends}
diff --git a/debian/copyright b/debian/copyright
index f3df669..84067ee 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -3,7 +3,7 @@ Upstream-Name: coquelicot
Source: https://coquelicot.potager.org/dist/
Files: *
-Copyright: 2010-2013 potager.org <[email protected]>
+Copyright: 2010-2015 potager.org <[email protected]>
2011 mh / immerda.ch <[email protected]>
License: AGPL-3+
@@ -13,7 +13,7 @@ Copyright: 2008 Piotr Sarnacki (drogomir.com)
License: Expat
Files: debian/*
-Copyright: 2013 Jerémy Bobbio <[email protected]>
+Copyright: 2015 Jerémy Bobbio <[email protected]>
License: permissive
Copying and distribution of this package, with or without
modification, are permitted in any medium without royalty
diff --git a/debian/coquelicot.examples b/debian/coquelicot.examples
index 4b9cd19..2876e51 100644
--- a/debian/coquelicot.examples
+++ b/debian/coquelicot.examples
@@ -3,4 +3,5 @@ debian/coquelicot.nginx
debian/coquelicot.pound
conf/settings-default.yml
conf/settings-imap.yml
+conf/settings-ldap.yml
conf/settings-simplepass.yml
diff --git a/debian/coquelicot.gemspec b/debian/coquelicot.gemspec
index 1edc7b3..b778dd8 100644
--- a/debian/coquelicot.gemspec
+++ b/debian/coquelicot.gemspec
@@ -1,33 +1,36 @@
# -*- encoding: utf-8 -*-
+# stub: coquelicot 0.9.3 ruby lib
Gem::Specification.new do |s|
s.name = "coquelicot"
- s.version = "0.9.2"
+ s.version = "0.9.3"
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
+ s.require_paths = ["lib"]
s.authors = ["potager.org", "mh / immerda.ch"]
- s.date = "2013-04-21"
+ s.date = "2015-01-08"
s.description = "Coquelicot is a \"one-click\" file sharing web application with a\nfocus on protecting users' privacy.\n\nBasic principle: users can upload a file to the server, in return they\nget a unique URL which can be shared with others in order to download\nthe file.\n\nCoquelicot aims to protect, to some extent, users and system\nadministrators from disclosure of the files exchanged from passive and\nnot so active attackers.\n"
s.email = ["[email protected]"]
s.executables = ["coquelicot"]
- s.files = ["Gemfile", "Gemfile.lock", "HACKING", "INSTALL", "LICENSE", "NEWS", "README", "Rakefile", "TODO", "bin/coquelicot", "conf/settings-default.yml", "conf/settings-imap.yml", "conf/settings-simplepass.yml", "coquelicot.gemspec", "lib/coquelicot.rb", "lib/coquelicot/app.rb", "lib/coquelicot/auth.rb", "lib/coquelicot/auth/imap.rb", "lib/coquelicot/auth/simplepass.rb", "lib/coquelicot/base_app.rb", "lib/coquelicot/depot.rb", "lib/coquelicot/helpers.rb", "lib/coquelicot/jyraphe_migrator.rb", "lib/coquelicot/num.rb", "lib/coquelicot/rack/multipart_parser.rb", "lib/coquelicot/rack/upload.rb", "lib/coquelicot/stored_file.rb", "lib/coquelicot/version.rb", "po/coquelicot.pot", "po/de/coquelicot.po", "po/fr/coquelicot.po", "public/images/ajax-loader.gif", "public/images/blank.gif", "public/images/overlay.png", "public/javascripts/coquelicot.auth.imap.js", "public/javascripts/coquelicot.auth.simplepass.js", "public/javascripts/coquelicot.js", "public/javascripts/jquery.lightBoxFu.js", "public/javascripts/jquery.uploadProgress.js", "public/stylesheets/lightbox-fu-ie6.css", "public/stylesheets/lightbox-fu-ie7.css", "spec/coquelicot/app_spec.rb", "spec/coquelicot/depot_spec.rb", "spec/coquelicot/jyraphe_migrator_spec.rb", "spec/coquelicot/rack/multipart_parser_spec.rb", "spec/coquelicot/rack/upload_spec.rb", "spec/coquelicot/stored_file_spec.rb", "spec/coquelicot_spec.rb", "spec/fixtures/LICENSE-secret-1.0/reference", "spec/fixtures/LICENSE-secret-1.0/stored_file", "spec/fixtures/LICENSE-secret-2.0/reference", "spec/fixtures/LICENSE-secret-2.0/stored_file", "spec/fixtures/LICENSE-secret-2.0/stored_file.content", "spec/fixtures/small-secret-1.0/reference", "spec/fixtures/small-secret-1.0/stored_file", "spec/spec_helper.rb", "views/about_your_data.haml", "views/auth/imap.haml", "views/auth/simplepass.haml", "views/download_in_progress.haml", "views/enter_file_key.haml", "views/error.haml", "views/expired.haml", "views/forbidden.haml", "views/index.haml", "views/layout.haml", "views/not_found.haml", "views/ready.haml", "views/style.sass", "lib/coquelicot/debian.rb", "public/javascripts/jquery.min.js"]
+ s.files = ["Gemfile", "Gemfile.lock", "HACKING", "INSTALL", "LICENSE", "NEWS", "README", "Rakefile", "TODO", "bin/coquelicot", "conf/settings-default.yml", "conf/settings-imap.yml", "conf/settings-ldap.yml", "conf/settings-simplepass.yml", "coquelicot.gemspec", "lib/coquelicot.rb", "lib/coquelicot/app.rb", "lib/coquelicot/auth.rb", "lib/coquelicot/auth/imap.rb", "lib/coquelicot/auth/ldap.rb", "lib/coquelicot/auth/simplepass.rb", "lib/coquelicot/base_app.rb", "lib/coquelicot/debian.rb", "lib/coquelicot/depot.rb", "lib/coquelicot/helpers.rb", "lib/coquelicot/jyraphe_migrator.rb", "lib/coquelicot/num.rb", "lib/coquelicot/rack/multipart_parser.rb", "lib/coquelicot/rack/upload.rb", "lib/coquelicot/stored_file.rb", "lib/coquelicot/version.rb", "po/coquelicot.pot", "po/de/coquelicot.po", "po/es/coquelicot.po", "po/fr/coquelicot.po", "public/images/ajax-loader.gif", "public/images/blank.gif", "public/images/overlay.png", "public/javascripts/coquelicot.auth.imap.js", "public/javascripts/coquelicot.auth.ldap.js", "public/javascripts/coquelicot.auth.simplepass.js", "public/javascripts/coquelicot.js", "public/javascripts/jquery.lightBoxFu.js", "public/javascripts/jquery.min.js", "public/javascripts/jquery.uploadProgress.js", "public/stylesheets/lightbox-fu-ie6.css", "public/stylesheets/lightbox-fu-ie7.css", "spec/coquelicot/app_spec.rb", "spec/coquelicot/depot_spec.rb", "spec/coquelicot/jyraphe_migrator_spec.rb", "spec/coquelicot/rack/multipart_parser_spec.rb", "spec/coquelicot/rack/upload_spec.rb", "spec/coquelicot/stored_file_spec.rb", "spec/coquelicot_spec.rb", "spec/fixtures/LICENSE-secret-1.0/reference", "spec/fixtures/LICENSE-secret-1.0/stored_file", "spec/fixtures/LICENSE-secret-2.0/reference", "spec/fixtures/LICENSE-secret-2.0/stored_file", "spec/fixtures/LICENSE-secret-2.0/stored_file.content", "spec/fixtures/small-secret-1.0/reference", "spec/fixtures/small-secret-1.0/stored_file", "spec/spec_helper.rb", "views/about_your_data.haml", "views/auth/imap.haml", "views/auth/ldap.haml", "views/auth/simplepass.haml", "views/download_in_progress.haml", "views/enter_file_key.haml", "views/error.haml", "views/expired.haml", "views/forbidden.haml", "views/index.haml", "views/layout.haml", "views/not_found.haml", "views/ready.haml", "views/style.sass"]
s.homepage = "https://coquelicot.potager.org/"
- s.require_paths = ["lib"]
- s.rubygems_version = "1.8.23"
+ s.rubygems_version = "2.2.2"
s.summary = "\"one-click\" file sharing web application focusing on privacy"
if s.respond_to? :specification_version then
- s.specification_version = 3
+ s.specification_version = 4
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
s.add_development_dependency(%q<rake>, [">= 0"])
- s.add_development_dependency(%q<rspec>, ["~> 2.6"])
+ s.add_development_dependency(%q<rspec>, ["~> 2.11"])
s.add_development_dependency(%q<hpricot>, [">= 0"])
s.add_development_dependency(%q<timecop>, [">= 0"])
s.add_development_dependency(%q<rack-test>, [">= 0"])
s.add_development_dependency(%q<capybara>, [">= 0"])
s.add_development_dependency(%q<activesupport>, [">= 0"])
- s.add_development_dependency(%q<gettext>, [">= 0"])
+ s.add_development_dependency(%q<tzinfo>, [">= 0"])
+ s.add_development_dependency(%q<gettext>, ["~> 3"])
+ s.add_development_dependency(%q<net-ldap>, [">= 0"])
s.add_runtime_dependency(%q<sinatra>, ["~> 1.3"])
s.add_runtime_dependency(%q<sinatra-contrib>, ["~> 1.3"])
s.add_runtime_dependency(%q<rack>, ["~> 1.1"])
@@ -44,13 +47,15 @@ Gem::Specification.new do |s|
s.add_runtime_dependency(%q<moneta>, ["~> 0.7"])
else
s.add_dependency(%q<rake>, [">= 0"])
- s.add_dependency(%q<rspec>, ["~> 2.6"])
+ s.add_dependency(%q<rspec>, ["~> 2.11"])
s.add_dependency(%q<hpricot>, [">= 0"])
s.add_dependency(%q<timecop>, [">= 0"])
s.add_dependency(%q<rack-test>, [">= 0"])
s.add_dependency(%q<capybara>, [">= 0"])
s.add_dependency(%q<activesupport>, [">= 0"])
- s.add_dependency(%q<gettext>, [">= 0"])
+ s.add_dependency(%q<tzinfo>, [">= 0"])
+ s.add_dependency(%q<gettext>, ["~> 3"])
+ s.add_dependency(%q<net-ldap>, [">= 0"])
s.add_dependency(%q<sinatra>, ["~> 1.3"])
s.add_dependency(%q<sinatra-contrib>, ["~> 1.3"])
s.add_dependency(%q<rack>, ["~> 1.1"])
@@ -68,13 +73,15 @@ Gem::Specification.new do |s|
end
else
s.add_dependency(%q<rake>, [">= 0"])
- s.add_dependency(%q<rspec>, ["~> 2.6"])
+ s.add_dependency(%q<rspec>, ["~> 2.11"])
s.add_dependency(%q<hpricot>, [">= 0"])
s.add_dependency(%q<timecop>, [">= 0"])
s.add_dependency(%q<rack-test>, [">= 0"])
s.add_dependency(%q<capybara>, [">= 0"])
s.add_dependency(%q<activesupport>, [">= 0"])
- s.add_dependency(%q<gettext>, [">= 0"])
+ s.add_dependency(%q<tzinfo>, [">= 0"])
+ s.add_dependency(%q<gettext>, ["~> 3"])
+ s.add_dependency(%q<net-ldap>, [">= 0"])
s.add_dependency(%q<sinatra>, ["~> 1.3"])
s.add_dependency(%q<sinatra-contrib>, ["~> 1.3"])
s.add_dependency(%q<rack>, ["~> 1.1"])
diff --git a/debian/patches/0001-Make-rubygems-and-bundler-optional-to-run-the-tests.patch b/debian/patches/0001-Make-rubygems-and-bundler-optional-to-run-the-tests.patch
index 7a0ca97..926c2e9 100644
--- a/debian/patches/0001-Make-rubygems-and-bundler-optional-to-run-the-tests.patch
+++ b/debian/patches/0001-Make-rubygems-and-bundler-optional-to-run-the-tests.patch
@@ -6,8 +6,6 @@ Subject: Make rubygems and bundler optional to run the tests
spec/spec_helper.rb | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
-diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
-index 5e20020..d95c565 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -17,10 +17,14 @@
diff --git a/debian/patches/0002-Set-a-default-time-zone.patch b/debian/patches/0002-Set-a-default-time-zone.patch
deleted file mode 100644
index ee70110..0000000
--- a/debian/patches/0002-Set-a-default-time-zone.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Bobbio?= <[email protected]>
-Date: Wed, 3 Apr 2013 10:05:33 +0000
-Subject: Set a default time zone
-
----
- coquelicot.gemspec | 1 +
- spec/spec_helper.rb | 5 +++++
- 2 files changed, 6 insertions(+)
-
-diff --git a/coquelicot.gemspec b/coquelicot.gemspec
-index 5d8f3e1..b9c1b15 100644
---- a/coquelicot.gemspec
-+++ b/coquelicot.gemspec
-@@ -50,6 +50,7 @@ Gem::Specification.new do |s|
- s.add_development_dependency 'rack-test'
- s.add_development_dependency 'capybara'
- s.add_development_dependency 'active_support'
-+ s.add_development_dependency 'tzinfo'
- s.add_development_dependency 'gettext'
-
- s.add_runtime_dependency 'sinatra', '~>1.3'
-diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
-index d95c565..375e9cf 100644
---- a/spec/spec_helper.rb
-+++ b/spec/spec_helper.rb
-@@ -30,6 +30,11 @@ require 'rack/test'
- require 'rspec'
- require 'stringio'
-
-+# Set a default time zone. Otherwise tests using Timecop fail when
-+# active_support is loaded.
-+require 'active_support/time'
-+Time.zone = 'UTC'
-+
- require 'coquelicot'
-
- shared_context 'with Coquelicot::Application' do
diff --git a/debian/patches/0003-Do-not-use-rubygems-or-bundler-to-run-Coquelicot.patch b/debian/patches/0003-Do-not-use-rubygems-or-bundler-to-run-Coquelicot.patch
index fd31abc..68fc375 100644
--- a/debian/patches/0003-Do-not-use-rubygems-or-bundler-to-run-Coquelicot.patch
+++ b/debian/patches/0003-Do-not-use-rubygems-or-bundler-to-run-Coquelicot.patch
@@ -6,8 +6,6 @@ Subject: Do not use rubygems or bundler to run Coquelicot
bin/coquelicot | 8 --------
1 file changed, 8 deletions(-)
-diff --git a/bin/coquelicot b/bin/coquelicot
-index 30ccc35..49d2931 100755
--- a/bin/coquelicot
+++ b/bin/coquelicot
@@ -16,14 +16,6 @@
diff --git a/debian/patches/0004-Send-the-gem-prepared-earlier-as-source.patch b/debian/patches/0004-Send-the-gem-prepared-earlier-as-source.patch
index ffa666d..5734f12 100644
--- a/debian/patches/0004-Send-the-gem-prepared-earlier-as-source.patch
+++ b/debian/patches/0004-Send-the-gem-prepared-earlier-as-source.patch
@@ -9,8 +9,6 @@ Subject: Send the gem prepared earlier as source
spec/coquelicot/app_spec.rb | 46 +++++--------------------------------------
4 files changed, 9 insertions(+), 71 deletions(-)
-diff --git a/lib/coquelicot.rb b/lib/coquelicot.rb
-index 3b80200..ac54035 100644
--- a/lib/coquelicot.rb
+++ b/lib/coquelicot.rb
@@ -17,6 +17,7 @@
@@ -21,11 +19,9 @@ index 3b80200..ac54035 100644
require 'coquelicot/auth'
require 'coquelicot/stored_file'
require 'coquelicot/depot'
-diff --git a/lib/coquelicot/app.rb b/lib/coquelicot/app.rb
-index 181d318..7b348ea 100644
--- a/lib/coquelicot/app.rb
+++ b/lib/coquelicot/app.rb
-@@ -26,7 +26,6 @@ require 'moneta'
+@@ -26,7 +26,6 @@
require 'unicorn/launcher'
require 'rainbows'
require 'optparse'
@@ -33,41 +29,67 @@ index 181d318..7b348ea 100644
module Coquelicot
class << self
-@@ -294,30 +293,8 @@ module Coquelicot
+@@ -290,57 +289,9 @@
+ haml :about_your_data
end
- get '/source' do
-- Gem::DefaultUserInteraction.ui = Gem::SilentUI.new
+- if defined? Gem::Package.build
+- get '/source' do
+- Gem::DefaultUserInteraction.ui = Gem::SilentUI.new
-
-- spec = Gem::loaded_specs['coquelicot'].clone
-- Dir.chdir(spec.full_gem_path) do
+- spec = Gem::loaded_specs['coquelicot'].clone
- spec.version = gem_version
-- spec.mark_version
-- spec.validate
- Tempfile.open('coquelicot-gem') do |gem_file|
-- Gem::Package.open(gem_file, 'w', nil) do |pkg|
-- pkg.metadata = spec.to_yaml
-- spec.files.each do |file|
-- next if File.directory?(file)
-- stat = File.stat(file)
-- mode = stat.mode & 0777
-- size = stat.size
-- pkg.add_file_simple(file, mode, size) do |tar_io|
-- tar_io.write(open(file, "rb") { |f| f.read })
+- Dir.mktmpdir('coquelicot-gen-gem') do |tmpdir|
+- Dir.chdir(spec.full_gem_path) do
+- spec.files.each do |file|
+- dest = "#{tmpdir}/#{file}"
+- FileUtils.mkdir_p(File.dirname(dest))
+- FileUtils.cp(file, dest)
- end
- end
+- Dir.chdir("#{tmpdir}") do
+- filename = Gem::Package.build(spec)
+- gem_file.write(File.read(filename))
+- end
- end
- send_file gem_file.path, :filename => spec.file_name
- gem_file.unlink
- end
- end
+- else
+- get '/source' do
+- Gem::DefaultUserInteraction.ui = Gem::SilentUI.new
+-
+- spec = Gem::loaded_specs['coquelicot'].clone
+- Dir.chdir(spec.full_gem_path) do
+- spec.version = gem_version
+- spec.mark_version
+- spec.validate
+- Tempfile.open('coquelicot-gem') do |gem_file|
+- Gem::Package.open(gem_file, 'w', nil) do |pkg|
+- pkg.metadata = spec.to_yaml
+- spec.files.each do |file|
+- next if File.directory?(file)
+- stat = File.stat(file)
+- mode = stat.mode & 0777
+- size = stat.size
+- pkg.add_file_simple(file, mode, size) do |tar_io|
+- tar_io.write(open(file, "rb") { |f| f.read })
+- end
+- end
+- end
+- send_file gem_file.path, :filename => spec.file_name
+- gem_file.unlink
+- end
+- end
+- end
++ get '/source' do
+ send_file "/usr/share/coquelicot/public/coquelicot-#{gem_version}.gem",
+ :filename => "coquelicot-#{gem_version}.gem"
end
get '/random_pass' do
-diff --git a/lib/coquelicot/helpers.rb b/lib/coquelicot/helpers.rb
-index 75ab131..fd0bb1c 100644
--- a/lib/coquelicot/helpers.rb
+++ b/lib/coquelicot/helpers.rb
@@ -16,8 +16,6 @@
@@ -79,7 +101,7 @@ index 75ab131..fd0bb1c 100644
module Coquelicot
module Helpers
def can_provide_git_repository?
-@@ -45,9 +43,7 @@ module Coquelicot
+@@ -45,9 +43,7 @@
end
def gem_version
@@ -90,11 +112,9 @@ index 75ab131..fd0bb1c 100644
end
def clone_command
-diff --git a/spec/coquelicot/app_spec.rb b/spec/coquelicot/app_spec.rb
-index 44e5c6a..064ef2a 100644
--- a/spec/coquelicot/app_spec.rb
+++ b/spec/coquelicot/app_spec.rb
-@@ -272,47 +272,11 @@ describe Coquelicot::Application do
+@@ -268,80 +268,11 @@
end
describe 'get /source' do
@@ -105,38 +125,71 @@ index 44e5c6a..064ef2a 100644
- visit '/source'
- end
- it 'should send a file to be saved' do
-- page.response_headers['Content-Type'].should == 'application/octet-stream'
-- page.response_headers['Content-Disposition'].should =~ /^attachment;/
+- expect(page.response_headers['Content-Type']).to be == 'application/octet-stream'
+- expect(page.response_headers['Content-Disposition']).to match /^attachment;/
- end
- it 'should send a file with a proposed name correct for coquelicot gem' do
-- page.response_headers['Content-Disposition'].should =~ /filename="coquelicot-.*\.gem"/
+- expect(page.response_headers['Content-Disposition']).to match /filename="coquelicot-.*\.gem"/
- end
-- context 'the downloaded gem' do
-- around(:each) do |example|
-- Gem::Package.open(StringIO.new(page.driver.response.body)) do |gem|
-- @gem = gem
-- example.run
+- if defined? Gem::Package.new
+- context 'the downloaded gem' do
+- around(:each) do |example|
+- Tempfile.open('coquelicot-downloaded-gem') do |gem_file|
+- gem_file.write(page.driver.response.body)
+- @gem = Gem::Package.new(gem_file.path)
+- example.run
+- gem_file.unlink
+- end
- end
-- end
-- it 'should be named "coquelicot"' do
-- @gem.metadata.name.should == 'coquelicot'
-- end
-- it "should have a version containing 'onecoolhostname' for the hostname" do
-- @gem.metadata.version.to_s.should =~ /\.onecoolhostname\./
-- end
-- it "should have a version containing today's date" do
-- Timecop.freeze(Time.now) do
-- date_str = Date.today.strftime('%Y%m%d')
-- @gem.metadata.version.to_s.should =~ /\.#{date_str}$/
+- it 'should be named "coquelicot"' do
+- expect(@gem.spec.name).to be == 'coquelicot'
+- end
+- it "should have a version containing 'onecoolhostname' for the hostname" do
+- expect(@gem.spec.version.to_s).to match /\.onecoolhostname\./
+- end
+- it "should have a version containing today's date" do
+- Timecop.freeze(Time.now) do
+- date_str = Date.today.strftime('%Y%m%d')
+- expect(@gem.spec.version.to_s).to match /\.#{date_str}$/
+- end
+- end
+- it 'should at least contain this spec file' do
+- this_file = __FILE__.gsub(/^.*\/spec/, 'spec')
+- content = nil
+- @gem.spec.files.each do |file|
+- content = File.read(file, :encoding => 'binary') if file.end_with?(this_file)
+- end
+- expect(content).to be == File.read(__FILE__, :encoding => 'binary')
- end
- end
-- it 'should at least contain this spec file' do
-- this_file = __FILE__.gsub(/^.*\/spec/, 'spec')
-- content = nil
-- @gem.each do |file|
-- content = file.read if file.full_name.end_with?(this_file)
+- else
+- context 'the downloaded gem' do
+- around(:each) do |example|
+- Gem::Package.open(StringIO.new(page.driver.response.body)) do |gem|
+- @gem = gem
+- example.run
+- end
+- end
+- it 'should be named "coquelicot"' do
+- expect(@gem.metadata.name).to be == 'coquelicot'
+- end
+- it "should have a version containing 'onecoolhostname' for the hostname" do
+- expect(@gem.metadata.version.to_s).to match /\.onecoolhostname\./
+- end
+- it "should have a version containing today's date" do
+- Timecop.freeze(Time.now) do
+- date_str = Date.today.strftime('%Y%m%d')
+- expect(@gem.metadata.version.to_s).to match /\.#{date_str}$/
+- end
+- end
+- it 'should at least contain this spec file' do
+- this_file = __FILE__.gsub(/^.*\/spec/, 'spec')
+- content = nil
+- @gem.each do |file|
+- content = file.read if file.full_name.end_with?(this_file)
+- end
+- expect(content).to be == File.open(__FILE__, 'rb').read
- end
-- content.should == File.open(__FILE__, 'rb').read
- end
- end
+ it 'should send the Debian prepared gem' do
diff --git a/debian/patches/0005-Adjust-paths-to-fit-Debian-packaging.patch b/debian/patches/0005-Adjust-paths-to-fit-Debian-packaging.patch
index eba416b..0bdca43 100644
--- a/debian/patches/0005-Adjust-paths-to-fit-Debian-packaging.patch
+++ b/debian/patches/0005-Adjust-paths-to-fit-Debian-packaging.patch
@@ -7,11 +7,9 @@ Subject: Adjust paths to fit Debian packaging
lib/coquelicot/base_app.rb | 5 ++++-
2 files changed, 19 insertions(+), 7 deletions(-)
-diff --git a/lib/coquelicot/app.rb b/lib/coquelicot/app.rb
-index 7b348ea..6c2ccb0 100644
--- a/lib/coquelicot/app.rb
+++ b/lib/coquelicot/app.rb
-@@ -26,6 +26,7 @@ require 'moneta'
+@@ -26,6 +26,7 @@
require 'unicorn/launcher'
require 'rainbows'
require 'optparse'
@@ -19,7 +17,7 @@ index 7b348ea..6c2ccb0 100644
module Coquelicot
class << self
-@@ -232,7 +233,13 @@ module Coquelicot
+@@ -224,7 +225,13 @@
set :protection, :except => [:session_hijacking, :remote_token]
set :root, Proc.new { app_file && File.expand_path('../../..', app_file) }
@@ -34,7 +32,7 @@ index 7b348ea..6c2ccb0 100644
set :max_file_size, 5 * 1024 * 1024 # 5 MiB
set :default_expire, 60
set :maximum_expire, 60 * 24 * 30 # 1 month
-@@ -241,14 +248,14 @@ module Coquelicot
+@@ -233,15 +240,15 @@
set :random_pass_length, 16
set :about_text, 'en' => ''
set :additional_css, ''
@@ -43,6 +41,7 @@ index 7b348ea..6c2ccb0 100644
+ set :pid, '/var/run/coquelicot.pid'
+ set :log, '/var/log/coquelicot/coquelicot.log'
set :listen, [ "127.0.0.1:51161" ]
+ set :path, '/'
set :show_exceptions, false
set :authentication_method, :name => :simplepass,
:upload_password => 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'
@@ -52,7 +51,7 @@ index 7b348ea..6c2ccb0 100644
set :upr_backend, Upr::Monitor.new(Moneta.new(:Memory))
use Upr, :backend => upr_backend, :path_info => %q{/upload}
-@@ -284,8 +291,10 @@ module Coquelicot
+@@ -281,8 +288,10 @@
end
get '/README' do
@@ -65,11 +64,9 @@ index 7b348ea..6c2ccb0 100644
end
get '/about-your-data' do
-diff --git a/lib/coquelicot/base_app.rb b/lib/coquelicot/base_app.rb
-index c253be4..0e080ee 100644
--- a/lib/coquelicot/base_app.rb
+++ b/lib/coquelicot/base_app.rb
-@@ -28,7 +28,10 @@ module Coquelicot
+@@ -28,7 +28,10 @@
helpers Coquelicot::Helpers
FastGettext.add_text_domain 'coquelicot',
diff --git a/debian/patches/0006-Stop-using-non-free-background-image.patch b/debian/patches/0006-Stop-using-non-free-background-image.patch
index 6c4f9e8..06d320e 100644
--- a/debian/patches/0006-Stop-using-non-free-background-image.patch
+++ b/debian/patches/0006-Stop-using-non-free-background-image.patch
@@ -13,11 +13,9 @@ The background image currently shipped with Coquelicot is licensed under CC-BY
views/style.sass | 2 +-
3 files changed, 3 insertions(+), 7 deletions(-)
-diff --git a/README b/README
-index 7571d3b..fe9cee5 100644
--- a/README
+++ b/README
-@@ -106,10 +106,6 @@ Authors
+@@ -108,10 +108,6 @@
Coquelicot is distributed under the [GNU Affero General Public License]
version 3 or (at your option) any later version.
@@ -25,14 +23,12 @@ index 7571d3b..fe9cee5 100644
-[“coquelicot” picture] © 2008 Jean-Louis Zimmermann
-Licensed under [Creative Commons Attributions 2.0 Generic]
-
+ LDAP authentication code initially provided by Rowan Thorpe.
+
*jQuery* is © 2011 John Resig. Licensed under the [MIT license].
- *jquery.uploadProgress* is © 2008 Piotr Sarnacki. Licensed under the
- [MIT license].
-diff --git a/spec/coquelicot/app_spec.rb b/spec/coquelicot/app_spec.rb
-index 064ef2a..1f4078d 100644
--- a/spec/coquelicot/app_spec.rb
+++ b/spec/coquelicot/app_spec.rb
-@@ -283,8 +283,8 @@ describe Coquelicot::Application do
+@@ -279,8 +279,8 @@
describe 'post /authenticate' do
context 'when given a request with too much input' do
before do
@@ -43,8 +39,6 @@ index 064ef2a..1f4078d 100644
post '/authenticate', :file => Rack::Test::UploadedFile.new(path, 'text/plain')
end
it 'should get status 413 (Request entity too large)' do
-diff --git a/views/style.sass b/views/style.sass
-index d645d4d..c1a18d1 100644
--- a/views/style.sass
+++ b/views/style.sass
@@ -19,7 +19,7 @@
diff --git a/debian/patches/0007-Add-support-for-the-Psych-YAML-engine.patch b/debian/patches/0007-Add-support-for-the-Psych-YAML-engine.patch
deleted file mode 100644
index 3eea2b1..0000000
--- a/debian/patches/0007-Add-support-for-the-Psych-YAML-engine.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From: =?utf-8?q?J=C3=A9r=C3=A9my_Bobbio?= <[email protected]>
-Date: Mon, 5 May 2014 16:42:41 +0200
-Subject: Add support for the Psych YAML engine
-
-Ruby 2 and onwards drop support for syck.
----
- lib/coquelicot/stored_file.rb | 4 ----
- spec/coquelicot/stored_file_spec.rb | 18 +++++++++++++++---
- 2 files changed, 15 insertions(+), 7 deletions(-)
-
-diff --git a/lib/coquelicot/stored_file.rb b/lib/coquelicot/stored_file.rb
-index 04a4058..e617834 100644
---- a/lib/coquelicot/stored_file.rb
-+++ b/lib/coquelicot/stored_file.rb
-@@ -45,8 +45,6 @@ module Coquelicot
- end
-
- def self.create(path, pass, meta)
-- YAML::ENGINE.yamler = 'syck' if YAML.const_defined? :ENGINE
--
- salt = gen_salt
- clear_meta = { "Coquelicot" => COQUELICOT_VERSION,
- "Salt" => Base64.encode64(salt).strip,
-@@ -162,8 +160,6 @@ module Coquelicot
- end
-
- def initialize(path, pass)
-- YAML::ENGINE.yamler = 'syck' if YAML.const_defined? :ENGINE
--
- @path = path
- @file = File.open(@path)
- if @file.lstat.size == 0 then
-diff --git a/spec/coquelicot/stored_file_spec.rb b/spec/coquelicot/stored_file_spec.rb
-index e914b01..54739ec 100644
---- a/spec/coquelicot/stored_file_spec.rb
-+++ b/spec/coquelicot/stored_file_spec.rb
-@@ -46,6 +46,17 @@ module Coquelicot
- end
- end
-
-+ def read_meta(path)
-+ File.open(path) do |f|
-+ meta = f.readline
-+ while buf = f.readline
-+ break if buf =~ /^---( |\n)/
-+ meta += buf
-+ end
-+ YAML.load(meta)
-+ end
-+ end
-+
- describe '.get_cipher' do
- context 'when given an unknown method' do
- it 'should raise an error' do
-@@ -172,7 +183,7 @@ module Coquelicot
- StoredFile.stub(:gen_salt).and_return(test_salt)
- create_stored_file('Expire-at' => expire_at)
- end
-- let(:clear_meta) { YAML.load_file(@stored_file_path) }
-+ let(:clear_meta) { read_meta(@stored_file_path) }
- it 'should write Coquelicot file version' do
- clear_meta['Coquelicot'].should == '2.0'
- end
-@@ -212,7 +223,7 @@ module Coquelicot
- include_context 'in encrypted part', /stored_file$/
- it 'should contain metadata as YAML block' do
- create_stored_file
-- @cipher.content.split(/^--- \n/, 3).length.should == 2
-+ @cipher.content.split(/^---(?: |\n)/, 3).length.should == 2
- YAML.load(@cipher.content).should be_a(Hash)
- end
- context 'in encrypted metadata' do
-@@ -398,7 +409,7 @@ module Coquelicot
- describe '#close' do
- for_all_file_versions do
- it 'should reset the cipher' do
-- salt = Base64::decode64(YAML.load_file(stored_file_path)['Salt'])
-+ salt = Base64::decode64(read_meta(stored_file_path)['Salt'])
- cipher = StoredFile.get_cipher('secret', salt, :decrypt)
- StoredFile.stub(:get_cipher).and_return(cipher)
-
diff --git a/debian/patches/0008-Fix-rubygem-dep-naming.patch b/debian/patches/0008-Fix-rubygem-dep-naming.patch
deleted file mode 100644
index 64d1b22..0000000
--- a/debian/patches/0008-Fix-rubygem-dep-naming.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From: Rowan Thorpe <[email protected]>
-Date: Fri, 2 Jan 2015 18:06:07 +0200
-Subject: Fix rubygem dep outdated-naming bug,update Gemfile.lock
-
----
- coquelicot.gemspec | 2 +-
- Gemfile.lock | 124 +++++++++++++++++++++++++++++------------------------------
- 2 files changed, 63 insertions(+), 63 deletions(-)
-
-diff --git a/coquelicot.gemspec b/coquelicot.gemspec
-index 5d8f3e1..19e6c94 100644
---- a/coquelicot.gemspec
-+++ b/coquelicot.gemspec
-@@ -49,7 +49,7 @@ Gem::Specification.new do |s|
- s.add_development_dependency 'timecop'
- s.add_development_dependency 'rack-test'
- s.add_development_dependency 'capybara'
-- s.add_development_dependency 'active_support'
-+ s.add_development_dependency 'activesupport'
- s.add_development_dependency 'tzinfo'
- s.add_development_dependency 'gettext'
-
-diff --git a/Gemfile.lock b/Gemfile.lock
-index 8478694..87bfc51 100644
---- a/Gemfile.lock
-+++ b/Gemfile.lock
-@@ -20,8 +20,6 @@ PATH
- GEM
- remote: https://rubygems.org/
- specs:
-- active_support (3.0.0)
-- activesupport (= 3.0.0)
- activesupport (3.0.0)
- backports (3.1.0)
- capybara (1.1.2)
-@@ -108,7 +106,7 @@ PLATFORMS
- ruby
-
- DEPENDENCIES
-- active_support
-+ activesupport
- capybara
- coquelicot!
- gettext
diff --git a/debian/patches/0009-Backport-auth-error-spill-fix.patch b/debian/patches/0009-Backport-auth-error-spill-fix.patch
deleted file mode 100644
index ac3a1dc..0000000
--- a/debian/patches/0009-Backport-auth-error-spill-fix.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Rowan Thorpe <[email protected]>
-Date: Thu, 8 Jan 2015 13:28:10 +0200
-Subject: Backport auth-error spill fix from 0.9.3
-
----
- lib/coquelicot/app.rb | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/lib/coquelicot/app.rb b/lib/coquelicot/app.rb
-index 6c2ccb0..73328b6 100644
---- a/lib/coquelicot/app.rb
-+++ b/lib/coquelicot/app.rb
-@@ -278,7 +278,11 @@
-
- error 500..510 do
- @error = env['sinatra.error'] || response.body.join
-- haml :error
-+ if request.xhr?
-+ "#{response.body.join}"
-+ else
-+ haml :error
-+ end
- end
-
- get '/style.css' do
-@@ -337,6 +341,9 @@
- 'OK'
- rescue Coquelicot::Auth::Error => ex
- error 503, ex.message
-+ rescue => ex
-+ dump_errors! ex
-+ error 500, "Issue has been logged."
- end
- end
-
diff --git a/debian/patches/0010-Fix-gem-dependency-issues.patch b/debian/patches/0010-Fix-gem-dependency-issues.patch
new file mode 100644
index 0000000..01d4278
--- /dev/null
+++ b/debian/patches/0010-Fix-gem-dependency-issues.patch
@@ -0,0 +1,27 @@
+From: Rowan Thorpe <[email protected]>
+Date: Thu, 8 Jan 2015 18:34:45 +0200
+Subject: Fix gem dependency issues
+
+---
+ coquelicot.gemspec | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/coquelicot.gemspec
++++ b/coquelicot.gemspec
+@@ -51,7 +51,7 @@
+ s.add_development_dependency 'capybara'
+ s.add_development_dependency 'activesupport'
+ s.add_development_dependency 'tzinfo'
+- s.add_development_dependency 'gettext'
++ s.add_development_dependency 'gettext', '~>3'
+ s.add_development_dependency 'net-ldap'
+
+ s.add_runtime_dependency 'sinatra', '~>1.3'
+@@ -59,7 +59,6 @@
+ s.add_runtime_dependency 'rack', '~>1.1'
+ s.add_runtime_dependency 'haml', '~>3.1'
+ s.add_runtime_dependency 'haml-magic-translations', '~>0.3'
+- s.add_runtime_dependency 'gettext', '~>3'
+ s.add_runtime_dependency 'sass'
+ s.add_runtime_dependency 'maruku'
+ s.add_runtime_dependency 'fast_gettext'
diff --git a/debian/patches/series b/debian/patches/series
index 8170ae3..3cdc319 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,9 +1,6 @@
0001-Make-rubygems-and-bundler-optional-to-run-the-tests.patch
-0002-Set-a-default-time-zone.patch
0003-Do-not-use-rubygems-or-bundler-to-run-Coquelicot.patch
0004-Send-the-gem-prepared-earlier-as-source.patch
0005-Adjust-paths-to-fit-Debian-packaging.patch
0006-Stop-using-non-free-background-image.patch
-0007-Add-support-for-the-Psych-YAML-engine.patch
-0008-Fix-rubygem-dep-naming.patch
-0009-Backport-auth-error-spill-fix.patch
+0010-Fix-gem-dependency-issues.patch
diff --git a/debian/settings.yml b/debian/settings.yml
index 2d11033..c5653fd 100644
--- a/debian/settings.yml
+++ b/debian/settings.yml
@@ -111,8 +111,9 @@ show_exceptions: false
# Authentication method
#
# Please have look at
-# `/usr/share/doc/coquelicot/examples/settings-simplepass.yml` and
-# `/usr/share/doc/coquelicot/examples/settings-imap.yml` for more details.
+# `/usr/share/doc/coquelicot/examples/settings-simplepass.yml`,
+# `/usr/share/doc/coquelicot/examples/settings-imap.yml` and
+# `/usr/share/doc/coquelicot/examples/settings-ldap.yml` for more details.
#
# The default password is 'test'.
authentication_method:
--
2.1.3
--- End Message ---