Hi Shayan, On Tue, Aug 20, 2019 at 07:14:33PM +0100, Shayan Doust wrote: > > Welcome back :).
:-) > I've probably checked gatb-core at least a dozen times before you sent > this to me. I just never checked debian/patch as I didn't think this was > some cmake thing :). Talked to upstream and they will take care of > soversion within the next release and package update, but for now I just > added this as a patch. Cool! > > ...In this case the dynamic lib is added but you get the idea how to > > add a static one from this patch... > > Thank you. This is done. > > If you have time, do you mind just checking fast package for me? There > are still a few things I need to do with libfast-dev as I haven't done > this yet. Where should *.a go? Should this go under > /usr/lib/<arch>-linux-gnu? Yes. I'll have a look and may be I'll turn this into a d-shlibs call. Thank you have an example. > I know this can be set accordingly in > debian/rules but I have seen *.a both in /usr/lib and > /usr/lib/<arch>-linux-gnu. Same for *.so. The latter is the modern (=multiarch) one. /usr/lib is just a left over by not so properly maintaines packages. > I also see > rc-version-greater-than-expected-version, presumably from how upstream > brands the version. Should this be ignored or can this be safely rectified? You need to use opts="uversionmangle=s/-rc/~rc/" in debian/watch and use ~rc in d/changelog. The rationale is that '~' sorts lower with `dpkg --compare-versions`. So if upstream is issuing a real release it is in correct alphabethic sequence and considered a higher version if you drop ~rc (or ~beta or whatever upstream might invent to mark a pre-release). > Additionally, productivity will start to decrease for only a few weeks > to a month as I prepare to move out and into university accommodation. May be we finalise this package in the next days. I'll have a look and might finish it if you don't mind. Thanks for your great work Andreas. > On 19/08/2019 07:39, Andreas Tille wrote: > > Hi Shayan, > > > > On Sun, Aug 18, 2019 at 05:53:01PM +0100, Shayan Doust wrote: > >> Hello, > >> > >> Please disregard the previous email entirely just to save you time from > >> writing, as I have finally figured things out. > > > > I'm slowly recovering from last week need to cope with some backlog. > > Thus saving my time is pretty welcome. ;-) > > > >> fast should contain only executable binaries which in this case are > >> openigt fast client and server binaries. > > > > Yes. > > > >> libfastSOVERSION should contain the shared / *.so only although grepping > >> libFAST.so, there is no soversion. Is this libfast0 then? > > > > Several upstreams do not know about SOVERSION and once you contact them > > you could try to talk about this as well. If upstream does not set a > > soversion we should do this. In gatb-core you can find a simple example: > > > > > > https://salsa.debian.org/med-team/gatb-core/blob/master/debian/patches/set_soversion.patch > > > > Yes, 0 is a good choice here and we need to bump the SOVERSION once > > upstream might change the ABI (which frequently happens without any > > notice - you see we are at version 2 in gatb-core meanwhile). > > > >> libfast-dev contains only the header files and the static library (*.a). > >> I realised this can be done with the ar tool. Is it sensible to traverse > >> the build directory and add all object files to archive to create a > >> libfast.a? > > > > There is no need for manual intervention with ar. CMake can do this > > easily. Once we have used gatb-core as an example we might stick to > > this one: > > > > > > https://salsa.debian.org/med-team/gatb-core/blob/master/debian/patches/dynamic_lib.patch > > > > In this case the dynamic lib is added but you get the idea how to > > add a static one from this patch. > > > >> I will now just slightly modify the existing debian/ files to > >> accommodate these changes. > >> > >> Additionally, I will stick to modifying fast so I will not need the > >> additional CL header files, so the dependency is now just opencl. I will > >> talk to upstream about this. > > > > If this approach will work out that sounds like a good alternative > > which was missing in my list. > > > >> Many thanks & hopefully this isn't an inconvenience, > > > > Definitely not. Its a pleasure to see you growing into way more > > complex packages. > > > > Kind regards > > > > Andreas. > > > >> Shayan Doust > >> > >> > >> -------- Forwarded Message -------- > >> Subject: Re: [MoM] Re: fast: Add further dependencies to enable chroot / > >> cowbuilder to build > >> Resent-Date: Sat, 17 Aug 2019 13:16:24 +0000 (UTC) > >> Resent-From: debian-med@lists.debian.org > >> Date: Sat, 17 Aug 2019 14:16:05 +0100 > >> From: Shayan Doust <he...@shayandoust.me> > >> To: debian-med@lists.debian.org > >> > >> Hello Andreas, > >> > >> Many thanks for taking the time to reply. > >> > >> Just a few side comments for whenever you next have the free time to > >> reply :). > >> > >>> I had no time to check the packaging. In any case I think if this is > >>> a library package we usually ship libfast-dev (with header files and > >>> static lib (*.a file(s) )), a dynamic library package libfastSOVERSION > >>> and the executable in a fast package. > >> > >> I retained the original name as the package name "fast" and not > >> "libfast". Maybe I should change this. Initially I was unsure as fast > >> stands to framework and was unsure as to this relationship with a library. > >> > >> CMake only generates FAST as a shared object / *.so. I assume this is > >> just what upstream wanted. Referring to deb policy 8.3, I don't see this > >> as mandatory. If it is, maybe I'd need to use some tool or modify cmake > >> to output *.a. Fast did however generate example binaries to which I > >> split this off into fast-examples to install under /usr/lib/fast. > >> > >> There is no soversion when doing an objdump and grepping the SONAME from > >> the generated *.so file. Does this therefore mean a soversion of simply > >> 0 or does this now reflect upstream version. I think it's simply a > >> mistake to simply move libFAST.so into /usr/lib as this doesn't have a > >> soversion and has to be a symlink instead. > >> > >> I may have picked a fairly time consuming and confusing package until I > >> wrap my head around how a library / "framework" should be packaged. > >> > >> Best Regards, > >> Shayan Doust > >> > >> On 17/08/2019 10:17, Andreas Tille wrote: > >>> Hi Shayan, > >>> > >>> I've found some spare minutes for a more explicit answer. This week I > >>> was pretty busy with real life (nursing my two grandsons is pretty much > >>> a full time job :-P). > >>> > >>> On Wed, Aug 14, 2019 at 04:49:00PM +0100, Shayan Doust wrote: > >>>> Hello, > >>>> > >>>> So I contacted upstream regarding the failed test binary generation and > >>>> they've acknowledged and fixed it. A query regarding test data needed > >>>> for autopkgtest. As you said to avoid git or any downloading tools > >>>> (curl, wget, ...) as a dependency, > >>> > >>> Its not a matter of trying to avoid some of these tools. Per policy a > >>> package needs to build on a machine that's disconnected from the > >>> internet. So it will just not work technically to download anything. > >>> Its the same with autopkgtests. So we need to provide everything we > >>> need either as Debian package or inside the source tree. > >>> > >>>> how can I add the test datas to > >>>> autopkgtest. The test data is zipped and is just over 2 GB large, so I > >>>> didn't think patching this in would be sensible. The test data are to be > >>>> downloaded from https://folk.idi.ntnu.no/smistad/FAST_Test_Data.zip > >>> > >>> I think 2GB data are to much to just move it to the debian/ dir. So the > >>> best idea would be to provide the test data in a separate package for > >>> instance fast-data (or fast-test-data / fast-examples). > >>> > >>>> Additionally, I've got another query regarding opencl. Upstream have > >>>> their own modified version of the CL headers. Using diff, the only > >>>> change they have done is add two *.hpp files into the CL header > >>>> directory in /usr/include. Is it sensible to ever have opencl as a > >>>> prerequisite / package dependency and then move over the two missing > >>>> files into the CL directory when the user installs the fast package or > >>>> should this sort of modification to external packages be avoided at all > >>>> costs. I assume the other way would just be to have the fast opencl > >>>> headers inside /usr/include/FAST and then patch all the fast headers to > >>>> use the fast opencl headers in the new directory. CMake also generated > >>>> some opencl *.cl files in a directory called "kernel" so I am not sure > >>>> as to what I should do with this directory and its significance to FAST. > >>> > >>> I agree that having a full copy of OpenCL just to ship two extra files > >>> makes no sense. I see several options to consider: > >>> > >>> 1. May be it makes sense to forward these two files to OpenCL upstream. > >>> In any case it might make sense to talk to fast upstream / opencl > >>> Debian maintainers. > >>> > >>> You proposed yourself which does not involve others and thus is a faster > >>> solution for the moment > >>> > >>> 2. Move these missing files inside a libfast-dev package and feed > >>> it into the opencl headers. I admit while this would work I have > >>> a bad gut feeling about this. > >>> > >>> 3. Patch the files and ship the two additional files somewhere in > >>> /usr/include/fast > >>> > >>> I admit I prefer option 3. as a temporaty means until may be 1. can > >>> be implemented. > >>> > >>>> Looks like everything else is going fine. With this being the first > >>>> library I've packaged I do expect some mistakes but luckily they won't > >>>> be replicated within the next library I package :). > >>> > >>> I had no time to check the packaging. In any case I think if this is > >>> a library package we usually ship libfast-dev (with header files and > >>> static lib (*.a file(s) )), a dynamic library package libfastSOVERSION > >>> and the executable in a fast package. > >>> > >>> I have no time to verify whether these hints might make sense in this > >>> actual case. > >>> > >>> Kind regards > >>> > >>> Andreas. > >>> > >>>> On 11/08/2019 21:49, Shayan Doust wrote: > >>>>> Hi Andreas, > >>>>> > >>>>>> I'm occupied by real life until next weekend - so my response time > >>>>>> is way longer than usual. > >>>>> > >>>>> Not a worry at all & thanks for the needed information! > >>>>> > >>>>>> May be you can ask on debian-ment...@lists.debian.org meanwhile. > >>>>> > >>>>> As this is 3.0.0rc1 I will probably try out 3.0.0rc3 and then ask just > >>>>> in case this was some upstream issue. > >>>>> > >>>>> Best regards, > >>>>> Shayan Doust > >>>>> > >>>>> On 11/08/2019 21:44, Andreas Tille wrote: > >>>>>> Hi Shayan, > >>>>>> > >>>>>> I'm occupied by real life until next weekend - so my response time > >>>>>> is way longer than usual. > >>>>>> > >>>>>> On Sun, Aug 11, 2019 at 01:25:22AM +0100, Shayan Doust wrote: > >>>>>>> Hello Andreas, > >>>>>>> > >>>>>>> A few things changed since the previous email. I found a way of > >>>>>>> getting > >>>>>>> the dependencies via another chroot environment and now the package > >>>>>>> builds in cowbuilder with no troubles. My work routine usually goes > >>>>>>> along the lines of getting stuck on something for a couple of hours, > >>>>>>> emailing here on the mailing list then 30 mins later somehow managing > >>>>>>> to > >>>>>>> fix whatever issue I was stuck on :). > >>>>>> > >>>>>> That's not very different to what happened quite frequently to me. ;-) > >>>>>> > >>>>>>> I am having some issues with moving libFAST.so. I am not sure if I > >>>>>>> should simply use mv or use d-shlibmove. d-shlibmove just throws an > >>>>>>> error with regards to dependencies not existing so if I am meant to > >>>>>>> use > >>>>>>> d-shlibmove, please have a look at this in fast. > >>>>>> > >>>>>> I personally like to use d-shlibmove since it prevents you from making > >>>>>> several mistakes in library packaging. However, since I habe no time > >>>>>> to provide technical help this week its fine if you find any solution. > >>>>>> Usually d-shlibmove turns out a bit tricky. If something is missing > >>>>>> you can try '--override' as for instance in the package libdisorder. > >>>>>> > >>>>>>> Lintian is reporting package-name-doesnt-match-sonames. I believe this > >>>>>>> is where I have to rename "fast" to "libFAST" for the package name. I > >>>>>>> am > >>>>>>> also getting shlib-without-versioned-soname and I am unsure as to how > >>>>>>> this is rectified. > >>>>>> > >>>>>> I usually ignore these lintian issues when its not an actual library > >>>>>> package. > >>>>>> > >>>>>>> Compilation of the test binaries fail and I am even unable to build > >>>>>>> these in an isolated system just using cmake so I assume this is some > >>>>>>> sort of an upstream bug or even an incomplete wiki page with some > >>>>>>> dependency not documented. I'll figure out something for this as > >>>>>>> usual. > >>>>>>> Luckily all other informational lintian outputs can simply be fixed by > >>>>>>> removing the unneeded directories like fonts. I can't think of > >>>>>>> anything > >>>>>>> else to write at this time of night. > >>>>>> > >>>>>> May be you can ask on debian-ment...@lists.debian.org meanwhile. > >>>>>> > >>>>>>> Thanks for your time & best regards, > >>>>>> > >>>>>> Good luck > >>>>>> > >>>>>> Andreas. > >>>>>> > >>>>> > >>>> > >>> > >>> > >>> > >>> > >> > >> > >> > > > > > > > > > -- http://fam-tille.de