Bug 787 - Add an ikiwiki underlay for nmutil.git and/or openpower-isa.git
Summary: Add an ikiwiki underlay for nmutil.git and/or openpower-isa.git
Status: RESOLVED FIXED
Alias: None
Product: Libre-SOC Website
Classification: Unclassified
Component: website (show other bugs)
Version: unspecified
Hardware: PC Linux
: --- enhancement
Assignee: Luke Kenneth Casson Leighton
URL:
Depends on:
Blocks: 785 786 784
  Show dependency treegraph
 
Reported: 2022-03-21 04:50 GMT by Jacob Lifshay
Modified: 2022-04-05 01:13 BST (History)
1 user (show)

See Also:
NLnet milestone: ---
total budget (EUR) for completion of task and all subtasks: 0
budget (EUR) for this task, excluding subtasks' budget: 0
parent task for budget allocation:
child tasks for budget allocation:
The table of payments (in EUR) for this task; TOML format:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jacob Lifshay 2022-03-21 04:50:40 GMT
While thinking through the things I need to do for implementing the cl* instructions (bug #784), I realized that we should have the python reference and test code in some other repo, such as nmutil.git or openpower-isa.git.

Python Reference and Test Code:
https://git.libre-soc.org/?p=libreriscv.git;a=tree;f=openpower/sv/bitmanip;h=e5ae6009e44df3596f15197e2c403ce73c275bc7;hb=HEAD

Then, we can add that repo to ikiwiki as an underlay, and change the inline directives in bitmanip.mdwn to point to the files in the underlay instead of in libreriscv.git.

I already checked that they can point to stuff in an underlay:
Sandbox:
[[!inline pagenames="task_db/mdwn/programmerjake"]]

(no, having nmutil.git as a submodule of libreriscv.git will not work, ikiwiki doesn't support submodules)
Comment 1 Jacob Lifshay 2022-03-21 05:00:26 GMT
Found a useful link for making git auto-check-out when nmutil.git is pushed to (in case ikiwiki needs nmutil.git to be checked out for it to work):
https://stackoverflow.com/a/10513684

>  In Git since 2.3, you can now configure receive.denyCurrentBranch to updateInstead
Comment 2 Jacob Lifshay 2022-03-23 03:11:30 GMT
I instead used git subtree to sync libreriscv.git/openpower/sv/bitmanip to nmutil.git/src/nmutil/openpower_sv_bitmanip_in_wiki

Instructions here:
https://libre-soc.org/openpower/sv/bitmanip/git_subtree_syncing/
Comment 3 Luke Kenneth Casson Leighton 2022-03-27 06:18:20 BST
(In reply to Jacob Lifshay from comment #2)
> I instead used git subtree to sync libreriscv.git/openpower/sv/bitmanip to
> nmutil.git/src/nmutil/openpower_sv_bitmanip_in_wiki
> 
> Instructions here:
> https://libre-soc.org/openpower/sv/bitmanip/git_subtree_syncing/

please rwmove all subtrees immediately.

please remove that page.

please put a notice in HDL_workflow that subtrees are not to
be used under any circumstances.

the cross poisoning of commit messages from irrelevant
git logs is far too great.
Comment 4 Jacob Lifshay 2022-03-27 11:35:40 BST
(In reply to Luke Kenneth Casson Leighton from comment #3)
> the cross poisoning of commit messages from irrelevant
> git logs is far too great.

git subtree has a squash mode (which I didn't use) where it doesn't copy all the commits, instead just copies the changes since the last sync all as one commit. basically a slightly fancier version of cp -r and git add and git commit, rather than ending up with an entire duplicate commit chain.
Comment 5 Luke Kenneth Casson Leighton 2022-03-27 13:12:39 BST
(In reply to Jacob Lifshay from comment #4)
> (In reply to Luke Kenneth Casson Leighton from comment #3)
> > the cross poisoning of commit messages from irrelevant
> > git logs is far too great.
> 
> git subtree has a squash mode (which I didn't use) where it doesn't copy all

when under severe time and other pressure i am not interested in hearing
about features of something that is irrelevant.

simple question: have you complied with the instructions given to you, yes or no.
Comment 6 Luke Kenneth Casson Leighton 2022-03-27 13:17:31 BST
i have told you that git subtree is not to be used.

i do not have time to go into detail

you have ignored my instructions, wasting my time when i have
a critical contractual obligation to fulfil and only days in
which to complete it

please for god's sake just do as i ask.

i have once again been forced to do a force-master push
because you have not listened to what i am telling you
right when i do not have the time to go through explanations.

i have rolled back the subtree commit

i have removed your commit rights to the wiki.

please let me know when you have rolled back to the
correct master branch which does not contain subtrees
and i will then restore your commit rights.
Comment 7 Jacob Lifshay 2022-03-27 19:35:38 BST
(In reply to Luke Kenneth Casson Leighton from comment #5)
> (In reply to Jacob Lifshay from comment #4)
> > (In reply to Luke Kenneth Casson Leighton from comment #3)
> > > the cross poisoning of commit messages from irrelevant
> > > git logs is far too great.
> > 
> > git subtree has a squash mode (which I didn't use) where it doesn't copy all
> 
> when under severe time and other pressure i am not interested in hearing
> about features of something that is irrelevant.

well, when you are not under time pressure, please consider git subtree squash mode...

(In reply to Luke Kenneth Casson Leighton from comment #6)
> please let me know when you have rolled back to the
> correct master branch which does not contain subtrees
> and i will then restore your commit rights.

yes, i reset my master branch to 7ac40ec2fbba4076f4d4ce1baa0d6ed912da6232.
Comment 8 Luke Kenneth Casson Leighton 2022-03-27 19:41:26 BST
(In reply to Jacob Lifshay from comment #7)

> well, when you are not under time pressure, please consider git subtree
> squash mode...

it's already considered: the answer is no. i can see the damage it does
from at least two angles.

> (In reply to Luke Kenneth Casson Leighton from comment #6)

> yes, i reset my master branch to 7ac40ec2fbba4076f4d4ce1baa0d6ed912da6232.

great. commit rights restored.
Comment 9 Jacob Lifshay 2022-03-27 19:48:04 BST
Replying to:
https://lists.libre-soc.org/pipermail/libre-soc-dev/2022-March/004630.html
On Sun, Mar 27, 2022, 04:38 Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote:
> however *as a group* my feeling is that they qualify for "new repo" status.
> they're all sufficiently general that others may wish to use them.
> soc is not appropriate.  ieee754fpu is not appropriate.  nmutil isn't
> appropriate.

I like the idea of putting them in a new repo, however we still have the same issue of how they end up on the wiki -- git submodules don't work with ikiwiki.
Comment 10 Jacob Lifshay 2022-03-27 19:52:33 BST
(In reply to Luke Kenneth Casson Leighton from comment #8)
> (In reply to Jacob Lifshay from comment #7)
> 
> > well, when you are not under time pressure, please consider git subtree
> > squash mode...
> 
> it's already considered: the answer is no. i can see the damage it does
> from at least two angles.

that doesn't tell anyone else your reasons for not liking git subtree...respond when you're *not under time pressure*. (this comes across as an arbitrary decision with no discussion, it needs to be addressed at some point soon...how about the middle of april or so?)
Comment 11 Luke Kenneth Casson Leighton 2022-03-27 20:09:10 BST
(In reply to Jacob Lifshay from comment #9)

> I like the idea of putting them in a new repo, however we still have the
> same issue of how they end up on the wiki -- git submodules don't work with
> ikiwiki.

anything in /var/www/openpower-isa is already an underlay. there is
one directory, the openpower one:

$ ls /var/www/openpower-isa/openpower/
isa  isafunctions  isa.mdwn  isatables  README.txt
Comment 12 Luke Kenneth Casson Leighton 2022-03-31 17:52:46 BST
https://docs.python.org/3/distutils/setupscript.html

it is not strictly necessary to drop code into src or lib.
parts of a package may be placed in arbitrary locations.

gf*.py may therefore be placed under the openpower directory
and a package_dir entry given to set them into the openpower.xxx
namespace.
Comment 13 Luke Kenneth Casson Leighton 2022-03-31 17:53:53 BST
(In reply to Jacob Lifshay from comment #10)

> that doesn't tell anyone else your reasons for not liking git
> subtree...


i already did.  the answers were complete and final.
Comment 14 Jacob Lifshay 2022-03-31 22:04:11 BST
(In reply to Luke Kenneth Casson Leighton from comment #12)
> https://docs.python.org/3/distutils/setupscript.html
> 
> it is not strictly necessary to drop code into src or lib.
> parts of a package may be placed in arbitrary locations.
> 
> gf*.py may therefore be placed under the openpower directory
> and a package_dir entry given to set them into the openpower.xxx
> namespace.

I need to use them from nmutil, not just openpower-isa. iirc you don't want nmutil to depend on openpower-isa.

how about we make a new repo, op-reference.git? (since it's useful as a reference for more than just openpower, and i'll eventually want to put more than just bitmanip stuff in it, e.g. fp->int javascript-style or utf-8 verifiers)
Comment 15 Luke Kenneth Casson Leighton 2022-03-31 22:11:16 BST
(In reply to Jacob Lifshay from comment #14)

> I need to use them from nmutil, not just openpower-isa. iirc you don't want
> nmutil to depend on openpower-isa.

under absolutely no circumstances is that acceptable.  it has already
been explained why.

> how about we make a new repo, op-reference.git? (since it's useful as a
> reference for more than just openpower, and i'll eventually want to put more
> than just bitmanip stuff in it, e.g. fp->int javascript-style or utf-8
> verifiers)

that'd work: it's general enough. there's a number of other things
that could move to it.  will sort that out.
Comment 16 Jacob Lifshay 2022-03-31 22:14:34 BST
(In reply to Luke Kenneth Casson Leighton from comment #13)
> (In reply to Jacob Lifshay from comment #10)
> 
> > that doesn't tell anyone else your reasons for not liking git
> > subtree...
> 
> 
> i already did.  the answers were complete and final.

I think you thought you did but didn't actually...I can't find git subtree anywhere on libre-soc.org except this bug and a stale version of the sitemap (iirc google searches all subdomains too, so it should have gotten all the mailing list and irc log too)

https://www.google.com/search?q=site%3Alibre-soc.org+%22git+subtree%22
Comment 17 Jacob Lifshay 2022-03-31 22:17:15 BST
(In reply to Luke Kenneth Casson Leighton from comment #15)
> (In reply to Jacob Lifshay from comment #14)
> 
> > I need to use them from nmutil, not just openpower-isa. iirc you don't want
> > nmutil to depend on openpower-isa.
> 
> under absolutely no circumstances is that acceptable.  it has already
> been explained why.

i'm assuming you mean having nmutil depend on openpower-isa is unacceptable. if you mean nmutil depending on op-reference is also unacceptable, please clarify.
Comment 18 Luke Kenneth Casson Leighton 2022-03-31 22:20:43 BST
(In reply to Jacob Lifshay from comment #17)

> i'm assuming you mean having nmutil depend on openpower-isa is unacceptable.

yes absolutely.  i explained already.  if you didn't see the message
on the list please do look for it.

> if you mean nmutil depending on op-reference is also unacceptable, please
> clarify.

... hmm now that i think about it, that's probably also not going to work,
although i really like the idea of a separate repo, nmutil cannot itself
depend on it.  the *other way round* is perfectly fine.
see the message on the mailing list as to why.
Comment 19 Jacob Lifshay 2022-03-31 22:44:39 BST
(In reply to Luke Kenneth Casson Leighton from comment #18)
> (In reply to Jacob Lifshay from comment #17)
> > if you mean nmutil depending on op-reference is also unacceptable, please
> > clarify.
> 
> ... hmm now that i think about it, that's probably also not going to work,
> although i really like the idea of a separate repo, nmutil cannot itself
> depend on it.  the *other way round* is perfectly fine.
> see the message on the mailing list as to why.

what about adding op-reference to nmutil's test dependencies, since I need it to run the tests but everyone who isn't running tests doesn't need it. If that is still unacceptable, the only options i can think of that are left are generally very poor options imho: 
either:
copy the reference functions into nmutil,
rewrite the reference functions into nmutil's tests,
put nmutil's tests somewhere other than nmutil.git, or
just don't test nmutil's functions.
Comment 20 Luke Kenneth Casson Leighton 2022-03-31 23:06:11 BST
(In reply to Jacob Lifshay from comment #19)

> what about adding op-reference to nmutil's test dependencies,

that sounds much better, but it's still... slightly dicey.
nmutil is intended to be completely stand-alone independent.
as in, its sole exclusive dependency absolutely has to be
nmigen and nmigen only.

> since I need
> it to run the tests but everyone who isn't running tests doesn't need it. If
> that is still unacceptable, the only options i can think of that are left
> are generally very poor options imho: 
> either:
> copy the reference functions into nmutil,
> rewrite the reference functions into nmutil's tests,
> put nmutil's tests somewhere other than nmutil.git, or
> just don't test nmutil's functions.

i am beginning to remember what i wrote on the list.

nmutil is designed for general-purpose "anything anyone might need"
pipelines, bit-reversing patterns, sign-extending, popcount, priority
picker, etc. etc.  kitchen-sink stuff

gf* operations *do not* in any way qualify as "general-purpose"

only a tiny handful of HDL engineers are going to create designs
using gf* operations.

by contrast a *Very large* percentage of HDL engineers will want
to do pipelines and bit-reversing

conclusion: nmutil is completely the wrong location to consider
adding the gf* operations.

basically the gf* ops go in their own separate repo

please can you track down and read the original message, i have
just been forced to spend time repeating what i wrote, which is
very irritating when i am under time pressure.
Comment 21 Jacob Lifshay 2022-04-03 08:10:07 BST
(In reply to Luke Kenneth Casson Leighton from comment #20)
> nmutil is designed for general-purpose "anything anyone might need"
> pipelines, bit-reversing patterns, sign-extending, popcount, priority
> picker, etc. etc.  kitchen-sink stuff
> 
> gf* operations *do not* in any way qualify as "general-purpose"

In that case, can you please create a new repo where we can put the hdl and reference python for testing? And then add it as a underlay in the wiki? This is blocking progress on the cl* and gf* ops.

may I suggest naming it openpower-hdl.git ... if you don't like that, please just pick a name and go ahead and create it, we can rename it later if we need to without blocking progress deciding on a name.
Comment 22 Luke Kenneth Casson Leighton 2022-04-03 08:21:11 BST
(In reply to Jacob Lifshay from comment #21)

> In that case, can you please create a new repo where we can put the hdl and
> reference python for testing? And then add it as a underlay in the wiki?
> This is blocking progress on the cl* and gf* ops.

true, but it's not damaging nmutil or the openpower-isa repos in
a disastrous fashion.

did you find the original discussion and read it?
 
> may I suggest naming it openpower-hdl.git ... if you don't like that, please
> just pick a name and go ahead and create it, we can rename it later if we
> need to without blocking progress deciding on a name.

openpower-hdl is not appropriate for general gf* hdl, i'll name
it nmigen-gf or nm-gf.
Comment 23 Jacob Lifshay 2022-04-03 08:30:11 BST
(In reply to Luke Kenneth Casson Leighton from comment #22)
> (In reply to Jacob Lifshay from comment #21)
> 
> > In that case, can you please create a new repo where we can put the hdl and
> > reference python for testing? And then add it as a underlay in the wiki?
> > This is blocking progress on the cl* and gf* ops.
> 
> true, but it's not damaging nmutil or the openpower-isa repos in
> a disastrous fashion.
> 
> did you find the original discussion and read it?

no, I couldn't find it.

> > may I suggest naming it openpower-hdl.git ... if you don't like that, please
> > just pick a name and go ahead and create it, we can rename it later if we
> > need to without blocking progress deciding on a name.
> 
> openpower-hdl is not appropriate for general gf* hdl, i'll name
> it nmigen-gf or nm-gf.

I was thinking we'd put more than just gf* stuff in there, it would include stuff such as the utf-8 hdl, and other random general hdl ops that don't go in soc or nmutil or openpower-isa or ieee754fpu
Comment 24 Luke Kenneth Casson Leighton 2022-04-03 08:30:38 BST
done, however you'll need to let me know the directory layout before
i can add an underlay.  would it be excessive to drop the entirety
of the repo in as an underlay? i don't know, maybe it's ok.
have a think and let me know a proposed directory structure that
makes sense.  in openpower-isa i split toplevel openpower dir
(underlayed) from toplevel src (not)
Comment 25 Jacob Lifshay 2022-04-03 08:38:56 BST
(In reply to Luke Kenneth Casson Leighton from comment #24)
> done, however you'll need to let me know the directory layout before
> i can add an underlay.  would it be excessive to drop the entirety
> of the repo in as an underlay? i don't know, maybe it's ok.
> have a think and let me know a proposed directory structure that
> makes sense.  in openpower-isa i split toplevel openpower dir
> (underlayed) from toplevel src (not)

ok, add src/op_reference/reference as the underlay (or just add the whole repo):
https://git.libre-soc.org/?p=op-reference.git;a=tree;f=src/op_reference/reference;h=d283a9b392288b6b45d926fd16a0359d575e2435;hb=2d16acca9a26cd4454ddcbd39a3bdaf12ddd8741
Comment 26 Luke Kenneth Casson Leighton 2022-04-03 08:46:49 BST
(In reply to Jacob Lifshay from comment #23)
> > 
> > did you find the original discussion and read it?
> 
> no, I couldn't find it.

mailing list.  use date listing. go by date of this bugreport.
or gmail keyword search.

> I was thinking we'd put more than just gf* stuff in there, it would include
> stuff such as the utf-8 hdl, and other random general hdl ops that don't go
> in soc or nmutil or openpower-isa or ieee754fpu

no. already made it clear: no monorepos.  one repo, one purpose.
ieee754fp is already overloaded, simd has to be moved to nmigen-simd.
utf8 goes into nmigen-utf8.

just because other projects act in a stupid fashion by smashing code
together in multi megabyte mono repos does not mean we also have to
be as stupid.

we are *not* building a single-purpose codebase.  we therefore have
to act as such by thinking through the actions and perspectives of
potential developers, users, and contributors.

this requires placing yourself in the position of each individual
and thinking through how they will react on encountering the various
codebases.

a monorepo or anything multi-purpose will be viewed as extremely
intimidating (hundreds of directories, thousands of files)
or as "something to rip apart", taking what they can get.

anyone wishing to find something very specific should be able
to find it easily with simple keyword searches and embed it
within their code *without* being forced to smash thousands of
files into their design or, much worse, propagate copies of
source files across the internet, extracted piece-meal.

by putting special-purpose HDL into self-contained repos they
are much more likely to use the entire repo as-is WITHOUT ripping
it apart (copying one or two files only) and thus more likely
to contribute without being overwhelmed.
Comment 27 Jacob Lifshay 2022-04-03 08:53:15 BST
(In reply to Luke Kenneth Casson Leighton from comment #26)
> (In reply to Jacob Lifshay from comment #23)
> > > 
> > > did you find the original discussion and read it?
> > 
> > no, I couldn't find it.
> 
> mailing list.  use date listing. go by date of this bugreport.
> or gmail keyword search.

ah, found it, i think:
https://lists.libre-soc.org/pipermail/libre-soc-dev/2022-March/004630.html
Comment 28 Luke Kenneth Casson Leighton 2022-04-03 09:02:11 BST
(In reply to Jacob Lifshay from comment #25)

> ok, add src/op_reference/reference as the underlay (or just add the whole
> repo):
> https://git.libre-soc.org/?p=op-reference.git;a=tree;f=src/op_reference/
> reference;h=d283a9b392288b6b45d926fd16a0359d575e2435;
> hb=2d16acca9a26cd4454ddcbd39a3bdaf12ddd8741

wait, what? argh i forgot that had been added.  i meant nmigen-gf.
i have now deleted op-reference.

again: the exact same logic applies to nmigen-gf as to nmutil. it should contain
self-contained source code (and documentation in the form of
markdown) where "oh look the unit tests and ref code can be embedded into the
libresoc wiki as an underlay"

if using op-reference then op-reference would become a critical dependence of nmigen-gf which is just as inappropriate as nmutil becoming dependent on
op-reference or openpower-isa.

nmigen-gf *can* depend on nmutil but not the other way round.

nmigen-gf must otherwise be standalone

the wiki can be *constructed* (underlay) to use nmigen-gf but must
not depend on it

soc is where everything hangs together and depends on absolutely everything.

yes, large project management is complex.
Comment 29 Jacob Lifshay 2022-04-03 09:09:08 BST
(In reply to Luke Kenneth Casson Leighton from comment #28)
> (In reply to Jacob Lifshay from comment #25)
> 
> > ok, add src/op_reference/reference as the underlay (or just add the whole
> > repo):
> 
> wait, what? argh i forgot that had been added.  i meant nmigen-gf.

ok, here then:
https://git.libre-soc.org/?p=nmigen-gf.git;a=tree;f=src/nmigen_gf/reference;h=d283a9b392288b6b45d926fd16a0359d575e2435;hb=HEAD
Comment 30 Jacob Lifshay 2022-04-03 09:11:45 BST
(In reply to Jacob Lifshay from comment #29)
> https://git.libre-soc.org/?p=nmigen-gf.git;a=tree;f=src/nmigen_gf/reference;
> h=d283a9b392288b6b45d926fd16a0359d575e2435;hb=HEAD

maybe have it so libre-soc.org/nmigen_gf/reference -> nmigen-gf.git/src/nmigen_gf/reference
Comment 31 Jacob Lifshay 2022-04-03 09:18:15 BST
(In reply to Jacob Lifshay from comment #30)
> (In reply to Jacob Lifshay from comment #29)
> > https://git.libre-soc.org/?p=nmigen-gf.git;a=tree;f=src/nmigen_gf/reference;
> > h=d283a9b392288b6b45d926fd16a0359d575e2435;hb=HEAD
> 
> maybe have it so libre-soc.org/nmigen_gf/reference ->
> nmigen-gf.git/src/nmigen_gf/reference

figured you'd want some files to test with, added:
https://git.libre-soc.org/?p=nmigen-gf.git;a=blob;f=src/nmigen_gf/reference/README.mdwn;h=98d446e7c38a8072ca75f78e44db7df310c57b19;hb=HEAD
Comment 32 Jacob Lifshay 2022-04-03 09:36:30 BST
(In reply to Jacob Lifshay from comment #31)
> (In reply to Jacob Lifshay from comment #30)
> > (In reply to Jacob Lifshay from comment #29)
> > > https://git.libre-soc.org/?p=nmigen-gf.git;a=tree;f=src/nmigen_gf/reference;
> > > h=d283a9b392288b6b45d926fd16a0359d575e2435;hb=HEAD
> > 
> > maybe have it so libre-soc.org/nmigen_gf/reference ->
> > nmigen-gf.git/src/nmigen_gf/reference
> 
> figured you'd want some files to test with, added:
> https://git.libre-soc.org/?p=nmigen-gf.git;a=blob;f=src/nmigen_gf/reference/
> README.mdwn;h=98d446e7c38a8072ca75f78e44db7df310c57b19;hb=HEAD

added a mirror for CI:
https://salsa.debian.org/Kazan-team/mirrors/nmigen-gf
Comment 33 Luke Kenneth Casson Leighton 2022-04-03 09:39:52 BST
(In reply to Jacob Lifshay from comment #31)

> figured you'd want some files to test with, added:
> https://git.libre-soc.org/?p=nmigen-gf.git;a=blob;f=src/nmigen_gf/reference/
> README.mdwn;h=98d446e7c38a8072ca75f78e44db7df310c57b19;hb=HEAD

exxcellent, v. helpful. now to remember how the hell i did underlays!
Comment 34 Jacob Lifshay 2022-04-03 22:37:32 BST
the underlay is all set up and working...except it only works if nmigen-gf.git was the last repo pushed to...if i push to libreriscv.git then the underlay disappears, it reappears if i then push to nmigen-gf.git.

I moved all the python files in libreriscv.git/openpower/sv/bitmanip to nmigen-gf/gf_reference
Comment 35 Jacob Lifshay 2022-04-04 09:06:57 BST
I moved the cl* and gf* files into nmigen-gf.git and added all the other misc files.

Tests pass on CI:
https://salsa.debian.org/Kazan-team/mirrors/nmigen-gf/-/jobs/2637299

only problem left is somehow the apt install is installing an entire graphical userspace (systemd, and a bunch of other junk), it takes like 7min straight just to unpack everything, idk which package is responsible...any ideas? (respond on mailing list rather than this bug)

https://git.libre-soc.org/?p=nmigen-gf.git;a=blob;f=.gitlab-ci.yml;h=5578d80616d832ccd8110b492f8f7c5a312331aa;hb=HEAD#l11
Comment 36 Luke Kenneth Casson Leighton 2022-04-04 12:27:52 BST
(In reply to Jacob Lifshay from comment #35)

> only problem left is somehow the apt install is installing an entire
> graphical userspace (systemd, and a bunch of other junk), it takes like 7min
> straight just to unpack everything, idk which package is responsible...any
> ideas? (respond on mailing list rather than this bug)

graphviz, xdot.

consider "python3 setup.py develop --no-deps" for nmigen
and install the dependencies manually.
Comment 37 Jacob Lifshay 2022-04-05 00:28:59 BST
(In reply to Luke Kenneth Casson Leighton from comment #36)
> (In reply to Jacob Lifshay from comment #35)
> 
> > only problem left is somehow the apt install is installing an entire
> > graphical userspace (systemd, and a bunch of other junk), it takes like 7min
> > straight just to unpack everything, idk which package is responsible...any
> > ideas? (respond on mailing list rather than this bug)
> 
> graphviz, xdot.

well...from running:
apt-cache depends --quiet --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --recurse autoconf bison build-essential ccache clang cmake curl flex gawk git gperf graphviz libboost-program-options-dev libffi-dev libftdi-dev libgmp-dev libreadline-dev mercurial pkg-config python python3 python3-dev python3-pip python3-setuptools python3-wheel tcl-dev xdot

it turns out that systemd is installed by xdot (trimmed dependencies):
xdot
  Depends: gir1.2-gtk-3.0
gir1.2-gtk-3.0
  Depends: libgtk-3-common
libgtk-3-common
 |Depends: dconf-gsettings-backend
dconf-gsettings-backend
  Depends: dconf-service
dconf-service
  Depends: <dbus-session-bus>
    dbus-user-session
dbus-user-session
  Depends: systemd

I wouldn't have expected that, I'd expect xdot to maybe install some X11 libraries and graphviz and that's it...

> consider "python3 setup.py develop --no-deps" for nmigen
> and install the dependencies manually.

nmigen isn't the problem...

graphviz and xdot are in the SymbiYosys dependency list:
https://symbiyosys.readthedocs.io/en/latest/install.html
Comment 38 Luke Kenneth Casson Leighton 2022-04-05 01:13:13 BST
(In reply to Jacob Lifshay from comment #37)
 
> graphviz and xdot are in the SymbiYosys dependency list:

of course they are.

you're not going to be doing "show top" in a non-desktop
environment.

cut them out.