Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ module EZBake
:main_namespace => {{{main-namespace}}},
:java_args => {{{java-args}}},
:java_args_cli => {{{java-args-cli}}},
:java_bin => {{{java-bin}}},
:tk_args => {{{tk-args}}},
:start_before => {{{start-before}}},
:start_after => {{{start-after}}},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
# Init settings for <%= EZBake::Config[:project] %>
###########################################

# Location of your Java binary (version 8)
JAVA_BIN="/usr/bin/java"
# Location of your Java binary
JAVA_BIN="<%= EZBake::Config[:java_bin] %>"

# Modify this if you'd like to change the memory allocation, enable JMX, etc
JAVA_ARGS="<%= EZBake::Config[:java_args] %>"
Expand Down
45 changes: 43 additions & 2 deletions resources/puppetlabs/lein-ezbake/template/global/ext/fpm.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,31 @@
require 'ostruct'

options = OpenStruct.new

# ezbake.rb is rendered from
# resources/puppetlabs/lein-ezbake/staging-templates/ezbake.rb.mustache
#
# inside the build container, fpm.rb is at:
# /code/target/staging/puppetserver-8.9.0/ext/fpm.rb
# ezbake:
# /code/target/staging/ezbake.rb
#
# we do this hula hoop jump because in our build process the ezbake.rb exists
# We also distribute a .tar.gz. This contains the compiled jar + fpm.rb.
# fpm.rb is executed while we build the packages. This is the same process as
# compiling the jar and rendering ezbake from
# resources/puppetlabs/lein-ezbake/staging-templates/ezbake.rb.mustache
# people that try to build their own package based on our tar, like FreeBSD, don't have the ezbake.rb
#
# patches welcome to move ezbake.rb into the tar *or* get rid of ezbake
begin
require_relative '../../ezbake'
rescue LoadError
options.java_bin = '/usr/bin/java'
else
options.java_bin = EZBake::Config[:java_bin]
end

# settin' some defaults
options.systemd_el = 0
options.systemd_sles = 0
Expand Down Expand Up @@ -141,6 +166,10 @@
end
options.dist = "#{options.operating_system}#{options.os_version}" if options.dist.nil?

# values can be... unexpected, so log them
warn "options.os_version is: #{options.os_version}"
warn "options.dist is: #{options.dist}"

fpm_opts = Array('')
shared_opts = Array('')
termini_opts = Array('')
Expand Down Expand Up @@ -269,8 +298,6 @@
options.release = "#{options.release}+#{options.dist}"
end

options.java = 'openjdk-21-jre-headless | openjdk-17-jre-headless'

fpm_opts << '--deb-build-depends cdbs'
fpm_opts << '--deb-build-depends bc'
fpm_opts << '--deb-build-depends mawk'
Expand All @@ -285,6 +312,20 @@
options.deb_activate_triggers.each do |trigger|
fpm_opts << "--deb-activate #{trigger}"
end

# figure out correct java dependency
case options.dist
# Bullseye, Bookworm
when 'debian11','debian12'
options.java = 'openjdk-17-jre-headless'
options.java_bin = '/usr/lib/jvm/java-17-openjdk-amd64/bin/java'
# Trixie, Focal Fossa, Jammy Jellyfish, Noble Numbat, Plucky Puffin, Questing Quokka, Resolute Raccoon
when 'debian13', 'ubuntu20.04', 'ubuntu22.04', 'ubuntu24.04', 'ubuntu25.04', 'ubuntu25.10', 'ubuntu26.04'
options.java = 'openjdk-21-jre-headless'
options.java_bin = '/usr/lib/jvm/java-21-openjdk-amd64/bin/java'
else
fail "no matching OS data found for #{options.dist}"
Comment thread
bastelfreak marked this conversation as resolved.
end
end

# generic options!
Expand Down
3 changes: 3 additions & 0 deletions src/puppetlabs/ezbake/core.clj
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@
(schema/optional-key :main-namespace) schema/Str
(schema/optional-key :java-args) schema/Str
(schema/optional-key :java-args-cli) schema/Str
(schema/optional-key :java-bin) schema/Str
(schema/optional-key :tk-args) schema/Str
(schema/optional-key :redhat-postinst-install-triggers) RPMTriggers
(schema/optional-key :redhat-postinst-upgrade-triggers) RPMTriggers
Expand Down Expand Up @@ -802,6 +803,8 @@ Additional uberjar dependencies:
:java-args (local->ruby :java-args
"-Xmx192m")
:java-args-cli (local->ruby :java-args-cli "")
:java-bin (local->ruby :java-bin
"/usr/bin/java")
:tk-args (local->ruby :tk-args "")
:bootstrap-source (-> (get-local :bootstrap-source :bootstrap-cfg)
name as-ruby-literal)
Expand Down
1 change: 1 addition & 0 deletions test/unit/puppetlabs/ezbake/core_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
:project "'dummy'"
:debian-postinst-install "[]"
:java-args-cli "''"
:java-bin "'/usr/bin/java'"
:cli-defaults-file "'ext/cli_defaults/cli-defaults.sh'"
:debian-install "[]"
:redhat-postinst-install-triggers []
Expand Down
Loading