in lib/omnibus/packagers/rpm.rb [583:631]
def safe_version
version = project.build_version.dup
if version =~ /\-/
if Ohai["platform_family"] == "wrlinux"
converted = version.tr("-", "_")
log.warn(log_key) do
"Omnibus replaces dashes (-) with tildes (~) so pre-release " \
"versions get sorted earlier than final versions. However, the " \
"version of rpmbuild on Wind River Linux does not support this. " \
"All dashes will be replaced with underscores (_). Converting " \
"`#{project.build_version}' to `#{converted}'."
end
else
converted = version.tr("-", "~")
log.warn(log_key) do
"Tildes hold special significance in the RPM package versions. " \
"They mark a version as lower priority in RPM's version compare " \
"logic. We'll replace all dashes (-) with tildes (~) so pre-release" \
"versions get sorted earlier then final versions. Converting" \
"`#{project.build_version}' to `#{converted}'."
end
end
version = converted
end
if version =~ /\A[a-zA-Z0-9\.\+\~]+\z/
version
else
converted = version.gsub(/[^a-zA-Z0-9\.\+\~]+/, "_")
log.warn(log_key) do
"The `version' component of RPM package names can only include " \
"alphabetical characters (a-z, A-Z), numbers (0-9), dots (.), " \
"plus signs (+), tildes (~) and underscores (_). Converting " \
"`#{project.build_version}' to `#{converted}'."
end
converted
end
end