summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO26
-rw-r--r--.gitignore5
-rw-r--r--PKGBUILD49
-rw-r--r--UnblockNeteaseMusic-ensure-keys28
-rw-r--r--UnblockNeteaseMusic-post-install19
-rw-r--r--UnblockNeteaseMusic.hook9
-rw-r--r--UnblockNeteaseMusic.service30
-rw-r--r--UnblockNeteaseMusic.tmpfiles2
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 - -