if (List.size() == 0 && SourceList.size() == 0)
{
- UnmountCdrom(CDROM);
+ if (_config->FindB("APT::CDROM::NoMount",false) == false)
+ UnmountCdrom(CDROM);
return _error->Error("Unable to locate any package files, perhaps this is not a Debian Disc");
}
{
if(!log)
{
- UnmountCdrom(CDROM);
+ if (_config->FindB("APT::CDROM::NoMount",false) == false)
+ UnmountCdrom(CDROM);
return _error->Error("No disc name found and no way to ask for it");
}
string::size_type Space = (*I).find(' ');
if (Space == string::npos)
{
- UnmountCdrom(CDROM);
+ if (_config->FindB("APT::CDROM::NoMount",false) == false)
+ UnmountCdrom(CDROM);
return _error->Error("Internal error");
}
string::size_type Space = (*I).find(' ');
if (Space == string::npos)
{
- UnmountCdrom(CDROM);
+ if (_config->FindB("APT::CDROM::NoMount",false) == false)
+ UnmountCdrom(CDROM);
return _error->Error("Internal error");
}
##################################################################### */
/*}}}*/
#ifndef PKGLIB_CDROMUTL_H
-#define PKGLIB_ACQUIRE_METHOD_H
+#define PKGLIB_CDROMUTL_H
#include <string>
bool MountCdrom(string Path);
bool UnmountCdrom(string Path);
bool IdentCdrom(string CD,string &Res,unsigned int Version = 2);
+bool IsMounted(string &Path);
#endif
- send apt version in User-Agent
* apt-pkg/deb/debrecords.cc:
- fix SHA1Hash() return value
+ * apt-pkg/cdrom.cc:
+ - only unmount if APT::CDROM::NoMount is false
+ * methods/cdrom.cc:
+ - only umount if it was mounted by the method before
-- Michael Vogt <michael.vogt@ubuntu.com> Mon, 18 Dec 2006 19:39:05 +0100
::Configuration Database;
string CurrentID;
string CDROM;
- bool Mounted;
+ bool MountedByApt;
virtual bool Fetch(FetchItem *Itm);
string GetID(string Name);
SendConfig | NeedsCleanup |
Removable),
DatabaseLoaded(false),
- Mounted(false)
+ MountedByApt(false)
{
};
/*}}}*/
/* */
void CDROMMethod::Exit()
{
- if (Mounted == true)
+ if (MountedByApt == true)
UnmountCdrom(CDROM);
}
/*}}}*/
while (CurrentID.empty() == true)
{
bool Hit = false;
- Mounted = MountCdrom(CDROM);
+ if(!IsMounted(CDROM))
+ MountedByApt = MountCdrom(CDROM);
for (unsigned int Version = 2; Version != 0; Version--)
{
if (IdentCdrom(CDROM,NewID,Version) == false)
break;
// I suppose this should prompt somehow?
- if (UnmountCdrom(CDROM) == false)
+ if (_config->FindB("APT::CDROM::NoMount",false) == false &&
+ UnmountCdrom(CDROM) == false)
return _error->Error(_("Unable to unmount the CD-ROM in %s, it may still be in use."),
CDROM.c_str());
if (MediaFail(Get.Host,CDROM) == false)
msgid "Unparsable control file"
msgstr ""
-#: methods/cdrom.cc:114
+#: methods/cdrom.cc:115
#, c-format
msgid "Unable to read the cdrom database %s"
msgstr ""
-#: methods/cdrom.cc:123
+#: methods/cdrom.cc:124
msgid ""
"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update "
"cannot be used to add new CD-ROMs"
msgstr ""
-#: methods/cdrom.cc:131
+#: methods/cdrom.cc:132
msgid "Wrong CD-ROM"
msgstr ""
-#: methods/cdrom.cc:164
+#: methods/cdrom.cc:166
#, c-format
msgid "Unable to unmount the CD-ROM in %s, it may still be in use."
msgstr ""
-#: methods/cdrom.cc:169
+#: methods/cdrom.cc:171
msgid "Disk not found."
msgstr ""
-#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264
+#: methods/cdrom.cc:179 methods/file.cc:79 methods/rsh.cc:264
msgid "File not found"
msgstr ""
"Mounting CD-ROM\n"
msgstr ""
-#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598
+#: apt-pkg/cdrom.cc:518 apt-pkg/cdrom.cc:600
msgid "Identifying.. "
msgstr ""
-#: apt-pkg/cdrom.cc:541
+#: apt-pkg/cdrom.cc:543
#, c-format
msgid "Stored label: %s \n"
msgstr ""
-#: apt-pkg/cdrom.cc:561
+#: apt-pkg/cdrom.cc:563
#, c-format
msgid "Using CD-ROM mount point %s\n"
msgstr ""
-#: apt-pkg/cdrom.cc:579
+#: apt-pkg/cdrom.cc:581
msgid "Unmounting CD-ROM\n"
msgstr ""
-#: apt-pkg/cdrom.cc:583
+#: apt-pkg/cdrom.cc:585
msgid "Waiting for disc...\n"
msgstr ""
#. Mount the new CDROM
-#: apt-pkg/cdrom.cc:591
+#: apt-pkg/cdrom.cc:593
msgid "Mounting CD-ROM...\n"
msgstr ""
-#: apt-pkg/cdrom.cc:609
+#: apt-pkg/cdrom.cc:611
msgid "Scanning disc for index files..\n"
msgstr ""
-#: apt-pkg/cdrom.cc:647
+#: apt-pkg/cdrom.cc:649
#, c-format
msgid "Found %i package indexes, %i source indexes and %i signatures\n"
msgstr ""
-#: apt-pkg/cdrom.cc:710
+#: apt-pkg/cdrom.cc:714
msgid "That is not a valid name, try again.\n"
msgstr ""
-#: apt-pkg/cdrom.cc:726
+#: apt-pkg/cdrom.cc:730
#, c-format
msgid ""
"This disc is called: \n"
"'%s'\n"
msgstr ""
-#: apt-pkg/cdrom.cc:730
+#: apt-pkg/cdrom.cc:734
msgid "Copying package lists..."
msgstr ""
-#: apt-pkg/cdrom.cc:754
+#: apt-pkg/cdrom.cc:758
msgid "Writing new source list\n"
msgstr ""
-#: apt-pkg/cdrom.cc:763
+#: apt-pkg/cdrom.cc:767
msgid "Source list entries for this disc are:\n"
msgstr ""
-#: apt-pkg/cdrom.cc:803
+#: apt-pkg/cdrom.cc:810
msgid "Unmounting CD-ROM..."
msgstr ""