From 2fd6d7b4f53c036df3afe8efb0b0d333d1b16b13 Mon Sep 17 00:00:00 2001 From: aunetx Date: Tue, 1 Feb 2022 00:05:16 +0100 Subject: [PATCH] Update to v5.30.160-1, better Makefile --- Makefile | 140 ++++++++++++++++++++-------------- dev.aunetx.deezer.appdata.xml | 1 + 2 files changed, 83 insertions(+), 58 deletions(-) diff --git a/Makefile b/Makefile index c76ea9a..908ee85 100644 --- a/Makefile +++ b/Makefile @@ -1,104 +1,128 @@ # Maintainer: Aurélien Hamy APPNAME = dev.aunetx.deezer -PKGVER = 5.30.150 +PKGVER = 5.30.160 BASE_URL = https://www.deezer.com/desktop/download/artifact/win32/x86/$(PKGVER) GPG_KEY_ID = 5A7D3B06F15FB60238941027EB3A799E7EE716EB +VERSION_REGEX = ^v$(PKGVER)-[0-9]{1,}$$ install_build_deps: - npm install --engine-strict asar - npm install prettier + @npm install --engine-strict asar + @npm install prettier -prepare: install_build_deps - mkdir -p source - # Download installer - wget -nv -c $(BASE_URL) -O source/deezer-setup-$(PKGVER).exe - # Extract app archive from installer - cd source && 7z x -so deezer-setup-$(PKGVER).exe '$$PLUGINSDIR/app-32.7z' > app-32.7z - # Extract app from app archive - cd source && 7z x -y -bsp0 -bso0 app-32.7z - # Extract app sources from the app - node_modules/asar/bin/asar.js extract source/resources/app.asar app +prepare: clean install_build_deps + @mkdir -p source - # Prettier the sources to patch successfully - node_modules/prettier/bin-prettier.js --write "app/build/*.js" + @echo "Download installer" + @wget -nv -c $(BASE_URL) -O source/deezer-setup-$(PKGVER).exe - # Apply patches from ./patches, default ones: - # Hide to tray when closing (https://github.com/SibrenVasse/deezer/issues/4) - # Start in tray cli option (https://github.com/SibrenVasse/deezer/pull/12) + @echo "Extract app archive from installer" + @cd source && 7z x -so deezer-setup-$(PKGVER).exe '$$PLUGINSDIR/app-32.7z' > app-32.7z + + @echo "Extract app from app archive" + @cd source && 7z x -y -bsp0 -bso0 app-32.7z + + @echo "Extract app sources from the app" + @node_modules/asar/bin/asar.js extract source/resources/app.asar app + + @echo "Prettier the sources to patch successfully" + @node_modules/prettier/bin-prettier.js --write "app/build/*.js" + + @echo "Apply patches from ./patches, default ones:" + @echo "Hide to tray when closing (https://github.com/SibrenVasse/deezer/issues/4)" + @echo "Start in tray cli option (https://github.com/SibrenVasse/deezer/pull/12)" + @echo "Remove kernel version from User-Agent (https://github.com/aunetx/deezer-linux/pull/9)" $(foreach p, $(wildcard ./patches/*), patch -p1 -dapp < $(p);) - # Append `package-append.json` to the `package.json` of the app - # Adds electron, elecron-builder dependencies, and build directives - head -n -1 app/package.json > tmp.txt && mv tmp.txt app/package.json - cat package-append.json | tee -a app/package.json + @echo "Append `package-append.json` to the `package.json` of the app" + @echo "Adds electron, elecron-builder dependencies, and build directives" + @head -n -1 app/package.json > tmp.txt && mv tmp.txt app/package.json + @cat package-append.json | tee -a app/package.json #! FLATPAK prepare_flatpak: prepare - # Generate yarn sources (without installing them) - yarn --cwd=app install --mode update-lockfile - # Package the sources to use them in flatpak-builder offline - mkdir -p flatpak - ./flatpak-node-generator.py yarn app/yarn.lock -o flatpak/generated-sources.json --electron-node-headers --xdg-layout + @echo "Generate yarn sources (without installing them)" + @yarn --cwd=app install --mode update-lockfile + + @echo "Package the sources to use them in flatpak-builder offline" + @mkdir -p flatpak + @./flatpak-node-generator.py yarn app/yarn.lock -o flatpak/generated-sources.json --electron-node-headers --xdg-layout build_flatpak: prepare_flatpak - # Build the flatpak image - flatpak-builder --force-clean --state-dir=flatpak/flatpak-builder flatpak/build $(APPNAME).yml + @echo "Build the flatpak image" + @flatpak-builder --force-clean --state-dir=flatpak/flatpak-builder flatpak/build $(APPNAME).yml export_flatpak: prepare_flatpak - # Build the flatpak package and export it to the repo - flatpak-builder --gpg-sign=$(GPG_KEY_ID) --repo=docs --state-dir=flatpak/flatpak-builder --force-clean flatpak/build $(APPNAME).yml - flatpak build-update-repo --generate-static-deltas --gpg-sign=$(GPG_KEY_ID) docs + @echo "Build the flatpak package and export it to the repo" + @flatpak-builder --gpg-sign=$(GPG_KEY_ID) --repo=docs --state-dir=flatpak/flatpak-builder --force-clean flatpak/build $(APPNAME).yml + @flatpak build-update-repo --generate-static-deltas --gpg-sign=$(GPG_KEY_ID) docs flatpak_bundle: build_flatpak - # Create a flatpak bundle - flatpak build-bundle --gpg-sign=$(GPG_KEY_ID) --state-dir=flatpak/flatpak-builder docs deezer.flatpak $(APPNAME) + @echo "Create a flatpak bundle" + @flatpak build-bundle --gpg-sign=$(GPG_KEY_ID) --state-dir=flatpak/flatpak-builder docs deezer.flatpak $(APPNAME) install_flatpak: prepare_flatpak - # Build and install locally the flatpak image - flatpak-builder --force-clean --state-dir=flatpak/flatpak-builder --user --install flatpak/build $(APPNAME).yml + @echo "Build and install locally the flatpak image" + @flatpak-builder --force-clean --state-dir=flatpak/flatpak-builder --user --install flatpak/build $(APPNAME).yml run_flatpak: - flatpak run $(APPNAME) + @flatpak run $(APPNAME) #! PACKAGES install_deps: prepare - # Install yarn dependencies to pack them later - yarn --cwd=app install - -build_pkgs: install_deps - # Build everything - yarn --cwd=app run build-rpm - yarn --cwd=app run build-deb - yarn --cwd=app run build-snap - yarn --cwd=app run build-appimage - yarn --cwd=app run build-7z + @echo "Install yarn dependencies to pack them later" + @yarn --cwd=app install build_deb: - # Build deb package - yarn --cwd=app run build-deb + @echo "Build deb package" + @yarn --cwd=app run build-deb build_rpm: - # Build rpm package - yarn --cwd=app run build-rpm + @echo "Build rpm package" + @yarn --cwd=app run build-rpm build_snap: - # Build deb package - yarn --cwd=app run build-snap + @echo "Build snap package" + @yarn --cwd=app run build-snap build_appimage: - # Build the AppImage package - yarn --cwd=app run build-appimage + @echo "Build AppImage binary" + @yarn --cwd=app run build-appimage build_7z: - # Build 7z archive - yarn --cwd=app run build-7z + @echo "Build 7z archive" + @yarn --cwd=app run build-7z + +build_pkgs: install_deps build_deb build_rpm build_snap build_appimage build_7z + + +#! UTILS + +prepare-release: + @echo $(DEEZER_RELEASE) | egrep "$(VERSION_REGEX)" > /dev/null || \ + (echo "$(DEEZER_RELEASE) is not a correct release version of v$(PKGVER)" && false) + + @cat $(APPNAME).appdata.xml | egrep "$(PKGVER)" > /dev/null || \ + (echo "$(APPNAME).appdata.xml should contain version $(DEEZER_RELEASE)" && false) + + @desktop-file-validate $(APPNAME).desktop || \ + (echo "Desktop file validation failed" && false) + + @appstream-util validate-relax $(APPNAME).appdata.xml > /dev/null || \ + (echo "Appstream file validation failed" && false) + + +release: prepare-release + @echo "Updating to $(DEEZER_RELEASE)..." + git tag -s $(DEEZER_RELEASE) -m "" + git push origin $(DEEZER_RELEASE) + git push clean: - rm -rf app flatpak node_modules source artifacts package-lock.json package.json + @rm -rf app flatpak node_modules source artifacts package-lock.json package.json diff --git a/dev.aunetx.deezer.appdata.xml b/dev.aunetx.deezer.appdata.xml index f8a8f41..07c5ab9 100644 --- a/dev.aunetx.deezer.appdata.xml +++ b/dev.aunetx.deezer.appdata.xml @@ -20,6 +20,7 @@ HiDpiIcon +