JiaLiangC opened a new pull request, #1254:
URL: https://github.com/apache/bigtop/pull/1254
<!--
Thanks for sending a pull request!
1. If this is your first time, please read our contributor guidelines:
https://cwiki.apache.org/confluence/display/BIGTOP/How+to+Contribute
2. Make sure your PR title starts with JIRA issue id, e.g.,
'BIGTOP-3638: Your PR title ...'.
-->
### Description of PR
While working on adding pkgSuffix and parent directory to BigTop DEBs, it
became necessary to pass these two variables to the DEB rules file. Upon
inspection, I found that the code logic for pkgSuffix and parent directory in
RPMs shared similarities in several places and was repetitive. The DEB logic
appeared similar too. Instead of following the previous practice that resulted
in significant code duplication, I have refactored this part and conducted
tests.
Below are some comments regarding the modifications added.
```
getPkgNameSuffix(component, type) {
def originalSuffix = type.equalsIgnoreCase("deb") ?
component.deb_pkg_suffix : component.rpm_pkg_suffix
#In RPMs, the Suffix is in the form of a macro and cannot be an empty
string, as it would result in a "macro empty body"
error. However, in DEB packaging, an empty string can be used.
def defaultSuffix = type.equalsIgnoreCase("deb") ? "" : "%{nil}"
def pkgNameSuffix = project.hasProperty("pkgSuffix")? originalSuffix :
defaultSuffix
#The gradlePkgNameSuffix is solely used for concatenating package names,
thus it must be empty if the originalSuffix does not exist.
def gradlePkgNameSuffix = pkgNameSuffix == defaultSuffix ? "" :
pkgNameSuffix
return [pkgNameSuffix: pkgNameSuffix, gradlePkgNameSuffix:
gradlePkgNameSuffix]
}
def getParentDir(bigtopBaseVersion, type) {
#In RPMs, the Suffix is in the form of a macro and cannot be an empty
string, as it would result in a "macro empty body" error. However, in DEB
packaging, an empty string can be used.
def defaultParentDirValue = type.equalsIgnoreCase("deb") ? "" : "%{nil}"
def parentDir = project.hasProperty("parentDir") ?
project.property('parentDir') : defaultParentDirValue
if (parentDir && parentDir != "%{nil}") {
parentDir = "${parentDir}/${bigtopBaseVersion}"
}
return parentDir
```
### How was this patch tested?
manual test and smoke test
test without suffix
. /etc/profile.d/bigtop.sh;./gradlew zookeeper-clean zookeeper-pkg
-PbuildThreads=2C repo

smoke test
./docker-hadoop.sh -d -dcp -C config_rockylinux-8.yaml -F
docker-compose-cgroupv2.yml -G -L -k zookeeper -s zookeeper -c 1

test with suffix
. /etc/profile.d/bigtop.sh;./gradlew zookeeper-clean zookeeper-pkg
-PparentDir=/usr/bigtop -PpkgSuffix -PbuildThreads=2C repo


### For code changes:
- [ ] Does the title or this PR starts with the corresponding JIRA issue id
(e.g. 'BIGTOP-3638. Your PR title ...')?
- [ ] Make sure that newly added files do not have any licensing issues.
When in doubt refer to https://www.apache.org/licenses/
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]