Force stable file modes for built packages (#30823)
If you have an unusual umask (e.g., 0002) and clone the GitHub repository then files that we stick into our packages like the README.textile and the license will have a file mode of 0664 on disk yet we expect them to be 0644. Additionally, the same thing happens with compiled artifacts like JARs. We try to set a default file mode yet it does not seem to take everywhere. This commit adds explicit file modes in some places that we were relying on the defaults to ensure that the built artifacts have a consistent file mode regardless of the underlying build host.
This commit is contained in:
parent
e76c09f642
commit
e8b543b8cd
|
@ -242,6 +242,8 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) {
|
|||
if (it.relativePath.segments[-2] == 'bin') {
|
||||
// bin files, wherever they are within modules (eg platform specific) should be executable
|
||||
it.mode = 0755
|
||||
} else {
|
||||
it.mode = 0644
|
||||
}
|
||||
}
|
||||
if (oss) {
|
||||
|
|
|
@ -122,6 +122,7 @@ Closure commonPackageConfig(String type, boolean oss) {
|
|||
}
|
||||
from(rootProject.projectDir) {
|
||||
include 'README.textile'
|
||||
fileMode 0644
|
||||
}
|
||||
into('modules') {
|
||||
with copySpec {
|
||||
|
@ -135,6 +136,11 @@ Closure commonPackageConfig(String type, boolean oss) {
|
|||
for (int i = segments.length - 2; i > 0 && segments[i] != 'modules'; --i) {
|
||||
directory('/' + segments[0..i].join('/'), 0755)
|
||||
}
|
||||
if (segments[-2] == 'bin') {
|
||||
fcp.mode = 0755
|
||||
} else {
|
||||
fcp.mode = 0644
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -153,6 +159,7 @@ Closure commonPackageConfig(String type, boolean oss) {
|
|||
include oss ? 'APACHE-LICENSE-2.0.txt' : 'ELASTIC-LICENSE.txt'
|
||||
rename { 'LICENSE.txt' }
|
||||
}
|
||||
fileMode 0644
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -180,14 +187,17 @@ Closure commonPackageConfig(String type, boolean oss) {
|
|||
// ========= systemd =========
|
||||
into('/usr/lib/tmpfiles.d') {
|
||||
from "${packagingFiles}/systemd/elasticsearch.conf"
|
||||
fileMode 0644
|
||||
}
|
||||
into('/usr/lib/systemd/system') {
|
||||
fileType CONFIG | NOREPLACE
|
||||
from "${packagingFiles}/systemd/elasticsearch.service"
|
||||
fileMode 0644
|
||||
}
|
||||
into('/usr/lib/sysctl.d') {
|
||||
fileType CONFIG | NOREPLACE
|
||||
from "${packagingFiles}/systemd/sysctl/elasticsearch.conf"
|
||||
fileMode 0644
|
||||
}
|
||||
|
||||
// ========= sysV init =========
|
||||
|
|
Loading…
Reference in New Issue