Radix cross Linux 3pp sources

RcL sources – is a tree of Third Party and Radix source tarballs

343 Commits   0 Branches   0 Tags
author: kx <kx@radix.pro> 2023-04-07 10:08:13 +0300 committer: kx <kx@radix.pro> 2023-04-07 10:08:13 +0300 commit: 1d161c7be1ce8365f04bb253c5af1bf842d2e0eb parent: 56d70fdfbe2c742180a1a6a1976826a66bf8b96d
Commit Summary:
development packages
Diffstat:
13 files changed, 629 insertions, 1 deletion
diff --git a/packages/d/Makefile b/packages/d/Makefile
index 14e4c36..80e4caa 100644
--- a/packages/d/Makefile
+++ b/packages/d/Makefile
@@ -4,7 +4,19 @@
 # $ tree -fid .
 #
 
-SUBDIRS := perl-modules
+SUBDIRS := check        \
+           cmake        \
+           flex         \
+           git          \
+           intltool     \
+           llvm         \
+           mercurial    \
+           meson        \
+           ninja        \
+           orc          \
+           perl         \
+           perl-cross   \
+           perl-modules
 
 
 all-recursive downloads_clean-recursive:
diff --git a/packages/d/check/Makefile b/packages/d/check/Makefile
new file mode 100644
index 0000000..65b6fbe
--- /dev/null
+++ b/packages/d/check/Makefile
@@ -0,0 +1,74 @@
+#
+# Project Home:
+# ============
+# http://check.sourceforge.net (has moved to):
+# http://libcheck.github.io/check
+#
+# GitHub:
+# ======
+# https://github.com/libcheck/check
+#
+# Downloads:
+# =========
+# http://sourceforge.net/projects/check/files/check/$(VERSION) (has moved to:)
+# https://github.com/libcheck/check/releases
+#
+
+url         = https://github.com/libcheck/check.git
+
+repo_name   = check
+
+versions    = 0.10.0 0.13.0 0.15.2
+suffix      = tar.xz
+
+TAGS        = $(versions)
+
+git_repo    = .git_clone
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(repo_name)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+TARGETS = repository_clean
+
+all: $(TARGETS)
+
+.PHONY: downloads_clean repository_clean
+
+$(git_repo):
+	@echo -e "\n======= Clone $(repo_name).git repository =======\n"
+	@rm -rf $(repo_name)
+	@if [ "$(url)" = 'git://radix.pro' ]; then \
+	   git clone $(url)/$(repo_name).git $(repo_name) ; \
+	 else \
+	   git clone $(url) $(repo_name) ; \
+	 fi
+	@touch $@
+
+
+$(tarballs): $(git_repo)
+	@for version in $(TAGS) ; do \
+	  tag=`echo $$version`; \
+	  if [ ! -f $(repo_name)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(repo_name)-$$version.$(suffix)' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(repo_name)-$$version/ $$tag | \
+	      xz >../$(repo_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	  tar xJf $(repo_name)-$$version.$(suffix) ; \
+	  ( cd $(repo_name)-$$version ; autoreconf -i ; rm -rf autom4te.cache .cvsignore .git* .editorconfig ) ; \
+	  tar cJf $(repo_name)-$$version.$(suffix) $(repo_name)-$$version ; \
+	  rm -rf $(repo_name)-$$version ; \
+	done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(sha1s)
+	@echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
+	@rm -rf $(git_repo) $(repo_name)
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/d/cmake/Makefile b/packages/d/cmake/Makefile
new file mode 100644
index 0000000..f7dab2b
--- /dev/null
+++ b/packages/d/cmake/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://www.cmake.org
+#
+# Downloads:
+# =========
+# https://www.cmake.org/files/$(VERSION)
+#
+
+url         = https://www.cmake.org/files
+
+versions    = 2.8.12.2 3.0.2 3.4.3 3.5.2 3.22.1 3.26.3
+
+pkgname     = cmake
+suffix      = tar.gz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for version in $(versions) ; do \
+	  major_minor=`echo $$version | sed 's/\([0-9][.0-9][0-9]*\)\([\.].*\)/\1/'` ; \
+	  wget -N $(url)/v$$major_minor/$(pkgname)-$$version.$(suffix) ;  \
+	done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======\n" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
diff --git a/packages/d/flex/Makefile b/packages/d/flex/Makefile
new file mode 100644
index 0000000..7a1692d
--- /dev/null
+++ b/packages/d/flex/Makefile
@@ -0,0 +1,82 @@
+#
+# Project Home:
+# ============
+# http://flex.sourceforge.net
+#
+# Downloads:
+# =========
+# http://sourceforge.net/projects/flex/files
+#
+#
+# GitHub:
+# ======
+# https://github.com/westes/flex
+#
+# Clone:
+# =====
+# https://github.com/westes/flex.git
+#
+
+url        = https://github.com/westes
+
+repo_name  = flex
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 581ef6d17f7fccc9c538c0f0bda9b89df66c2dc3:2.6.3
+revisions += ab49343b08c933e32de8de78132649f9560a3727:2.6.4
+
+git_repo   = .git_clone
+
+suffix     = tar.xz
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2 -d ':'))
+
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(repo_name)-, $(versions)))
+sha1s      = $(addsuffix .sha1sum, $(tarballs))
+
+TARGETS = repository_clean
+
+all: $(TARGETS)
+
+.PHONY: downloads_clean repository_clean
+
+$(git_repo):
+	@echo -e "\n======= Clone $(repo_name).git repository =======\n"
+	@rm -rf $(repo_name)
+	@git clone $(url)/$(repo_name).git $(repo_name)
+	@touch $@
+
+$(tarballs): $(git_repo)
+	@for revision in $(revisions) ; do \
+	  hash=`echo $$revision    | cut -f 1 -d ':'` ; \
+	  version=`echo $$revision | cut -f 2 -d ':'` ; \
+	  if [ ! -f $(repo_name)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(repo_name)-$$version.$(suffix)' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(repo_name)-$$version/ $$hash | \
+	      xz >../$(repo_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	  tar xJf $(repo_name)-$$version.$(suffix) ; \
+	  ( cd $(repo_name)-$$version ; ./autogen.sh ; ./configure ; make ; make distclean ; rm -rf autom4te.cache .gitignore ) ; \
+	  tar cJf $(repo_name)-$$version.$(suffix) $(repo_name)-$$version ; \
+	  rm -rf $(repo_name)-$$version ; \
+	done
+
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(sha1s)
+	@echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
+	@rm -rf $(git_repo) $(repo_name)
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/d/git/Makefile b/packages/d/git/Makefile
new file mode 100644
index 0000000..ed05ad7
--- /dev/null
+++ b/packages/d/git/Makefile
@@ -0,0 +1,73 @@
+#
+# Project Home:
+# ============
+#   https://git-scm.com
+#
+# Download:
+# ========
+#   https://www.kernel.org/pub/software/scm/git
+#
+# Git:
+# ===
+#   https://git.kernel.org/pub/scm/git/git.git
+#
+
+url        = https://git.kernel.org/pub/scm/git
+
+repo_name  = git
+
+#
+# List of revisions to be extracted:
+# =================================
+#
+#                                               hash | version
+#            ----------------------------------------+--------
+revisions  = e0b44509711b2d9090f2dcf987f40c0bce248774:2.34.1
+revisions += 73876f4861cd3d187a4682290ab75c9dccadbc56:2.40.0
+
+git_repo   = .git_clone
+
+suffix     = tar.xz
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2 -d ':'))
+
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(repo_name)-, $(versions)))
+sha1s      = $(addsuffix .sha1sum, $(tarballs))
+
+TARGETS = repository_clean
+
+all: $(TARGETS)
+
+.PHONY: downloads_clean repository_clean
+
+$(git_repo):
+	@echo -e "\n======= Clone $(repo_name).git repository =======\n"
+	@rm -rf $(repo_name)
+	@git clone $(url)/$(repo_name).git $(repo_name)
+	@touch $@
+
+$(tarballs): $(git_repo)
+	@for revision in $(revisions) ; do \
+	  hash=`echo $$revision | cut -f 1 -d ':'` ; \
+	  version=`echo $$revision | cut -f 2 -d ':'` ; \
+	  if [ ! -f $(repo_name)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(repo_name)-$$version.$(suffix)' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(repo_name)-$$version/ $$hash | \
+	      xz >../$(repo_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(sha1s)
+	@echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
+	@rm -rf $(git_repo) $(repo_name)
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/d/intltool/Makefile b/packages/d/intltool/Makefile
new file mode 100644
index 0000000..8932aed
--- /dev/null
+++ b/packages/d/intltool/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://launchpad.net/intltool
+#
+# Downloads:
+# =========
+# https://launchpad.net/intltool/trunk/${VERSION}/+download/intltool-${VERSION}.tar.gz
+#
+
+url         = https://launchpad.net/intltool/trunk
+
+versions    = 0.51.0
+pkgname     = intltool
+suffix      = tar.gz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([0-9][.][0-9]*[.][0-9]*\)\([\.].*\)/\2/'` ; \
+	  wget -N $(url)/$$version/+download/$$tarball ; \
+	done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======\n" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
diff --git a/packages/d/llvm/Makefile b/packages/d/llvm/Makefile
new file mode 100644
index 0000000..5092e9f
--- /dev/null
+++ b/packages/d/llvm/Makefile
@@ -0,0 +1,78 @@
+#
+# Project Home:
+# ============
+# https://llvm.org
+#
+# GitHub:
+# ======
+# https://github.com/llvm/llvm-project
+#
+# Clone:
+# =====
+# https://github.com/llvm/llvm-project.git
+#
+
+url        = https://github.com/llvm
+
+repo_name  = llvm-project
+pkg_name   = llvm
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 1fdec59bffc11ae37eb51a1b9869f0696bfd5312:11.1.0
+revisions += d28af7c654d8db0b68c175db5ce212d74fb5e9bc:12.0.0
+revisions += fed41342a82f5a3a9201819a82bf7a48313e296b:12.0.1
+revisions += d7b669b3a30345cfcdb2fde2af6f48aa4b94845d:13.0.0
+revisions += 5c68a1cb123161b54b72ce90e7975d95a8eaf2a4:15.0.4
+revisions += 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a:15.0.7
+revisions += cd89023f797900e4492da58b7bed36f702120011:16.0.1
+
+git_repo   = .git_clone
+
+suffix     = tar.xz
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2 -d ':'))
+
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(pkg_name)-, $(versions)))
+sha1s      = $(addsuffix .sha1sum, $(tarballs))
+
+TARGETS = repository_clean
+
+all: $(TARGETS)
+
+.PHONY: downloads_clean repository_clean
+
+$(git_repo):
+	@echo -e "\n======= Clone $(repo_name).git repository =======\n"
+	@rm -rf $(repo_name)
+	@git clone $(url)/$(repo_name).git $(repo_name)
+	@touch $@
+
+$(tarballs): $(git_repo)
+	@for revision in $(revisions) ; do \
+	  hash=`echo $$revision    | cut -f 1 -d ':'` ; \
+	  version=`echo $$revision | cut -f 2 -d ':'` ; \
+	  if [ ! -f $(repo_name)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(pkg_name)-$$version.$(suffix)' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(pkg_name)-$$version/ $$hash | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(sha1s)
+	@echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
+	@rm -rf $(git_repo) $(repo_name)
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/d/mercurial/Makefile b/packages/d/mercurial/Makefile
new file mode 100644
index 0000000..9d958d5
--- /dev/null
+++ b/packages/d/mercurial/Makefile
@@ -0,0 +1,38 @@
+#
+# Project Home:
+# ============
+# https://www.mercurial-scm.org
+#
+# Downloads:
+# =========
+# https://www.mercurial-scm.org/release/mercurial-${VERSION}.tar.gz
+#
+
+url         = https://www.mercurial-scm.org/release
+
+versions    = 6.0.1 6.3.3
+pkgname     = mercurial
+suffix      = tar.gz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  wget -N $(url)/$$tarball ; \
+	done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======\n" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
diff --git a/packages/d/meson/Makefile b/packages/d/meson/Makefile
new file mode 100644
index 0000000..4551043
--- /dev/null
+++ b/packages/d/meson/Makefile
@@ -0,0 +1,73 @@
+#
+# Project Home:
+# ============
+# https://mesonbuild.com
+#
+# GitHub:
+# ======
+# https://github.com/mesonbuild/meson
+#
+# Clone:
+# =====
+# https://github.com/mesonbuild/meson.git
+#
+
+url        = https://github.com/mesonbuild
+
+repo_name  = meson
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 2779603c689c6347809255a5aa3bd59b46b18b81:0.52.0
+revisions += 9e1f20728f8d09d4eddbb0e1ff62762f9bddfaae:0.61.0
+revisions += f341097c7e7914c250133bd58feb4985d1fbdcd6:1.0.1
+
+git_repo   = .git_clone
+
+suffix     = tar.xz
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2 -d ':'))
+
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(repo_name)-, $(versions)))
+sha1s      = $(addsuffix .sha1sum, $(tarballs))
+
+TARGETS = repository_clean
+
+all: $(TARGETS)
+
+.PHONY: downloads_clean repository_clean
+
+$(git_repo):
+	@echo -e "\n======= Clone $(repo_name).git repository =======\n"
+	@rm -rf $(repo_name)
+	@git clone $(url)/$(repo_name).git $(repo_name)
+	@touch $@
+
+$(tarballs): $(git_repo)
+	@for revision in $(revisions) ; do \
+	  hash=`echo $$revision    | cut -f 1 -d ':'` ; \
+	  version=`echo $$revision | cut -f 2 -d ':'` ; \
+	  if [ ! -f $(repo_name)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(repo_name)-$$version.$(suffix)' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(repo_name)-$$version/ $$hash | \
+	      xz >../$(repo_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(sha1s)
+	@echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
+	@rm -rf $(git_repo) $(repo_name)
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/d/ninja/Makefile b/packages/d/ninja/Makefile
new file mode 100644
index 0000000..7ed76b4
--- /dev/null
+++ b/packages/d/ninja/Makefile
@@ -0,0 +1,74 @@
+#
+# Project Home:
+# ============
+# https://ninja-build.org
+#
+# GitHub:
+# ======
+# https://github.com/ninja-build/ninja
+#
+# Clone:
+# =====
+# https://github.com/ninja-build/ninja.git
+#
+
+url        = https://github.com/ninja-build
+
+repo_name  = ninja
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = b25c08bda4949192c69cea4cee057887341a2ffc:1.9.0
+revisions += ed7f67040b370189d989adbd60ff8ea29957231f:1.10.0
+revisions += e72d1d581c945c158ed68d9bc48911063022a2c6:1.10.2
+revisions += a524bf3f6bacd1b4ad85d719eed2737d8562f27a:1.11.1
+
+git_repo   = .git_clone
+
+suffix     = tar.xz
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2 -d ':'))
+
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(repo_name)-, $(versions)))
+sha1s      = $(addsuffix .sha1sum, $(tarballs))
+
+TARGETS = repository_clean
+
+all: $(TARGETS)
+
+.PHONY: downloads_clean repository_clean
+
+$(git_repo):
+	@echo -e "\n======= Clone $(repo_name).git repository =======\n"
+	@rm -rf $(repo_name)
+	@git clone $(url)/$(repo_name).git $(repo_name)
+	@touch $@
+
+$(tarballs): $(git_repo)
+	@for revision in $(revisions) ; do \
+	  hash=`echo $$revision    | cut -f 1 -d ':'` ; \
+	  version=`echo $$revision | cut -f 2 -d ':'` ; \
+	  if [ ! -f $(repo_name)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(repo_name)-$$version.$(suffix)' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(repo_name)-$$version/ $$hash | \
+	      xz >../$(repo_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(sha1s)
+	@echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
+	@rm -rf $(git_repo) $(repo_name)
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/d/orc/Makefile b/packages/d/orc/Makefile
new file mode 100644
index 0000000..0b5ea20
--- /dev/null
+++ b/packages/d/orc/Makefile
@@ -0,0 +1,82 @@
+#
+# Project Home:
+# ============
+# https://cgit.freedesktop.org/gstreamer/orc
+#
+# Cgit:
+# ======
+# https://cgit.freedesktop.org/gstreamer/orc
+#
+# Clone:
+# =====
+# https://anongit.freedesktop.org/git/gstreamer/orc.git
+#
+
+url        = https://anongit.freedesktop.org/git/gstreamer
+
+repo_name  = orc
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = be26150a7ab2e19a0f9384109b97b6ed9c805cf6:0.4.33
+revisions += c2e09667bb902fae0eed90b6c7f5f8ccb3d394b8:0.4.33.1
+
+git_repo   = .git_clone
+
+suffix     = tar.xz
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2 -d ':'))
+
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(repo_name)-, $(versions)))
+sha1s      = $(addsuffix .sha1sum, $(tarballs))
+
+TARGETS = repository_clean
+
+all: $(TARGETS)
+
+.PHONY: downloads_clean repository_clean
+
+$(git_repo):
+	@echo -e "\n======= Clone $(repo_name).git repository =======\n"
+	@rm -rf $(repo_name)
+	@git clone $(url)/$(repo_name).git $(repo_name)
+	@touch $@
+
+$(tarballs): $(git_repo)
+	@for revision in $(revisions) ; do \
+	  hash=`echo $$revision    | cut -f 1 -d ':'` ; \
+	  version=`echo $$revision | cut -f 2 -d ':'` ; \
+	  if [ ! -f $(repo_name)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(repo_name)-$$version.$(suffix)' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(repo_name)-$$version/ $$hash | \
+	      xz >../$(repo_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	  tar xJf $(repo_name)-$$version.$(suffix) ; \
+	  ( cd $(repo_name)-$$version ; \
+	    if [ -f "./autogen.sh" ] ; then \
+	      ./autogen.sh ; rm -rf autom4te.cache .gitignore *~ ; make distclean ; \
+	    else \
+	      rm -rf ci .git* ; \
+	    fi ; \
+	  ) ; \
+	  tar cJf $(repo_name)-$$version.$(suffix) $(repo_name)-$$version ; \
+	  rm -rf $(repo_name)-$$version ; \
+	done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(sha1s)
+	@echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
+	@rm -rf $(git_repo) $(repo_name)
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/d/perl-cross/Makefile b/packages/d/perl-cross/Makefile
new file mode 100644
index 0000000..2b30bdc
--- /dev/null
+++ b/packages/d/perl-cross/Makefile
@@ -0,0 +1,80 @@
+#
+# Project Home:
+# ============
+#   https://github.com/arsv/perl-cross
+#
+# Git:
+#   https://github.com/arsv/perl-cross.git
+#
+# Clone:
+# =====
+#   git clone https://github.com/arsv/perl-cross.git
+#
+
+url        = https://github.com/arsv
+
+repo_name  = perl-cross
+
+versions   = 1.2.2 1.2.3 1.3 1.3.3 1.3.4 1.3.6 1.3.7 1.4
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(addprefix $(repo_name)-, $(versions)))
+sha1s      = $(addsuffix .sha1sum, $(tarballs))
+
+releases   = 5.22.1 5.26.1 5.28.1 5.30.0 5.30.2 5.31.4 5.32.0 5.34.0 5.36.0
+releases  += 5.37.0 5.37.4 5.37.9
+
+
+TARGETS = repository_clean
+
+
+all: $(TARGETS)
+
+.PHONY: downloads_clean repository_clean
+
+$(git_repo):
+	@echo -e "\n======= Clone $(repo_name).git repository =======\n"
+	@rm -rf $(repo_name)
+	@git clone $(url)/$(repo_name).git $(repo_name)
+	@touch $@
+
+$(tarballs): $(git_repo)
+	@for version in $(versions) ; do \
+	  tag=`echo $$version` ; \
+	  if [ ! -f $(repo_name)-$$version.tar.xz ]; then \
+	    echo -e "\n======= Creating '$(repo_name)-$$version.tar.xz' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(repo_name)-$$version/ $$tag | \
+	      xz >../$(repo_name)-$$version.tar.xz ) ; \
+	  fi ; \
+	  mkdir -p $$version ; \
+	  tar -xJf $(repo_name)-$$version.tar.xz ; \
+	  ( cd $(repo_name)-$$version && \
+	    for release in $(releases) ; do \
+	      rel=$(repo_name)-$$release.tar.xz ; \
+	      tar -cJf ../$$version/$$rel \
+	      --exclude README.md \
+	      --exclude LICENSE   \
+	      --exclude Artistic  \
+	      --exclude Copying   \
+	      --exclude 0pack.sh  \
+	      --xform "s!^!perl-$$release/!" \
+	      * ; \
+	      ( cd ../$$version ; sha1sum --binary $$rel > $$rel.sha1sum ) ; \
+	    done ) ; \
+	  rm -rf $(repo_name)-$$version ; \
+	done
+
+$(sha1s): %.tar.xz.sha1sum : %.tar.xz
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(sha1s)
+	@echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
+	@rm -rf $(git_repo) $(repo_name)
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s) $(versions)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/d/perl/Makefile b/packages/d/perl/Makefile
new file mode 100644
index 0000000..8e60615
--- /dev/null
+++ b/packages/d/perl/Makefile
@@ -0,0 +1,41 @@
+#
+# Project Home:
+# ============
+# http://www.perl.org
+#
+# Downloads:
+# =========
+# https://www.cpan.org/src/README.html
+# https://www.cpan.org/src/5.0
+#
+
+url         = https://www.cpan.org/src/5.0
+
+versions    = 5.22.1 5.26.1 5.28.1 5.30.0 5.30.2 5.31.4 5.32.0 5.34.0 5.36.0
+versions   += 5.37.0 5.37.4 5.37.9
+
+pkgname     = perl
+suffix      = tar.xz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  wget -N $(url)/$$tarball ; \
+	done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======\n" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)