Giter VIP home page Giter VIP logo

tap's Introduction

THIS REPOSITORY IS ARCHIVED

I no longer plan on working on Tap. I've been busy working on other aspects of the makedeb ecosystem, and it's just taking too much time away from this to do anything meaningful on it.

If you still want to use an MPR helper, I'd suggest taking a look at the MPR helpers page in the makedeb Docs.

makedeb also has an official MPR CLI that provides some of the functionality Tap currently has, though any sort of functionality related to package management is notably missing at the moment.

Tap

build status Matrix Room

Overview

Tap is a feature-rich MPR helper that aims to be a drop-in replacement for APT. Tap provides access to almost every command accessible by apt, with MPR functionality integrated directly into said commands.

Installation

If you have an existing MPR helper, you can simply install Tap from there via the tap package.

Otherwise, you can install Tap manually from the MPR:

git clone 'https://mpr.hunterwittenborn.com/tap'
cd tap/
makedeb -si

Usage

Users of the APT commandline tools will find most options readily available to them. All available commands can be found via tap --help after installation.

Several commands have specific options available to them, those can be seen by running tap *command* --help.

Support

Issues with using Tap should be made inside of the project's issue tracker.

If a package fails to build with Tap, you should try building the package with makedeb before posting issues to the package maintainer or the makedeb issue tracker, as the issue may be rooted in Tap itself.

If you prefer a chatroom for obtaining support or just want to chat, Tap has a Matrix room located at #tap:hunterwittenborn.com.

tap's People

Contributors

cat-master21 avatar hiddeninthesand avatar hwittenborn avatar lpuv avatar mobin-2008 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tap's Issues

APT hitting a 402 error on any repository is treated as a fatal error by Tap

As the title says, if any added repository to APT hits a 402 error while attempting to download the package list, Tap treats this error as fatal instead of non-fatal as APT itself does. I'm not sure if this is a bug or intended behavior, but it is less than ideal. Working example of this is https://dl.cloudsmith.io/public/balena/etcher/deb/ubuntu which is currently experiencing this issue.

illegal hardware instruction

hi,
I've tried tap but it gives me this output
❯ tap search exa-bin
[1] 20927 illegal hardware instruction tap search exa-b
I'm using the latest version of tap (0.4.0-1)

Roadmap to v1.0.0

This issue is meant to serve as a roadmap for everything that needs to take place before a v1.0.0 release can be made.

The reason for making this now instead of earlier is that I feel like I'm able to now see what all needs to be done, contrary to me not being able to do such previously.

Note that this list will not contain all features that are planned to be added, but rather only those that I'd like to be present at a 1.0.0 release.

Tasks

  • Installation functionality
    • Package building
    • Package installation
    • Reliable dependency solving
      • Distro-specific dependencies
      • Architecture-specific dependencies
      • Reliable dependency parsing (i.e. building a dependency tree correctly)
  • Update functionality
    • Updates for standard MPR packages
  • Searching functionality

MPR dependencies aren't working

Attempting to install a package like img4tool-git isn't working properly, and is resulting in an error about dependencies not being able to be found (though they should be findable via the MPR).

Unable to install tap under Debian Bullseye without an dpkg error

Description

Unable to correctly install tap without an dpkg error, which means it can be installed however the command tap update isn't working

Software Version

OS Version

cat /etc/os-release

PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Makedeb Version

makedeb --version

makedeb 8.7.0-1
Alpha Release
Installed from APT

How to reproduce

git clone 'https://mpr.hunterwittenborn.com/tap'
cd tap/
makedeb -si

Result

Cloning into 'tap'...
remote: Enumerating objects: 220, done.
remote: Counting objects: 100% (220/220), done.
remote: Compressing objects: 100% (144/144), done.
remote: Total 220 (delta 102), reused 169 (delta 76), pack-reused 0
Receiving objects: 100% (220/220), 22.39 KiB | 2.49 MiB/s, done.
Resolving deltas: 100% (102/102), done.
[#] Making package: tap 2.0.3-1 (Mon 03 Jan 2022 16:22:39 PM UTC)...
[#] Checking build dependencies...
[#] Entering fakeroot environment...
[#] Retrieving sources...
  [->] Cloning tap git repo...
Cloning into bare repository '/home/stefan/build/tap/tap'...
remote: Enumerating objects: 1150, done.
remote: Counting objects: 100% (1150/1150), done.
remote: Compressing objects: 100% (755/755), done.
remote: Total 1150 (delta 672), reused 810 (delta 362), pack-reused 0
Receiving objects: 100% (1150/1150), 228.29 KiB | 2.17 MiB/s, done.
Resolving deltas: 100% (672/672), done.
[#] Validating source files with sha256sums...
    tap ... Skipped
[#] Extracting sources...
  [->] Creating working copy of tap git repo...
Cloning into 'tap'...
done.
Switched to a new branch 'makepkg'
[#] Starting prepare()...
sed -i 's|{pkgver}|2.0.3|' ./tap.py
sed -i 's|{pkgver}|2.0.3|' ./man/tap.8.adoc
[#] Starting package()...
install -Dm 755 ./tap.py '/home/stefan/build/tap/pkg/tap/usr/bin/tap'
./setup.py install --prefix='./usr' --root='/home/stefan/build/tap/pkg/tap' --install-layout='deb'
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/tap
copying tap/set_mpr_dependencies.py -> build/lib/tap
copying tap/clone_packages.py -> build/lib/tap
copying tap/check_version.py -> build/lib/tap
copying tap/upgrade.py -> build/lib/tap
copying tap/install.py -> build/lib/tap
copying tap/apt_fetch_packages.py -> build/lib/tap
copying tap/exceptions.py -> build/lib/tap
copying tap/builddir_del_error.py -> build/lib/tap
copying tap/run_loading_function.py -> build/lib/tap
copying tap/__init__.py -> build/lib/tap
copying tap/create_mpr_json_dict.py -> build/lib/tap
copying tap/help_menu.py -> build/lib/tap
copying tap/autoremove.py -> build/lib/tap
copying tap/read_mpr_cache.py -> build/lib/tap
copying tap/read_config.py -> build/lib/tap
copying tap/root_check.py -> build/lib/tap
copying tap/build_dependency_tree.py -> build/lib/tap
copying tap/colors.py -> build/lib/tap
copying tap/message.py -> build/lib/tap
copying tap/arg_check.py -> build/lib/tap
copying tap/main.py -> build/lib/tap
copying tap/read_dpkg_status_file.py -> build/lib/tap
copying tap/update.py -> build/lib/tap
copying tap/cfg.py -> build/lib/tap
copying tap/run_transaction.py -> build/lib/tap
copying tap/split_dependency_string.py -> build/lib/tap
copying tap/remove.py -> build/lib/tap
copying tap/generate_apt_styled_text.py -> build/lib/tap
copying tap/get_editor_name.py -> build/lib/tap
copying tap/utils.py -> build/lib/tap
copying tap/list.py -> build/lib/tap
copying tap/version.py -> build/lib/tap
copying tap/parse_control.py -> build/lib/tap
copying tap/search.py -> build/lib/tap
copying tap/parse_srcinfo.py -> build/lib/tap
copying tap/apt_install_packages.py -> build/lib/tap
copying tap/find_apt_package_version.py -> build/lib/tap
copying tap/review_build_files.py -> build/lib/tap
running install_lib
creating /home/stefan/build/tap/pkg/tap/usr/lib
creating /home/stefan/build/tap/pkg/tap/usr/lib/python3
creating /home/stefan/build/tap/pkg/tap/usr/lib/python3/dist-packages
creating /home/stefan/build/tap/pkg/tap/usr/lib/python3/dist-packages/tap
copying build/lib/tap/set_mpr_dependencies.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/clone_packages.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/check_version.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/upgrade.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/install.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/apt_fetch_packages.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/exceptions.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/builddir_del_error.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/run_loading_function.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/__init__.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/create_mpr_json_dict.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/help_menu.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/autoremove.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/read_mpr_cache.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/read_config.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/root_check.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/build_dependency_tree.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/colors.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/message.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/arg_check.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/main.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/read_dpkg_status_file.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/update.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/cfg.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/run_transaction.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/split_dependency_string.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/remove.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/generate_apt_styled_text.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/get_editor_name.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/utils.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/list.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/version.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/parse_control.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/search.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/parse_srcinfo.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/apt_install_packages.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/find_apt_package_version.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/review_build_files.py -> /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/set_mpr_dependencies.py to set_mpr_dependencies.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/clone_packages.py to clone_packages.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/check_version.py to check_version.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/upgrade.py to upgrade.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/install.py to install.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/apt_fetch_packages.py to apt_fetch_packages.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/exceptions.py to exceptions.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/builddir_del_error.py to builddir_del_error.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/run_loading_function.py to run_loading_function.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/create_mpr_json_dict.py to create_mpr_json_dict.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/help_menu.py to help_menu.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/autoremove.py to autoremove.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/read_mpr_cache.py to read_mpr_cache.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/read_config.py to read_config.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/root_check.py to root_check.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/build_dependency_tree.py to build_dependency_tree.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/colors.py to colors.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/message.py to message.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/arg_check.py to arg_check.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/main.py to main.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/read_dpkg_status_file.py to read_dpkg_status_file.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/update.py to update.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/cfg.py to cfg.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/run_transaction.py to run_transaction.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/split_dependency_string.py to split_dependency_string.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/remove.py to remove.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/generate_apt_styled_text.py to generate_apt_styled_text.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/get_editor_name.py to get_editor_name.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/utils.py to utils.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/list.py to list.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/version.py to version.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/parse_control.py to parse_control.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/search.py to search.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/parse_srcinfo.py to parse_srcinfo.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/apt_install_packages.py to apt_install_packages.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/find_apt_package_version.py to find_apt_package_version.cpython-39.pyc
byte-compiling /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/review_build_files.py to review_build_files.cpython-39.pyc
running install_egg_info
running egg_info
creating tap.egg-info
writing tap.egg-info/PKG-INFO
writing dependency_links to tap.egg-info/dependency_links.txt
writing top-level names to tap.egg-info/top_level.txt
writing manifest file 'tap.egg-info/SOURCES.txt'
reading manifest file 'tap.egg-info/SOURCES.txt'
writing manifest file 'tap.egg-info/SOURCES.txt'
Copying tap.egg-info to /home/stefan/build/tap/pkg/tap/./usr/lib/python3/dist-packages/tap-1.egg-info
Skipping SOURCES.txt
running install_scripts
SOURCE_DATE_EPOCH='1638751902' asciidoctor -b manpage ./man/tap.8.adoc -o '/home/stefan/build/tap/pkg/tap/usr/share/man8/tap.8'
install -Dm 555 'completions/tap.bash' '/home/stefan/build/tap/pkg/tap/usr/share/bash-completion/completions/tap'
install -Dm 644 'tap.cfg' '/home/stefan/build/tap/pkg/tap/etc/tap.cfg'
[#] Tidying install...
  [->] Removing libtool files...
  [->] Purging unwanted files...
  [->] Removing static library files...
  [->] Stripping unneeded symbols from binaries and libraries...
  [->] Compressing man and info pages...
[#] Checking for packaging issues...
[#] Creating package "tap"...
  [->] Generating control file...
  [->] Adding field 'MPR-Package' to control file...
  [->] Adding postinst file...
  [->] Compressing package...
[#] Leaving fakeroot environment...
[#] Cleaning up...
[#] Finished making: tap 2.0.3-1 (Mon 03 Jan 2022 16:22:44 PM UTC).
[#] Installing tap...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'tap' instead of './tap_2.0.3-1_all.deb'
The following NEW packages will be installed:
  tap
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/45.0 kB of archives.
After this operation, 196 kB of additional disk space will be used.
Get:1 /home/stefan/build/tap/tap_2.0.3-1_all.deb tap all 2.0.3-1 [45.0 kB]
Selecting previously unselected package tap.
(Reading database ... 34971 files and directories currently installed.)
Preparing to unpack .../build/tap/tap_2.0.3-1_all.deb ...
Unpacking tap (2.0.3-1) ...
Setting up tap (2.0.3-1) ...
dpkg (subprocess): unable to execute installed tap package post-installation script (/var/lib/dpkg/info/tap.postinst): No such file or directory
dpkg: error processing package tap (--configure):
 installed tap package post-installation script subprocess returned error exit status 2
Errors were encountered while processing:
 tap
E: Sub-process /usr/bin/dpkg returned an error code (1)

Expected Result

An successful installation of tap

Feature request: Use $VISUAL and $EDITOR environment variables instead of nano to edit PKGBUILD and other files

Instead of using nano as the editor, tap should respect the user's settings and use their default editors (e.g. vim, emacs, gvim, etc)

Debian Policy recommends this behavior: https://www.debian.org/doc/debian-policy/ch-customized-programs.html#editors-and-pagers

Suggestion:
If VISUAL is set, use VISUAL
else if EDITOR is set use EDITOR
else use /usr/bin/editor which is set to nano by default on Debian and most derivatives.
as a fallback, use nano directly

P.S. I'll be happy to raise a pull request in some time,. Maybe I'll need a little bit of help with code style, etc. :)

Tap should list `less` as a dependency

Since Tap pipes the output of the search and list commands into less when the output is too large, Tap should have a dependency of less listed in the PKGBUILD.

Error when listing installed packages

Using tap version 0.28.9-1.
When I try to view the installed packages I get the following error message:

>> Reading APT cache...
>> Reading MPR cache...
>> Fetching package names...
>> Processing packages...
>> Generating results...
Traceback (most recent call last):
  File "/usr/bin/tap", line 8, in <module>
    main()
  File "/usr/lib/python3/dist-packages/tap/main.py", line 70, in main
    list_pkg()
  File "/usr/lib/python3/dist-packages/tap/list.py", line 89, in list_pkg
    _print_results()
  File "/usr/lib/python3/dist-packages/tap/search.py", line 146, in _print_results
    results = run_loading_function(msg, _generate_results)
  File "/usr/lib/python3/dist-packages/tap/run_loading_function.py", line 20, in run_loading_function
    return thread.result()
  File "/usr/lib/python3.9/concurrent/futures/_base.py", line 438, in result
    return self.__get_result()
  File "/usr/lib/python3.9/concurrent/futures/_base.py", line 390, in __get_result
    raise self._exception
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/lib/python3/dist-packages/tap/search.py", line 103, in _generate_results
    pkgdesc = _get_description(pkgname)
  File "/usr/lib/python3/dist-packages/tap/search.py", line 69, in _get_description
    cfg.apt_pkgrecords.lookup(cache_version.file_list[0])
AttributeError: 'NoneType' object has no attribute 'file_list'

installation with makedeb fails due to missing makedepends

SOURCE_DATE_EPOCH="1635045351" asciidoctor -b manpage ./man/tap.8.adoc -o "/home/linux/bin/!SourceCode/tap/pkg/tap/usr/share/man8/tap.8"
/bin/sh: 1: asciidoctor: not found
make: *** [Makefile:10: install] Fehler 127
[!] A failure occurred in package().
    Aborting...

adding

makedepends=('python3-setuptools' 'asciidoctor')

should fix this issue

Force APT's output to be in English

The dependency processor for APT (which currently calls the CLI program) uses APT's output to find dependencies, which is problamatic for users whose systems aren't configured to English, as APT's output won't be in English.

An environment variable like LC_ALL=C would be ideal, and shouldn't take much work to implement.

Port all APT functionality to the python3-apt library

Python-apt is a Python library for interacting with APT, and is already included in the repos of distros like Ubuntu 20.04.

It would be better to use this library instead of calling apt-get and such, as it'll make things quicker from not having to reinitialize the cache over and over, and would make things quite a bit cleaner in terms of having to do things like parse the output of APT in a not-so-ideal way.

Encountered an unknown error when doing 'sudo tap update'

The system is Debian Sid on amd64

michael@dimensional-rift:~/Sources/tap$ sudo tap update
>> Reading APT cache...  
>> Updating APT cache...  
>> Updating MPR cache...  
>> Updating other cache files...  

>> Encountered an unknown error.
>> Full traceback at '/tmp/tap-w9p8e08e'.

/tmp/tap-w9p8e08e:

michael@dimensional-rift:~/Sources/tap$ sudo cat /tmp/tap-w9p8e08e 
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/tap/main.py", line 72, in main
    _main()
  File "/usr/lib/python3/dist-packages/tap/main.py", line 67, in _main
    operations[cfg.operation]()
  File "/usr/lib/python3/dist-packages/tap/update.py", line 66, in update
    _upgrade()
  File "/usr/lib/python3/dist-packages/tap/upgrade.py", line 28, in _upgrade
    rpc_data = cfg.mpr_cache.package_dicts[i.name]
KeyError: 'tap'

I tried re-installing tap with no luck.

Unable to install tap 0.28.10-1

I am trying to install Tap. Unfortunately makedeb fails at the last step.

makedeb version: 8.5.9-1
tap version: 0.28.10-1

Pulling master and trying to build tap by executing makdeb -si --verbose.
It fails on the installation step:

[#] Installing tap...
+ sudo apt-get reinstall -- ./tap_8.5.9-1_all.deb
Paketlisten werden gelesen… Fertig
E: Nicht unterstützte Datei ./tap_8.5.9-1_all.deb auf Befehlszeile angegeben.

The error says something like "Unsupported file specified on command line".
Executing sudo apt-get reinstall -- ./tap_8.5.9-1_all.deb manually works fine for me.

Show custom error message when the user sends a keyboard interrupt

Currently, if a user presses CTRL+C in the middle of a transaction they're bombarded by a wall of text containing the traceback for whatever was going on. It would be better if instead Tap simply printed an error message on keyboard interrupts, and then write the traceback to a file and then just instruct the user on where to find it.

Tap is failing to detect permission issues on subfolders in the build directory

If you have a folder layout like so:

builddir/              (writable)
builddir/pkg/          (writable)
builddir/pkg/pkgname/  (unwritable)
builddir/pkg/pkgname2/ (writable)

Tap won't complain about bad directory permissions (here being on builddir/pkg/pkgname/) and will fail at doing things like deleting an old build directory before making packages.

This issue was previously noted in #6 (comment), but I wasn't able to reproduce the error until now, at which point doing find /var/tmp/mpm/ pointed out the issue.

Cannot installing tap via makedeb (fail for apt cannot exec #!/usr/bin/bash on running tap.postinst)

Issue

full log:

mobin@Mobin-Mahdi-PC:~/MPR/tap$ makedeb -si
[#] Making package: tap 2.0.4-1 (‫پنجشنبه ۰۲ ژوئن ۲۲، ۱۶:۲۶:۴۱‬)
[#] Checking for missing dependencies...
[#] Retrieving sources...
  [->] Cloning tap git repo...
Cloning into '/home/mobin/MPR/tap/tap'...
remote: Enumerating objects: 672, done.
remote: Counting objects: 100% (672/672), done.
remote: Compressing objects: 100% (365/365), done.
remote: Total 672 (delta 349), reused 557 (delta 275), pack-reused 0
Receiving objects: 100% (672/672), 137.86 KiB | 203.00 KiB/s, done.
Resolving deltas: 100% (349/349), done.
Note: switching to '1bf644cb83bcb9ba607f9a35c90248acb390cca0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

[#] Validating source files with sha256sums...
    tap ... Skipped
[#] Extracting sources...
  [->] Creating working copy of tap git repo...
Cloning into 'tap'...
remote: Enumerating objects: 661, done.
remote: Counting objects: 100% (661/661), done.
remote: Compressing objects: 100% (288/288), done.
remote: Total 661 (delta 344), reused 658 (delta 343), pack-reused 0
Receiving objects: 100% (661/661), 136.30 KiB | 45.43 MiB/s, done.
Resolving deltas: 100% (344/344), done.
Note: switching to '1bf644cb83bcb9ba607f9a35c90248acb390cca0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

[#] Starting prepare()...
sed -i 's|{pkgver}|2.0.4|' ./tap.py
sed -i 's|{pkgver}|2.0.4|' ./man/tap.8.adoc
[#] Entering fakeroot environment...
[#] Starting package()...
install -Dm 755 ./tap.py '/home/mobin/MPR/tap/pkg/tap/usr/bin/tap'
./setup.py install --prefix='./usr' --root='/home/mobin/MPR/tap/pkg/tap' --install-layout='deb'
running install
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
running build
running build_py
creating build
creating build/lib
creating build/lib/tap
copying tap/__init__.py -> build/lib/tap
copying tap/apt_fetch_packages.py -> build/lib/tap
copying tap/apt_install_packages.py -> build/lib/tap
copying tap/arg_check.py -> build/lib/tap
copying tap/autoremove.py -> build/lib/tap
copying tap/build_dependency_tree.py -> build/lib/tap
copying tap/builddir_del_error.py -> build/lib/tap
copying tap/cfg.py -> build/lib/tap
copying tap/check_version.py -> build/lib/tap
copying tap/clone_packages.py -> build/lib/tap
copying tap/colors.py -> build/lib/tap
copying tap/create_mpr_json_dict.py -> build/lib/tap
copying tap/exceptions.py -> build/lib/tap
copying tap/find_apt_package_version.py -> build/lib/tap
copying tap/generate_apt_styled_text.py -> build/lib/tap
copying tap/get_editor_name.py -> build/lib/tap
copying tap/help_menu.py -> build/lib/tap
copying tap/install.py -> build/lib/tap
copying tap/list.py -> build/lib/tap
copying tap/main.py -> build/lib/tap
copying tap/message.py -> build/lib/tap
copying tap/parse_control.py -> build/lib/tap
copying tap/parse_srcinfo.py -> build/lib/tap
copying tap/read_config.py -> build/lib/tap
copying tap/read_dpkg_status_file.py -> build/lib/tap
copying tap/read_mpr_cache.py -> build/lib/tap
copying tap/remove.py -> build/lib/tap
copying tap/review_build_files.py -> build/lib/tap
copying tap/root_check.py -> build/lib/tap
copying tap/run_loading_function.py -> build/lib/tap
copying tap/run_transaction.py -> build/lib/tap
copying tap/search.py -> build/lib/tap
copying tap/set_mpr_dependencies.py -> build/lib/tap
copying tap/split_dependency_string.py -> build/lib/tap
copying tap/update.py -> build/lib/tap
copying tap/upgrade.py -> build/lib/tap
copying tap/utils.py -> build/lib/tap
copying tap/version.py -> build/lib/tap
running install_lib
creating /home/mobin/MPR/tap/pkg/tap/usr/lib
creating /home/mobin/MPR/tap/pkg/tap/usr/lib/python3
creating /home/mobin/MPR/tap/pkg/tap/usr/lib/python3/dist-packages
creating /home/mobin/MPR/tap/pkg/tap/usr/lib/python3/dist-packages/tap
copying build/lib/tap/__init__.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/apt_fetch_packages.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/apt_install_packages.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/arg_check.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/autoremove.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/build_dependency_tree.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/builddir_del_error.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/cfg.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/check_version.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/clone_packages.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/colors.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/create_mpr_json_dict.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/exceptions.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/find_apt_package_version.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/generate_apt_styled_text.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/get_editor_name.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/help_menu.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/install.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/list.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/main.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/message.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/parse_control.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/parse_srcinfo.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/read_config.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/read_dpkg_status_file.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/read_mpr_cache.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/remove.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/review_build_files.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/root_check.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/run_loading_function.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/run_transaction.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/search.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/set_mpr_dependencies.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/split_dependency_string.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/update.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/upgrade.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/utils.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
copying build/lib/tap/version.py -> /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/__init__.py to __init__.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/apt_fetch_packages.py to apt_fetch_packages.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/apt_install_packages.py to apt_install_packages.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/arg_check.py to arg_check.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/autoremove.py to autoremove.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/build_dependency_tree.py to build_dependency_tree.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/builddir_del_error.py to builddir_del_error.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/cfg.py to cfg.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/check_version.py to check_version.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/clone_packages.py to clone_packages.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/colors.py to colors.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/create_mpr_json_dict.py to create_mpr_json_dict.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/exceptions.py to exceptions.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/find_apt_package_version.py to find_apt_package_version.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/generate_apt_styled_text.py to generate_apt_styled_text.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/get_editor_name.py to get_editor_name.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/help_menu.py to help_menu.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/install.py to install.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/list.py to list.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/main.py to main.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/message.py to message.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/parse_control.py to parse_control.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/parse_srcinfo.py to parse_srcinfo.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/read_config.py to read_config.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/read_dpkg_status_file.py to read_dpkg_status_file.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/read_mpr_cache.py to read_mpr_cache.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/remove.py to remove.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/review_build_files.py to review_build_files.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/root_check.py to root_check.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/run_loading_function.py to run_loading_function.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/run_transaction.py to run_transaction.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/search.py to search.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/set_mpr_dependencies.py to set_mpr_dependencies.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/split_dependency_string.py to split_dependency_string.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/update.py to update.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/upgrade.py to upgrade.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/utils.py to utils.cpython-310.pyc
byte-compiling /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap/version.py to version.cpython-310.pyc
running install_egg_info
running egg_info
creating tap.egg-info
writing tap.egg-info/PKG-INFO
writing dependency_links to tap.egg-info/dependency_links.txt
writing top-level names to tap.egg-info/top_level.txt
writing manifest file 'tap.egg-info/SOURCES.txt'
reading manifest file 'tap.egg-info/SOURCES.txt'
adding license file 'LICENSE'
writing manifest file 'tap.egg-info/SOURCES.txt'
Copying tap.egg-info to /home/mobin/MPR/tap/pkg/tap/./usr/lib/python3/dist-packages/tap-1.egg-info
Skipping SOURCES.txt
running install_scripts
SOURCE_DATE_EPOCH='1644777721' asciidoctor -b manpage ./man/tap.8.adoc -o '/home/mobin/MPR/tap/pkg/tap/usr/share/man8/tap.8'
install -Dm 555 'completions/tap.bash' '/home/mobin/MPR/tap/pkg/tap/usr/share/bash-completion/completions/tap'
install -Dm 644 'tap.cfg' '/home/mobin/MPR/tap/pkg/tap/etc/tap.cfg'
[#] Tidying install...
  [->] Removing libtool files...
  [->] Purging unwanted files...
  [->] Removing static library files...
  [->] Stripping unneeded symbols from binaries and libraries...
  [->] Compressing man and info pages...
[#] Checking for packaging issues...
[#] Creating package "tap"...
  [->] Setting up package metadata...
  [->] Generating control file...
  [->] Adding postinst file to package...
  [->] Compressing package...
[#] Leaving fakeroot environment.
[#] Finished making: tap 2.0.4-1 (‫پنجشنبه ۰۲ ژوئن ۲۲، ۱۶:۲۶:۴۵‬)
[#] Installing package tap...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'tap' instead of '/home/mobin/MPR/tap/tap_2.0.4-1_amd64.deb'
The following packages were automatically installed and are no longer required:
  asciidoctor autoconf-archive autoconf-doc bison-doc flex-doc gnu-standards libfl2 libjim0.79 libruby3.0 libsigsegv2 m4-doc rake ruby ruby-asciidoctor
  ruby-net-telnet ruby-rubygems ruby-webrick ruby-xmlrpc ruby3.0 rubygems-integration
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  tap
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/45.5 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 /home/mobin/MPR/tap/tap_2.0.4-1_amd64.deb tap amd64 2.0.4-1 [45.5 kB]
Selecting previously unselected package tap.
(Reading database ... 345616 files and directories currently installed.)
Preparing to unpack .../MPR/tap/tap_2.0.4-1_amd64.deb ...
Unpacking tap (2.0.4-1) ...
Setting up tap (2.0.4-1) ...
dpkg (subprocess): unable to execute installed tap package post-installation script (/var/lib/dpkg/info/tap.postinst): No such file or directory
dpkg: error processing package tap (--configure):
 installed tap package post-installation script subprocess returned error exit status 2
Errors were encountered while processing:
 tap
E: Sub-process /usr/bin/dpkg returned an error code (1)
[!] Failed to install built package(s).

OS: Devuan ceres (Debian sid without systemd)

Tap version

Cannot install tap!

Implement custom dependency resolver

As time is going on, it's becoming more apparent that Tap should be resolving dependencies on it's own, using a custom resolver.

As of current Tap already somewhat has to use a custom resolver built on top of the one built into the Python APT library, as things like dependencies and conflicts for MPR packages have to be manually checked and verified, so Tap should just go all-out and go from scratch.

This will also add some other benefits, such as allowing for MPR dependency support, which would be highly beneficial to Tap for mainline usage.

Would close #34.

Packages with dependencies are broken

Until my PR #14 gets merged to fix some typos caused in the function that builds a dependency tree, packages that require dependencies are broken. I have tested with a locally compiled version of tap with my patch and it seems to work.

This is purely for reference.

:)

[Feature request] Adding a list-installed option

The only way right now to check MPR installed packages is through this long command I only knew about in the last tap update, to check packages affected by the updating issue:

dpkg-query --show --showformat '${Package}/${MPR-Package}\n' | grep '^[^/]*/True' | awk -F '/' '{print $1}'

It would be a nice quality-of-life improvement to have an option built into tap to check what packages you installed through it, with something like:

tap list-installed

Dependencies are resolved incorrectly

Hey,

I noticed that some dependencies are resolved incorrectly. Thereby tap complains that the dependencies are not installed. This seems only be the case for the dependencies that are set by a >=.
If I manually clone the repo of the package and run makedeb -si it works

As an example the package code-bin:

sudo tap install code-bin
>> Reading APT cache...
>> Reading MPR cache...
>> Removing old build directory...
>> Creating build directory...
>> Cloning packages...
>> Building dependency tree...
>> The following dependencies were unable to be found:
  -> libnss3>=2:3.26
  -> libgtk-3-0>=3.10.0

Here is the output of apt policy of the packages:

sudo apt policy libnss3 libgtk-3-0
libnss3:
  Installiert:           2:3.73.1-1
  Installationskandidat: 2:3.73.1-1
  Versionstabelle:
 *** 2:3.73.1-1 500
        500 http://deb.debian.org/debian sid/main amd64 Packages
        100 /var/lib/dpkg/status
libgtk-3-0:
  Installiert:           3.24.30-4
  Installationskandidat: 3.24.30-4
  Versionstabelle:
 *** 3.24.30-4 500
        500 http://deb.debian.org/debian sid/main amd64 Packages
        100 /var/lib/dpkg/status

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.