All of lore.kernel.org
 help / color / mirror / Atom feed
From: "David A. Wheeler" <dwheeler@dwheeler.com>
To: "Randy.Dunlap" <rddunlap@osdl.org>
Cc: jschopp@austin.ibm.com, git@vger.kernel.org
Subject: Porting to old zlib (deflateBound) & old mktemp (e.g., Red Hat Linux 9)
Date: Thu, 21 Apr 2005 19:27:57 -0400	[thread overview]
Message-ID: <426836FD.8070708@dwheeler.com> (raw)
In-Reply-To: <20050421102552.544c70fd.rddunlap@osdl.org>

On Thu, 21 Apr 2005 12:19:32 -0500 Joel Schopp wrote:

>| I downloaded git-pasky 0.6.2.  I cannot compile it because my zlib 
>| version is 1.1.4 and git-pasky relies on function deflateBound() which 
>| wasn't introduced until zlib version 1.2.x  Is there a patch out there 
>| to work around this and maybe conditionally compile based on the zlib 
>| version?
>  
>
Here's a quick (read: nasty, dreadful) hack to port git
to older systems like Red Hat Linux 9 which have old versions
of zlib & mktemp. Someone who actually spent two seconds
on this can no doubt give you a better solution, but it "worked for me".

Edit sha1_file.c, and change the line:
 size = deflateBound(&stream, len);
to
 size = len + 1024; /* 1024=emergency extra space */
The "deflateBound" call just finds out the maximum amount of allocation 
space.
The documentation says that "deflateBound() may return a
conservative value that may be larger than /sourceLen/" in certain cases,
which worried me. So to be safe I just added a big pile of excess space 
to "len";
I suspect that "size = len" is sufficient but I didn't investigate it.

If you're trying to get this to work on Red Hat Linux 9, you'll
have another problem too: old versions of "mktemp"
don't support the "-t" option. Other old distributions will
have the same problem.  To find these cases, do:
 grep "mktemp.*-t" *
and edit all the files to remove the "-t" option from mktemp.
That's the bare minimum to make it work; a much
cleaner solution would to specify the tempdir, e.g.,:
 mktemp ${TMPDIR:-/tmp/}gitci.XXXXX
or even more portably, write the shell code to set TMPDIR to "/tmp"
locally if it's not set, then use $TMPDIR everywhere.

Not a good final solution, but enough to get started in the interim.
In long term, this should be made more portable, but it's
only ~2 weeks old after all.  Some people are trying to fly this plane
to transport a buffalo herd, while others are working to attach the 
wings :-).

--- David A. Wheeler


      reply	other threads:[~2005-04-21 23:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-21 17:19 zlib version, list archives Joel Schopp
2005-04-21 17:25 ` Randy.Dunlap
2005-04-21 23:27   ` David A. Wheeler [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=426836FD.8070708@dwheeler.com \
    --to=dwheeler@dwheeler.com \
    --cc=git@vger.kernel.org \
    --cc=jschopp@austin.ibm.com \
    --cc=rddunlap@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.