Robert Collins [Sun, 9 Mar 2003 02:17:49 +0000 (02:17 +0000)]
2003-03-09 Robert Collins <rbtcollins@hotmail.com>
* package_version.cc (_defaultversion::pick(bool)): Override this and do nothing.
(packageversion::pick(bool): Use a mutator function rather than direct member access.
* package_version.h (_packageversion::pick(bool)): Move method from _packageversion.
Robert Collins [Sun, 9 Mar 2003 01:39:42 +0000 (01:39 +0000)]
2003-02-16 Pavel Tsekov <ptsekov@gmx.net>
* install.cc (install_one_source): Remove the MD5 verification
code.
Delay the creation of the package listing file.
(do_install_thread): Check the hashes for packages which need
to be installed before the uninstall step. Allow the user to
skip over packages, which fail the hash verification.
(md5_one): Define new function.
* res.rc (IDS_SKIP_PACKAGE): New string resource.
* resource.h (IDS_SKIP_PACKAG): New macro definition.
Robert Collins [Sun, 9 Mar 2003 01:28:52 +0000 (01:28 +0000)]
2003-02-16 Pavel Tsekov <ptsekov@gmx.net>
* Exception.h: Declare new constructor.
(Exception::_message): Change the type from 'const char *' to
'class String'.
(Exception::~Exception): Implement destructor (make gcc shut up).
* Exception.cc: Implement new constructor.
(Exception::what): Use String::cstr_oneuse ().
* download.cc (validateCachedPackage): Use the constructor, which
takes String& as its second argument, when throwing objects
of type Exception.
(check_for_cached): Ditto.
* install.cc (install_one_source): Ditto.
Max Bowsher [Fri, 7 Mar 2003 22:25:31 +0000 (22:25 +0000)]
2003-03-05 Max Bowsher <maxb@ukf.net>
* netio.cc (save_dialog): Allocate an empty string if the password is
null, so that an empty password is accepted elsewhere in setup.
(check_if_enable_ok): An empty password is OK.
Max Bowsher [Wed, 5 Mar 2003 00:53:05 +0000 (00:53 +0000)]
2003-03-05 Brian Keener <bkeener@thesoftwaresource.com>
* PickView.cc (PickView::views): Add two new views for Skipped
packages and Installed Packages not requiring update.
(PickView::set_headers () ): Ditto.
(PickView::clear_view (void) ): Ditto.
(PickView::views::caption () ): Add two new captions for the new
views added for Skipped and Installed Packages.
(PickView::scroll () ): Modify Scroll Bar property to Disable
instead of disappearing when there is nothing to Scroll.
* PickView.h: Add two new views for Skipped packages and Installed
packages to public class view.
* choose.cc (list_click () ): Modify Scroll Bar property to Disable
instead of disappearing when there is nothing to Scroll.
(listview_proc () ): Ditto.
(set_view_mode): Add two new views for Skipped Packages and Installed
Packages not requiring update. Modify Scroll Bar property to Disable
instead of disappearing when there is nothing to scroll.
* res.rc (IDD_CHOOSE): Reposition Radio Buttons, View Selection
Button and View Button Caption to make room for longer captions.
Max Bowsher [Fri, 28 Feb 2003 22:31:28 +0000 (22:31 +0000)]
2003-02-28 Pierre Humblet <pierre.humblet@ieee.org>
* main.cc (set_default_dacl): Replace with set_default_sec.
(set_default_sec): Attempt to change the default group to
Users or Administrators if it is None, in addition to setting
Everyone in the default DACL.
(main): Call set_default_sec instead of set_default_dacl.
Max Bowsher [Wed, 15 Jan 2003 22:29:16 +0000 (22:29 +0000)]
2003-01-15 Max Bowsher <maxb@ukf.net>
* mkdir.cc [_CYGWIN_]: Implement what was pseudocode.
* io_stream.h [__CYGWIN__]: Don't typedef ssize_t.
* proppage.h: Include "win32.h" instead of <windows.h>.
Robert Collins [Tue, 26 Nov 2002 12:11:35 +0000 (12:11 +0000)]
2002-11-25 Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>
* window.h (Window::GetWindowRect): New method declaration.
(Window::GetClientRect): Ditto.
(Window::MoveWindow): Ditto.
(Window::ScreenToClient): Ditto.
* window.cc (REFLECTION_INFO): Remove.
(ReflectionInfo): Remove.
(Window::FirstWindowProcReflector): Use the WM_NCCREATE message instead
of the horrid REFLECTION_INFO hack to hook the Window instance to the
HWND instance.
(Window::WindowProcReflector): Use GetWindowLongPtr() now that it's
available.
(Window::Create): Change to use new WM_NCCREATE reflection procedure
above.
(Window::GetWindowRect): New method.
(Window::GetClientRect): New method.
(Window::MoveWindow): New method.
(Window::CenterWindow): Use new methods, also specify "::" for some non-
member functions with the same names.
(Window::ScreenToClient): New method.
Robert Collins [Mon, 25 Nov 2002 21:15:05 +0000 (21:15 +0000)]
2002-11-26 Robert Collins <rbtcollins@hotmail.com>
* IniDBBuilderPackage.cc (IniDBBuilderPackage::~IniDBBuilderPackage):
Sort the packages db once all the new packages have been added.
* IniDBBuilderPackage.h (IniDBBuilderPackage::~IniDBBuilderPackage):
Declare this.
Robert Collins [Mon, 25 Nov 2002 13:26:06 +0000 (13:26 +0000)]
2002-11-26 Robert Collins <rbtcollins@hotmail.com>
* choose.cc (ChooserPage::OnNext): Remove extracted comment.
* package_version.cc (processOneDependency): Return once selecting
a package (bugfix to prevous rework).
Log if the default trust fails the package specification.
Robert Collins [Mon, 25 Nov 2002 00:41:25 +0000 (00:41 +0000)]
2002-11-25 Robert Collins <rbtcollins@hotmail.com>
* AntiVirus.cc: New file.
* AntiVirus.h: Ditto.
* LogFile.cc: Include AntiVirus.h for class definition.
(LogFile::exit): Trigger AntiVirus::AtExit().
* MakeFile.am(setup_SOURCES): Add AntiVirus files.
* autoload.c: Declare Service Control Manager related API's.
* main.cc: Include AntiVirus.h for class definition.
(main): Add the AntiVirus page in.
* res.rc: Define IDD_VIRUS.
* resource.h: Define IDD_VIRUS related control ID's.
* splash.h: Override OnNext.
* splash.cc: Only show AntiVirus page when one has been detected.
* source.cc: Ditto.
Robert Collins [Sun, 24 Nov 2002 22:24:38 +0000 (22:24 +0000)]
2002-11-25 Robert Collins <rbtcollins@hotmail.com>
* package_version.cc (DependencyProcessor): Create convenience class.
(select): Extract version selection method.
(processOneDependency): Check for a satisfactory trusted version
first.
Robert Collins [Sun, 10 Nov 2002 08:09:55 +0000 (08:09 +0000)]
2002-11-10 Robert Collins <rbtcollins@hotmail.com>
* src/getopt.c: Only use our cdefs.h if the OS doesn't have one.
* Makefile.am: Only compile our getopt.h if the OS doesn't provide
getopt.h.
* configure.in: Ditto.
* tests/testoption.cc: Update for GCC-3.
Robert Collins [Sun, 10 Nov 2002 03:56:05 +0000 (03:56 +0000)]
2002-11-10 Robert Collins <rbtcollins@hotmail.com>
* main.cc (main): Use the factory for LogFile.
* String++.cc: Update to use sstream.
(String::String): Use a ostringstream for libC++ 3.2.
* LogFile.h (LogFile): Make createLogFile static.
Robert Collins [Sun, 10 Nov 2002 03:35:06 +0000 (03:35 +0000)]
2002-11-10 Robert Collins <rbtcollins@hotmail.com>
* compress_bz.cc: Don't include bzlib.h directly, the compress_bz.h
header includes it.
2002-11-04 Max Bowsher <maxb@ukf.net>
* compress_bz.h: #undef small before including bzlib.h - if we are
going to hide the fact that we are _WIN32 from bzlib, then we need
to #undef small for it as well (bad windows.h clash).
Robert Collins [Sat, 9 Nov 2002 14:47:54 +0000 (14:47 +0000)]
2002-11-10 Robert Collins <rbtcollins@hotmail.com>
* localdir.cc: Update the extern LogFile to be a pointer.
(save_local_dir): Change . to -> for the above.
* main.cc (theFile): Change from an instance to a pointer.
(main): Change . to -> for the above.
Robert Collins [Sat, 9 Nov 2002 14:32:56 +0000 (14:32 +0000)]
2002-11-10 Robert Collins <rbtcollins@hotmail.com>
* LogFile.cc: use 'std::' where needed throughout.
(LogFile::createLogFile): Implement a factory for LogFile.
(LogFile::LogFile): Update for use with the factory, and to
handle the latest g++ library changes.
(LogFile::operator()): Ditto.
(LogFile::endEntry()): Ditto.
* LogFile.h: Ditto.
* LogSingleton.cc: Ditto.
* LogSingleton.h: Ditto.
Robert Collins [Mon, 15 Jul 2002 13:29:38 +0000 (13:29 +0000)]
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.
Robert Collins [Sat, 13 Jul 2002 00:46:54 +0000 (00:46 +0000)]
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.
Robert Collins [Sun, 7 Jul 2002 15:35:04 +0000 (15:35 +0000)]
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.
Robert Collins [Sun, 7 Jul 2002 15:14:50 +0000 (15:14 +0000)]
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.
Robert Collins [Sat, 6 Jul 2002 13:29:34 +0000 (13:29 +0000)]
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.
Robert Collins [Fri, 5 Jul 2002 06:30:47 +0000 (06:30 +0000)]
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.
Robert Collins [Fri, 5 Jul 2002 05:58:56 +0000 (05:58 +0000)]
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.
Robert Collins [Wed, 3 Jul 2002 22:39:14 +0000 (22:39 +0000)]
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.
Robert Collins [Wed, 3 Jul 2002 14:31:23 +0000 (14:31 +0000)]
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.
Robert Collins [Tue, 2 Jul 2002 12:13:32 +0000 (12:13 +0000)]
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).
Robert Collins [Mon, 1 Jul 2002 20:58:54 +0000 (20:58 +0000)]
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.
Robert Collins [Thu, 27 Jun 2002 11:48:42 +0000 (11:48 +0000)]
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.
Robert Collins [Wed, 26 Jun 2002 21:35:16 +0000 (21:35 +0000)]
(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.
Robert Collins [Mon, 20 May 2002 07:03:18 +0000 (07:03 +0000)]
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.
Robert Collins [Sun, 19 May 2002 12:54:16 +0000 (12:54 +0000)]
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.
Robert Collins [Sun, 19 May 2002 08:51:19 +0000 (08:51 +0000)]
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.
Robert Collins [Sun, 19 May 2002 06:23:37 +0000 (06:23 +0000)]
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.
Robert Collins [Sun, 19 May 2002 03:07:54 +0000 (03:07 +0000)]
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.
* ini.cc (find_routine): Don't clear buffer it it's NULL.
* 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.
* 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.