[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

debian/rules @variable@ syntax



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

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: