View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006145||Taler||other||public||2020-04-01 16:23||2020-07-24 11:56|
|Reporter||Christian Grothoff||Assigned To||buckE|
|Platform||i7||OS||Debian GNU/Linux||OS Version||squeeze|
|Product Version||git (master)|
|Target Version||0.8||Fixed in Version||0.8|
|Summary||0006145: Package Taler exchange for Debian|
|Description||We 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.).
|Tags||No tags attached.|
> 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?
||Thank you. How does this relate to the current version in exchange.git?|
||It doesn't, but when we make a new release it should be easy/trivial to update the package for the new release.|
||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?|
||The TGZ is created from exchange.git by running 'make dist' in exchange.git.|
||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.|
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!?!?
> 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!?!?
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.
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.
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.
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?
Closing this issue and replacing with these:
Christian, please take a quick look and verify I understand the objectives.
|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|
|2020-07-24 11:56||Christian Grothoff||Target Version||=> 0.8|
|2020-07-24 11:56||Christian Grothoff||Fixed in Version||=> 0.8|