From 1d042e849bdffaf453c934074fee70dc4e9130f0 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Wed, 11 May 2022 16:10:29 +0200 Subject: [PATCH] - buildsystem-helpers: add hg support --- README.md | 6 +++--- make/buildsystem-helpers.mk | 22 ++++++++++++++++++++-- support/scripts/get-hg-source.sh | 23 +++++++++++++++++++++++ 3 files changed, 46 insertions(+), 5 deletions(-) create mode 100755 support/scripts/get-hg-source.sh diff --git a/README.md b/README.md index f44026e8..e4e1d048 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,9 @@ ## Für die Einrichtung unter Debian sind folgende Pakete nötig ```bash apt-get install \ -git subversion cvs automake build-essential ccache cmake patch bison flex \ -texinfo autopoint libtool libtool-bin python curl gawk gzip bzip2 lzma gperf \ -gettext help2man bc libglib2.0-dev libncurses5-dev libncursesw5-dev \ +git subversion mercurial cvs automake build-essential ccache cmake patch bison \ +flex texinfo autopoint libtool libtool-bin python curl gawk gzip bzip2 lzma \ +gperf gettext help2man bc libglib2.0-dev libncurses5-dev libncursesw5-dev \ liblzo2-dev uuid-dev libssl-dev libltdl-dev libcurl4-openssl-dev intltool zip ``` diff --git a/make/buildsystem-helpers.mk b/make/buildsystem-helpers.mk index b3d05b53..8b7b439c 100644 --- a/make/buildsystem-helpers.mk +++ b/make/buildsystem-helpers.mk @@ -22,6 +22,9 @@ define DOWNLOAD if [ "$($(PKG)_VERSION)" == "git" ]; then \ $(call MESSAGE,"Downloading") ; \ $(GET_GIT_SOURCE) $($(PKG)_SITE)/$($(PKG)_SOURCE) $(DL_DIR)/$($(PKG)_SOURCE); \ + elif [ "$($(PKG)_VERSION)" == "hg" ]; then \ + $(call MESSAGE,"Downloading") ; \ + $(GET_HG_SOURCE) $($(PKG)_SITE)/$($(PKG)_SOURCE) $(DL_DIR)/$($(PKG)_SOURCE); \ elif [ "$($(PKG)_VERSION)" == "svn" ]; then \ $(call MESSAGE,"Downloading") ; \ $(GET_SVN_SOURCE) $($(PKG)_SITE)/$($(PKG)_SOURCE) $(DL_DIR)/$($(PKG)_SOURCE); \ @@ -40,20 +43,34 @@ define EXTRACT # (directory) @$(call MESSAGE,"Extracting") $(foreach hook,$($(PKG)_PRE_EXTRACT_HOOKS),$(call $(hook))$(sep)) $(Q)( \ - case $($(PKG)_SOURCE) in \ + case $($(PKG)_VERSION).$($(PKG)_SOURCE) in \ *.tar | *.tar.bz2 | *.tbz | *.tar.gz | *.tgz | *.tar.xz | *.txz) \ tar -xf ${DL_DIR}/$($(PKG)_SOURCE) -C $(1); \ ;; \ *.zip) \ unzip -o -q ${DL_DIR}/$($(PKG)_SOURCE) -d $(1); \ ;; \ - *.git | *.svn) \ + *.git | git.*) \ cp -a -t $(1) $(DL_DIR)/$($(PKG)_SOURCE); \ if test $($(PKG)_CHECKOUT); then \ $(call MESSAGE,"git checkout $($(PKG)_CHECKOUT)"); \ $(CD) $(1)/$($(PKG)_DIR); git checkout $($(PKG)_CHECKOUT); \ fi; \ ;; \ + *.hg | hg.*) \ + cp -a -t $(1) $(DL_DIR)/$($(PKG)_SOURCE); \ + if test $($(PKG)_CHECKOUT); then \ + $(call MESSAGE,"hg checkout $($(PKG)_CHECKOUT)"); \ + $(CD) $(1)/$($(PKG)_DIR); hg checkout $($(PKG)_CHECKOUT); \ + fi; \ + ;; \ + *.svn | svn.*) \ + cp -a -t $(1) $(DL_DIR)/$($(PKG)_SOURCE); \ + if test $($(PKG)_CHECKOUT); then \ + $(call MESSAGE,"svn checkout $($(PKG)_CHECKOUT)"); \ + $(CD) $(1)/$($(PKG)_DIR); svn checkout $($(PKG)_CHECKOUT); \ + fi; \ + ;; \ *) \ $(call MESSAGE,"Cannot extract $($(PKG)_SOURCE)"); \ false ;; \ @@ -159,6 +176,7 @@ SED = $(shell which sed || type -p sed || echo sed) -i -e GET_GIT_ARCHIVE = support/scripts/get-git-archive.sh GET_GIT_SOURCE = support/scripts/get-git-source.sh +GET_HG_SOURCE = support/scripts/get-hg-source.sh GET_SVN_SOURCE = support/scripts/get-svn-source.sh UPDATE-RC.D = support/scripts/update-rc.d -r $(TARGET_DIR) REMOVE-RC.D = support/scripts/update-rc.d -f -r $(TARGET_DIR) diff --git a/support/scripts/get-hg-source.sh b/support/scripts/get-hg-source.sh new file mode 100755 index 00000000..b7a83b1d --- /dev/null +++ b/support/scripts/get-hg-source.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# +# clone or pull an existing hg repository +# +# (C) 2019 vanhofen +# License: WTFPLv2 +# +# parameters: +# * hg URL +# * destination directory +# +HG_URL="$1" +DEST="$2" + +# exit on error +set -e + +if [ -d $DEST ]; then + cd $DEST + hg pull || true +else + hg clone $HG_URL $DEST +fi