docs: def build_install(self):
          """Build and install packages if not already installed
          """
          slackbuilds = self.dependencies + self.master_packages
          installs, upgraded, = [], []
          if not os.path.exists(self.build_folder):
              os.makedirs(self.build_folder)
          if not os.path.exists(self._SOURCES):
              os.makedirs(self._SOURCES)
          os.chdir(self.build_folder)
          for prgnam in slackbuilds:
              if (self.meta.not_downgrade == "on" and
                      self.not_downgrade(prgnam) is True):
                  continue
              pkg = "-".join(prgnam.split("-")[:-1])
              installed = "".join(find_package(prgnam, self.meta.pkg_path))
              src_link = SBoGrep(pkg).source().split()
              if (installed and "--download-only" not in self.flag and
                      "--rebuild" not in self.flag):
                  self.msg.template(78)
                  self.msg.pkg_found(prgnam)
                  self.msg.template(78)
              elif self.unst[0] in src_link or self.unst[1] in src_link:
                  self.msg.template(78)
                  print("| Package {0} {1}{2}{3}".format(
                      prgnam, self.meta.color["RED"], "".join(src_link),
                      self.meta.color["ENDC"]))
                  self.msg.template(78)
              else:
                  sbo_url = sbo_search_pkg(pkg)
                  sbo_link = SBoLink(sbo_url).tar_gz()
                  script = sbo_link.split("/")[-1]
                  if self.meta.sbosrcarch in ["on", "ON"]:
                      src_link = self.sbosrcarsh(prgnam, sbo_link, src_link)
                  Download(self.build_folder, sbo_link.split(),
                           repo="sbo").start()
                  Download(self._SOURCES, src_link, repo="sbo").start()
                  if "--download-only" in self.flag:
                      continue
                  sources = self.filenames(src_link)
                  BuildPackage(script, sources, self.build_folder,
                               auto=False).build()
                  binary = slack_package(prgnam)
                  if os.path.isfile("".join(binary)):
                      if GetFromInstalled(pkg).name() == pkg:
                          print("[ {0}Upgrading{1} ] --> {2}".format(
                              self.meta.color["YELLOW"],
                              self.meta.color["ENDC"], prgnam))
                          upgraded.append(prgnam)
                      else:
                          print("[ {0}Installing{1} ] --> {2}".format(
                              self.meta.color["GREEN"],
                              self.meta.color["ENDC"], prgnam))
                          installs.append(prgnam)
                      if ("--rebuild" in self.flag and
                              GetFromInstalled(pkg).name() == pkg):
                          PackageManager(binary).upgrade(flag="--reinstall")
                      else:
                          PackageManager(binary).upgrade(flag="--install-new")
          return installs, upgraded