View Issue Details

IDProjectCategoryView StatusLast Update
0005899Talerwallet (WebExtension)public2019-12-20 18:11
Reporternikita Assigned Tonikita Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version0.6Fixed in Version0.6 
Summary0005899: portable configure
DescriptionThe configure script is rather unportable. This does not only consider my situation with a BSD rooted
implementation of find, xarg, getopt, but also Linux systems with no GNU userland tools (those exist
now).

Is there a specific reason why normal failing when base tools used in the Makefile are not enough?
I could rewrite the Makefile in a way that it considers all possible / for us relevant implementations of those
tools (or use more portable invocations).

All know make implementations in my experience support passing a prefix to it.

We could just get away with an empty ./configure (for those who need it, ie mostly automation being stupid), or none at all.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Florian Dold

2019-09-18 13:27

manager   ~0014914

If portability is desired, we should rewrite ./configure in python3. Or rather, as a *very* simply shell (= /bin/sh) script that checks if python3 is installed and then executes some configure.py.

I don't really see any good reason to avoid the dependency on python3.

The reason I wrote the configure script: To be compatible with the GNU coding standards. There should be a configure script, and it should support --prefix.

We might even go the "Google approach" of having all build-related tooling in some git submodule. The ./configure would then make sure the submodule is initialized and run the python script from there.

nikita

2019-09-18 13:35

reporter   ~0014915

Hm, okay. I don't fully understand the reasoning since it is a should and not a must, but having it in a python3 file sounds better.
Okay if I take on this and test it in Debian and NetBSD for compatibility with userlands? I could then start and export this once
it works into "building.git" or something like that.

nikita

2019-09-18 13:36

reporter   ~0014916

probably configure (shell script, tests for possible python3 executable name) and then calls the python3 script is the better approach.

Florian Dold

2019-09-18 13:37

manager   ~0014917

I agree that having it in Python3 sounds way better, even just because using argparse from the standard library is nicer than the current abomination in the ./configure.

Yes, please just start converting it into Python3 first. Later if we discover there's too much duplication on other repos, we can do some build.git.

Florian Dold

2019-09-18 13:37

manager   ~0014918

> probably configure (shell script, tests for possible python3 executable name) and then calls the python3 script is the better approach.

Yes, that's exactly what I was suggesting :-)

nikita

2019-09-18 13:39

reporter   ~0014919

Okay, thanks for the explanation.

private is probably not necessary for this ticket, okay to make it public (if mantis supports this change)?

Florian Dold

2019-09-18 13:41

manager   ~0014920

Sure, can be public!

nikita

2019-09-20 16:58

reporter   ~0014927

I'm about to push what I have.
This first version took so long because argparse is far from perfect and I needed to run into a couple of walls.
I learned that argparse is implemented in a way that it decides what your error handling should be, and opting out is not nice. In the end I decided to drop the 3rd branch I had and simply make argparse the default if no PREFIX environment variable is exported.
I expect that the prefix directory does exist. otherwise it becomes literally "None", which still has to be worked around.

nikita

2019-10-02 21:39

reporter   ~0014973

closing this, rest is ongoing work (migration, maintenance etc)

Issue History

Date ModifiedUsernameFieldChange
2019-09-18 13:21nikitaNew Issue
2019-09-18 13:21nikitaStatusnew => assigned
2019-09-18 13:21nikitaAssigned To => Florian Dold
2019-09-18 13:27Florian DoldNote Added: 0014914
2019-09-18 13:35nikitaNote Added: 0014915
2019-09-18 13:36nikitaNote Added: 0014916
2019-09-18 13:37Florian DoldNote Added: 0014917
2019-09-18 13:37Florian DoldNote Added: 0014918
2019-09-18 13:39nikitaNote Added: 0014919
2019-09-18 13:40nikitaAssigned ToFlorian Dold => nikita
2019-09-18 13:41Florian DoldNote Added: 0014920
2019-09-18 13:43nikitaView Statusprivate => public
2019-09-20 16:58nikitaNote Added: 0014927
2019-10-02 21:39nikitaNote Added: 0014973
2019-10-02 21:39nikitaStatusassigned => informing
2019-10-02 21:39nikitaResolutionopen => fixed
2019-11-14 21:46Christian GrothoffProduct Version => git (master)
2019-11-14 21:46Christian GrothoffFixed in Version => 0.6
2019-11-14 21:46Christian GrothoffTarget Version => 0.6
2019-12-20 18:11Christian GrothoffStatusinforming => closed
2023-04-13 18:37Florian DoldCategorywallet (WebExtensions) => wallet (WebExtension)