[00:05] i earlier looked at http://packaging.ubuntu.com/html/packaging-new-software.html and it help. [00:07] yeah, although i'd ignore the bzr bits :) [00:07] Im looking at https://anonscm.debian.org/cgit/users/cjwatson/libpipeline.git/tree/debian/control and could not undertand "Package: libpipeline1" , why is it required? i have two things, "libbox0-dev" to install headers, "libbox0" to install header, why the third one/ [00:07] kuldeep: one is a source package name (this source package) [00:07] that's Source: .... [00:07] in my case, that would become "libbox01" isnt it. [00:07] the other two are binary packages [00:08] which are Package: ... [00:08] kuldeep: so you probably need at least one more binary package in your control file for the library itself [00:08] kuldeep: probably called libbox0 [00:09] kuldeep: well, i woudl say, if i had to geuss, your source package is actually 'libbox' not 'libbox0' as it is now [00:09] instead of "Package: libpipeline1" can i just keep "Package: libpipeline" [00:09] iiuc, that indicates so versioning [00:09] nacc, "box0" the name, brand whatever you can think of it [00:10] and libbox0 is now at v0.3.0 [00:10] kuldeep: ok, you can name it however you want, and source package names can be the same as binary package names [00:10] kuldeep: *so* versioning [00:10] shared object [00:10] https://autotools.io/libtool/version.html may help [00:11] nacc, yes, the shared library follow the INTERFACE standard. (version age like stuff) [00:16] update the paste: https://gist.github.com/kuldeepdhaka/79f3b0b59e3d504abe73000909b958a4 [00:17] nacc, cjwatson (heavily borrowed from cjwatson libpipeline) [00:18] also, directly used libpipeline1.install and libpipeline-dev.install [00:20] update: Added all file i have [00:24] possibly just need to figure out what need to be in "rules" file [00:24] :) [00:27] kuldeep: do you currently use a Makefile in your upstream? [00:27] What is the SONAME of your library? [00:28] The runtime library package should probably in fact be libbox0-1 or something like that, reflecting the SONAME. [00:28] cjwatson: good point, i didn't realize earlier that 'box0' was part of the product name [00:28] And you should have a symbols file declaring its exported interfaces. [00:29] libbox0.so.2.0.0 <--- master code, latest [00:29] Then libbox0-2 [00:31] The symbols is mildly tedious to craft the first time, but if your rules file has an override_dh_makeshlibs target something like libpipeline's (with -c2 or higher, preferably -c4) then the first build should fail with output that gives you a rough idea of the initial contents. In future the symbols file makes it much easier for the system to automatically generate appropriate library ... [00:31] ... dependencies, and warn you when you've broken ABI without realising it. [00:31] The symbols -> The symbols file [00:44] nacc, uses CMake which generate the Makefile. [00:44] will resume work on waking up. [00:45] thank you, GN. === chihchun_afk is now known as chihchun === JanC_ is now known as JanC === chihchun is now known as chihchun_afk === chihchun_afk is now known as chihchun === pleia2_ is now known as pleia2 [14:55] im using "deb-version {debupstream:master}+{revno:master}" for recipe. and my changelog contain "libbox0 (0.3.0-1) unstable; urgency=medium". so i guess this will generate: 0.3+4264 any input on any problem with it? [14:55] s/0.3+4264/0.3.0+4264/ [14:58] is my usage of debupstream:master and revno:master correct? (use the master branch to get these variables)? === chihchun is now known as chihchun_afk [15:45] Im unable to git push to my repo https://paste.debian.net/hidden/91ec39e1/ https://code.launchpad.net/libbox0 [project] and https://launchpad.net/~kuldeepdhaka [account] [15:46] do i need to do something special to push a new branch? (my first interaction with git server) [15:48] i cloned, made a new branch, commit the changes and now while push the branch it having problem. i used `git clone git://git.launchpad.net/libbox0` [16:08] is it due to because i have imported the git code from somewhere else,i cannot push any changes to it? [16:49] kuldeep: if I look at https://code.launchpad.net/libbox0 I see a recently updated debian branch [16:50] oh kuldeep I think I see the problem [16:50] You cloned using git:// which is a read-only URI [16:50] I am trying to establish a session from a build server to launchpad upload a release and I am in a text browser [16:50] I think you might need to use git+ssh://git.launchpad.net/libbox0 [16:50] sigmavirus, i uploaded to the gitlab repo, then i told lp to pull the changes. [16:51] I can't complete the login sequence because of this error : Launchpad requires a REFERER header to perform this action. [16:51] the browser is lynx [16:52] sigmavirus, i tried but it had problem. minor change: i had to use "git+ssh://kuldeepdhaka@git.launchpad.net/libbox0" (to pull) and then for push same problem. [16:53] kuldeep: odd. I don't use launchpad as a git repository, so I'm not sure why you're running into your particular issue [17:05] kuldeep: you can't push to repositories that are imported from somewhere else [17:06] kuldeep: either push to a different repository in the same project on Launchpad, or (simpler if you can) just push the branch to gitlab [17:06] kuldeep: though sigmavirus is also correct that you can't push over git:// [17:08] kuldeep: if you've pushed to gitlab already, then you don't need to tell LP to pull the changes, it'll do so automatically. If you're impatient you can go to https://code.launchpad.net/~kuldeepdhaka/libbox0/+git/libbox0 and press "Import Now" [17:41] cjwatson, that what i did. [17:42] kuldeep: afaict, the idea behind the git-to-git imports is that you only push to gitlab, launchpad will notice and since you have a recipe, will build (presuming you've marked it as automatic) [17:44] that's right. we don't let you push to imported repositories because how would we resolve the case of changes on both sides? [17:44] pretty reasonable behaviour, i also concluded that. [17:45] cjwatson: makes total sense to me :) [17:45] cjwatson, hum [17:46] though this import behaviour could have been per branch, but more work and very specific usecase. [17:47] readonly clone could have been a good description. something like that tell people what will happen if the code is "imported". [17:48] feel free to file a bug [17:48] I'm very unlikely to remember an IRC conversation from now until after the new year :) [17:48] heh [17:49] kuldeep: it is documented at: https://help.launchpad.net/Code/Git [17:49] "You won't be able to push directly to the imported repository" [17:50] yeah, but it's reasonable to suggest that it should be more self-documenting [17:50] never hurts :) [17:51] cjwatson: based upon context, i assume i should defer bringing up how we want (if we do) to tie the importer repositories to launchpad -- specifically for questions like: 1) where should uploaders be able to upload to (we want to keep the importer trees read-only so that they only reflect the publishing history, but they can add an 'upload' parent which is indicative of what the uploader says they pushed) [17:51] that is, defer to the new year :) [17:53] I'm not sure I agree with that decision, but I also don't want to get into it now :) [17:55] cjwatson: fair enough :) [17:55] cjwatson: but i generally want to have a launchpad discussion on it, so we can figure all that out [18:02] https://bugs.launchpad.net/launchpad/+bug/1651826 [18:02] Ubuntu bug 1651826 in Launchpad itself "Mention on the git code import page that "You won't be able to push directly to the imported repository"" [Undecided,New] [18:03] nacc, :) [18:04] kuldeep: sorry, did you mean: https://help.launchpad.net/Code/Git ? [18:04] kuldeep: because it is there already [18:05] nacc, its on doc page i know. but such a important peice of information should probably be on the ui directly. (imo) [18:06] kuldeep: oh ok, i'd clarify in the bug where you mean then [18:06] kuldeep: as i don't know what by reading it :) [18:07] it's always fine to give an example URL [18:07] so please do that [18:07] (or if descriptive error can be printed when someone try to push some code to server on imported repo - it would be better. because "permission denied" was very vauge for me) [18:08] i assume the error was a generic git protocol return code (and permission denied was presumably accurate) [18:08] it could have been because im trying to push to some one else repo. [18:08] that should be a separate bug [18:08] again, with specifics [18:10] in my working-dir/ libbox0_0.3.0+62+62.tar.xz has been generated "by deb-version {debupstream}+{revno}" where my changelog has "libbox0 (0.3.0-1) unstable; urgency=medium" [18:12] (build locally by `git-build-recipe --allow-fallback-to-native libbox0.recipe working-dir`) [18:12] could not understand "62+62". shouldnt that have been "62" only? [18:15] libbox0.recipe: "# git-build-recipe format 0.4 deb-version {debupstream}+{revno} \n lp:libbox0 debian" [18:18] it seems like it should have been 0.3.0-62 (depending on the revision number being 62) [18:19] kuldeep: "For recipe versions 0.4 and newer, you must specify the name of the branch (e.g. {debupstream-base:packaging})." [18:19] `git rev-list --count HEAD` return 62 (master) [18:20] kuldeep: so i think you want {debupstream:} [18:21] gitbuildrecipe.deb_version.NotFullyExpanded: deb-version not fully expanded: {debupstream:master}+62. Valid substitutions in recipe format 0.4 are: ['{time}', '{date}', '{git-commit}', '{latest-tag}', '{revdate}', '{revtime}', '{debversion}', '{debupstream-base}', '{debupstream}'] [18:22] ^^ deb-version {debupstream:master}+{revno} [18:22] gitbuildrecipe.deb_version.NotFullyExpanded: deb-version not fully expanded: {debupstream:master}+{revno:master}. Valid substitutions in recipe format 0.4 are: ..... [18:22] ^^ deb-version {debupstream:master}+{revno:master} [18:22] interesting, maybe it only applies to bzr? [18:23] hrm, do you have a master branch? it seems liek the : syntax should work regardless? [18:23] nacc, i have two branch: master, debian. i uploaded debian some time back. [18:24] kuldeep: which one has the debian/changelog in it? [18:24] nacc, debian [18:24] kuldeep: then that's the branch you should refer to [18:24] "debversion, debupstream and debupstream-base require debian/changelog to exist in the given branch. " [18:25] not sure why it put 62 in, could be a bug, but it seems like you need to be very specific with the branches you use in your recipe [18:25] nacc, then which branch code will be compiled? debian or master? [18:26] currently BRANCH(debian) = BRANCH(master) + COMMIT(containing-debian-dir) [18:26] kuldeep: i think the code to compile depends entirely on your recipe [18:27] i think,i can solve the problem by making the COMMIT(containing-debian-dir) in master later on. [18:27] kuldeep: i htink you're looking for the nest-part or merge bits of the recipes [18:27] gitbuildrecipe.deb_version.NotFullyExpanded: deb-version not fully expanded: {debupstream:debian}+{revno:debian}. Valid substitutions in recipe format 0.4 are: ['{time} ...... [18:28] I'm having trouble logging into launchpad with a new account. Is this the place to ask for help, or is there a better location elsewhere? Thanks! [18:29] mquigley, please go on. [18:29] nacc, you can try my recipe: "# git-build-recipe format 0.4 deb-version {debupstream}+{revno} \n lp:libbox0 debian" if you like [18:30] kuldeep: i'm out of my depth now, maybe cjwatson or another LP admin has insight [18:30] oops "# git-build-recipe format 0.4 deb-version {debupstream:debian}+{revno:debian} \n lp:libbox0 debian" [18:30] kuldeep: will try locally [18:30] Thank you. I created a new account with Ubuntu One, but when I try to sign into launchpad.net it returns "Oops! Sorry, something just went wrong with Launchpad...(Error ID: OOPS-59334964f22deff950a2d2632cabf9fb)". It's quite possible I'm doing something wrong, but I've tried in a few browsers and a few different machines yesterday and today trying to eliminate causes on my end. [18:30] https://oops.canonical.com/?oopsid=OOPS-59334964f22deff950a2d2632cabf9fb [18:31] kuldeep: you probably don't just want to build from the debian branch. you want to pull the master branch and then merge the debian branch [18:31] dobey, BRANCH(debian) = BRANCH(master) + COMMIT(containing-debian-dir) [18:31] kuldeep: until you push new stuff onto master, yes [18:32] dobey, "until you push new stuff onto master, yes" what do you mean by that? [18:32] please elaborate. [18:32] kuldeep: hrm, i get a different error from `git-build-recipe` -- says it can't find an upstream tag [18:33] kuldeep: i mean, when you push changes to master, the debian branch doesn't automatically get them [18:33] kuldeep: http://paste.ubuntu.com/23665127/ [18:34] dobey, the debian branch is on launchpad, i press'd "Import Now" to force import. [18:34] kuldeep: what dobey is referring to is a general structure of your repository [18:34] kuldeep: as you push commits to master, your debian branch will be 'behind' master [18:34] kuldeep: so you are forcing yourself to rebase and push debian (forcibly as it won't be a fast-forward) each time [18:35] kuldeep: you can see the merge examples in the recipes documentation: https://help.launchpad.net/Packaging/SourceBuilds/Recipes [18:36] hmm, is there any documentation on git recipes? [18:36] dobey: it's in there too, afaict [18:36] although it's not 100% clear if everything about bzr recipes applies to git recipes :) [18:36] look like, while i check'd out the lp master branch, lp didnt fetch the latest master from gitlab, so in between there is a commit missing in debian branch. [18:36] lemme fix that first [18:37] nacc: yeah i see some "if you use git, do y" [18:37] dobey: yep [18:39] hmm, launchpad says "no recipes using this repository" [18:40] anyway [18:40] i think http://pastebin.ubuntu.com/23665168/ is actually what you want [18:45] ok, i pushed debian branch after rebasing against master.(the missing commit is now there) force pushed to gitlab server and imported the code to lp libbox0 page. [18:47] dobey, im using your recipe and got "Exception: Invalid deb-version: {debupstream:debian}+63: Invalid version string '{debupstream:debian}+63'" executed `git-build-recipe libbox0.recipe working-dir` [18:48] kuldeep: remove the :debian then (i didn't modify that from yours) [18:49] dobey, after removing the :debian, i got "git-build-recipe: error: Unable to find the upstream source. Import it as tag upstream/0.3.0+62 or build with --allow-fallback-to-native." [18:50] kuldeep: yeah, your version string is native, so build with --allow-fallback-to-native [18:50] (lp does build recipes with that option) [18:50] now it got "libbox0_0.3.0+62.tar.xz" when i passed --allow-fallback-to-native [18:50] *now i got [18:51] * kuldeep wonder the use of --allow-fallback-to-native [18:54] now "# git-build-recipe format 0.4 deb-version {debupstream}+{revno} \n lp:libbox0 debian" works. so i guess the problem was due to the missing commit that was left out due to sync between server and my failure to notice it. [18:58] that was undoubtedly not the problem [18:58] i have the package. libbox0_0.3.0+62.tar.xz :) [containing the source] [18:59] getting pbuilder :D [19:02] dobey, "that was undoubtedly not the problem" then? what was the problem? [19:03] dobey, nacc: yeah i see some "if you use git, do y" i wont mind understanding the joke. (if it is) :D [19:03] there is no joke [19:04] i don't know what the problem was exactly. probably the fact that you created a tarball from the recipe i gave you resulted in a success when you tried to then run your recipe, as now there was an "upstream source" [19:05] oh ok. atleast its gone now. [19:08] but the recipe i pastebinned is the one you want [19:08] at least, if you want launchpad to automatically build packages from your master branch [19:10] dobey, probably later, i will move the debian/ files to master branch. [19:12] not a requirement [19:12] but do whatever you want i guess [19:15] dobey, my reason of moving is: because i can easily forget to make changes to the changelog. also, until someone take the packaging work from me, i have to do the work. but i do see that number of dir are growing in my source root. [19:16] if its at one place, there is a heigher chance of remembering. [19:16] dobey, if you were me, will you have kept that file? [19:16] * kuldeep `pbuiler create` finished [19:17] you only really need to update debian/changelog for recipes if you want to bump the main upstream version [19:17] but sure [19:30] my library uses cmake for build. https://git.launchpad.net/libbox0/tree/debian/rules?h=debian problem is idk how to write a rule file that build code that uses cmake [19:31] i see https://anonscm.debian.org/cgit/users/rfrancoise/libpcap.git/tree (uses cmake) but could not understand how to reuse the rule file. [19:33] i just copied "dh_auto_configure -Skde -- -DBUILD_DEMO=OFF" assuming it may work for me. (removed the -Dvariable and placed mine) from here https://anonscm.debian.org/cgit/users/modax/amarok.git/tree/debian/rules [19:44] unless you need to pass specific options to cmake or something, the simplest rules file with just %: rule that runs "dh $@" will "just work" [19:45] i doubt you need the -Skde [19:47] hum, in think too. [19:47] https://anonscm.debian.org/cgit/users/rfrancoise/libpcap.git/tree/debian/rules#n26 im going to add this target too. lets see what will happen. probably related to symbol file as earlier mentioned. [19:48] kuldeep: again you don't *need* to override any targets unless you know you need to [19:49] i think, my code is a library, and `dh_makeshlibs -- -c4` is require for library. symbol checking/generation.... something like that [19:49] *my reason, my code [19:49] nacc, isnt it? [19:51] again, they are choosing to override the -c value (default is 1) [19:52] you don't need to override anything by default [19:52] right [19:52] The symbols is mildly tedious to craft the first time, but if your rules file has an override_dh_makeshlibs target something like libpipeline's (with -c2 or higher, preferably -c4) then the first build should fail with output that gives you a rough idea of the initial contents. In future the symbols file makes it much easier for the system to automatically generate appropriate library ... [19:53] i would just leave the symbols file out of your package for now [19:54] dobey, for simplicity (mine) or my package is 0.x (which are considered in very heavy development) or something else? [19:54] i doubt you're making any guarantee of abi stability yet, and you are packaging in a PPA, not trying to get it into the debian or ubuntu archives yet [19:55] just PPA atm. (i wont mind it get into debian or ubuntu :) [19:56] you are right, i cannot garantee abi atm. (fyi, i just broke abi compatibility with prev release :) [19:56] so, as dobey recommend - no symbol file for now. [19:57] and you're probably not bumping the soname whenever you break abi either [19:57] so yeah, simplest to just avoid the symbols file for now [19:58] im bumping current=2, age=0, revision=0 last afair was current=1 and age=0, revision=0 [19:59] dobey, https://git.launchpad.net/libbox0/tree/libbox0/CMakeLists.txt#n53 [20:01] ok [20:01] i added 1 to CURRENT. (though i keep forgetting that what is the format of current,age,revision - everytime i have to lookup on internet) [20:03] the library is in heavy development, so i would avoid any abi promises now. will just ignore symbol files for simplicity and till it dont make into actual debian or ubuntu. [20:04] dobey, make sense? [20:10] ok [20:24] i just got an idea, why not just provide just {rev}+{git-commit} i dont have to maintain anything at all. and these files can be external to the master. [20:24] (no symbol file will not be provided) [20:26] im adding "{rev}+" to tell package manager that the next package is newer than the last rev. (since {rev} is incremented as commit are added). or is it unnecessary? [20:27] you still have to maintain something [20:28] dobey, but not in every release. [20:28] and yes, you can append the git-commit or the revno launchpad assigns to the commit if you want [20:28] kuldeep: well, if you bump the SONAME in every release, yes, you have to rename the .install file and update the control file === elijah_ is now known as elijah [20:29] speak of which, you should probably have the install file to use libbox0*.so.2* instead of just *.so.* [20:29] dobey, it contain "usr/lib/*/libbox0*.so.*" so, it does the work automatically? [20:29] so it will fail to build if you bump the soname [20:29] kuldeep: right, but then the package name doesn't match the soname [20:29] which is wrong [20:31] i changed the package name "libbox0-2" to "libbox0". in future, when we get a proper maintainer - they can do the whole thing. (i still dont know alot of the debian standards) [20:31] dobey, "which is wrong" wrong in the sense that for future release it could cause problem? [20:32] please share your experience, i dont know anything about debian packaging. [20:32] yes, and that it doesn't comply with debian packaging standards [20:34] The reason for this is that it causes unnecessary upgrade problems. [20:34] dobey, i was un-aware of that. https://anonscm.debian.org/cgit/users/cjwatson/libpipeline.git/tree/debian/libpipeline1.install it contain "usr/lib/*/libpipeline*.so.*" [20:35] But I disagree with dobey regarding what the install file should say; I don't think that's a necessary change. [20:35] (When I say "it causes unnecessary upgrade problems", I'm referring to the binary package name. It should change any time the SONAME changes.) [20:35] yeah, i didn't say that the contents are wrong. i was just suggesting that having the soname inside the install file as well, makes it easier to know when you end up with a problem [20:35] I think that's busywork :) [20:36] because then if you change the library soname, and then forget to change the install file and package name, it will fail to build and tell you why [20:36] versus building anyway and giving you a broken upgrade :) [20:36] I prefer using a symbols file to tell me that. [20:36] That's what dh_makeshlibs -- -c4 does [20:37] * kuldeep is having hard time following cjwatson and dobey cross-communication. :) [20:37] But I agree that if you aren't bothering with a symbols file then maybe you need some other kind of guard [20:39] if i today keep "libbox0" as the binary package name and later get a full fledge maintainer, she/he can start rolling "libbox0-X" (where X is extracted from interface,age,rev). will user have problem upgrading from "libbox0" to "libbox0-X"? [20:39] Possibly, depending on how competent they are. [20:40] It's probably unavoidable for there to be some kind of upgrade problem there, unless it happens to coincide with a SONAME change. [20:40] So you really are storing up trouble for yourself. [20:41] (And it should not be extracted from interface,age,rev directly, but rather from the SONAME. Forget about the libtool stuff for this purpose, although it doesn't hurt to use it internally.) [20:42] cjwatson, "It's probably unavoidable for there to be some kind of upgrade problem there, unless it happens to coincide with a SONAME change." this sentence is still undigestable for me. can you make it a bit easier to digest? :) [20:43] Yes, the user may well have a problem upgrading from libbox0 to libbox0-X. Which is why it's a mistake for you to rename to libbox0. [20:44] If done carefully, it's possible, but it will involve temporarily deconfiguring any installed packages that depend on libbox0*, and it's easy to get wrong. [20:45] thats a good insight of the working. [20:47] cjwatson, i think i got your thoughts. libbox0 and libbox0-X will be installed for sometime in the transition. (or else, package manager will throw error that another package file is being overwritten) right? [20:48] if they have same SO version. if concidently, libbox0-X got a different SO version, then things will go fine smoothly. right? [20:49] If they ship overlapping files (as they will, if they have the same SONAME), then it is not possible to install them at the same time; there'll have to be a Conflicts, which makes it much more work for apt to resolve the upgrade. [20:49] I don't understand why you're trying so very hard to ignore the best-practice advice we've given you. [20:51] cjwatson, im trying to feed my curiosity/understanding of what would happen/process. [20:51] A very large fraction of the packaging guidelines is there because things go wrong if you do something else; it's basically an encoded version of "here's how not to repeat the mistakes of the past". [20:52] So it's best to follow them pretty carefully until you understand things well enough to vary from them. [20:52] hahahhaha nicely said. yes. [20:52] Hello [20:52] I have been biulding a package for an open-source project for quite a while [20:53] The problem is that I built my package and uploaded it with the wrong upstream tarball, and obviously build failed at Launchpad's servers [20:53] now I built with the correct upstream tarball but launchpad is refusing the new tarball, because it has different contents under the same name [20:53] what do I do? [20:53] You'll have to upload the correct tarball under a slightly different name. It's conventional to append e.g. +ds in this kind of case. [20:54] well, debuild fails if I rename the upstream tarball [20:54] So foo_1.0.0.orig.tar.xz -> foo_1.0.0+ds1.orig.tar.xz (and bump your changelog version from 1.0.0-1 to 1.0.0+ds1-1, etc.) [20:54] it will only fail if you haven't changed other things to suit [20:54] o [20:54] let me try [20:55] if you do it with the above scheme then you should be able to drop the +ds suffix at the next upstream release. [20:56] great. [20:57] I think this is gonna work, uploading [21:00] that worked D: [21:00] cjwatson: http://askubuntu.com/questions/862778/how-to-overwrite-a-previously-uploaded-malformed-upstream-tarball-in-launchpads You answer it or I do? [21:00] (It's my question) [21:01] I might as well. [21:01] okay :P [21:02] done [21:09] cjwatson, ok, im going to do libbox0-2. and i have to maintain proper versions. [21:10] then its just a matter of preference to provide a symbol file or not, will decide on it later. [21:11] Right, while a symbols file is best practice it's not necessary for correctness. [21:13] I'm getting timeouts whenever I try to change bug statuses [21:13] I can browse everything fine, though [21:13] kyrofa: Almost certainly the usual everything-stops-for-ten-minutes-while-PostgreSQL-changes-its-underwear thing. [21:13] Hahaha [21:14] cjwatson, alright, thanks for the heads up, I'll give it a breather [21:14] We're hoping that an upgrade in the new year will sort it out or at least give us something more to go on. [21:14] (It's some kind of maintenance that makes a trigger unable to create temporary tables) [21:20] cjwatson, just to confirm: in you package, libpipeline1.symbols "pipecmd_fchdir@Base 1.4.0" 1.4.0 is the package release version. ie that symbol was first introduced in libpipeline1_1.4.0####.deb right? [21:21] (making sure that i dont mix up SO version and semiver) [21:23] looking at changelog, it always has "upstream release" that at version. [21:23] yes, the version after each symbol is the package version it was introduced in [21:34] (building source using pbuilder) atleast compiled code. [21:35] Right, it turns into a >= dependency. [21:35] And in libpipeline I've never introduced symbols in anything other than a new upstream release. [21:35] https://paste.debian.net/903807/ build shared library and reached till make install. but then failed. idk why [21:36] (idk why it is installing at wrong path) [21:36] here is the my debian/ https://git.launchpad.net/libbox0/commit/?h=debian [21:36] That looks like you're missing .install files, or maybe missing some entries in them. [21:36] Doesn't look like it's installing to the wrong path. [21:37] i have libbox0-2.install and libbox0-dev.install [21:38] Oh, no, I see, missing multiarch directory. One moment. [21:40] I think you're probably hardcoding too many directories in your libbox0/CMakeLists.txt. I don't speak cmake very well. [21:41] But you're hardcoding the library destination to "lib" and the pkg-config destination to "lib/pkgconfig", which aren't correct for modern Debian/Ubuntu library packages - they're supposed to install to the multiarch library path, e.g. /usr/lib/x86_64-linux-gnu. That's passed in by the package build machinery and it usually works automatically if it's not overridden by the upstream build ... [21:41] ... system, which I think it must be here. [21:42] Also you need to remove usr/share/man/man3 from debian/libbox0-dev.install. [21:42] ok [21:42] need to -DCMAKE_INSTALL_LIBDIR="lib/${DEB_GNU_ARCH_TRIPLET}" or whatever the variable is [21:43] Not that one. But isn't some equivalent of that done automatically? [21:43] https://wiki.debian.org/Multiarch/Implementation#CMake [21:43] oh, well the CMakeLists.txt is broken further down too [21:43] Ah, right, only very modern debhelper. [21:44] Anyway that says that upstreams should use GNUInstallDirs. [21:44] also that too [21:44] https://git.launchpad.net/libbox0/tree/libbox0/CMakeLists.txt?h=debian#n135 [21:44] vs [21:44] https://git.launchpad.net/libbox0/tree/libbox0/CMakeLists.txt?h=debian#n176 [21:44] though [21:45] And then you probably do indeed need to pass -DCMAKE_INSTALL_LIBDIR="lib/$(DEB_HOST_MULTIARCH)" in a dh_auto_configure override [21:46] but nice that newer debhelper does it [21:47] * dobey wonders what probability of it being SRU to xenial is [21:47] about nil [21:47] I suspect [21:47] Anyway if you don't want to deal with this right now you could disable multiarch: drop the */ segments from the usr/lib/whatever lines in .install, and remove both occurrences of Multi-Arch: same from debian/control [21:48] Your users won't be able to do fancy things like coinstallation of the same library for different architectures, it may get in the way of cross-building etc., but you also may not care right now. [21:50] if both of you can tell me in a simpler language that i need to do in the CMake files and in debian/, i will be happy to fix anything that is less than recommended-level. [21:50] disable multiarch: drop the */ segments from the usr/lib/whatever lines in .install, and remove both occurrences of Multi-Arch: same from debian/control [21:50] that's as simple as I can make it [21:50] i do understand a bit that multi arch installation would be problem because of hard coding in cmake fikle [21:51] I can't give you simple language for what needs to be fixed in your cmake config to do the job properly [21:51] but you can do the job improperly here by disabling multiarch and it won't be terrible [21:51] use GNUInstallDirs and don't use hard-coded path names like "lib" and "bin", basically [21:52] to make multi-arch workable; otherwise just drop the multi-arch support as cjwatson said [21:54] ok, in my cmake code, i add "include(GNUInstallDirs)" and use the exported variable by the module instead of hardcoded strings. right? [21:55] looking at the provided examples [21:56] that seem simple. [22:11] question: https://anonscm.debian.org/cgit/debian-med/libdivsufsort.git/tree/debian/patches/0001-Fix-upstream-cmake-files-to-support-multi-arch.patch?id=78397139d346fb15d035f63f6a0ad8f239675afa has "set(CMAKE_INSTALL_INCLUDEDIR "include/${CMAKE_LIBRARY_ARCHITECTURE}")" but https://anonscm.debian.org/cgit/collab-maint/libsdsl.git/tree/debian/patches/0001-Patch-cmake-files.patch?id=8f0e9ba2bee3b1b5f3e90d7b0fd4325f5ccf44bf dont [22:13] https://cmake.org/cmake/help/v3.3/module/GNUInstallDirs.html seems like CMAKE_INSTALL_INCLUDEDIR is set by the package. [22:49] --- [22:50] im switching to "git-build-recipe format 0.4 deb-version {debupstream}" because the build result in "+ b0_aout_bitsize_speed_get@Base 0.3.0+65" not "- b0_aout_bitsize_speed_get@Base 0.3.0" (current symbols) [22:51] its adding "+65" at the end of line in symbol. [22:51] dobey, cjwatson ok? [22:52] (im revoing "+{revno}" because of which "+65" is being generated) [22:52] *removing [23:18] https://anonscm.debian.org/cgit/users/cjwatson/libpipeline.git/tree/debian/source/format uses "3.0 (quilt)" so i used that too, but pbuilder or git-recipe-build change that to "3.0 (native)" for me. [23:18] why? [23:18] cjwatson, any tip ^^ ? [23:22] dobey ^^^ :) [23:23] kuldeep: do you understand the difference between the two? [23:24] kuldeep: https://wiki.debian.org/Projects/DebSrc3.0 and `man dpkg-source` may help [23:24] nacc, idk the difference. [23:24] i shamelessly copied the file :) [23:26] nacc, i can choose any. any significat difference? [23:27] kuldeep: https://wiki.debian.org/DebianMentorsFaq#What_is_the_difference_between_a_native_Debian_package_and_a_non-native_package.3F [23:27] *if* your build is turning it into native, it's probably a mistake int he naming or versioning -- given that your package is not a debian-specific library (afaict) [23:29] nacc, git-recipe-build generated libbox0_0.3.0.tar.xz [23:29] Not quite. [23:29] bzr-builder and git-build-recipe are designed for daily builds, so they will convert a package from 3.0 (quilt) to 3.0 (native) if they can't find an orig tarball to use. [23:29] oh! [23:30] They attempt to obtain the orig tarball using pristine-tar on the git or bzr repository used in the build. If that fails, they'll transform it to native so the build can succeed. [23:31] relate to "--allow-fallback-to-native" argument? [23:32] Yes. [23:33] So it's harmless, but you might want to add pristine-tar metadata to the repository so you get a proper non-native build. [23:33] where did pbuilder put my resultant .deb file? [23:34] wgrant, ok, will look into it later. thanks for the input. [23:37] got it! /var/cache/pbuilder/result/ [23:56] my build is having a little failure. https://paste.debian.net/hidden/ed108325/ [23:57] i kept like https://anonscm.debian.org/cgit/users/cjwatson/libpipeline.git/tree/debian/libpipeline1.symbols#n1 "libpipeline.so.1 libpipeline1 #MINVER#" [23:57] but pbuilder is raising error and saying `libbox0.so.2.0.0 libbox0-2 #MINVER#` (see the paste for diff) [23:58] (im almost there :)