As background: for reasons which I could explain but would probably take a lot of going into and/or go off on a lot of tangents that wouldn't help me reach my actual goal, I'm trying to build an older version of the firefox-esr package in such a way that the resulting binary packages have a different name. (The short version is that I need to install that version in an environment where a package I cannot afford to change or remove has dependencies which would force removing any package named firefox-esr.)
I have the source package, and with a lot of digging and tweaking and so forth have gotten it to build unmodified -and then to build again with the changes that are the reason why I want to do this in the first place, aside from the package name change. (Yes, these changes are designed to fix the problems that would result from having this version installed with that other package.) But I'm now finding myself utterly stumped as to where and how the binary-package names are defined. (There are a *lot* of them for this source package - firefox, firefox-esr, iceweasel, the i18n variants of at least one and I think multiple of the above for each of a surprisingly large number of languages, and possibly some I've missed.) In debian/control.in (which builds debian/control, which is where the package stanzas that define what binary packages will be built exist), the template binary-package stanza represents the binary-package name with the string '@browser@'. I have searched the source (at least inside the debian/ directory, and IIRC at one point through the entire broader Firefox source tree) for various variants of this, and have so far been entirely unable to figure out where it comes from. It appears to trace back through multiple other variable names, possibly building the final value by concatenating two of them together at some point, and I have had no luck in finding out where those variable names are ultimately *set* to their values. I've pulled out of that rabbit hole and gone back to an earlier stage of the process: trying to analyze the variable itself, in hopes that I had traced it wrong, and that by doing thing over I can find another avenue which will turn out to be more fruitful. However, in doing so I have run into a snag which I previously skipped over and ignored: I don't actually know what the @variable@ syntax means/does, or what parses it. It's not Makefile syntax, as far as I've been able to determine. I haven't thus far found any documentation for debian/control.in at all; my searches are leading me only to documentation for debian/control, which doesn't mention any .in file as far as I've found. Can anyone advise me as to at least where I need to look to find out about this syntax and how to understand it? Advice about how to actually handle this dense and complicated control file (and its input control.in) properly, rather than in whatever hackish way I might otherwise come up with, would be even more appreciated. -- The Wanderer The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. -- George Bernard Shaw
signature.asc
Description: OpenPGP digital signature