Remove dead makeMutable() function

This code wasn't being compiled because the #if conditional didn't
trigger. Anyway, Nix 0.15 is 15 years old so we don't need to keep
this around.
This commit is contained in:
Eelco Dolstra 2024-08-21 16:45:46 +02:00
parent af26fe3934
commit 3fe1b60c57
2 changed files with 0 additions and 61 deletions

View file

@ -42,7 +42,6 @@
# include <sched.h> # include <sched.h>
# include <sys/statvfs.h> # include <sys/statvfs.h>
# include <sys/mount.h> # include <sys/mount.h>
# include <sys/ioctl.h>
#endif #endif
#ifdef __CYGWIN__ #ifdef __CYGWIN__
@ -366,8 +365,6 @@ LocalStore::LocalStore(
have performed the upgrade already. */ have performed the upgrade already. */
curSchema = getSchema(); curSchema = getSchema();
if (curSchema < 7) { upgradeStore7(); }
openDB(*state, false); openDB(*state, false);
if (curSchema < 8) { if (curSchema < 8) {
@ -1596,62 +1593,6 @@ std::optional<TrustedFlag> LocalStore::isTrustedClient()
} }
#if defined(FS_IOC_SETFLAGS) && defined(FS_IOC_GETFLAGS) && defined(FS_IMMUTABLE_FL)
static void makeMutable(const Path & path)
{
checkInterrupt();
auto st = lstat(path);
if (!S_ISDIR(st.st_mode) && !S_ISREG(st.st_mode)) return;
if (S_ISDIR(st.st_mode)) {
for (auto & i : readDirectory(path))
makeMutable(path + "/" + i.name);
}
/* The O_NOFOLLOW is important to prevent us from changing the
mutable bit on the target of a symlink (which would be a
security hole). */
AutoCloseFD fd = open(path.c_str(), O_RDONLY | O_NOFOLLOW
#ifndef _WIN32
| O_CLOEXEC
#endif
);
if (fd == INVALID_DESCRIPTOR) {
if (errno == ELOOP) return; // it's a symlink
throw SysError("opening file '%1%'", path);
}
unsigned int flags = 0, old;
/* Silently ignore errors getting/setting the immutable flag so
that we work correctly on filesystems that don't support it. */
if (ioctl(fd, FS_IOC_GETFLAGS, &flags)) return;
old = flags;
flags &= ~FS_IMMUTABLE_FL;
if (old == flags) return;
if (ioctl(fd, FS_IOC_SETFLAGS, &flags)) return;
}
/* Upgrade from schema 6 (Nix 0.15) to schema 7 (Nix >= 1.3). */
void LocalStore::upgradeStore7()
{
if (!isRootUser()) return;
printInfo("removing immutable bits from the Nix store (this may take a while)...");
makeMutable(realStoreDir);
}
#else
void LocalStore::upgradeStore7()
{
}
#endif
void LocalStore::vacuumDB() void LocalStore::vacuumDB()
{ {
auto state(_state.lock()); auto state(_state.lock());

View file

@ -373,8 +373,6 @@ private:
void updatePathInfo(State & state, const ValidPathInfo & info); void updatePathInfo(State & state, const ValidPathInfo & info);
void upgradeStore6();
void upgradeStore7();
PathSet queryValidPathsOld(); PathSet queryValidPathsOld();
ValidPathInfo queryPathInfoOld(const Path & path); ValidPathInfo queryPathInfoOld(const Path & path);