11 Commits
7 changed files with 248 additions and 183 deletions

No files matched your search

+89 -9
View File
@@ -1,19 +1,99 @@
pve-nag-buster # pve-nag-buster
Persistent license nag removal for Proxmox VE 5.x https://github.com/foundObjects/pve-nag-buster
A bash script and dpkg pre/post install hooks to persistently remove the license nags from Proxmox VE 5.x. This is a dpkg post install hook script that persistently removes license nags
from Proxmox VE 5.x and up. Install it once and you won't see another license
nag until Proxmox changes their web-ui code significantly.
The main script does two things: it removes the "unlicensed node" popup nag from the web gui and it switches repositories from pve-enterprise to pve-no-subscription. The script is called every time a package updates the web gui or the Please support the Proxmox team by [buying a subscription](https://www.proxmox.com/en/proxmox-ve/pricing) if it's within your
pve-enterprise source list and will only run if packages containing those files are changed. There are no external dependencies beyond the base packages installed with PVE by default (awk, sed, grep, wget). means. High quality open source software like Proxmox needs our support!
For your convenience the install script also contains a base64 encoded copy of pve-nag-buster.sh for use offline. I'd have just packed everything into install.sh by default but making everyone download, unxz and base64 decode a HEREDOC to look at my code seemed rude. ### How does it work?
To install: The included hook script removes the "unlicensed node" popup nag from the web
gui and disables the pve-enterprise repository list. This script is called
every time a package updates the web gui or the pve-enterprise source list and
will only run if packages containing those files are changed. The installer
drops the hook script and creates dpkg hooks to call it then adds the
pve-no-subscription repo list. There are no external dependencies beyond the
base packages installed with PVE by default (awk, sed, grep, wget).
### Installation
``` ```
wget https://raw.githubusercontent.com/foundObjects/pve-nag-buster/master/install.sh wget https://raw.githubusercontent.com/foundObjects/pve-nag-buster/master/install.sh
# Read the script # Always read scripts downloaded from the internet before running them with sudo
chmod +x install.sh && ./install.sh chmod +x install.sh && sudo ./install.sh
``` ```
With Git:
```
git clone https://github.com/foundObjects/pve-nag-buster.git
# Always read scripts downloaded from the internet before running them with sudo
cd pve-nag-buster && sudo ./install.sh
```
### Uninstall:
```
./install.sh --uninstall
# remove /etc/apt/sources.list.d/pve-no-subscription.list if desired
```
### Notes:
#### Why is there base64 in my peanut-butter?
For convenience the install script also contains a base64 encoded copy of the
hook script, this makes installation possible without access to github or a
full clone of the project directory.
To inspect the base64 encoded script run `./install.sh --emit`; this dumps the
encoded copy to stdout and quits. To install using the stored copy just run
`sudo ./install.sh --offline`, no internet required.
#### Git repo history
Sorry to all 5 of you who forked the repo before about 2020-01-20; I rewrote
git history to cleanup the commit noise from adding files through GitHub's web
UI.
If you need to sync a cloned repo with the new history and haven't made any
changes:
```
git fetch --all -p -P
git push -f . origin/master:master
```
If you've made changes to the code:
Migrating to the new master branch should be fairly straightforward, the v02
tag repo state in the new commit history is identical to the repo state before
the rebase.
```
# save and commit your work
git commit -a -m "WIP"
# make a backup of your branch Just In Case™
git checkout -b backup
git checkout -
git fetch --all
git rebase -f --onto v02 origin/old-master <your branch here>
```
I highly recommend picking at least the following bugfix commits if you don't
want to track new work in master, they fix a couple of potential problems.
* a260891 hook script: fixed grep test issue
* 427b23b more reliable hook trigger removal
### Credits:
Thanks to John McLaren for his [blog post](https://www.reddit.com/user/seaqueue) documenting the web gui patch:
### Contact:
[Open an issue](https://github.com/foundObjects/pve-nag-buster/issues) on GitHub or contact me as [/u/SeaQueue on Reddit](https://www.reddit.com/user/seaqueue).
Please get in touch if you find a way to improve anything, otherwise enjoy! Please get in touch if you find a way to improve anything, otherwise enjoy!
+129 -43
View File
@@ -1,9 +1,10 @@
#!/bin/bash #!/bin/sh
case "$(readlink /proc/$$/exe)" in */bash) set -euo pipefail ;; *) set -eu ;; esac
# pve-nag-buster (v02) https://github.com/foundObjects/pve-nag-buster # pve-nag-buster (v03) https://github.com/foundObjects/pve-nag-buster
# Copyright (C) 2019 /u/seaQueue (reddit.com/u/seaQueue) # Copyright (C) 2019 /u/seaQueue (reddit.com/u/seaQueue)
# #
# Removes Proxmox VE 5.x license nags automatically after updates # Removes Proxmox VE 5.x+ license nags automatically after updates
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License
@@ -19,72 +20,157 @@
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# ensure a predictable environment
PATH=/usr/sbin:/usr/bin:/sbin:/bin
\unalias -a
# installer main body:
_main() {
# ensure $1 exists so 'set -u' doesn't error out
{ [ "$#" -eq "0" ] && set -- ""; } > /dev/null 2>&1
case "$1" in
"--emit")
# call the emit_script() function to stdout and exit, use this to verify
# that the base64 encoded script below isn't doing anything malicious
# does not require root
emit_script
;;
"--uninstall")
# uninstall, requires root
assert_root
_uninstall
;;
"--install" | "--offline" | "")
# install dpkg hooks, requires root
assert_root
_install "$@"
;;
*)
# unknown flags, print usage and exit
_usage
;;
esac
exit 0
}
_uninstall() {
set -x
[ -f "/etc/apt/apt.conf.d/86pve-nags" ] &&
rm -f "/etc/apt/apt.conf.d/86pve-nags"
[ -f "/usr/share/pve-nag-buster.sh" ] &&
rm -f "/usr/share/pve-nag-buster.sh"
echo "Script and dpkg hooks removed, please manually remove /etc/apt/sources.list.d/pve-no-subscription.list if desired"
}
_install() {
# create hooks and no-subscription repo list, install hook script, run once
VERSION_CODENAME=''
ID=''
. /etc/os-release
case "$ID" in
"debian")
if [ -n "$VERSION_CODENAME" ]; then
RELEASE="$VERSION_CODENAME"
else
RELEASE=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release) RELEASE=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release)
fi
;;
#"ubuntu") # it doesn't look like this is possible anymore
# ;;
*)
echo "Sorry, I don't know how to handle your Linux distribution '$ID'"
exit 1
;;
esac
# create the pve-no-subscription list # create the pve-no-subscription list
echo "Creating PVE no-subscription repo list ..."
echo "$0: Creating PVE no-subscription repo list ..." cat <<- EOF > "/etc/apt/sources.list.d/pve-no-subscription.list"
cat <<EOF>"/etc/apt/sources.list.d/pve-no-subscription.list" # .list file automatically generated by pve-nag-buster at $(date)
# .list file automatically generated by pve-nag-buster:$0 at $(date)
# #
# If $0 is run again this file will likely be overwritten # If pve-nag-buster is installed again this file will be overwritten
# #
deb http://download.proxmox.com/debian/pve $RELEASE pve-no-subscription deb http://download.proxmox.com/debian/pve $RELEASE pve-no-subscription
EOF EOF
# create dpkg pre/post install hooks for persistence # create dpkg pre/post install hooks for persistence
echo "Creating dpkg hooks in /etc/apt/apt.conf.d ..."
cat <<'EOF' >/etc/apt/apt.conf.d/86pve-nags cat <<- 'EOF' > "/etc/apt/apt.conf.d/86pve-nags"
DPkg::Pre-Install-Pkgs { DPkg::Pre-Install-Pkgs {
"while read -r pkg; do case $pkg in *proxmox-widget-toolkit* | *pve-manager*) touch /tmp/.pve-nag-buster && exit 0; esac done < /dev/stdin"; "while read -r pkg; do case $pkg in *proxmox-widget-toolkit* | *pve-manager*) touch /tmp/.pve-nag-buster && exit 0; esac done < /dev/stdin";
}; };
DPkg::Post-Invoke { DPkg::Post-Invoke {
"[ -f /tmp/.pve-nag-buster ] && /usr/share/pve-nag-buster.sh && rm -f /tmp/.pve-nag-buster; exit 0"; "[ -f /tmp/.pve-nag-buster ] && { /usr/share/pve-nag-buster.sh; rm -f /tmp/.pve-nag-buster; }; exit 0";
}; };
EOF EOF
# fetch the post-install patch script, patches license nag and switches to pve-no-subscription repository as needed # install the hook script
temp=''
if true ; then if [ "$1" = "--offline" ]; then
# packed script requested
temp="$(mktemp)" && trap "rm -f $temp" EXIT
emit_script > "$temp"
elif [ -f "pve-nag-buster.sh" ]; then
# local copy available
temp="pve-nag-buster.sh"
else
# fetch from github
echo "Fetching hook script from GitHub ..."
tempd="$(mktemp -d)" &&
trap "echo 'Cleaning up temporary files ...'; rm -f $tempd/*; rmdir $tempd" EXIT
temp="$tempd/pve-nag-buster.sh"
wget https://raw.githubusercontent.com/foundObjects/pve-nag-buster/master/pve-nag-buster.sh \ wget https://raw.githubusercontent.com/foundObjects/pve-nag-buster/master/pve-nag-buster.sh \
-O "/usr/share/pve-nag-buster.sh" && \ -q --show-progress -O "$temp"
chmod +x "/usr/share/pve-nag-buster.sh" && \ fi
echo "Installing hook script as /usr/share/pve-nag-buster.sh"
install -o root -m 0550 "$temp" "/usr/share/pve-nag-buster.sh"
echo "Running patch script"
/usr/share/pve-nag-buster.sh /usr/share/pve-nag-buster.sh
exit 0 return 0
fi }
# this is the end, example offline code below # emit a stored copy of pve-nag-buster.sh offline -- this is intended to be used during
# offline provisioning where we don't have access to github or a full cloned copy of the
# project
# Example code for inclusion into host provisioning scripts offline: this is just pve-nag-buster.sh # run 'install.sh --emit' to dump stored script to stdout
# run through "xz -z -9 -c pve-nag-buster.sh | base64" to avoid needing to fetch the script from github
# To use this installer offline just nuke the entire if block above.
# Important: if you're not me you should probably decode this and read it to make sure I'm not doing # Important: if you're not me you should probably decode this and read it to make sure I'm not doing
# something malicious like mining dogecoin or stealing your valuable cat pictures # something malicious like mining dogecoin or stealing your valuable cat pictures
# pve-nag-buster.sh (v02) inline: # pve-nag-buster.sh (v03) encoded below:
base64 -d <<"YEET"| unxz > "/usr/share/pve-nag-buster.sh" && \ emit_script() {
chmod +x "/usr/share/pve-nag-buster.sh" && \ base64 -d << 'YEET' | unxz
/usr/share/pve-nag-buster.sh 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 BFla
YEET YEET
}
assert_root() { [ "$(id -u)" -eq '0' ] || { echo "This action requires root." && exit 1; }; }
_usage() { echo "Usage: $(basename "$0") (--emit|--offline|--uninstall)"; }
_main "$@"
+23
View File
@@ -0,0 +1,23 @@
#!/bin/sh
_VERS="v03"
_BRANCH=$(git branch --show-current) >/dev/null 2>&1 ||
{ echo "can't poll branch, defaulting to master" && _BRANCH="master"; }
# update versions before packing install.sh
sed -i -r \
-e "s;\(v[[:digit:]][[:digit:]].?\);\($_VERS\);" \
-e "s;(nag-buster/).*(/(pve-nag-buster|install)\.sh);\1$_BRANCH\2;" \
pve-nag-buster.sh install.sh README.md
# TODO there's probably a two liner to handle all of this in awk:
# pack install.sh
{
head -n"$(grep -n "<< 'YEET'" install.sh | cut -d: -f1)" install.sh
xz -z -9 -c pve-nag-buster.sh | base64
tail -n+"$(grep -n '^YEET$' install.sh | cut -d: -f1)" install.sh
} > foofile
cat foofile > install.sh
rm -f foofile
+7 -6
View File
@@ -1,9 +1,9 @@
#!/bin/bash #!/bin/sh
# #
# pve-nag-buster.sh (v02) https://github.com/foundObjects/pve-nag-buster # pve-nag-buster.sh (v03) https://github.com/foundObjects/pve-nag-buster
# Copyright (C) 2019 /u/seaQueue (reddit.com/u/seaQueue) # Copyright (C) 2019 /u/seaQueue (reddit.com/u/seaQueue)
# #
# Removes Proxmox VE 5.x license nags automatically after updates # Removes Proxmox VE 5.x+ license nags automatically after updates
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License
@@ -21,11 +21,12 @@
NAGTOKEN="data.status !== 'Active'" NAGTOKEN="data.status !== 'Active'"
NAGFILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js" NAGFILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"
SCRIPT="$(basename $0)"
# disable license nag: https://johnscs.com/remove-proxmox51-subscription-notice/ # disable license nag: https://johnscs.com/remove-proxmox51-subscription-notice/
if $(grep -q "$NAGTOKEN" "$NAGFILE") ; then if grep -qs "$NAGTOKEN" "$NAGFILE" > /dev/null 2>&1; then
echo "$0: Removing Nag ..." echo "$SCRIPT: Removing Nag ..."
sed -i.orig "s/$NAGTOKEN/false/g" "$NAGFILE" sed -i.orig "s/$NAGTOKEN/false/g" "$NAGFILE"
systemctl restart pveproxy.service systemctl restart pveproxy.service
fi fi
@@ -35,6 +36,6 @@ fi
PAID_BASE="/etc/apt/sources.list.d/pve-enterprise" PAID_BASE="/etc/apt/sources.list.d/pve-enterprise"
if [ -f "$PAID_BASE.list" ]; then if [ -f "$PAID_BASE.list" ]; then
echo "$0: Disabling PVE paid repo list ..." echo "$SCRIPT: Disabling PVE paid repo list ..."
mv -f "$PAID_BASE.list" "$PAID_BASE.disabled" mv -f "$PAID_BASE.list" "$PAID_BASE.disabled"
fi fi
-72
View File
@@ -1,72 +0,0 @@
#!/bin/bash
# pve-nag-buster (__VERSION__) https://github.com/foundObjects/pve-nag-buster
# Copyright (C) 2019 /u/seaQueue (reddit.com/u/seaQueue)
#
# Removes Proxmox VE 5.x license nags automatically after updates
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
RELEASE=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release)
# create the pve-no-subscription list
echo "$0: Creating PVE no-subscription repo list ..."
cat <<EOF>"/etc/apt/sources.list.d/pve-no-subscription.list"
# .list file automatically generated by pve-nag-buster:$0 at $(date)
#
# If $0 is run again this file will likely be overwritten
#
deb http://download.proxmox.com/debian/pve $RELEASE pve-no-subscription
EOF
# create dpkg pre/post install hooks for persistence
cat <<'EOF' >/etc/apt/apt.conf.d/86pve-nags
DPkg::Pre-Install-Pkgs {
"while read -r pkg; do case $pkg in *proxmox-widget-toolkit* | *pve-manager*) touch /tmp/.pve-nag-buster && exit 0; esac done < /dev/stdin";
};
DPkg::Post-Invoke {
"[ -f /tmp/.pve-nag-buster ] && /usr/share/pve-nag-buster.sh && rm -f /tmp/.pve-nag-buster; exit 0";
};
EOF
# fetch the post-install patch script, patches license nag and switches to pve-no-subscription repository as needed
if true ; then
wget https://raw.githubusercontent.com/foundObjects/pve-nag-buster/master/pve-nag-buster.sh \
-O "/usr/share/pve-nag-buster.sh" && \
chmod +x "/usr/share/pve-nag-buster.sh" && \
/usr/share/pve-nag-buster.sh
exit 0
fi
# this is the end, example offline code below
# Example code for inclusion into host provisioning scripts offline: this is just pve-nag-buster.sh
# run through "xz -z -9 -c pve-nag-buster.sh | base64" to avoid needing to fetch the script from github
# To use this installer offline just nuke the entire if block above.
# Important: if you're not me you should probably decode this and read it to make sure I'm not doing
# something malicious like mining dogecoin or stealing your valuable cat pictures
# pve-nag-buster.sh (__VERSION__) inline:
base64 -d <<"YEET"| unxz > "/usr/share/pve-nag-buster.sh" && \
chmod +x "/usr/share/pve-nag-buster.sh" && \
/usr/share/pve-nag-buster.sh
-13
View File
@@ -1,13 +0,0 @@
#!/bin/bash
_VERS="v02"
_OUTFILE="pve-nag-buster.sh"
sed "s/__VERSION__/$_VERS/g" src/script > $_OUTFILE
_OUTFILE="install.sh"
sed "s/__VERSION__/$_VERS/g" src/install > $_OUTFILE
xz -z -9 -c pve-nag-buster.sh | base64 >> $_OUTFILE
echo "YEET" >> $_OUTFILE
-40
View File
@@ -1,40 +0,0 @@
#!/bin/bash
#
# pve-nag-buster.sh (__VERSION__) https://github.com/foundObjects/pve-nag-buster
# Copyright (C) 2019 /u/seaQueue (reddit.com/u/seaQueue)
#
# Removes Proxmox VE 5.x license nags automatically after updates
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
NAGTOKEN="data.status !== 'Active'"
NAGFILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"
# disable license nag: https://johnscs.com/remove-proxmox51-subscription-notice/
if $(grep -q "$NAGTOKEN" "$NAGFILE") ; then
echo "$0: Removing Nag ..."
sed -i.orig "s/$NAGTOKEN/false/g" "$NAGFILE"
systemctl restart pveproxy.service
fi
# disable paid repo list
PAID_BASE="/etc/apt/sources.list.d/pve-enterprise"
if [ -f "$PAID_BASE.list" ]; then
echo "$0: Disabling PVE paid repo list ..."
mv -f "$PAID_BASE.list" "$PAID_BASE.disabled"
fi