diff --git a/.travis.yml b/.travis.yml index 3663e7b93be7eeea3f22e3b6c5afbe83bc63fd95..85675aaf75266f4652c0830df86e27a4ffe97f73 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,20 +2,25 @@ language: cpp sudo: required dist: trusty -os: linux - before_install: - - sudo add-apt-repository --yes ppa:beineri/opt-qt57-trusty + - sudo add-apt-repository -y ppa:beineri/opt-qt57-trusty - sudo apt-get update -qq - - curl https://transfer.sh/DHN4B/linuxdeployqt-799f704-x86-64.appimage -o linuxdeployqt.appimage install: - - sudo apt-get -y install binutils qt57base qt57quickcontrols qt57quickcontrols2 qt57svg desktop-file-utils - - sudo install -m 755 -p linuxdeployqt.appimage /usr/local/bin/linuxdeployqt.appimage - - rm linuxdeployqt.appimage + - sudo apt-get -y install build-essential fuse zsync desktop-file-utils + - sudo apt-get -y install qt57base qt57svg qt57quickcontrols qt57quickcontrols2 + # Replace linuxdeployqt download URL to official download URL when the stable version released + - curl -L -o linuxdeployqt https://dl.dropboxusercontent.com/u/150776/temp/linuxdeployqt-799f704-x86-64.appimage + - sudo install -m 755 -p linuxdeployqt /usr/local/bin/linuxdeployqt + - rm linuxdeployqt -script: +before_script: + - sudo modprobe fuse - source /opt/qt57/bin/qt57-env.sh - - sh pkg/build.sh appimage - - AI=$(ls pkg/build/xdgurl-release-*.AppImage) - - curl --upload-file "$AI" "https://transfer.sh/$AI" + +script: + - sh ./pkg/build.sh appimage + +after_script: + - appimage_file="$(ls ./pkg/build/*.AppImage)" + - [ -f "${appimage_file}" ] && curl -T "${appimage_file}" "https://transfer.sh/${appimage_file}" diff --git a/pkg/arch/PKGBUILD b/pkg/arch/PKGBUILD index f84a7ef01d22ce33a114d52fdc807e07b51c42a6..8c6b5ce7f7d6ef393f8bf62e278db7a453649c68 100644 --- a/pkg/arch/PKGBUILD +++ b/pkg/arch/PKGBUILD @@ -1,26 +1,26 @@ # Maintainer: Akira Ohgaki <akiraohgaki@gmail.com> -pkgname=xdgurl -pkgver=2.0.0 -pkgrel=1 -pkgdesc="An install helper program for desktop stuff." +pkgname='xdgurl' +pkgver='2.0.0' +pkgrel='1' +pkgdesc='An install helper program for desktop stuff.' arch=('i686' 'x86_64') -url="https://github.com/xdgurl/xdgurl" +url='https://github.com/xdgurl/xdgurl' license=('GPL3') depends=('qt5-base>=5.3.0' 'qt5-svg>=5.3.0' 'qt5-declarative>=5.3.0' 'qt5-quickcontrols>=5.3.0') -#source=("https://github.com/xdgurl/xdgurl/archive/release-$pkgver.tar.gz") -source=("$pkgname.tar.gz") +#source=("https://github.com/xdgurl/xdgurl/archive/release-${pkgver}.tar.gz") +source=("${pkgname}.tar.gz") md5sums=() #autofill using updpkgsums build() { - #cd "$pkgname-release-$pkgver" - cd $pkgname - qmake PREFIX="/usr" + #cd "${pkgname}-release-${pkgver}" + cd "${pkgname}" + qmake PREFIX='/usr' make } package() { - #cd "$pkgname-release-$pkgver" - cd $pkgname - make INSTALL_ROOT="$pkgdir" install + #cd "${pkgname}-release-${pkgver}" + cd "${pkgname}" + make INSTALL_ROOT="${pkgdir}" install } diff --git a/pkg/build.sh b/pkg/build.sh index 26bf5d0ade649fdea2f309f1934394c3b7acd7d3..f9b866ec3990a64fb4dee6ce7fbd807912face67 100644 --- a/pkg/build.sh +++ b/pkg/build.sh @@ -1,56 +1,67 @@ -#!/bin/sh +#!/bin/bash -TMPDIR=/tmp -PKGDIR=`cd $(dirname $0) && pwd` -BUILDDIR=$PKGDIR/build -PROJDIR=`dirname $PKGDIR` -PROJNAME=`basename $PROJDIR` -PARENTDIR=`dirname $PROJDIR` +PKGNAME='xdgurl' + +PROJDIR="$(cd "$(dirname "${0}")/../" && pwd)" + +BUILDDIR="${PROJDIR}/pkg/build" + +BUILDTYPE='' +if [ "${1}" ]; then + BUILDTYPE="${1}" +fi + +TREEISH='HEAD' +if [ "${2}" ]; then + TREEISH="${2}" +fi + +export_source() { + destdir="${BUILDDIR}" + if [ "${1}" ]; then + destdir="${1}" + fi + $(cd "${PROJDIR}" && git archive --prefix="${PKGNAME}/" --output="${destdir}/${PKGNAME}.tar.gz" "${TREEISH}") +} build_ubuntu() { #sudo apt install build-essential qt5-default libqt5svg5-dev qtdeclarative5-dev devscripts debhelper fakeroot - cd $PARENTDIR - tar -czvf $TMPDIR/$PROJNAME.tar.gz --exclude ".git" $PROJNAME + cd "${PROJDIR}" - mkdir $BUILDDIR + mkdir -p "${BUILDDIR}" + export_source "${BUILDDIR}" + tar -xzvf "${BUILDDIR}/${PKGNAME}.tar.gz" -C "${BUILDDIR}" + cp -r "${PROJDIR}/pkg/ubuntu/debian" "${BUILDDIR}/${PKGNAME}" - mv $TMPDIR/$PROJNAME.tar.gz $BUILDDIR - tar -xzvf $BUILDDIR/$PROJNAME.tar.gz -C $BUILDDIR - cp -r $PKGDIR/ubuntu/debian $BUILDDIR/$PROJNAME - - cd $BUILDDIR/$PROJNAME + cd "${BUILDDIR}/${PKGNAME}" debuild -uc -us -b } build_fedora() { #sudo dnf install make automake gcc gcc-c++ libtool qt5-qtbase-devel qt5-qtsvg-devel qt5-qtdeclarative-devel rpm-build - cd $PARENTDIR - tar -czvf $TMPDIR/$PROJNAME.tar.gz --exclude ".git" $PROJNAME - - mkdir $BUILDDIR - mkdir $BUILDDIR/SOURCES - mkdir $BUILDDIR/SPECS + cd "${PROJDIR}" - mv $TMPDIR/$PROJNAME.tar.gz $BUILDDIR/SOURCES - cp $PKGDIR/fedora/xdgurl.spec $BUILDDIR/SPECS + mkdir -p "${BUILDDIR}" + mkdir "${BUILDDIR}/SOURCES" + mkdir "${BUILDDIR}/SPECS" + export_source "${BUILDDIR}/SOURCES" + cp "${PROJDIR}/pkg/fedora/xdgurl.spec" "${BUILDDIR}/SPECS" - rpmbuild --define "_topdir $BUILDDIR" -bb $BUILDDIR/SPECS/xdgurl.spec + rpmbuild --define "_topdir ${BUILDDIR}" -bb "${BUILDDIR}/SPECS/xdgurl.spec" } build_arch() { #sudo pacman -S base-devel qt5-base qt5-svg qt5-declarative qt5-quickcontrols - cd $PARENTDIR - tar -czvf $TMPDIR/$PROJNAME.tar.gz --exclude ".git" $PROJNAME + cd "${PROJDIR}" - mkdir $BUILDDIR + mkdir -p "${BUILDDIR}" + export_source "${BUILDDIR}" + cp "${PROJDIR}/pkg/arch/PKGBUILD" "${BUILDDIR}" - mv $TMPDIR/$PROJNAME.tar.gz $BUILDDIR - cp $PKGDIR/arch/PKGBUILD $BUILDDIR - - cd $BUILDDIR + cd "${BUILDDIR}" updpkgsums makepkg -s } @@ -58,57 +69,52 @@ build_arch() { build_appimage() { #sudo add-apt-repository ppa:beineri/opt-qt57-xenial #sudo apt update - #sudo apt install build-essential fuse desktop-file-utils + + #sudo apt install build-essential fuse zsync desktop-file-utils #sudo apt install qt57base qt57svg qt57quickcontrols qt57quickcontrols2 - #curl https://transfer.sh/DHN4B/linuxdeployqt-799f704-x86-64.appimage -o linuxdeployqt.appimage - #sudo install -m 755 -p linuxdeployqt.appimage /usr/local/bin/linuxdeployqt.appimage + # Replace linuxdeployqt download URL to official download URL when the stable version released + #curl -L -o linuxdeployqt https://dl.dropboxusercontent.com/u/150776/temp/linuxdeployqt-799f704-x86-64.appimage + #sudo install -m 755 -p linuxdeployqt /usr/local/bin/linuxdeployqt + #sudo modprobe fuse #source /opt/qt57/bin/qt57-env.sh - cd $PROJDIR - export VERSION=$(git describe --always) - - cd $PARENTDIR - tar -czvf $TMPDIR/$PROJNAME.tar.gz --exclude ".git" $PROJNAME - - mkdir $BUILDDIR + cd "${PROJDIR}" - mv $TMPDIR/$PROJNAME.tar.gz $BUILDDIR - tar -xzvf $BUILDDIR/$PROJNAME.tar.gz -C $BUILDDIR + export VERSION="$(git describe --always)" + mkdir -p "${BUILDDIR}" + export_source "${BUILDDIR}" + tar -xzvf "${BUILDDIR}/${PKGNAME}.tar.gz" -C "${BUILDDIR}" - cd $BUILDDIR/$PROJNAME + cd "${BUILDDIR}/${PKGNAME}" /opt/qt57/bin/qmake make - strip xdgurl - - cd $BUILDDIR - - mkdir -p $BUILDDIR/xdgurl.AppDir/usr/bin - install -m 755 -p $BUILDDIR/$PROJNAME/xdgurl $BUILDDIR/xdgurl.AppDir/xdgurl - install -m 644 -p $BUILDDIR/$PROJNAME/src/desktop/xdgurl.desktop $BUILDDIR/xdgurl.AppDir/xdgurl.desktop - install -m 644 -p $BUILDDIR/$PROJNAME/src/desktop/xdgurl.svg $BUILDDIR/xdgurl.AppDir/xdgurl.svg - install -m 755 -p /usr/bin/update-desktop-database $BUILDDIR/xdgurl.AppDir/usr/bin/update-desktop-database - install -m 755 -p /usr/bin/desktop-file-validate $BUILDDIR/xdgurl.AppDir/usr/bin/desktop-file-validate - install -m 755 -p /usr/bin/desktop-file-install $BUILDDIR/xdgurl.AppDir/usr/bin/desktop-file-install - - linuxdeployqt.appimage $BUILDDIR/xdgurl.AppDir/xdgurl -qmldir=$BUILDDIR/$PROJNAME/src/app/qml -verbose=2 -bundle-non-qt-libs # https://github.com/probonopd/linuxdeployqt/issues/25 - linuxdeployqt.appimage $BUILDDIR/xdgurl.AppDir/xdgurl -qmldir=$BUILDDIR/$PROJNAME/src/app/qml -verbose=2 -bundle-non-qt-libs # twice because of #25 - - rm $BUILDDIR/xdgurl.AppDir/AppRun - install -m 755 -p $BUILDDIR/$PROJNAME/src/desktop/appimage-desktopintegration $BUILDDIR/xdgurl.AppDir/AppRun - - linuxdeployqt.appimage --appimage-extract - ./squashfs-root/usr/bin/appimagetool $BUILDDIR/xdgurl.AppDir + strip ./xdgurl + + cd "${BUILDDIR}" + mkdir -p "${BUILDDIR}/${PKGNAME}.AppDir/usr/bin" + install -m 755 -p "${BUILDDIR}/${PKGNAME}/xdgurl" "${BUILDDIR}/${PKGNAME}.AppDir/xdgurl" + install -m 644 -p "${BUILDDIR}/${PKGNAME}/src/desktop/xdgurl.desktop" "${BUILDDIR}/${PKGNAME}.AppDir/xdgurl.desktop" + install -m 644 -p "${BUILDDIR}/${PKGNAME}/src/desktop/xdgurl.svg" "${BUILDDIR}/${PKGNAME}.AppDir/xdgurl.svg" + install -m 755 -p /usr/bin/update-desktop-database "${BUILDDIR}/${PKGNAME}.AppDir/usr/bin/update-desktop-database" + install -m 755 -p /usr/bin/desktop-file-validate "${BUILDDIR}/${PKGNAME}.AppDir/usr/bin/desktop-file-validate" + install -m 755 -p /usr/bin/desktop-file-install "${BUILDDIR}/${PKGNAME}.AppDir/usr/bin/desktop-file-install" + linuxdeployqt "${BUILDDIR}/${PKGNAME}.AppDir/xdgurl" -qmldir="${BUILDDIR}/${PKGNAME}/src/app/qml" -verbose=2 -bundle-non-qt-libs # https://github.com/probonopd/linuxdeployqt/issues/25 + linuxdeployqt "${BUILDDIR}/${PKGNAME}.AppDir/xdgurl" -qmldir="${BUILDDIR}/${PKGNAME}/src/app/qml" -verbose=2 -bundle-non-qt-libs # twice because of #25 + rm "${BUILDDIR}/${PKGNAME}.AppDir/AppRun" + install -m 755 -p "${BUILDDIR}/${PKGNAME}/src/desktop/appimage-desktopintegration" "${BUILDDIR}/${PKGNAME}.AppDir/AppRun" + linuxdeployqt --appimage-extract + ./squashfs-root/usr/bin/appimagetool "${BUILDDIR}/${PKGNAME}.AppDir" } -if [ $1 ] && [ $1 = 'ubuntu' ]; then +if [ "${BUILDTYPE}" = 'ubuntu' ]; then build_ubuntu -elif [ $1 ] && [ $1 = 'fedora' ]; then +elif [ "${BUILDTYPE}" = 'fedora' ]; then build_fedora -elif [ $1 ] && [ $1 = 'arch' ]; then +elif [ "${BUILDTYPE}" = 'arch' ]; then build_arch -elif [ $1 ] && [ $1 = 'appimage' ]; then +elif [ "${BUILDTYPE}" = 'appimage' ]; then build_appimage else - echo 'sh build.sh [ubuntu|fedora|arch|appimage]' + echo "sh $(basename "${0}") [ubuntu|fedora|arch|appimage] [tree_ish]" fi diff --git a/pkg/fedora/xdgurl.spec b/pkg/fedora/xdgurl.spec index d161a343a5c0a7734285ef708afb7787ac3f3717..3d5de8cefa19da063aea82ee3fc21caf6df49c4c 100644 --- a/pkg/fedora/xdgurl.spec +++ b/pkg/fedora/xdgurl.spec @@ -21,7 +21,7 @@ An install helper program for desktop stuff. %build %define debug_package %{nil} -qmake-qt5 PREFIX="/usr" +qmake-qt5 PREFIX='/usr' make %install diff --git a/pkg/ubuntu/debian/rules b/pkg/ubuntu/debian/rules index 3fc604ca255505614239a3ba2f7f82d0071c3592..05dde7094a4e5c38332cccc8ca8c2f7b65eb1cd1 100755 --- a/pkg/ubuntu/debian/rules +++ b/pkg/ubuntu/debian/rules @@ -4,7 +4,7 @@ dh $@ override_dh_auto_configure: - qmake PREFIX="/usr" + qmake PREFIX='/usr' override_dh_auto_install: make INSTALL_ROOT="$(CURDIR)/debian/tmp" install diff --git a/xdgurl.pro b/xdgurl.pro index ed63a8fa24b3b45116d02a0aed7297f0eda78165..6b12f47338694aab2c10540747296cd0bf2860a1 100644 --- a/xdgurl.pro +++ b/xdgurl.pro @@ -5,7 +5,6 @@ TEMPLATE = app QT += \ core \ gui \ - widgets \ qml \ quick \ svg \ @@ -37,6 +36,8 @@ RESOURCES += \ DISTFILES += \ README.md \ + src/desktop/xdgurl.desktop \ + src/desktop/appimage-desktopintegration \ pkg/build.sh \ pkg/ubuntu/debian/changelog \ pkg/ubuntu/debian/compat \