+2002-07-15 Robert Collins <rbtcollins@hotmail.com>
+
+ * package_version.cc (packageversion::sources): Implement this.
+ * download.cc (do_download_thread): Support multiple files per package.
+
+2002-07-15 Robert Collins <rbtcollins@hotmail.com>
+
+ * package_version.h (packageversion::sources): Support multiple files in
+ a single package version.
+ * package_version.cc (_packageversion::accessible): Ditto.
+ (packageversion::source): Ditto.
+
+2002-07-15 Robert Collins <rbtcollins@hotmail.com>
+
+ * iniparse.y: Implement support for multiple source files for a source
+ package.
+ * IniDBBuilder.h (IniDBBuilder::buildSourceFile): Ditto.
+ * IniDBBuilderPackage.h (IniDBBuilder::buildSourceFile): Ditto.
+ * IniDBBuilder.cc (IniDBBuilder::buildSourceFile): Ditto.
+ * IniDBBuilderPackage.cc (IniDBBuilder::buildSourceFile): Implement a
+ stub as preparation.
+
+2002-07-13 Robert Collins <rbtcollins@hotmail.com>
+
+ * PickPackageLine.cc (PickPackageLine::click): Set requirements for
+ packages under all circumstances - slightly higher overheader, simpler
+ code.
+ * download.cc (do_download_thread): Correctly download source
+ packages.
+ * package_meta.cc (checkForInstalled): Remove.
+ (checkForUpgradeable): Ditto.
+ (checkForSatisfiable): Ditto.
+ (processOneDependency): Ditto.
+ (packagemeta::set_requirements): Move guts to packageversion.
+ * package_version.cc (checkForInstalled): Copied from package_meta.cc.
+ (checkForUpgradeable): Ditto.
+ (checkForSatisfiable): Ditto.
+ (processOneDependency): Ditto.
+ (packageversion::set_requirements): Ditto.
+ * package_version.h (packageversion::set_requirements): Declare.
+
+2002-07-13 Robert Collins <rbtcollins@hotmail.com>
+
+ * IniDBBuilder.cc (IniDBBuilder::buildBeginBuildDepends): Implement.
+ (IniDBBuilder::buildBeginBinary): Implement.
+ * IniDBBuilder.h (IniDBBuilder::buildBeginBuildDepends): Declare.
+ (IniDBBuilder::buildBeginBinary): Ditto.
+ * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildBeginBuildDepends):
+ Implement.
+ (IniDBBuilderPackage::buildBeginBinary): Ditto.
+ * IniDBBuilderPackage.h (IniDBBuilderPackage::buildBeginBuildDepends):
+ Declare.
+ (IniDBBuilderPackage::buildBeginBinary): Ditto.
+ * inilex.l: Recognise Build-Depends-Indep, [,], >, < and remove
+ T_UNKNOWN.
+ * iniparse.y: Full support for parsing a debian Sources file in-line in
+ setup.ini.
+ * package_version.cc (packageversion::binaries): Implement.
+ * package_version.h (packageversion::binaries): Declare list of what
+ packages are created from a given source package.
+ (_packageversion::binaries): Ditto.
+
+2002-07-10 Robert Collins <rbtcollins@hotmail.com>
+
+ * iniparse.y: Add basis for support for parsing a debian Sources file.
+ * inilex.l: Ditto.
+
+2002-07-09 Robert Collins <rbtcollins@hotmail.com>
+
+ Change custom container code for packagedb::packages to STL containers
+ throughout.
+ * IniDBBuilderPackage.cc: Ditto.
+ * PickView.cc: Ditto.
+ * choose.cc: Ditto.
+ * desktop.cc: Ditto.
+ * download.cc: Ditto.
+ * install.cc: Ditto.
+ * package_db.cc: Ditto.
+ * package_db.h: Ditto.
+ * Makefile.am: Remove list.h references.
+ * list.h: Remove.
+
+2002-07-08 Max Bowsher <maxb@ukf.net>
+
+ * PickView.cc (PickView::PickView): Set font of package list header to
+ the same as used in the rest of the package list.
+
+2002-07-08 Robert Collins <rbtcollins@hotmail.com>
+
+ * install.cc (NoReplaceOnReboot): New command line option to prevent
+ replacing in use files.
+ (install_one_source): Check the option and use it.
+ * README: Update TODO lists.
+
+2002-07-08 Robert Collins <rbtcollins@hotmail.com>
+
+ * PickCategoryLine.cc: Change bucket to use STL container syntax
+ throughout.
+ (PickCategoryLine::paint): Use new Category type syntax.
+ * PickCategoryLine.h: Use STL vectors rather than custom containers
+ throughout.
+ * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackageCategory):
+ Use new add_category syntax.
+ * PickView.cc (PickView::insert_pkg): Use new Category type syntax.
+ (PickView::insert_category): Ditto.
+ (PickView::init_headers): Ditto.
+ * category.cc: Trim obsolete code.
+ * category.h: Replace interconnecting class with a typedef to
+ facilitate leveraging STL maps.
+ * choose.cc (fill_missing_category): Use updated pkg.add_category
+ syntax.
+ (default_trust): Use new Category type syntax.
+ (set_view_mode): Ditto.
+ (create_listview): Ditto.
+ * package_db.cc (categories): Ditto.
+ * package_db.h: Update headers list to include needed headers.
+ (packagedb::categories): Replace custom list with STL map.
+ * package_meta.cc: Use new Category type syntax throughout.
+ (packagemeta::add_category): Implement new syntax.
+ * package_meta.h: Remove commented out source.
+ (packagemeta::add_category): Update syntax to decouple interface from
+ packagedb.
+
+2002-07-06 Christopher Faylor <cgf@redhat.com>
+
+ * site.cc (do_download_site_info_thread): Correct spelling error.
+
+2002-07-06 Robert Collins <rbtcollins@hotmail.com>
+
+ * PickCategoryLine.h: Include required header list.h.
+ * PickPackageLine.cc (PickPackageLine::paint): Adjust to use STL
+ containers for listing of packages per category and vice verca.
+ * PickView.cc (PickView::insert_pkg): Ditto.
+ (PickView::insert_category): Ditto.
+ * String++.h (String::caseless): STL helper to allow trivial containers
+ of Strings with case insensitive comparisons.
+ * category.h: Adjust to use STL containers for listing of packages per
+ category and vice verca.
+ * choose.cc (fill_missing_category): Ditto.
+ (default_trust): Ditto.
+ (ChooserPage::OnNext): Ditto.
+ * package_meta.cc (CategoryPackage::~CategoryPackage): Remove.
+ (packagemeta::packagemeta): Adjust for new category list name.
+ (packagemeta::~packagemeta): Adjust to use STL containers for listing
+ of packages per category and vice verca.
+ (packagemeta::set_action): Ditto.
+ * package_meta.h (CategoryPackage): Remove.
+ (packagemeta): Adjust to use STL containers for listing of packages per
+ category and vice verca.
+
+2002-07-05 Robert Collins <rbtcollins@hotmail.com>
+
+ * io_stream.cc: Use STL containers rather than custom ones.
+ (io_stream::registerProvider): Ditto.
+ (findProvider): Ditto.
+
+2002-07-05 Robert Collins <rbtcollins@hotmail.com>
+
+ * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackageSource):
+ Use STL collections for download site collections.
+ (IniDBBuilderPackage::add_correct_version): Ditto.
+ (IniDBBuilderPackage::process_src): Ditto.
+ * PickPackageLine.cc (PickPackageLine::click): Use the packageversion
+ accessible() call to abstract package availability.
+ * choose.cc (scanAVersion): Use STL collections for download site
+ collections.
+ * download.cc (check_for_cached): Ditto.
+ (download_one): Ditto.
+ * package_meta.cc (packagemeta::set_action): Use the packageversion
+ accessible() call to abstract package availability.
+ * package_source.h: Use STL containers rather than custom containers.
+ (site): Create a == operator to allow STL container use.
+ (packagesource::sites): Use STL containers rather than custom
+ containers.
+ * package_version.cc (_packageversion::accessible): Use STL containers
+ for download site containers.
+
+2002-07-05 Robert Collins <rbtcollins@hotmail.com>
+
+ * LogFile.cc: Use STL containers rather than custom containers.
+ (filedef): Create == and < operators for STL use.
+ (files): Convert to an STL set.
+ (LogFile::setFile): Use STL operations on files.
+ (LogFile::exit): Ditto.
+
+2002-07-05 Robert Collins <rbtcollins@hotmail.com>
+
+ * ini.cc (do_remote_ini): Use STL collection for site collection.
+ * site.cc: Include site.h first to ensure it's parsable standalone.
+ Use STL algorithms.
+ (site_list): Convert to an STL container.
+ (all_site_list): Ditto.
+ (site_list_type::site_list_type): Implement copy constructor.
+ (site_list_type::operator=): Implement assignment operator.
+ (site_list_type::operator ==): Implement.
+ (site_list_type::operator <): Ditto.
+ (save_dialog): Use STL collection calls for site collection.
+ (save_site_url): Ditto.
+ (get_site_list): Ditto.
+ (get_saved_sites): Ditto.
+ (do_download_site_info_thread): Ditto.
+ (SitePage::OnNext): Ditto.
+ (SitePage::PopulateListBox): Ditto.
+ (SitePage::OnMessageCmd): Ditto.
+ * site.h: Use STL vectors instead of custom code.
+ (site_list_type::site_list_type): Declare.
+ (site_list_type::operator=): Ditto.
+ (site_list_type::operator ==): Ditto.
+ (site_list_type::operator !=): Ditto.
+ (site_list_type::operator <): Ditto.
+ (site_list_type::operator <=): Ditto.
+ (site_list_type::operator >): Ditto.
+ (site_list_type::operator >=): Ditto.
+ (site_list): Convert to an STL container.
+ (all_site_list): Ditto.
+
+2002-07-05 Robert Collins <rbtcollins@hotmail.com>
+
+ * choose.cc (default_trust): Check package accessibility before
+ triggering an install. (Suggested by Pavel).
+
+2002-07-03 Pavel Tsekov <ptsekov@gmx.net>
+
+ * compress_gz.cc (compress_gz::construct): Always initialize key members
+ to ensure the destructor does the right thing.
+
+2002-07-03 Pavel Tsekov <ptsekov@gmx.net>
+
+ * filemanip.cc (parse_filename): Do not try to parse empty
+ strings (filenames).
+ * package_db.cc (packagedb::packagedb): For each line check if sscanf()
+ extracted good package name and filename.
+
+2002-07-03 Robert Collins <rbtcollins@hotmail.com>
+
+ * package_meta.cc (packagemeta::set_requirements): Automatically select
+ version of dependent packages that satisfies the requirements.
+ Use processOneDependency to trigger the install of those packages.
+ (checkForInstalled): Check that the package remains installed.
+ (processOneDependency): Helper function for dependent packages.
+ * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackage): Add more
+ debug information.
+ Clear out all current state on new packages.
+ (IniDBBuilderPackage::add_correct_version): Copy the dependency list
+ across.
+
+2002-07-02 Robert Collins <rbtcollins@hotmail.com>
+
+ * Makefile.am (inilint_SOURCES): Add PackageSpecification sources.
+ nb: inilint is still incomplete, as the packageversion code is not
+ ready for database-less linking.
+ * site.cc (get_site_list): When the same site is reentered by the user
+ replace the old one. (Suggested by John Marshall).
+
+2002-07-02 Robert Collins <rbtcollins@hotmail.com>
+
+ * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackageSource):
+ Clear out package selections when generating implicit source packages.
+ * PackageSpecification.cc (PackageSpecification::satisfies): Implement.
+ (PackageSpecification::_operators::satisfies): Implement.
+ * PackageSpecification.h (PackageSpecification::_operators::satisfies):
+ Worker function for testing versions.
+
+2002-07-01 Robert Collins <rbtcollins@hotmail.com>
+
+ * IniDBBuilder.cc (IniDBBuilder::buildPackageRequirement): Remove.
+ * IniDBBuilder.h (IniDBBuilder::buildPackageRequirement): Ditto.
+ * IniDBBuilderPackage.cc: Use the STL algorithms.
+ Change cpv to cbpv throughout. Adjust -> to ., and use the new accessor
+ functions for the same variable throughout.
+ (IniDBBuilderPackage::IniDBBuilderPackage): Initialise new members.
+ (IniDBBuilderPackage::buildPackage): Use new cygpackage syntax,
+ and set an empty source package.
+ (IniDBBuilderPackage::buildPackageInstall): Use the new source member
+ to record an install package.
+ (IniDBBuilderPackage::buildPackageSource): Move source package logic
+ out from process_src, as it now occurs at separate times.
+ (IniDBBuilderPackage::buildPackageRequirement): Remove.
+ (IniDBBuilderPackage::buildSourceName): Use renamed package
+ specifiation accessor for clarity.
+ (IniDBBuilderPackage::buildSourceNameVersion): Ditto.
+ (IniDBBuilderPackage::add_correct_version): Use STL iterators rather
+ than custom code.
+ Remove source package references.
+ (IniDBBuilderPackage::process_src): Remove source package code as it's
+ now handled separately.
+ Set Path information before merging versions, to prevent dangling
+ pointers.
+ * IniDBBuilderPackage.h (IniDBBuilderPackage::buildPackageRequirement):
+ Remove.
+ (IniDBBuilderPackage::cpv): Remove.
+ (IniDBBuilderPackage::cbpv): New generic binary working variable.
+ (IniDBBuilderPackage::cspv): Ditto, but for source packages.
+ (IniDBBuilderPackage::csp): Source package variable for disjoint
+ source packages.
+ * Makefile.am (AM_CFLAGS): Remove -Winline to allow stl set code
+ to compile. If it compiles cleanly in gcc 3.1, then reinstate.
+ * PickPackageLine.cc: Adjust packageversion accessors to the new
+ reference calls. (i.e. -> to .) throughout.
+ (PickPackageLine::paint): Use accessible() for clarity.
+ Use new split out source package logic.
+ (PickPackageLine::click): Ditto.
+ * PickView.cc (PickView::init_headers): Adjust packageversion accessors
+ to the new reference calls. (i.e. -> to .) throughout.
+ Use new split out source package logic.
+ * choose.cc: Don't depend on a specific package type.
+ Adjust packageversion accessors to the new reference calls. (i.e. -> to
+ .) throughout.
+ (set_existence): Use accessible () for clarity.
+ (default_trust): Simplify a little.
+ (scanAVersion): Factored out code from scan_downloaded_files for
+ clarity.
+ (scan_downloaded_files): Factor out inner loop for clarity.
+ (ChooserPage::OnNext): Don't dump the dependency list,
+ it's parsing is robust now!.
+ * cygpackage.cc (createInstance): Use a factory method to create new
+ objects.
+ (cygpackage::cygpackage): Make this private for use by the factory.
+ (cygpackage::setCanonicalVersion): Renamed from set_canonical_version.
+ Remove key usage as it's obsolete.
+ * cygpackage.h (cygpackage): Inherit from _packageversion, not
+ packageversion.
+ (cygpackage::createInstance): New factory.
+ (cygpackage::cygpackage): Make private.
+ * desktop.cc (make_passwd_group): Use new packageversion reference.
+ * download.cc (do_download_thread): Use changeRequested() for clarity.
+ Use new packageversion reference calls.
+ * iniparse.y (REQUIRES): Reuse the packageList code and dump the one-off
+ requires code.
+ * install.cc: Adjust -> to ., and use the new accessor functions for
+ packageversion throughout.
+ * package_db.cc: Adjust -> to ., and use the new accessor functions for
+ packageversion throughout.
+ (packagedb::packagedb): Use the new cygpackage factory.
+ (packagedb::flush): Leverage String to remove buffer overflow chance in
+ sprintf.
+ (packagedb::findBinary): Find a binary meta package that has a version
+ matching a given specification.
+ (packagedb::findSource): Ditto, but for source.
+ * package_db.h (packagedb::findBinary): Declare.
+ (packagedb::findSource): Ditto.
+ * package_meta.cc: Adjust packageversion accessors to the new
+ reference calls. (i.e. -> to .) throughout.
+ Include the package_meta header first to ensure it parses standalone.
+ Use the STL algorithms.
+ (packagemeta::packagemeta): Create a copy constructor to allowing
+ cloning binary package metadata to source package metadata.
+ (packagemeta::~packagemeta): Use the STL coleltion code rather than
+ custom collection code.
+ (packagemeta::add_version): Ditto.
+ (packagemeta::set_installed): Ditto.
+ (packagemeta::SDesc): Ditto.
+ (hasSDesc): Helper function for find_if.
+ (checkForInstalled): Ditto.
+ (checkForUpgradeable): Ditto.
+ (checkForSatisfiable): Ditto.
+ (packagemeta::action_caption): Update for split out source packages.
+ (packagemeta::set_action): Ditto.
+ (packagemeta::set_requirements): Support multi-valued dependency
+ lists - a|b & c|d - with versioned package specifications.
+ (packagemeta::accessible): Helper member to improve abstraction.
+ (packagemeta::sourceAccessible): Ditto.
+ * package_meta.h: Adjust packageversion accessors to the new
+ reference calls. (i.e. "->" to "." and"*" to "" ) throughout.
+ (packagemeta::packagemeta): Declare copy constructor.
+ Remove self initialising members.
+ (packagemeta::set_action): Update parameters for new packageversion.
+ (packagemeta::trustp): Ditto.
+ (packagemeta::versions): Becomes an STL set.
+ * package_source.h (packagesource::Cached): Const correctness change.
+ * package_version.cc: Rewrite the packageversion interface to remove
+ the cygpackage nonvirtual members, and provide a copy by value,
+ pointer semantics reference counting wrapper class to ease use and
+ comparison of packageversions.
+ Change existing packageversion class to _packageversion throughout.
+ (_defaultversion): A trivial concrete class to prevent specialcasing
+ the default constructor for packageversion;
+ (packageversion::packageversion): Implement.
+ (packageversion::~packageversion): Ditto.
+ (packageversion::operator=): Ditto.
+ (packageversion::operator !): Ditto.
+ (packageversion::operator bool): Ditto.
+ (packageversion::operator ==): Ditto.
+ (packageversion::operator !=): Ditto.
+ (packageversion::operator <): Ditto.
+ (packageversion::Name): Ditto.
+ (packageversion::Canonical_version): Ditto.
+ (packageversion::setCanonicalVersion): Ditto.
+ (packageversion::getfirstfile): Ditto.
+ (packageversion::getnextfile): Ditto.
+ (packageversion::SDesc): Ditto.
+ (packageversion::set_sdesc): Ditto.
+ (packageversion::LDesc): Ditto.
+ (packageversion::set_ldesc): Ditto.
+ (packageversion::sourcePackage): Ditto.
+ (packageversion::sourcePackageSpecification): Ditto.
+ (packageversion::setSourcePackageSpecification): Ditto.
+ (packageversion::depends): Ditto.
+ (packageversion::predepends): Ditto.
+ (packageversion::recommends): Ditto.
+ (packageversion::suggests): Ditto.
+ (packageversion::replaces): Ditto.
+ (packageversion::conflicts): Ditto.
+ (packageversion::provides): Ditto.
+ (packageversion::picked): Ditto.
+ (packageversion::pick): Ditto.
+ (packageversion::changeRequested): Ditto.
+ (packageversion::uninstall): Ditto.
+ (packageversion::source): Ditto.
+ (packageversion::accessible): Ditto.
+ (_packageversion::sourcePackage): Ditto.
+ (_packageversion::accessible): Ditto.
+ (_packageversion::changeRequested): Ditto.
+ * package_version.h: Rewrite the packageversion interface to remove
+ the cygpackage nonvirtual members, and provide a copy by value,
+ pointer semantics reference counting wrapper class to ease use and
+ comparison of packageversions.
+ Change existing packageversion class to _packageversion throughout.
+ (Dependency): Remove.
+ (packageversion): New wrapper class.
+ (_packageversion): Renamed from packageversion.
+ (_packageversion::setCanonicalVersion): New method.
+ (_packageversion::sourcePackage): Ditto.
+ (_packageversion::sourcePackageSpecification): Ditto.
+ (_packageversion::setSourcePackageSpecification): Ditto.
+ (_packageversion::changeRequested): Ditto.
+ (_packageversion::bin): Rename to source.
+ (_packageversion::src): Remove.
+ (_packageversion::accessible): New method.
+ (_packageversion::references): Allow reference counting.
+ (_packageversion::sourceVersion): Cached the best-match source
+ package version.
+
+2002-06-27 Robert Collins <rbtcollins@hotmail.com>
+
+ * compress_bz.h (compress_bz::position): Track how much has been read.
+ * compress_bz.cc (compress_bz::compress_bz): And initialise it.
+ (compress_bz::read): Track amount read by the client.
+ (compress_bz::tell): And report it when asked.
+
+2002-06-27 Robert Collins <rbtcollins@hotmail.com>
+
+ * Makefile.am (snapshot): Automate snapshot creation some more.
+
+2002-06-27 Robert Collins <rbtcollins@hotmail.com>
+
+ * msg.cc (msg): Use vsnprintf to avoid buffer overflows.
+ (mbox): Ditto.
+ * ini.cc (fprintf): Ditto.
+ * log.cc (log): Ditto.
+ * package_db.cc (packagedb::sourcePackages): Split out source packages
+ from binary packages.
+ * package_db.h: Ditto.
+
+2002-06-27 Robert Collins <rbtcollins@hotmail.com>
+
+ * PackageSpecification.h: New file. Abstracts the ability to refer
+ to another package, by name, or name and version.
+ * PackageSpecification.cc: Ditto.
+ * IniDBBuilder.cc (IniDBBuilder::buildPackageInstall): Simplify.
+ (IniDBBuilder::buildPackageSource): Ditto.
+ (IniDBBuilder::buildBeginDepends): New method for versioned
+ dependencies.
+ (IniDBBuilder::buildBeginPreDepends): Likewise, for dependencies to be
+ satisfied before pre-install.
+ (IniDBBuilder::buildPriority): New method, for getting the package
+ Priority.
+ (IniDBBuilder::buildInstalledSize): How much disk space does it need?
+ (IniDBBuilder::buildMaintainer): Who maintains the package?
+ (IniDBBuilder::buildArchitecture): What platform is it for?
+ (IniDBBuilder::buildInstallSize): How big is the binary download?
+ (IniDBBuilder::buildInstallMD5): Whats the MD5 on the binary?
+ (IniDBBuilder::buildSourceMD5): Whats the MD5 on the source package?
+ (IniDBBuilder::buildBeginRecommends): What other packages are
+ recommended with this one?
+ (IniDBBuilder::buildBeginSuggests): And suggested?
+ (IniDBBuilder::buildBeginReplaces): What packages does this replace?
+ (IniDBBuilder::buildBeginConflicts): And collide with?
+ (IniDBBuilder::buildBeginProvides): What virtual packages (or obsolete
+ package names) does this provide?
+ (IniDBBuilder::buildDescription): Grab a multi line description one
+ line at a time.
+ (IniDBBuilder::buildSourceName): What source package should be used to
+ install the source for this binary package?
+ (IniDBBuilder::buildSourceNameVersion): Is a specific version needed?
+ (IniDBBuilder::buildPackageListAndNode): Add another AND clause to a
+ list of package specifications.
+ (IniDBBuilder::buildPackageListOrNode): Add another OR clause.
+ (IniDBBuilder::buildPackageListOperator): Add a versioning operator
+ to the current specification.
+ (IniDBBuilder::buildPackageListOperatorVersion): What version does the
+ operator act on?
+ * IniDBBuilder.h: Declare all the IniDBBuilder.cc changes.
+ * IniDBBuilderPackage.cc: As for IniDBBuilder.cc.
+ (IniDBBuilderPackage::IniDBBuilderPackage): Iniitialize new members.
+ (IniDBBuilderPackage::process_src): Streamline and split out
+ functionality.
+ (IniDBBuilderPackage::setSourceSize): From process_src.
+ * IniDBBuilderPackage.h: Declare the IniDBBuilderPackage.cc changes.
+ (IniDBBuilderPackage::currentSpec): Track the in-progress specifiation.
+ (IniDBBuilderPackage::currentOrList): Track the current Or list.
+ (IniDBBuilderPackage::currentAndList): Track the current And list.
+ * IniParseFeedback.cc (IniParseFeedback::progress): Provide completion
+ progress on parsing.
+ (IniParseFeedback::iniName): Tell what ini filename we are currently
+ processing.
+ * IniParseFeedback.h: Declare IniParseFeedback.cc changes.
+ * IniParseFindVisitor.cc (IniParseFindVisitor::IniParseFindVisitor):
+ Make the feedback object non-const to allow mutating methods which are
+ needed when the object has state.
+ (IniParseFindVisitor::visitFile): Tell the caller the name of each
+ .ini found.
+ Initialise the parser with the feedback object to allow it to tell of
+ progress.
+ * IniParseFindVisitor.h: Declare IniParseFindVisitor.cc changes.
+ * Makefile.am (inilinst_SOURCES): Add more requisite classes.
+ (setup_SOURCES): Add the new PackageSpecification sources.
+ * ScanFindVisitor.cc (ScanFindVisitor::visitFile): Use the new
+ builder syntax to setup binary package details.
+ * choose.cc: Use the LogSingleton calls throughout.
+ * configure.in: Create the INILINT substitution correctly for recent
+ autotool configurations.
+ * cygpackage.cc (cygpackage::getfirstfile): Return an empty String
+ rather than a string built from an int. Thanks to Pavel Tsekov for
+ identifying the bug.
+ (cygpackage::getnextfile): Ditto.
+ * download.cc: Use LogSIngletion calls throughout.
+ (validateCachedPackage): A refactoring of the
+ check_for_cached code to eliminate duplciation.
+ (check_for_cached): Use validateCachedPackage to check packages.
+ * ini.cc (GuiParseFeedback): Provide gui feedback on ini name and
+ parsing progress.
+ (do_remote_ini): Ditto.
+ * ini.h (ini_init): Pass a IniParseFeedback to the parser, to allow
+ progress reporting.
+ * inilex.l: Identify new symbols - operators, and multi line plain text.
+ Releases files.
+ * inilintmain.cc (show_help): Provide basic infomation on inilint.
+ * iniparse.y: Adjust for the new builder syntax, and process debian
+ Release files.
+ * io_stream_file.cc: Always include mkdir.h.
+ * list.h: Factor index location into a private routine.
+ (list::findindex): Implement this.
+ * mkdir.cc (mkdir_p): Make the use of WIN32 code conditional on mingw
+ builds. NB: This breaks cygwin build functionality still.
+ * package_meta.cc: Use the LogSingleton calls throughout.
+ (packagemeta::set_requirements): Adjust for object changes in
+ dependencies.
+ * package_meta.h (packagemeta::packagemeta): Initialise new members.
+ (packagemeta::architecture): What platform does this package run on?
+ This may need to move in the future to a per packagefile object.
+ (packagemeta::priority): What priority does this package have?
+ * package_source.h (packagesource::packagesource): Initialise new
+ members.
+ (packagesource::installedSize): How much space does the package need?
+ (packagesource::setInstalledSize): Tell the amount.
+ (packagesource::_installedSize): And store it.
+ * package_version.cc (packageversion::sourcePackage): return the
+ source package.
+ (packageversion::setSourcePackage): And set it.
+ * package_version.h: Declare the package_version.cc changes.
+ (packageversion::depends): New package specification AND list.
+ (packageversion::predepends): Ditto.
+ (packageversion::recommends): Ditto.
+ (packageversion::suggests): Ditto.
+ (packageversion::replaces): Ditto.
+ (packageversion::conflicts): Ditto.
+ (packageversion::provides): Ditto.
+ (packageversion::sourcePackage): What source package is needed?
+ * threebar.cc (ThreeBarProgressPage::SetText4): Set the label beside
+ the bottom bar.
+ * threebar.h: Declare the threebar.cc change.
+
+2002-06-27 John Marshall <johnm@falch.net>
+
+ * res.rc (SETUPINI_MISSING): Make trailing spaces visible.
+ * site.cc (SitePage::OnMessageCmd): Ditto
+
+2002-06-15 Robert Collins <rbtcollins@hotmail.com>
+
+ * nio-ie5.cc (NetIO_IE5::NetIO_IE): Allow cached data.
+
+2002-06-15 Robert Collins <rbtcollins@hotmail.com>
+
+ * package_meta.cc (packagemeta::set_action): When installing packages
+ with no binaries, choose the source package.
+
+2002-06-10 Robert Collins <rbtcollins@hotmail.com>
+
+ * IniParseFindVisitor (IniParseFindVisitor::visitFile): Apply Max
+ Bowshers fix for the crash with a root level setup.ini.
+ * README: Update todos.
+
+2002-05-26 Ralf Habacker <ralf.habacker@freenet.de>
+
+ * archive_tar.cc (archive_tar::next_file_name()): fixed broken
+ GNU long name extension support.
+
+2002-05-27 Robert Collins <rbtcollins@hotmail.com>
+
+ * IniParseFindVisitor.cc (IniParseFindVisitor::visitFile): Don't
+ unescape 0 length strings.
+
+2002-05-20 Robert Collins <rbtcollins@hotmail.com>
+
+ * package_meta.cc (packagemeta::set_action): Don't allow reinstall
+ when local with no cached file, and install the default source if the
+ default version has no binary.
+
+2002-05-19 Robert Collins <rbtcollins@hotmail.com>
+
+ * IniDBBuilderPackage.cc (IniDBBuilderPackage::IniDBBuilderPackage): New
+ method.
+ (IniDBBuilderPackage::buildVersion): Provide a warning when a newer
+ setup version created the ini file.
+ * IniDBBuilderPackage.h (IniDBBuilderPackage::IniDBBuilderPackage): New
+ method.
+ * IniParseFindVisitor.cc (IniParseFindVisitor::visitFile): Use the new
+ feedback strategy.
+ * IniParseFindVisitor.h (IniParseFindVisitor::IniParseFindVisitor):
+ Require a feedback strategy.
+ * Makefile.am (setup_SOURCES): Add IniParseFeedback sources.
+ * Makefile.in: Regenerate.
+
+2002-05-19 Robert Collins <rbtcollins@hotmail.com>
+
+ * io_stream_file.cc (io_stream_file::remove): Use the SetFileAttributes
+ trick to delete read only files.
+ * io_stream_cygfile.cc (io_stream_cygfile::remove): Use file:// to
+ remove files.
+ * Makefile.am (release): Tweak to be more helpful.
+ * Makefile.in: Regenerate.
+
+2002-05-19 Robert Collins <rbtcollins@hotmail.com>
+
+ * Makefile.am (release): Tweak to be more helpful.
+ * Makefile.in: Regenerate.
+
+2002-05-19 Robert Collins <rbtcollins@hotmail.com>
+
+ * Makefile.am (release): Tweak to be more helpful.
+ * Makefile.in: Regenerate.
+
+2002-05-19 Robert Collins <rbtcollins@hotmail.com>
+
+ * choose.cc (scan_downloaded_files): When a non-installed version
+ has neither bin nor src cached files for local installs,
+ remove the version from availability.
+
+2002-05-19 Robert Collins <rbtcollins@hotmail.com>
+
+ * ini.cc (do_remote_ini): Save uncompressed ini's correctly.
+
+2002-05-19 Robert Collins <rbtcollins@hotmail.com>
+
+ * rsync: New support library, contains librsync. This is not (yet)
+ rsync interoperable.
+ * configure.in: --with-rsync to enable rsync support. (Not complete).
+ * Makefile.am: Enable building with rsync.
+ * Makefile.in: Regenerate.
+ * configure: Ditto.
+ * IniDBBuilder.cc (IniDBBuilder::buildPackageInstall): Pass the md5 as
+ an array.
+ (IniDBBuilder::buildPackageSource): Ditto.
+ * IniDBBuilder.h: Ditto.
+ * IniDBBuilderPackage.cc: Ditto.
+ * IniDBBuilderPackage.h: Ditto.
+ * FindVisitor.cc: New file.
+ * FindVisitor.h: New file, interface for visiting a file system
+ aggregate.
+ * IniParseFindVisitor.cc: New file.
+ * IniParseFindVisitor.h: New file, concrete FindVisitor that parses
+ found setup.ini's.
+ * README: Update TODO's.
+ * String++.cc (String::String): New constructor for <string> inter-
+ operability.
+ (String::substr): New method.
+ * String++.h: Ditto.
+ * choose.cc (scan2): Remove.
+ (scan_downloaded_files): Simplify.
+ * dialog.h: Include parsing pre-requirements.
+ * download.cc (check_for_cached): Fullname was used incorrectly - fix.
+ * filemanip.cc (parse_filename): -src packages where incorrectly parsed.
+ * find.cc: Rewrite. Now uses a Visitor pattern and is re-entrant.
+ * find.h: Ditto.
+ * fromcwd.cc: Remove unneeded includes.
+ (is_test_version): Remove.
+ (found_file): Remove.
+ (SetupFindVisitor): Trivial visitor to detect setup.ini's.
+ (found_ini): Remove.
+ (do_fromcwd): Remove commented code that has be replaced elsewhere.
+ * ini.cc (local_ini): Remove.
+ (findBuilder): Remove.
+ (find_routine): Remove.
+ (do_local_ini): Use new IniParseFindVisitor.
+ * iniparse.y: Typecase MD5 arrays, as we know they are allocated as
+ unsigned char.
+ * postinstall.cc: Remove non-core includes.
+ (run_script_in_postinstall): Remove.
+ (RunFindVisitor): Trivial Visitor, runs each found script.
+ (do_postinstall): Use new find syntax.
+
+2002-05-14 Christopher Faylor <cgf@redhat.com>
+
+ * ini.cc (find_routine): Don't clear buffer it it's NULL.
+
+2002-05-14 Christopher Faylor <cgf@redhat.com>
+
+ * filemanip.h (trail): Declare.
+ * filemanip.cc (trail): New function.
+ (find_tar_ext): Use trail() instead of strstr().
+ * fromcwd.cc (check_ini): Ditto.
+ * ini.cc (find_routine): Ditto. Don't tack local_dir to path since it
+ should now be fully qualified. Set ini_filename. Reset error_buf and
+ error_count for any subsequent ini file parsing.
+ (ini_filename): New static variable for parse error reporting.
+ (yyerror): Use full path of setup.ini in error message. Subtract one
+ from line number if at bol.
+ * find.cc (found_part): Eliminate.
+ (find_sub): Call for_each with full path found rather than just file
+ component.
+ (find): Don't calculate found_part.
+ * inilex.l (ini_init): Flush input buffer and reset line number.
+ (yybol): New function. Exports YY_AT_BOL.
+ * iniparse.y: Increase stack depth to allow more tokens to be processed.
+ (yyparse): Remove newline from error condition to allow subsequent
+ per-line error processing to proceed normally.
+
+2002-05-14 Christopher Faylor <cgf@redhat.com>
+
+ * find.cc (find_sub): Be more defensive in preserving trailing parts of
+ components when doing recursive directory searches or calling user
+ supplied for_each().
+ * ini.cc (find_routine): Don't assume that any path name with
+ "setup.ini" in it is actually a setup.ini file. Only honor trailing
+ components. Copy path argument to temporary storage when unescaping
+ to prevent nuking of argument.
+
+2002-05-12 Robert Collins <rbtcollins@hotmail.com>
+
+ * CONTRIBUTORS: New file.
+
+2002-04-02 Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>
+
+ * choose.cc: Run indent.
+ (nextbutton): Remove static variable.
+ (default_trust): Remove use of nextbutton.
+ (set_view_mode): Ditto.
+ (create_listview): Add IDC_CHOOSE_PREV and IDC_CHOOSE_NEXT to ta[] so
+ rbset() sets the prev/next/curr radio buttons properly.
+ (dialog_cmd): Delete function.
+ (dialog_proc): Delete function. Move WM_INITDIALOG functionality to
+ ChooserPage::OnInit.
+ (do_choose): Delete function. Move pre-DialogBox() code to
+ ChooserPage::OnInit(), post-DialogBox() code to ChooserPage::OnNext.
+ (WM_APP_START_CHOOSE): Remove define.
+ (WM_APP_CHOOSE_IS_FINISHED): Remove define.
+ (do_choose_thread): Delete function.
+ (ChooserPage::OnActivate): Delete method.
+ (ChooserPage::OnMessageApp): Delete method.
+ (ChooserPage::OnInit): New method.
+ (ChooserPage::OnNext): New method.
+ (ChooserPage::OnBack): New method.
+ (ChooserPage::OnMessageCmd): New method.
+ * choose.h: Run indent.
+ (ChooserPage::OnMessageApp): Delete declaration.
+ (ChooserPage::OnActivate): Ditto.
+ (ChooserPage::OnMessageCmd): New declaration.
+ (ChooserPage::OnInit): Ditto.
+ (ChooserPage::OnNext): Ditto.
+ (ChooserPage::OnBack): Ditto.
+ * desktop.cc (DesktopSetupPage::OnBack): Replace use of IDD_CHOOSER
+ with IDD_CHOOSE.
+ * fromcwd.cc (do_fromcwd): Replace use of IDD_CHOOSER with IDD_CHOOSE.
+ * ini.cc (do_ini_thread): Replace use of IDD_CHOOSER with IDD_CHOOSE.
+ * res.rc (IDD_CHOOSE): Remove dialog template.
+ (IDD_CHOOSER): Alter dialog template to fit wizard size and format.
+
+2002-05-12 Robert Collins <rbtcollins@hotmail.com>
+
+ * LogFile.cc (endLog): Work around an apparent libg++-3 bug causing
+ corrupt log file entries.
+ * geturl.cc: Convert to the new LogSingleton logging.
+
+2002-05-12 Robert Collins <rbtcollins@hotmail.com>
+
+ * ini.cc (do_remote_ini): Use setup.bz2 if it exists in preference to
+ setup.ini.
+
+2002-05-12 Robert Collins <rbtcollins@hotmail.com>
+
+ * geturl.h: Declare getUrlToStream.
+ * geturl.cc (getUrlToStream): New function.
+ (get_url_to_membuf): Refactor to use getUrlToStream.
+
+2002-05-11 Robert Collins <rbtcollins@hotmail.com>
+
+ * Makefile.am: Add a release target to automate some of the routine
+ work.
+ * Makefile.in: Regenerate.
+
+2002-05-11 Robert Collins <rbtcollins@hotmail.com>
+
+ * choose.cc (scan_downloaded_files): On local installs remove all
+ mirror sites if no cached copy of a package is found.
+