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-09 03:24:10 +0300 committer: kx <kx@radix.pro> 2023-04-09 03:24:10 +0300 commit: 3dd1914515dc5c714451bc4148f0abb51672ed06 parent: c0eee091446a07e56576b7d855dd09f0da9968c8
Commit Summary:
libraries
Diffstat:
156 files changed, 6007 insertions, 0 deletions
diff --git a/packages/Makefile b/packages/Makefile
index c87b349..891d63d 100644
--- a/packages/Makefile
+++ b/packages/Makefile
@@ -7,6 +7,7 @@
 SUBDIRS := b \
            d \
            j \
+           l \
            m \
            s \
            x \
diff --git a/packages/l/Makefile b/packages/l/Makefile
new file mode 100644
index 0000000..bcacf05
--- /dev/null
+++ b/packages/l/Makefile
@@ -0,0 +1,150 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := aalib               \
+           apr                 \
+           apr-util            \
+           argon2              \
+           assimp              \
+           boost               \
+           botan               \
+           brotli              \
+           cairo               \
+           cracklib            \
+           cracklib-words      \
+           dbus-glib           \
+           dbus-python         \
+           editline            \
+           elfutils            \
+           enchant             \
+           expat               \
+           fftw                \
+           freetype            \
+           fribidi             \
+           gamin               \
+           gc                  \
+           giflib              \
+           graphene            \
+           graphite2           \
+           harfbuzz            \
+           hdf5                \
+           hidapi              \
+           hwids               \
+           hwloc               \
+           icu4c               \
+           ieee1394            \
+           ijs                 \
+           imlib               \
+           imlib2              \
+           imlib2_loaders      \
+           isl                 \
+           iso-codes           \
+           jansson             \
+           jbig2dec            \
+           jemalloc            \
+           json-c              \
+           judy                \
+           keyutils            \
+           lcms2               \
+           liba52              \
+           libaio              \
+           libarchive          \
+           libasyncns          \
+           libatomic_ops       \
+           libbsd              \
+           libcaca             \
+           libcap              \
+           libcap-ng           \
+           libdaemon           \
+           libdatrie           \
+           libedit             \
+           libevent            \
+           libffi              \
+           libgphoto2          \
+           libical             \
+           libieee1284         \
+           libiodbc            \
+           libjpeg             \
+           libjpeg-6a          \
+           libjpeg-turbo       \
+           libmd               \
+           libmng              \
+           libpipeline         \
+           libpng              \
+           libpsl              \
+           libsodium           \
+           libspectre          \
+           libssh              \
+           libssh2             \
+           libstrophe          \
+           libthai             \
+           libtiff             \
+           libunwind           \
+           liburing            \
+           libusb              \
+           libusb-compat       \
+           libuv               \
+           libvisual           \
+           libxml2             \
+           libxslt             \
+           libyaml             \
+           libzip              \
+           log4cplus           \
+           lz4                 \
+           lzlib               \
+           lzo                 \
+           md4c                \
+           netpbm              \
+           netpbm-doc          \
+           netpbm-super-stable \
+           newt                \
+           oniguruma           \
+           openmpi             \
+           pciids              \
+           pcre                \
+           pcre2               \
+           polkit              \
+           poppler             \
+           poppler-data        \
+           popt                \
+           ppl                 \
+           pycairo             \
+           pycups              \
+           pycurl              \
+           pyrex               \
+           sbc                 \
+           sdl                 \
+           serf                \
+           sg3_utils           \
+           shared-mime-info    \
+           slang               \
+           termcap-compat      \
+           tidy-html5          \
+           tslib               \
+           unidata             \
+           usbids              \
+           utf8proc            \
+           v4l-utils           \
+           zeromq              \
+           zlib                \
+           zstd
+
+
+all-recursive downloads_clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  local_target="$$target"; \
+	  (cd $$subdir && $(MAKE) $$fnord $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; test -z "$$fail"
+
+all: all-recursive
+
+downloads_clean: downloads_clean-recursive
+
+.PHONY: all-recursive downloads_clean-recursive all downloads_clean
diff --git a/packages/l/aalib/Makefile b/packages/l/aalib/Makefile
new file mode 100644
index 0000000..75444c4
--- /dev/null
+++ b/packages/l/aalib/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://aa-project.sourceforge.net/aalib
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/aa-project/aa-lib/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/aa-project/aa-lib
+
+versions    = 1.2 1.4rc5
+
+pkgname     = aalib
+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 \
+	  wget -N $(url)/$$version/$(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/l/apr-util/Makefile b/packages/l/apr-util/Makefile
new file mode 100644
index 0000000..f6d3989
--- /dev/null
+++ b/packages/l/apr-util/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://apr.apache.org
+#
+# Downloads:
+# =========
+# https://dlcdn.apache.org/...
+# https://downloads.apache.org/apr
+#
+
+url         = https://downloads.apache.org/apr
+
+versions    = 1.6.3
+
+pkgname     = apr-util
+suffix      = tar.bz2
+
+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/l/apr/Makefile b/packages/l/apr/Makefile
new file mode 100644
index 0000000..66b9d23
--- /dev/null
+++ b/packages/l/apr/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://apr.apache.org
+#
+# Downloads:
+# =========
+# https://dlcdn.apache.org/...
+# https://downloads.apache.org/apr
+#
+
+url         = https://downloads.apache.org/apr
+
+versions    = 1.7.3
+
+pkgname     = apr
+suffix      = tar.bz2
+
+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/l/argon2/Makefile b/packages/l/argon2/Makefile
new file mode 100644
index 0000000..e0e4548
--- /dev/null
+++ b/packages/l/argon2/Makefile
@@ -0,0 +1,59 @@
+#
+# Project Home:
+# ============
+#   https://www.password-hashing.net
+#
+# Clone:
+# =====
+#   https://github.com/P-H-C/phc-winner-argon2.git
+#
+
+url        = https://github.com/P-H-C
+
+repo_name  = phc-winner-argon2
+pkg_name   = argon2
+suffix     = tar.xz
+
+versions   = 20190702
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; 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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/assimp/Makefile b/packages/l/assimp/Makefile
new file mode 100644
index 0000000..c9822a7
--- /dev/null
+++ b/packages/l/assimp/Makefile
@@ -0,0 +1,60 @@
+#
+# Project Home:
+# ============
+# https://www.assimp.org
+#
+# Clone:
+# =====
+# git clone https://github.com/assimp/assimp.git
+#
+
+url        = https://github.com/assimp/assimp.git
+
+repo_name  = assimp
+
+#
+# List of tags to be extracted:
+#
+TAGS       = 5.2.5
+
+suffix     = tar.xz
+git_repo   = .git_clone
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(repo_name)-, $(TAGS)))
+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)
+	@touch $@
+
+$(tarballs): $(git_repo)
+	@for tag in $(TAGS) ; do \
+	  version=`echo $$tag` ; \
+	  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/ v$$tag | \
+	      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/l/boost/Makefile b/packages/l/boost/Makefile
new file mode 100644
index 0000000..fc2622e
--- /dev/null
+++ b/packages/l/boost/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+# https://www.boost.org
+# https://www.boost.org/users/history/version_1_57_0.html
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/boost/boost
+#
+
+url         = https://downloads.sourceforge.net/project/boost/boost
+
+versions    = 1.57.0 1.58.0 1.59.0 1.60.0 1.61.0 1.77.0 1.78.0
+
+pkgname     = boost
+suffix      = tar.bz2
+
+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-]*\)\(.*\)\(.tar.bz2\)/\2/'` ; \
+	  archdir=$(pkgname)_`echo $$version | sed 's,\.,_,g'` ; \
+	  archive=$$archdir.$(suffix) ; \
+	  wget -N $(url)/$$version/$$archive ; \
+	  tar xjf $$archive ; \
+	  rm -f $$archive ; \
+	  mv $$archdir $(pkgname)-$$version ; \
+	  tar cjf $$tarball $(pkgname)-$$version ; \
+	  rm -rf $(pkgname)-$$version ; \
+	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/l/botan/Makefile b/packages/l/botan/Makefile
new file mode 100644
index 0000000..334ab6a
--- /dev/null
+++ b/packages/l/botan/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://botan.randombit.net
+#
+# Downloads:
+# =========
+# https://botan.randombit.net/releases
+#
+
+url         = https://botan.randombit.net/releases
+
+versions    = 2.19.3
+
+pkgname     = Botan
+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)
diff --git a/packages/l/brotli/Makefile b/packages/l/brotli/Makefile
new file mode 100644
index 0000000..df26ede
--- /dev/null
+++ b/packages/l/brotli/Makefile
@@ -0,0 +1,59 @@
+#
+# Project Home:
+# ============
+#   https://github.com/google/brotli
+#
+# Clone:
+# =====
+#   https://github.com/google/brotli.git
+#
+
+url        = https://github.com/google
+
+repo_name  = brotli
+pkg_name   = brotli
+suffix     = tar.xz
+
+versions   = 1.0.9
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; do \
+	  tag=v`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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/cairo/Makefile b/packages/l/cairo/Makefile
new file mode 100644
index 0000000..47388da
--- /dev/null
+++ b/packages/l/cairo/Makefile
@@ -0,0 +1,59 @@
+#
+# Project Home:
+# ============
+# http://cairographics.org
+#
+# Downloads:
+# =========
+# http://cairographics.org/download
+#
+
+url        = https://gitlab.freedesktop.org/cairo
+
+repo_name  = cairo
+pkg_name   = cairo
+suffix     = tar.xz
+
+versions   = 1.17.4 1.17.8
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; 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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/cracklib-words/Makefile b/packages/l/cracklib-words/Makefile
new file mode 100644
index 0000000..0fbacb5
--- /dev/null
+++ b/packages/l/cracklib-words/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://github.com/cracklib/cracklib
+#
+# Downloads:
+# =========
+# https://github.com/cracklib/cracklib/releases/download/v${VERSION}/cracklib-words-${VERSION}.gz
+#
+
+url         = https://github.com/cracklib/cracklib/releases/download
+
+versions    = 2.9.7
+
+pkgname     = cracklib-words
+suffix      = 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)/v$$version/$$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/l/cracklib/Makefile b/packages/l/cracklib/Makefile
new file mode 100644
index 0000000..43cb6a2
--- /dev/null
+++ b/packages/l/cracklib/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://github.com/cracklib/cracklib
+#
+# Downloads:
+# =========
+# https://github.com/cracklib/cracklib/releases/download/v${VERSION}/cracklib-${VERSION}.tar.gz
+#
+
+url         = https://github.com/cracklib/cracklib/releases/download
+
+versions    = 2.9.7
+
+pkgname     = cracklib
+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)/v$$version/$$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/l/dbus-glib/Makefile b/packages/l/dbus-glib/Makefile
new file mode 100644
index 0000000..1076f4e
--- /dev/null
+++ b/packages/l/dbus-glib/Makefile
@@ -0,0 +1,53 @@
+#
+# Project Home:
+# ============
+# https://www.freedesktop.org/wiki/Software/DBusBindings
+#
+# NOTE:
+# ====
+# This is deprecated library. New GLib applications should use the D-Bus
+# support built into GLib. See glib/gio library.
+#
+# Downloads:
+# =========
+# https://dbus.freedesktop.org/releases/dbus-glib
+#
+
+url         = https://dbus.freedesktop.org/releases/dbus-glib
+
+versions    = 0.100.2 0.102 0.106 0.110 0.112
+
+pkgname     = dbus-glib
+suffix      = tar.gz
+sign_suffix = asc
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+signatures  = $(addsuffix .$(sign_suffix), $(tarballs))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(signatures) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  wget -N $(url)/$$tarball ; \
+	done
+
+$(signatures): %.$(suffix).$(sign_suffix) : %.$(suffix)
+	@for signature in $@ ; do \
+	  echo -e "\n======= Downloading '$$signature' signature =======\n" ; \
+	  wget -N $(url)/$$signature ; \
+	  touch $$signature ; \
+	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) $(signatures) $(sha1s)
diff --git a/packages/l/dbus-python/Makefile b/packages/l/dbus-python/Makefile
new file mode 100644
index 0000000..8cde81d
--- /dev/null
+++ b/packages/l/dbus-python/Makefile
@@ -0,0 +1,49 @@
+#
+# Project Home:
+# ============
+# https://www.freedesktop.org/wiki/Software/DBusBindings
+#
+# Downloads:
+# =========
+# https://dbus.freedesktop.org/releases/dbus-python
+#
+
+url         = https://dbus.freedesktop.org/releases/dbus-python
+
+versions    = 1.2.0 1.2.4 1.2.12 1.2.16 1.2.18
+versions   += 1.3.2
+
+pkgname     = dbus-python
+suffix      = tar.gz
+sign_suffix = asc
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+signatures  = $(addsuffix .$(sign_suffix), $(tarballs))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(signatures) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  wget -N $(url)/$$tarball ; \
+	done
+
+$(signatures): %.$(suffix).$(sign_suffix) : %.$(suffix)
+	@for signature in $@ ; do \
+	  echo -e "\n======= Downloading '$$signature' signature =======\n" ; \
+	  wget -N $(url)/$$signature ; \
+	  touch $$signature ; \
+	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) $(signatures) $(sha1s)
diff --git a/packages/l/editline/Makefile b/packages/l/editline/Makefile
new file mode 100644
index 0000000..a67e7f9
--- /dev/null
+++ b/packages/l/editline/Makefile
@@ -0,0 +1,81 @@
+#
+# Project Home:
+# ============
+# https://github.com/troglobit/editline
+#
+# GitHub:
+# ======
+# https://github.com/troglobit/editline
+#
+# Clone:
+# =====
+# https://github.com/troglobit/editline.git
+#
+
+url        = https://github.com/troglobit
+
+repo_name  = editline
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 02cccd1e87b818cc0ac2ffab7b4bcc3e6cd9ba5a:1.17.0
+revisions += ecabef273ebf4193c5d6aff196de1c204169bc52:1.17.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 ; \
+	    autoreconf --warnings=portability -vifm ; \
+	    find . -type f -name .gitignore -print -exec rm -f {} \; ; \
+	    rm -rf autom4te.cache debian docs autogen.sh Make.os9 src/os9.? src/sysos9.c .travis.yml ; \
+	  ) ; \
+	  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/l/elfutils/Makefile b/packages/l/elfutils/Makefile
new file mode 100644
index 0000000..6c27387
--- /dev/null
+++ b/packages/l/elfutils/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://sourceware.org/elfutils/
+#
+# Downloads:
+# =========
+# https://sourceware.org/elfutils/ftp/${VERSION}
+#
+
+url         = https://sourceware.org/elfutils/ftp
+
+versions    = 0.160 0.165 0.182 0.187
+
+pkgname     = elfutils
+suffix      = tar.bz2
+
+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]*\)\([\.]tar.*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$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/l/enchant/Makefile b/packages/l/enchant/Makefile
new file mode 100644
index 0000000..f8b5072
--- /dev/null
+++ b/packages/l/enchant/Makefile
@@ -0,0 +1,42 @@
+#
+# Project Home:
+# ============
+#   https://abiword.github.io/enchant
+#
+# GitHub:
+# ======
+#   https://github.com/AbiWord/enchant
+#
+# Download:
+# ========
+#   https://github.com/AbiWord/enchant/releases/download/v2.3.2/enchant-2.3.2.tar.gz
+#
+
+url         = https://github.com/AbiWord/enchant/releases/download
+
+versions    = 2.3.2
+
+pkgname     = enchant
+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 \
+	  wget -N $(url)/v$$version/$(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/l/expat/Makefile b/packages/l/expat/Makefile
new file mode 100644
index 0000000..1ee9151
--- /dev/null
+++ b/packages/l/expat/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+# https://libexpat.github.io
+#
+# GitHub:
+# ======
+# https://github.com/libexpat/libexpat.git
+#
+# Downloads:
+# =========
+# https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.xz
+#
+
+url         = https://github.com/libexpat/libexpat/releases/download
+
+versions    = 2.2.9 2.2.10 2.5.0
+
+pkgname     = expat
+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 \
+	  version=R_`echo $$tarball | sed 's/\([a-zA-Z0-9-]*\)\([0-9][.0-9][.0-9]*\)\(\..*\)/\2/' | sed 's,\.,_,g'` ; \
+	  wget -N $(url)/$$version/$$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/l/fftw/Makefile b/packages/l/fftw/Makefile
new file mode 100644
index 0000000..c60e3fb
--- /dev/null
+++ b/packages/l/fftw/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.fftw.org
+#
+# Downloads:
+# =========
+# https://www.fftw.org/download.html
+#
+
+url         = https://www.fftw.org
+
+versions    = 3.3.5 3.3.10
+
+pkgname     = fftw
+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/l/freetype/Makefile b/packages/l/freetype/Makefile
new file mode 100644
index 0000000..73615cd
--- /dev/null
+++ b/packages/l/freetype/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://www.freetype.org
+# https://www.freetype.org/download.html
+#
+# Downloads:
+# =========
+# https://download.savannah.gnu.org/releases/freetype
+#
+
+url         = https://download.savannah.gnu.org/releases/freetype
+
+versions    = 2.10.4 2.11.1
+
+pkgname     = freetype
+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)
diff --git a/packages/l/fribidi/Makefile b/packages/l/fribidi/Makefile
new file mode 100644
index 0000000..24fc88a
--- /dev/null
+++ b/packages/l/fribidi/Makefile
@@ -0,0 +1,78 @@
+#
+# Project Home:
+# ============
+# https://github.com/fribidi/fribidi
+#
+# GitHub:
+# ======
+# https://github.com/fribidi/fribidi
+#
+# Clone:
+# =====
+# git clone https://github.com/fribidi/fribidi.git
+#
+
+url        = https://github.com/fribidi
+
+repo_name  = fribidi
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 6428d8469e536bcbb6e12c7b79ba6659371c435a:1.0.12
+
+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 ; \
+	    rm -rf .ci .git* .indent.pro .travis.yml ; \
+	  ) ; \
+	  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/l/gamin/Makefile b/packages/l/gamin/Makefile
new file mode 100644
index 0000000..d18d2da
--- /dev/null
+++ b/packages/l/gamin/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://launchpad.net/gamin/main
+#
+# Downloads:
+# =========
+# https://launchpad.net/$pkgname/main/$pkgver/+download/$pkgname-$pkgver.tar.gz
+#
+
+url         = https://launchpad.net
+
+versions    = 0.1.10
+pkgname     = gamin
+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-Z0-9]*\)\([-]\)\([0-9]*[\.][0-9]*[\.][0-9]*\)\([\.].*\)/\3/'` ; \
+	  wget -N $(url)/$(pkgname)/main/$$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/l/gc/Makefile b/packages/l/gc/Makefile
new file mode 100644
index 0000000..e2feffd
--- /dev/null
+++ b/packages/l/gc/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.hboehm.info/gc
+#
+# Downloads:
+# =========
+# https://www.hboehm.info/gc/gc_source
+#
+
+url         = https://www.hboehm.info/gc/gc_source
+
+versions    = 7.2d 7.4.2 7.4.4 7.6.12 8.0.4 8.2.2
+
+pkgname     = gc
+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/l/giflib/Makefile b/packages/l/giflib/Makefile
new file mode 100644
index 0000000..81e4961
--- /dev/null
+++ b/packages/l/giflib/Makefile
@@ -0,0 +1,41 @@
+#
+# Project Home:
+# ============
+# https://giflib.sourceforge.net
+# https://sourceforge.net/projects/giflib
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/giflib
+# old: https://downloads.sourceforge.net/project/giflib/giflib-${MAJOR}.x
+#
+
+url         = https://downloads.sourceforge.net/project/giflib
+
+versions    = 5.1.0 5.1.2 5.1.3 5.2.1
+
+pkgname     = giflib
+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/l/graphene/Makefile b/packages/l/graphene/Makefile
new file mode 100644
index 0000000..14a05bb
--- /dev/null
+++ b/packages/l/graphene/Makefile
@@ -0,0 +1,59 @@
+#
+# Project Home:
+# ============
+#   https://ebassi.github.io/graphene
+#
+# Clone:
+# =====
+#   https://github.com/ebassi/graphene.git
+#
+
+url        = https://github.com/ebassi
+
+repo_name  = graphene
+pkg_name   = graphene
+suffix     = tar.xz
+
+versions   = 1.10.8
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; 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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/graphite2/Makefile b/packages/l/graphite2/Makefile
new file mode 100644
index 0000000..50d1c91
--- /dev/null
+++ b/packages/l/graphite2/Makefile
@@ -0,0 +1,59 @@
+#
+# Project Home:
+# ============
+#   https://graphite.sil.org
+#
+# Clone:
+# =====
+#   https://github.com/silnrsi/graphite.git
+#
+
+url        = https://github.com/silnrsi
+
+repo_name  = graphite
+pkg_name   = graphite2
+suffix     = tar.xz
+
+versions   = 1.3.14
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; 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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/harfbuzz/Makefile b/packages/l/harfbuzz/Makefile
new file mode 100644
index 0000000..3c6f690
--- /dev/null
+++ b/packages/l/harfbuzz/Makefile
@@ -0,0 +1,38 @@
+#
+# Project Home:
+# ============
+#   https://github.com/harfbuzz/harfbuzz
+#
+# Downloads:
+# =========
+#   https://github.com/harfbuzz/harfbuzz/releases/download/3.3.1/harfbuzz-3.3.1.tar.xz
+#
+
+url         = https://github.com/harfbuzz/harfbuzz/releases/download
+
+versions    = 3.3.1
+
+pkgname     = harfbuzz
+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 version in $(versions) ; do \
+	  wget -N $(url)/$${version}/harfbuzz-$${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/l/hdf5/1.10/Makefile b/packages/l/hdf5/1.10/Makefile
new file mode 100644
index 0000000..fec413b
--- /dev/null
+++ b/packages/l/hdf5/1.10/Makefile
@@ -0,0 +1,61 @@
+#
+# Project Home:
+# ============
+# https://support.hdfgroup.org/HDF5
+#
+# Downloads:
+# =========
+# https://support.hdfgroup.org/ftp/HDF5/releases
+#
+# Full Path:
+# =========
+# https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${SHORT_VERSION}/hdf5-${VERSION}${PATCH}/src/hdf5-${VERSION}${PATCH}.tar.bz2
+#
+
+url         = https://support.hdfgroup.org/ftp/HDF5/releases
+
+versions    = 1.10.0.1 1.10.1 1.10.10
+
+pkgname     = hdf5
+suffix      = tar.bz2
+
+short_versions = $(foreach ver, $(versions), $(shell echo $(ver) | cut -f1,2 -d'.'))
+full_versions  = $(foreach ver, $(versions), $(shell echo $(ver) | cut -f1,2 -d'.'))
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs |$(tarballs)|=======\n"
+	@for tarball in $(tarballs) ; do \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z0-9]*\)\([-]\)\([0-9]*[\.0-9]*\)\([\.]tar.*\)/\3/'` ; \
+	  short_version=`echo $$version | cut -f1,2 -d'.'` ; \
+	  full_version=`echo $$version | cut -f1,2,3 -d'.'` ; \
+	  echo "$$version : $$short_version : $$full_version" ; \
+	  if [ -n "`echo $$version | cut -f4 -d'.'`" ] ; then \
+	    patch="-patch`echo $$version | cut -f4 -d'.'`" ; \
+	    wget -N $(url)/$(pkgname)-$${short_version}/$(pkgname)-$${full_version}$${patch}/src/$(pkgname)-$${full_version}$${patch}.$(suffix) ; \
+	    tar xjf $(pkgname)-$${full_version}$${patch}.$(suffix) ; \
+	    mv $(pkgname)-$${full_version}$${patch} $(pkgname)-$$version ; \
+	    rm -rf $(pkgname)-$${full_version}$${patch} $(pkgname)-$${full_version}$${patch}.$(suffix) ; \
+	    tar cjf $$tarball $(pkgname)-$$version ; \
+	    rm -rf $(pkgname)-$$version ; \
+	  else \
+	    patch="" ; \
+	    wget -N $(url)/$(pkgname)-$${short_version}/$(pkgname)-$${full_version}/src/$(pkgname)-$${full_version}.$(suffix) ; \
+	  fi ; \
+	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/l/hdf5/1.14/Makefile b/packages/l/hdf5/1.14/Makefile
new file mode 100644
index 0000000..8c6dada
--- /dev/null
+++ b/packages/l/hdf5/1.14/Makefile
@@ -0,0 +1,61 @@
+#
+# Project Home:
+# ============
+# https://support.hdfgroup.org/HDF5
+#
+# Downloads:
+# =========
+# https://support.hdfgroup.org/ftp/HDF5/releases
+#
+# Full Path:
+# =========
+# https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${SHORT_VERSION}/hdf5-${VERSION}${PATCH}/src/hdf5-${VERSION}${PATCH}.tar.bz2
+#
+
+url         = https://support.hdfgroup.org/ftp/HDF5/releases
+
+versions    = 1.14.0
+
+pkgname     = hdf5
+suffix      = tar.bz2
+
+short_versions = $(foreach ver, $(versions), $(shell echo $(ver) | cut -f1,2 -d'.'))
+full_versions  = $(foreach ver, $(versions), $(shell echo $(ver) | cut -f1,2 -d'.'))
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs |$(tarballs)|=======\n"
+	@for tarball in $(tarballs) ; do \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z0-9]*\)\([-]\)\([0-9]*[\.0-9]*\)\([\.]tar.*\)/\3/'` ; \
+	  short_version=`echo $$version | cut -f1,2 -d'.'` ; \
+	  full_version=`echo $$version | cut -f1,2,3 -d'.'` ; \
+	  echo "$$version : $$short_version : $$full_version" ; \
+	  if [ -n "`echo $$version | cut -f4 -d'.'`" ] ; then \
+	    patch="-patch`echo $$version | cut -f4 -d'.'`" ; \
+	    wget -N $(url)/$(pkgname)-$${short_version}/$(pkgname)-$${full_version}$${patch}/src/$(pkgname)-$${full_version}$${patch}.$(suffix) ; \
+	    tar xjf $(pkgname)-$${full_version}$${patch}.$(suffix) ; \
+	    mv $(pkgname)-$${full_version}$${patch} $(pkgname)-$$version ; \
+	    rm -rf $(pkgname)-$${full_version}$${patch} $(pkgname)-$${full_version}$${patch}.$(suffix) ; \
+	    tar cjf $$tarball $(pkgname)-$$version ; \
+	    rm -rf $(pkgname)-$$version ; \
+	  else \
+	    patch="" ; \
+	    wget -N $(url)/$(pkgname)-$${short_version}/$(pkgname)-$${full_version}/src/$(pkgname)-$${full_version}.$(suffix) ; \
+	  fi ; \
+	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/l/hdf5/1.8/Makefile b/packages/l/hdf5/1.8/Makefile
new file mode 100644
index 0000000..c78eacc
--- /dev/null
+++ b/packages/l/hdf5/1.8/Makefile
@@ -0,0 +1,61 @@
+#
+# Project Home:
+# ============
+# https://support.hdfgroup.org/HDF5
+#
+# Downloads:
+# =========
+# https://support.hdfgroup.org/ftp/HDF5/releases
+#
+# Full Path:
+# =========
+# https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${SHORT_VERSION}/hdf5-${VERSION}${PATCH}/src/hdf5-${VERSION}${PATCH}.tar.bz2
+#
+
+url         = https://support.hdfgroup.org/ftp/HDF5/releases
+
+versions    = 1.8.17 1.8.23
+
+pkgname     = hdf5
+suffix      = tar.bz2
+
+short_versions = $(foreach ver, $(versions), $(shell echo $(ver) | cut -f1,2 -d'.'))
+full_versions  = $(foreach ver, $(versions), $(shell echo $(ver) | cut -f1,2 -d'.'))
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs |$(tarballs)|=======\n"
+	@for tarball in $(tarballs) ; do \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z0-9]*\)\([-]\)\([0-9]*[\.0-9]*\)\([\.]tar.*\)/\3/'` ; \
+	  short_version=`echo $$version | cut -f1,2 -d'.'` ; \
+	  full_version=`echo $$version | cut -f1,2,3 -d'.'` ; \
+	  echo "$$version : $$short_version : $$full_version" ; \
+	  if [ -n "`echo $$version | cut -f4 -d'.'`" ] ; then \
+	    patch="-patch`echo $$version | cut -f4 -d'.'`" ; \
+	    wget -N $(url)/$(pkgname)-$${short_version}/$(pkgname)-$${full_version}$${patch}/src/$(pkgname)-$${full_version}$${patch}.$(suffix) ; \
+	    tar xjf $(pkgname)-$${full_version}$${patch}.$(suffix) ; \
+	    mv $(pkgname)-$${full_version}$${patch} $(pkgname)-$$version ; \
+	    rm -rf $(pkgname)-$${full_version}$${patch} $(pkgname)-$${full_version}$${patch}.$(suffix) ; \
+	    tar cjf $$tarball $(pkgname)-$$version ; \
+	    rm -rf $(pkgname)-$$version ; \
+	  else \
+	    patch="" ; \
+	    wget -N $(url)/$(pkgname)-$${short_version}/$(pkgname)-$${full_version}/src/$(pkgname)-$${full_version}.$(suffix) ; \
+	  fi ; \
+	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/l/hdf5/Makefile b/packages/l/hdf5/Makefile
new file mode 100644
index 0000000..8b23379
--- /dev/null
+++ b/packages/l/hdf5/Makefile
@@ -0,0 +1,26 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := 1.8  \
+           1.10 \
+           1.14
+
+
+all-recursive downloads_clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  local_target="$$target"; \
+	  (cd $$subdir && $(MAKE) $$fnord $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; test -z "$$fail"
+
+all: all-recursive
+
+downloads_clean: downloads_clean-recursive
+
+.PHONY: all-recursive downloads_clean-recursive all downloads_clean
diff --git a/packages/l/hidapi/Makefile b/packages/l/hidapi/Makefile
new file mode 100644
index 0000000..db378cc
--- /dev/null
+++ b/packages/l/hidapi/Makefile
@@ -0,0 +1,73 @@
+#
+# Project Home:
+# ============
+# https://github.com/libusb/hidapi
+#
+# GitHub:
+# ======
+# https://github.com/libusb/hidapi.git
+#
+#
+
+url        = https://github.com/libusb
+
+repo_name  = hidapi
+pkg_name   = hidapi
+
+#
+# List of tags to be extracted (git rev-list -n 1 hidapi-0.13.1):
+# ==============================================================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 4ebce6b5059b086d05ca7e091ce04a5fd08ac3ac:0.13.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 $(pkg_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) ) ; \
+	  tar xJf $(pkg_name)-$$version.$(suffix) ; \
+	  ( cd $(pkg_name)-$$version ; ./bootstrap ; rm -rf autom4te.cache .git* *~ ) ; \
+	  tar cJf $(pkg_name)-$$version.$(suffix) $(pkg_name)-$$version ; \
+	  rm -rf $(pkg_name)-$$version ; \
+	  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/l/hwids/Makefile b/packages/l/hwids/Makefile
new file mode 100644
index 0000000..10b16a4
--- /dev/null
+++ b/packages/l/hwids/Makefile
@@ -0,0 +1,80 @@
+#
+# Project Home:
+# ============
+# https://standards.ieee.org/products-services/regauth/oui/index.html
+#
+# Downloads:
+# =========
+# https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries :
+# -----------------------------------------------------------------------------
+# 1. MAC Address Block Large  (MA-L) :  http://standards-oui.ieee.org/oui/oui.txt
+# 2. MAC Address Block Medium (MA-M) :  http://standards-oui.ieee.org/oui28/mam.txt
+# 3. MAC Address Block Small  (MA-S) :  http://standards-oui.ieee.org/oui36/oui36.txt
+# 4. Company ID                      :  http://standards-oui.ieee.org/cid/cid.txt
+# 5. Ethertype                       :  http://standards-oui.ieee.org/ethertype/eth.txt
+# 6. ManufacturerID                  :  http://standards-oui.ieee.org/manid/manid.txt
+# 7. IEEE 802.16 Operator ID         :  http://standards-oui.ieee.org/bopid/opid.txt
+# 8. IAB                             :  http://standards-oui.ieee.org/iab/iab.txt
+#
+
+PCI   ?= no
+USB   ?= no
+MAC   ?= yes
+CID   ?= no
+ETH   ?= no
+IAB   ?= no
+MANID ?= no
+OPID  ?= no
+SDIO  ?= yes
+
+DATA_FILES-yes       =
+DATA_FILES-$(PCI)   += pci.ids
+DATA_FILES-$(USB)   += usb.ids
+DATA_FILES-$(MAC)   += ma-large.txt ma-medium.txt ma-small.txt
+DATA_FILES-$(CID)   += cid.txt
+DATA_FILES-$(ETH)   += eth.txt
+DATA_FILES-$(IAB)   += iab.txt
+DATA_FILES-$(MANID) += manid.txt
+DATA_FILES-$(OPID)  += opid.txt
+DATA_FILES-$(SDIO)  += sdio.ids
+
+SYSTEMD_SOURCE = https://github.com/systemd/systemd/raw/main/hwdb.d
+
+
+version     = $(shell echo `date +%Y%m%d`)
+pkgname     = hwids
+suffix      = tar.xz
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(version)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarball):
+	@echo -e "\n======= Downloading source files =======\n"
+	@mkdir src
+	@( cd src ; \
+	   wget -N https://pci-ids.ucw.cz/v2.2/pci.ids             ; \
+	   wget -N http://www.linux-usb.org/usb.ids                ; \
+	   wget -N -O ma-large.txt http://standards-oui.ieee.org/oui/oui.txt     ; \
+	   wget -N -O ma-medium.txt http://standards-oui.ieee.org/oui28/mam.txt  ; \
+	   wget -N -O ma-small.txt http://standards-oui.ieee.org/oui36/oui36.txt ; \
+	   wget -N http://standards-oui.ieee.org/cid/cid.txt       ; \
+	   wget -N http://standards-oui.ieee.org/ethertype/eth.txt ; \
+	   wget -N http://standards-oui.ieee.org/manid/manid.txt   ; \
+	   wget -N http://standards-oui.ieee.org/bopid/opid.txt    ; \
+	   wget -N http://standards-oui.ieee.org/iab/iab.txt       ; \
+	   wget -N $(SYSTEMD_SOURCE)/sdio.ids                      ; \
+	   tar cJvf ../$(tarball) $(DATA_FILES-yes) ; \
+	 )
+	@rm -rf src
+
+$(sha1s): $(tarball)
+	@echo -e "\n======= Calculation the '$(tarball)' sha1sum =======\n"
+	@sha1sum --binary $(tarball) > $(tarball).sha1sum ; \
+
+downloads_clean:
+	@rm -rf $(pkgname)-*$(suffix) $(pkgname)-*$(suffix).sha1sum
diff --git a/packages/l/hwloc/Makefile b/packages/l/hwloc/Makefile
new file mode 100644
index 0000000..c6df7ce
--- /dev/null
+++ b/packages/l/hwloc/Makefile
@@ -0,0 +1,63 @@
+#
+# Project Home:
+# ============
+# http://www.open-mpi.org/projects/hwloc
+#
+# GitHub:
+# ======
+# https://github.com/open-mpi/hwloc.git
+#
+
+url        = https://github.com/open-mpi
+
+repo_name  = hwloc
+pkg_name   = hwloc
+suffix     = tar.xz
+
+versions   = 2.8.0
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; do \
+	  tag=hwloc-`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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	    tar xJf $(pkg_name)-$$version.$(suffix) ; \
+	    ( cd $(pkg_name)-$$version ; ./autogen.sh ; rm -rf autom4te.cache .git* configure.orig ) ; \
+	    tar cJf $(pkg_name)-$$version.$(suffix) $(pkg_name)-$$version ; \
+	    rm -rf $(pkg_name)-$$version ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/icu4c/Makefile b/packages/l/icu4c/Makefile
new file mode 100644
index 0000000..baa75f4
--- /dev/null
+++ b/packages/l/icu4c/Makefile
@@ -0,0 +1,77 @@
+#
+# Project Home:
+# ============
+# http://site.icu-project.org
+#
+# ICU Documentation:
+# =================
+# http://icu-project.org/apiref/icu4c
+#
+# Clone:
+# =====
+# git clone https://github.com/unicode-org/icu.git
+#
+
+url        = https://github.com/unicode-org
+
+repo_name  = icu
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = fd123bf023882f07bfacf51c39111be2f946d8f8:65.1
+revisions += 84e1f26ea77152936e70d53178a816dbfbf69989:68.2
+
+git_repo   = .git_clone
+
+suffix     = tar.xz
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2 -d ':'))
+
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(repo_name)4c-, $(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 ; \
+	    mv $(repo_name)4c $(repo_name)4c-$$version ; \
+	    tar cJvf ../$(repo_name)4c-$$version.$(suffix) $(repo_name)4c-$$version ) ; \
+	  rm -rf $(repo_name)-$$version  $(repo_name)-$$version.$(suffix) ; \
+	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/l/ieee1394/Makefile b/packages/l/ieee1394/Makefile
new file mode 100644
index 0000000..40bfd8a
--- /dev/null
+++ b/packages/l/ieee1394/Makefile
@@ -0,0 +1,26 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := libavc1394  \
+           libiec61883 \
+           libraw1394
+
+
+all-recursive downloads_clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  local_target="$$target"; \
+	  (cd $$subdir && $(MAKE) $$fnord $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; test -z "$$fail"
+
+all: all-recursive
+
+downloads_clean: downloads_clean-recursive
+
+.PHONY: all-recursive downloads_clean-recursive all downloads_clean
diff --git a/packages/l/ieee1394/libavc1394/Makefile b/packages/l/ieee1394/libavc1394/Makefile
new file mode 100644
index 0000000..c8b7233
--- /dev/null
+++ b/packages/l/ieee1394/libavc1394/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://sourceforge.net/projects/libavc1394
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/libavc1394/libavc1394/${VERSION}/libavc1394-${VERSION}.tar.gz
+# https://downloads.sourceforge.net/project/libavc1394/libavc1394/libavc1394-0.5.4.tar.gz
+#
+
+url         = https://downloads.sourceforge.net/project/libavc1394/libavc1394
+
+versions    = 0.5.4
+
+pkgname     = libavc1394
+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/l/ieee1394/libiec61883/Makefile b/packages/l/ieee1394/libiec61883/Makefile
new file mode 100644
index 0000000..6faf77d
--- /dev/null
+++ b/packages/l/ieee1394/libiec61883/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://ieee1394.wiki.kernel.org/index.php/Main_Page
+#
+# Downloads:
+# =========
+# https://www.kernel.org/pub/linux/libs/ieee1394
+#
+
+url         = https://www.kernel.org/pub/linux/libs/ieee1394
+
+versions    = 1.2.0
+
+pkgname     = libiec61883
+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)
diff --git a/packages/l/ieee1394/libraw1394/Makefile b/packages/l/ieee1394/libraw1394/Makefile
new file mode 100644
index 0000000..b5d8c52
--- /dev/null
+++ b/packages/l/ieee1394/libraw1394/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://ieee1394.wiki.kernel.org/index.php/Main_Page
+#
+# Downloads:
+# =========
+# https://www.kernel.org/pub/linux/libs/ieee1394
+#
+
+url         = https://www.kernel.org/pub/linux/libs/ieee1394
+
+versions    = 2.1.0 2.1.1 2.1.2
+
+pkgname     = libraw1394
+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)
diff --git a/packages/l/ijs/Makefile b/packages/l/ijs/Makefile
new file mode 100644
index 0000000..1b30448
--- /dev/null
+++ b/packages/l/ijs/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://www.openprinting.org/download/ijs
+#
+# Downloads:
+# =========
+# https://www.openprinting.org/download/ijs/download
+#
+
+url         = https://www.openprinting.org/download/ijs/download
+
+versions    = 0.35
+
+pkgname     = ijs
+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/l/imlib/Makefile b/packages/l/imlib/Makefile
new file mode 100644
index 0000000..18417ab
--- /dev/null
+++ b/packages/l/imlib/Makefile
@@ -0,0 +1,49 @@
+#
+# Project Home:
+# ============
+# http://www.gnome.org
+#
+# Repository browse: https://git.gnome.org/browse/archive/imlib
+#
+# Downloads:
+# =========
+# ftp://ftp.gnome.org/pub/GNOME/sources
+# https://download.gnome.org/sources
+#
+
+url       = https://download.gnome.org/sources
+
+versions  = 1.9.15
+
+pkg_name  = imlib
+arch_type = tar.bz2
+suffixes  = $(arch_type)
+
+files     = $(foreach suffix, $(suffixes), $(addsuffix .$(suffix), $(addprefix $(pkg_name)-, $(versions))))
+
+tarballs  = $(addsuffix .$(arch_type), $(addprefix $(pkg_name)-, $(versions)))
+sha1s     = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(files) $(sha1s)
+
+
+.PHONY: downloads_clean
+
+$(files):
+	@echo -e "\n======= Downloading '$(pkg_name)' sourses =======\n"
+	@for version in $(versions) ; do \
+	  major_minor=`echo $$version | sed 's/\([0-9][.0-9][0-9]*\)\([\.].*\)/\1/'` ; \
+	  for suffix in $(suffixes) ; do \
+	    wget -N $(url)/$(pkg_name)/$$major_minor/$(pkg_name)-$$version.$$suffix ;  \
+	  done ; \
+	done
+
+$(sha1s): %.$(arch_type).sha1sum : %.$(arch_type)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======\n" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+downloads_clean:
+	@rm -f $(files) $(sha1s)
diff --git a/packages/l/imlib2/Makefile b/packages/l/imlib2/Makefile
new file mode 100644
index 0000000..80d9437
--- /dev/null
+++ b/packages/l/imlib2/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://sourceforge.net/projects/enlightenment
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/enlightenment/imlib2-src/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/enlightenment/imlib2-src
+
+versions    = 1.11.0
+
+pkgname     = imlib2
+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 \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z0-9-]*\)\([0-9][.0-9]*[.0-9]*\)\(\.tar.*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$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/l/imlib2_loaders/Makefile b/packages/l/imlib2_loaders/Makefile
new file mode 100644
index 0000000..0032e23
--- /dev/null
+++ b/packages/l/imlib2_loaders/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://sourceforge.net/projects/enlightenment
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/enlightenment/imlib2-src/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/enlightenment/imlib2-src
+
+versions    = 1.11.0
+
+pkgname     = imlib2_loaders
+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 \
+	  version=`echo $$tarball | sed 's/\([_a-zA-Z0-9-]*\)\([0-9][.0-9]*[.0-9]*\)\(\.tar.*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$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/l/isl/Makefile b/packages/l/isl/Makefile
new file mode 100644
index 0000000..0c650ec
--- /dev/null
+++ b/packages/l/isl/Makefile
@@ -0,0 +1,38 @@
+#
+# Project Home:
+# ============
+# http://freecode.com/projects/isl
+# http://isl.gforge.inria.fr/
+#
+# Downloads:
+# =========
+# http://isl.gforge.inria.fr/
+# https://libisl.sourceforge.io/
+#
+
+url         = https://libisl.sourceforge.io
+
+versions    = 0.15 0.16 0.16.1 0.17 0.17.1 0.18 0.19 0.20 0.22 0.22.1 0.23 0.24 0.25
+
+tarballs    = $(addsuffix .tar.xz, $(addprefix isl-, $(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): %.tar.xz.sha1sum : %.tar.xz
+	@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/l/isl/isl-description.txt b/packages/l/isl/isl-description.txt
new file mode 100644
index 0000000..00be865
--- /dev/null
+++ b/packages/l/isl/isl-description.txt
@@ -0,0 +1,15 @@
+
+http://freecode.com/projects/isl
+================================
+
+isl is a library for manipulating sets and relations of integer points bounded by linear constraints.
+Supported operations on sets include intersection, union, set difference, emptiness check, convex hull,
+(integer) affine hull, integer projection, and computing the lexicographic minimum using parametric
+integer programming. It also includes an ILP solver based on generalized basis reduction and operations
+geared towards polyhedral compilation such as dependence analysis, scheduling, and AST generation.
+
+Download
+========
+
+  http://isl.gforge.inria.fr/
+  https://libisl.sourceforge.io/
diff --git a/packages/l/isl/manual.pdf b/packages/l/isl/manual.pdf
new file mode 100644
index 0000000..9ff0d51
Binary files /dev/null and b/packages/l/isl/manual.pdf differ
diff --git a/packages/l/isl/tutorial.pdf b/packages/l/isl/tutorial.pdf
new file mode 100644
index 0000000..149d25d
Binary files /dev/null and b/packages/l/isl/tutorial.pdf differ
diff --git a/packages/l/iso-codes/Makefile b/packages/l/iso-codes/Makefile
new file mode 100644
index 0000000..563a818
--- /dev/null
+++ b/packages/l/iso-codes/Makefile
@@ -0,0 +1,63 @@
+#
+# Project Home:
+# ============
+# https://salsa.debian.org/iso-codes-team/iso-codes
+#
+# GitLab:
+# ======
+# https://salsa.debian.org/iso-codes-team/iso-codes
+#
+# Clone:
+# =====
+# git clone https://salsa.debian.org/iso-codes-team/iso-codes.git
+#
+
+url        = https://salsa.debian.org/iso-codes-team
+
+repo_name  = iso-codes
+pkg_name   = iso-codes
+suffix     = tar.xz
+
+versions   = 4.13.0
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; do \
+	  tag=v`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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/jansson/Makefile b/packages/l/jansson/Makefile
new file mode 100644
index 0000000..15cfd49
--- /dev/null
+++ b/packages/l/jansson/Makefile
@@ -0,0 +1,74 @@
+#
+# Project Home:
+# ============
+# https://digip.org/jansson
+#
+# GitHub:
+# ======
+# https://github.com/akheron/jansson
+#
+#
+
+url        = https://github.com/akheron
+
+repo_name  = jansson
+pkg_name   = jansson
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = e9ebfa7e77a6bee77df44e096b100e7131044059:2.13.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 $(pkg_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 ; \
+	  tar xJf $(pkg_name)-$$version.$(suffix) ; \
+	  ( cd $(pkg_name)-$$version ; \
+	    autoreconf -vif ; rm -rf autom4te.cache .clang-format .gitignore .travis.yml ) ; \
+	  tar cJf $(pkg_name)-$$version.$(suffix) $(pkg_name)-$$version ; \
+	  rm -rf $(pkg_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/l/jbig2dec/Makefile b/packages/l/jbig2dec/Makefile
new file mode 100644
index 0000000..d54b330
--- /dev/null
+++ b/packages/l/jbig2dec/Makefile
@@ -0,0 +1,82 @@
+#
+# Project Home:
+# ============
+# https://jbig2dec.com
+#
+# Download:
+# ========
+# https://ghostscript.com/releases
+#
+# Git:
+# ===
+# http://git.ghostscript.com
+#
+# Clone:
+# =====
+# git clone git://git.ghostscript.com/jbig2dec.git
+# git clone http://git.ghostscript.com/jbig2dec.git
+#
+
+url        = git://git.ghostscript.com
+
+repo_name  = jbig2dec
+pkg_name   = jbig2dec
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 1c336b8ab44524dc56ea837e2211ff4207704cdd:0.19
+
+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 $(pkg_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 ; \
+	  tar xJf $(pkg_name)-$$version.$(suffix) ; \
+	  ( cd $(pkg_name)-$$version ; \
+	    ./autogen.sh ; make distclean ; rm -rf autom4te.cache .deps .git* ) ; \
+	  tar cJf $(pkg_name)-$$version.$(suffix) $(pkg_name)-$$version ; \
+	  rm -rf $(pkg_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/l/jemalloc/Makefile b/packages/l/jemalloc/Makefile
new file mode 100644
index 0000000..fda1cbf
--- /dev/null
+++ b/packages/l/jemalloc/Makefile
@@ -0,0 +1,61 @@
+#
+# Project Home:
+# ============
+# https://github.com/jemalloc/jemalloc
+#
+# Downloads:
+# =========
+# https://github.com/jemalloc/jemalloc.git
+#
+
+url         = https://github.com/jemalloc/jemalloc.git
+
+repo_name   = jemalloc
+
+versions    = 5.2.1
+
+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)
+	@git clone $(url) $(repo_name)
+	@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 ; \
+	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/l/json-c/Makefile b/packages/l/json-c/Makefile
new file mode 100644
index 0000000..563b82b
--- /dev/null
+++ b/packages/l/json-c/Makefile
@@ -0,0 +1,50 @@
+#
+# Project Home:
+# ============
+# http://www.json.org
+# https://github.com/json-c/json-c/wiki
+# https://github.com/json-c/json-c
+#
+# Releases:
+# https://github.com/json-c/json-c/releases
+#
+# Downloads:
+# =========
+# https://github.com/json-c/json-c/archive
+#
+
+url         = https://github.com/json-c/json-c/archive/refs/tags
+
+versions    = 0.11-20130402 0.12-20140410 0.13.1-20180305 0.15-20200726
+
+pkgname     = json-c
+suffix      = tar.gz
+
+tarballs    = $(foreach v,$(versions),$(addsuffix .$(suffix),$(addprefix $(pkgname)-,$(shell echo $(v) | cut -f 1 -d '-'))))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(signatures) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for version in $(versions) ; do \
+	  v=`echo $$version | cut -f 1 -d '-'` ; \
+	  wget -N $(url)/$(pkgname)-$${version}.$(suffix) ; \
+	  tar xzf $(pkgname)-$${version}.$(suffix) ; \
+	  rm -f $(pkgname)-$${version}.$(suffix) ; \
+	  mv $(pkgname)-$(pkgname)-$${version} $(pkgname)-$$v ; \
+	  tar czf $(pkgname)-$$v.$(suffix) $(pkgname)-$$v ; \
+	  rm -rf $(pkgname)-$$v ; \
+	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/l/judy/Makefile b/packages/l/judy/Makefile
new file mode 100644
index 0000000..8d97ecc
--- /dev/null
+++ b/packages/l/judy/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+# https://judy.sourceforge.net
+# https://judy.sourceforge.net/doc/Judy_3x.htm
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/judy
+#
+
+url         = https://downloads.sourceforge.net/judy
+
+versions    = 1.0.5
+
+pkgname     = judy
+tgzname     = Judy
+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-Z0-9-]*\)\([0-9][.0-9][.0-9]*\)\(\..*\)/\2/'` ; \
+	  wget -N $(url)/$(tgzname)-$$version.$(suffix) ; \
+	  tar xzf $(tgzname)-$$version.$(suffix) ; \
+	  ( cd $(pkgname)-$$version ; \
+	    rm -rf autom4te.cache ; \
+	  ) ; \
+	  tar czf $(pkgname)-$$version.$(suffix) $(pkgname)-$$version ; \
+	  rm -rf $(pkgname)-$$version $(tgzname)-$$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/l/keyutils/Makefile b/packages/l/keyutils/Makefile
new file mode 100644
index 0000000..17e6910
--- /dev/null
+++ b/packages/l/keyutils/Makefile
@@ -0,0 +1,63 @@
+#
+# Project Home:
+# ============
+# http://people.redhat.com/~dhowells/keyutils
+#
+# Downloads:
+# =========
+# http://people.redhat.com/~dhowells/keyutils
+#
+
+url         = https://git.kernel.org/pub/scm/linux/kernel/git/dhowells
+
+repo_name  = keyutils
+
+versions   = 1.6.1 1.6.3
+
+suffix     = tar.xz
+#
+# List of tags to be extracted:
+#
+TAGS       = $(addprefix v, $(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)
+	@git clone $(url)/$(repo_name).git $(repo_name)
+	@touch $@
+
+$(tarballs): $(git_repo)
+	@for version in $(versions) ; do \
+	  tag=v`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 ; \
+	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/l/lcms2/Makefile b/packages/l/lcms2/Makefile
new file mode 100644
index 0000000..888124b
--- /dev/null
+++ b/packages/l/lcms2/Makefile
@@ -0,0 +1,73 @@
+#
+# Project Home:
+# ============
+# https://www.littlecms.com
+#
+# GitHub:
+# ======
+# https://github.com/mm2/Little-CMS
+#
+# Clone:
+# =====
+# git clone https://github.com/mm2/Little-CMS.git
+#
+#
+
+url        = https://github.com/mm2
+
+repo_name  = Little-CMS
+pkg_name   = lcms2
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = e88d9bcad79b7ebf6b97ebd634af31ed23c1b910:2.14
+
+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 $(pkg_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/l/liba52/Makefile b/packages/l/liba52/Makefile
new file mode 100644
index 0000000..bd781ec
--- /dev/null
+++ b/packages/l/liba52/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://liba52.sourceforge.net
+#
+# Downloads:
+# =========
+# https://liba52.sourceforge.net/downloads.html
+#
+
+url         = https://liba52.sourceforge.net/files
+
+
+versions    = 0.7.3 0.7.4
+
+pkgname     = a52dec
+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/l/libaio/Makefile b/packages/l/libaio/Makefile
new file mode 100644
index 0000000..e0979ce
--- /dev/null
+++ b/packages/l/libaio/Makefile
@@ -0,0 +1,44 @@
+#
+# Project Home:
+# ============
+#   https://pagure.io/libaio
+#
+# Clone:
+# =====
+#   git clone https://pagure.io/libaio.git
+#
+# Releases:
+# ========
+#   https://releases.pagure.org/libaio
+#
+
+url         = https://releases.pagure.org/libaio
+
+
+versions    = 0.3.110 0.3.111 0.3.112
+
+pkgname     = libaio
+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/l/libarchive/Makefile b/packages/l/libarchive/Makefile
new file mode 100644
index 0000000..f15fc78
--- /dev/null
+++ b/packages/l/libarchive/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://libarchive.org
+#
+# Downloads:
+# =========
+# https://libarchive.org/downloads
+#
+
+url         = https://libarchive.org/downloads
+
+versions    = 3.5.2 3.6.2
+
+pkgname     = libarchive
+suffix      = tar.xz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(signatures) $(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/l/libasyncns/Makefile b/packages/l/libasyncns/Makefile
new file mode 100644
index 0000000..deb14ef
--- /dev/null
+++ b/packages/l/libasyncns/Makefile
@@ -0,0 +1,78 @@
+#
+# Project Home:
+# ============
+# http://0pointer.de/lennart/projects/libasyncns
+#
+# Cgit:
+# ====
+# http://git.0pointer.net/libasyncns.git
+#
+# Downloads:
+# =========
+# http://0pointer.de/lennart/projects/libasyncns
+#
+
+url        = http://git.0pointer.net
+
+repo_name  = libasyncns
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 68cd5aff1467638c086f1bedcc750e34917168e4:0.8
+
+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 ; \
+	    ./bootstrap.sh ; make distclean ; \
+	    rm -rf autom4te.cache common .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/l/libatomic_ops/Makefile b/packages/l/libatomic_ops/Makefile
new file mode 100644
index 0000000..2220652
--- /dev/null
+++ b/packages/l/libatomic_ops/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# http://www.hboehm.info/gc
+# https://github.com/ivmai/libatomic_ops/wiki/Download
+#
+# Downloads:
+# =========
+# http://www.ivmaisoft.com/_bin/atomic_ops
+#
+
+url         = http://www.ivmaisoft.com/_bin/atomic_ops
+
+versions    = 7.4.2 7.4.14 7.6.10
+
+pkgname     = libatomic_ops
+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/l/libbsd/Makefile b/packages/l/libbsd/Makefile
new file mode 100644
index 0000000..2f7047a
--- /dev/null
+++ b/packages/l/libbsd/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://libbsd.freedesktop.org/releases
+#
+# Downloads:
+# =========
+#   https://libbsd.freedesktop.org/releases
+#
+
+url         = https://libbsd.freedesktop.org/releases
+
+versions    = 0.11.4 0.11.7
+
+pkgname     = libbsd
+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 version in $(versions) ; do \
+	  wget -N $(url)/$(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/l/libcaca/Makefile b/packages/l/libcaca/Makefile
new file mode 100644
index 0000000..5fafd19
--- /dev/null
+++ b/packages/l/libcaca/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# http://caca.zoy.org/wiki/libcaca
+#
+# Downloads:
+# =========
+# http://libcaca.zoy.org/files/libcaca
+#
+
+url         = http://libcaca.zoy.org/files/libcaca
+
+versions    = 0.99.beta18 0.99.beta19
+
+pkgname     = libcaca
+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/l/libcap-ng/Makefile b/packages/l/libcap-ng/Makefile
new file mode 100644
index 0000000..cd8cd2a
--- /dev/null
+++ b/packages/l/libcap-ng/Makefile
@@ -0,0 +1,76 @@
+#
+# Project Home:
+# ============
+# https://people.redhat.com/sgrubb/libcap-ng
+#
+# GitHub:
+# ======
+# https://github.com/stevegrubb/libcap-ng
+#
+# Clone:
+# =====
+# https://github.com/stevegrubb/libcap-ng.git
+#
+
+url        = https://github.com/stevegrubb
+
+repo_name  = libcap-ng
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = daaf0ad855e80b2ecf806ea4946817bfe6df2be4:0.7.10
+revisions += d567fd5099ef7c157f8a1864bf77a3ae9a259232:0.8.2
+
+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 ; rm -rf autom4te.cache ) ; \
+	  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/l/libcap/Makefile b/packages/l/libcap/Makefile
new file mode 100644
index 0000000..ea37f4b
--- /dev/null
+++ b/packages/l/libcap/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://sites.google.com/site/fullycapable
+#
+# Downloads:
+# =========
+# https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2
+#
+
+url         = https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2
+
+versions    = 2.22 2.24 2.25 2.27 2.48
+
+pkgname     = libcap
+suffix      = tar.xz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(signatures) $(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/l/libdaemon/Makefile b/packages/l/libdaemon/Makefile
new file mode 100644
index 0000000..9ed52a2
--- /dev/null
+++ b/packages/l/libdaemon/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# http://0pointer.de/lennart/projects/libdaemon
+#
+# Downloads:
+# =========
+# ftp://ftp.isc.org/isc/dhcp/$(VERSION)
+#
+
+url         = http://0pointer.de/lennart/projects/libdaemon
+
+versions    = 0.14
+
+pkgname     = libdaemon
+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 \
+	  wget -N $(url)/$(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/l/libdatrie/Makefile b/packages/l/libdatrie/Makefile
new file mode 100644
index 0000000..88fd865
--- /dev/null
+++ b/packages/l/libdatrie/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://linux.thai.net/projects/datrie
+#
+# Downloads:
+# =========
+# ftp://linux.thai.net/pub/ThaiLinux/software/libthai
+# https://linux.thai.net/pub/thailinux/software/libthai
+#
+
+url         = https://linux.thai.net/pub/thailinux/software/libthai
+
+versions    = 0.2.8 0.2.10 0.2.13
+
+pkgname     = libdatrie
+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)
diff --git a/packages/l/libedit/Makefile b/packages/l/libedit/Makefile
new file mode 100644
index 0000000..12bd9bb
--- /dev/null
+++ b/packages/l/libedit/Makefile
@@ -0,0 +1,35 @@
+#
+# Project Home:
+# ============
+#   https://thrysoee.dk/editline
+#
+
+url         = https://thrysoee.dk/editline
+
+versions    = 20191025-3.1 20191231-3.1
+
+pkgname     = libedit
+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/l/libevent/Makefile b/packages/l/libevent/Makefile
new file mode 100644
index 0000000..14706b0
--- /dev/null
+++ b/packages/l/libevent/Makefile
@@ -0,0 +1,41 @@
+#
+# Project Home:
+# ============
+# http://libevent.org
+#
+# Downloads:
+# =========
+# https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
+# https://github.com/libevent/libevent/releases/download/release-${VERSION}-stable/libevent-${VERSION}-stable.tar.gz
+#
+
+url         = https://github.com/libevent/libevent/releases/download
+
+versions    = 2.0.22-stable 2.1.11-stable 2.1.12-stable
+
+pkgname     = libevent
+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]*[\-][a-z]*\)\([\.].*\)/\2/'` ; \
+	  wget -N $(url)/release-$$version/$$tarball ; \
+	done
+
+$(sha1s): %.tar.gz.sha1sum : %.tar.gz
+	@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/l/libffi/Makefile b/packages/l/libffi/Makefile
new file mode 100644
index 0000000..f973021
--- /dev/null
+++ b/packages/l/libffi/Makefile
@@ -0,0 +1,62 @@
+#
+# Project Home:
+# ============
+# https://github.com/libffi/libffi
+#
+# GitHub:
+# ======
+# https://github.com/libffi/libffi
+# https://github.com/libffi/libffi.git
+#
+
+url         = https://github.com/libffi
+
+repo_name   = libffi
+
+versions    = 3.4.2 3.4.4
+
+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)
+	@git clone $(url)/$(repo_name).git $(repo_name)
+	@touch $@
+
+
+$(tarballs): $(git_repo)
+	@for version in $(TAGS) ; do \
+	  tag=v`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 ; \
+	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/l/libgphoto2/Makefile b/packages/l/libgphoto2/Makefile
new file mode 100644
index 0000000..7e61ea3
--- /dev/null
+++ b/packages/l/libgphoto2/Makefile
@@ -0,0 +1,50 @@
+#
+# Project Home:
+# ============
+# https://www.gphoto.org
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/gphoto/libgphoto/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/gphoto/libgphoto
+
+versions    = 2.5.2 2.5.5 2.5.5.1 2.5.9
+
+pkgname     = libgphoto2
+suffix      = tar.bz2
+sign_suffix = asc
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+signatures  = $(addsuffix .$(sign_suffix), $(tarballs))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(signatures) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z0-9-]*\)\([0-9][.0-9]*[.0-9]*\)\(\..*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$tarball ; \
+	done
+
+$(signatures): %.$(suffix).$(sign_suffix) : %.$(suffix)
+	@for signature in $@ ; do \
+	  echo -e "\n======= Downloading '$$signature' signature =======\n" ; \
+	  version=`echo $$signature | sed 's/\([a-zA-Z0-9-]*\)\([0-9][.0-9]*[.0-9]*\)\(\..*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$signature ; \
+	  touch $$signature ; \
+	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) $(signatures) $(sha1s)
diff --git a/packages/l/libical/Makefile b/packages/l/libical/Makefile
new file mode 100644
index 0000000..f7f25d6
--- /dev/null
+++ b/packages/l/libical/Makefile
@@ -0,0 +1,73 @@
+#
+# Project Home:
+# ============
+# https://github.com/libical/libical
+#
+# GitHub:
+# ======
+# https://github.com/libical/libical
+#
+# Clone:
+# =====
+# https://github.com/libical/libical.git
+#
+
+url        = https://github.com/libical
+
+repo_name  = libical
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 6c4af23b0a95fd105f38e879908cbc80390f3716:2.0.0
+revisions += 0595c7d45ef5e75705f2d80e03e5310d9f78438c:3.0.6
+revisions += 56860913989f9787ba9b41df83b49fa2d68b9687:3.0.9
+
+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/l/libieee1284/Makefile b/packages/l/libieee1284/Makefile
new file mode 100644
index 0000000..5cce1d9
--- /dev/null
+++ b/packages/l/libieee1284/Makefile
@@ -0,0 +1,75 @@
+#
+# Project Home:
+# ============
+# http://cyberelk.net/tim/libieee1284
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/sourceforge/libieee1284/libieee1284-${VERSION}.tar.bz2
+#
+# GitHub:
+# ======
+# https://github.com/twaugh/libieee1284
+#
+# Clone:
+# =====
+# git clone https://github.com/twaugh/libieee1284.git
+#
+
+url        = https://github.com/twaugh
+
+repo_name  = libieee1284
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = b535ac9192ca1942bd2cbd05537cbfaeb0014145:0.2.11
+
+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/l/libiodbc/Makefile b/packages/l/libiodbc/Makefile
new file mode 100644
index 0000000..768b3ed
--- /dev/null
+++ b/packages/l/libiodbc/Makefile
@@ -0,0 +1,41 @@
+#
+# Project Home:
+# ============
+# https://iodbc.org
+# https://www.iodbc.org/dataspace/iodbc/wiki/iODBC
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/iodbc/iodbc/${VERSION}/libiodbc-${VERSION}.tar.gz
+#
+
+url         = https://downloads.sourceforge.net/project/iodbc/iodbc
+
+versions    = 3.52.9 3.52.10 3.52.14
+
+pkgname     = libiodbc
+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-]*\)\(.*\)\(.tar.gz\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$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/l/libjpeg-6a/Makefile b/packages/l/libjpeg-6a/Makefile
new file mode 100644
index 0000000..2373b9a
--- /dev/null
+++ b/packages/l/libjpeg-6a/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+# [ https://www.ibiblio.org/pub/Linux/libs/graphics ]
+#
+# Downloads:
+# =========
+# https://www.ibiblio.org/pub/Linux/libs/graphics
+#
+
+url         = https://www.ibiblio.org/pub/Linux/libs/graphics
+
+versions    = 6a
+
+pkgname     = libjpeg
+suffix      = tar.gz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+description = $(addsuffix .lsm, $(addprefix $(pkgname)-, $(versions)))
+
+files       = $(description)
+
+
+all: $(tarballs) $(files) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  wget -N $(url)/$$tarball ; \
+	done
+
+$(files): $(tarballs)
+	@echo -e "\n======= Downloading patch and description =======\n"
+	@for file in $(files) ; do \
+	  wget -N $(url)/$$file ; \
+	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) $(files) $(sha1s)
diff --git a/packages/l/libjpeg-turbo/Makefile b/packages/l/libjpeg-turbo/Makefile
new file mode 100644
index 0000000..cd812a2
--- /dev/null
+++ b/packages/l/libjpeg-turbo/Makefile
@@ -0,0 +1,70 @@
+#
+# Project Home:
+# ============
+#   https://libjpeg-turbo.org
+#
+#
+# GitHub:
+# ======
+#   https://github.com/libjpeg-turbo/libjpeg-turbo
+#
+
+url        = https://github.com/libjpeg-turbo/
+
+repo_name  = libjpeg-turbo
+pkg_name   = libjpeg-turbo
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = ecf021bc0d6f435daacff7c35ccaeef0145df1b9:2.1.2
+revisions += 6c610333497302c52ff36046f9ff72f0c3a6dc2e:2.1.91
+
+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 $(pkg_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/l/libjpeg/Makefile b/packages/l/libjpeg/Makefile
new file mode 100644
index 0000000..b191789
--- /dev/null
+++ b/packages/l/libjpeg/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://libjpeg.sourceforge.net
+#
+# Downloads:
+# =========
+# https://www.ijg.org/files
+#
+
+url         = https://www.ijg.org/files
+
+versions    = v8a v8b v8c v8d v9 v9a v9b v9c v9d v9e
+
+pkgname     = jpegsrc
+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/l/libmd/Makefile b/packages/l/libmd/Makefile
new file mode 100644
index 0000000..4490428
--- /dev/null
+++ b/packages/l/libmd/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://libbsd.freedesktop.org/releases
+#
+# Downloads:
+# =========
+#   https://libbsd.freedesktop.org/releases
+#
+
+url         = https://libbsd.freedesktop.org/releases
+
+versions    = 1.0.4
+
+pkgname     = libmd
+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 version in $(versions) ; do \
+	  wget -N $(url)/$(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/l/libmng/Makefile b/packages/l/libmng/Makefile
new file mode 100644
index 0000000..d002b4b
--- /dev/null
+++ b/packages/l/libmng/Makefile
@@ -0,0 +1,41 @@
+#
+# Project Home:
+# ============
+# https://libmng.com
+# https://sourceforge.net/projects/libmng
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/libmng/libmng-devel/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/libmng/libmng-devel
+
+versions    = 2.0.2 2.0.3
+
+pkgname     = libmng
+suffix      = tar.xz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(signatures) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z0-9-]*\)\([0-9][.0-9][.0-9]*\)\(\..*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$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/l/libpipeline/Makefile b/packages/l/libpipeline/Makefile
new file mode 100644
index 0000000..8779f65
--- /dev/null
+++ b/packages/l/libpipeline/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://libpipeline.nongnu.org
+# https://savannah.nongnu.org/projects/libpipeline
+#
+# Downloads:
+# =========
+# https://download.savannah.gnu.org/releases/libpipeline
+#
+
+url         = https://download.savannah.gnu.org/releases/libpipeline
+
+versions    = 1.3.1 1.4.0 1.4.1 1.5.4
+
+pkgname     = libpipeline
+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/l/libpng/Makefile b/packages/l/libpng/Makefile
new file mode 100644
index 0000000..1413b5f
--- /dev/null
+++ b/packages/l/libpng/Makefile
@@ -0,0 +1,27 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := libpng12 \
+           libpng14 \
+           libpng15 \
+           libpng16
+
+
+all-recursive downloads_clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  local_target="$$target"; \
+	  (cd $$subdir && $(MAKE) $$fnord $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; test -z "$$fail"
+
+all: all-recursive
+
+downloads_clean: downloads_clean-recursive
+
+.PHONY: all-recursive downloads_clean-recursive all downloads_clean
diff --git a/packages/l/libpng/libpng12/Makefile b/packages/l/libpng/libpng12/Makefile
new file mode 100644
index 0000000..74c5cec
--- /dev/null
+++ b/packages/l/libpng/libpng12/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+# https://www.libpng.org
+# https://www.libpng.org/pub/png/libpng.html
+# https://libpng.sourceforge.net/index.html
+#
+# Downloads:
+# =========
+# https://sourceforge.net/projects/libpng/files/libpng12
+#
+
+url         = https://downloads.sourceforge.net/project/libpng
+
+versions    = 1.2.59
+
+pkgname     = libpng
+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 \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([0-9]*[\.][0-9]*[\.][0-9]*\)\(\..*\)/\2/'` ; \
+	    major=`echo $$version | sed 's/\([0-9]*[\.][0-9]*\)\([\.][0-9]*\)/\1/' | sed 's/\.//g'` ; \
+	  wget -N $(url)/$(pkgname)$$major/$$version/$$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/l/libpng/libpng14/Makefile b/packages/l/libpng/libpng14/Makefile
new file mode 100644
index 0000000..e49865a
--- /dev/null
+++ b/packages/l/libpng/libpng14/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+# https://www.libpng.org
+# https://www.libpng.org/pub/png/libpng.html
+# https://libpng.sourceforge.net/index.html
+#
+# Downloads:
+# =========
+# https://sourceforge.net/projects/libpng/files/libpng14
+#
+
+url         = https://downloads.sourceforge.net/project/libpng
+
+versions    = 1.4.22
+
+pkgname     = libpng
+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 \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([0-9]*[\.][0-9]*[\.][0-9]*\)\(\..*\)/\2/'` ; \
+	    major=`echo $$version | sed 's/\([0-9]*[\.][0-9]*\)\([\.][0-9]*\)/\1/' | sed 's/\.//g'` ; \
+	  wget -N $(url)/$(pkgname)$$major/$$version/$$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/l/libpng/libpng15/Makefile b/packages/l/libpng/libpng15/Makefile
new file mode 100644
index 0000000..f0fd23d
--- /dev/null
+++ b/packages/l/libpng/libpng15/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+# https://www.libpng.org
+# https://www.libpng.org/pub/png/libpng.html
+# https://libpng.sourceforge.net/index.html
+#
+# Downloads:
+# =========
+# https://sourceforge.net/projects/libpng/files/libpng15
+#
+
+url         = https://downloads.sourceforge.net/project/libpng
+
+versions    = 1.5.30
+
+pkgname     = libpng
+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 \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([0-9]*[\.][0-9]*[\.][0-9]*\)\(\..*\)/\2/'` ; \
+	    major=`echo $$version | sed 's/\([0-9]*[\.][0-9]*\)\([\.][0-9]*\)/\1/' | sed 's/\.//g'` ; \
+	  wget -N $(url)/$(pkgname)$$major/$$version/$$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/l/libpng/libpng16/Makefile b/packages/l/libpng/libpng16/Makefile
new file mode 100644
index 0000000..76dca55
--- /dev/null
+++ b/packages/l/libpng/libpng16/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+# https://www.libpng.org
+# https://www.libpng.org/pub/png/libpng.html
+# https://libpng.sourceforge.net/index.html
+#
+# Downloads:
+# =========
+# https://sourceforge.net/projects/libpng/files/libpng16
+#
+
+url         = https://downloads.sourceforge.net/project/libpng
+
+versions    = 1.6.37
+
+pkgname     = libpng
+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 \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([0-9]*[\.][0-9]*[\.][0-9]*\)\(\..*\)/\2/'` ; \
+	    major=`echo $$version | sed 's/\([0-9]*[\.][0-9]*\)\([\.][0-9]*\)/\1/' | sed 's/\.//g'` ; \
+	  wget -N $(url)/$(pkgname)$$major/$$version/$$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/l/libpsl/Makefile b/packages/l/libpsl/Makefile
new file mode 100644
index 0000000..5679999
--- /dev/null
+++ b/packages/l/libpsl/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+# https://github.com/rockdaboot/libpsl
+#
+# GitHub:
+# ======
+# https://github.com/rockdaboot/libpsl
+#
+# Download:
+# ========
+# https://github.com/rockdaboot/libpsl/releases/download/${VERSION}/libpsl-${VERSION}.tar.gz
+#
+# Clone:
+# =====
+# https://github.com/rockdaboot/libpsl.git
+#
+
+url        = https://github.com/rockdaboot
+
+versions    = 0.21.1
+
+pkgname     = libpsl
+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)/$(pkgname)/releases/download/$${version}/$${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/l/libsodium/Makefile b/packages/l/libsodium/Makefile
new file mode 100644
index 0000000..f6d7527
--- /dev/null
+++ b/packages/l/libsodium/Makefile
@@ -0,0 +1,65 @@
+#
+# Project Home:
+# ============
+# https://github.com/jedisct1/libsodium
+#
+# Clone:
+# =====
+# git clone https://github.com/jedisct1/libsodium.git
+#
+
+url        = https://github.com/jedisct1/libsodium.git
+
+repo_name  = libsodium
+
+#
+# List of tags to be extracted:
+#
+TAGS       = 1.0.1 1.0.7 1.0.8 1.0.18
+
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(addprefix $(repo_name)-, $(TAGS)))
+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)
+	@touch $@
+
+$(tarballs): $(git_repo)
+	@for tag in $(TAGS) ; do \
+	  version=`echo $$tag` ; \
+	  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 ) ; \
+	    tar xJf $(repo_name)-$$version.tar.xz ; \
+	    rm -f $(repo_name)-$$version.tar.xz ; \
+	    ( cd $(repo_name)-$$version ; ./autogen.sh ; rm -rf autom4te.cache ) ; \
+	    tar cJf $(repo_name)-$$version.tar.xz $(repo_name)-$$version ; \
+	    rm -rf  $(repo_name)-$$version ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/libspectre/Makefile b/packages/l/libspectre/Makefile
new file mode 100644
index 0000000..1c50b8e
--- /dev/null
+++ b/packages/l/libspectre/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.freedesktop.org/wiki/Software/libspectre
+#
+# Downloads:
+# =========
+# https://libspectre.freedesktop.org/releases
+#
+
+url         = https://libspectre.freedesktop.org/releases
+
+versions    = 0.2.7 0.2.12
+
+pkgname     = libspectre
+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/l/libssh/Makefile b/packages/l/libssh/Makefile
new file mode 100644
index 0000000..b770b88
--- /dev/null
+++ b/packages/l/libssh/Makefile
@@ -0,0 +1,73 @@
+#
+# Project Home:
+# ============
+# http://www.libssh.org
+#
+# Git:
+# ===
+# https://git.libssh.org/projects/libssh.git
+#
+# Clone:
+# =====
+# git://git.libssh.org/projects/libssh.git
+# https://git.libssh.org/projects/libssh.git
+#
+
+url        = https://git.libssh.org/projects
+
+repo_name  = libssh
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = cdf7690e038230623cbbf6b024ece62f41efa98d:0.7.3
+revisions += 0cceefd49d4d397eb21bd36e314ac87739da51ff:0.9.5
+
+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/l/libssh2/Makefile b/packages/l/libssh2/Makefile
new file mode 100644
index 0000000..0a804ac
--- /dev/null
+++ b/packages/l/libssh2/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libssh2.org
+#
+# Downloads:
+# =========
+# https://www.libssh2.org/download
+#
+
+url         = https://www.libssh2.org/download
+
+versions    = 1.7.0 1.8.0 1.9.0
+
+pkgname     = libssh2
+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/l/libstrophe/Makefile b/packages/l/libstrophe/Makefile
new file mode 100644
index 0000000..09586fb
--- /dev/null
+++ b/packages/l/libstrophe/Makefile
@@ -0,0 +1,77 @@
+#
+# Project Home:
+# ============
+# http://strophe.im/libstrophe
+#
+# GitHub:
+# ======
+# https://github.com/strophe/libstrophe
+#
+# Clone:
+# =====
+# https://github.com/strophe/libstrophe.git
+#
+
+url        = https://github.com/strophe
+
+repo_name  = libstrophe
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 9931ad4fa2aa7f204c608010eb2ebf84bcf7d542:0.9.1
+revisions += 4f915d75152003e5439e48dbc7e370bbad869a6d:0.9.3
+revisions += 2d5424bcff4e9d810b73444b02708f69743ff65d:0.10.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 ; ./bootstrap.sh ; 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/l/libthai/Makefile b/packages/l/libthai/Makefile
new file mode 100644
index 0000000..4b1feba
--- /dev/null
+++ b/packages/l/libthai/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://linux.thai.net/projects/libthai
+#
+# Downloads:
+# =========
+# ftp://linux.thai.net/pub/ThaiLinux/software/libthai
+# https://linux.thai.net/pub/thailinux/software/libthai
+#
+
+url         = https://linux.thai.net/pub/thailinux/software/libthai
+
+versions    = 0.1.20 0.1.24 0.1.29
+
+pkgname     = libthai
+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)
diff --git a/packages/l/libtiff/Makefile b/packages/l/libtiff/Makefile
new file mode 100644
index 0000000..ebe6383
--- /dev/null
+++ b/packages/l/libtiff/Makefile
@@ -0,0 +1,44 @@
+#
+# Project Home:
+# ============
+# https://www.libtiff.org
+#
+# GitLab:
+# ======
+# https://gitlab.com/libtiff/libtiff
+#
+# Downloads:
+# =========
+# https://download.osgeo.org/libtiff
+# old ftp://ftp.remotesensing.org/pub/libtiff
+#
+
+url         = https://download.osgeo.org/libtiff
+
+versions    = 3.9.7 4.0.4 4.0.5 4.0.6 4.3.0 4.5.0
+
+pkgname     = tiff
+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/l/libunwind/Makefile b/packages/l/libunwind/Makefile
new file mode 100644
index 0000000..69fff4a
--- /dev/null
+++ b/packages/l/libunwind/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.nongnu.org/libunwind
+#
+# Downloads:
+# =========
+# https://download.savannah.nongnu.org/releases/libunwind
+#
+
+url         = https://download.savannah.nongnu.org/releases/libunwind
+
+versions    = 1.1 1.2 1.2.1 1.3.1 1.6.2
+
+pkgname     = libunwind
+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): %.tar.gz.sha1sum : %.tar.gz
+	@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/l/liburing/Makefile b/packages/l/liburing/Makefile
new file mode 100644
index 0000000..90bbf3c
--- /dev/null
+++ b/packages/l/liburing/Makefile
@@ -0,0 +1,61 @@
+#
+# Project Home:
+# ============
+# https://git.kernel.dk/cgit/liburing
+#
+# Git:
+# ===
+# https://git.kernel.dk/cgit/liburing
+#
+
+url         = https://git.kernel.dk/cgit/liburing
+
+repo_name   = liburing
+
+versions    = 2.1
+
+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)
+	@git clone $(url) $(repo_name)
+	@touch $@
+
+
+$(tarballs): $(git_repo)
+	@for version in $(TAGS) ; do \
+	  tag=$(repo_name)-`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 ; \
+	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/l/libusb-compat/Makefile b/packages/l/libusb-compat/Makefile
new file mode 100644
index 0000000..7ae6131
--- /dev/null
+++ b/packages/l/libusb-compat/Makefile
@@ -0,0 +1,79 @@
+#
+# Project Home:
+# ============
+# https://libusb.info
+#
+# GitHub:
+# ======
+# https://github.com/libusb/libusb-compat-0.1
+#
+# Clone:
+# =====
+# https://github.com/libusb/libusb-compat-0.1.git
+#
+
+url        = https://github.com/libusb
+
+repo_name  = libusb-compat-0.1
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 4a27760ec5954ec8605e052a3207afbe0979eeef:0.1.7
+revisions += 3e8a88d296b5405902c22d2ada61937bd9a89415:0.1.8
+
+git_repo   = .git_clone
+
+pkg_name   = libusb-compat
+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 $(pkg_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 ; \
+	  tar xJf $(pkg_name)-$$version.$(suffix) ; \
+	  ( cd $(pkg_name)-$$version ; ./autogen.sh ; \
+	    rm -rf autom4te.cache .gitignore .travis.yml ; \
+	    make distclean ) ; \
+	  tar cJf $(pkg_name)-$$version.$(suffix) $(pkg_name)-$$version ; \
+	  rm -rf $(pkg_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) $(pkg_name)
diff --git a/packages/l/libusb/Makefile b/packages/l/libusb/Makefile
new file mode 100644
index 0000000..70f0a1c
--- /dev/null
+++ b/packages/l/libusb/Makefile
@@ -0,0 +1,79 @@
+#
+# Project Home:
+# ============
+# https://libusb.info
+#
+# GitHub:
+# ======
+# https://github.com/libusb/libusb
+#
+# Clone:
+# =====
+# https://github.com/libusb/libusb.git
+#
+
+url        = https://github.com/libusb
+
+repo_name  = libusb
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = e782eeb2514266f6738e242cdcb18e3ae1ed06fa:1.0.23
+revisions += c6a35c56016ea2ab2f19115d2ea1e85e0edae155:1.0.24
+revisions += 4239bc3a50014b8e6a5a2a59df1fff3b7469543b:1.0.26
+
+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 ; \
+	    rm -rf autom4te.cache .private .travis.yml ; \
+	    make distclean ) ; \
+	  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/l/libuv/Makefile b/packages/l/libuv/Makefile
new file mode 100644
index 0000000..9f54ec8
--- /dev/null
+++ b/packages/l/libuv/Makefile
@@ -0,0 +1,71 @@
+#
+# Project Home:
+# ============
+# https://github.com/libuv/libuv
+#
+# GitHub:
+# ======
+# https://github.com/libuv/libuv.git
+#
+# Downloads:
+# =========
+# https://dist.libuv.org/dist
+#
+
+url         = https://github.com/libuv
+
+repo_name  = libuv
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 1dff88e5161cba5c59276d2070d2e304e4dcb242:1.41.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/l/libvisual/Makefile b/packages/l/libvisual/Makefile
new file mode 100644
index 0000000..a890a60
--- /dev/null
+++ b/packages/l/libvisual/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://sourceforge.net/projects/libvisual
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/libvisual/libvisual/libvisual-${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/libvisual/libvisual
+
+versions    = 0.4.0 0.4.1
+
+pkgname     = libvisual
+suffix      = tar.bz2
+
+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)/$(pkgname)-$$version/$$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/l/libxml2/Makefile b/packages/l/libxml2/Makefile
new file mode 100644
index 0000000..6a70a8f
--- /dev/null
+++ b/packages/l/libxml2/Makefile
@@ -0,0 +1,51 @@
+#
+# Project Home:
+# ============
+# https://www.gnome.org
+#
+# Repository browse: https://gitlab.gnome.org/GNOME/libxml2/
+#
+# Downloads:
+# =========
+# ftp://ftp.gnome.org/pub/GNOME/sources
+# https://download.gnome.org/sources
+#
+
+
+url       = https://download.gnome.org/sources
+
+versions  = 2.9.0 2.9.1 2.9.3 2.9.9 2.9.14
+versions += 2.10.3
+
+pkg_name  = libxml2
+arch_type = tar.xz
+suffixes  = $(arch_type)
+
+files     = $(foreach suffix, $(suffixes), $(addsuffix .$(suffix), $(addprefix $(pkg_name)-, $(versions))))
+
+tarballs  = $(addsuffix .$(arch_type), $(addprefix $(pkg_name)-, $(versions)))
+sha1s     = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(files) $(sha1s)
+
+
+.PHONY: downloads_clean
+
+$(files):
+	@echo -e "\n======= Downloading '$(pkg_name)' sourses =======\n"
+	@for version in $(versions) ; do \
+	  major_minor=`echo $$version | sed 's/\([0-9][.0-9][0-9]*\)\([\.].*\)/\1/'` ; \
+	  for suffix in $(suffixes) ; do \
+	    wget -N $(url)/$(pkg_name)/$$major_minor/$(pkg_name)-$$version.$$suffix ;  \
+	  done ; \
+	done
+
+$(sha1s): %.$(arch_type).sha1sum : %.$(arch_type)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======\n" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+downloads_clean:
+	@rm -f $(files) $(sha1s)
diff --git a/packages/l/libxslt/Makefile b/packages/l/libxslt/Makefile
new file mode 100644
index 0000000..134ee81
--- /dev/null
+++ b/packages/l/libxslt/Makefile
@@ -0,0 +1,50 @@
+#
+# Project Home:
+# ============
+# https://www.gnome.org
+#
+# Repository browse: https://gitlab.gnome.org/GNOME/libxslt/
+#
+# Downloads:
+# =========
+# ftp://ftp.gnome.org/pub/GNOME/sources
+# https://download.gnome.org/sources
+#
+
+
+url       = https://download.gnome.org/sources
+
+versions  = 1.1.27 1.1.28 1.1.33 1.1.34 1.1.37
+
+pkg_name  = libxslt
+arch_type = tar.xz
+suffixes  = $(arch_type)
+
+files     = $(foreach suffix, $(suffixes), $(addsuffix .$(suffix), $(addprefix $(pkg_name)-, $(versions))))
+
+tarballs  = $(addsuffix .$(arch_type), $(addprefix $(pkg_name)-, $(versions)))
+sha1s     = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(files) $(sha1s)
+
+
+.PHONY: downloads_clean
+
+$(files):
+	@echo -e "\n======= Downloading '$(pkg_name)' sourses =======\n"
+	@for version in $(versions) ; do \
+	  major_minor=`echo $$version | sed 's/\([0-9][.0-9][0-9]*\)\([\.].*\)/\1/'` ; \
+	  for suffix in $(suffixes) ; do \
+	    wget -N $(url)/$(pkg_name)/$$major_minor/$(pkg_name)-$$version.$$suffix ;  \
+	  done ; \
+	done
+
+$(sha1s): %.$(arch_type).sha1sum : %.$(arch_type)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======\n" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+downloads_clean:
+	@rm -f $(files) $(sha1s)
diff --git a/packages/l/libyaml/Makefile b/packages/l/libyaml/Makefile
new file mode 100644
index 0000000..724bcf6
--- /dev/null
+++ b/packages/l/libyaml/Makefile
@@ -0,0 +1,59 @@
+#
+# Project Home:
+# ============
+#   https://pyyaml.org/wiki/LibYAML
+#
+# Clone:
+# =====
+#   https://github.com/yaml/libyaml.git
+#
+
+url        = https://github.com/yaml
+
+repo_name  = libyaml
+pkg_name   = libyaml
+suffix     = tar.xz
+
+versions   = 0.2.5
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; 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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/libzip/Makefile b/packages/l/libzip/Makefile
new file mode 100644
index 0000000..05a023f
--- /dev/null
+++ b/packages/l/libzip/Makefile
@@ -0,0 +1,64 @@
+#
+# Project Home:
+# ============
+#   https://libzip.org
+#
+# Downloads:
+# =========
+#   https://libzip.org/download
+#   https://github.com/nih-at/libzip
+#
+# GitHub:
+# ======
+#   https://github.com/nih-at/libzip.git
+#
+
+url        = https://github.com/nih-at
+
+repo_name  = libzip
+pkg_name   = libzip
+suffix     = tar.xz
+
+versions   = 1.8.0 1.9.2
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; do \
+	  tag=v`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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/log4cplus/Makefile b/packages/l/log4cplus/Makefile
new file mode 100644
index 0000000..19d6866
--- /dev/null
+++ b/packages/l/log4cplus/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://sourceforge.net/p/log4cplus/wiki/Home
+#
+# Downloads:
+# =========
+# https://downloads.sourceforge.net/project/log4cplus/log4cplus-stable/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/log4cplus/log4cplus-stable
+
+versions    = 1.2.0-rc3 1.2.0 2.0.8
+
+pkgname     = log4cplus
+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 \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z0-9]*\)\([-]\)\([0-9]*[\.][0-9]*[\.][0-9]*\)\(.*\)/\3/'` ; \
+	  wget -N $(url)/$$version/$$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/l/lz4/Makefile b/packages/l/lz4/Makefile
new file mode 100644
index 0000000..626d176
--- /dev/null
+++ b/packages/l/lz4/Makefile
@@ -0,0 +1,66 @@
+#
+# Project Home:
+# ============
+# https://github.com/lz4/lz4
+#
+# GitHub:
+# ======
+# https://github.com/lz4/lz4
+# https://github.com/lz4/lz4.git
+#
+
+url         = https://github.com/lz4/lz4.git
+
+repo_name   = lz4
+
+versions    = 1.9.2 1.9.3 1.9.4
+
+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=v`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 ; \
+	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/l/lzlib/Makefile b/packages/l/lzlib/Makefile
new file mode 100644
index 0000000..4fb0100
--- /dev/null
+++ b/packages/l/lzlib/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+# https://www.nongnu.org/lzip/lzip.html
+#
+# Downloads:
+# =========
+# https://download.savannah.gnu.org/releases/lzip/lzlib
+#
+
+url         = https://download.savannah.gnu.org/releases/lzip/lzlib
+
+versions    = 1.12 1.13
+
+pkgname     = lzlib
+suffix      = tar.gz
+sign_suffix = sig
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+signatures  = $(addsuffix .$(sign_suffix), $(tarballs))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(signatures) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  wget -N $(url)/$$tarball ; \
+	done
+
+$(signatures): %.$(suffix).$(sign_suffix) : %.$(suffix)
+	@for signature in $@ ; do \
+	  echo -e "\n======= Downloading '$$signature' signature =======\n" ; \
+	  wget -N $(url)/$$signature ; \
+	  touch $$signature ; \
+	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) $(signatures) $(sha1s)
diff --git a/packages/l/lzo/Makefile b/packages/l/lzo/Makefile
new file mode 100644
index 0000000..bdb60d7
--- /dev/null
+++ b/packages/l/lzo/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://www.oberhumer.com/opensource/lzo
+#
+# Downloads:
+# =========
+#   https://www.oberhumer.com/opensource/lzo/download
+#
+
+url         = https://www.oberhumer.com/opensource/lzo/download
+
+versions    = 2.03 2.08 2.09 2.10
+
+pkgname     = lzo
+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/l/md4c/Makefile b/packages/l/md4c/Makefile
new file mode 100644
index 0000000..f482111
--- /dev/null
+++ b/packages/l/md4c/Makefile
@@ -0,0 +1,69 @@
+#
+# Project Home:
+# ============
+# https://github.com/mity/md4c/wiki
+#
+# GitHub:
+# ======
+# https://github.com/mity/md4c.git
+#
+#
+
+url        = https://github.com/mity
+
+repo_name  = md4c
+pkg_name   = md4c
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = c3340b480e5232711858108be07460a9836c8ab5:0.4.8
+
+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 $(pkg_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/l/netpbm-doc/Makefile b/packages/l/netpbm-doc/Makefile
new file mode 100644
index 0000000..a8d1c67
--- /dev/null
+++ b/packages/l/netpbm-doc/Makefile
@@ -0,0 +1,65 @@
+#
+# Project Home:
+# ============
+# https://netpbm.sourceforge.net
+#
+# Downloads:
+# =========
+# https://netpbm.sourceforge.net/getting_netpbm.php
+#
+# Source tree:
+# ===========
+# https://sourceforge.net/p/netpbm/code/HEAD/tree
+#
+
+url         = http://svn.code.sf.net/p/netpbm/code
+
+pkgname     = netpbm-doc
+
+branch      = userguide
+#
+# List of revisions to be extracted:
+# =================================
+#
+# Revisions from 'advanced' branch.
+#
+#       revision | version
+#      ----------+---------
+revisions  = 2313:20141125
+revisions += 2678:20160201
+revisions += 2776:20160519
+revisions += 4494:20230128
+
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2 -d ':'))
+
+suffix     = tar.xz
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s      = $(addsuffix .sha1sum, $(tarballs))
+
+
+all:  $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@for revision in $(revisions) ; do \
+	   rev=`echo $$revision | cut -f 1 -d ':'` ; \
+	   ver=`echo $$revision | cut -f 2 -d ':'` ; \
+	   if [ ! -f $(pkgname)-$$ver.tar.bz2 ]; then \
+	     echo -e "\n======= Creating '$(pkgname)-$$ver.$(suffix)' snapshot =======" ; \
+	     svn -r$$rev co $(url)/$(branch) $(pkgname)-$$ver ; \
+	     ( cd $(pkgname)-$$ver ; rm -rf .svn ) ; \
+	     tar cJvf $(pkgname)-$$ver.$(suffix) $(pkgname)-$$ver ; \
+	     rm -rf $(pkgname)-$$ver ; \
+	   fi ; \
+	 done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	   echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	   sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	 done
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
diff --git a/packages/l/netpbm-super-stable/Makefile b/packages/l/netpbm-super-stable/Makefile
new file mode 100644
index 0000000..3f20a64
--- /dev/null
+++ b/packages/l/netpbm-super-stable/Makefile
@@ -0,0 +1,44 @@
+#
+# Project Home:
+# ============
+# https://netpbm.sourceforge.net
+#
+# Downloads:
+# =========
+# https://netpbm.sourceforge.net/getting_netpbm.php
+# https://downloads.sourceforge.net/project/netpbm/super_stable/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/netpbm/super_stable
+
+versions    = 10.35.93 10.35.94 10.35.98 10.73.42
+
+pkgname     = netpbm
+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-]*\)\(.*\)\(\.tar\.gz\)/\2/'` ; \
+	  wget -N $(url)/$$version/$(pkgname)-$$version.tgz ; \
+	  tar xzf $(pkgname)-$$version.tgz ; \
+	  tar czf $$tarball $(pkgname)-$$version ; \
+	  rm -rf $(pkgname)-$$version $(pkgname)-$$version.tgz ; \
+	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/l/netpbm/Makefile b/packages/l/netpbm/Makefile
new file mode 100644
index 0000000..9072db2
--- /dev/null
+++ b/packages/l/netpbm/Makefile
@@ -0,0 +1,66 @@
+#
+# Project Home:
+# ============
+# https://netpbm.sourceforge.net
+#
+# Downloads:
+# =========
+# https://netpbm.sourceforge.net/getting_netpbm.php
+#
+# Source tree:
+# ===========
+# https://sourceforge.net/p/netpbm/code/HEAD/tree
+#
+
+url         = https://svn.code.sf.net/p/netpbm/code
+
+pkgname     = netpbm
+
+branch      = advanced
+#
+# List of revisions to be extracted:
+# =================================
+#
+# Revisions from 'advanced' branch.
+#
+#       revision | version
+#      ----------+---------
+revisions  = 2294:10.68.00
+revisions += 2298:10.68.01
+revisions += 2678:10.73.00
+revisions += 2772:10.74.03
+revisions += 4494:11.01.00
+
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2 -d ':'))
+
+suffix     = tar.xz
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s      = $(addsuffix .sha1sum, $(tarballs))
+
+
+all:  $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@for revision in $(revisions) ; do \
+	   rev=`echo $$revision | cut -f 1 -d ':'` ; \
+	   ver=`echo $$revision | cut -f 2 -d ':'` ; \
+	   if [ ! -f $(pkgname)-$$ver.tar.bz2 ]; then \
+	     echo -e "\n======= Creating '$(pkgname)-$$ver.$(suffix)' snapshot =======" ; \
+	     svn -r$$rev co $(url)/$(branch) $(pkgname)-$$ver ; \
+	     ( cd $(pkgname)-$$ver ; rm -rf .svn ) ; \
+	     tar cJvf $(pkgname)-$$ver.$(suffix) $(pkgname)-$$ver ; \
+	     rm -rf $(pkgname)-$$ver ; \
+	   fi ; \
+	 done
+
+$(sha1s): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	   echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	   sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	 done
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
diff --git a/packages/l/newt/Makefile b/packages/l/newt/Makefile
new file mode 100644
index 0000000..94e45d5
--- /dev/null
+++ b/packages/l/newt/Makefile
@@ -0,0 +1,38 @@
+#
+# Project Home:
+# ============
+# https://pagure.io/newt
+#
+# Downloads:
+# =========
+# https://releases.pagure.org/newt
+#
+
+url         = https://releases.pagure.org/newt
+
+versions    = 0.52.21
+
+pkgname     = newt
+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/l/oniguruma/Makefile b/packages/l/oniguruma/Makefile
new file mode 100644
index 0000000..e5ad473
--- /dev/null
+++ b/packages/l/oniguruma/Makefile
@@ -0,0 +1,59 @@
+#
+# Project Home:
+# ============
+#   https://github.com/kkos/oniguruma
+#
+# Clone:
+# =====
+#   https://github.com/kkos/oniguruma.git
+#
+
+url        = https://github.com/kkos
+
+repo_name  = oniguruma
+pkg_name   = oniguruma
+suffix     = tar.xz
+
+versions   = 6.9.7 6.9.7.1
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; do \
+	  tag=v`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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/openmpi/Makefile b/packages/l/openmpi/Makefile
new file mode 100644
index 0000000..273f016
--- /dev/null
+++ b/packages/l/openmpi/Makefile
@@ -0,0 +1,63 @@
+#
+# Project Home:
+# ============
+# https://www.open-mpi.org
+#
+# GitHub:
+# ======
+# https://github.com/open-mpi/ompi.git
+#
+
+url        = https://github.com/open-mpi
+
+repo_name  = ompi
+pkg_name   = openmpi
+suffix     = tar.xz
+
+versions   = 4.1.5
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; do \
+	  tag=v`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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	    tar xJf $(pkg_name)-$$version.$(suffix) ; \
+	    ( cd $(pkg_name)-$$version ; ./autogen.pl ; rm -rf autom4te.cache .ci .git* .mailmap .travis.yml ) ; \
+	    tar cJf $(pkg_name)-$$version.$(suffix) $(pkg_name)-$$version ; \
+	    rm -rf $(pkg_name)-$$version ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/pciids/Makefile b/packages/l/pciids/Makefile
new file mode 100644
index 0000000..73e47ef
--- /dev/null
+++ b/packages/l/pciids/Makefile
@@ -0,0 +1,36 @@
+#
+# Project Home:
+# ============
+# https://pci-ids.ucw.cz/v2.2
+#
+# Downloads:
+# =========
+# https://pci-ids.ucw.cz/pci.ids
+#
+
+url         = https://pci-ids.ucw.cz
+
+version     = $(shell echo `date +%Y%m%d`)
+pkgname     = pciids
+suffix      = tar.xz
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(version)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@wget -N $(url)/pci.ids
+	@tar cJvf $(tarball) pci.ids
+	@rm -f pci.ids
+
+$(sha1s): $(tarball)
+	@echo -e "\n======= Calculation the '$(tarball)' sha1sum =======\n"
+	@sha1sum --binary $(tarball) > $(tarball).sha1sum ; \
+
+downloads_clean:
+	@rm -rf $(pkgname)-*$(suffix) $(pkgname)-*$(suffix).sha1sum
diff --git a/packages/l/pcre/Makefile b/packages/l/pcre/Makefile
new file mode 100644
index 0000000..1832eec
--- /dev/null
+++ b/packages/l/pcre/Makefile
@@ -0,0 +1,44 @@
+#
+# Project Home:
+# ============
+# https://www.pcre.org/
+#
+# Files:
+# =====
+# https://sourceforge.net/projects/pcre/files/
+#
+# Downloads:
+# =========
+# https://sourceforge.net/projects/pcre/files/${VERSION}/pcre-${VERSION}.tar.bs2
+#
+
+url         = https://downloads.sourceforge.net/project/pcre/pcre
+
+versions    = 8.33 8.34 8.38 8.43 8.44 8.45
+
+pkgname     = pcre
+suffix      = tar.bz2
+
+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/$$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/l/pcre2/Makefile b/packages/l/pcre2/Makefile
new file mode 100644
index 0000000..d0dd1c6
--- /dev/null
+++ b/packages/l/pcre2/Makefile
@@ -0,0 +1,44 @@
+#
+# Project Home:
+# ============
+# https://www.pcre.org/
+#
+# Files:
+# =====
+# https://sourceforge.net/projects/pcre/files/
+#
+# Downloads:
+# =========
+# https://sourceforge.net/projects/pcre/files/${VERSION}/pcre-${VERSION}.tar.bs2
+#
+
+url         = https://downloads.sourceforge.net/project/pcre/pcre2
+
+versions    = 10.33 10.36 10.37
+
+pkgname     = pcre2
+suffix      = tar.bz2
+
+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-Z0-9]*\)\-\([0-9]*[.0-9]*[.0-9]*\)\(\..*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$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/l/polkit/Makefile b/packages/l/polkit/Makefile
new file mode 100644
index 0000000..b7f79fa
--- /dev/null
+++ b/packages/l/polkit/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.freedesktop.org/wiki/Software/polkit
+#
+# Downloads:
+# =========
+# https://www.freedesktop.org/software/polkit/releases
+#
+
+url         = https://www.freedesktop.org/software/polkit/releases
+
+versions    = 0.105 0.112 0.113
+
+pkgname     = polkit
+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/l/poppler-data/Makefile b/packages/l/poppler-data/Makefile
new file mode 100644
index 0000000..9f4ea92
--- /dev/null
+++ b/packages/l/poppler-data/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://poppler.freedesktop.org
+# https://freedesktop.org/wiki/Software/poppler
+#
+# Downloads:
+# =========
+# https://poppler.freedesktop.org/poppler-data-0.4.12.tar.gz
+#
+
+url         = https://poppler.freedesktop.org
+
+versions    = 0.4.7 0.4.12
+
+pkgname     = poppler-data
+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/l/poppler/Makefile b/packages/l/poppler/Makefile
new file mode 100644
index 0000000..7d6dddf
--- /dev/null
+++ b/packages/l/poppler/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://poppler.freedesktop.org
+# https://freedesktop.org/wiki/Software/poppler
+#
+# Downloads:
+# =========
+# https://poppler.freedesktop.org/poppler-23.02.0.tar.xz
+#
+
+url         = https://poppler.freedesktop.org
+
+versions    = 0.29.0 0.40.0 0.42.0 0.45.0 23.02.0
+
+pkgname     = poppler
+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)
diff --git a/packages/l/popt/Makefile b/packages/l/popt/Makefile
new file mode 100644
index 0000000..9ad6cb8
--- /dev/null
+++ b/packages/l/popt/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# http://freecode.com/projects/popt
+#
+# Downloads:
+# =========
+# https://rpm5.org/files/popt
+# ftp://ftp.rpm.org/pub/rpm/popt/releases
+
+
+url         = ftp://ftp.rpm.org/pub/rpm/popt/releases/popt-1.x
+
+versions    = 1.18
+pkgname     = popt
+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/l/ppl/Makefile b/packages/l/ppl/Makefile
new file mode 100644
index 0000000..adbcaf6
--- /dev/null
+++ b/packages/l/ppl/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://bugseng.com/products/ppl/
+#
+# Downloads:
+# =========
+# ftp://ftp.cs.unipr.it/pub/ppl/releases/
+# https://www.bugseng.com/products/ppl/download/ftp/releases/
+#
+
+url         = https://www.bugseng.com/products/ppl/download/ftp/releases
+
+versions    = 1.0 1.1 1.2
+
+tarballs    = $(addsuffix .tar.xz, $(addprefix ppl-, $(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-]*\)\(.*\)\(.tar.*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$tarball ; \
+	done
+
+$(filter %.tar.xz.sha1sum,$(sha1s)): %.tar.xz.sha1sum : %.tar.xz
+	@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/l/ppl/ppl-description.txt b/packages/l/ppl/ppl-description.txt
new file mode 100644
index 0000000..3675781
--- /dev/null
+++ b/packages/l/ppl/ppl-description.txt
@@ -0,0 +1,25 @@
+
+http://bugseng.com/products/ppl/
+===============================
+
+The Parma Polyhedra Library (PPL) provides numerical abstractions especially targeted
+at applications in the field of analysis and verification of complex systems. These
+abstractions include convex polyhedra, defined as the intersection of a finite number
+of (open or closed) halfspaces, each described by a linear inequality (strict or
+non-strict) with rational coefficients; some special classes of polyhedra shapes
+that offer interesting complexity/precision tradeoffs; and grids which represent
+regularly spaced points that satisfy a set of linear congruence relations.
+The library also supports finite powersets and products of (any kind of) polyhedra
+and grids, a mixed integer linear programming problem solver using an exact-arithmetic
+version of the simplex algorithm, a parametric integer programming solver, and primitives
+for termination analysis via the automatic synthesis of linear ranking functions.
+More details are available on the PPL's internal mechanisms.)
+
+The Parma Polyhedra Library is: user friendly (you write x + 2*y + 5*z <= 7 when you
+mean it); fully dynamic (available virtual memory is the only limitation to the dimension
+of anything); portable (written in standard C++, with C, Java, Objective CAML and Prolog
+interfaces, and following all the applicable standards); exception-safe (never leaks
+resources or leaves invalid object fragments around); efficient (and we hope to make
+it even more so); thoroughly documented; free software (distributed under the terms of
+the GNU General Public License version 3 or any later version).
+
diff --git a/packages/l/pycairo/Makefile b/packages/l/pycairo/Makefile
new file mode 100644
index 0000000..6cbdd62
--- /dev/null
+++ b/packages/l/pycairo/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://cairographics.org/pycairo
+#
+# Downloads:
+# =========
+# https://cairographics.org/download
+#
+
+url         = https://cairographics.org/releases
+
+versions    = 1.10.0
+
+pkgname     = py2cairo
+suffix      = tar.bz2
+
+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/l/pycairo/Makefile.outdated b/packages/l/pycairo/Makefile.outdated
new file mode 100644
index 0000000..260d42c
--- /dev/null
+++ b/packages/l/pycairo/Makefile.outdated
@@ -0,0 +1,38 @@
+#
+# Project Home:
+# ============
+# http://cairographics.org/pycairo
+#
+# Downloads:
+# =========
+# http://cairographics.org/download
+#
+
+url         = http://cairographics.org/releases
+
+versions    = 1.8.10
+pkgname     = py2cairo
+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/l/pycups/Makefile b/packages/l/pycups/Makefile
new file mode 100644
index 0000000..784ac61
--- /dev/null
+++ b/packages/l/pycups/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# http://cyberelk.net/tim/software/pycups
+#
+# Downloads:
+# =========
+# http://cyberelk.net/tim/data/pycups
+#
+
+url         = http://cyberelk.net/tim/data/pycups
+
+versions    = 1.9.61 1.9.73
+
+pkgname     = pycups
+suffix      = tar.bz2
+
+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/l/pycurl/Makefile b/packages/l/pycurl/Makefile
new file mode 100644
index 0000000..831a063
--- /dev/null
+++ b/packages/l/pycurl/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://pycurl.sourceforge.net
+#
+# Downloads:
+# =========
+# https://pycurl.sourceforge.net/download
+#
+
+url         = https://pycurl.sourceforge.net/download
+
+versions    = 7.19.5.1 7.19.5.3 7.21.5
+
+pkgname     = pycurl
+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/l/pyrex/Makefile b/packages/l/pyrex/Makefile
new file mode 100644
index 0000000..d9d53e7
--- /dev/null
+++ b/packages/l/pyrex/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex
+#
+# Downloads:
+# =========
+# https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex
+#
+
+url         = https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex
+
+versions    = 0.9.9
+
+pkgname     = Pyrex
+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/l/sbc/Makefile b/packages/l/sbc/Makefile
new file mode 100644
index 0000000..dcb0d74
--- /dev/null
+++ b/packages/l/sbc/Makefile
@@ -0,0 +1,46 @@
+#
+# Project Home:
+# ============
+# http://www.bluez.org
+#
+# Downloads:
+# =========
+# https://www.kernel.org/pub/linux/bluetooth
+#
+
+
+url       = https://www.kernel.org/pub/linux/bluetooth
+
+versions  = 1.3 2.0
+
+pkg_name  = sbc
+arch_type = tar.xz
+suffixes  = $(arch_type) tar.sign
+
+files     = $(foreach suffix, $(suffixes), $(addsuffix .$(suffix), $(addprefix $(pkg_name)-, $(versions))))
+
+tarballs  = $(addsuffix .$(arch_type), $(addprefix $(pkg_name)-, $(versions)))
+sha1s     = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(files) $(sha1s)
+
+
+.PHONY: downloads_clean
+
+$(files):
+	@echo -e "\n======= Downloading '$(pkg_name)' sourses =======\n"
+	@for version in $(versions) ; do \
+	  for suffix in $(suffixes) ; do \
+	    wget -N $(url)/$(pkg_name)-$$version.$$suffix ;  \
+	  done ; \
+	done
+
+$(sha1s): %.$(arch_type).sha1sum : %.$(arch_type)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======\n" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+downloads_clean:
+	@rm -f $(files) $(sha1s)
diff --git a/packages/l/sdl/Makefile b/packages/l/sdl/Makefile
new file mode 100644
index 0000000..ca289a7
--- /dev/null
+++ b/packages/l/sdl/Makefile
@@ -0,0 +1,34 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := sdl        \
+           sdl-image  \
+           sdl-mixer  \
+           sdl-net    \
+           sdl-ttf    \
+           sdl2       \
+           sdl2-gfx   \
+           sdl2-image \
+           sdl2-mixer \
+           sdl2-net   \
+           sdl2-ttf
+
+
+all-recursive downloads_clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  local_target="$$target"; \
+	  (cd $$subdir && $(MAKE) $$fnord $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; test -z "$$fail"
+
+all: all-recursive
+
+downloads_clean: downloads_clean-recursive
+
+.PHONY: all-recursive downloads_clean-recursive all downloads_clean
diff --git a/packages/l/sdl/sdl-image/Makefile b/packages/l/sdl/sdl-image/Makefile
new file mode 100644
index 0000000..01139d8
--- /dev/null
+++ b/packages/l/sdl/sdl-image/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libsdl.org
+#
+# Downloads:
+# =========
+# https://www.libsdl.org/projects/SDL_image/release
+#
+
+url         = https://www.libsdl.org/projects/SDL_image/release
+
+versions    = 1.2.12
+
+pkgname     = SDL_image
+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/l/sdl/sdl-mixer/Makefile b/packages/l/sdl/sdl-mixer/Makefile
new file mode 100644
index 0000000..eda6372
--- /dev/null
+++ b/packages/l/sdl/sdl-mixer/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libsdl.org
+#
+# Downloads:
+# =========
+# https://www.libsdl.org/projects/SDL_mixer/release
+#
+
+url         = https://www.libsdl.org/projects/SDL_mixer/release
+
+versions    = 1.2.12
+
+pkgname     = SDL_mixer
+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/l/sdl/sdl-net/Makefile b/packages/l/sdl/sdl-net/Makefile
new file mode 100644
index 0000000..28a57b5
--- /dev/null
+++ b/packages/l/sdl/sdl-net/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libsdl.org
+#
+# Downloads:
+# =========
+# https://www.libsdl.org/projects/SDL_net/release
+#
+
+url         = https://www.libsdl.org/projects/SDL_net/release
+
+versions    = 1.2.8
+
+pkgname     = SDL_net
+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/l/sdl/sdl-ttf/Makefile b/packages/l/sdl/sdl-ttf/Makefile
new file mode 100644
index 0000000..75798ae
--- /dev/null
+++ b/packages/l/sdl/sdl-ttf/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libsdl.org
+#
+# Downloads:
+# =========
+# https://www.libsdl.org/projects/SDL_ttf/release
+#
+
+url         = https://www.libsdl.org/projects/SDL_ttf/release
+
+versions    = 2.0.11
+
+pkgname     = SDL_ttf
+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/l/sdl/sdl/Makefile b/packages/l/sdl/sdl/Makefile
new file mode 100644
index 0000000..f775ad6
--- /dev/null
+++ b/packages/l/sdl/sdl/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libsdl.org
+#
+# Downloads:
+# =========
+# https://www.libsdl.org/release
+#
+
+url         = https://www.libsdl.org/release
+
+versions    = 1.2.15
+
+pkgname     = SDL
+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/l/sdl/sdl2-gfx/Makefile b/packages/l/sdl/sdl2-gfx/Makefile
new file mode 100644
index 0000000..55fa154
--- /dev/null
+++ b/packages/l/sdl/sdl2-gfx/Makefile
@@ -0,0 +1,53 @@
+#
+# Project Home:
+# ============
+# http://www.ferzkopp.net/wordpress/2016/01/02/sdl_gfx-sdl2_gfx/
+#
+# Downloads:
+# =========
+# http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-1.0.4.tar.gz
+# https://sourceforge.net/projects/sdl2gfx/
+#
+
+url         = http://www.ferzkopp.net/Software/SDL2_gfx
+
+versions    = 1.0.4
+
+pkgname     = SDL2_gfx
+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 \
+	  wget -N $(url)/$(pkgname)-$$version.$(suffix) ; \
+	  tar xzf $(pkgname)-$$version.$(suffix) ; \
+	  ( cd $(pkgname)-$$version ; \
+	    rm -rf autom4te.cache ; \
+	    find . -type f -exec chmod a-x {} \; ; \
+	    chmod a+x autogen.sh config.guess config.sub configure depcomp install-sh ltmain.sh missing ; \
+	    chmod a+x test/autogen.sh test/config.guess test/config.sub test/configure test/install-sh ; \
+	    cat SDL2_gfxPrimitives.c | tr -d '\r' > SDL2_gfxPrimitives.c.unix ; \
+	    mv SDL2_gfxPrimitives.c{.unix,} ; \
+	    cat test/TestGfx.c | tr -d '\r' > test/TestGfx.c.unix ; \
+	    mv test/TestGfx.c{.unix,} ; \
+	  ) ; \
+	  tar czf $(pkgname)-$$version.$(suffix) $(pkgname)-$$version ; \
+	  rm -rf $(pkgname)-$$version ; \
+	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/l/sdl/sdl2-image/Makefile b/packages/l/sdl/sdl2-image/Makefile
new file mode 100644
index 0000000..d42857e
--- /dev/null
+++ b/packages/l/sdl/sdl2-image/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libsdl.org
+#
+# Downloads:
+# =========
+# https://www.libsdl.org/projects/SDL_image/release
+#
+
+url         = https://www.libsdl.org/projects/SDL_image/release
+
+versions    = 2.0.0 2.6.3
+
+pkgname     = SDL2_image
+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/l/sdl/sdl2-mixer/Makefile b/packages/l/sdl/sdl2-mixer/Makefile
new file mode 100644
index 0000000..2f8103e
--- /dev/null
+++ b/packages/l/sdl/sdl2-mixer/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libsdl.org
+#
+# Downloads:
+# =========
+# https://www.libsdl.org/projects/SDL_mixer/release
+#
+
+url         = https://www.libsdl.org/projects/SDL_mixer/release
+
+versions    = 2.0.0 2.6.3
+
+pkgname     = SDL2_mixer
+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/l/sdl/sdl2-net/Makefile b/packages/l/sdl/sdl2-net/Makefile
new file mode 100644
index 0000000..0c8f27e
--- /dev/null
+++ b/packages/l/sdl/sdl2-net/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libsdl.org
+#
+# Downloads:
+# =========
+# https://www.libsdl.org/projects/SDL_net/release
+#
+
+url         = https://www.libsdl.org/projects/SDL_net/release
+
+versions    = 2.0.0 2.2.0
+
+pkgname     = SDL2_net
+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/l/sdl/sdl2-ttf/Makefile b/packages/l/sdl/sdl2-ttf/Makefile
new file mode 100644
index 0000000..3d0b69c
--- /dev/null
+++ b/packages/l/sdl/sdl2-ttf/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libsdl.org
+#
+# Downloads:
+# =========
+# https://www.libsdl.org/projects/SDL_ttf/release
+#
+
+url         = https://www.libsdl.org/projects/SDL_ttf/release
+
+versions    = 2.0.12 2.20.2
+
+pkgname     = SDL2_ttf
+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/l/sdl/sdl2/Makefile b/packages/l/sdl/sdl2/Makefile
new file mode 100644
index 0000000..c69c295
--- /dev/null
+++ b/packages/l/sdl/sdl2/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://www.libsdl.org
+#
+# Downloads:
+# =========
+# https://www.libsdl.org/release
+#
+
+url         = http://www.libsdl.org/release
+
+versions    = 2.0.3 2.26.3
+
+pkgname     = SDL2
+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/l/serf/Makefile b/packages/l/serf/Makefile
new file mode 100644
index 0000000..f43389c
--- /dev/null
+++ b/packages/l/serf/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://serf.apache.org
+#
+# Downloads:
+# =========
+# https://serf.apache.org/download
+# https://downloads.apache.org/serf
+#
+
+url         = https://downloads.apache.org/serf
+
+versions    = 1.3.9
+
+pkgname     = serf
+suffix      = tar.bz2
+
+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/l/sg3_utils/Makefile b/packages/l/sg3_utils/Makefile
new file mode 100644
index 0000000..1fc1ed7
--- /dev/null
+++ b/packages/l/sg3_utils/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# http://sg.danny.cz/sg/sg3_utils.html
+#
+# Downloads:
+# =========
+# http://sg.danny.cz/sg/p
+#
+
+url         = http://sg.danny.cz/sg/p
+
+versions    = 1.36 1.39 1.41 1.44 1.45 1.47
+
+pkg_name    = sg3_utils
+suffix      = tar.xz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkg_name)-, $(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/l/shared-mime-info/Makefile b/packages/l/shared-mime-info/Makefile
new file mode 100644
index 0000000..e1c55c1
--- /dev/null
+++ b/packages/l/shared-mime-info/Makefile
@@ -0,0 +1,66 @@
+#
+# Project Home:
+# ============
+# https://freedesktop.org/wiki/Software/shared-mime-info
+#
+# GitHub:
+# ======
+# https://gitlab.freedesktop.org/xdg/shared-mime-info
+#
+
+url         = https://gitlab.freedesktop.org/xdg/shared-mime-info.git
+
+repo_name   = shared-mime-info
+
+versions    = 2.1 2.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)
+	@git clone $(url) $(repo_name)
+	@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 submodule update --init ; \
+	      git archive --format=tar --prefix=$(repo_name)-$${version}/ --output=../$(repo_name)-$${version}.tar $${tag} ; \
+	      cmd="git submodule foreach --recursive 'git archive --format=tar --prefix=$(repo_name)-$${version}/\$$sm_path/ HEAD --output=\$$toplevel/../$(repo_name)-$${version}-sub-\$$sha1.tar'" ; \
+	      eval $${cmd} ; \
+	    ) ; \
+	    tar --concatenate --file $(repo_name)-$${version}.tar $(repo_name)-$${version}-sub-*.tar ; \
+	    rm -f $(repo_name)-$${version}-sub-*.tar ; \
+	    xz $(repo_name)-$${version}.tar ; \
+	  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/l/slang/Makefile b/packages/l/slang/Makefile
new file mode 100644
index 0000000..c504271
--- /dev/null
+++ b/packages/l/slang/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://www.jedsoft.org/slang
+#
+# Downloads:
+# =========
+# https://www.jedsoft.org/releases/slang
+#
+
+url         = https://www.jedsoft.org/releases/slang
+
+versions    = 2.3.2
+
+pkgname     = slang
+suffix      = tar.bz2
+
+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 \
+	  wget -N $(url)/$(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/l/termcap-compat/Makefile b/packages/l/termcap-compat/Makefile
new file mode 100644
index 0000000..9ec99fa
--- /dev/null
+++ b/packages/l/termcap-compat/Makefile
@@ -0,0 +1,43 @@
+#
+# Downloads:
+# =========
+# http://archive.debian.org/debian-archive/debian/pool/main/t/termcap-compat/
+# http://ftp.de.debian.org/debian-archive/debian/pool/main/t/termcap-compat/
+# ftp://ftp.de.debian.org/debian-archive/debian/pool/main/t/termcap-compat/
+
+url         = ftp://ftp.de.debian.org/debian-archive/debian/pool/main/t/termcap-compat
+
+versions    = 1.2.3
+
+pkgname     = termcap-compat
+suffix      = tar.gz
+
+tarballs     = $(addsuffix .$(suffix), $(addprefix $(pkgname)_, $(versions)))
+descriptions = $(addsuffix .dsc, $(addprefix $(pkgname)_, $(versions)))
+sha1s        = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(descriptions) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  wget -N $(url)/$$tarball ; \
+	done
+
+$(descriptions):
+	@echo -e "\n======= Downloading source descriptions =======\n"
+	@for description in $(descriptions) ; do \
+	  wget -N $(url)/$$description ; \
+	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) $(descriptions) $(sha1s)
diff --git a/packages/l/tidy-html5/Makefile b/packages/l/tidy-html5/Makefile
new file mode 100644
index 0000000..e2168b5
--- /dev/null
+++ b/packages/l/tidy-html5/Makefile
@@ -0,0 +1,63 @@
+#
+# Project Home:
+# ============
+#   https://www.html-tidy.org/
+#
+# Downloads:
+# =========
+#   https://github.com/htacg/tidy-html5
+#
+# GitHub:
+# ======
+#   https://github.com/htacg/tidy-html5.git
+#
+
+url        = https://github.com/htacg
+
+repo_name  = tidy-html5
+pkg_name   = tidy-html5
+suffix     = tar.xz
+
+versions   = 5.8.0
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; 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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/tslib/Makefile b/packages/l/tslib/Makefile
new file mode 100644
index 0000000..c7184d2
--- /dev/null
+++ b/packages/l/tslib/Makefile
@@ -0,0 +1,59 @@
+#
+# Project Home:
+# ============
+#   https://github.com/libts/tslib
+#
+# Clone:
+# =====
+#   https://github.com/libts/tslib.git
+#
+
+url        = https://github.com/libts
+
+repo_name  = tslib
+pkg_name   = tslib
+suffix     = tar.xz
+
+versions   = 1.22
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 version in $(versions) ; 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=$(pkg_name)-$$version/ $$tag | \
+	      xz >../$(pkg_name)-$$version.$(suffix) ) ; \
+	  fi ; \
+	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)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/l/unidata/Makefile b/packages/l/unidata/Makefile
new file mode 100644
index 0000000..4ad25d4
--- /dev/null
+++ b/packages/l/unidata/Makefile
@@ -0,0 +1,26 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := netcdf-c       \
+           netcdf-cxx     \
+           netcdf-fortran
+
+
+all-recursive downloads_clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  local_target="$$target"; \
+	  (cd $$subdir && $(MAKE) $$fnord $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; test -z "$$fail"
+
+all: all-recursive
+
+downloads_clean: downloads_clean-recursive
+
+.PHONY: all-recursive downloads_clean-recursive all downloads_clean
diff --git a/packages/l/unidata/netcdf-c/Makefile b/packages/l/unidata/netcdf-c/Makefile
new file mode 100644
index 0000000..85dffec
--- /dev/null
+++ b/packages/l/unidata/netcdf-c/Makefile
@@ -0,0 +1,71 @@
+# Project Home:
+# ============
+# https://www.unidata.ucar.edu
+#
+# GitHub:
+# ======
+# https://github.com/Unidata/netcdf-c
+#
+# Downloads:
+# =========
+# https://downloads.unidata.ucar.edu/netcdf
+# ftp://ftp.unidata.ucar.edu/pub/netcdf
+#
+
+url        = https://github.com/Unidata
+
+repo_name  = netcdf-c
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = d56c50491692659e3769750d44398ddd9c84d05e:4.9.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/l/unidata/netcdf-cxx/Makefile b/packages/l/unidata/netcdf-cxx/Makefile
new file mode 100644
index 0000000..52737d0
--- /dev/null
+++ b/packages/l/unidata/netcdf-cxx/Makefile
@@ -0,0 +1,71 @@
+# Project Home:
+# ============
+# https://www.unidata.ucar.edu
+#
+# GitHub:
+# ======
+# https://github.com/Unidata/netcdf-cxx4
+#
+# Downloads:
+# =========
+# https://downloads.unidata.ucar.edu/netcdf
+# ftp://ftp.unidata.ucar.edu/pub/netcdf
+#
+
+url        = https://github.com/Unidata
+
+repo_name  = netcdf-cxx4
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = f8882188267488ef801691e69ad072e3eb217ad8:4.3.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/l/unidata/netcdf-fortran/Makefile b/packages/l/unidata/netcdf-fortran/Makefile
new file mode 100644
index 0000000..b5732ea
--- /dev/null
+++ b/packages/l/unidata/netcdf-fortran/Makefile
@@ -0,0 +1,71 @@
+# Project Home:
+# ============
+# https://www.unidata.ucar.edu
+#
+# GitHub:
+# ======
+# https://github.com/Unidata/netcdf-fortran
+#
+# Downloads:
+# =========
+# https://downloads.unidata.ucar.edu/netcdf
+# ftp://ftp.unidata.ucar.edu/pub/netcdf
+#
+
+url        = https://github.com/Unidata
+
+repo_name  = netcdf-fortran
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = f722fc0c7f1091098a575beb2c2e5dbb23ffb644:4.6.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/l/usbids/Makefile b/packages/l/usbids/Makefile
new file mode 100644
index 0000000..4cffcdc
--- /dev/null
+++ b/packages/l/usbids/Makefile
@@ -0,0 +1,36 @@
+#
+# Project Home:
+# ============
+# http://www.linux-usb.org
+#
+# Downloads:
+# =========
+# http://www.linux-usb.org/usb.ids
+#
+
+url         = http://www.linux-usb.org
+
+version     = $(shell echo `date +%Y%m%d`)
+pkgname     = usbids
+suffix      = tar.xz
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(version)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@wget -N $(url)/usb.ids
+	@tar cJvf $(tarball) usb.ids
+	@rm -f usb.ids
+
+$(sha1s): $(tarball)
+	@echo -e "\n======= Calculation the '$(tarball)' sha1sum =======\n"
+	@sha1sum --binary $(tarball) > $(tarball).sha1sum ; \
+
+downloads_clean:
+	@rm -rf $(pkgname)-*$(suffix) $(pkgname)-*$(suffix).sha1sum
diff --git a/packages/l/utf8proc/Makefile b/packages/l/utf8proc/Makefile
new file mode 100644
index 0000000..47169df
--- /dev/null
+++ b/packages/l/utf8proc/Makefile
@@ -0,0 +1,61 @@
+#
+# Project Home:
+# ============
+# https://github.com/JuliaStrings/utf8proc
+#
+# GitHub:
+# ======
+# https://github.com/JuliaStrings/utf8proc
+# https://github.com/JuliaStrings/utf8proc.git
+#
+
+url         = https://github.com/JuliaStrings/utf8proc.git
+
+repo_name   = utf8proc
+
+versions    = 2.7.0
+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)
+	@git clone $(url) $(repo_name)
+	@touch $@
+
+
+$(tarballs): $(git_repo)
+	@for version in $(TAGS) ; do \
+	  tag=v`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 ; \
+	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/l/v4l-utils/Makefile b/packages/l/v4l-utils/Makefile
new file mode 100644
index 0000000..2db1ab3
--- /dev/null
+++ b/packages/l/v4l-utils/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://linuxtv.org
+#
+# Downloads:
+# =========
+# https://linuxtv.org/downloads/v4l-utils
+#
+
+url         = https://linuxtv.org/downloads/v4l-utils
+
+versions    = 0.9.5 1.6.0 1.6.2 1.8.1 1.10.0 1.10.1 1.24.1
+
+pkgname     = v4l-utils
+suffix      = tar.bz2
+
+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/l/zeromq/Makefile b/packages/l/zeromq/Makefile
new file mode 100644
index 0000000..b5c684e
--- /dev/null
+++ b/packages/l/zeromq/Makefile
@@ -0,0 +1,74 @@
+#
+# Project Home:
+# ============
+# https://zeromq.org
+#
+# GitHub:
+# ======
+# https://github.com/zeromq/libzmq
+#
+#
+
+url        = https://github.com/zeromq
+
+repo_name  = libzmq
+pkg_name   = libzmq
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 4097855ddaaa65ed7b5e8cb86d143842a594eebd:4.3.4
+
+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 $(pkg_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 ; \
+	  tar xJf $(pkg_name)-$$version.$(suffix) ; \
+	  ( cd $(pkg_name)-$$version ; \
+	    ./autogen.sh ; rm -rf autom4te.cache .clang* .git* .hgeol .mailmap .travis.yml ) ; \
+	  tar cJf $(pkg_name)-$$version.$(suffix) $(pkg_name)-$$version ; \
+	  rm -rf $(pkg_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/l/zlib/Makefile b/packages/l/zlib/Makefile
new file mode 100644
index 0000000..060d4a3
--- /dev/null
+++ b/packages/l/zlib/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# https://www.zlib.net/
+#
+# Downloads:
+# =========
+# https://zlib.net/
+#
+
+url         = https://zlib.net
+
+versions    = 1.2.13
+
+pkgname     = zlib
+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 \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\(.*\)\(.tar.xz\)/\2/'` ; \
+	  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/l/zstd/Makefile b/packages/l/zstd/Makefile
new file mode 100644
index 0000000..be8a04e
--- /dev/null
+++ b/packages/l/zstd/Makefile
@@ -0,0 +1,62 @@
+#
+# Project Home:
+# ============
+# https://github.com/facebook/zstd
+#
+# GitHub:
+# ======
+# https://github.com/facebook/zstd
+# https://github.com/facebook/zstd.git
+#
+
+url         = https://github.com/facebook
+
+repo_name   = zstd
+
+versions    = 1.4.3 1.4.8 1.5.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)
+	@git clone $(url)/$(repo_name).git $(repo_name)
+	@touch $@
+
+
+$(tarballs): $(git_repo)
+	@for version in $(TAGS) ; do \
+	  tag=v`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 ; \
+	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)