Skip to content

Commit

Permalink
Add Ubuntu 18.04 LTS (Bionic) Support
Browse files Browse the repository at this point in the history
* Adds patch for Postgres 10 https://stackoverflow.com/a/51373732/387558
* Adds Cosmic repo for pdftk-java https://askubuntu.com/a/1028983
  • Loading branch information
garethrees committed May 31, 2019
1 parent 1f2a600 commit b4983e4
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,10 @@ SUPPORTED_OPERATING_SYSTEMS = {
box: 'ubuntu/xenial64',
box_url: 'https://app.vagrantup.com/ubuntu/boxes/xenial64'
},
'bionic64' => {
box: 'ubuntu/bionic64',
box_url: 'https://app.vagrantup.com/ubuntu/boxes/bionic64'
},
'stretch64' => {
box: 'debian/stretch64',
box_url: 'https://app.vagrantup.com/debian/boxes/stretch64'
Expand Down
45 changes: 45 additions & 0 deletions config/initializers/backport_pg_10_support_to_rails_4.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
require 'active_record/connection_adapters/postgresql/schema_statements'

#
# Monkey-patch the refused Rails 4.2 patch at https://github.com/rails/rails/pull /31330
#
# Updates sequence logic to support PostgreSQL 10.
#

module ActiveRecord
module ConnectionAdapters
module PostgreSQL
module SchemaStatements
# Resets the sequence of a table's primary key to the maximum value.
def reset_pk_sequence!(table, pk = nil, sequence = nil) #:nodoc:
unless pk and sequence
default_pk, default_sequence = pk_and_sequence_for(table)

pk ||= default_pk
sequence ||= default_sequence
end

if @logger && pk && !sequence
@logger.warn "#{table} has primary key #{pk} with no default sequence"
end

if pk && sequence
quoted_sequence = quote_table_name(sequence)
max_pk = select_value("SELECT MAX(#{quote_column_name pk}) FROM #{quote_table_name(table)}")
if max_pk.nil?
if postgresql_version >= 100000
minvalue = select_value("SELECT seqmin FROM pg_sequence WHERE seqrelid = #{quote(quoted_sequence)}::regclass")
else
minvalue = select_value("SELECT min_value FROM #{quoted_sequence}")
end
end

select_value <<-end_sql, 'SCHEMA'
SELECT setval(#{quote(quoted_sequence)}, #{max_pk ? max_pk : minvalue}, #{max_pk ? true : false})
end_sql
end
end
end
end
end
end
37 changes: 37 additions & 0 deletions config/packages.ubuntu-bionic
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
build-essential
bundler
catdoc
elinks
geoip-database
gettext
ghostscript
gnuplot-nox
imagemagick
libicu-dev
libmagic-dev
libmagickwand-dev
libpq-dev
libsqlite3-dev
libxml2-dev
libxslt-dev
links
lockfile-progs
memcached
mutt
pdftk-java
poppler-utils
postgresql
postgresql-client
python-yaml
rake
ruby
ruby-dev
sqlite3
tnef
ttf-bitstream-vera
unrtf
unzip
uuid-dev
wkhtmltopdf-static
wv
xapian-tools
20 changes: 20 additions & 0 deletions script/site-specific-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,26 @@ fi

update_mysociety_apt_sources

# Ubuntu Bionic Fixes
if [ x"$DISTRIBUTION" = x"ubuntu" ] && [ x"$DISTVERSION" = x"bionic" ]
then
# Add cosmic repo to get pdftk-java
cat > /etc/apt/sources.list.d/ubuntu-cosmic.list <<EOF
deb http://archive.ubuntu.com/ubuntu/ cosmic universe
deb-src http://archive.ubuntu.com/ubuntu/ cosmic universe
EOF

# De-prioritise all packages from cosmic. We only add the repo to install
# pdftk-java, as pdftk is not available in bionic.
cat >> /etc/apt/preferences <<EOF
Package: *
Pin: release n=cosmic
Pin-Priority: 50
EOF

apt-get -qq update
fi

apt-get -y update

echo 'Setting hostname...'
Expand Down

0 comments on commit b4983e4

Please sign in to comment.