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-11 06:54:40 +0300 committer: kx <kx@radix.pro> 2023-04-11 06:54:40 +0300 commit: 19dc4c5d37a41a6fa8b1076b568191d0b61389c2 parent: 616e36d9e9e3e56af1ea2db055012b77863d09e6
Commit Summary:
applications
Diffstat:
188 files changed, 6951 insertions, 1 deletion
diff --git a/packages/Makefile b/packages/Makefile
index 70a1471..e1262b3 100644
--- a/packages/Makefile
+++ b/packages/Makefile
@@ -4,7 +4,8 @@
 # $ tree -fid .
 #
 
-SUBDIRS := b \
+SUBDIRS := a \
+           b \
            d \
            j \
            l \
diff --git a/packages/a/CLooG/Makefile b/packages/a/CLooG/Makefile
new file mode 100644
index 0000000..269c99d
--- /dev/null
+++ b/packages/a/CLooG/Makefile
@@ -0,0 +1,36 @@
+#
+# Project Home:
+# ============
+#   https://bugseng.com/products/ppl/
+#
+# Downloads:
+# =========
+#   ftp://ftp.cs.unipr.it/pub/ppl/releases/
+#
+
+url         = http://www.bastoul.net/cloog/pages/download/
+
+versions    = 0.18.1 0.18.2 0.18.4
+
+tarballs    = $(addsuffix .tar.gz, $(addprefix cloog-, $(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/a/CLooG/cloog-description.txt b/packages/a/CLooG/cloog-description.txt
new file mode 100644
index 0000000..2fe9f74
--- /dev/null
+++ b/packages/a/CLooG/cloog-description.txt
@@ -0,0 +1,71 @@
+
+http://www.bastoul.net/cloog/index.php
+======================================
+
+CLooG is a free software and library to generate code for scanning Z-polyhedra.
+That is, it finds a code (e.g. in C, FORTRAN...) that reaches each integral point
+of one or more parameterized polyhedra. CLooG has been originally written to solve
+the code generation problem for optimizing compilers based on the polytope model.
+Nevertheless it is used now in various area e.g. to build control automata for
+high-level synthesis or to find the best polynomial approximation of a function.
+CLooG may help in any situation where scanning polyhedra matters. While the user
+has full control on generated code quality, CLooG is designed to avoid control
+overhead and to produce a very effective code.
+
+
+http://www.cloog.org/
+====================
+
+CLooG 0.18.1: official and recommended isl-based version (updated: October 11th, 2013).
+
+CLooG comes with an embedded version of isl so you should not need to install any polyhedral
+library if you don't have one. In any other case please check the documentation page
+[http://www.bastoul.net/cloog/documentation.php].
+
+The current version is a major step since 0.14.x, including a much better API. The "old way"
+to interface with CLooG should still work, however we plan to remove it for the next major
+version, so please update... The new version is still under evaluation, and there is no
+guarantee that the upward compatibility will be respected. A lot of reports are needed to
+freeze the library API and the input file shape. So you are very welcome and encouraged to
+send reports on bugs, wishes, critics, comments, suggestions or successful experiences to
+the according mailing list, see the documentation page.
+
+Requirement
+===========
+
+    GMP 5.0.2 (or any later version).
+
+  The embedded version of isl used by CLooG needs the GNU Multiple Precision Arithmetic Library.
+  It should be installed in your system before trying to install CLooG. At the moment, isl offers
+  only multiple precision (no 32 bits nor 64 bits: if you need such a version you should consider
+  either CLooG-polylib or CLooG-parma, please check the documentation for those versions).
+  Once GMP is downloaded and unpacked (e.g., using the "tar -jxvf gmp-4.3.2.tar.bz2" command),
+  you can compile it by typing the following commands on GMP's root directory:
+
+    ./configure --prefix=/usr
+    make
+    And as root: make install
+
+  If you install GMP this way, it should be OK. If you are doing another way and you are experiencing
+  problems, please have a look at the documentation on installation. If nothing works for you, ask us
+  using the according mailing list (see documentation page).
+
+Development Version
+===================
+
+    http://repo.or.cz/w/cloog.git (Official repository of CLooG). 
+
+  To benefit from the latest improvements and bug fixes you can try the development version of
+  CLooG: A major improvement is the support of multiple backends, not only PolyLib.
+  CLooG is now supporting PPL and the isl (Integer Set Library) is the default backend.
+  Because isl does not rely on rationals, CLooG is able to generate significantly better codes,
+  with low control overhead. To compile the development version of CLooG with the isl backend:
+
+    git clone git://repo.or.cz/cloog.git
+    cd cloog
+    ./get_submodules.sh
+    ./autogen.sh
+    ./configure --with-gmp-prefix=/path/to/gmp/installation
+    make
+    And as root: make install
+
diff --git a/packages/a/CLooG/cloog.pdf b/packages/a/CLooG/cloog.pdf
new file mode 100644
index 0000000..53fcfe3
Binary files /dev/null and b/packages/a/CLooG/cloog.pdf differ
diff --git a/packages/a/Makefile b/packages/a/Makefile
new file mode 100644
index 0000000..d8ed7b9
--- /dev/null
+++ b/packages/a/Makefile
@@ -0,0 +1,184 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := CLooG                  \
+           acl                    \
+           acpid                  \
+           adjtimex               \
+           apcupsd                \
+           ash                    \
+           at                     \
+           attr                   \
+           banners                \
+           bpe                    \
+           bsdstrings             \
+           btrfs-progs            \
+           bzip2                  \
+           c2man                  \
+           can-utils              \
+           cpufrequtils           \
+           cryptsetup             \
+           ctags                  \
+           cups                   \
+           cups-filters           \
+           cups-xp                \
+           db                     \
+           dbus                   \
+           dc3dd                  \
+           dcron                  \
+           debianutils            \
+           devs-debian            \
+           dialog                 \
+           diffstat               \
+           dmidecode              \
+           dosfstools             \
+           e2fsprogs              \
+           efibootmgr             \
+           efivar                 \
+           eject                  \
+           elilo                  \
+           elogind                \
+           elvis                  \
+           eudev                  \
+           fakeroot               \
+           fdutils                \
+           file                   \
+           foomatic-db            \
+           foomatic-db-engine     \
+           foomatic-db-nonfree    \
+           foomatic-filters       \
+           genext2fs              \
+           genpower-debian        \
+           ghostscript            \
+           ghostscript-fonts-std  \
+           gphoto2                \
+           gpm                    \
+           gptfdisk               \
+           gutenprint             \
+           hdparm                 \
+           hplip                  \
+           htop                   \
+           i2c-tools              \
+           infozip                \
+           inih                   \
+           inotify-tools          \
+           isapnptools            \
+           ispell                 \
+           itstool                \
+           jbigkit                \
+           jed                    \
+           jfsutils               \
+           joe                    \
+           jove                   \
+           jsmin                  \
+           kbd                    \
+           kmod                   \
+           less                   \
+           libcgroup              \
+           lilo                   \
+           linuxconsole           \
+           linuxdoc-tools         \
+           lm-sensors             \
+           logrotate              \
+           lrzip                  \
+           lshw                   \
+           lsof                   \
+           lsscsi                 \
+           lua                    \
+           lvm2                   \
+           lxc                    \
+           lzip                   \
+           man                    \
+           man-db                 \
+           man-pages              \
+           man-pages-posix        \
+           man2html               \
+           mc                     \
+           mcelog                 \
+           mdadm                  \
+           minicom                \
+           mktemp                 \
+           mlocate                \
+           most                   \
+           mt-st                  \
+           mtd-utils              \
+           mtx                    \
+           nano                   \
+           ncompress              \
+           nvme-cli               \
+           os-prober              \
+           patchelf               \
+           pciutils               \
+           pcmciautils            \
+           pkgtools               \
+           pm-utils               \
+           po4a                   \
+           populatefs             \
+           powertop               \
+           procinfo               \
+           procinfo-ng            \
+           procps                 \
+           procps-ng              \
+           pseudo                 \
+           psmisc                 \
+           psmisc-ng              \
+           psutils                \
+           qpdf                   \
+           quota                  \
+           radeontool             \
+           reiserfsprogs          \
+           rpm                    \
+           rzip                   \
+           sash                   \
+           sc                     \
+           sdparm                 \
+           seejpeg                \
+           setserial              \
+           shadow                 \
+           smartmontools          \
+           splitvt                \
+           squashfs-tools         \
+           sudo                   \
+           sysfsutils             \
+           sysklogd               \
+           syslinux               \
+           sysstat                \
+           sysvinit               \
+           tcsh                   \
+           tmux                   \
+           todos                  \
+           tree                   \
+           udisks                 \
+           udisks2                \
+           upower                 \
+           usb-modeswitch         \
+           usb-modeswitch-data    \
+           usbutils               \
+           utempter               \
+           util-linux             \
+           vim                    \
+           xfs                    \
+           xz                     \
+           ziptool                \
+           zoo                    \
+           zsh
+
+
+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/a/acl/Makefile b/packages/a/acl/Makefile
new file mode 100644
index 0000000..86ebcd5
--- /dev/null
+++ b/packages/a/acl/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://savannah.nongnu.org/projects/acl
+#
+# Downloads:
+# =========
+#   https://download.savannah.gnu.org/releases/acl
+#
+
+url         = https://download.savannah.gnu.org/releases/acl
+
+versions    = 2.3.1
+
+pkgname     = acl
+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/a/acpid/Makefile b/packages/a/acpid/Makefile
new file mode 100644
index 0000000..6c74ca1
--- /dev/null
+++ b/packages/a/acpid/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/acpid2
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/acpid2
+#
+
+url         = https://downloads.sourceforge.net/acpid2
+
+versions    = 2.0.21 2.0.22 2.0.26 2.0.32 2.0.34
+
+pkg_name    = acpid
+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/a/adjtimex/Makefile b/packages/a/adjtimex/Makefile
new file mode 100644
index 0000000..db18dc4
--- /dev/null
+++ b/packages/a/adjtimex/Makefile
@@ -0,0 +1,68 @@
+#
+# Project Home:
+# ============
+#   https://github.com/rogers0/adjtimex
+#
+# Downloads:
+# =========
+#   https://github.com/rogers0/adjtimex/releases
+#
+
+url        = https://github.com/rogers0
+
+repo_name  = adjtimex
+
+#
+# List of upstream versions to be extracted:
+# =========================================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = f467707ac91d352c1266ab712cb152793f0ddb3e:1.28
+revisions += 007e825ffb1c67628235d94fcbe5b9b88e5012d7:1.29
+
+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/a/apcupsd/Makefile b/packages/a/apcupsd/Makefile
new file mode 100644
index 0000000..a3d4ea6
--- /dev/null
+++ b/packages/a/apcupsd/Makefile
@@ -0,0 +1,44 @@
+#
+# Project Home:
+# ============
+#   https://www.apcupsd.org
+#   https://apcupsd.sourceforge.net
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/apcupsd/apcupsd - Stable/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/apcupsd/apcupsd%20-%20Stable
+
+versions    = 3.14.12 3.14.13 3.14.14
+
+pkg_name    = apcupsd
+arch_type   = tar.gz
+suffixes    = $(arch_type) $(arch_type).sig
+
+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 source tarballs =======\n"
+	@for version in $(versions) ; do \
+	  for suffix in $(suffixes) ; do \
+	    wget -N $(url)/$$version/$(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 -rf $(files) $(sha1s)
diff --git a/packages/a/ash/Makefile b/packages/a/ash/Makefile
new file mode 100644
index 0000000..6c164ea
--- /dev/null
+++ b/packages/a/ash/Makefile
@@ -0,0 +1,37 @@
+#
+# Project Home:
+# ============
+#   https://www.in-ulm.de/~mascheck/various/ash
+#
+# Downloads:
+# =========
+#   https://mirrors.slackware.com/slackware/slackware64-14.2/source/ap/ash
+#
+
+url         = https://mirrors.slackware.com/slackware/slackware64-14.2/source/ap/ash
+
+version     = 0.4.0
+pkgname     = ash
+suffix      = tar.gz
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-,$(version)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	@wget -N $(url)/$(tarball)
+
+$(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 $(tarball) $(sha1s)
diff --git a/packages/a/at/Makefile b/packages/a/at/Makefile
new file mode 100644
index 0000000..8102403
--- /dev/null
+++ b/packages/a/at/Makefile
@@ -0,0 +1,47 @@
+#
+# Project Home:
+# ============
+# -
+#
+# Downloads:
+# =========
+#   http://software.calhariz.com/at
+#
+
+url         = http://software.calhariz.com/at
+
+versions    = 3.1.16 3.1.20 3.1.23 3.2.1 3.2.4 3.2.5
+
+pkgname     = at
+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.orig.tar.gz ; \
+	  if [ "$$version" == "3.1.18" ] ; then \
+	    mkdir $(pkgname)-$$version ; \
+	    tar xzf $(pkgname)_$$version.orig.tar.gz -C $(pkgname)-$$version ; \
+	  else \
+	    tar xzf $(pkgname)_$$version.orig.tar.gz ; \
+	  fi ; \
+	  tar czf $(pkgname)-$$version.$(suffix) $(pkgname)-$$version ; \
+	  rm -rf $(pkgname)-$$version $(pkgname)_$$version.orig.tar.gz ; \
+	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/a/attr/Makefile b/packages/a/attr/Makefile
new file mode 100644
index 0000000..2fe8d92
--- /dev/null
+++ b/packages/a/attr/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://savannah.nongnu.org/projects/attr
+#
+# Downloads:
+# =========
+#   https://download.savannah.gnu.org/releases/attr
+#
+
+url         = https://download.savannah.gnu.org/releases/attr
+
+versions    = 2.5.1
+
+pkgname     = attr
+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/a/banners/Makefile b/packages/a/banners/Makefile
new file mode 100644
index 0000000..52b6c49
--- /dev/null
+++ b/packages/a/banners/Makefile
@@ -0,0 +1,36 @@
+#
+# Project Home:
+# ============
+#   https://slackware.com
+#
+# Downloads:
+# =========
+#   https://mirrors.slackware.com/slackware/slackware-14.1/source/a/bin
+#
+
+url         = https://mirrors.slackware.com/slackware/slackware-14.1/source/a/bin
+
+pkgname     = banners
+suffix      = tar.gz
+
+tarball     = $(addsuffix .$(suffix), $(pkgname))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	wget -N $(url)/$(tarball)
+
+$(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 $(tarball) $(sha1s)
diff --git a/packages/a/banners/README.TXT b/packages/a/banners/README.TXT
new file mode 100644
index 0000000..84999a8
--- /dev/null
+++ b/packages/a/banners/README.TXT
@@ -0,0 +1,8 @@
+
+/*
+  banners:
+  -------
+
+  Original package is lost forever, a copy exists only in slackware sources.
+
+ */
diff --git a/packages/a/bpe/Makefile b/packages/a/bpe/Makefile
new file mode 100644
index 0000000..177266b
--- /dev/null
+++ b/packages/a/bpe/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/bpe
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/bpe/BPE/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/bpe/BPE
+
+versions    = 2.01.00
+
+pkgname     = bpe
+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)/$$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/a/bsdstrings/Makefile b/packages/a/bsdstrings/Makefile
new file mode 100644
index 0000000..44afb52
--- /dev/null
+++ b/packages/a/bsdstrings/Makefile
@@ -0,0 +1,36 @@
+#
+# Project Home:
+# ============
+#   https://slackware.com
+#
+# Downloads:
+# =========
+#   https://mirrors.slackware.com/slackware/slackware-14.1/source/a/util-linux
+#
+
+url         = https://mirrors.slackware.com/slackware/slackware-14.1/source/a/util-linux
+
+pkgname     = bsdstrings
+suffix      = tar.gz
+
+tarball     = $(addsuffix .$(suffix), $(pkgname))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	wget -N $(url)/$(tarball)
+
+$(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 $(tarball) $(sha1s)
diff --git a/packages/a/btrfs-progs/Makefile b/packages/a/btrfs-progs/Makefile
new file mode 100644
index 0000000..d45a70b
--- /dev/null
+++ b/packages/a/btrfs-progs/Makefile
@@ -0,0 +1,69 @@
+#
+# Project Home:
+# ============
+#   https://btrfs.readthedocs.io
+#
+# CGit:
+#   https://git.kernel.org/cgit/linux/kernel/git/mason/btrfs-progs.git
+#
+# Clone:
+# =====
+#   git clone git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git
+#
+
+url        = https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
+
+repo_name  = btrfs-progs
+
+versions   = 3.16 4.4 5.3 5.10.1 5.11 5.15.1 6.2.2
+
+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)
+	@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 $(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/a/bzip2/Makefile b/packages/a/bzip2/Makefile
new file mode 100644
index 0000000..854b092
--- /dev/null
+++ b/packages/a/bzip2/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   http://www.bzip.org/
+#
+# Downloads:
+# =========
+#   https://sourceware.org/pub/bzip2/
+#
+
+url         = https://sourceware.org/pub/bzip2
+
+versions    = 1.0.5 1.0.6 1.0.8
+
+pkgname     = bzip2
+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)/$$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/a/c2man/Makefile b/packages/a/c2man/Makefile
new file mode 100644
index 0000000..2fc134e
--- /dev/null
+++ b/packages/a/c2man/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+#   http://www.ciselant.de/c2man/c2man.html
+#
+# Downloads:
+# =========
+#   http://www.ciselant.de/c2man/c2man-2.0@42.tar.gz
+#
+
+url         = http://www.ciselant.de/c2man
+
+versions    = 2.0.42
+pkgname     = c2man
+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 \
+	  ver=`echo $$version | sed 's,2.0.,2.0@,'` ; \
+	  wget -N $(url)/$(pkgname)-$${ver}.$(suffix) ; \
+	  mkdir $(pkgname)-$${version} ; \
+	  tar -C $(pkgname)-$${version} -xf $(pkgname)-$${ver}.$(suffix) ; \
+	  tar -czvf $(pkgname)-$${version}.$(suffix) $(pkgname)-$${version} ; \
+	  rm -rf $(pkgname)-$${version} $(pkgname)-$${ver}.$(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/a/can-utils/Makefile b/packages/a/can-utils/Makefile
new file mode 100644
index 0000000..87d38a3
--- /dev/null
+++ b/packages/a/can-utils/Makefile
@@ -0,0 +1,72 @@
+#
+# Project Home:
+# ============
+#   https://github.com/linux-can/can-utils
+#
+# Clone:
+# =====
+#   git clone https://github.com/linux-can/can-utils.git
+#
+
+url        = https://github.com/linux-can
+
+repo_name  = can-utils
+
+#
+# List of tags to be extracted:
+# ============================
+#
+#                                               hash | version
+#            ----------------------------------------+--------
+revisions  = 791890542ac1ce99131f36435e72af5635afc2fa:0.0.1
+revisions += eb66451df280f95a9a12e78b151b8d867e1b78ed:2020.12.0
+revisions += cfe41963f3425e9adb01a70cfaddedf5e5982720:2023.03.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 \
+	  version=`echo $$revision | cut -f 2 -d ':'` ; \
+	  hash=`echo $$revision | cut -f 1 -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) ) ; \
+	    tar xJf $(repo_name)-$$version.$(suffix) ; \
+	    ( cd $(repo_name)-$$version ; ./autogen.sh ; make distclean ; rm -rf autom4te.cache ) ; \
+	    tar cJf $(repo_name)-$$version.$(suffix) $(repo_name)-$$version ; \
+	    rm -rf $(repo_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/a/cpufrequtils/Makefile b/packages/a/cpufrequtils/Makefile
new file mode 100644
index 0000000..320e0ce
--- /dev/null
+++ b/packages/a/cpufrequtils/Makefile
@@ -0,0 +1,40 @@
+#
+# Downloads:
+# =========
+#   https://www.kernel.org/pub/linux/utils/kernel/cpufreq/
+#
+
+url       = https://www.kernel.org/pub/linux/utils/kernel/cpufreq
+
+versions  = 008
+
+pkg_name  = cpufrequtils
+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/a/cryptsetup/Makefile b/packages/a/cryptsetup/Makefile
new file mode 100644
index 0000000..68a88b6
--- /dev/null
+++ b/packages/a/cryptsetup/Makefile
@@ -0,0 +1,47 @@
+#
+# Project Home:
+# ============
+#   https://code.google.com/p/cryptsetup
+#
+# Downloads:
+# =========
+#   ftp://ftp.kernel.org/pub/linux/utils/cryptsetup
+#   https://www.kernel.org/pub/linux/utils/cryptsetup
+#
+
+
+url       = https://www.kernel.org/pub/linux/utils
+
+versions  = 1.4.3 1.6.6 1.7.0 2.3.5 2.6.1
+
+pkg_name  = cryptsetup
+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 \
+	  major_minor=`echo $$version | sed 's/\([0-9][.][0-9]*\)\([\.].*\)/\1/'` ; \
+	  for suffix in $(suffixes) ; do \
+	    wget -N $(url)/$(pkg_name)/v$$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/a/ctags/Makefile b/packages/a/ctags/Makefile
new file mode 100644
index 0000000..2206b7d
--- /dev/null
+++ b/packages/a/ctags/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://ctags.sourceforge.net
+#
+# Downloads:
+# =========
+#   https://sourceforge.net/projects/ctags/files/ctags/$(VERSION)/
+#
+
+url         = https://sourceforge.net/projects/ctags/files/ctags
+
+versions    = 5.7 5.8
+pkgname     = ctags
+suffix      = tar.gz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([0-9][.0-9][0-9]*\)\([\.].*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$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/a/cups-filters/Makefile b/packages/a/cups-filters/Makefile
new file mode 100644
index 0000000..8185ad0
--- /dev/null
+++ b/packages/a/cups-filters/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://openprinting.github.io
+#
+# Downloads:
+# =========
+#   https://www.openprinting.org/download/cups-filters
+#
+
+url         = https://www.openprinting.org/download/cups-filters
+
+versions    = 1.0.61 1.0.76 1.7.0 1.8.1 1.8.3 1.9.0 1.28.7 1.28.16
+
+pkgname     = cups-filters
+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/a/cups-xp/Makefile b/packages/a/cups-xp/Makefile
new file mode 100644
index 0000000..5106862
--- /dev/null
+++ b/packages/a/cups-xp/Makefile
@@ -0,0 +1,47 @@
+#
+# Project Home:
+# ============
+# ... deprecated ...
+#
+# Downloads:
+# =========
+#   http://ftp.ntua.gr/mirror/gnu/cups/windows
+#
+
+url         = http://ftp.ntua.gr/mirror/gnu/cups/windows
+
+suffix      = tar.gz
+
+tarballs    = cups-samba-5.0rc3.tar.gz
+tarballs   += cups-windows-6.0-source.tar.gz
+
+files       = cups-windows-psprint.patch.gz
+files      += cups-windows-psprint.readme
+
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+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):
+	@echo -e "\n======= Downloading source tarballs =======\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/a/cups/Makefile b/packages/a/cups/Makefile
new file mode 100644
index 0000000..091e6cd
--- /dev/null
+++ b/packages/a/cups/Makefile
@@ -0,0 +1,63 @@
+#
+# Project Home:
+# ============
+#   https://www.cups.org
+#
+# GitHub:
+# ======
+#   https://github.com/OpenPrinting/cups.git
+#
+# Downloads:
+# =========
+#   https://github.com/OpenPrinting/cups/releases
+#
+
+url        = https://github.com/OpenPrinting
+
+repo_name  = cups
+pkg_name   = cups
+suffix     = tar.xz
+
+versions   = 2.4.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/a/db/Makefile b/packages/a/db/Makefile
new file mode 100644
index 0000000..c321365
--- /dev/null
+++ b/packages/a/db/Makefile
@@ -0,0 +1,52 @@
+#
+# Project Home:
+# ============
+#   https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
+#
+# Downloads:
+# =========
+#   https://download.oracle.com/berkeley-db
+#
+# Instruction:
+# ===========
+#
+# 1) Check newest releases at
+#      https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
+#    page.
+# 2) Download needed archive from
+#      https://download.oracle.com/berkeley-db/
+#    directory.
+#
+# reserved URL:
+# ============
+# url       = https://ftp.radix.pro/3pp/Berkeley-DB
+#
+url         = https://download.oracle.com/berkeley-db
+
+versions    = 5.3.28 6.1.19 6.1.26 18.1.40
+
+pkgname     = db
+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/a/dbus/Makefile b/packages/a/dbus/Makefile
new file mode 100644
index 0000000..043bf14
--- /dev/null
+++ b/packages/a/dbus/Makefile
@@ -0,0 +1,49 @@
+#
+# Project Home:
+# ============
+#   https://www.freedesktop.org/wiki/Software/dbus
+#
+# Downloads:
+# =========
+#   https://www.freedesktop.org/wiki/Software/dbus/#index5h1
+#   https://dbus.freedesktop.org/releases/dbus
+#
+
+url         = https://dbus.freedesktop.org/releases/dbus
+
+versions    = 1.13.12 1.13.18 1.13.22 1.14.6 1.15.4
+
+pkgname     = dbus
+suffix      = tar.xz
+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/a/dc3dd/Makefile b/packages/a/dc3dd/Makefile
new file mode 100644
index 0000000..4c57616
--- /dev/null
+++ b/packages/a/dc3dd/Makefile
@@ -0,0 +1,46 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/dc3dd
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/dc3dd/dc3dd/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/dc3dd/dc3dd
+
+versions    = 7.1.614 7.2.641
+
+pkgname     = dc3dd
+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= ; \
+	  vers=`echo $$tarball | sed 's/\([a-zA-Z0-9-]*\)\([0-9][.0-9]*[.0-9]*\)\(\..*\)/\2/'` ; \
+	  if [ "`echo $$vers | cut -f1,2 -d'.'`" == "7.1" ] ; then \
+	    version=7.1.0 ; \
+	  elif [ "`echo $$vers | cut -f1,2 -d'.'`" == "7.2" ] ; then \
+	    version=7.2 ; \
+	  fi ; \
+	  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/a/dcron/Makefile b/packages/a/dcron/Makefile
new file mode 100644
index 0000000..bf0db4f
--- /dev/null
+++ b/packages/a/dcron/Makefile
@@ -0,0 +1,42 @@
+#
+# Project Home:
+# ============
+#   http://www.jimpryor.net/linux/dcron.html
+#
+# Git:
+# ===
+#   git clone https://github.com/dubiousjim/dcron.git
+#
+# Downloads:
+# =========
+#   http://www.jimpryor.net/linux/releases/dcron-4.5.tar.gz
+#
+
+url         = http://www.jimpryor.net/linux/releases
+
+versions    = 4.4 4.5
+pkg_name    = dcron
+suffix      = tar.gz
+
+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/a/debianutils/Makefile b/packages/a/debianutils/Makefile
new file mode 100644
index 0000000..3a7d474
--- /dev/null
+++ b/packages/a/debianutils/Makefile
@@ -0,0 +1,86 @@
+#
+# Project Home:
+# ============
+#   https://packages.qa.debian.org/d/debianutils.html
+#
+# Downloads:
+# =========
+#   ftp://ftp.de.debian.org/debian/pool/main/d/debianutils
+#
+# NOTE: there is continuation on GitLab: https://salsa.debian.org/debian/debianutils
+#
+
+url        = https://salsa.debian.org/debian
+
+repo_name  = debianutils
+pkg_name   = debianutils
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = ed618f21f29f45d5112dc9d649c64672de2c3761:4.9:debian/4.9
+revisions += 30e9cf773a0924ac46a5ab107b2809cd4ccd141e:4.10:debian/4.10
+revisions += 3e8c46f59fd60562b8f56affdd83015aa2f08b5c:4.11:debian/4.11
+revisions += 1b9341db97c8743fd68579a3f3daa6e6b2584741:4.11.2:debian/4.11.2
+revisions += e8ce1c62d831299e97b5017f95bef717b4130d3c:5.0.1.2:debian/5.0.1-2
+revisions += 9ce402eab0ce149c2202bf74ed7e1e76a04bde0b:5.1.2:debian/5.1-2
+revisions += 90f631713e7d8d987f3e7da233da98cda4fac772:5.2.2:debian/5.2-2
+revisions += 0c99be5da1ad9fee78aad3ac7c7ea2df9dec1c29:5.4.4:debian/5.4-4
+revisions += 4c420893485ad07d771c327ef899819d4846408f:5.5.1:debian/5.5-1
+revisions += df967b34d6d0bacf38c163f312a5267c3d28167b:5.6.0.1:debian/5.6-0.1
+revisions += 72d3e2023ec17f79b0d1611bbeab33615f6be7f0:5.7.0.3:debian/5.7-0.3
+
+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 $(pkg_name)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(repo_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 ; \
+	      autoreconf -vif ; \
+	      rm -rf autom4te.cache .git* *~ ) ; \
+	    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/a/devs-debian/Makefile b/packages/a/devs-debian/Makefile
new file mode 100644
index 0000000..9c6d459
--- /dev/null
+++ b/packages/a/devs-debian/Makefile
@@ -0,0 +1,63 @@
+#
+# GitLab: https://salsa.debian.org/debian/makedev
+#
+
+url        = https://salsa.debian.org/debian
+
+repo_name  = makedev
+pkg_name   = makedev
+
+#
+# List of tags to be extracted:
+# ============================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 12b12cca1f98189e95eb00c11730b7d002902ae3:2.3.1:upstream/2.3.1
+revisions += 2202d82db9067551228cd6ce2e88c465ef24aa4b:2.3.1.97:debian/2.3.1-97
+
+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 $(pkg_name)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(repo_name)-$$version.$(suffix)' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(pkg_name)-$$version/ $$hash | \
+	      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/a/dialog/Makefile b/packages/a/dialog/Makefile
new file mode 100644
index 0000000..297f072
--- /dev/null
+++ b/packages/a/dialog/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://invisible-island.net/dialog
+#
+# Downloads:
+# =========
+#   ftp://ftp.invisible-island.net/dialog
+#   https://invisible-mirror.net/archives/dialog
+#
+
+url          = https://invisible-mirror.net/archives/dialog
+
+versions     = 1.1-20120215 1.1-20120706 1.2-20140112 1.2-20140219 1.2-20150920
+versions    += 1.3-20170131 1.3-20170509 1.3-20181107 1.3-20190211 1.3-20190808
+versions    += 1.3-20201126 1.3-20210117 1.3-20210621 1.3-20211214 1.3-20230209
+suffix       = tgz
+
+tarballs     = $(addsuffix .$(suffix), $(addprefix dialog-, $(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/a/diffstat/Makefile b/packages/a/diffstat/Makefile
new file mode 100644
index 0000000..097e7ac
--- /dev/null
+++ b/packages/a/diffstat/Makefile
@@ -0,0 +1,42 @@
+#
+# Project Home:
+# ============
+#   https://invisible-island.net/diffstat
+#
+# Downloads:
+# =========
+#   https://invisible-island.net/diffstat/#download
+#   https://invisible-island.net/archives/diffstat
+#
+
+url         = https://invisible-island.net/archives/diffstat
+
+versions    = 1.53 1.59 1.61 1.64 1.65
+
+pkgname     = diffstat
+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.tgz ; \
+	  tar xzf $(pkgname)-$$version.tgz ; \
+	  tar czf $(pkgname)-$$version.$(suffix) $(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/a/dmidecode/Makefile b/packages/a/dmidecode/Makefile
new file mode 100644
index 0000000..cd6417a
--- /dev/null
+++ b/packages/a/dmidecode/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://www.nongnu.org/dmidecode
+#   https://savannah.nongnu.org/projects/dmidecode
+#
+# Downloads:
+# =========
+#   https://download.savannah.gnu.org/releases/dmidecode
+#
+
+url         = https://download.savannah.gnu.org/releases/dmidecode
+
+versions    = 3.0 3.3 3.4 3.5
+
+pkgname     = dmidecode
+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/a/dosfstools/Makefile b/packages/a/dosfstools/Makefile
new file mode 100644
index 0000000..eda0de7
--- /dev/null
+++ b/packages/a/dosfstools/Makefile
@@ -0,0 +1,71 @@
+#
+# Project Home:
+# ============
+#   https://github.com/dosfstools/dosfstools
+#
+# Clone:
+# =====
+#   git clone https://github.com/dosfstools/dosfstools.git
+#
+
+url        = https://github.com/dosfstools
+
+repo_name  = dosfstools
+
+versions   = 4.1 4.2
+
+suffix     = tar.xz
+
+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) ) ; \
+	    tar xJf $(repo_name)-$$version.$(suffix) ; \
+	    ( cd $(repo_name)-$$version ; \
+	      if [ -f "./autogen.sh" ] ; then \
+	        ./autogen.sh ; rm -rf autom4te.cache .gitignore .travis.yml *~ ; \
+	      else \
+	        autoreconf -vif ; rm -rf autom4te.cache .gitignore .travis.yml  *~ ; \
+	      fi ; \
+	    ) ; \
+	    tar cJf $(repo_name)-$$version.$(suffix) $(repo_name)-$$version ; \
+	    rm -rf $(repo_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/a/e2fsprogs/Makefile b/packages/a/e2fsprogs/Makefile
new file mode 100644
index 0000000..64d5127
--- /dev/null
+++ b/packages/a/e2fsprogs/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://e2fsprogs.sourceforge.net
+#
+# Downloads:
+# =========
+#   https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.45.4/
+#
+
+url         = https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs
+
+versions    = 1.42.8 1.42.9 1.45.4 1.46.2 1.46.6 1.47.0
+
+pkgname     = e2fsprogs
+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-z0-9A-Z-]*\)\([0-9][.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/a/efibootmgr/Makefile b/packages/a/efibootmgr/Makefile
new file mode 100644
index 0000000..d570619
--- /dev/null
+++ b/packages/a/efibootmgr/Makefile
@@ -0,0 +1,74 @@
+#
+# Project Home:
+# ============
+#   https://github.com/rhboot/efibootmgr
+#
+# GitHub:
+# ======
+#   git clone https://github.com/rhboot/efibootmgr.git
+#
+# Downloads:
+# =========
+#   https://github.com/rhboot/efibootmgr/releases
+#
+
+url        = https://github.com/rhboot
+
+repo_name  = efibootmgr
+
+#
+# List of revisions to be extracted:
+# =================================
+#
+#                                               hash | version
+#            ----------------------------------------+--------
+revisions  = a5103251a11663adddc85c86e0b8d3d3b73cbb4a:16
+revisions += e067160ecef8208e1944002e5d50b275733211fb:17
+revisions += c3f9f0534e32158f62c43564036878b93b9e0fd6:18
+
+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/a/efivar/Makefile b/packages/a/efivar/Makefile
new file mode 100644
index 0000000..6621d8c
--- /dev/null
+++ b/packages/a/efivar/Makefile
@@ -0,0 +1,72 @@
+#
+# Project Home:
+# ============
+#   https://github.com/rhboot/efivar
+#
+# GitHub:
+# ======
+#   git clone https://github.com/rhboot/efivar.git
+#
+# Downloads:
+# =========
+#   https://github.com/rhboot/efivar/releases
+#
+
+url        = https://github.com/rhboot
+
+repo_name  = efivar
+
+#
+# List of revisions to be extracted:
+# =================================
+#
+#                                               hash | version
+#            ----------------------------------------+--------
+revisions  = 1753149d4176ebfb2b135ac0aaf79340bf0e7a93:38
+
+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/a/eject/Makefile b/packages/a/eject/Makefile
new file mode 100644
index 0000000..b0c8112
--- /dev/null
+++ b/packages/a/eject/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+#   https://slackware.com
+#
+# Downloads:
+# =========
+#   https://mirrors.slackware.com/slackware/slackware-14.1/source/a/eject
+#
+
+url         = https://mirrors.slackware.com/slackware/slackware-14.1/source/a/eject
+
+version     = 2.1.5
+
+pkgname     = eject
+suffix      = tar.bz2
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-,$(version)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	@wget -N $(url)/$(tarball)
+	@tar xjf $(tarball)
+	@mv $(pkgname) $(pkgname)-$(version)
+	@rm -f $(tarball)
+	@tar cjf $(tarball) $(pkgname)-$(version)
+	@rm -rf $(pkgname)-$(version)
+
+$(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 $(tarball) $(sha1s)
diff --git a/packages/a/eject/README.TXT b/packages/a/eject/README.TXT
new file mode 100644
index 0000000..54ae345
--- /dev/null
+++ b/packages/a/eject/README.TXT
@@ -0,0 +1,8 @@
+
+/*
+  eject [https://eject.sourceforge.net]:
+  ------------------------------------
+
+  Original package is lost forever, a copy exists only in slackware sources.
+
+ */
diff --git a/packages/a/elilo/Makefile b/packages/a/elilo/Makefile
new file mode 100644
index 0000000..37d8eb8
--- /dev/null
+++ b/packages/a/elilo/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://elilo.sourceforge.net
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/elilo/elilo/elilo-${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/elilo/elilo
+
+versions    = 3.14 3.16
+
+pkg_name    = elilo
+suffix      = tar.gz
+
+tarballs    = $(addsuffix -all.$(suffix), $(addprefix $(pkg_name)-, $(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)/$(pkg_name)-$$version/$(pkg_name)-$$version-all.$(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/a/elogind/Makefile b/packages/a/elogind/Makefile
new file mode 100644
index 0000000..051188d
--- /dev/null
+++ b/packages/a/elogind/Makefile
@@ -0,0 +1,73 @@
+#
+# Project Home:
+# ============
+#   https://guix.gnu.org/
+#   https://github.com/elogind/elogind
+#
+# GitHub:
+# ======
+#   git clone https://github.com/elogind/elogind.git
+#
+# Downloads:
+# =========
+#   https://github.com/elogind/elogind/releases
+#
+
+url        = https://github.com/elogind
+
+repo_name  = elogind
+
+#
+# List of revisions to be extracted:
+# =================================
+#
+#                                               hash | version
+#            ----------------------------------------+--------
+revisions  = 22f43ebdd91e9ccb41954d3bae703912bee59c90:246.10
+
+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/a/elvis/Makefile b/packages/a/elvis/Makefile
new file mode 100644
index 0000000..a256a77
--- /dev/null
+++ b/packages/a/elvis/Makefile
@@ -0,0 +1,44 @@
+#
+# Project Home:
+# ============
+#   http://elvis.the-little-red-haired-girl.org
+#
+# Downloads:
+# =========
+#   http://elvis.the-little-red-haired-girl.org/gettingelvis/index.html
+#   ftp://ftp.cs.pdx.edu/pub/elvis
+#
+# Mirror:
+# ======
+#   http://www.the-little-red-haired-girl.org/pub/elvis
+#
+
+url         = http://www.the-little-red-haired-girl.org/pub/elvis/old
+
+versions    = 2.2_0
+
+pkgname     = elvis
+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/a/eudev/Makefile b/packages/a/eudev/Makefile
new file mode 100644
index 0000000..4831b11
--- /dev/null
+++ b/packages/a/eudev/Makefile
@@ -0,0 +1,76 @@
+#
+# Project Home:
+# ============
+#   http://www.gentoo.org/proj/en/eudev
+#
+# GitHub:
+# ======
+#   https://github.com/gentoo/eudev
+#
+# Downloads:
+# =========
+#   https://dev.gentoo.org/~blueness/eudev
+#
+
+url        = https://github.com/eudev-project
+
+repo_name  = eudev
+
+#
+# List of revisions to be extracted:
+# =================================
+#
+#                                               hash | version
+#            ----------------------------------------+--------
+revisions  = 71ff5b6886946dacca8ae685ac85cdc174cfdece:3.1.5
+revisions += d69f3f28348123ab7fa0ebac63ec2fd16800c5e0:3.2.8
+revisions += 2ab887ec67afd15eb9b0849467f1f9c036a2b6c8:3.2.9
+revisions += be7068512c7512fa67c64fbff3472ab140c277c8:3.2.10
+revisions += 0a4dae19c1a191c8054fc2b9c2d592e797715a69:3.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/a/fakeroot/Makefile b/packages/a/fakeroot/Makefile
new file mode 100644
index 0000000..3d9ec65
--- /dev/null
+++ b/packages/a/fakeroot/Makefile
@@ -0,0 +1,81 @@
+#
+# FAKEROOT:
+#
+# Debian sources:
+#   https://sources.debian.org/src/fakeroot
+#
+# GitLab:
+#   https://salsa.debian.org/clint/fakeroot
+#
+# Clone:
+#   https://salsa.debian.org/clint/fakeroot.git
+#
+# Branch:
+#   upstream
+#
+# tags:
+#   upstream/1.26, ...
+#
+#
+# NOTE:
+#   This Makefile repacks source packages due to build required man pages.
+#   Rebuilding passes using po4a utility which should be installed in system.
+#
+
+url        = https://salsa.debian.org/clint
+
+repo_name  = fakeroot
+pkg_name   = fakeroot
+suffix     = tar.xz
+
+versions   = 1.25.2 1.26 1.29 1.30.1 1.31
+
+# List of tags to be extracted:
+TAGS       = $(addprefix upstream/, $(versions))
+
+git_repo   = .git_clone
+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 version in $(versions) ; do \
+	  tag=upstream/`echo $$version` ; \
+	  if [ ! -f $(pkg_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/doc ; \
+	      echo -e "\n======= build required man pages for available languages =======" ; \
+	      po4a -k 0 --rm-backups --variable 'srcdir=../doc/' po4a/po4a.cfg ) ; \
+	    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: $(defconfigs) $(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/a/fdutils/Makefile b/packages/a/fdutils/Makefile
new file mode 100644
index 0000000..f5967c9
--- /dev/null
+++ b/packages/a/fdutils/Makefile
@@ -0,0 +1,50 @@
+#
+# Project Home:
+# ============
+#   https://fdutils.linux.lu
+#
+# Downloads:
+# =========
+#   https://fdutils.linux.lu/download.html
+#
+
+url          = https://fdutils.linux.lu
+
+versions     = 5.5 5.6
+
+pkgname      = fdutils
+suffix       = tar.gz
+
+tarballs     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s        = $(addsuffix .sha1sum, $(tarballs))
+descriptions = $(addsuffix .lsm, $(addprefix $(pkgname)-, $(versions)))
+
+patch        = $(addsuffix -20081027.diff.gz, $(addprefix $(pkgname)-, 5.5))
+
+files       = $(patch) $(descriptions)
+
+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/a/file/Makefile b/packages/a/file/Makefile
new file mode 100644
index 0000000..d042a8b
--- /dev/null
+++ b/packages/a/file/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://www.darwinsys.com/file
+#
+# Downloads:
+# =========
+#   ftp://ftp.astron.com/pub/file
+#
+
+url         = ftp://ftp.astron.com/pub/file
+
+versions    = 5.14 5.15 5.18 5.19 5.25 5.28 5.39 5.44
+
+pkg_name    = file
+suffix      = tar.gz
+
+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/a/foomatic-db-engine/Makefile b/packages/a/foomatic-db-engine/Makefile
new file mode 100644
index 0000000..87379be
--- /dev/null
+++ b/packages/a/foomatic-db-engine/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://openprinting.github.io/projects/02-foomatic
+#
+# Downloads:
+# =========
+#   https://www.openprinting.org/download/foomatic
+#
+
+url         = https://www.openprinting.org/download/foomatic
+
+versions    = 4.0-20230409
+
+pkgname     = foomatic-db-engine
+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 tarball =======\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/a/foomatic-db-nonfree/Makefile b/packages/a/foomatic-db-nonfree/Makefile
new file mode 100644
index 0000000..943cca6
--- /dev/null
+++ b/packages/a/foomatic-db-nonfree/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://openprinting.github.io/projects/02-foomatic
+#
+# Downloads:
+# =========
+#   https://www.openprinting.org/download/foomatic
+#
+
+url         = https://www.openprinting.org/download/foomatic
+
+versions    = 20230409
+
+pkgname     = foomatic-db-nonfree
+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 tarball =======\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/a/foomatic-db/Makefile b/packages/a/foomatic-db/Makefile
new file mode 100644
index 0000000..0e6f14f
--- /dev/null
+++ b/packages/a/foomatic-db/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://openprinting.github.io/projects/02-foomatic
+#
+# Downloads:
+# =========
+#   https://www.openprinting.org/download/foomatic
+#
+
+url         = https://www.openprinting.org/download/foomatic
+
+versions    = 4.0-20230409
+
+pkgname     = foomatic-db
+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 tarball =======\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/a/foomatic-filters/Makefile b/packages/a/foomatic-filters/Makefile
new file mode 100644
index 0000000..f110a8c
--- /dev/null
+++ b/packages/a/foomatic-filters/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://openprinting.github.io/projects/02-foomatic
+#
+# Downloads:
+# =========
+#   https://www.openprinting.org/download/foomatic
+#
+
+url         = https://www.openprinting.org/download/foomatic
+
+versions    = 4.0-20160212
+
+pkgname     = foomatic-filters
+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 tarball =======\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/a/genext2fs/Makefile b/packages/a/genext2fs/Makefile
new file mode 100644
index 0000000..265756e
--- /dev/null
+++ b/packages/a/genext2fs/Makefile
@@ -0,0 +1,66 @@
+#
+# Project Home:
+# ============
+#   https://github.com/bestouff/genext2fs
+#
+# Clone:
+# =====
+#   git clone https://github.com/bestouff/genext2fs.git
+#
+
+url        = https://github.com/bestouff
+
+repo_name  = genext2fs
+pkg_name   = genext2fs
+suffix     = tar.xz
+
+versions   = 1.4.1 1.4.2 1.5.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 $(pkg_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 .github ) ; \
+	    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/a/genpower-debian/Makefile b/packages/a/genpower-debian/Makefile
new file mode 100644
index 0000000..5b80583
--- /dev/null
+++ b/packages/a/genpower-debian/Makefile
@@ -0,0 +1,37 @@
+#
+# Project Home:
+# ============
+#   https://slackware.com
+#
+# Downloads:
+# =========
+#   https://mirrors.slackware.com/slackware/slackware-15.0/source/a/genpower
+#
+
+url         = https://mirrors.slackware.com/slackware/slackware-15.0/source/a/genpower
+
+version     = 1.0.5
+pkgname     = genpower
+suffix      = tar.gz
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(version)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	wget -N $(url)/$(tarball)
+
+$(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 $(tarball) $(sha1s)
diff --git a/packages/a/ghostscript-fonts-std/Makefile b/packages/a/ghostscript-fonts-std/Makefile
new file mode 100644
index 0000000..b309b66
--- /dev/null
+++ b/packages/a/ghostscript-fonts-std/Makefile
@@ -0,0 +1,47 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/gs-fonts
+#   https://code.google.com/p/ghostscript
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/gs-fonts/gs-fonts/8.11 (base 35, GPL)
+#   https://downloads.sourceforge.net/project/gs-fonts/gs-fonts/8.11 %28base 35%2c GPL%29
+#
+# Google Code:
+# ===========
+#   https://code.google.com/p/ghostscript/downloads/list
+#   https://ghostscript.googlecode.com/files/ghostscript-fonts-std-8.11.tar.gz
+#
+#   https://downloads.sourceforge.net/project/gs-fonts/gs-fonts/"ghostscript-fonts-std-${VERSION} (base 35, GPL)"
+#
+
+url         = https://downloads.sourceforge.net/project/gs-fonts/gs-fonts
+
+versions    = 8.11
+pkgname     = ghostscript-fonts-std
+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 (base 35, GPL)"/$(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/a/ghostscript/Makefile b/packages/a/ghostscript/Makefile
new file mode 100644
index 0000000..8bb9dbc
--- /dev/null
+++ b/packages/a/ghostscript/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+#   https://www.ghostscript.com
+#   https://github.com/ArtifexSoftware
+#
+# Downloads:
+# =========
+#   https://github.com/ArtifexSoftware/ghostpdl-downloads
+#
+
+url         = https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download
+
+versions    = 9.53.2 9.53.3 9.56.1 10.0.0 10.01.1
+
+pkgname     = ghostscript
+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 tarball =======\n"
+	@for tarball in $(tarballs) ; do \
+	   version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([0-9]*[.][0-9]*[.][0-9]*\)\(\..*\)/\2/'` ; \
+	   short=`echo $$version | sed 's/\.//g'` ; \
+	   wget -N $(url)/gs$$short/$$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/a/gphoto2/Makefile b/packages/a/gphoto2/Makefile
new file mode 100644
index 0000000..8323108
--- /dev/null
+++ b/packages/a/gphoto2/Makefile
@@ -0,0 +1,50 @@
+#
+# Project Home:
+# ============
+#   http://www.gphoto.org
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/gphoto/gphoto/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/gphoto/gphoto
+
+versions    = 2.5.2 2.5.5 2.5.9 2.5.26 2.5.27 2.5.28
+
+pkgname     = gphoto2
+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/a/gpm/Makefile b/packages/a/gpm/Makefile
new file mode 100644
index 0000000..d0a6241
--- /dev/null
+++ b/packages/a/gpm/Makefile
@@ -0,0 +1,45 @@
+#
+# Project Home:
+# ============
+#   https://www.nico.schottelius.org/software/gpm/
+#
+# Downloads:
+# =========
+#   https://www.nico.schottelius.org/software/gpm/archives/
+#
+
+url         = https://www.nico.schottelius.org/software/gpm/archives
+
+versions    = 1.20.7
+
+pkg_name    = gpm
+suffix      = tar.bz2
+
+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 ; \
+	  version=`echo $$tarball | sed 's/\(^[a-zA-Z-]*\)\([0-9][.0-9]*[.0-9]*\)\(\..*\)/\2/'` ; \
+	  pkg=`echo $$tarball | sed 's/\(^[a-zA-Z]*\)\([-]\)\([0-9][.0-9]*[.0-9]*\)\(.*\)/\1/'` ; \
+	  tar xjf $$tarball ; \
+	  ( cd $$pkg-$$version ; ./autogen.sh ; rm -rf autom4te.cache ) ; \
+	  tar cjf $$pkg-$$version.$(suffix) $$pkg-$$version ; \
+	  rm -rf $$pkg-$$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/a/gptfdisk/Makefile b/packages/a/gptfdisk/Makefile
new file mode 100644
index 0000000..c99aa43
--- /dev/null
+++ b/packages/a/gptfdisk/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://www.rodsbooks.com/gdisk
+#   https://sourceforge.net/projects/gptfdisk
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/gptfdisk/gptfdisk/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/gptfdisk/gptfdisk
+
+versions    = 0.8.7 0.8.10 1.0.0 1.0.1 1.0.7 1.0.9
+
+pkgname     = gptfdisk
+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/a/gutenprint/Makefile b/packages/a/gutenprint/Makefile
new file mode 100644
index 0000000..fdf6580
--- /dev/null
+++ b/packages/a/gutenprint/Makefile
@@ -0,0 +1,42 @@
+#
+# Project Home:
+# ============
+#   https://gimp-print.sourceforge.net
+#
+# Downloads:
+# =========
+#   https://gimp-print.sourceforge.net/p_Download.php
+#   https://downloads.sourceforge.net/project/gimp-print/gutenprint-5.2/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/gimp-print
+
+versions    = 5.3.3 5.3.4
+
+pkgname     = gutenprint
+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]*\)\(\..*\)/\2/'` ; \
+	  major_minor=`echo $$version | cut -f1,2 -d'.'` ; \
+	  wget -N $(url)/$(pkgname)-$$major_minor/$$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/a/hdparm/Makefile b/packages/a/hdparm/Makefile
new file mode 100644
index 0000000..6672f13
--- /dev/null
+++ b/packages/a/hdparm/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/hdparm
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/hdparm/files
+#
+
+url         = https://downloads.sourceforge.net/hdparm/files
+
+versions    = 9.42 9.43 9.47 9.48 9.58 9.59 9.60 9.65
+
+pkg_name    = hdparm
+suffix      = tar.gz
+
+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/a/hplip/Makefile b/packages/a/hplip/Makefile
new file mode 100644
index 0000000..5aca224
--- /dev/null
+++ b/packages/a/hplip/Makefile
@@ -0,0 +1,54 @@
+#
+# Project Home:
+# ============
+#   https://developers.hp.com/hp-linux-imaging-and-printing
+#   https://developers.hp.com/hp-linux-imaging-and-printing/gethplip
+#   https://launchpad.net/hplip
+#   https://sourceforge.net/projects/hplip
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/hplip/hplip/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/hplip/hplip
+
+versions    = 3.13.10 3.14.10 3.15.9 3.15.11 3.16.5
+versions   += 3.16.7 3.21.2 3.23.3
+
+pkgname     = hplip
+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 \
+	  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/a/htop/Makefile b/packages/a/htop/Makefile
new file mode 100644
index 0000000..39e0641
--- /dev/null
+++ b/packages/a/htop/Makefile
@@ -0,0 +1,41 @@
+#
+# Project Home:
+# ============
+#   https://htop.dev
+#
+# Downloads:
+# =========
+#   https://github.com/htop-dev/htop/releases
+#   https://github.com/htop-dev/htop/releases/download/${VERSION}
+#
+
+url         = https://github.com/htop-dev/htop/releases/download
+
+versions    = 3.2.2
+
+pkgname     = htop
+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]*\)\(\..*\)/\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/a/i2c-tools/Makefile b/packages/a/i2c-tools/Makefile
new file mode 100644
index 0000000..ba8403b
--- /dev/null
+++ b/packages/a/i2c-tools/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+#   https://i2c.wiki.kernel.org/index.php/I2C_Tools
+#
+# Git:
+# ===
+#   https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git
+#
+# Downloads:
+# =========
+#   https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools
+#
+
+url         = https://www.kernel.org/pub/software/utils/i2c-tools
+
+versions    = 3.1.0 3.1.1 4.2 4.3
+
+pkgname     = i2c-tools
+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/a/infozip/Makefile b/packages/a/infozip/Makefile
new file mode 100644
index 0000000..fdef36a
--- /dev/null
+++ b/packages/a/infozip/Makefile
@@ -0,0 +1,25 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := unzip60 \
+           zip30
+
+
+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/a/infozip/unzip60/Makefile b/packages/a/infozip/unzip60/Makefile
new file mode 100644
index 0000000..dcb60f4
--- /dev/null
+++ b/packages/a/infozip/unzip60/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/infozip
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/infozip/UnZip 6.x (latest)/UnZip 6.0/
+#
+
+url         = https://downloads.sourceforge.net/project/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/
+
+versions    = 60
+
+pkgname     = unzip
+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/a/infozip/zip30/Makefile b/packages/a/infozip/zip30/Makefile
new file mode 100644
index 0000000..144e04a
--- /dev/null
+++ b/packages/a/infozip/zip30/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/infozip
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/infozip/Zip 3.x (latest)/3.0/
+#
+
+url         = https://downloads.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/
+
+versions    = 30
+
+pkgname     = zip
+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/a/inih/Makefile b/packages/a/inih/Makefile
new file mode 100644
index 0000000..3fedb4e
--- /dev/null
+++ b/packages/a/inih/Makefile
@@ -0,0 +1,62 @@
+#
+# Project Home:
+# ============
+#   https://github.com/benhoyt/inih
+#
+# Clone:
+# =====
+#   git clone https://github.com/benhoyt/inih.git
+#
+
+url        = https://github.com/benhoyt
+
+repo_name  = inih
+pkg_name   = inih
+suffix     = tar.xz
+
+versions   = 53 56
+
+# List of tags to be extracted:
+TAGS       = $(addprefix r, $(versions))
+
+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=r`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/a/inotify-tools/Makefile b/packages/a/inotify-tools/Makefile
new file mode 100644
index 0000000..874a375
--- /dev/null
+++ b/packages/a/inotify-tools/Makefile
@@ -0,0 +1,71 @@
+#
+# Project Home:
+# ============
+#   https://github.com/inotify-tools/inotify-tools
+#
+# GitHub:
+# ======
+#   git clone https://github.com/inotify-tools/inotify-tools.git
+#
+# Downloads:
+# =========
+#   https://github.com/inotify-tools/inotify-tools/releases
+#
+
+url        = https://github.com/inotify-tools
+
+repo_name  = inotify-tools
+pkg_name   = inotify-tools
+suffix     = tar.xz
+
+versions   = 3.20.2.2 3.20.11.0 3.22.6.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 $(pkg_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 .github .cirrus.yml .clang-format .travis.yml ; \
+	      find . -type f -name '.gitignore' -exec rm -f {} \; ; \
+	    ) ; \
+	    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/a/isapnptools/1.26/Makefile b/packages/a/isapnptools/1.26/Makefile
new file mode 100644
index 0000000..5b26636
--- /dev/null
+++ b/packages/a/isapnptools/1.26/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://ibiblio.org/pub/linux/system/hardware
+#   https://slackware.com
+#
+# Downloads:
+# =========
+#   https://ibiblio.org/pub/linux/system/hardware
+#   https://mirrors.slackware.com/slackware/slackware-14.1/source/a/isapnptools
+#
+
+url         = https://mirrors.slackware.com/slackware/slackware-14.1/source/a/isapnptools
+
+version     = 1.26
+pkgname     = isapnptools
+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 tarball =======\n"
+	@wget -N $(url)/$(tarball)
+
+$(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 $(tarball) $(sha1s)
diff --git a/packages/a/isapnptools/1.26/README.TXT b/packages/a/isapnptools/1.26/README.TXT
new file mode 100644
index 0000000..c059de8
--- /dev/null
+++ b/packages/a/isapnptools/1.26/README.TXT
@@ -0,0 +1,8 @@
+
+/*
+  isapnptools:
+  -----------
+
+  Original package is lost forever, a copy exists only in ibiblio.org and  slackware sources.
+
+ */
diff --git a/packages/a/isapnptools/1.27/Makefile b/packages/a/isapnptools/1.27/Makefile
new file mode 100644
index 0000000..5ecb097
--- /dev/null
+++ b/packages/a/isapnptools/1.27/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+#   https://ibiblio.org/pub/linux/system/hardware
+#   https://slackware.com
+#
+# Downloads:
+# =========
+#   https://ibiblio.org/pub/linux/system/hardware
+#   https://mirrors.slackware.com/slackware/slackware-14.1/source/a/isapnptools
+#
+
+url         = https://ibiblio.org/pub/linux/system/hardware
+
+version     = 1.27
+pkgname     = isapnptools
+suffix      = tar.gz
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-,$(version)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	@wget -N $(url)/$(pkgname)-$(version).tgz
+	@tar xzf $(pkgname)-$(version).tgz
+	@tar cjf $(tarball) $(pkgname)-$(version)
+	@rm -rf $(pkgname)-$(version)
+	@rm -f $(pkgname)-$(version).tgz
+
+$(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 $(tarball) $(sha1s)
diff --git a/packages/a/isapnptools/1.27/README.TXT b/packages/a/isapnptools/1.27/README.TXT
new file mode 100644
index 0000000..c059de8
--- /dev/null
+++ b/packages/a/isapnptools/1.27/README.TXT
@@ -0,0 +1,8 @@
+
+/*
+  isapnptools:
+  -----------
+
+  Original package is lost forever, a copy exists only in ibiblio.org and  slackware sources.
+
+ */
diff --git a/packages/a/isapnptools/Makefile b/packages/a/isapnptools/Makefile
new file mode 100644
index 0000000..4503d30
--- /dev/null
+++ b/packages/a/isapnptools/Makefile
@@ -0,0 +1,25 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := 1.26 \
+           1.27
+
+
+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/a/ispell/Makefile b/packages/a/ispell/Makefile
new file mode 100644
index 0000000..45325d8
--- /dev/null
+++ b/packages/a/ispell/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://www.cs.hmc.edu/~geoff/ispell.html
+#
+# Downloads:
+# =========
+#   https://www.cs.hmc.edu/~geoff/tars/ispell-${VERSION}.tar.gz
+#
+
+url         = https://www.cs.hmc.edu/~geoff/tars
+
+versions    = 3.2.06 3.3.00 3.3.01 3.3.02 3.4.00 3.4.05
+
+pkgname     = ispell
+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/a/itstool/Makefile b/packages/a/itstool/Makefile
new file mode 100644
index 0000000..ab80106
--- /dev/null
+++ b/packages/a/itstool/Makefile
@@ -0,0 +1,49 @@
+#
+# Project Home:
+# ============
+#   https://itstool.org
+#
+# Downloads:
+# =========
+#   https://itstool.org/download
+#   http://files.itstool.org/itstool
+#
+
+url         = http://files.itstool.org/itstool
+
+versions    = 1.2.0 2.0.2 2.0.6 2.0.7
+
+pkgname     = itstool
+suffix      = tar.bz2
+sign_suffix = sha256sum
+
+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/a/jbigkit/Makefile b/packages/a/jbigkit/Makefile
new file mode 100644
index 0000000..6f4c83c
--- /dev/null
+++ b/packages/a/jbigkit/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://www.cl.cam.ac.uk/~mgk25/jbigkit
+#
+# Downloads:
+# =========
+#   https://www.cl.cam.ac.uk/~mgk25/jbigkit/download
+#
+
+url         = https://www.cl.cam.ac.uk/~mgk25/jbigkit/download
+
+versions    = 2.1
+
+pkgname     = jbigkit
+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/a/jed/Makefile b/packages/a/jed/Makefile
new file mode 100644
index 0000000..a0f534f
--- /dev/null
+++ b/packages/a/jed/Makefile
@@ -0,0 +1,49 @@
+#
+# Project Home:
+# ============
+#   https://www.jedsoft.org/jed
+#
+# Downloads:
+# =========
+#   https://www.jedsoft.org/jed/download.html
+#   https://www.jedsoft.org/releases/jed
+#
+
+url         = https://www.jedsoft.org/releases/jed
+
+versions    = 0.99-19
+
+pkgname     = jed
+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 \
+	  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/a/jfsutils/Makefile b/packages/a/jfsutils/Makefile
new file mode 100644
index 0000000..9646ad7
--- /dev/null
+++ b/packages/a/jfsutils/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://jfs.sourceforge.net
+#
+# Downloads:
+# =========
+#   https://jfs.sourceforge.net/project/pub
+#
+
+url         = https://jfs.sourceforge.net/project/pub
+
+versions    = 1.1.14 1.1.15
+
+pkg_name    = jfsutils
+suffix      = tar.gz
+
+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/a/joe/Makefile b/packages/a/joe/Makefile
new file mode 100644
index 0000000..e9c5f36
--- /dev/null
+++ b/packages/a/joe/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://joe-editor.sourceforge.net
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/joe-editor/JOE sources/joe-${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/joe-editor/JOE%20sources
+
+versions    = 3.6 3.7 4.1 4.6
+
+pkgname     = joe
+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)/$(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/a/jove/Makefile b/packages/a/jove/Makefile
new file mode 100644
index 0000000..520a507
--- /dev/null
+++ b/packages/a/jove/Makefile
@@ -0,0 +1,43 @@
+#
+# Project Home:
+# ============
+#   [ https://www.emacswiki.org/emacs/Jove ]
+#
+# Downloads:
+# =========
+#   ftp://ftp.cs.toronto.edu/cs/ftp/pub/hugh/jove-dev
+#
+
+url         = ftp://ftp.cs.toronto.edu/cs/ftp/pub/hugh/jove-dev
+
+versions    = 4.16.0.73
+
+pkgname     = jove
+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.tgz ; \
+	  tar xzf $(pkgname)$$version.tgz ; \
+	  mv $(pkgname)$$version $(pkgname)-$$version ; \
+	  tar czf $(pkgname)-$$version.$(suffix) $(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/a/jsmin/Makefile b/packages/a/jsmin/Makefile
new file mode 100644
index 0000000..226d2a0
--- /dev/null
+++ b/packages/a/jsmin/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://ftp.radix.pro/radix/tools/jsmin
+#
+# Downloads:
+# =========
+#   https://ftp.radix.pro/radix/tools/jsmin
+#
+
+url          = https://ftp.radix.pro/radix/tools/jsmin
+
+versions     = 0.0.1
+
+pkgname      = jsmin
+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/a/kbd/Makefile b/packages/a/kbd/Makefile
new file mode 100644
index 0000000..54f730b
--- /dev/null
+++ b/packages/a/kbd/Makefile
@@ -0,0 +1,45 @@
+#
+# Project Home:
+# ============
+#   http://www.kbd-project.org
+#
+# Git:
+# ===
+#   git clone git://git.kernel.org/pub/scm/linux/kernel/git/legion/kbd.git
+#   git clone https://github.com/legionus/kbd.git
+#
+# Downloads:
+# =========
+#   https://github.com/legionus/kbd/releases
+#   https://www.kernel.org/pub/linux/utils/kbd
+#
+
+url         = https://www.kernel.org/pub/linux/utils/kbd
+
+versions    = 1.15.3 2.0.2 2.0.3 2.2.0 2.4.0 2.5.1
+
+pkg_name    = kbd
+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/a/kmod/Makefile b/packages/a/kmod/Makefile
new file mode 100644
index 0000000..b100479
--- /dev/null
+++ b/packages/a/kmod/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://www.kernel.org/pub/linux/utils/kernel/kmod/
+#
+# Downloads:
+# =========
+#   https://www.kernel.org/pub/linux/utils/kernel/kmod/
+#
+
+url         = https://www.kernel.org/pub/linux/utils/kernel/kmod
+
+versions    = 16 22 23 24 25 26 27 28 29 30
+
+pkg_name    = kmod
+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/a/less/Makefile b/packages/a/less/Makefile
new file mode 100644
index 0000000..90ee439
--- /dev/null
+++ b/packages/a/less/Makefile
@@ -0,0 +1,38 @@
+#
+# Project Home:
+# ============
+#   https://www.greenwoodsoftware.com/less
+#
+# Downloads:
+# =========
+#   https://www.greenwoodsoftware.com/less/download.html
+#
+
+url         = https://www.greenwoodsoftware.com/less
+
+versions    = 530 551 580 608
+
+pkgname     = less
+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/a/libcgroup/Makefile b/packages/a/libcgroup/Makefile
new file mode 100644
index 0000000..0d3d7cb
--- /dev/null
+++ b/packages/a/libcgroup/Makefile
@@ -0,0 +1,46 @@
+#
+# Project Home:
+# ============
+#   https://libcg.sourceforge.net
+#   https://sourceforge.net/projects/libcg
+#
+# Downloads:
+# =========
+#   https://sourceforge.net/projects/libcg/files/libcgroup
+#
+
+url         = https://sourceforge.net/projects/libcg/files/libcgroup
+
+versions    = 0.38 0.41
+
+pkgname     = libcgroup
+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/'`; \
+	  if [ $$version == "0.38" ]; then \
+	    vers=v.`echo $$version | sed 's/\.//g'`; \
+	  else \
+	    vers=v`echo $$version`; \
+	  fi ; \
+	  wget -N $(url)/$$vers/$$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/a/lilo/Makefile b/packages/a/lilo/Makefile
new file mode 100644
index 0000000..fb284d6
--- /dev/null
+++ b/packages/a/lilo/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+#   https://slackware.com
+#
+# Downloads:
+# =========
+#   https://mirrors.slackware.com/slackware/slackware64-15.0/source/a/lilo
+#
+
+url         = https://mirrors.slackware.com/slackware/slackware64-15.0/source/a/lilo
+
+versions    = 24.2
+
+pkgname     = lilo
+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/a/linuxconsole/Makefile b/packages/a/linuxconsole/Makefile
new file mode 100644
index 0000000..919a622
--- /dev/null
+++ b/packages/a/linuxconsole/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/linuxconsole/
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/linuxconsole/files/
+#
+
+url         = https://downloads.sourceforge.net/linuxconsole/files
+
+versions    = 1.4.6 1.4.7 1.4.8 1.4.9 1.7.0 1.8.1
+
+pkg_name    = linuxconsoletools
+suffix      = tar.bz2
+
+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/a/linuxdoc-tools/Makefile b/packages/a/linuxdoc-tools/Makefile
new file mode 100644
index 0000000..cb4a157
--- /dev/null
+++ b/packages/a/linuxdoc-tools/Makefile
@@ -0,0 +1,31 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := docbook-dsssl     \
+           docbook-dsssl-doc \
+           docbook-xml       \
+           docbook-xsl       \
+           docbook-xsl-doc   \
+           sgml-common       \
+           xmlto             \
+           xmltoman
+
+
+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/a/linuxdoc-tools/docbook-dsssl-doc/Makefile b/packages/a/linuxdoc-tools/docbook-dsssl-doc/Makefile
new file mode 100644
index 0000000..fd4cb6a
--- /dev/null
+++ b/packages/a/linuxdoc-tools/docbook-dsssl-doc/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://docbook.sourceforge.net
+#
+# Downloads:
+# =========
+#   http://downloads.sourceforge.net/project/docbook/docbook-dsssl-doc/${VERSION}
+#
+
+url         = http://downloads.sourceforge.net/project/docbook/docbook-dsssl-doc
+
+versions    = 1.79
+
+pkgname     = docbook-dsssl-doc
+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/a/linuxdoc-tools/docbook-dsssl/Makefile b/packages/a/linuxdoc-tools/docbook-dsssl/Makefile
new file mode 100644
index 0000000..1d82c63
--- /dev/null
+++ b/packages/a/linuxdoc-tools/docbook-dsssl/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://docbook.sourceforge.net
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/docbook/docbook-dsssl/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/docbook/docbook-dsssl
+
+versions    = 1.79
+
+pkgname     = docbook-dsssl
+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/a/linuxdoc-tools/docbook-xml/4.x/Makefile b/packages/a/linuxdoc-tools/docbook-xml/4.x/Makefile
new file mode 100644
index 0000000..a75b3bc
--- /dev/null
+++ b/packages/a/linuxdoc-tools/docbook-xml/4.x/Makefile
@@ -0,0 +1,60 @@
+#
+# Project Home:
+# ============
+#   https://docbook.org
+#
+# Downloads:
+# =========
+#   https://docbook.org/xml/${VERSION}
+#
+
+url         = https://docbook.org/xml
+
+versions    = 4.5 4.4 4.3 4.2 4.1.2
+
+pkgname     = docbook-xml
+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]*\)\(.$(suffix)\)/\2/'` ; \
+	  if [ "$$version" == "4.1.2" ] ; then \
+	    wget -N $(url)/$$version/docbkx412.zip ; \
+	    mkdir $(pkgname)-$$version ; \
+	    cp docbkx412.zip $(pkgname)-$$version ; \
+	    ( cd $(pkgname)-$$version ; \
+	      unzip docbkx412.zip ; \
+	      rm docbkx412.zip ) ; \
+	    rm docbkx412.zip ; \
+	    tar cJf $$tarball $(pkgname)-$$version ; \
+	    rm -rf $(pkgname)-$$version ; \
+	  else \
+	    wget -N $(url)/$$version/$(pkgname)-$$version.zip ; \
+	    mkdir $(pkgname)-$$version ; \
+	    cp $(pkgname)-$$version.zip $(pkgname)-$$version ; \
+	    ( cd $(pkgname)-$$version ; \
+	      unzip $(pkgname)-$$version.zip ; \
+	      rm $(pkgname)-$$version.zip ) ; \
+	    rm $(pkgname)-$$version.zip ; \
+	    tar cJf $$tarball $(pkgname)-$$version ; \
+	    rm -rf $(pkgname)-$$version ; \
+	  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/a/linuxdoc-tools/docbook-xml/5.x/Makefile b/packages/a/linuxdoc-tools/docbook-xml/5.x/Makefile
new file mode 100644
index 0000000..56e1857
--- /dev/null
+++ b/packages/a/linuxdoc-tools/docbook-xml/5.x/Makefile
@@ -0,0 +1,55 @@
+#
+# Project Home:
+# ============
+#   https://docbook.org
+#
+# Downloads:
+# =========
+#   https://docbook.org/xml/${VERSION}
+#
+
+url         = https://docbook.org/xml
+
+versions    = 5.0 5.0.1 5.1
+
+pkgname     = docbook
+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]*\)\(.$(suffix)\)/\2/'` ; \
+	  if [ "$$version" == "5.1" ] ; then \
+	    wget -N $(url)/$$version/docbook-v5.1-os.zip ; \
+	    mkdir $(pkgname)-$$version ; \
+	    cp docbook-v5.1-os.zip $(pkgname)-$$version ; \
+	    ( cd $(pkgname)-$$version ; \
+	      unzip docbook-v5.1-os.zip ; \
+	      rm docbook-v5.1-os.zip ) ; \
+	    rm docbook-v5.1-os.zip ; \
+	    tar cJf $$tarball $(pkgname)-$$version ; \
+	    rm -rf $(pkgname)-$$version ; \
+	  else \
+	    wget -N $(url)/$$version/$(pkgname)-$$version.zip ; \
+	    unzip $(pkgname)-$$version.zip ; \
+	    tar cjf $$tarball $(pkgname)-$$version ; \
+	    rm -rf $(pkgname)-$$version $(pkgname)-$$version.zip ; \
+	  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/a/linuxdoc-tools/docbook-xml/Makefile b/packages/a/linuxdoc-tools/docbook-xml/Makefile
new file mode 100644
index 0000000..46249ad
--- /dev/null
+++ b/packages/a/linuxdoc-tools/docbook-xml/Makefile
@@ -0,0 +1,25 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := 4.x \
+           5.x
+
+
+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/a/linuxdoc-tools/docbook-xsl-doc/Makefile b/packages/a/linuxdoc-tools/docbook-xsl-doc/Makefile
new file mode 100644
index 0000000..a49e991
--- /dev/null
+++ b/packages/a/linuxdoc-tools/docbook-xsl-doc/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://docbook.sourceforge.net
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/docbook/docbook-xsl-doc/${VERSION}
+#
+
+url         = http://downloads.sourceforge.net/project/docbook/docbook-xsl-doc
+
+versions    = 1.78.0 1.78.1 1.79.0 1.79.1
+
+pkgname     = docbook-xsl-doc
+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/a/linuxdoc-tools/docbook-xsl/Makefile b/packages/a/linuxdoc-tools/docbook-xsl/Makefile
new file mode 100644
index 0000000..c4cfc16
--- /dev/null
+++ b/packages/a/linuxdoc-tools/docbook-xsl/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://docbook.sourceforge.net
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/docbook/docbook-xsl/${VERSION}
+#
+
+url         = http://downloads.sourceforge.net/project/docbook/docbook-xsl
+
+versions    = 1.78.0 1.78.1 1.79.0 1.79.1
+
+pkgname     = docbook-xsl
+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/a/linuxdoc-tools/sgml-common/Makefile b/packages/a/linuxdoc-tools/sgml-common/Makefile
new file mode 100644
index 0000000..99c4e6d
--- /dev/null
+++ b/packages/a/linuxdoc-tools/sgml-common/Makefile
@@ -0,0 +1,34 @@
+#
+# Downloads:
+# =========
+#   https://ftp.radix.pro/3pp/zero/a/linuxdoc-tools/sgml-common/sgml-common-0.6.3.tar.xz
+#
+
+url         = https://ftp.radix.pro/3pp/zero/a/linuxdoc-tools/sgml-common
+
+versions    = 0.6.3
+
+pkgname     = sgml-common
+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/a/linuxdoc-tools/xmlto/Makefile b/packages/a/linuxdoc-tools/xmlto/Makefile
new file mode 100644
index 0000000..6c91901
--- /dev/null
+++ b/packages/a/linuxdoc-tools/xmlto/Makefile
@@ -0,0 +1,36 @@
+#
+# Downloads:
+# =========
+#   https://ftp.radix.pro/3pp/zero/a/linuxdoc-tools/xmlto/xmlto-0.0.28.tar.xz
+#
+
+url         = https://ftp.radix.pro/3pp/zero/a/linuxdoc-tools/xmlto
+
+versions    = 0.0.28
+
+pkgname     = xmlto
+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) $(signatures) $(sha1s)
diff --git a/packages/a/linuxdoc-tools/xmltoman/Makefile b/packages/a/linuxdoc-tools/xmltoman/Makefile
new file mode 100644
index 0000000..9944b32
--- /dev/null
+++ b/packages/a/linuxdoc-tools/xmltoman/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/xmltoman
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/xmltoman/xmltoman/xmltoman-0.4.tar.gz/ - this is directory at sf.
+#
+
+url         = https://downloads.sourceforge.net/project/xmltoman/xmltoman/xmltoman-0.4.tar.gz
+
+versions    = 0.4
+
+pkgname     = xmltoman
+suffix      = tar.gz
+
+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/a/lm-sensors/Makefile b/packages/a/lm-sensors/Makefile
new file mode 100644
index 0000000..df66391
--- /dev/null
+++ b/packages/a/lm-sensors/Makefile
@@ -0,0 +1,67 @@
+#
+# Project Home:
+# ============
+#   https://hwmon.wiki.kernel.org/lm_sensors
+#
+# Clone:
+# =====
+#   git clone https://github.com/lm-sensors/lm-sensors.git
+#
+
+url        = https://github.com/lm-sensors
+
+repo_name  = lm-sensors
+
+#
+# List of tags to be extracted:
+# ============================
+#
+#                                               hash | version
+#            ----------------------------------------+--------
+revisions  = 1667b850a1ce38151dae17156276f981be6fb557:3.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 \
+	  version=`echo $$revision | cut -f 2 -d ':'` ; \
+	  hash=`echo $$revision | cut -f 1 -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/a/logrotate/Makefile b/packages/a/logrotate/Makefile
new file mode 100644
index 0000000..994a468
--- /dev/null
+++ b/packages/a/logrotate/Makefile
@@ -0,0 +1,74 @@
+#
+# Project Home:
+# ============
+#   https://github.com/logrotate/logrotate
+#
+# Git:
+# ===
+#   https://github.com/logrotate/logrotate.git
+#
+# Downloads:
+# =========
+#   https://github.com/logrotate/logrotate/releases/...
+#
+
+url        = https://github.com/logrotate
+
+repo_name  = logrotate
+
+#
+# List of tags to be extracted:
+# ============================
+#
+#                                               hash | tag
+#            ----------------------------------------+--------
+revisions  = 35f99041bd8b68a89fc314d9dedaf18aa9c5743a:3.15.1
+revisions += 0a900b9435522b1314a39ead26ee7cccc91f5674:3.18.0
+revisions += 5429847b018ba9d985eab85e837fbfd37e695d3a:3.21.0
+
+git_repo   = .git_clone
+
+pkgname    = logrotate
+suffix     = tar.xz
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2 -d ':'))
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(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 $(pkgname)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(pkgname)-$$version.$(suffix)' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(pkgname)-$$version/ $$hash | \
+	      xz >../$(pkgname)-$$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/a/lrzip/Makefile b/packages/a/lrzip/Makefile
new file mode 100644
index 0000000..b2c58d1
--- /dev/null
+++ b/packages/a/lrzip/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   http://ck.kolivas.org/apps/lrzip
+#
+# Downloads:
+# =========
+#   http://ck.kolivas.org/apps/lrzip
+#
+
+url         = http://ck.kolivas.org/apps/lrzip
+
+versions    = 0.651
+
+pkg_name    = lrzip
+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 version in $(versions) ; do \
+	  wget -N $(url)/$(pkg_name)-$$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/a/lshw/Makefile b/packages/a/lshw/Makefile
new file mode 100644
index 0000000..8f33cd0
--- /dev/null
+++ b/packages/a/lshw/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://www.ezix.org/project/wiki/HardwareLiSter
+#
+# Downloads:
+# =========
+#   https://www.ezix.org/project/wiki/HardwareLiSter#Download
+#   https://www.ezix.org/software/files
+#
+
+url         = https://www.ezix.org/software/files
+
+versions    = B.02.18 B.02.19.2
+
+pkgname     = lshw
+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/a/lsof/Makefile b/packages/a/lsof/Makefile
new file mode 100644
index 0000000..840b515
--- /dev/null
+++ b/packages/a/lsof/Makefile
@@ -0,0 +1,41 @@
+#
+# Project Home:
+# ============
+#   https://github.com/lsof-org/lsof
+#
+# Downloads:
+# =========
+#   https://github.com/lsof-org/lsof/releases
+#
+
+url         = https://github.com/lsof-org/lsof/releases/download
+
+versions    = 4.98.0
+
+pkgname     = lsof
+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 tarball =======\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/a/lsscsi/Makefile b/packages/a/lsscsi/Makefile
new file mode 100644
index 0000000..c866582
--- /dev/null
+++ b/packages/a/lsscsi/Makefile
@@ -0,0 +1,42 @@
+#
+# Project Home:
+# ============
+#   https://sg.danny.cz/scsi/lsscsi.html
+#
+# Downloads:
+# =========
+#   https://sg.danny.cz/scsi
+#
+
+url         = https://sg.danny.cz/scsi
+
+versions    = 0.27 0.28 0.32
+
+pkgname     = lsscsi
+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.tgz ; \
+	  tar xzf $(pkgname)-$$version.tgz ; \
+	  tar cJf $(pkgname)-$$version.$(suffix) $(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/a/lua/Makefile b/packages/a/lua/Makefile
new file mode 100644
index 0000000..8357823
--- /dev/null
+++ b/packages/a/lua/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://www.lua.org
+#
+# Downloads:
+# =========
+#   https://www.lua.org/download.html
+#
+
+url         = http://www.lua.org/ftp
+
+versions    = 5.2.2 5.2.3 5.3.1 5.3.2 5.3.5 5.3.6 5.4.2 5.4.3 5.4.4
+
+pkgname     = lua
+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/a/lvm2/Makefile b/packages/a/lvm2/Makefile
new file mode 100644
index 0000000..f80997c
--- /dev/null
+++ b/packages/a/lvm2/Makefile
@@ -0,0 +1,62 @@
+#
+# Project Home:
+# ============
+#   https://www.sourceware.org/lvm2
+#
+# Git:
+# ===
+#   https://sourceware.org/git/lvm2.git
+#     git://sourceware.org/git/lvm2.git
+#     ssh://sourceware.org/git/lvm2.git
+#
+
+url        = git://sourceware.org/git/lvm2.git
+
+repo_name  = LVM2
+
+versions   = 2.02.186 2.03.06 2.03.11 2.03.20
+
+TAGS       = $(addprefix v, $(versions))
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 $(versions) ; do \
+	  ver=`echo $$version | sed 's,\.,_,g'` ; \
+	  tag=v`echo $$ver` ; \
+	  if [ ! -f $(repo_name)-$$version.tar.xz ]; then \
+	    echo -e "\n======= Creating '$(repo_name)-$$version.tar.xz' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(repo_name)-$$version/ $$tag | \
+	      xz >../$(repo_name)-$$version.tar.xz ) ; \
+	  fi ; \
+	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/a/lxc/Makefile b/packages/a/lxc/Makefile
new file mode 100644
index 0000000..f11bf9f
--- /dev/null
+++ b/packages/a/lxc/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+#   https://linuxcontainers.org
+#
+# Downloads:
+# =========
+#   https://linuxcontainers.org/downloads/lxc
+#
+
+url         = https://linuxcontainers.org/downloads/lxc
+
+versions    = 1.0.5 1.0.6 1.1.4 1.1.5 5.0.2
+
+pkgname     = lxc
+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/a/lzip/Makefile b/packages/a/lzip/Makefile
new file mode 100644
index 0000000..96fb6b4
--- /dev/null
+++ b/packages/a/lzip/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+#   https://www.nongnu.org/lzip/lzip.html
+#
+# Downloads:
+# =========
+#   https://download.savannah.gnu.org/releases/lzip
+#
+
+url         = https://download.savannah.gnu.org/releases/lzip
+
+versions    = 1.15 1.16 1.17 1.22 1.23
+
+pkgname     = lzip
+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/a/man-db/Makefile b/packages/a/man-db/Makefile
new file mode 100644
index 0000000..c8e5ea7
--- /dev/null
+++ b/packages/a/man-db/Makefile
@@ -0,0 +1,38 @@
+#
+# Project Home:
+# ============
+#   https://savannah.nongnu.org/projects/man-db
+#
+# Downloads:
+# =========
+#   https://download.savannah.nongnu.org/releases/man-db
+#
+
+url         = https://download.savannah.nongnu.org/releases/man-db
+
+versions    = 2.9.4 2.11.2
+pkgname     = man-db
+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/a/man-pages-posix/Makefile b/packages/a/man-pages-posix/Makefile
new file mode 100644
index 0000000..493fe6e
--- /dev/null
+++ b/packages/a/man-pages-posix/Makefile
@@ -0,0 +1,50 @@
+#
+# Project Home:
+# ============
+#   https://www.kernel.org/doc/man-pages
+#
+# Git:
+# ===
+#   https://git.kernel.org/cgit/docs/man-pages/man-pages.git
+#   git clone https://git.kernel.org/pub/scm/docs/man-pages/man-pages
+#
+# Downloads:
+# =========
+#   https://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix
+#
+
+
+url       = https://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix
+
+versions  = 2013-a 2017-a
+
+pkg_name  = man-pages-posix
+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/a/man-pages/Makefile b/packages/a/man-pages/Makefile
new file mode 100644
index 0000000..d2a6ebb
--- /dev/null
+++ b/packages/a/man-pages/Makefile
@@ -0,0 +1,50 @@
+#
+# Project Home:
+# ============
+#   https://www.kernel.org/doc/man-pages
+#
+# Git:
+# ===
+#   https://git.kernel.org/cgit/docs/man-pages/man-pages.git
+#   git clone https://git.kernel.org/pub/scm/docs/man-pages/man-pages
+#
+# Downloads:
+# =========
+#   https://www.kernel.org/pub/linux/docs/man-pages/Archive
+#
+
+
+url       = https://www.kernel.org/pub/linux/docs/man-pages/Archive
+
+versions  = 3.75 3.83 4.04 5.13
+
+pkg_name  = man-pages
+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/a/man/Makefile b/packages/a/man/Makefile
new file mode 100644
index 0000000..367ecce
--- /dev/null
+++ b/packages/a/man/Makefile
@@ -0,0 +1,38 @@
+#
+# Project Home:
+# ============
+#   [ https://www.ibiblio.org/pub/Linux/apps/doctools/man/man-1.6g.tar.gz ]
+#
+# Downloads:
+# =========
+#   https://www.ibiblio.org/pub/Linux/apps/doctools/man
+#
+
+url         = https://www.ibiblio.org/pub/Linux/apps/doctools/man
+
+versions    = 1.6g
+pkgname     = man
+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/a/man2html/Makefile b/packages/a/man2html/Makefile
new file mode 100644
index 0000000..a460708
--- /dev/null
+++ b/packages/a/man2html/Makefile
@@ -0,0 +1,49 @@
+#
+# Project Home:
+# ============
+#   https://ftp.invisible-island.net/scripts/#others_scripts
+#   https://ftp.invisible-island.net/scripts/man2html.html
+#
+# Downloads:
+# =========
+#   ftp://ftp.invisible-island.net/scripts
+#   https://invisible-mirror.net/archives/scripts
+#
+
+url         = https://invisible-mirror.net/archives/scripts
+
+versions    = 20200125 20221106
+
+pkgname     = man2html
+suffix      = tar.xz
+
+src_tarball = other-scripts
+src_suffix  = tgz
+
+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)/$(src_tarball)-$$version.$(src_suffix) ; \
+	  mkdir -p $(pkgname)-$$version ; \
+	  tar -C $(pkgname)-$$version/ --strip-components=1 \
+	      -xzf $(src_tarball)-$$version.$(src_suffix) $(src_tarball)-$$version/$(pkgname) ; \
+	  tar -cJf $(pkgname)-$$version.$(suffix) $(pkgname)-$$version ; \
+	  rm -rf $(pkgname)-$$version $(src_tarball)-$$version.$(src_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/a/mc/Makefile b/packages/a/mc/Makefile
new file mode 100644
index 0000000..8033ccd
--- /dev/null
+++ b/packages/a/mc/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://midnight-commander.org
+#
+# Downloads:
+# =========
+#   http://ftp.midnight-commander.org
+#   ftp://ftp.midnight-commander.org/pub/midnightcommander
+#
+
+url         = ftp://ftp.midnight-commander.org/pub/midnightcommander
+
+versions    = 4.8.10 4.8.12 4.8.15 4.8.16 4.8.26 4.8.29
+pkg_name    = mc
+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/a/mcelog/Makefile b/packages/a/mcelog/Makefile
new file mode 100644
index 0000000..c42f565
--- /dev/null
+++ b/packages/a/mcelog/Makefile
@@ -0,0 +1,65 @@
+#
+# Project Home:
+# ============
+#   https://www.mcelog.org
+#
+# Gitweb:
+# ======
+#   https://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git
+#   https://github.com/andikleen/mcelog
+#
+# Clone:
+# =====
+#   git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git
+#
+
+url        = git://git.kernel.org/pub/scm/utils/cpu/mce
+
+repo_name  = mcelog
+
+versions   = 1.0.0 1.0.4 1.2.9 1.9.4
+
+# List of tags to be extracted:
+TAGS       = $(foreach version,$(versions),$(addprefix v,$(shell echo $(version) | sed 's/\.//g')))
+
+git_repo   = .git_clone
+tarballs   = $(addsuffix .tar.xz, $(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 | sed 's/\.//g'` ; \
+	  if [ ! -f $(repo_name)-$$version.tar.xz ]; then \
+	    echo -e "\n======= Creating '$(repo_name)-$$version.tar.xz' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(repo_name)-$$version/ $$tag | \
+	      xz >../$(repo_name)-$$version.tar.xz ) ; \
+	  fi ; \
+	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/a/mdadm/Makefile b/packages/a/mdadm/Makefile
new file mode 100644
index 0000000..ba7a122
--- /dev/null
+++ b/packages/a/mdadm/Makefile
@@ -0,0 +1,42 @@
+#
+# Downloads:
+# =========
+#   https://www.kernel.org/pub/linux/utils/raid/mdadm
+#   ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm
+#
+
+
+url       = https://www.kernel.org/pub/linux/utils/raid/mdadm
+
+versions  = 3.2.6 3.3.2 3.3.4 3.4 4.1 4.2
+
+pkg_name  = mdadm
+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/a/minicom/Makefile b/packages/a/minicom/Makefile
new file mode 100644
index 0000000..b06dc40
--- /dev/null
+++ b/packages/a/minicom/Makefile
@@ -0,0 +1,58 @@
+#
+# MINICOM:
+#
+# GitLab:
+#   https://salsa.debian.org/minicom-team/minicom
+#
+# Clone:
+#   git clone https://salsa.debian.org/minicom-team/minicom.git
+#
+
+url        = https://salsa.debian.org/minicom-team
+
+repo_name  = minicom
+pkg_name   = minicom
+suffix     = tar.xz
+
+versions   = 2.8
+
+git_repo   = .git_clone
+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 version in $(versions) ; do \
+	  tag=`echo $$version` ; \
+	  if [ ! -f $(pkg_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): %.$(suffix).sha1sum : %.$(suffix)
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(defconfigs) $(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/a/mktemp/Makefile b/packages/a/mktemp/Makefile
new file mode 100644
index 0000000..00d1e2a
--- /dev/null
+++ b/packages/a/mktemp/Makefile
@@ -0,0 +1,34 @@
+#
+# Downloads:
+# =========
+#   https://ftp.radix.pro/3pp/zero/a/mktemp/mktemp-2.7.tar.xz
+#
+
+url         = https://ftp.radix.pro/3pp/zero/a/mktemp
+
+versions    = 2.7
+
+pkgname     = mktemp
+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/a/mlocate/Makefile b/packages/a/mlocate/Makefile
new file mode 100644
index 0000000..d7842ba
--- /dev/null
+++ b/packages/a/mlocate/Makefile
@@ -0,0 +1,34 @@
+#
+# Downloads:
+# =========
+#   https://ftp.radix.pro/3pp/zero/a/mlocate/mlocate-0.26.tar.xz
+#
+
+url         = https://ftp.radix.pro/3pp/zero/a/mlocate
+
+versions    = 0.26
+
+pkgname     = mlocate
+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/a/most/Makefile b/packages/a/most/Makefile
new file mode 100644
index 0000000..2c2ba85
--- /dev/null
+++ b/packages/a/most/Makefile
@@ -0,0 +1,49 @@
+#
+# Project Home:
+# ============
+#   https://www.jedsoft.org/most
+#
+# Downloads:
+# =========
+#   https://www.jedsoft.org/most/download.html
+#   https://www.jedsoft.org/releases/most
+#
+
+url         = https://www.jedsoft.org/releases/most
+
+versions    = 5.2.0
+
+pkgname     = most
+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/a/mt-st/Makefile b/packages/a/mt-st/Makefile
new file mode 100644
index 0000000..d446b7a
--- /dev/null
+++ b/packages/a/mt-st/Makefile
@@ -0,0 +1,46 @@
+#
+# Project Home:
+# ============
+#   https://www.ibiblio.org/pub/Linux/system/backup
+#
+# Downloads:
+# =========
+#   https://www.ibiblio.org/pub/Linux/system/backup
+#
+
+url         = http://www.ibiblio.org/pub/Linux/system/backup
+
+version     = 1.1
+
+pkgname     = mt-st
+suffix      = tar.gz
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(version)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+description = $(addsuffix .lsm, $(addprefix $(pkgname)-, $(version)))
+
+files       = $(description)
+
+all: $(tarball) $(files) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	wget -N $(url)/$(tarball)
+
+$(files): $(tarball)
+	@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 $(tarball) $(files) $(sha1s)
diff --git a/packages/a/mtd-utils/Makefile b/packages/a/mtd-utils/Makefile
new file mode 100644
index 0000000..e07bd67
--- /dev/null
+++ b/packages/a/mtd-utils/Makefile
@@ -0,0 +1,68 @@
+#
+# Project Home:
+# ============
+#   http://www.linux-mtd.infradead.org/index.html
+#
+# Clone:
+# =====
+#   git clone git://git.infradead.org/mtd-utils.git
+#
+
+url        = git://git.infradead.org
+
+repo_name  = mtd-utils
+pkg_name   = mtd-utils
+suffix     = tar.xz
+
+versions   = 2.1.3 2.1.4 2.1.5
+
+# List of tags to be extracted:
+TAGS       = $(addprefix v, $(versions))
+
+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 ; \
+	  tar xJf $(pkg_name)-$$version.$(suffix) ; \
+	  ( cd $(pkg_name)-$$version ; \
+	    autoreconf --warnings=portability -vif ; \
+	    rm -rf autom4te.cache .gitignore *~ ) ; \
+	  tar cJf $(pkg_name)-$$version.$(suffix) $(pkg_name)-$$version ; \
+	  rm -rf $(pkg_name)-$$version ; \
+	done
+
+$(sha1s): %.tar.xz.sha1sum : %.tar.xz
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(sha1s)
+	@echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
+	@rm -rf $(git_repo) $(repo_name)
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/a/mtx/Makefile b/packages/a/mtx/Makefile
new file mode 100644
index 0000000..bb2c4b1
--- /dev/null
+++ b/packages/a/mtx/Makefile
@@ -0,0 +1,50 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/mtx
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/mtx/mtx-stable/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/mtx/mtx-stable
+
+versions    = 1.3.11 1.3.12
+
+pkgname     = mtx
+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 \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([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-Z-]*\)\([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/a/nano/Makefile b/packages/a/nano/Makefile
new file mode 100644
index 0000000..30bb0bf
--- /dev/null
+++ b/packages/a/nano/Makefile
@@ -0,0 +1,53 @@
+#
+# Project Home:
+# ============
+#   https://www.nano-editor.org
+#
+# Downloads:
+# =========
+#   https://www.nano-editor.org/download.php
+#   https://www.nano-editor.org/dist/v${MAJOR.MINOR}
+#
+
+url         = https://www.nano-editor.org/dist
+
+versions    = 7.2
+
+pkgname     = nano
+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 \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z0-9-]*\)\([0-9][.0-9]*[.0-9]*\)\(\..*\)/\2/'` ; \
+	  major_minor=v`echo $$version | cut -f1 -d'.'` ; \
+	  wget -N $(url)/$$major_minor/$$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/'` ; \
+	  major_minor=v`echo $$version | cut -f1,2 -d'.'` ; \
+	  wget -N $(url)/$$major_minor/$$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/a/ncompress/Makefile b/packages/a/ncompress/Makefile
new file mode 100644
index 0000000..5b13039
--- /dev/null
+++ b/packages/a/ncompress/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://github.com/vapier/ncompress
+#
+# Downloads:
+# =========
+#   https://github.com/vapier/ncompress/releases
+#
+
+url         = https://github.com/vapier/ncompress/archive
+
+versions    = 4.2.4.6 5.0
+
+pkg_name    = ncompress
+suffix      = tar.gz
+
+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 version in $(versions) ; do \
+	  wget -N $(url)/v$$version.$(suffix) ; \
+	  mv v$$version.$(suffix) $(pkg_name)-$$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/a/nvme-cli/Makefile b/packages/a/nvme-cli/Makefile
new file mode 100644
index 0000000..824d254
--- /dev/null
+++ b/packages/a/nvme-cli/Makefile
@@ -0,0 +1,72 @@
+#
+# Project Home:
+# ============
+#   https://github.com/linux-nvme
+#
+# Downloads:
+# =========
+#   https://github.com/linux-nvme/nvme-cli/releases
+#
+# Clone:
+# =====
+#   https://github.com/linux-nvme/nvme-cli.git
+#
+
+url        = https://github.com/linux-nvme
+
+repo_name  = nvme-cli
+pkg_name   = nvme-cli
+suffix     = tar.xz
+
+versions   = 1.13 2.4
+
+# List of tags to be extracted:
+TAGS       = $(addprefix v, $(versions))
+
+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 ; \
+	  tar xJf $(pkg_name)-$$version.$(suffix) ; \
+	  ( cd $(pkg_name)-$$version ; \
+	    if [ -f "./NVME-VERSION-GEN" ] ; then ./NVME-VERSION-GEN ; fi ; \
+	    rm -rf .github .gitignore ) ; \
+	  tar cJf $(pkg_name)-$$version.$(suffix) $(pkg_name)-$$version ; \
+	  rm -rf $(pkg_name)-$$version ; \
+	done
+
+$(sha1s): %.tar.xz.sha1sum : %.tar.xz
+	@for tarball in $< ; do \
+	  echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
+	  sha1sum --binary $$tarball > $$tarball.sha1sum ; \
+	done
+
+repository_clean: $(sha1s)
+	@echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
+	@rm -rf $(git_repo) $(repo_name)
+
+downloads_clean:
+	@rm -rf $(tarballs) $(sha1s)
+	@rm -rf $(git_repo) $(repo_name)
diff --git a/packages/a/os-prober/Makefile b/packages/a/os-prober/Makefile
new file mode 100644
index 0000000..a64d81b
--- /dev/null
+++ b/packages/a/os-prober/Makefile
@@ -0,0 +1,52 @@
+#
+# Project Home:
+# ============
+#   https://packages.debian.org/sid/os-prober
+#
+# Downloads:
+# =========
+#   http://ftp.de.debian.org/debian/pool/main/o/os-prober
+#
+
+url         = http://ftp.de.debian.org/debian/pool/main/o/os-prober
+
+versions    = 1.65 1.70 1.79 1.81
+pkgname     = os-prober
+suffix      = tar.xz
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+description = $(addsuffix .dsc, $(addprefix $(pkgname)-, $(versions)))
+
+files       = $(description)
+
+all: $(tarball) $(files) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	@for version in $(versions) ; do \
+	  wget -N $(url)/$(pkgname)_$$version.$(suffix) ; \
+	  tar xJf $(pkgname)_$$version.$(suffix) ; \
+	  mv $(pkgname) $(pkgname)-$$version ; \
+	  tar cJf $(pkgname)-$$version.$(suffix) $(pkgname)-$$version ; \
+	  rm -rf $(pkgname)-$$version $(pkgname)_$$version.$(suffix) ; \
+	done
+
+$(files): $(tarball)
+	@echo -e "\n======= Downloading patch and description =======\n"
+	@for version in $(versions) ; do \
+	  wget -N $(url)/$(pkgname)_$$version.dsc ; \
+	  mv $(pkgname)_$$version.dsc $(pkgname)-$$version.dsc ; \
+	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 $(tarball) $(files) $(sha1s)
diff --git a/packages/a/patchelf/Makefile b/packages/a/patchelf/Makefile
new file mode 100644
index 0000000..3e79302
--- /dev/null
+++ b/packages/a/patchelf/Makefile
@@ -0,0 +1,78 @@
+#
+# Project Home:
+# ============
+#   https://nixos.org/patchelf.html
+#
+# GitHub:
+# ======
+#   https://github.com/NixOS/patchelf
+#
+
+url        = https://github.com/NixOS
+
+repo_name  = patchelf
+
+#
+# List of revisions to be extracted:
+# =================================
+#
+#                                               hash | version
+#            ----------------------------------------+--------
+revisions  = 44b7f9583ffe0ee09c4da8bd996ef9a6a0017e1a:0.9
+revisions += 27ffe8ae871e7a186018d66020ef3f6162c12c69:0.10.1
+revisions += 978325def61e0126d13d7936eee51326cbd433d4:0.10.2
+revisions += 8d3a16e97294e3c5521c61b4c8835499c9918264:0.12
+revisions += a949ff23315bbb5863627c4655fe216ecbf341a2:0.13
+revisions += 49008002562355b0e35075cbc1c42c645ff04e28:0.15
+revisions += 5908e16cd562bcb1909be4de0409c4912a8afc52:0.17.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) ) ; \
+	    tar xJf $(repo_name)-$$version.$(suffix) ; \
+	    ( cd $(repo_name)-$$version ; ./bootstrap.sh ; rm -rf autom4te.cache .git* build-aux/*~ *~ ) ; \
+	    tar cJf $(repo_name)-$$version.$(suffix) $(repo_name)-$$version ; \
+	    rm -rf $(repo_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/a/pciutils/Makefile b/packages/a/pciutils/Makefile
new file mode 100644
index 0000000..613b32d
--- /dev/null
+++ b/packages/a/pciutils/Makefile
@@ -0,0 +1,42 @@
+#
+# Project Home:
+# ============
+#   https://www.kernel.org
+#
+# Downloads:
+# =========
+#   ftp://metalab.unc.edu/pub/Linux/hardware
+#   ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci
+#   ftp://ftp.kernel.org/pub/software/utils/pciutils
+#   https://www.kernel.org/pub/software/utils/pciutils
+#
+
+url         = https://www.kernel.org/pub/software/utils/pciutils
+
+versions    = 3.2.0 3.2.1 3.3.1 3.4.1 3.6.2 3.7.0 3.8.0 3.9.0
+
+pkgname     = pciutils
+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/a/pcmciautils/Makefile b/packages/a/pcmciautils/Makefile
new file mode 100644
index 0000000..e08384a
--- /dev/null
+++ b/packages/a/pcmciautils/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://www.kernel.org
+#
+# Downloads:
+# =========
+#   ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia
+#   https://www.kernel.org/pub/linux/utils/kernel/pcmcia
+#
+
+url         = https://www.kernel.org/pub/linux/utils/kernel/pcmcia
+
+versions    = 016 017 018
+
+pkgname     = pcmciautils
+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/a/pkgtools/Makefile b/packages/a/pkgtools/Makefile
new file mode 100644
index 0000000..c33898b
--- /dev/null
+++ b/packages/a/pkgtools/Makefile
@@ -0,0 +1,69 @@
+#
+# Project Home:
+# ============
+#   https://radix.pro/build-system/pkgtool
+#
+# Git:
+# ===
+#   https://cgit.radix.pro/radix/pkgtools.git
+#
+# Clone:
+# =====
+#   git clone https://git.radix.pro/radix/pkgtools.git
+#
+
+url        = https://git.radix.pro/radix
+
+repo_name  = pkgtools
+pkg_name   = pkgtools
+suffix     = tar.xz
+
+versions   = 0.2.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=$(repo_name)-`echo $$version` ; \
+	  if [ ! -f $(pkg_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 ; \
+	      ./bootstrap ; \
+	      rm -rf autom4te.cache .gitignore .svnignore ) ; \
+	    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/a/pm-utils/Makefile b/packages/a/pm-utils/Makefile
new file mode 100644
index 0000000..4ee4e08
--- /dev/null
+++ b/packages/a/pm-utils/Makefile
@@ -0,0 +1,38 @@
+#
+# Project Home:
+# ============
+#   https://pm-utils.freedesktop.org/wiki
+#
+# Downloads:
+# =========
+#   https://pm-utils.freedesktop.org/releases
+#
+
+url         = https://pm-utils.freedesktop.org/releases
+
+versions    = 1.4.1
+pkg_name    = pm-utils
+suffix      = tar.gz
+
+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/a/po4a/Makefile b/packages/a/po4a/Makefile
new file mode 100644
index 0000000..f59fd4f
--- /dev/null
+++ b/packages/a/po4a/Makefile
@@ -0,0 +1,64 @@
+#
+# Project Home:
+# ============
+#   https://po4a.org
+#
+# Clone:
+# =====
+#   git clone https://github.com/mquinson/po4a.git
+#
+
+url        = https://github.com/mquinson
+
+repo_name  = po4a
+pkg_name   = po4a
+suffix     = tar.xz
+
+versions   = 0.63 0.64 0.65 0.68 0.69
+
+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 $(pkg_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 ; \
+	      rm -rf testsuite .github .appveyor.yml .gitignore .tidyallrc .travis.yml .weblate ) ; \
+	    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/a/populatefs/Makefile b/packages/a/populatefs/Makefile
new file mode 100644
index 0000000..27dcf34
--- /dev/null
+++ b/packages/a/populatefs/Makefile
@@ -0,0 +1,74 @@
+#
+# Project Home:
+# ============
+#   https://github.com/oskarirauta/populatefs.git
+#
+# Downloads:
+# =========
+#   https://github.com/oskarirauta/populatefs/releases
+#   https://github.com/oskarirauta/populatefs/archive/v0.9.tar.gz - initial version
+#
+# Clone:
+# =====
+#   git clone https://github.com/oskarirauta/populatefs.git populatefs
+#
+
+url        = https://github.com/oskarirauta
+
+repo_name  = populatefs
+
+#
+# List of tags to be extracted:
+# ============================
+#
+#                                               hash | version
+#            ----------------------------------------+--------
+revisions  = 9cb86b88d29601e73f9d78eeb3430a0a32b33057-0.9
+revisions += e9f9f623596cbc43495c1f26741805c7a0ca627e-1.0
+revisions += 95cc98bb438b64a1c0256d3735db9a1647f48ef0-1.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 \
+	  version=`echo $$revision | cut -f 2 -d '-'` ; \
+	  hash=`echo $$revision | cut -f 1 -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/a/powertop/Makefile b/packages/a/powertop/Makefile
new file mode 100644
index 0000000..a2d199c
--- /dev/null
+++ b/packages/a/powertop/Makefile
@@ -0,0 +1,42 @@
+#
+# Project Home:
+# ============
+#   https://01.org/powertop
+#
+# GitHub:
+# ======
+#   https://github.com/fenrus75/powertop
+#
+# Downloads:
+# =========
+#   https://01.org/powertop/downloads
+#
+
+url         = https://01.org/sites/default/files/downloads/powertop
+
+versions    = 2.4 2.6.1 2.7 2.8
+pkg_name    = powertop
+suffix      = tar.gz
+
+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/a/procinfo-ng/Makefile b/packages/a/procinfo-ng/Makefile
new file mode 100644
index 0000000..d3ea3dc
--- /dev/null
+++ b/packages/a/procinfo-ng/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/p/procinfo-ng/wiki/Home
+#
+# Downloads:
+# =========
+#   https://sourceforge.net/projects/procinfo-ng/files/procinfo-ng
+#
+
+url         = https://sourceforge.net/projects/procinfo-ng/files/procinfo-ng
+
+versions    = 2.0.304
+pkgname     = procinfo-ng
+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/a/procinfo/Makefile b/packages/a/procinfo/Makefile
new file mode 100644
index 0000000..6760349
--- /dev/null
+++ b/packages/a/procinfo/Makefile
@@ -0,0 +1,38 @@
+#
+# Project Home:
+# ============
+#
+#
+# Downloads:
+# =========
+#   https://www.ibiblio.org/pub/Linux/system/status/ps/
+#
+
+url         = https://www.ibiblio.org/pub/Linux/system/status/ps
+
+versions    = 18
+pkgname     = procinfo
+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/a/procps-ng/Makefile b/packages/a/procps-ng/Makefile
new file mode 100644
index 0000000..fc8139d
--- /dev/null
+++ b/packages/a/procps-ng/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/procps-ng
+#
+# Downloads:
+# =========
+#   https://sourceforge.net/projects/procps-ng/files/Production
+#   https://gitlab.com/procps-ng/procps
+#
+
+url         = https://sourceforge.net/projects/procps-ng/files/Production
+
+versions    = 3.3.15 3.3.16 3.3.17 4.0.3
+
+pkgname     = procps-ng
+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/a/procps/Makefile b/packages/a/procps/Makefile
new file mode 100644
index 0000000..560c1f7
--- /dev/null
+++ b/packages/a/procps/Makefile
@@ -0,0 +1,68 @@
+#
+# Project Home:
+# ============
+#   https://gitlab.com/procps-ng/procps
+#
+# GitLab:
+# ======
+#   git clone https://gitlab.com/procps-ng/procps.git
+#
+
+url        = https://gitlab.com/procps-ng/procps.git
+
+repo_name  = procps
+
+versions   = 3.3.15 3.3.16 3.3.17 4.0.3
+
+suffix     = tar.xz
+
+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 $(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) ) ; \
+	    tar xJf $(repo_name)-$$version.$(suffix) ; \
+	    ( cd $(repo_name)-$$version ; \
+	      LT_OPTS='--copy' AM_OPTS='--copy --force' ./autogen.sh ; \
+	      rm -rf autom4te.cache .gitignore .gitlab-ci.yml ; \
+	      echo $$version > .tarball-version ; \
+	    ) ; \
+	    tar cJf $(repo_name)-$$version.$(suffix) $(repo_name)-$$version ; \
+	    rm -rf $(repo_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/a/pseudo/Makefile b/packages/a/pseudo/Makefile
new file mode 100644
index 0000000..b5aa592
--- /dev/null
+++ b/packages/a/pseudo/Makefile
@@ -0,0 +1,70 @@
+
+#
+# PSEUDO: git://git.yoctoproject.org/pseudo
+#
+# Cgit:
+# ====
+#   https://git.yoctoproject.org/pseudo
+#
+
+url        = git://git.yoctoproject.org
+
+repo_name  = pseudo
+
+#
+# List of revisions to be extracted:
+# =================================
+#
+#                                               hash | version
+#            ----------------------------------------+--------
+revisions  = 735ac1b9ff7471b100f6758f9072bfd45e0e3f40-1.7.4
+revisions += eb47d855a831b6dc0ad34890e84b8f6f483693df-1.8.1
+revisions += fb3a0eeb7def32aaf2288e1b73573eb2f1862acf-1.8.2
+revisions += 23f089f480e04ca1b88df8fe1f46b864fee2a0b8-1.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) $(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/a/psmisc-ng/Makefile b/packages/a/psmisc-ng/Makefile
new file mode 100644
index 0000000..5ad8eb6
--- /dev/null
+++ b/packages/a/psmisc-ng/Makefile
@@ -0,0 +1,41 @@
+#
+# Project Home:
+# ============
+#   https://psmisc.sourceforge.net/
+#   https://sourceforge.net/projects/psmisc/files/psmisc/
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/psmisc/files
+#   https://gitlab.com/psmisc/psmisc
+#
+
+url         = https://downloads.sourceforge.net/psmisc/files
+
+versions    = 23.2 23.3 23.4 23.6
+
+pkgname     = psmisc
+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/a/psmisc/Makefile b/packages/a/psmisc/Makefile
new file mode 100644
index 0000000..c8d6400
--- /dev/null
+++ b/packages/a/psmisc/Makefile
@@ -0,0 +1,66 @@
+#
+# Project Home:
+# ============
+#   https://gitlab.com/psmisc/psmisc
+#
+# GitLab:
+# ======
+#   https://gitlab.com/psmisc/psmisc.git
+#
+
+url        = https://gitlab.com/psmisc
+
+repo_name  = psmisc
+pkg_name   = psmisc
+
+versions   = 23.2 23.3 23.4 23.6
+
+suffix     = tar.xz
+
+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 $(pkg_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 ; \
+	      AM_OPTS=--copy ./autogen.sh ; \
+	      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/a/psutils/Makefile b/packages/a/psutils/Makefile
new file mode 100644
index 0000000..93cdf6f
--- /dev/null
+++ b/packages/a/psutils/Makefile
@@ -0,0 +1,44 @@
+#
+# Project Home:
+# ============
+#   http://knackered.org/angus/psutils
+#
+# Downloads:
+# =========
+#   ftp://ftp.knackered.org/pub/psutils
+#
+
+url         = ftp://ftp.knackered.org/pub/psutils
+
+versions    = 1.17
+
+pkgname     = psutils
+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 \
+	  v=`echo $$version | sed 's/1\./p/g'` ; \
+	  wget -N $(url)/$(pkgname)-$$v.$(suffix) ; \
+	  tar xzf $(pkgname)-$$v.$(suffix) ; \
+	  mv $(pkgname) $(pkgname)-$$version ; \
+	  tar czf $(pkgname)-$$version.$(suffix) $(pkgname)-$$version ; \
+	  rm -rf $(pkgname)-$$version $(pkgname)-$$v.$(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/a/qpdf/Makefile b/packages/a/qpdf/Makefile
new file mode 100644
index 0000000..ce4b706
--- /dev/null
+++ b/packages/a/qpdf/Makefile
@@ -0,0 +1,67 @@
+#
+# Project Home:
+# ============
+#   https://qpdf.sourceforge.io
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/qpdf/qpdf
+#
+# GitHub:
+# ======
+#   https://github.com/qpdf/qpdf
+#
+# Clone:
+# =====
+#   git clone https://github.com/qpdf/qpdf.git
+#
+
+url        = https://github.com/qpdf
+
+repo_name  = qpdf
+pkg_name   = qpdf
+suffix     = tar.xz
+
+versions   = 11.3.0
+
+git_repo   = .git_clone
+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 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): %.$(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/a/quota/Makefile b/packages/a/quota/Makefile
new file mode 100644
index 0000000..88d3199
--- /dev/null
+++ b/packages/a/quota/Makefile
@@ -0,0 +1,44 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/linuxquota
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/linuxquota/quota-tools/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/linuxquota/quota-tools
+
+versions    = 3.17 4.01 4.02 4.03 4.06 4.09
+
+pkgname     = quota
+suffix      = tar.gz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([0-9][.0-9]*[.0-9]*\)\(\..*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$tarball ; \
+	  tar xzf $$tarball ; \
+	  mv $(pkgname)-tools $(pkgname)-$$version ; \
+	  tar czf $$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/a/radeontool/Makefile b/packages/a/radeontool/Makefile
new file mode 100644
index 0000000..3956f3d
--- /dev/null
+++ b/packages/a/radeontool/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+# http://fdd.com/software/radeon
+# [ https://airlied.blogspot.com ]
+#
+# Downloads:
+# =========
+# https://people.freedesktop.org/~airlied/radeontool
+#
+
+url         = https://people.freedesktop.org/~airlied/radeontool
+
+versions    = 1.6.1 1.6.3
+
+pkg_name    = radeontool
+suffix      = tar.bz2
+
+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/a/reiserfsprogs/Makefile b/packages/a/reiserfsprogs/Makefile
new file mode 100644
index 0000000..9f00451
--- /dev/null
+++ b/packages/a/reiserfsprogs/Makefile
@@ -0,0 +1,41 @@
+#
+# Project Home:
+# ============
+#   https://reiser4.wiki.kernel.org/index.php/Main_Page
+#
+# Downloads:
+# =========
+#   ftp://ftp.kernel.org/pub/linux/kernel/people/jeffm/reiserfsprogs
+#   https://www.kernel.org/pub/linux/kernel/people/jeffm/reiserfsprogs
+#
+
+url         = https://www.kernel.org/pub/linux/kernel/people/jeffm/reiserfsprogs
+
+versions    = 3.6.23 3.6.24 3.6.27
+
+pkgname     = reiserfsprogs
+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][.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/a/rpm/Makefile b/packages/a/rpm/Makefile
new file mode 100644
index 0000000..53f57c9
--- /dev/null
+++ b/packages/a/rpm/Makefile
@@ -0,0 +1,42 @@
+#
+# Project Home:
+# ============
+#   https://rpm.org
+#
+# Downloads:
+# =========
+#   https://rpm.org/download.html
+#   https://ftp.osuosl.org/pub/rpm/releases/rpm-${MAJOR.MINOR}.x
+#
+
+url         = https://ftp.osuosl.org/pub/rpm/releases
+
+versions    = 4.11.2 4.12.0 4.12.0.1 4.17.1.1 4.18.1
+
+pkgname     = rpm
+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/'` ; \
+	  major_minor_x=`echo $$version | cut -f1,2 -d'.'`.x ; \
+	  wget -N $(url)/$(pkgname)-$$major_minor_x/$$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/a/rzip/Makefile b/packages/a/rzip/Makefile
new file mode 100644
index 0000000..c9ecce3
--- /dev/null
+++ b/packages/a/rzip/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://rzip.samba.org
+#   [ http://www.samba.org/~tridge ]
+#
+# Downloads:
+# =========
+#   https://rzip.samba.org/ftp/rzip
+#
+
+url         = https://rzip.samba.org/ftp/rzip
+
+versions    = 2.1
+
+pkg_name    = rzip
+suffix      = tar.gz
+
+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/a/sash/Makefile b/packages/a/sash/Makefile
new file mode 100644
index 0000000..a24856e
--- /dev/null
+++ b/packages/a/sash/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+# https://members.tip.net.au/~dbell/
+#
+# Downloads:
+# =========
+# https://members.tip.net.au/~dbell/programs/sash-3.8.tar.gz
+#
+
+url         = https://members.tip.net.au/~dbell/programs
+
+versions    = 3.7 3.8
+
+pkgname     = sash
+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/a/sc/Makefile b/packages/a/sc/Makefile
new file mode 100644
index 0000000..bf51955
--- /dev/null
+++ b/packages/a/sc/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+#   [ https://www.ibiblio.org/pub/Linux/apps/financial/spreadsheet ]
+#
+# Downloads:
+# =========
+#   https://www.ibiblio.org/pub/Linux/apps/financial/spreadsheet
+#
+
+url         = https://www.ibiblio.org/pub/Linux/apps/financial/spreadsheet
+
+versions    = 7.16
+
+pkgname     = sc
+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/a/sc/minmansc.pdf b/packages/a/sc/minmansc.pdf
new file mode 100644
index 0000000..b70ebf9
Binary files /dev/null and b/packages/a/sc/minmansc.pdf differ
diff --git a/packages/a/sdparm/Makefile b/packages/a/sdparm/Makefile
new file mode 100644
index 0000000..d5f9d87
--- /dev/null
+++ b/packages/a/sdparm/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://sg.danny.cz/sg/sdparm.html
+#
+# Downloads:
+# =========
+#   https://sg.danny.cz/sg/p/sdparm-1.08.tar.xz
+#
+
+url         = http://sg.danny.cz/sg/p
+
+versions    = 1.08 1.09 1.10 1.11 1.12
+
+pkg_name    = sdparm
+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/a/seejpeg/Makefile b/packages/a/seejpeg/Makefile
new file mode 100644
index 0000000..2d4d9c4
--- /dev/null
+++ b/packages/a/seejpeg/Makefile
@@ -0,0 +1,51 @@
+#
+# Project Home:
+# ============
+#   [ https://www.ibiblio.org/pub/Linux/apps/graphics/viewers/svga ]
+#
+# Downloads:
+# =========
+#   https://www.ibiblio.org/pub/Linux/apps/graphics/viewers/svga
+#
+
+url         = https://www.ibiblio.org/pub/Linux/apps/graphics/viewers/svga
+
+versions    = 1.10
+
+pkgname     = seejpeg
+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 version in $(versions) ; do \
+	  wget -N $(url)/$(pkgname)-$$version.tgz ; \
+	  tar xzf $(pkgname)-$$version.tgz ; \
+	  tar czf $(pkgname)-$$version.$(suffix) $(pkgname)-$$version ; \
+	  rm -rf $(pkgname)-$$version $(pkgname)-$$version.tgz ; \
+	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/a/setserial/Makefile b/packages/a/setserial/Makefile
new file mode 100644
index 0000000..2bf1cb9
--- /dev/null
+++ b/packages/a/setserial/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://sourceforge.net/projects/setserial/
+#
+# Downloads:
+# =========
+#   https://sourceforge.net/projects/setserial/files/setserial/2.17/
+#
+
+url         = https://sourceforge.net/projects/setserial/files/setserial
+
+versions    = 2.17
+
+pkgname     = setserial
+suffix      = tar.gz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+all: $(tarballs) $(sha1s)
+
+.PHONY: downloads_clean
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n"
+	@for tarball in $(tarballs) ; do \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([0-9][.0-9][0-9]*\)\([\.].*\)/\2/'` ; \
+	  wget -N $(url)/$$version/$$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/a/shadow/Makefile b/packages/a/shadow/Makefile
new file mode 100644
index 0000000..4db05f2
--- /dev/null
+++ b/packages/a/shadow/Makefile
@@ -0,0 +1,78 @@
+#
+# Project Home:
+# ============
+#   https://github.com/shadow-maint/shadow
+#
+# Downloads:
+# =========
+#   https://github.com/shadow-maint/shadow/releases
+#
+
+
+url        = https://github.com/shadow-maint
+
+repo_name  = shadow
+
+#
+# List of upstream versions to be extracted:
+# =========================================
+#                                               hash | tag
+#            ----------------------------------------+-----
+revisions  = 2cc7da6058152ec0cd338d4e15d29bd7124ae3d7:4.8.1
+revisions += 6f9124b7f73d6e31f96a0d441d7a3e54d835642d:4.9
+revisions += 868d7b34ea4abfcd25170c8e9d69e97fc55d6a2a:4.10
+revisions += 25337787e73e115408294775872a035cbc5c467a:4.12
+revisions += 01b224349bbeda7daaf08f6004bdf028456e2d86:4.12.3
+revisions += 24b44b686ea2221405cfd806dede046cf1fd9584:4.13
+
+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) ) ; \
+	    tar xJf $(repo_name)-$$version.$(suffix) ; \
+	    ( cd $(repo_name)-$$version ; \
+	      autoreconf -v -f --install ; rm -rf autom4te.cache .builds .git* .travis.yml *~ ) ; \
+	    tar cJf $(repo_name)-$$version.$(suffix) $(repo_name)-$$version ; \
+	    rm -rf $(repo_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/a/smartmontools/Makefile b/packages/a/smartmontools/Makefile
new file mode 100644
index 0000000..d1ee89c
--- /dev/null
+++ b/packages/a/smartmontools/Makefile
@@ -0,0 +1,51 @@
+#
+# Project Home:
+# ============
+#   https://www.smartmontools.org
+#   https://sourceforge.net/projects/smartmontools
+#
+# Downloads:
+# =========
+#   https://downloads.sourceforge.net/project/smartmontools/smartmontools/${VERSION}
+#
+
+url         = https://downloads.sourceforge.net/project/smartmontools/smartmontools
+
+versions    = 5.43 6.3 6.4 7.3
+
+pkgname     = smartmontools
+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 \
+	  version=`echo $$tarball | sed 's/\([a-zA-Z-]*\)\([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-Z-]*\)\([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/a/splitvt/Makefile b/packages/a/splitvt/Makefile
new file mode 100644
index 0000000..e04240e
--- /dev/null
+++ b/packages/a/splitvt/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://slouken.libsdl.org/projects/splitvt
+#
+# Downloads:
+# =========
+#   https://slouken.libsdl.org/projects/splitvt
+#
+
+url         = https://slouken.libsdl.org/projects/splitvt
+
+versions    = 1.6.5 1.6.6
+
+pkgname     = splitvt
+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 tarball =======\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/a/squashfs-tools/Makefile b/packages/a/squashfs-tools/Makefile
new file mode 100644
index 0000000..3328cf5
--- /dev/null
+++ b/packages/a/squashfs-tools/Makefile
@@ -0,0 +1,64 @@
+#
+# Project Home:
+# ============
+#   https://github.com/plougher/squashfs-tools
+#
+# Clone:
+# =====
+#   git clone https://github.com/plougher/squashfs-tools.git
+#
+
+url        = https://github.com/plougher
+
+repo_name  = squashfs-tools
+pkg_name   = squashfs-tools
+suffix     = tar.xz
+
+versions   = 4.5.1 4.6.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=`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 ; \
+	      rm -f .gitattributes ) ; \
+	    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/a/sudo/Makefile b/packages/a/sudo/Makefile
new file mode 100644
index 0000000..aa2b2f1
--- /dev/null
+++ b/packages/a/sudo/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+#   https://www.sudo.ws
+#
+# Downloads:
+# =========
+#   https://www.sudo.ws/dist
+#
+
+url         = https://www.sudo.ws/dist
+
+versions    = 1.8.6p8 1.8.11p2 1.8.12 1.8.13 1.8.14 1.8.15 1.9.8p2 1.9.13p3
+
+pkgname     = sudo
+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/a/sysfsutils/Makefile b/packages/a/sysfsutils/Makefile
new file mode 100644
index 0000000..faf8291
--- /dev/null
+++ b/packages/a/sysfsutils/Makefile
@@ -0,0 +1,82 @@
+#
+# Project Home:
+# ============
+#   https://github.com/linux-ras/sysfsutils
+#
+# GitHub:
+# ======
+#   https://github.com/linux-ras/sysfsutils.git
+#
+
+url        = https://github.com/linux-ras
+
+repo_name  = sysfsutils
+pkg_name   = sysfsutils
+
+#
+# NOTE:
+# ====
+#   version 2.1.0 is deprecated (released at 23 Aug 2006)
+#
+versions   = 2.1.0
+versions  += 2.1.1
+
+suffix     = tar.xz
+
+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 \
+	  if [ "x$$version" = "x2.1.0" ] ; then \
+	    tag=sysfsutils-`echo $$version | sed 's,\.,\_,g'` ; \
+	  else \
+	    tag=v`echo $$version` ; \
+	  fi ; \
+	  if [ ! -f $(pkg_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 ; \
+	      if [ "x$$version" = "x2.1.0" ] ; then \
+	        chmod a-x INSTALL ; chmod a+x config.{guess,sub} ; \
+	      else \
+	        sed -i '/^AC_HEADER_STDC/d' configure.ac ; \
+	        ./autogen ; \
+	        rm -rf autom4te.cache .git* .travis.yml *~ ; \
+	      fi ; \
+	    ) ; \
+	    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/a/sysklogd/Makefile b/packages/a/sysklogd/Makefile
new file mode 100644
index 0000000..6af9b9e
--- /dev/null
+++ b/packages/a/sysklogd/Makefile
@@ -0,0 +1,71 @@
+#
+# Project Home:
+# ============
+#   https://github.com/troglobit/sysklogd
+#
+# Clone:
+# =====
+#   git clone https://github.com/troglobit/sysklogd.git
+#
+
+url        = https://github.com/troglobit
+
+repo_name  = sysklogd
+pkg_name   = sysklogd
+suffix     = tar.xz
+
+versions   = 2.2.0 2.2.1 2.4.4
+
+# List of tags to be extracted:
+TAGS       = $(addprefix v, $(versions))
+
+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 $(pkg_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 ; \
+	      mkdir m4 ; \
+	      sed -i 's,^AC_CONFIG_HEADER(,AC_CONFIG_HEADERS(,' configure.ac ; \
+	      sed -i '/^AC_HEADER_STDC/d' configure.ac ; \
+	      autoreconf --warnings=portability -vif ; \
+	      rm -rf autom4te.cache .github .gitignore .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/a/syslinux/Makefile b/packages/a/syslinux/Makefile
new file mode 100644
index 0000000..1f93890
--- /dev/null
+++ b/packages/a/syslinux/Makefile
@@ -0,0 +1,47 @@
+#
+# Project Home:
+# ============
+#   https://wiki.syslinux.org/wiki/index.php?title=The_Syslinux_Project
+#
+# Downloads:
+# =========
+#   https://wiki.syslinux.org/wiki/index.php?title=Download
+#   ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux
+#   https://www.kernel.org/pub/linux/utils/boot/syslinux
+#
+
+
+url       = https://www.kernel.org/pub/linux/utils/boot/syslinux
+
+versions  = 4.06 4.07 6.03
+
+pkg_name  = syslinux
+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/a/sysstat/Makefile b/packages/a/sysstat/Makefile
new file mode 100644
index 0000000..cdd4c31
--- /dev/null
+++ b/packages/a/sysstat/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   http://sebastien.godard.pagesperso-orange.fr
+#
+# Downloads:
+# =========
+#   http://sebastien.godard.pagesperso-orange.fr/download.html
+#   http://pagesperso-orange.fr/sebastien.godard
+#
+
+url         = http://pagesperso-orange.fr/sebastien.godard
+
+versions    = 11.0.2 11.1.2 11.2.0 12.6.2 12.7.2
+pkg_name    = sysstat
+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/a/sysvinit/Makefile b/packages/a/sysvinit/Makefile
new file mode 100644
index 0000000..7bdc638
--- /dev/null
+++ b/packages/a/sysvinit/Makefile
@@ -0,0 +1,60 @@
+#
+# Project Home:
+# ============
+#   https://github.com/slicer69/sysvinit
+#
+# GitHub:
+# ======
+#   https://github.com/slicer69/sysvinit.git
+#
+
+url        = https://github.com/slicer69
+
+repo_name  = sysvinit
+pkg_name   = sysvinit
+
+versions   = 2.90 2.95 2.96 2.97 2.98 2.99 3.04 3.06
+
+suffix     = tar.xz
+
+git_repo   = .git_clone
+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 version in $(versions) ; do \
+	  tag=`echo $$version` ; \
+	  if [ ! -f $(pkg_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): %.$(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/a/tcsh/Makefile b/packages/a/tcsh/Makefile
new file mode 100644
index 0000000..2e92ab9
--- /dev/null
+++ b/packages/a/tcsh/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://www.tcsh.org
+#
+# Downloads:
+# =========
+#   https://astron.com/pub/tcsh
+#   ftp://ftp.astron.com/pub/tcsh [US]
+#
+
+url         = https://astron.com/pub/tcsh
+
+versions    = 6.24.00 6.24.08
+pkg_name    = tcsh
+suffix      = tar.gz
+
+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 version in $(versions) ; do \
+	  wget -N $(url)/$(pkg_name)-$$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/a/tmux/Makefile b/packages/a/tmux/Makefile
new file mode 100644
index 0000000..7080de6
--- /dev/null
+++ b/packages/a/tmux/Makefile
@@ -0,0 +1,69 @@
+#
+# Project Home:
+# ============
+#   https://github.com/tmux/tmux/wiki
+#
+# GitHub:
+# ======
+#   https://github.com/tmux/tmux
+#
+# Clone:
+# =====
+#   git clone https://github.com/tmux/tmux.git
+#
+
+url        = https://github.com/tmux
+
+repo_name  = tmux
+pkg_name   = tmux
+suffix     = tar.xz
+
+versions   = 3.1 3.1c 3.3 3.3a
+
+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 $(pkg_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 .github .gitignore .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/a/todos/Makefile b/packages/a/todos/Makefile
new file mode 100644
index 0000000..a22eb5d
--- /dev/null
+++ b/packages/a/todos/Makefile
@@ -0,0 +1,36 @@
+#
+# Project Home:
+# ============
+#   https://slackware.com
+#
+# Downloads:
+# =========
+#   https://mirrors.slackware.com/slackware/slackware-14.1/source/a/bin
+#
+
+url         = https://mirrors.slackware.com/slackware/slackware-14.1/source/a/bin
+
+pkgname     = todos
+suffix      = tar.gz
+
+tarball     = $(addsuffix .$(suffix), $(pkgname))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	wget -N $(url)/$(tarball)
+
+$(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 $(tarball) $(sha1s)
diff --git a/packages/a/tree/Makefile b/packages/a/tree/Makefile
new file mode 100644
index 0000000..7e883ef
--- /dev/null
+++ b/packages/a/tree/Makefile
@@ -0,0 +1,64 @@
+#
+# Project Home:
+# ============
+#   http://mama.indstate.edu/users/ice/tree
+#
+# GitLab:
+# ======
+#   https://gitlab.com/OldManProgrammer/unix-tree
+#
+# Clone:
+# =====
+#   git clone https://gitlab.com/OldManProgrammer/unix-tree.git
+#
+
+url        = https://gitlab.com/OldManProgrammer
+
+repo_name  = unix-tree
+pkg_name   = tree
+
+versions   = 1.6.0 1.7.0 1.8.0 2.1.0
+
+suffix     = tar.xz
+
+git_repo   = .git_clone
+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 version in $(versions) ; do \
+	  tag=`echo $$version` ; \
+	  if [ ! -f $(pkg_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): %.$(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/a/udisks/Makefile b/packages/a/udisks/Makefile
new file mode 100644
index 0000000..5f6d1c5
--- /dev/null
+++ b/packages/a/udisks/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://www.freedesktop.org/wiki/Software/udisks
+#
+# Downloads:
+# =========
+#   https://hal.freedesktop.org/releases
+#
+
+url         = https://hal.freedesktop.org/releases
+
+versions    = 1.0.4 1.0.5
+
+pkg_name    = udisks
+suffix      = tar.gz
+
+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/a/udisks2/Makefile b/packages/a/udisks2/Makefile
new file mode 100644
index 0000000..27241c7
--- /dev/null
+++ b/packages/a/udisks2/Makefile
@@ -0,0 +1,48 @@
+#
+# Project Home:
+# ============
+#   https://www.freedesktop.org/wiki/Software/udisks
+#
+# Downloads:
+# =========
+#   https://udisks.freedesktop.org/releases
+#
+
+url         = https://udisks.freedesktop.org/releases
+
+versions    = 2.1.0 2.1.3 2.1.4 2.1.5 2.1.6 2.1.8
+
+pkg_name    = udisks
+suffix      = tar.bz2
+sign_suffix = sign
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkg_name)-, $(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/a/upower/Makefile b/packages/a/upower/Makefile
new file mode 100644
index 0000000..9e53c25
--- /dev/null
+++ b/packages/a/upower/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://upower.freedesktop.org
+#
+# Downloads:
+# =========
+#   https://upower.freedesktop.org/releases
+#
+
+url         = https://upower.freedesktop.org/releases
+
+versions    = 0.9.17 0.9.23 0.99.3 0.99.7
+
+pkg_name    = upower
+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/a/usb-modeswitch-data/Makefile b/packages/a/usb-modeswitch-data/Makefile
new file mode 100644
index 0000000..9e54c9f
--- /dev/null
+++ b/packages/a/usb-modeswitch-data/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://www.draisberghof.de/usb_modeswitch
+#
+# Downloads:
+# =========
+#   https://www.draisberghof.de/usb_modeswitch/#download
+#   https://www.draisberghof.de/usb_modeswitch
+#
+
+url         = https://www.draisberghof.de/usb_modeswitch
+
+versions    = 20140529 20160112 20191128
+
+pkg_name    = usb-modeswitch-data
+suffix      = tar.bz2
+
+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/a/usb-modeswitch/Makefile b/packages/a/usb-modeswitch/Makefile
new file mode 100644
index 0000000..ad74d53
--- /dev/null
+++ b/packages/a/usb-modeswitch/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://www.draisberghof.de/usb_modeswitch
+#
+# Downloads:
+# =========
+#   https://www.draisberghof.de/usb_modeswitch/#download
+#   https://www.draisberghof.de/usb_modeswitch
+#
+
+url         = https://www.draisberghof.de/usb_modeswitch
+
+versions    = 2.2.0 2.3.0 2.6.0 2.6.1
+pkg_name    = usb-modeswitch
+suffix      = tar.bz2
+
+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/a/usbutils/Makefile b/packages/a/usbutils/Makefile
new file mode 100644
index 0000000..259dbb0
--- /dev/null
+++ b/packages/a/usbutils/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   http://www.kernel.org
+#
+# Downloads:
+# =========
+#   ftp://ftp.kernel.org/pub/linux/utils/usb/usbutils
+#   https://www.kernel.org/pub/linux/utils/usb/usbutils
+#
+
+url         = https://www.kernel.org/pub/linux/utils/usb/usbutils
+
+versions    = 006 007 008 012 013 015
+pkgname     = usbutils
+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/a/utempter/Makefile b/packages/a/utempter/Makefile
new file mode 100644
index 0000000..b737a5c
--- /dev/null
+++ b/packages/a/utempter/Makefile
@@ -0,0 +1,51 @@
+#
+# Project Home:
+# ============
+#   https://www.openhub.net/p/libutempter
+#
+# Git:
+# ===
+#   git: git://git.altlinux.org/people/ldv/packages/libutempter.git
+#
+# GitWeb:
+# ======
+#   gitweb: https://git.altlinux.org/people/ldv/packages/?p=libutempter.git
+#
+# GitHub:
+# ======
+#   https://github.com/altlinux/libutempter
+#
+# Downloads:
+# =========
+#   ftp://ftp.altlinux.org/pub/people/ldv/utempter
+#
+
+url         = ftp://ftp.altlinux.org/pub/people/ldv/utempter
+
+versions    = 1.2.1
+
+pkg_name    = libutempter
+suffix      = tar.gz
+
+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/a/util-linux/Makefile b/packages/a/util-linux/Makefile
new file mode 100644
index 0000000..82f03d7
--- /dev/null
+++ b/packages/a/util-linux/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://kernel.org/pub/linux/utils/util-linux/
+#
+# Downloads:
+# =========
+#   ftp://ftp.kernel.org/pub/linux/utils/util-linux/
+#
+
+url         = https://kernel.org/pub/linux/utils/util-linux
+
+versions    = 2.21.2 2.23 2.24 2.24.1 2.27 2.27.1 2.29.2 2.33.2 2.34 2.36 2.36.1 2.36.2 2.38.1
+
+pkgname     = util-linux
+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/'` ; \
+	  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/a/vim/Makefile b/packages/a/vim/Makefile
new file mode 100644
index 0000000..f633057
--- /dev/null
+++ b/packages/a/vim/Makefile
@@ -0,0 +1,78 @@
+#
+# Project Home:
+# ============
+#   https://www.vi-improved.org
+#
+# Sources:
+# =======
+#   https://www.vim.org/download.php
+#   https://www.vim.org/sources.php
+#
+# GitHub:
+# ======
+#   https://github.com/vim
+#
+
+url        = https://github.com/vim
+
+repo_name  = vim
+
+#
+# List of tags to be extracted:
+# ============================
+#
+#                                               hash | v | maintenance
+#            ----------------------------------------+----------------
+revisions  = 64922b9014765a41bb09e8612433a2a61918af6e-7.4-1155
+revisions += 2dedb45260604911035cff2364aca90a69156ed9-7.4-1156
+revisions += 02b4d9b18a03549b68e364e428392b7a62766c74-8.2-2607
+revisions += fad2742d538123abb9b384a053fd581f2acf6bb0-8.2-3709
+revisions += c19f1a3488c1bb6fe5707dc6338b13cb9f598670-8.2-5172
+revisions += 05a627c3d4e42a18f76c14828d68ee4747118211-9.0-1443
+
+git_repo   = .git_clone
+
+pkgname    = vim
+suffix     = tar.xz
+
+versions   = $(foreach tag, $(revisions), $(shell echo $(tag) | cut -f 2,3 -d '-'))
+tarballs   = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(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,3 -d '-'` ; \
+	  if [ ! -f $(pkgname)-$$version.$(suffix) ]; then \
+	    echo -e "\n======= Creating '$(pkgname)-$$version.$(suffix)' snapshot =======" ; \
+	    ( cd $(repo_name) && \
+	      git archive --format=tar --prefix=$(pkgname)-$$version/ $$hash | \
+	      xz >../$(pkgname)-$$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/a/xfs/Makefile b/packages/a/xfs/Makefile
new file mode 100644
index 0000000..c7f6d2f
--- /dev/null
+++ b/packages/a/xfs/Makefile
@@ -0,0 +1,27 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := dmapi       \
+           dmapi-dev   \
+           xfsdump     \
+           xfsprogs
+
+
+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/a/xfs/dmapi-dev/Makefile b/packages/a/xfs/dmapi-dev/Makefile
new file mode 100644
index 0000000..e2bdd19
--- /dev/null
+++ b/packages/a/xfs/dmapi-dev/Makefile
@@ -0,0 +1,63 @@
+#
+# Project Home:
+# ============
+#   https://git.kernel.org/pub/scm/fs/xfs/dmapi-dev.git
+#
+# Clone:
+# =====
+#   git clone git://git.kernel.org/pub/scm/fs/xfs/dmapi-dev.git
+#
+
+url        = https://git.kernel.org/pub/scm/fs/xfs
+
+repo_name  = dmapi-dev
+pkg_name   = dmapi
+suffix     = tar.xz
+
+versions   = 2.2.9 2.2.10
+
+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 ; make configure ; make distclean ; rm -rf autom4te.cache .gitignore ) ; \
+	    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/a/xfs/dmapi/Makefile b/packages/a/xfs/dmapi/Makefile
new file mode 100644
index 0000000..102eb89
--- /dev/null
+++ b/packages/a/xfs/dmapi/Makefile
@@ -0,0 +1,35 @@
+#
+# Project Home:
+# ============
+#  ...
+#
+
+url         = https://ftp.radix.pro/3pp/zero/a/xfs/dmapi
+
+versions    = 2.2.12
+
+pkgname     = dmapi
+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/a/xfs/xfsdump/Makefile b/packages/a/xfs/xfsdump/Makefile
new file mode 100644
index 0000000..cb7d95f
--- /dev/null
+++ b/packages/a/xfs/xfsdump/Makefile
@@ -0,0 +1,63 @@
+#
+# Project Home:
+# ============
+#   https://git.kernel.org/pub/scm/fs/xfs/xfsdump-dev.git
+#
+# Clone:
+# =====
+#   git clone git://git.kernel.org/pub/scm/fs/xfs/xfsdump-dev.git
+#
+
+url        = https://git.kernel.org/pub/scm/fs/xfs
+
+repo_name  = xfsdump-dev
+pkg_name   = xfsdump
+suffix     = tar.xz
+
+versions   = 3.1.7 3.1.8 3.1.9 3.1.12
+
+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 ; make configure ; make distclean ; rm -rf autom4te.cache .gitignore ) ; \
+	    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/a/xfs/xfsprogs/Makefile b/packages/a/xfs/xfsprogs/Makefile
new file mode 100644
index 0000000..2667376
--- /dev/null
+++ b/packages/a/xfs/xfsprogs/Makefile
@@ -0,0 +1,66 @@
+# Project Home:
+# ============
+# http://xfs.org/index.php/Main_Page
+#
+# Downloads:
+# =========
+# http://xfs.org/index.php/Getting_the_latest_source_code
+#
+# Git:
+# ===
+# https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git
+#
+
+url        = https://git.kernel.org/pub/scm/fs/xfs
+
+repo_name  = xfsprogs-dev
+pkg_name   = xfsprogs
+suffix     = tar.xz
+
+versions   = 5.2.1 5.10.0 5.13.0 6.2.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) ) ; \
+	    tar xJf $(pkg_name)-$$version.$(suffix) ; \
+	    ( cd $(pkg_name)-$$version ; make configure ; make distclean ; rm -rf autom4te.cache .gitignore ) ; \
+	    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/a/xz/Makefile b/packages/a/xz/Makefile
new file mode 100644
index 0000000..0362036
--- /dev/null
+++ b/packages/a/xz/Makefile
@@ -0,0 +1,69 @@
+#
+# Project Home:
+# ============
+#   https://tukaani.org/xz/
+#
+# Downloads:
+# =========
+#   https://tukaani.org/xz/xz-5.4.2.tar.xz
+#
+# Git:
+# ======
+#   https://git.tukaani.org/?p=xz.git;a=summary
+#   git clone https://git.tukaani.org/xz.git
+#
+
+url         = https://git.tukaani.org
+
+repo_name   = xz
+
+versions    = 5.2.3 5.2.4 5.2.5 5.2.7 5.2.11 5.4.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=`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/ v$$tag | \
+	      xz >../$(repo_name)-$$version.$(suffix) ) ; \
+	    tar xJf $(repo_name)-$$version.$(suffix) ; \
+	    ( cd $(repo_name)-$$version ; ./autogen.sh ; rm -rf autom4te.cache .gitignore ) ; \
+	    tar cJf $(repo_name)-$$version.$(suffix) $(repo_name)-$$version ; \
+	    rm -rf $(repo_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/a/ziptool/Makefile b/packages/a/ziptool/Makefile
new file mode 100644
index 0000000..4f74da2
--- /dev/null
+++ b/packages/a/ziptool/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://fossies.org/linux/misc/old/ziptool-1.4.0.tgz/
+#
+# Downloads:
+# =========
+#   fossies.org/linux/misc/old/ziptool-1.4.0.tar.xz
+#
+
+url         = https://fossies.org/linux/misc/old
+
+versions    = 1.4.0
+
+pkgname     = ziptool
+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/a/zoo/2.10-22-debian/Makefile b/packages/a/zoo/2.10-22-debian/Makefile
new file mode 100644
index 0000000..11f3caf
--- /dev/null
+++ b/packages/a/zoo/2.10-22-debian/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://ftp.math.utah.edu/pub/zoo
+#   https://www.ibiblio.org/pub/Linux/utils/compress
+#   https://slackware.com
+#
+# Downloads:
+# =========
+#   https://mirrors.slackware.com/slackware/slackware-14.1/source/a/zoo
+#
+
+url         = https://mirrors.slackware.com/slackware/slackware-14.1/source/a/zoo
+
+version     = 2.10-22.debian
+pkgname     = zoo
+suffix      = tar.gz
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)_,$(version)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	@wget -N $(url)/$(tarball)
+
+$(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 $(tarball) $(sha1s)
diff --git a/packages/a/zoo/2.10/Makefile b/packages/a/zoo/2.10/Makefile
new file mode 100644
index 0000000..a9ae07e
--- /dev/null
+++ b/packages/a/zoo/2.10/Makefile
@@ -0,0 +1,39 @@
+#
+# Project Home:
+# ============
+#   https://ftp.math.utah.edu/pub/zoo
+#   https://www.ibiblio.org/pub/Linux/utils/compress
+#   https://slackware.com
+#
+# Downloads:
+# =========
+#   https://mirrors.slackware.com/slackware/slackware-14.1/source/a/zoo
+#
+
+url         = https://mirrors.slackware.com/slackware/slackware-14.1/source/a/zoo
+
+version     = 2.10
+pkgname     = zoo
+suffix      = tar.gz
+
+tarball     = $(addsuffix .$(suffix), $(addprefix $(pkgname)-,$(version)))
+sha1s       = $(addsuffix .sha1sum, $(tarball))
+
+
+all: $(tarball) $(sha1s)
+
+.PHONY: downloads_clean
+
+
+$(tarball):
+	@echo -e "\n======= Downloading source tarball =======\n"
+	@wget -N $(url)/$(tarball)
+
+$(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 $(tarball) $(sha1s)
diff --git a/packages/a/zoo/Makefile b/packages/a/zoo/Makefile
new file mode 100644
index 0000000..0456de5
--- /dev/null
+++ b/packages/a/zoo/Makefile
@@ -0,0 +1,25 @@
+
+#
+# Following command helps to cheate SUBDIRS list:
+# $ tree -fid .
+#
+
+SUBDIRS := 2.10           \
+           2.10-22-debian
+
+
+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/a/zsh/Makefile b/packages/a/zsh/Makefile
new file mode 100644
index 0000000..4a928d2
--- /dev/null
+++ b/packages/a/zsh/Makefile
@@ -0,0 +1,40 @@
+#
+# Project Home:
+# ============
+#   https://www.zsh.org
+#
+# Downloads:
+# =========
+#   https://sourceforge.net/projects/zsh/files/zsh
+#   ftp://ftp.zsh.org/zsh
+#
+
+url         = https://sourceforge.net/projects/zsh/files/zsh
+
+versions    = 5.1.1 5.2 5.9
+pkgname     = zsh
+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/'` ; \
+	  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)