Makefile.usr: allow easier change of repo URL and cleanups
authorAaron LI <aly@aaronly.me>
Wed, 28 Mar 2018 04:39:01 +0000 (12:39 +0800)
committerAaron LI <aly@aaronly.me>
Wed, 28 Mar 2018 04:39:01 +0000 (12:39 +0800)
* Introduce variables GITURL_SRC and GITURL_DPORTS to replace GITHOST and
  GITHOST_DPORTS, respectively, allowing easier change the git repo URLs, e.g.,
  changing to use the HTTPs clone from GitHub.

* Introduce variable BRANCH to specify the src branch to be checked out, either
  "master" (the development branch) or "DragonFly_RELEASE_x_y" (for stable
  releases).  Also print the checkout branch in the help.

* Simplify "src-create" and "src-create-shallow" targets to a one-line git clone
  command with the --depth and --branch options.

* Target "src-create-repo" is merged into "src-create", and target
  "src-checkout" is removed as it is no longer needed.

* Protect "release-sys-extract" target with the existence check of
  src-sys.tar.bz2 .

* Other minor updates and cleanups.

etc/Makefile.usr

index 898f2d0..ce87232 100644 (file)
@@ -2,15 +2,25 @@
 #
 # Provides simple targets to download and maintain /usr/src, /usr/dports etc.
 
-GITHOST?=git.dragonflybsd.org
-GITHOST_DPORTS?=mirror-master.dragonflybsd.org
+# DragonFly BSD source repository
+GITURL_SRC?=git://git.dragonflybsd.org/dragonfly.git
+# Branch to be fetched & checked out
+# * master - latest development branch
+# * DragonFly_RELEASE_x_y - stable release branch x.y
+BRANCH?=master
+
+# DPorts source repository
+GITURL_DPORTS?=git://mirror-master.dragonflybsd.org/dports.git
+
+# Mirror from which to fetch the pkg bootstrap
+MIRROR?=https://mirror-master.dragonflybsd.org
 
 DPTBALL=/tmp/dports.tar.gz
 PKGBALL=/tmp/pkgboot.tar.xz
 DPDLURL=https://api.github.com/repos/DragonFlyBSD/DPorts/tarball/
 PKGBOOT_VERSION=02
 PKGBOOT_x86_64=bootstrap_pkg_${PKGBOOT_VERSION}_x86-64.tar.xz
-PKGBOOT=http://mirror-master.dragonflybsd.org/dports/bootstraps/${PKGBOOT_${MACHINE_ARCH}}
+PKGBOOT=${MIRROR}/dports/bootstraps/${PKGBOOT_${MACHINE_ARCH}}
 ERRPKG="Error: Bootstrap not necessary, ${.CURDIR}/local/sbin/pkg already exists"
 WSTARS="***************************************************************"
 WARNPS="  Warning: Delete or move ${.CURDIR}/pkg before building any dport!"
@@ -30,28 +40,26 @@ help all:
        @printf ${LPATT} "dports-download"       "download & install dports tarball (Github)"
 .  endif
 .endif
+       @echo
        @printf ${LPATT} "pkg-bootstrap"        "Use pre-built pkg to install dports packages"
        @printf ${LPATT} "pkg-bootstrap-force"  "Force it (pkg.conf will be overwritten)"
        @echo
 
 .if exists(${.CURDIR}/src/.git)
-.if exists(${.CURDIR}/src/Makefile)
        @printf ${LPATT} "src-update"         "update your src repository from the net"
-.else
-       @printf ${LPATT} "src-checkout"       "Initial checkout of src repository"
-.endif
 .else
        @printf ${LPATT} "src-create"         "fetch initial src repository from the net"
        @printf ${LPATT} "src-create-shallow" "fetch initial history-free src repository"
-       @printf ${LPATT} "src-create-repo"    "fetch src repository only, no checkout"
 .endif
        @echo
 .if exists(${.CURDIR}/src-sys.tar.bz2)
        @printf ${LPATT} "release-sys-extract" "extract the pre-packaged sys-only sources"
        @echo
 .endif
-       @echo "If automating please feel free to run git pull's from cron."
-       @echo "We prefer once a day but you can run them more often if you desire"
+       @echo "src checkout branch: ${BRANCH}"
+       @echo
+       @echo "If automating please feel free to run 'git pull' from cron."
+       @echo "We prefer once a day but you can run them more often if you desire."
 
 git-check:
        @/usr/bin/which -s git || \
@@ -65,62 +73,42 @@ src-check-hasdir: git-check
        @/bin/test -d ${.CURDIR}/src/.git || \
                (echo "Error: ${.CURDIR}/src does not exist"; /usr/bin/false)
 
-src-create-repo: src-check
-       @echo "If problems occur you may have to rm -rf src and try again."
+src-create: src-check
+       @echo "If problems occur you may have to 'rm -rf src' and try again."
        @echo
-       @mkdir -p ${.CURDIR}/src
-       @cd ${.CURDIR}/src && git init
-       @cd ${.CURDIR}/src && \
-               git remote add origin git://${GITHOST}/dragonfly.git
-       cd ${.CURDIR}/src && git fetch origin
-       cd ${.CURDIR}/src && git branch master origin/master
-
-src-create: src-create-repo
-       cd ${.CURDIR}/src && git checkout master
-       cd ${.CURDIR}/src && git pull
+       git clone --branch ${BRANCH} -- ${GITURL_SRC} ${.CURDIR}/src
 
 src-create-shallow: src-check
-       @echo "If problems occur you may have to rm -rf src and try again."
+       @echo "If problems occur you may have to 'rm -rf src' and try again."
        @echo
-       @mkdir -p ${.CURDIR}/src
-       cd ${.CURDIR}/src && git init
-       cd ${.CURDIR}/src && \
-           git remote add origin git://${GITHOST}/dragonfly.git
-       cd ${.CURDIR}/src && git fetch --depth=1 origin
-       cd ${.CURDIR}/src && git branch master origin/master
-       cd ${.CURDIR}/src && git checkout master
-       cd ${.CURDIR}/src && git pull
-
-src-checkout: src-check-hasdir
-       cd ${.CURDIR}/src && git checkout master
+       git clone --depth 1 --branch ${BRANCH} -- ${GITURL_SRC} ${.CURDIR}/src
 
 src-update: src-check-hasdir
        cd ${.CURDIR}/src && git pull
 
+.if exists(${.CURDIR}/src-sys.tar.bz2)
 release-sys-extract:
        cd ${.CURDIR} && tar xvpjf src-sys.tar.bz2
+.endif
 
 dports-check: git-check
        @/bin/test ! -d ${.CURDIR}/dports/.git || \
                   (echo "Error: ${.CURDIR}/dports already exists"; /usr/bin/false)
 
+dports-check-hasdir: git-check
+       @/bin/test -d ${.CURDIR}/dports/.git || \
+                  (echo "Error: ${.CURDIR}/dports does not exist"; /usr/bin/false)
+
 dports-download-check:
        @/bin/test ! -d ${.CURDIR}/dports || \
                   (echo "Error: ${.CURDIR}/dports already exists"; /usr/bin/false)
        @/bin/test ! -d ${.CURDIR}/DragonFlyBSD-DPorts-* || \
                   (echo "Error: ${.CURDIR}/DragonFlyBSD-DPorts-* already exists"; /usr/bin/false)
 
-dports-check-hasdir: git-check
-       @/bin/test -d ${.CURDIR}/dports || \
-                  (echo "Error: ${.CURDIR}/dports does not exist"; /usr/bin/false)
-
-dports-update: dports-check-hasdir
-       cd ${.CURDIR}/dports && git pull
-
 dports-create: dports-check
-       @echo "If problems occur you may have to rm -rf dports and try again."
+       @echo "If problems occur you may have to 'rm -rf dports' and try again."
        @echo
-       git clone git://${GITHOST_DPORTS}/dports.git ${.CURDIR}/dports
+       git clone ${GITURL_DPORTS} ${.CURDIR}/dports
 .if exists(${.CURDIR}/pkg)
        @echo ${WSTARS}
        @echo ${WARNPS}
@@ -128,16 +116,18 @@ dports-create: dports-check
 .endif
 
 dports-create-shallow: dports-check
-       @echo "If problems occur you may have to rm -rf dports and try again."
+       @echo "If problems occur you may have to 'rm -rf dports' and try again."
        @echo
-       git clone --depth=1 git://${GITHOST_DPORTS}/dports.git \
-          ${.CURDIR}/dports
+       git clone --depth 1 ${GITURL_DPORTS} ${.CURDIR}/dports
 .if exists(${.CURDIR}/pkg)
        @echo ${WSTARS}
        @echo ${WARNPS}
        @echo ${WSTARS}
 .endif
 
+dports-update: dports-check-hasdir
+       cd ${.CURDIR}/dports && git pull
+
 dports-download: dports-download-check
        rm -f ${DPTBALL}
        fetch -o ${DPTBALL} ${DPDLURL}
@@ -150,10 +140,10 @@ dports-download: dports-download-check
        @echo ${WSTARS}
 .endif
 
-dports-replace: dports-check-hasdir
+dports-replace:
 .if exists(${.CURDIR}/dports/.git)
-       @echo "Error: this is git repository currently."
-       @echo "Remove ${.CURDIR}/dports and execute \"make dports-download\" if you want"
+       @echo "Error: ${.CURDIR}/dports is a git repository currently."
+       @echo "Remove ${.CURDIR}/dports and execute 'make dports-download' if you want"
        @echo "to convert to a non-git version."
        @/usr/bin/false
 .else