OLD: pakke To-Dos & Random Gibber OLD: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $Id: TODO.old,v 1.1 2003/03/12 19:49:11 richdawe Exp $ - Write info-format docs for DSM . Started, so i'll finish . Sync'd, just needs polishing. +++ONGOING - Use same ?_load_all() func for dsm, mft (.ver). . Later: Eh? What was I talking about? +++NEVER MIND - Issue warnings when any dsm, mft paths not found. +++DONE - Work out version number for manifest name? No, version file. +++DONE - Add querying of available packages to install? +++DONE - Rewrite manifest routines to allow listing of files from zip. Or should the filenames in the zip file just be listed? +++DONE, find manifest file - Make the version routines cope with leading zeros, e.g. in DJGPP 2.01 . How? 2.01 != 2.1. Need some kind of leading digit flag +++DONE, but needs doing to ver.c.+++COMPLETED - Fix bug in version file parsing (see rcs version). +++DONE - Put all sources into the src/ directory. +++DONE - Test with memory management system? . MSS installed - tell authors about mistake in docs about def log file name - msg.log not msg.cfg! - Should copy to /usr/local/include/ rather than /usr/local/include, because /usr/local/include may not exist. - Config Makefile rather than settings for CC, AR in Makefile & samples/Makefile? . Put note in docs about MSS. . netrc.c & unzip.c need to include common.h too! +++ DONE - LB suggests addition of 'host-os' DSM field. . GNU way, allow regexps. . -- - see autoconf files config.guess & config.sub. . 'host-os' -> 'platform' . Just need to add to pakke ;) . Should the platform be spec'd in the version? +++DONE - LB suggests addition of virtual packages. . OK, but how to dep check on required 'provides' fields? +++DONE - Produce DSM spec on the web from info docs => sync! +++DONE - libpakke for LB - make pakke and dsmcheck use it. . How to resolve problem with unzip? It's used by DSM code I think. => zlib req'd linking in too! +++DONE, but libz still req'd - Confusion between dsm-version & version in the code? +++NOPE - Blank lines are delimiters! Not hashes! +++Later, NAAH - DSM author info fields, like with package? +++DONE - SET suggests strcasecmp() if no stricmp(). +++DONE, now in configure script - Multiple argument versions of die(), warn() - dief(), warnf()? Make them similar to printf(). +++DONE - Make it buildable on plain ol'DOS - currently configure files violate 8+3 format file names. +++DONE - Try to get the memory usage down? Takes ~2MB at max! +++DONE - '--with-pakke' to install pakke binary in to 'bin/' directory of root? +++DONE - Default simtelrc too, like with pakkerc? +++DONE - 'newsgroup-email' field for newsgroups that have an e-mail gateway, e.g. DJGPP. . Changed to newsgroup-email-gateway +++DONE - On MS-DOS, pakke.exe should be copied to bin/, not pakke. +++DONE - Remove platform.o, mkplat.oa +++DONE - Make configure script fail if req'd libraries aren't present. Try to find a better way of detecting libsocket. . Look for __lsck_init() to detect libsocket. On Linux, just look for socket() in libc. This will allow us to distinguish libsocket vs. other networking. +++DONE - Write/correct binutils DSM. +++DONE - Licence details in DSM? +++DONE - Finish the DSM for man properly +++DONE - Include standard configure doc? +++COULDN'T FIND ONE - Mailing list request field +++DONE - Elimination of manifest vs. DSM files not working - i.e. DSM & manifest present -> both in package list? +++FIXED - Is '--prefix' option supported for installs? +++DONE, it works! - Dedupe between DSM, manifest fails? +++FIXED - Create dirs before writing files, if necess, for archs with dirs after files in those dirs? +++DONE - Compile with PMODE/DJ, so CWSDPMI isn't needed? +++DONE - Make DSM parsing code log failures to find directive too as error. +++DONE - Make DSM parsing code skip blank lines, so you don't have to use shedloads of #'s to separate directive blocks. +++DONE - Don't print blank lines at end of manifest. +++DONE - grep22? +++DONE - Fix broken comptime.h building? . What is going on with it? Maybe it worked OK with bash 2.03? +++FIXED, thanks to Laurynas. - Install target. +++DONE, may need improvement. - Fix the dsm-author fields on these DSMs: . win95 . acnf213b . gpp2952b . zlib112b . gcc2952b . djlsr202 . em1934l . em1934b . Actually, the problems are slightly more numerous than that :( +++FIXED - Use more intelligent Makefile to eliminate need for TARGETS and TARGETS_EXE, i.e. RTFM. +++DONE - --syncdb broken? Used bin/pakke --syncdb -> $DJDIR/share/pakke/db had only a .dsm file in it. +++FIXED - Source dist: can't run make when no Makefiles! Need to run autoconf first. +++FIXED in docs - How to get defaults/ dir to disappear from CVS co? Maybe it'll work when I switch to proper CVS on Linux? . It works with Linux CVS, but DJGPP port seems not to be able to remove dirs on checkout, export, etc. +++NON-PROBLEM - Spec exactly which directives escapes can be used in. +++DONE - Duh! Can't run make before config's been run! Sort it out laddie! +++FIXED install.txt - Put @ifinfo/@end ifinfo round @menu in dsm spec +++DONE - Fix up NULL problem with src/defaults/def_plat.c . DJGPP version independent? +++SORTED, needed to include string.h when not using MSS. - --syncdb should allow all DSMs to be updated from available database, if newer DSMs are available? +++DONE - Support for archives and '-l' query option. +++DONE - distclean to clean up bin dir. +++DONE - Doc mailing list http://www.onelist.com/community/pakke-workers . Done, but add icons for joining, archives. Check dossock list at same time. +++DONE - Test mak379's DSM. . Add changelog, command (gen warning) support, so make 3.79 can be installed. +++DONE - '--help' doesn't work unless db init'd; warning too long. +++FIXED - Write DSM for texinfo 4.0 +++DONE - man 1.3 uses less by default => requirement? +++DONE, added to 1.2 & 1.3 DSMs. - Add support for newsgroup-description directive. +++DONE - Add GNU FDL, thanks, etc. to DSM, pakke docs. . Done dsmcheck, pakke docs, need to do DSM docs. +++DONE - Switch from txi2html to makeinfo's HTML gen switch. +++DONE - Renovate pakke web pages. +++DONE (ish) - Sort out doc/Makefile for 'all' target w.r.t. 'text'. +++DONE - install shouldn't create prefix until checked to see that all archives exist +++DONE - Add query option to view licence. +++DONE - Do proper port of popt. +++DONE - config.guess patch from Laurynas . and new version of config.sub +++DONE - Warning on installing a ZIP that has no DSM - should be a bit more friendly than saying "error in DSM" (or whatever). +++DONE - Why doesn't removing popt/libpopt.a force a rebuild of the popt lib? +++IRRELEVANT - Fix test/zip/useless.zip - make it a binary import this time! +++DONE, now test/zip/nodsm.zip (CVS problem - grrr). - Make install target copy HTML docs into contrib/pakke012/doc. +++DONE - Add details of GPL to '--version' display; add a switch to display license, a la prozilla. +++DONE - Use gcc's varargs checking facilities? +++DONE - Add Makefile targets for etags, id. +++DONE - texi2dvi target for dox +++DONE - Do to-dos in dsm_perror(), install.c for dsm_get_and_parse(). +++DONE - Support for archives and '-f' query option. +++DONE - Add support for 'pre' versions. +++DONE - Fix install target to install HTML, text docs properly. +++DONE - Put todo.old in CVS. +++DONE - Possible regression in missing test? +++FIXED - Use chomp() everywhere - Write packlist_*() properly. . It was sorted, but it still sucks. - Platform auto-detection for --initdb? Need DSMs for DOSes that provide their own DPMI providers, e.g. Caldera's DR-DOS (actually, IIRC that provides DPMS rather than DPMI). +++DONE - DSMs to write before I can re-install using pakke: . texinfo - txi312b +++DONE . gzip - gzp124b +++DONE . bash - bsh1147b +++DONE . grx - grx20 - now upto v3? . fileutils - fil316b +++DONE . findutils - find41b +++DONE . less - lss332b +++DONE . groff - gro110b +++DONE . textutils - txt122b +++DONE . patch - pat25b +++DONE . diff - dif271b +++DONE . tar - tar112b +++DONE . make - mak377b +++DONE . sed - sed118b +++DONE for 3.02 . shellutils - shl112b, shl112s +++DONE . faq - faq211b +++DONE . gawk - gwk303b +++DONE . GDBM - gdbm173b +++DONE . flex - flx254b +++DONE . m4 - m4-14b +++DONE . indent - ind191b, ind191d +++DONE . bison - bsn125b +++DONE - Need to apply Laurynas's patch to todo.txt about the build system. +++DONE - Sort out problem with TeX dvga .ver file parsing. +++FIXED? Seems OK... - Spring clean files - sort out TODOs. +++DOING - Query matches on package or manifest name . Should also be possible to use version, e.g. 'fileutils 4.0'. +++DONE - Support multiple manifest files? +++NO - Pass argv[0] to '--initdb' to get correct executable name, i.e. self-replicates. . It already is - leave code as is. . Actually, it needs to chop path of pakke to get stem+extension part (i.e. pakke on Unix, pakke.exe on DOS, or whatever it's renamed to.). +++NO, always copies it to pakke.exe (DJGPP) or pakke (Unix). - 'binaries-dsm', 'sources-dsm' and 'documentation-dsm' fields should be checked for no '.dsm' extension => warning? . Later: They _should not_ have a '.dsm' extension. +++DONE - scripts/mkconfig.sh fails? . Strange, seems to work OK now? +++OK - -q broken? +++FIXED - Add support for maintainer directives. +++DONE - Allow multiple occurrences of author directives, etc. . See list of directives we should support in DSM spec. +++DONE - Multiple mailing lists (with comments). +++DONE - For .ver files, manifest field is filled in from .ver contents. Bug: this should just be done on the filename. The manifest filename is a constant, depending on package. The .ver file could contain anything, e.g. see gcc 2.95.2 binaries. This can cause syncdb not to work. +++DONE - Update generally to use Laurynas's new graph code (plus add to changelog). +++DONE - Standard provision for web-browsers? +++DONE - /dev/env feature? . 'djgpp-dev-env'? +++DONE - Start version test-suite as part of dep rejig. +++DONE - Constify interfaces more, to continue Laurynas's work - do 'int' params. +++DONE - Use diffutils 2.7.1 -> 2.7.2 as upgrade test case (cheap excuse to make myself upgrade ;) ). +++DONE - pakke logo +++DONE - Fix '-q package n.n2.*' +++DONE - '-q -l' fails to dump manifest (e.g. gnumaniak)? . This happens because package->path has not been set up correctly for the manifest file. This probably happens for the DSM, maybe archives too? +++FIXED, but should the results be returned in some kind of list? +++DONE, now returned in list. - Add '-q', '--quiet' options for use when spawned by other installers. . '-q' used already - '-Q' used instead. +++DONE - Quiet option to suppress output for FrontPakke, etc.? +++ADDED - Which $(INSTALL) should be used for headers, libs? +++SORTED, used $(INSTALL) for libs, $(INSTALL_DATA) for headers - Function to extract DSM from an archive in libpakke? +++DONE, dsm_get_and_parse() - Update source DSMs to include dependencies on tools needed to build them. +++OK - Support for leading zeroes in patchlevel? +++NO, that's silly. - How to cope with diff binary packages for FAQ? . bash 1.14.7 man pages too? +++REMOVED, not a problem anymore . faq (faq230b.zip) & faq-printable (faq230p.zip) +++OK - Switch from stricmp() -> strcasecmp(), strnicmp() -> strncasecmp(), because stricmp(), strnicmp() wrappers can then be removed. +NAAAH, who cares? - --with-platform broken; tries to find 's DSM. This seems to be a generic problem with long options ignoring whether the next param is an arg or not - bug in getopt_long()? . Oops, we're using popt now. +++NO BUG, this is how long options work with popt, presumably getopt_long() too. - Set up bugzilla info for pakke. . Done for 0.1.2, see http://www.phekda.freeserve.co.uk/richdawe/pakke/bugs012.htm . Need to do for 0.1.3. +++DONE - '--syncdb' should synchronise platform DSMs too. +++DONE - '--install' doesn't work? . OK, fixed it, but now '-qi ' doesn't work. The option parsing needs a careful fix, I think. +++FIXED - Fix P-mode stub addition - bin/pakke.exe should be executable from DOS (bash handles differently?). +++OK NOW - DSM for Windows 3.x? +++DONE - Write 'dsmcheck' docs. +++DONE - Write more DSMs: . mlp106s - executable packer . info - SET's info viewer - inf024b . rcs - rcs5713b . perl - perl552s +++DONE . New DJGPP packages +++DO IT SOME OTHER TIME - PMODE/DJ crashes? Look at the sources.. . Also add option to use WDOSX? See http://www.wuschel.demon.co.uk/ +++1.3 may have fixed these. - Now vercmp comp's types, remove superfluous checks in code. +++DONE - Check correctness of config file? +++DONE, now we have new parser. - Can rcfile routines cope with filenames with spaces? Quotes? +++YES, now we have new parser (with some mods to finish support for this). - Include pakke's DSM in itself, so it can plonk it in the database when it's being created (using the '--with-pakke' option). +++DONE - Use AC_EXEEXT macro? +++NOT NEEDED, but may be later? I don't think so. - Weird errors on installing gcc? +++HUH? Seems to work OK now. - Finally, make '--long-info' display long info! . Made a start +++OK - BACKUP in install/uninstall +++DONE, but needs testing. It seems to work. - Document backup strategy. +++DONE - Include PMODE/DJ info in build. +++NO, there's no easy way to do it. - Document requirement of bison, flex. +++DONE - Run 'install-info' to add info files to index, if info files in info/ in archive. . Add this code to src/install.c, with removal code in src/uinstall.c. . Done, but could make messages nicer. +++OK - scripts/pmstub.sh broken? . scripts/pmstub.sh will fail to run when bash 2.03 is used to build, because cat from Fileutils 3.16 does not support /dev/ syntax. I better hurry up with my port of Fileutils 4.0! . Problem may be more subtle than that. . Nope, it's 'cat' from textutils that's the problem - require textutils 2.0 to build pakke, since its 'cat' understands /dev/?/ paths. +++OK - Run up to release: . fix shift-reduce conflict +++DONE . document $Id: TODO.old,v 1.1 2003/03/12 19:49:11 richdawe Exp $ in coding standards +++DONE . update readme.txt file +++OK +++DONE - Add query to list whether packages have DSM or not. +++DONE, query now does it. - Add 'release' to version string, to allow multiple releases of a DJGPP package. +++DONE - Fix test suite breakage +++DONE - No support for maintainer & maintainer-email directives - add to Bugzilla (need to fix Bugzilla tables?) +++DONE - Add friendlier messages when maxima reached on arrays. +++DONE - Zip extraction should preserve file timestamps. +++DONE - WinME detection? +++DONE - Check integrity of (all) zip files before extracting. +++DONE - Add basic support for builtin-* - ignore them for minute, but at least don't barf on them. +++DONE - Write some decent docs. +++DONE (ish) ;) - Set script permissions correctly in the ZIP distros. +++DONE, by making source packages on Linux. - Need to include getting started guide in binary distribution - maybe text formatted manual instead? +++DONE, included getting started guide in install.txt, plus include text copy of pakke manual. - Tim van Holder suggests: "Also, you may want to mention --initdb either in install.txt or in the 'can't read config file' error message; as it is, it's hidden away inside the info file. I was in the progress of writing a bug report about there not being a pakkerc in the binary distro when I scrolled down far enough to see --initdb mentioned :-)" +++DONE - Dependency checking on packages when using '-qpi'? +++DONE - Fix test-suite on platforms that don't support stricmp(), etc. . Include implementation of stricmp(), etc. in libpakke? . No, just use strcasecmp() instead of stricmp(). +++DONE - Fix the tests to use their own pakkerc, rather using default one. +++DONE - Make sure package->path is set up for archives. +++DONE . Later: But is this the original purpose for this field? . Todo: Add description to header file. +++DONE - Audit messages in new OS detection code. Sort out TODOs also. +++DONE - Automatic dependency generation - use .d files. This will eliminate the 'make dep' stage, which is annoying. +++DONE - Error on failure to install! +++OK - Something wrong with version comparison? . binutils 2.95.1 snapshot 20000227 < binutils 2.8.1? (write test program) . Now '-i bnu2951b.dsm' tries to install when bnu281b.dsm present! . Probably out of date? +++IGNORED - '--syncdb' doesn't update DSMs from $DJDIR/manifest if package version different . Later: Huh, it's not supposed to. . Need to look for removed packages too, I think. +++OLD - Sort inconsistency between use of -A for query & install - i.e. fix usage for queries. . Need to update --help & documentation too! +++DONE - Write DSMs: . id-utils 3.2 +++DONE . TeX +++DONE +++DONE - Line numbers in error messages wrong - blank lines omitted from count? +++FIXED - Don't run install-info automatically - make it command-line option? This will require all DSMs to have 'install-info' lines. . Now we write commands to a batch file, which the user can run later. +++OK - Support for .pakkerc, _pakkerc in home directory, to override system global file? . How would this work? Parse global and then home directory one, use home dir settings in preference? . This is a lot easier, now we have a new parser. +++NO, this should be a DJGPP installation-specific thing. - Add test/dsm to the test suite +++DONE - Move ZIP integrity check to after dep check on install, upgrade. . Naah, just return all errors before aborting. +++DONE - 'Makefile.in' should contain rule to build 'config.hin' from 'config.in'? +++NO, handled by scripts/mkconfig.sh. - '-qal' doesn't have headers between file lists? +++NO, seems to work OK. - Type on deps without ver number? +++DONE - Don't be case sensitive on extraction of changelogs, etc. +++DONE - Make dsm_free_file_error_list(), etc. set pointers to NULL after freeing memory, to avoid memory corruption-type bugs. +++DONE - Does 'requires: foo == 1.2.3' work if multiple versions of foo (including 1.2.3) are installed? +++YES, seems to - see tests/dep/multi.c. - Check that 'package == numbers' works in 'requires', etc. +++YES, seems to - see tests/dep/multi.c. - Add some kind of checking on dsm-file-version? Should it do something? . It's already parsed in the same way as other versions, so it is checked. +++OK - Call package_free() when dsm_parse() fails? Avoid memory leaks. . What about packlist_free() - should that free package structs too? +++DONE - Querying, etc., should work with available packages also if none found in installed database? Maybe this should occur with the '-p' option, i.e. if spec'd file doesn't exist, then query available ones. But what if file exists, but isn't package? OK, use '-q' option because the package is either installed or in the available database. +++NAAH - Sort out the error handling - it's terrible right now . DSM parsing now provides info. +++OK - Duplicate DSMs? How is this resolved? Take the one with the later version? . dsm-version should be the version of the DSM? Where would info about DSM spec version go? . dsm-version -> DSM specification version . dsm-file-version -> file version +++OK - When using package lists (linked-lists) and removing elements, check that the head element isn't being removed! . packlist_dedupe() needs to cope with the case where the head is a duplicate. +++DONE - distclean to clean up Makefiles generated by config script. . Added 'maintainer-distclean' target. +++OK - Add licence details to DSMs - licence should be compulsory part of DSM? . Probably should generate warning if 'license' not present, but there's no real support in DSM error code for warnings right now. +++DONE - Need order of precedence in verdiff() for alpha, beta, etc. These can't be compared in the same way as numbers. +++DONE - Add shell-style wildcards for package queries. . Coded, now need to document how packages are matched. +++DONE - Warn about versions that only have a major version component. +++DONE - Scripts: dsm2ver - make .ver out of .dsm; mkmft - make a manifest from files in current directory - optionally get manifest filename from .dsm. +++DONE - Check that FTP downloading works. +++DONE - Add support for downloading from mirrors. +++DONE - Add support for --syncdb downloading of ds*.zip. +++DONE - configure test for locating 'basename', to build without warnings on Linux. on DJGPP, on POSIX? +++DONE - Use termios rather than getch(). +++DONE - Write test for isspecialpath(). +++DONE - doc/Makefile should have dependencies on version.txi. +++OK - Allow HTTP/FTP mirror to be specified on command-line. +++DONE - Fix problems with handling of $(MAKEFLAGS) on recursion. +++DONE, removed usages of -$(MAKEFLAGS), since they were bogus. - Add porter-web-site and porter-ftp-site. +++DONE - Add licence directives to all db-avail DSMs. +++DONE Richard Dawe