From 2bf8dedf9d56080a9257a50982ee1e2b97a1a7c7 Mon Sep 17 00:00:00 2001 From: Bumsik Kim Date: Tue, 26 Jun 2018 13:12:34 -0400 Subject: [PATCH] Debian: upgraded to AppImage based package --- Makefile | 18 +++++++------- launch_env.sh | 13 ---------- package/appimage/AppRun | 1 - package/debian/.gitignore | 3 +++ package/debian/Makefile | 16 ++---------- package/debian/_common.sh | 7 ------ package/debian/build.sh | 46 +++++++++++++++++++++++++++++++++++ package/debian/copy_debian.sh | 6 ----- package/debian/debmake.sh | 15 ------------ package/debian/debuild.sh | 7 ------ 10 files changed, 60 insertions(+), 72 deletions(-) delete mode 100755 launch_env.sh create mode 100644 package/debian/.gitignore delete mode 100644 package/debian/_common.sh create mode 100755 package/debian/build.sh delete mode 100755 package/debian/copy_debian.sh delete mode 100755 package/debian/debmake.sh delete mode 100755 package/debian/debuild.sh diff --git a/Makefile b/Makefile index 628b9a6..7e6a975 100644 --- a/Makefile +++ b/Makefile @@ -30,6 +30,7 @@ wheel-clean: # For AppImage packaging, https://github.com/AppImage/AppImageKit/wiki/Creating-AppImages .PHONY: appimage-clean +.SECONDARY: package/appimage/VirtScreen-x86_64.AppImage package/appimage/%.AppImage: $(DOCKER_RUN) package/appimage/build.sh @@ -38,21 +39,20 @@ package/appimage/%.AppImage: appimage-clean: -rm -rf package/appimage/virtscreen.AppDir package/appimage/VirtScreen-x86_64.AppImage -# For Debian packaging, https://www.debian.org/doc/manuals/debmake-doc/ch08.en.html#setup-py +# For Debian packaging, https://www.debian.org/doc/manuals/maint-guide/index.en.html +# https://www.debian.org/doc/manuals/debmake-doc/ch08.en.html#setup-py .PHONY: deb-contents deb-clean -package/debian/%.deb: - $(DOCKER_RUN) package/debian/debmake.sh - $(DOCKER_RUN) package/debian/copy_debian.sh - $(DOCKER_RUN) package/debian/debuild.sh - $(DOCKER_RUN) chown -R $(shell id -u):$(shell id -u) package/debian/build - cp package/debian/build/virtscreen*.deb package/debian +package/debian/%.deb: package/appimage/VirtScreen-x86_64.AppImage + $(DOCKER_RUN) package/debian/build.sh + $(DOCKER_RUN) chown -R $(shell id -u):$(shell id -u) package/debian deb-contents: $(DOCKER_RUN) dpkg -c package/debian/*.deb deb-clean: - rm -rf package/debian/build package/debian/*.deb + rm -rf package/debian/build package/debian/*.deb package/debian/*.buildinfo \ + package/debian/*.changes # For AUR: https://wiki.archlinux.org/index.php/Python_package_guidelines # and: https://wiki.archlinux.org/index.php/Creating_packages @@ -95,7 +95,7 @@ override-version: package/archlinux/PKGBUILD # Debian perl -pi -e "s/PKGVER=\d+\.\d+\.\d+/PKGVER=$(VERSION)/" \ - package/debian/_common.sh + package/debian/build.sh # Clean packages clean: appimage-clean arch-clean deb-clean wheel-clean diff --git a/launch_env.sh b/launch_env.sh deleted file mode 100755 index 12c9cc3..0000000 --- a/launch_env.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# This script is only for isolated miniconda environment -# Used in Debian & AppImage package -ENV=/usr/share/virtscreen/env - -export PYTHONPATH=$ENV/lib/python3.6 -export LD_LIBRARY_PATH=$ENV/lib -export QT_PLUGIN_PATH=$ENV/lib/python3.6/site-packages/PyQt5/Qt/plugins -export QML2_IMPORT_PATH=$ENV/lib/python3.6/site-packages/PyQt5/Qt/qml -# export QT_QPA_FONTDIR=/usr/share/fonts -# export QT_XKB_CONFIG_ROOT=/usr/share/X11/xkb - -$ENV/bin/python3 $ENV/bin/virtscreen diff --git a/package/appimage/AppRun b/package/appimage/AppRun index 2512c2b..7ef9a30 100755 --- a/package/appimage/AppRun +++ b/package/appimage/AppRun @@ -4,7 +4,6 @@ SCRIPTDIR=$(dirname $0) ENV=$SCRIPTDIR/usr/share/virtscreen/env -echo $SCRIPTDIR export PYTHONPATH=$ENV/lib/python3.6 export LD_LIBRARY_PATH=$ENV/lib export QT_PLUGIN_PATH=$ENV/lib/python3.6/site-packages/PyQt5/Qt/plugins diff --git a/package/debian/.gitignore b/package/debian/.gitignore new file mode 100644 index 0000000..b006ca0 --- /dev/null +++ b/package/debian/.gitignore @@ -0,0 +1,3 @@ +*.deb +*.buildinfo +*.changes diff --git a/package/debian/Makefile b/package/debian/Makefile index 02e1778..22b3f8b 100644 --- a/package/debian/Makefile +++ b/package/debian/Makefile @@ -5,21 +5,9 @@ all: SHELL = /bin/bash install: - # Create virtualenv - install -d $(DESTDIR)$(prefix)/share/virtscreen - source $(HOME)/miniconda/bin/activate && \ - conda create -y --copy --prefix $(DESTDIR)$(prefix)/share/virtscreen/env python=3.6 - # Install VirtScreen using pip - source $(HOME)/miniconda/bin/activate && \ - source activate $(DESTDIR)$(prefix)/share/virtscreen/env && \ - pip install . - # Fix hashbang and move executable - sed -i "1s:.*:#!$(prefix)/share/virtscreen/env/bin/python3:" \ - $(DESTDIR)$(prefix)/share/virtscreen/env/bin/virtscreen - install -D launch_env.sh \ + mkdir -p $(DESTDIR)$(prefix)/bin + install -m 755 VirtScreen-x86_64.AppImage \ $(DESTDIR)$(prefix)/bin/virtscreen - # Delete unnecessary installed files done by setup.py - rm -rf $(DESTDIR)$(prefix)/share/virtscreen/env/lib/python3.6/site-packages/usr # Copy desktop entry and icon install -m 644 -D virtscreen.desktop \ $(DESTDIR)$(prefix)/share/applications/virtscreen.desktop diff --git a/package/debian/_common.sh b/package/debian/_common.sh deleted file mode 100644 index 566bc68..0000000 --- a/package/debian/_common.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -PKGVER=0.2.4 -# Required for debmake -DEBEMAIL="k.bumsik@gmail.com" -DEBFULLNAME="Bumsik Kim" -export PKGVER DEBEMAIL DEBFULLNAME \ No newline at end of file diff --git a/package/debian/build.sh b/package/debian/build.sh new file mode 100755 index 0000000..7d8de0e --- /dev/null +++ b/package/debian/build.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +PKGVER=0.2.4 +# Required for debmake +DEBEMAIL="k.bumsik@gmail.com" +DEBFULLNAME="Bumsik Kim" +export PKGVER DEBEMAIL DEBFULLNAME + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +ROOT=$SCRIPT_DIR/../.. + +# Generate necessary files for package building (generated by debmake) +cd $ROOT/package/debian +wget -q https://github.com/kbumsik/VirtScreen/archive/$PKGVER.tar.gz +tar -xzmf $PKGVER.tar.gz +mv VirtScreen-$PKGVER virtscreen-$PKGVER +mv $PKGVER.tar.gz virtscreen-$PKGVER.tar.gz +cp $ROOT/package/debian/Makefile \ + $ROOT/package/debian/virtscreen-$PKGVER/Makefile +cd $ROOT/package/debian/virtscreen-$PKGVER +debmake -b':sh' + +# copy files to build +# debmake files +mkdir -p $ROOT/package/debian/build +cp -R $ROOT/package/debian/virtscreen-$PKGVER/debian \ + $ROOT/package/debian/build/debian +cp $ROOT/package/debian/Makefile \ + $ROOT/package/debian/build/ +cp $ROOT/package/debian/{control,README.Debian} \ + $ROOT/package/debian/build/debian/ +# binary and data files +cp $ROOT/package/appimage/VirtScreen-x86_64.AppImage \ + $ROOT/package/debian/build/ +cp $ROOT/virtscreen.desktop \ + $ROOT/package/debian/build/ +cp -R $ROOT/data \ + $ROOT/package/debian/build/ + +# Build .deb package +cd $ROOT/package/debian/build +dpkg-buildpackage -b + +# cleanup +rm -rf $ROOT/package/debian/virtscreen-$PKGVER \ + $ROOT/package/debian/*.tar.gz diff --git a/package/debian/copy_debian.sh b/package/debian/copy_debian.sh deleted file mode 100755 index 75d8c93..0000000 --- a/package/debian/copy_debian.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -source $DIR/_common.sh - -cp -f $DIR/control $DIR/build/virtscreen-$PKGVER/debian/ -cp -f $DIR/README.Debian $DIR/build/virtscreen-$PKGVER/debian/ diff --git a/package/debian/debmake.sh b/package/debian/debmake.sh deleted file mode 100755 index e4472ea..0000000 --- a/package/debian/debmake.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -source $DIR/_common.sh - -mkdir -p package/debian/build -cd package/debian/build -# Download, rename, and copy files -wget -q https://github.com/kbumsik/VirtScreen/archive/$PKGVER.tar.gz -tar -xzmf $PKGVER.tar.gz -mv VirtScreen-$PKGVER virtscreen-$PKGVER -mv $PKGVER.tar.gz virtscreen-$PKGVER.tar.gz -cd virtscreen-$PKGVER -cp -f ../../Makefile Makefile -# call debmake -debmake -b':sh' diff --git a/package/debian/debuild.sh b/package/debian/debuild.sh deleted file mode 100755 index 68afab2..0000000 --- a/package/debian/debuild.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -source $DIR/_common.sh - -cd package/debian/build -cd virtscreen-$PKGVER -dpkg-buildpackage -b