From 5f7c4b9c793e2d2b7971947b46613d1efe06202b Mon Sep 17 00:00:00 2001
From: Alf Gaida <agaida@siduction.org>
Date: Wed, 25 Oct 2017 01:42:30 +0200
Subject: [PATCH] Prepare Migration experimental --> sid

---
 debian/bin/evil                               | 29 +++++++
 debian/bin/git-snapshot                       | 81 +++++++++++++++++++
 debian/bin/git-versions                       | 70 ++++++++++++++++
 debian/bin/mangle                             | 30 ++++++-
 debian/bin/symmangle                          | 32 +++++++-
 debian/changelog                              | 29 +++++++
 debian/control                                | 10 ++-
 debian/copyright                              |  2 +-
 debian/install                                |  1 +
 debian/lintian-overrides                      |  7 ++
 .../git-versions.list.example                 | 61 ++++++++++++++
 .../lxqt-build-tools/repository.spec.example  | 29 +++++++
 12 files changed, 375 insertions(+), 6 deletions(-)
 create mode 100755 debian/bin/git-snapshot
 create mode 100755 debian/bin/git-versions
 create mode 100644 debian/lintian-overrides
 create mode 100644 debian/usr/share/lxqt-build-tools/git-versions.list.example
 create mode 100644 debian/usr/share/lxqt-build-tools/repository.spec.example

diff --git a/debian/bin/evil b/debian/bin/evil
index 2855257..7c31702 100755
--- a/debian/bin/evil
+++ b/debian/bin/evil
@@ -1,3 +1,32 @@
 #!/bin/bash
+#=============================================================================
+# Copyright 2015-2017 Alf Gaida <agaida@siduction.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#=============================================================================
+
+# Usage: evil
+
 
 lintian -EvIL +pedantic --show-overrides --no-tag-display-limit *changes
diff --git a/debian/bin/git-snapshot b/debian/bin/git-snapshot
new file mode 100755
index 0000000..fd80508
--- /dev/null
+++ b/debian/bin/git-snapshot
@@ -0,0 +1,81 @@
+#!/bin/bash
+
+# Copyright 2015-2017 Alf Gaida <agaida@siduction.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#=============================================================================
+
+# Usage: get-snapshot (in package dir)
+# One will need a debian/repository.spec file in place
+
+unset commit
+unset branch
+target_dir="snapshot"
+
+[ ! -d debian ] && echo "No debian dir found!" && exit 1
+
+if [ -f "debian/repository.spec" ]; then
+    source debian/repository.spec
+else
+    echo "File debian/repository.spec not found!"
+    echo "Copied example spec to debian/"
+    cp /usr/share/lxqt-build-tools/repository.spec.example debian/repository.spec
+    exit 2;
+fi
+
+ls | grep -v "debian" | xargs rm -rf
+rm -rf .pc
+
+echo ""
+echo "┌───────────────────┐"
+echo "│ Upstream Settings │"
+echo "└───────────────────┘"
+[ ! -z "${repository}" ] && echo "repository: ${repository}"
+[ ! -z "${branch}" ] && echo "branch: ${branch}"
+[ ! -z "${commit}" ] && echo "commit: ${commit}"
+[ ! -z "${target_dir}" ] && echo "target_dir: ${target_dir}"
+echo ""
+
+declare -f "cleanup"
+declared=$?
+echo ""
+
+snapdir=$(mktemp -d)
+
+pushd "$snapdir" &>/dev/null
+    echo "git clone ${branch} ${repository} ${target_dir}"
+    git clone ${branch} ${repository} ${target_dir}
+    pushd snapshot &>/dev/null
+        [  ! -z "${commit}" ] &&  git reset --hard "${commit}"
+        description=$(git describe --tags)
+        # cleanup must be defined in repository
+        [ "$declared" ] && cleanup
+    popd &>/dev/null
+    tar cfJ snapshot.orig.tar.xz snapshot
+popd &>/dev/null
+tar xf "$snapdir/snapshot.orig.tar.xz" --strip-components 1
+echo ""
+echo "New snapshot: $description"
+dch "New snapshot: $description"
+rm -rf "$snapdir"
diff --git a/debian/bin/git-versions b/debian/bin/git-versions
new file mode 100755
index 0000000..98f3779
--- /dev/null
+++ b/debian/bin/git-versions
@@ -0,0 +1,70 @@
+#!/bin/bash
+#=============================================================================
+# Copyright 2015-2017 Alf Gaida <agaida@siduction.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#=============================================================================
+
+# Usage: git versions
+# one should have a valid versions list in the source dir
+
+[ ! -d "auto" ] && mkdir auto
+echo "Current Repository Versions"
+echo "==========================="
+
+if [ ! -f ./.git-versions.list ]; then
+    echo "Please create a valid ./.git-verisions.list"
+    echo "One can find the LXQt template  in /usr/share/lxqt-build-tools"
+else
+    source ./.git-versions.list
+fi
+
+for i in $repositories; do
+    if [[ "$i" =~ "==" ]]; then
+        echo ""
+        echo "$i"
+    else
+        pushd $i >/dev/null
+        if [ ! -d upstream ]; then
+            echo "$i: please clone  upstream"
+        else
+            pushd upstream &>/dev/null
+            # cleanup possible debris and make sure we are on master
+            git reset --hard &>/dev/null
+            # git clean -ffdx &>/dev/null
+            git remote prune origin &>/dev/null
+            git checkout master &>/dev/null
+            ## end cleanup
+            oldversion=$(git describe --tags --dirty 2>/dev/null)
+            [[ -z "$oldversion" ]] && oldversion=$(git describe --tags --dirty)
+            git pull --all --tags >/dev/null 2>/dev/null
+            version=$(git describe --tags --dirty 2>/dev/null)
+            [[ -z "$version" ]] && version=$(git describe --tags --dirty)
+            unset new && [ "$oldversion" != "$version" ] && new="NEW!!"
+            echo "$i: $version $new"
+            popd &>/dev/null
+        fi
+        popd &>/dev/null
+    fi
+done
diff --git a/debian/bin/mangle b/debian/bin/mangle
index 5f391a4..5ddc1d5 100755
--- a/debian/bin/mangle
+++ b/debian/bin/mangle
@@ -1,5 +1,31 @@
 #!/bin/bash
+#=============================================================================
+# Copyright 2015-2017 Alf Gaida <agaida@siduction.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#=============================================================================
+
+# Usage: mangle $symbolstring
 
 echo "A: $@" | sed 's/ \(_.*\) \(.*\)/ (c++)"\1" \2/' | c++filt
-
-
diff --git a/debian/bin/symmangle b/debian/bin/symmangle
index 18ead53..95b1240 100755
--- a/debian/bin/symmangle
+++ b/debian/bin/symmangle
@@ -1,8 +1,38 @@
 #!/bin/bash
+#=============================================================================
+# Copyright 2015-2017 Alf Gaida <agaida@siduction.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#=============================================================================
+
+# Usage: symmangle
+# One should use this in the package dir after locale builds in case of
+# symbol diffs during the build
 
 if [ -d ./debian ]; then
     for i in `find . -name symbols`; do
         k=`echo $i | sed "s#/DEBIAN/symbols##" | sed "s#./debian/##"`
-        cat "$i" | sed 's/ \(_.*\) \(.*\)/ (c++)"\1" \2/' | c++filt | sort | uniq | tee "debian/$k.mangled";
+        cat "$i" | sed 's/ \(_.*\) \(.*\)/ (c++)"\1" \2/' | c++filt | LC_ALL=C sort -u | tee "debian/$k.mangled";
     done
 fi
diff --git a/debian/changelog b/debian/changelog
index c607491..b9dbb38 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,32 @@
+lxqt-build-tools (0.4.0-3) experimental; urgency=medium
+
+  * Demote git and lintian to recommends - if not installed some dev-scripts
+    will not  work, a dev should know how to handle the situation.
+
+ -- Alf Gaida <agaida@siduction.org>  Wed, 25 Oct 2017 01:42:18 +0200
+
+lxqt-build-tools (0.4.0-2) experimental; urgency=medium
+
+  * Fixed symmangle - sort order is defined by LC_ALL, so using
+    LC_ALL=C is a good idea in the script
+  * Renamed get-snapshot to git-snapshot
+  * Bumped qtxdg dependency to >= 3.1.0
+  * Added lintian-overrides
+ 
+ -- Alf Gaida <agaida@siduction.org>  Sun, 22 Oct 2017 17:01:49 +0200
+
+lxqt-build-tools (0.4.0-1) experimental; urgency=medium
+
+  * Cherry-picking new upstream release 0.4.0
+  * Added some pkg-lxqt tools:
+    - evil: the (in)famous lintian -EvIL ...
+    - mangle: mangle single symbols
+    - symmangle: mangle whole symbol files
+    - git-versions: get current upstream git versions
+    - get-snapshot: get a git snapshot
+
+ -- Alf Gaida <agaida@siduction.org>  Sat, 23 Sep 2017 16:28:13 +0200
+
 lxqt-build-tools (0.3.2-1) unstable; urgency=medium
 
   * Cherry-picking upstream version 0.3.2.
diff --git a/debian/control b/debian/control
index 4ebd6d4..16dee25 100644
--- a/debian/control
+++ b/debian/control
@@ -6,8 +6,10 @@ Section: devel
 Priority: optional
 Build-Depends: debhelper (>= 10),
                cmake (>= 3.0.2),
+               libglib2.0-dev,
+               pkg-config,
                qtbase5-dev
-Standards-Version: 4.1.0
+Standards-Version: 4.1.1
 Vcs-Browser: https://anonscm.debian.org/cgit/pkg-lxqt/lxqt-build-tools.git/?h=debian/sid
 Vcs-Git: https://anonscm.debian.org/git/pkg-lxqt/lxqt-build-tools.git -b debian/sid
 Homepage: https://github.com/lxde/lxqt-build-tools
@@ -16,11 +18,15 @@ Package: lxqt-build-tools
 Architecture: all
 Depends: ${shlibs:Depends},
          ${misc:Depends},
+         binutils,
          cmake (>= 3.0.2),
-         libqt5xdg-dev (>= 2.0.0), 
+         libqt5xdg-dev (>= 3.1.0),
+         libglib2.0-dev (>= 2.5.0),
          pkg-config,
          qttools5-dev,
          qttools5-dev-tools
+Recommends: git,
+            lintian
 Description: Build tools for the LXQt desktop environment
  LXQt is an advanced, easy-to-use, and fast desktop environment based on Qt
  technologies. It has been tailored for users who value simplicity, speed, and
diff --git a/debian/copyright b/debian/copyright
index e19a5dd..7e88fa0 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -8,7 +8,7 @@ Copyright: 2010-2012 Razor team
 License: BSD-3-Clause
 
 Files: debian/*
-Copyright: 2016-2017 Alf Gaida <agaida@siduction.org>
+Copyright: 2015-2017 Alf Gaida <agaida@siduction.org>
 License: BSD-3-Clause
 
 License: BSD-3-Clause
diff --git a/debian/install b/debian/install
index ce533ad..b42580b 100644
--- a/debian/install
+++ b/debian/install
@@ -1 +1,2 @@
 debian/bin/* /usr/bin
+debian/usr/* /usr
diff --git a/debian/lintian-overrides b/debian/lintian-overrides
new file mode 100644
index 0000000..98a5372
--- /dev/null
+++ b/debian/lintian-overrides
@@ -0,0 +1,7 @@
+# Yes, we know
+
+lxqt-build-tools: binary-without-manpage usr/bin/evil
+lxqt-build-tools: binary-without-manpage usr/bin/git-snapshot
+lxqt-build-tools: binary-without-manpage usr/bin/git-versions
+lxqt-build-tools: binary-without-manpage usr/bin/mangle
+lxqt-build-tools: binary-without-manpage usr/bin/symmangle
diff --git a/debian/usr/share/lxqt-build-tools/git-versions.list.example b/debian/usr/share/lxqt-build-tools/git-versions.list.example
new file mode 100644
index 0000000..fc70f8b
--- /dev/null
+++ b/debian/usr/share/lxqt-build-tools/git-versions.list.example
@@ -0,0 +1,61 @@
+repositories="\
+    ==0== \
+    libqtxdg \
+    \
+    ==I== \
+    lxqt-build-tools \
+    \
+    ==II== \
+    liblxqt \
+    libsysstat \
+    \
+    ==III== \
+    compton-conf \
+    libfm-qt \
+    lxqt-l10n \
+    lxqt-themes \
+    obconf-qt \
+    pavucontrol-qt \
+    qtermwidget \
+    \
+    ==IV== \
+    lximage-qt \
+    lxqt-about \
+    lxqt-admin \
+    lxqt-config \
+    lxqt-globalkeys \
+    lxqt-notificationd \
+    lxqt-openssh-askpass \
+    lxqt-policykit \
+    lxqt-powermanagement \
+    lxqt-qtplugin \
+    lxqt-session \
+    lxqt-sudo \
+    pcmanfm-qt \
+    qterminal \
+    \
+    ==V== \
+    lxqt-panel \
+    lxqt-runner \
+    \
+    ==VI== \
+    cmst \
+    juffed \
+    nomacs \
+    qlipper \
+    qps \
+    screengrab \
+    trojita \
+    \
+    ==MISC== \
+    calamares \
+    connman \
+    fswatch \
+    libfm \
+    menu-cache \
+    meteo-qt \
+    orbital \
+    qtstyleplugins \
+    quassel \
+    sddm \
+    vokoscreen"
diff --git a/debian/usr/share/lxqt-build-tools/repository.spec.example b/debian/usr/share/lxqt-build-tools/repository.spec.example
new file mode 100644
index 0000000..e0dac9a
--- /dev/null
+++ b/debian/usr/share/lxqt-build-tools/repository.spec.example
@@ -0,0 +1,29 @@
+# Author: Alf Gaida <agaida@siduction.org>
+# License: WTFPL-2
+#  0. You just DO WHAT THE FUCK YOU WANT TO.
+
+# Variables
+# =========
+# repository= your repository
+# branch= your branch, if needed
+# commit= your commit , if needed
+# target_dir= target dir, if needed, default is snapshot
+#
+# Functions
+# =========
+# cleanup ()
+
+repository="git@$domain.tld:$foo/$bar"
+
+
+# cleanup function definiton
+cleanup() {
+    echo ""
+    echo "┌─────────────┐"
+    echo "│ Cleanup ... │"
+    echo "└─────────────┘"
+    rm -rf .git*
+}
+
+
+