{"thread":{"id":"5076","subject":"[PATCH 0/10] LLP - the Legacy Linux Port.","startedAt":"2006-08-02T01:03:09Z","lastAt":"2006-08-02T01:03:09Z","messageCount":1,"participants":["Ramsay Jones"],"isPatch":true,"patchVersion":1,"patchTotal":10},"messages":[{"id":"24533","messageId":"00a101c6b5cf$6bea1b00$c47eedc1@ramsay1.demon.co.uk","threadId":"5076","inReplyTo":null,"subject":"[PATCH 0/10] LLP - the Legacy Linux Port.","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsay1.demon.co.uk","sentAt":"2006-08-02T01:03:09Z","receivedAt":"2006-08-02T01:03:09Z","isPatch":true,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"Hi all,\n\nFor the last few weeks, I have been considering making an active\ncontribution to the git project (rather than just lurking on the list).\nHowever, I've been putting it off because I need to upgrade my\nlaptop. My current laptop is somewhat old (7/8 years) and not a very\ngood development machine. (234MHz mobile Pentium, 64MB RAM, 3GB disk)\nIn my current configuration, I triple-boot win95, winNT4 and Mandrake\nLinux 7.0 (2.2.14-15mdk, Tue Jan 4 22:24:20 CET 2000). As you can\nimagine, disk space is always a problem and the dev tools are all\nquite out of date. I need win95 to access the internet, since neither\nwinNT nor Linux can drive the win-modem.\n\nHaving said that, I've been trying to upgrade my laptop since before\nChristmas ...  So, just for a laugh, and to start to get to know the\ncode, I instigated the LLP (Legacy Linux Port!). I'm happy to say\nthat, despite the OS and dev tools being six years old, I have the\ncore of git (mostly) running.\n\nAt first, I did not intend to send patches to the project, since this\nwas just a bit of fun and a learning experience while waiting for my\nnew laptop. On reflection, however, most of the patches actually have\nlittle to do with the legacy aspects of the tools/OS and are equally\nrelevant to more up-to-date setups. Naturally, some of the patches\nare a direct result of old tools, and are included simply to document\nthe complete solution. (someone else may find it useful).\n\nFirst, some version numbers for my tools:\n\n  - gcc 2.95.2\n  - glibc 2.1\n  - perl 5.005_03\n  - Tcl/Tk 8.0\n\nand my config.mak file:\n\n-- >8 --\nMOZILLA_SHA1=1\nNO_OPENSSL=1\nNO_CURL=1\nNO_EXPAT=1\nNO_STRLCPY=1\nNO_IPV6=1\nNO_PYTHON=1\nNO_C99_FORMAT=1\nALL_CFLAGS+= -Werror\n-- 8< --\n\nAs I don't have python installed, this implies no recursive merge.\nAlso, since I don't have asciidoc, I downloaded the documentation\ntar-balls; so thank you for providing them! (If memory serves, asciidoc\nis written in python ...).\n\nI started by downloading the version 1.4.1 tarball: git-1_4_1_tar.gz\n\nThe first problem I had, was that the zlib headers were not installed.\nIn order to solve this, I built and installed zlib-1.1.4 from source.\n(I had an old Linux From Scratch CD handy). I note that the INSTALL\nfile did not mention any minimum version numbers, so I can confirm\nthat version 1.1.4 seems to work fine.\n\nCompiling and building was not too difficult, see the patches (#4-9)\nfor the details. When running the test suite, however, many of the\ntests failed due to the perl scripts failing to \"compile\".\n\nIndeed, this was the biggest problem and required \"downgrading\" some\nof the perl scripts to work with perl 5.5. I only fixed those scripts\ncalled from the tests or that I called directly. Again, INSTALL does\nnot mention a minimum version number for perl, but I note that\ngit-relink.perl has a \"use 5.006;\". (see patch #10)\n\nWhilst fixing the perl scripts, I noted a problem with git-clone and\nwith the annotate test script itself. (see patches #1,2). After fixing\nthese problems, I had a git which passed all the tests.\n\nInstalling git, I then noted a problem with the templates install.\n(see patch #3 for the fix).\n\nWith a working git, I now created a git repository with the original\ncontents of the git tar-ball. I was now able to re-implement the\nchanges using git and to produce the patches in this series.\n\nUnfortunately, gitk does not work with Tcl/Tk 8.0. The first problem\nwas a syntax error caused by the 'ne' operator. I did a global\nsearch/replace of ' ne ' with ' != ' to overcome this problem.\nThe next problem was caused by invalid command name \"encoding\" on\nline 5557. I deleted the call to encoding, replacing it with an empty\nstring, just to get past this. It then failed with 'invalid command\nname \"panedwindow\"' (at line 429). At this point, I gave up!\n\nI would have liked to get gitk working, but my Tcl/Tk is a bit rusty.\nAgain INSTALL does not mention a minimum version for Tcl/Tk, but it\nis obviously greater than 8.0!\n\nThe patch series is as follows:\n\n[PATCH 1/10] Ensure git-clone exits with error if perl script fails.\n[PATCH 2/10] Fix annotate test script; notice when git-annotate fails.\n[PATCH 3/10] Fix installation of templates on ancient systems.\n[PATCH 4/10] New tests and en-passant modifications to mktag.\n[PATCH 5/10] Add NO_C99_FORMAT to support older compilers.\n[PATCH 6/10] Fix header breakage with _XOPEN_SOURCE.\n[PATCH 7/10] Fix header breakage due to redefining PATH_MAX.\n[PATCH 8/10] Fix some minor warnings to allow -Werror.\n[PATCH 9/10] Remove cmd_usage() routine and re-organize the help/usage code.\n[PATCH 10/10] Fix perl scripts to work with version 5.005_03.\n\nI hope you will consider applying patches 1-9, but patch 10 is only\nincluded for completeness.\n\nNote that patch #5 could be much simpler; I felt the need to provide\na general solution to the problem. However, the simpler solution is\nto eliminate the use of the C99 printf size specifiers; it's not\nthat difficult.\n\nAlso, since I have to go via win95 and outlook, the mbox files\nproduced by git-format-patch have been sent as attachments.\n(I renamed them to p0001.txt, p0002.txt, etc. also)\n\nSome other random notes:\n\n  - Since I can't access the internet from Linux, I am unable to\n    clone the actual git repository; so the commit/tree IDs in the\n    patches bear no relation to commit IDs in the official repo.\n  - I don't quite understand the classification scheme used to\n    name the tests, so you may want to re-name the new test in\n    patch #4 (t3800-mktag.sh) to something more appropriate.\n  - I don't know of any established location for html documentation,\n    but I used, essentially,  $(prefix)/doc/git-1.4.1/html\n  - For some git commands that have more than one \"pattern\" of\n    invocation (e.g. git-am, git-branch) the man pages were correctly\n    formatted, each pattern on a separate line, whereas the html page\n    shows them all on one line.\n\nI hope you find this useful.\n\nRamsay\n"}]}