Received: from mx1.tetrasec.net (mx1.tetrasec.net [66.245.176.36]) by nld3-dev1.alpinelinux.org (Postfix) with ESMTPS id AF924782B31 for <~alpine/devel@lists.alpinelinux.org>; Thu, 21 May 2020 13:42:04 +0000 (UTC) Received: from mx1.tetrasec.net (mail.local [127.0.0.1]) by mx1.tetrasec.net (Postfix) with ESMTP id E07B49C819 for <~alpine/devel@lists.alpinelinux.org>; Thu, 21 May 2020 13:42:03 +0000 (UTC) Received: from ncopa-desktop.copa.dup.pw (67.63.200.37.customer.cdi.no [37.200.63.67]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: alpine@tanael.org) by mx1.tetrasec.net (Postfix) with ESMTPSA id 480BD9C818 for <~alpine/devel@lists.alpinelinux.org>; Thu, 21 May 2020 13:42:03 +0000 (UTC) Date: Thu, 21 May 2020 15:41:57 +0200 From: Natanael Copa To: Alpine develmopment <~alpine/devel@lists.alpinelinux.org> Subject: RFC: tool to scan aports tree Message-ID: <20200521154157.6df2d118@ncopa-desktop.copa.dup.pw> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-alpine-linux-musl) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi! I have been thinking of (re)writing or refactor the tool to scan the aports tree. Currently we have lua-aports which can scan the tree and list build order of given packages, but the interface is not great. I would like to have some feedback on how you would like that the interface should be? The things that it will need to do that current `ap` can do is: - list the build order of given packages (ap builddirs) - recursively print all the dependencies for given packages (ap recursdeps) - dump all aports to json (ap dump-json) I am not sure those are needed: - list the .apk files generated from given aport (ap apk-list) - give a list of packages that needs to be built (ap build-list. not sure if its needed but may be handy) - print the reverse build time dependencies for a given package (ap revdep) Things that the tools needs to be able to help us to do: - detect if there are any invalid dependencies (eg. packages in main that depends on packages in community or testing) - detect missing build time dependencies (due to arch being disabled) - detect circular build time dependencies - clean source cache (delete downloaded sources older than X that is not currently used by any aports) - implement relgroups (check that all aports with same relgroup has same pkgver - this is not in use in aports yet) - print reverse build deps. If you for example disable/enable a library for an architecture, what other packages needs also to be disabled/enabled. Are there other things it needs to be able to do? Maybe parse the secfixes sections? look for duplicates? verify that upstream sources are still available? search in makedepends/sources/arch/options? (eg list all aports that has !check in options, or all aports that has a given arch explicitly disabled) This could be implemented either by a single tool similar to current `ap` or it could be implemented as multiple tools. How do you think it should work? Any suggestions for what the --help output should be? Or maybe even a suggestions for a simple manpage. I'd like to work on this after 3.12 is out, but want to start the discussion on how it should work. Thanks! -nc