Skip to content

Commit

Permalink
Remove dead makeMutable() function
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
edolstra committed Aug 21, 2024
1 parent af26fe3 commit 3fe1b60
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 61 deletions.
59 changes: 0 additions & 59 deletions src/libstore/local-store.cc
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
# include <sched.h>
# include <sys/statvfs.h>
# include <sys/mount.h>
# include <sys/ioctl.h>
#endif

#ifdef __CYGWIN__
Expand Down Expand Up @@ -366,8 +365,6 @@ LocalStore::LocalStore(
have performed the upgrade already. */
curSchema = getSchema();

if (curSchema < 7) { upgradeStore7(); }

openDB(*state, false);

if (curSchema < 8) {
Expand Down Expand Up @@ -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()
{
auto state(_state.lock());
Expand Down
2 changes: 0 additions & 2 deletions src/libstore/local-store.hh
Original file line number Diff line number Diff line change
Expand Up @@ -373,8 +373,6 @@ private:

void updatePathInfo(State & state, const ValidPathInfo & info);

void upgradeStore6();
void upgradeStore7();
PathSet queryValidPathsOld();
ValidPathInfo queryPathInfoOld(const Path & path);

Expand Down

0 comments on commit 3fe1b60

Please sign in to comment.