Skip to content

Commit

Permalink
chore: fix packaging for rpm based systems
Browse files Browse the repository at this point in the history
  • Loading branch information
d--j committed Mar 16, 2023
1 parent e520f6a commit 25280d9
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 6 deletions.
37 changes: 33 additions & 4 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,27 +64,56 @@ nfpms:
dst: /lib/systemd/system/srs-milter.service
- dst: /etc/srs-milter
type: dir
packager: rpm
file_info:
mode: 0750
owner: root
group: nobody
- dst: /etc/srs-milter
type: dir
packager: deb
file_info:
mode: 0750
owner: root
group: nogroup
- dst: /etc/srs-milter
type: dir
packager: apk
file_info:
mode: 0750
owner: root
group: nogroup
- src: packaging/srs-milter.yml
dst: /etc/srs-milter/srs-milter.yml
type: "config|noreplace"
packager: rpm
file_info:
mode: 0640
owner: root
group: nogroup
group: nobody
- src: packaging/srs-milter.yml
dst: /etc/srs-milter/srs-milter.yml
type: "config|noreplace"
packager: deb
file_info:
mode: 0640
owner: root
group: nobody
- src: packaging/srs-milter.yml
dst: /etc/srs-milter/srs-milter.yml
type: "config|noreplace"
packager: apk
file_info:
mode: 0640
owner: root
group: nobody
- src: 'dist/{{.Os}}_{{.Arch}}.1.gz'
dst: /usr/share/man/man1/
- src: ./packaging/copyright
dst: /usr/share/doc/srs-milter/copyright
packager: deb
file_info:
mode: 0644
scripts:
postinstall: "packaging/postinstall.sh"

deb:
triggers:
activate_noawait:
Expand Down
16 changes: 14 additions & 2 deletions packaging/postinstall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ if ! command -V systemctl >/dev/null 2>&1; then
# systemd_version=$(systemctl --version | head -1 | sed 's/systemd //g')
fi

fixSystemdUnit() {
if ! getent group nogroup >/dev/null 2>&1; then
sed -i -e "s/^SupplementaryGroups=nogroup/SupplementaryGroups=nobody/" /lib/systemd/system/srs-milter.service || printf "\033[31m Could not fix srs-milter.service\033[0m\n"
fi
}

errorNoSrsKey() {
printf "\033[31m Could not generate secret. Replace __SRS_KEY__ with random data in /etc/srs-milter/srs-milter.yml\033[0m\n"
}
Expand All @@ -26,7 +32,7 @@ seedConfig() {
else
INPUT=/dev/random
fi
if [ -c "$INPUT" ] && SECRET_KEY=$(LC_ALL=C tr -dc 'A-Za-z0-9' <"$INPUT" | head -c 64); then
if [ -c "$INPUT" ] && SECRET_KEY=$(LC_ALL=C tr -dc 'A-Za-z0-9' 2>/dev/null <"$INPUT" | head -c 64); then
sed -i -e "s/__SRS_KEY__/$SECRET_KEY/" /etc/srs-milter/srs-milter.yml || errorNoSrsKey
else
errorNoSrsKey
Expand Down Expand Up @@ -55,10 +61,15 @@ seedConfig() {
}

cleanInstall() {
chgrp nogroup /etc/srs-milter /etc/srs-milter/srs-milter.yml || :
if getent group nogroup >/dev/null 2>&1; then
chgrp nogroup /etc/srs-milter /etc/srs-milter/srs-milter.yml || :
else
chgrp nobody /etc/srs-milter /etc/srs-milter/srs-milter.yml || :
fi
chmod 0750 /etc/srs-milter || :
chmod 0640 /etc/srs-milter/srs-milter.yml || :
seedConfig
fixSystemdUnit
if [ "${use_systemctl}" = "False" ]; then
printf "\033[31m srs-milter does not support your init system. You need to setup daemon starting on your own.\033[0m\n"
else
Expand All @@ -76,6 +87,7 @@ cleanInstall() {

upgrade() {
seedConfig
fixSystemdUnit
systemctl daemon-reload || :
systemctl restart srs-milter.service || :
}
Expand Down

0 comments on commit 25280d9

Please sign in to comment.