View Issue Details

IDProjectCategoryView StatusLast Update
0006145Talerotherpublic2020-04-23 10:52
ReporterChristian GrothoffAssigned TobuckE 
PrioritynormalSeverityfeatureReproducibilityN/A
Status resolvedResolutionfixed 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Versiongit (master) 
Target VersionFixed in Version 
Summary0006145: Package Taler exchange for Debian
DescriptionWe want to eventually install a Taler Debian package for the production deployment, instead of compiling from source on the production system. For this, the existing exchange TGZ should be packaged, with the (existing) GNUnet package (and others) as dependencies.

As we cannot rely on Debian always integrating our latest versions into their build farm, we also need to setup our own Debian archive so we can add it to the sources.list on the production system to install from there. The deliverable here is again the scripts and configuration (nginx) files to setup the archive (and sign the binaries, etc.).
TagsNo tags attached.

Activities

buckE

2020-04-08 10:27

developer   ~0015571

> the existing exchange TGZ should be packaged

Where is this existing exchange TGZ? Or should I just start from scratch with the exchange.git source?

> We want to eventually install a Taler Debian package for the production deployment

Specifically, this "Taler Debian package for the production deployment" means a .deb package to install and run the exchange, yes?

Christian Grothoff

2020-04-08 13:52

manager   ~0015580

Last edited: 2020-04-13 10:13

View 2 revisions

https://ftpmirror.gnu.org/taler/

buckE

2020-04-13 08:08

developer   ~0015635

Thank you. How does this relate to the current version in exchange.git?

Christian Grothoff

2020-04-13 10:42

manager   ~0015636

It doesn't, but when we make a new release it should be easy/trivial to update the package for the new release.

buckE

2020-04-14 03:20

developer   ~0015645

Sorry, by "this" I meant the TGZ. How does the TGZ that the spec specifically suggests using as the base for this project relate to the exchange.git which is what we discussed verbally?

Christian Grothoff

2020-04-14 11:22

manager   ~0015646

The TGZ is created from exchange.git by running 'make dist' in exchange.git.

buckE

2020-04-17 08:59

developer   ~0015671

Right, so you understand my confusion then. The spec says "the existing exchange TGZ should be packaged" but there also is the exchange.git, which should be (I think?) the base of this project. Why would the spec mention the "existing exchange TGZ" then? Given the existance of the exchange.git, this seems like a non-sequitor *yet it is the actual spec.* This must be cleared up before I can begin.

Christian Grothoff

2020-04-17 09:44

manager   ~0015673

Again, forget about exchange.git for this. It exists. Sure. It relates to the TGZ.
But what should be packaged is taler-exchange-0.7.0.tar.gz from the FTP server as the bug has always said.
How is this difficult to understand!?!?

buckE

2020-04-20 04:26

developer   ~0015695

> But what should be packaged is taler-exchange-0.7.0.tar.gz from the FTP server as the bug has always said.

Perfect!

> How is this difficult to understand!?!?

Just growing pains. In our conversation, you mentioned the source being the git repo, not the TGZ and I wanted to make sure I was doing the right thing. But you are 100% right: I should go on the spec above only. Thank you for clearing it up. I'll start on this soon.

buckE

2020-04-21 06:46

developer   ~0015717

Taler is not ready to be packaged, at least not at the quality level that I like my deliverables to meet. I am going to walk through this not because I want feedback or am willing to proceed at this time but out of courtesy because I want to be sure you understand why this is so.

1 - exchange/contrib/exchange-template does not exist in the taler-exchange-0.7.0.tar.gz file, though it is referenced as a step in the INSTALL file. It *does* exist in the repo, but you were very explicit that it is the tar.gz that should be used.

2 - But one persists. I figured I'd use the version in the repo anyway because there's no option. However there is not enough information to smoothly build and configure this. For example, https://docs.taler.net/taler-exchange-manual.html#configuration talks about what tools to use to configure the exchange, but not what the variables mean or values are. Maybe this is documented elsewhere but it is out of scope for this particular task (possibly why you wanted me using the .tar.gz?)

3 - But one persists. "You need libgnunetutil to build this program." Okay, sudo apt install gnunet. Well actually it's gnunet-dev. OK. Now:

  *** You need libgnunetjson to build this program.
  *** Make sure you have libjansson installed while
  *** building GNUnet.

  NOTE: libjansson4 and libjansson-dev are both installed

4 - One persists. Which version of gnunet should I be looking for libgnunetjson in anyway? v10 in the Debian stable repos? v12 on gnunet.org, which says "The following is a list of issues with GNUnet 0.11.0 that will need to be addressed before we might consider GNUnet deployable..." thereby indicating that it is not ready for release? Certainly I would not want a .deb file with my signature on it to require a package that has an oversight like this.

5 - But one persists. Except the debian buster gnunet-dev package does not install libgnunetjson, and unzipping v12 doesn't show it. Maybe I have to compile v12 to build the library?

4 - The gnunet v12 README says "These are the direct dependencies for running GNUnet:" and proceeds to list - not packages but - individual programs within the packages, making the hunt for the proper packages a guessing game.

I'm throwing in the towel. It is easy to create a debian package out of a tgz that is properly packaged and documented, which was what I gave an estimate for. It might also be easy to hack through these issues if I had experience with the project. But to be blunt: the taler exchange, and possibly gnunet (not sure) is not mature enough to be packaged as a .deb that I could take pride in at this time.

I am very willing to help you get it there, but that will require big and systemic changes and is out of scope for this task.

Christian Grothoff

2020-04-21 08:34

manager   ~0015718

Remarks:
1) That's some configuration files, not critical, maybe nice to have. Still, you simply found a bug, we either should stop using them (and remove the reference in INSTALL) or package them properly.
2) Yes, packaging != configuration, for the first round at least.
3) libgnunetjson is a part of GNUnet that is _only_ build by GNUnet if at GNUnet-compile-time libjansson-dev is present. Sounds like the GNUnet package you got doesn't include it. => Need to fix the GNUnet package first before you can get this to work.
4) Taler usually requires a 'matching' GNUnet version, i.e. Git master only builds with GNUnet git master. We usually _try_ to get a matching GNUnet release just before a Taler release, but IIRC that didn't happen for 0.7.0. So you'd need the GNUnet git master from around the time of 0.7.0's release. VERY messy, I know.

Anyway, thanks for finding out the issues, I was unaware of (1) and that the GNUnet package didn't include libgnunetjansson. I think the last point (and the lack of suitable GNUnet releases) are the first we need to fix.

buckE

2020-04-23 10:43

developer   ~0015744

Christian,

Compiling gnunet-debian from git repo, I get an error "sqlite3 not found, but sqlite3 is required" but sqlite3 is installed on my system. Using buster. Is this a known issue? Something you have an idea where to start looking maybe?

buckE

2020-04-23 10:52

developer   ~0015746

Closing this issue and replacing with these:

https://bugs.gnunet.org/view.php?id=6210
https://bugs.gnunet.org/view.php?id=6211
https://bugs.gnunet.org/view.php?id=6212

Christian, please take a quick look and verify I understand the objectives.

Issue History

Date Modified Username Field Change
2020-04-01 16:23 Christian Grothoff New Issue
2020-04-01 16:23 Christian Grothoff Status new => assigned
2020-04-01 16:23 Christian Grothoff Assigned To => buckE
2020-04-08 10:27 buckE Note Added: 0015571
2020-04-08 13:52 Christian Grothoff Note Added: 0015580
2020-04-13 08:08 buckE Note Added: 0015635
2020-04-13 10:13 Christian Grothoff Note Edited: 0015580 View Revisions
2020-04-13 10:42 Christian Grothoff Note Added: 0015636
2020-04-14 03:20 buckE Note Added: 0015645
2020-04-14 11:22 Christian Grothoff Note Added: 0015646
2020-04-17 08:59 buckE Note Added: 0015671
2020-04-17 09:44 Christian Grothoff Note Added: 0015673
2020-04-20 04:26 buckE Note Added: 0015695
2020-04-21 06:46 buckE Note Added: 0015717
2020-04-21 08:34 Christian Grothoff Note Added: 0015718
2020-04-23 10:43 buckE Note Added: 0015744
2020-04-23 10:52 buckE Status assigned => resolved
2020-04-23 10:52 buckE Resolution open => fixed
2020-04-23 10:52 buckE Note Added: 0015746