diff options
-rw-r--r-- | .SRCINFO | 26 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | PKGBUILD | 49 | ||||
-rw-r--r-- | UnblockNeteaseMusic-ensure-keys | 28 | ||||
-rw-r--r-- | UnblockNeteaseMusic-post-install | 19 | ||||
-rw-r--r-- | UnblockNeteaseMusic.hook | 9 | ||||
-rw-r--r-- | UnblockNeteaseMusic.service | 30 | ||||
-rw-r--r-- | UnblockNeteaseMusic.tmpfiles | 2 |
8 files changed, 168 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..2d2ead9b4de9 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,26 @@ +pkgbase = unblockneteasemusic-golang-git + pkgdesc = Revive unavailable songs for Netease Cloud Music (Golang) + pkgver = 0.2.13.r16.g92b59c9 + pkgrel = 1 + url = https://github.com/cnsilvan/UnblockNeteaseMusic + arch = x86_64 + license = GPL + makedepends = git + makedepends = go + depends = openssl + provides = unblockneteasemusic-golang + conflicts = unblockneteasemusic-golang + source = git+https://github.com/cnsilvan/UnblockNeteaseMusic.git + source = UnblockNeteaseMusic.service + source = UnblockNeteaseMusic-ensure-keys + source = UnblockNeteaseMusic.hook + source = UnblockNeteaseMusic-post-install + source = UnblockNeteaseMusic.tmpfiles + sha256sums = SKIP + sha256sums = a08261e75c01af4a99fbab13a4c511b0424e589b7598069993621d7b128e3897 + sha256sums = 3c62339a361583ba87d29cd07bdef4eb630b40450714da1a79bb97d42a599fbf + sha256sums = e378e61dab90b8fecd87edfaf0140fc2dc2e139b2185960faaf8d9cfc1bff981 + sha256sums = 0c5dda43b23ad79cbf8bcf7e4bd8fd9b033d24b3e2f00cda498881431afa35c3 + sha256sums = 5818b2fec2979571b88083ba515d62c2c755ae3bfab1b898e59d614fe5486042 + +pkgname = unblockneteasemusic-golang-git diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..0059ccdfba44 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +pkg +src +*.pkg.tar.* +UnblockNeteaseMusic +*.log diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..790d27de5007 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,49 @@ +pkgname="unblockneteasemusic-golang-git" +pkgver=0.2.13.r16.g92b59c9 +pkgrel=1 +pkgdesc="Revive unavailable songs for Netease Cloud Music (Golang)" +arch=("x86_64") +url="https://github.com/cnsilvan/UnblockNeteaseMusic" +license=("GPL") +depends=("openssl") +makedepends=("git" "go") +source=( + "git+$url.git" + "UnblockNeteaseMusic.service" + "UnblockNeteaseMusic-ensure-keys" + "UnblockNeteaseMusic.hook" + "UnblockNeteaseMusic-post-install" + "UnblockNeteaseMusic.tmpfiles" +) +sha256sums=('SKIP' + 'a08261e75c01af4a99fbab13a4c511b0424e589b7598069993621d7b128e3897' + '3c62339a361583ba87d29cd07bdef4eb630b40450714da1a79bb97d42a599fbf' + 'e378e61dab90b8fecd87edfaf0140fc2dc2e139b2185960faaf8d9cfc1bff981' + '0c5dda43b23ad79cbf8bcf7e4bd8fd9b033d24b3e2f00cda498881431afa35c3' + '5818b2fec2979571b88083ba515d62c2c755ae3bfab1b898e59d614fe5486042') +conflicts=("unblockneteasemusic-golang") +provides=("unblockneteasemusic-golang") + +pkgver(){ + cd "$srcdir/UnblockNeteaseMusic" + git describe --tags --long | sed 's/v//;s/-/.r/;s/-/./g' +} +build(){ + cd "$srcdir/UnblockNeteaseMusic" + version_info=github.com/cnsilvan/UnblockNeteaseMusic/version + go build -ldflags \ + "-X '$version_info.Version=${pkgver%%.r*}' \ + -X '$version_info.BuildTime=$(date "+%Y-%m-%d %H:%M:%S")' \ + -X '$version_info.GoVersion=$(go version)' \ + -X '$version_info.GitCommit=${pkgver#*.g*}' \ + -w -s" -o UnblockNeteaseMusic +} +package(){ + cd "$srcdir/UnblockNeteaseMusic" + install -Dm755 UnblockNeteaseMusic "$pkgdir/usr/bin/UnblockNeteaseMusic" + install -Dm755 "$srcdir/UnblockNeteaseMusic-ensure-keys" "$pkgdir/usr/bin/UnblockNeteaseMusic-ensure-keys" + install -Dm755 "$srcdir/UnblockNeteaseMusic-post-install" "$pkgdir/usr/share/libalpm/scripts/UnblockNeteaseMusic-post-install" + install -Dm644 "$srcdir/UnblockNeteaseMusic.service" "$pkgdir/usr/lib/systemd/system/UnblockNeteaseMusic.service" + install -Dm644 "$srcdir/UnblockNeteaseMusic.hook" "$pkgdir/usr/share/libalpm/hooks/UnblockNeteaseMusic.hook" + install -Dm644 "$srcdir/UnblockNeteaseMusic.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/UnblockNeteaseMusic.conf" +} diff --git a/UnblockNeteaseMusic-ensure-keys b/UnblockNeteaseMusic-ensure-keys new file mode 100644 index 000000000000..b5fe1c711de5 --- /dev/null +++ b/UnblockNeteaseMusic-ensure-keys @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# Taken from createCertificate.sh + +DAYS=825 +if [[ ! -f server.crt ]] || [[ ! -f server.key ]] +then + echo "Creating CA..." + openssl genrsa -out ca.key 2048 + openssl req -x509 -new -nodes -key ca.key -sha256 -days $DAYS -out ca.crt -subj "/C=CN/CN=UnblockNeteaseMusic Root CA/O=UnblockNeteaseMusic" + echo "Creating Server certificates..." + openssl genrsa -out server.key 2048 + openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/L=Hangzhou/O=NetEase (Hangzhou) Network Co., Ltd/OU=IT Dept./CN=*.music.163.com" + { + echo "basicConstraints=CA:FALSE" + echo "keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment" + echo "extendedKeyUsage=serverAuth" + echo "subjectAltName=DNS:music.163.com,DNS:*.music.163.com" + } > extFile.ext + openssl x509 -req -extfile extFile.ext -days $DAYS -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt + echo "We set the expire days for certificates of server and ca to $DAYS day(s), please update them in time when they are going to be expired." + echo "You can regenerate those certificates by removing generated files and rerunning this script." +fi + +if [[ -f server.crt ]] && [[ -f server.key ]] +then + echo "Creating server certificates successful!" +fi diff --git a/UnblockNeteaseMusic-post-install b/UnblockNeteaseMusic-post-install new file mode 100644 index 000000000000..64bba6ff93ed --- /dev/null +++ b/UnblockNeteaseMusic-post-install @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +if [[ ! -f /etc/UnblockNeteaseMusic.conf ]] +then + echo "Generating default arguments for UnblockNeteaseMusic..." + { + echo "# Extra arguments passed to UnblockNeteaseMusic" + echo "# See UnblockNeteaseMusic --help for more info" + echo "ARGS=-b -ba -bu -e -lv -m 2 -sef" + } > /etc/UnblockNeteaseMusic.conf +fi + +if [[ -d /var/lib/UnblockNeteaseMusic ]] +then + cd /var/lib/UnblockNeteaseMusic + UnblockNeteaseMusic-ensure-keys +else + echo "You need to go to /var/lib/UnblockNeteaseMusic and run UnblockNeteaseMusic-ensure-keys manually!" +fi diff --git a/UnblockNeteaseMusic.hook b/UnblockNeteaseMusic.hook new file mode 100644 index 000000000000..937b46019bbc --- /dev/null +++ b/UnblockNeteaseMusic.hook @@ -0,0 +1,9 @@ +[Trigger] +Type = File +Operation = Install +Target = usr/bin/UnblockNeteaseMusic + +[Action] +Description = Creating default configuration for UnblockNeteaseMusic... +When = PostTransaction +Exec = /usr/share/libalpm/scripts/UnblockNeteaseMusic-post-install diff --git a/UnblockNeteaseMusic.service b/UnblockNeteaseMusic.service new file mode 100644 index 000000000000..85459944db73 --- /dev/null +++ b/UnblockNeteaseMusic.service @@ -0,0 +1,30 @@ +[Unit] +Description=Revive unavailable songs for Netease Cloud Music (Golang) +Documentation=https://github.com/cnsilvan/UnblockNeteaseMusic +Wants=network-online.target +After=network-online.target + +[Service] +Type=simple +EnvironmentFile=/etc/UnblockNeteaseMusic.conf +WorkingDirectory=%S/UnblockNeteaseMusic +ExecStart=UnblockNeteaseMusic -l %L/UnblockNeteaseMusic.log $ARGS + +# Sandboxing +NoNewPrivileges=yes +ProtectSystem=strict +ProtectHome=yes +PrivateTmp=yes +PrivateDevices=yes +ProtectKernelTunables=yes +ProtectKernelModules=yes +ProtectControlGroups=yes +LockPersonality=yes +PrivateMounts=yes +TemporaryFileSystem=/etc +CapabilityBoundingSet=CAP_NET_BIND_SERVICE +BindPaths=/var/log/UnblockNeteaseMusic.log +BindPaths=/var/lib/UnblockNeteaseMusic +BindPaths=/etc/hosts +[Install] +WantedBy=multi-user.target
\ No newline at end of file diff --git a/UnblockNeteaseMusic.tmpfiles b/UnblockNeteaseMusic.tmpfiles new file mode 100644 index 000000000000..9a9cc1005eba --- /dev/null +++ b/UnblockNeteaseMusic.tmpfiles @@ -0,0 +1,2 @@ +d /var/lib/UnblockNeteaseMusic - root root - - +f /var/log/UnblockNeteaseMusic.log - root root - - |