threads / discuss / 2643

Question Building Deb Packages

Subject: Question Building Deb Packages

## tl;dr

2 messages between Nov 22, 2005 and Nov 22, 2005.

replies: 1people: 2as markdown or json

Jon Loeliger· Nov 22, 2005, 02:53 UTC · lore
Guys,

So, a long and twisty path (all alike) later, I have a new desktop box with Ubuntu on it. So what.

It didn't have git on it at all, the proper git package wasn't available directly, and I didn't know the location of an apt source for one off the top of my head. So, first principles.

First, for the record, after you install ubuntu 5.10, you have to install a whole bunch of normal stuff, like, a compiler. When you get done with that, I also had to apt-get install some form of these:

    linux-kernel-headers
    libc6-dev
    libssl-dev
    libcurl3-dev
    libexpat-dev
    openssl
    zlib1g-dev
    asciidoc
    xmlto
    fakeroot
The control file lists these:
    Build-Depends-Indep: libz-dev, libssl-dev,
                    libcurl3-dev|libcurl3-gnutls-dev|libcurl3-openssl-dev,
		    asciidoc (>= 7), xmlto, debhelper (>= 4.0.0),
		    bc, libexpat-dev

So, that is in pretty-good agreement. The last 3 in my list were for "doc" and "deb" make targets, of course.

Second, I then decided to actually make the debian package and attempt to install it from the 99.9j tarball directly and then add that package to my system. No dice.

It _appears_ that the "deb" make target requires it to be done in an actual git repository. This struck me as odd, as I _think_ I have done an obvious progression:

    - I don't have git, but want it
    - I want to build it from a source drop, 0.99.9j
    - Grab tarball, unpack, build it
    - Build debian target
    - Install just-built deb package

Later, of course, I can use that 'official' installation to actually grab new (git) repositories and all. But I have to bootstrap the mess, and I want to do that in a "controlled" way. Namely, through the debian package target...

Did I get confused?

Thanks, jdl

    jdl@ubuntu:/usr/src/git-0.99.9j$ make prefix=/usr
    make -C templates
    make[1]: Entering directory `/usr/src/git-0.99.9j/templates'
    : no custom templates yet
    make[1]: Leaving directory `/usr/src/git-0.99.9j/templates'
    jdl@ubuntu:/usr/src/git-0.99.9j$ make prefix=/usr deb
    ./git-tar-tree HEAD git-0.99.9j > git-0.99.9j.tar
    usage: git-tar-tree <key> [basedir]
    make: *** [dist] Error 129
    jdl@ubuntu:/usr/src/git-0.99.9j$ ls .git*
    .gitignore
Junio C Hamano· Nov 22, 2005, 05:01 UTC · re: Jon Loeliger · lore

Re: Question Building Deb Packages

Jon Loeliger <jdl@freescale.com> writes:
> It _appears_ that the "deb" make target requires it to be
> done in an actual git repository.
I think we could cheat:
    $ tar zxf original-tarball-of-0.99.9j.tar.gz
    $ cd there
    $ fakeroot debian/rules binary

But you are right; "make deb" at the toplevel would not work well on a virgin machine, because it uses git-tar-tree to do the tarball construction; we inherited this braindamage from RPM building procedure. So if you do not want to cheat:

    $ tar zxf original-tarball-of-0.99.9j.tar.gz
    $ cd there
    $ make install ;# to install in $HOME/bin
    $ cd ..
    $ git clone git://kernel.org/pub/scm/git/git.git/
    $ git checkout -b build v0.99.9j
    $ make deb
Then install the resulting deb and get rid of $HOME/bin/git*.

← back to recent threads