From efd3179d9508d3d97b5aa1c54e5b817a305538ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Wed, 16 Sep 2015 14:18:13 +0100 Subject: [PATCH] Revert merge of branch luks-decorator. --- CMakeLists.txt | 2 +- src/core/partition.cpp | 9 +- src/fs/filesystem.cpp | 60 +---- src/fs/filesystem.h | 6 +- src/fs/linuxswap.cpp | 4 +- src/fs/linuxswap.h | 8 +- src/fs/luks.cpp | 252 ++------------------- src/fs/luks.h | 30 +-- src/plugins/libparted/CMakeLists.txt | 2 +- src/plugins/libparted/libpartedbackend.cpp | 54 ++++- src/plugins/libparted/libpartedbackend.h | 1 - src/util/CMakeLists.txt | 3 - src/util/helpers.cpp | 6 - src/util/helpers.h | 7 +- 14 files changed, 90 insertions(+), 354 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e8f77fb..b3dad68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,7 +73,7 @@ add_definitions( ) find_package(PkgConfig REQUIRED) -pkg_check_modules(BLKID REQUIRED blkid>=2.23) +pkg_check_modules(BLKID REQUIRED blkid) pkg_check_modules(LIBATASMART REQUIRED libatasmart) include_directories(${Qt5Core_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} ${BLKID_INCLUDE_DIRS} lib/ src/) diff --git a/src/core/partition.cpp b/src/core/partition.cpp index a7b29f2..cb27e5d 100644 --- a/src/core/partition.cpp +++ b/src/core/partition.cpp @@ -1,6 +1,5 @@ /************************************************************************* * Copyright (C) 2008 by Volker Lanz * - * Copyright (C) 2015 by Teo Mrnjavac * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * @@ -293,7 +292,7 @@ bool Partition::mount(Report& report) bool success = false; if (fileSystem().canMount(deviceNode())) - success = fileSystem().mount(deviceNode(), mountPoint()); + success = fileSystem().mount(deviceNode()); else { ExternalCommand mountCmd(report, QStringLiteral("mount"), QStringList() << QStringLiteral("-v") << deviceNode() << mountPoint()); if (mountCmd.run() && mountCmd.exitCode() == 0) @@ -322,11 +321,7 @@ bool Partition::unmount(Report& report) setMountPoint(QString()); } else { - ExternalCommand umountCmd(report, - QStringLiteral("umount"), - { QStringLiteral("-v"), - QStringLiteral("-A"), - deviceNode() }); + ExternalCommand umountCmd(report, QStringLiteral("umount"), QStringList() << QStringLiteral("-v") << deviceNode()); if (!umountCmd.run() || umountCmd.exitCode() != 0) success = false; } diff --git a/src/fs/filesystem.cpp b/src/fs/filesystem.cpp index 4132f4d..43dbba0 100644 --- a/src/fs/filesystem.cpp +++ b/src/fs/filesystem.cpp @@ -1,6 +1,5 @@ /************************************************************************* * Copyright (C) 2012 by Volker Lanz * - * Copyright (C) 2015 by Teo Mrnjavac * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * @@ -22,10 +21,8 @@ #include "util/capacity.h" #include - #include -#include const std::array< QColor, FileSystem::__lastType > FileSystem::defaultColorCode = { @@ -106,60 +103,6 @@ static QString readBlkIdValue(const QString& deviceNode, const QString& tag) return rval; } -FileSystem::Type FileSystem::detectFileSystem(const QString& partitionPath) -{ - FileSystem::Type rval = FileSystem::Unknown; - - blkid_cache cache; - if (blkid_get_cache(&cache, nullptr) == 0) { - blkid_dev dev; - - if ((dev = blkid_get_dev(cache, - partitionPath.toLocal8Bit().constData(), - BLKID_DEV_NORMAL)) != nullptr) { - QString s = QString::fromUtf8(blkid_get_tag_value(cache, - "TYPE", - partitionPath.toLocal8Bit().constData())); - - if (s == QStringLiteral("ext2")) rval = FileSystem::Ext2; - else if (s == QStringLiteral("ext3")) rval = FileSystem::Ext3; - else if (s.startsWith(QStringLiteral("ext4"))) rval = FileSystem::Ext4; - else if (s == QStringLiteral("swap")) rval = FileSystem::LinuxSwap; - else if (s == QStringLiteral("ntfs")) rval = FileSystem::Ntfs; - else if (s == QStringLiteral("reiserfs")) rval = FileSystem::ReiserFS; - else if (s == QStringLiteral("reiser4")) rval = FileSystem::Reiser4; - else if (s == QStringLiteral("xfs")) rval = FileSystem::Xfs; - else if (s == QStringLiteral("jfs")) rval = FileSystem::Jfs; - else if (s == QStringLiteral("hfs")) rval = FileSystem::Hfs; - else if (s == QStringLiteral("hfsplus")) rval = FileSystem::HfsPlus; - else if (s == QStringLiteral("ufs")) rval = FileSystem::Ufs; - else if (s == QStringLiteral("vfat")) { - // libblkid uses SEC_TYPE to distinguish between FAT16 and FAT32 - QString st = QString::fromUtf8(blkid_get_tag_value(cache, - "SEC_TYPE", - partitionPath.toLocal8Bit().constData())); - if (st == QStringLiteral("msdos")) - rval = FileSystem::Fat16; - else - rval = FileSystem::Fat32; - } else if (s == QStringLiteral("btrfs")) rval = FileSystem::Btrfs; - else if (s == QStringLiteral("ocfs2")) rval = FileSystem::Ocfs2; - else if (s == QStringLiteral("zfs_member")) rval = FileSystem::Zfs; - else if (s == QStringLiteral("hpfs")) rval = FileSystem::Hpfs; - else if (s == QStringLiteral("crypto_LUKS")) rval = FileSystem::Luks; - else if (s == QStringLiteral("exfat")) rval = FileSystem::Exfat; - else if (s == QStringLiteral("nilfs2")) rval = FileSystem::Nilfs2; - else if (s == QStringLiteral("LVM2_member")) rval = FileSystem::Lvm2_PV; - else - qWarning() << "blkid: unknown file system type " << s << " on " << partitionPath; - } - - blkid_put_cache(cache); - } - - return rval; -} - /** Reads the label for this FileSystem @param deviceNode the device node for the Partition the FileSystem is on @return the FileSystem label or an empty string in case of error @@ -441,9 +384,8 @@ void FileSystem::move(qint64 newStartSector) @param mountPoint the mount point to mount the FileSystem on @return true on success */ -bool FileSystem::mount(const QString &deviceNode, const QString &mountPoint) +bool FileSystem::mount(const QString& mountPoint) { - Q_UNUSED(deviceNode); Q_UNUSED(mountPoint); return false; diff --git a/src/fs/filesystem.h b/src/fs/filesystem.h index 38ad2bf..d89b48f 100644 --- a/src/fs/filesystem.h +++ b/src/fs/filesystem.h @@ -1,6 +1,5 @@ /************************************************************************* * Copyright (C) 2012 by Volker Lanz * - * Copyright (C) 2015 by Teo Mrnjavac * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * @@ -171,7 +170,6 @@ public: static QString nameForType(FileSystem::Type t); static QList types(); static FileSystem::Type typeForName(const QString& s); - static FileSystem::Type detectFileSystem(const QString& partitionPath); virtual bool canMount(const QString&) const { return false; /**< @return true if this FileSystem can be mounted */ @@ -183,8 +181,8 @@ public: virtual QString mountTitle() const; virtual QString unmountTitle() const; - virtual bool mount(const QString& deviceNode, const QString& mountPoint); - virtual bool unmount(const QString& deviceNode); + virtual bool mount(const QString& mountPoint); + virtual bool unmount(const QString& mountPoint); qint64 firstSector() const { return m_FirstSector; /**< @return the FileSystem's first sector */ diff --git a/src/fs/linuxswap.cpp b/src/fs/linuxswap.cpp index 66bdea8..f21a9cd 100644 --- a/src/fs/linuxswap.cpp +++ b/src/fs/linuxswap.cpp @@ -130,10 +130,8 @@ QString linuxswap::unmountTitle() const return i18nc("@title:menu", "Deactivate swap"); } -bool linuxswap::mount(const QString& deviceNode, const QString& mountPoint) +bool linuxswap::mount(const QString& deviceNode) { - Q_UNUSED(mountPoint); - ExternalCommand cmd(QStringLiteral("swapon"), QStringList() << deviceNode); return cmd.run(-1) && cmd.exitCode() == 0; } diff --git a/src/fs/linuxswap.h b/src/fs/linuxswap.h index e7010df..c4beef6 100644 --- a/src/fs/linuxswap.h +++ b/src/fs/linuxswap.h @@ -55,11 +55,11 @@ public: return true; } - virtual bool mount(const QString& deviceNode, const QString& mountPoint) override; - virtual bool unmount(const QString& deviceNode) override; + virtual bool mount(const QString& deviceNode); + virtual bool unmount(const QString& deviceNode); - virtual QString mountTitle() const override; - virtual QString unmountTitle() const override; + virtual QString mountTitle() const; + virtual QString unmountTitle() const; virtual CommandSupportType supportCreate() const { return m_Create; diff --git a/src/fs/luks.cpp b/src/fs/luks.cpp index 4daa45a..7782e11 100644 --- a/src/fs/luks.cpp +++ b/src/fs/luks.cpp @@ -1,7 +1,6 @@ /************************************************************************* * Copyright (C) 2012 by Volker Lanz * * Copyright (C) 2013 by Andrius Štikonas * - * Copyright (C) 2015 by Teo Mrnjavac * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * @@ -19,14 +18,11 @@ #include "fs/luks.h" -#include "fs/filesystemfactory.h" - #include "gui/decryptluksdialog.h" #include "util/capacity.h" #include "util/externalcommand.h" -#include #include #include #include @@ -49,22 +45,11 @@ FileSystem::CommandSupportType luks::m_SetLabel = FileSystem::cmdSupportNone; FileSystem::CommandSupportType luks::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType luks::m_GetUUID = FileSystem::cmdSupportNone; -luks::luks(qint64 firstsector, - qint64 lastsector, - qint64 sectorsused, - const QString& label) - : FileSystem(firstsector, lastsector, sectorsused, label, FileSystem::Luks) - , m_innerFs(nullptr) - , m_isCryptOpen(false) - , m_isMounted(false) +luks::luks(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label) : + FileSystem(firstsector, lastsector, sectorsused, label, FileSystem::Luks) { } -luks::~luks() -{ - delete m_innerFs; -} - void luks::init() { m_UpdateUUID = findExternal(QStringLiteral("cryptsetup")) ? cmdSupportFileSystem : cmdSupportNone; @@ -103,236 +88,39 @@ qint64 luks::minCapacity() const QString luks::mountTitle() const { - return i18nc("@title:menu", "Mount"); + return i18nc("@title:menu", "Decrypt"); } QString luks::unmountTitle() const -{ - return i18nc("@title:menu", "Unmount"); -} - -QString luks::cryptOpenTitle() const -{ - return i18nc("@title:menu", "Decrypt"); -} - -QString luks::cryptCloseTitle() const { return i18nc("@title:menu", "Deactivate"); } -bool luks::canMount(const QString& deviceNode) const +bool luks::mount(const QString& deviceNode) { - return m_isCryptOpen && - !m_isMounted && - m_innerFs && - m_innerFs->canMount(deviceNode); -} - -bool luks::canUnmount(const QString& deviceNode) const -{ - return m_isCryptOpen && - m_isMounted && - m_innerFs && - m_innerFs->canUnmount(deviceNode); -} - -bool luks::isMounted() const -{ - return m_isCryptOpen && m_isMounted; -} - -bool luks::canCryptOpen(const QString&) const -{ - return !m_isCryptOpen && !m_isMounted; -} - -bool luks::canCryptClose(const QString&) const -{ - return m_isCryptOpen && !m_isMounted; -} - -bool luks::isCryptOpen() const -{ - return m_isCryptOpen; -} - -bool luks::cryptOpen(const QString& deviceNode) -{ - if (m_isCryptOpen) - { - if (!mapperName(deviceNode).isEmpty()) - { - qWarning() << "LUKS device" << deviceNode - << "already decrypted." - << "Cannot decrypt again."; - return false; - } - else - { - qWarning() << "LUKS device" << deviceNode - << "reportedly decrypted but mapper node not found." - << "Marking device as NOT decrypted and trying to " - "decrypt again anyway."; - m_isCryptOpen = false; - } - } - QPointer dlg = new DecryptLuksDialog(0, deviceNode); //TODO: parent widget instead of 0 - if (dlg->exec() != QDialog::Accepted) + if (dlg->exec() == QDialog::Accepted) { + std::vector commands; + commands.push_back(QStringLiteral("echo")); + commands.push_back(QStringLiteral("cryptsetup")); + std::vector args; + args.push_back(QStringList() << dlg->luksPassphrase().text()); + args.push_back(QStringList() << QStringLiteral("luksOpen") << deviceNode << dlg->luksName().text()); + ExternalCommand cmd(commands, args); delete dlg; - return false; + return cmd.run(-1) && cmd.exitCode() == 0; } - std::vector commands; - commands.push_back(QStringLiteral("echo")); - commands.push_back(QStringLiteral("cryptsetup")); - std::vector args; - args.push_back(QStringList() << dlg->luksPassphrase().text()); - args.push_back(QStringList() << QStringLiteral("luksOpen") << deviceNode << dlg->luksName().text()); delete dlg; - - ExternalCommand cmd(commands, args); - if (!(cmd.run(-1) && cmd.exitCode() == 0)) - return false; - - if (m_innerFs) - { - delete m_innerFs; - m_innerFs = nullptr; - } - - QString mapperNode = mapperName(deviceNode); - if (mapperNode.isEmpty()) - return false; - - FileSystem::Type innerFsType = detectFileSystem(mapperNode); - m_innerFs = FileSystemFactory::cloneWithNewType(innerFsType, - *this); - - m_isCryptOpen = (m_innerFs != nullptr); - - if (m_isCryptOpen) - return true; - return false; -} - -bool luks::cryptClose(const QString& deviceNode) -{ - if (!m_isCryptOpen) - { - qWarning() << "Cannot close LUKS device" << deviceNode - << "because it's not open."; - return false; - } - - if (m_isMounted) - { - qWarning() << "Cannot close LUKS device" << deviceNode - << "because the filesystem is mounted."; - return false; - } - - ExternalCommand cmd(QStringLiteral("cryptsetup"), QStringList() << QStringLiteral("luksClose") << mapperName(deviceNode)); - if (!(cmd.run(-1) && cmd.exitCode() == 0)) - return false; - - delete m_innerFs; - m_innerFs = nullptr; - - m_isCryptOpen = (m_innerFs != nullptr); - - if (!m_isCryptOpen) - return true; - return false; -} - -bool luks::mount(const QString& deviceNode, const QString& mountPoint) -{ - if (!m_isCryptOpen) - { - qWarning() << "Cannot mount device" << deviceNode - << "before decrypting it first."; - return false; - } - - if (m_isMounted) - { - qWarning() << "Cannot mount device" << deviceNode - << "because it's already mounted."; - return false; - } - - Q_ASSERT(m_innerFs); - - QString mapperNode = mapperName(deviceNode); - if (mapperNode.isEmpty()) - return false; - - if (m_innerFs->canMount(mapperNode)) - { - if (m_innerFs->mount(mapperNode, mountPoint)) - { - m_isMounted = true; - return true; - } - } - else { - ExternalCommand mountCmd( - QStringLiteral("mount"), - { QStringLiteral("-v"), mapperNode, mountPoint }); - if (mountCmd.run() && mountCmd.exitCode() == 0) - { - m_isMounted = true; - return true; - } - } return false; } bool luks::unmount(const QString& deviceNode) { - if (!m_isCryptOpen) - { - qWarning() << "Cannot unmount device" << deviceNode - << "before decrypting it first."; - return false; - } - - if (!m_isMounted) - { - qWarning() << "Cannot unmount device" << deviceNode - << "because it's not mounted."; - return false; - } - - Q_ASSERT(m_innerFs); - - QString mapperNode = mapperName(deviceNode); - if (mapperNode.isEmpty()) - return false; - - if (m_innerFs->canUnmount(mapperNode)) - { - if (m_innerFs->unmount(mapperNode)) - { - m_isMounted = false; - return true; - } - } - else { - ExternalCommand unmountCmd( - QStringLiteral("mount"), - { QStringLiteral("-v"), QStringLiteral("-A"), mapperNode }); - if (unmountCmd.run() && unmountCmd.exitCode() == 0) - { - m_isMounted = false; - return true; - } - } - return false; + ExternalCommand cmd(QStringLiteral("cryptsetup"), QStringList() << QStringLiteral("luksClose") << mapperName(deviceNode)); + return cmd.run(-1) && cmd.exitCode() == 0; } QString luks::readUUID(const QString& deviceNode) const @@ -352,6 +140,16 @@ bool luks::updateUUID(Report& report, const QString& deviceNode) const return cmd.run(-1) && cmd.exitCode() == 0; } +bool luks::canMount(const QString&) const +{ + return true; +} + +bool luks::canUnmount(const QString&) const +{ + return true; +} + QString luks::mapperName(const QString& deviceNode) { ExternalCommand cmd(QStringLiteral("find"), QStringList() << QStringLiteral("/dev/mapper/") << QStringLiteral("-exec") << QStringLiteral("cryptsetup") << QStringLiteral("status") << QStringLiteral("{}") << QStringLiteral(";")); diff --git a/src/fs/luks.h b/src/fs/luks.h index de845a7..e2efa60 100644 --- a/src/fs/luks.h +++ b/src/fs/luks.h @@ -1,6 +1,5 @@ /************************************************************************* * Copyright (C) 2012 by Volker Lanz * - * Copyright (C) 2015 by Teo Mrnjavac * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * @@ -24,8 +23,7 @@ #include "../fs/filesystem.h" -#include -#include +#include class Report; @@ -40,7 +38,6 @@ class LIBKPMCORE_EXPORT luks : public FileSystem { public: luks(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label); - virtual ~luks(); public: static void init(); @@ -88,24 +85,13 @@ public: virtual QString readUUID(const QString& deviceNode) const; virtual bool updateUUID(Report& report, const QString& deviceNode) const; - virtual QString mountTitle() const override; - virtual QString unmountTitle() const override; - QString cryptOpenTitle() const; - QString cryptCloseTitle() const; - virtual bool canMount(const QString&) const; virtual bool canUnmount(const QString&) const; - bool isMounted() const; - bool canCryptOpen(const QString& deviceNode) const; - bool canCryptClose(const QString& deviceNode) const; - bool isCryptOpen() const; - - bool cryptOpen(const QString& deviceNode); - bool cryptClose(const QString& deviceNode); - - virtual bool mount(const QString& deviceNode, const QString& mountPoint) override; - virtual bool unmount(const QString& deviceNode) override; + virtual bool mount(const QString& deviceNode); + virtual bool unmount(const QString& deviceNode); + virtual QString mountTitle() const; + virtual QString unmountTitle() const; static QString mapperName(const QString& deviceNode); @@ -128,12 +114,6 @@ public: static CommandSupportType m_SetLabel; static CommandSupportType m_UpdateUUID; static CommandSupportType m_GetUUID; - -private: - FileSystem* m_innerFs; - - bool m_isCryptOpen; - bool m_isMounted; }; } diff --git a/src/plugins/libparted/CMakeLists.txt b/src/plugins/libparted/CMakeLists.txt index ff8c67d..e9037d4 100644 --- a/src/plugins/libparted/CMakeLists.txt +++ b/src/plugins/libparted/CMakeLists.txt @@ -29,7 +29,7 @@ file (GLOB pmlibpartedbackendplugin_SRCS *.cpp) add_library(pmlibpartedbackendplugin SHARED ${pmlibpartedbackendplugin_SRCS}) -target_link_libraries(pmlibpartedbackendplugin kpmcore ${LIBPARTED_LIBS} KF5::KIOCore KF5::I18n) +target_link_libraries(pmlibpartedbackendplugin kpmcore ${LIBPARTED_LIBS} ${BLKID_LIBRARIES} KF5::KIOCore KF5::I18n) install(TARGETS pmlibpartedbackendplugin DESTINATION ${PLUGIN_INSTALL_DIR}) kcoreaddons_desktop_to_json(pmlibpartedbackendplugin pmlibpartedbackendplugin.desktop) diff --git a/src/plugins/libparted/libpartedbackend.cpp b/src/plugins/libparted/libpartedbackend.cpp index 9f92cf0..618e892 100644 --- a/src/plugins/libparted/libpartedbackend.cpp +++ b/src/plugins/libparted/libpartedbackend.cpp @@ -1,6 +1,5 @@ /************************************************************************* * Copyright (C) 2008-2012 by Volker Lanz * - * Copyright (C) 2015 by Teo Mrnjavac * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * @@ -49,6 +48,7 @@ #include #include +#include K_PLUGIN_FACTORY_WITH_JSON(LibPartedBackendFactory, "pmlibpartedbackendplugin.json", registerPlugin();) @@ -345,10 +345,8 @@ void LibPartedBackend::scanDevicePartitions(PedDevice*, Device& d, PedDisk* pedD QString mountPoint; bool mounted; if (fs->type() == FileSystem::Luks) { - mounted = dynamic_cast(fs)->isMounted(); - mountPoint = mountPoints.findByDevice(FS::luks::mapperName(node)) ? - mountPoints.findByDevice(FS::luks::mapperName(node))->mountPoint() : - QString(); + mountPoint = FS::luks::mapperName(node); + mounted = (mountPoint != QString()) ? true : false; } else { mountPoint = mountPoints.findByDevice(node) ? mountPoints.findByDevice(node)->mountPoint() : QString(); mounted = ped_partition_is_busy(pedPartition); @@ -480,12 +478,50 @@ FileSystem::Type LibPartedBackend::detectFileSystem(PedPartition* pedPartition) { FileSystem::Type rval = FileSystem::Unknown; - char* pedPath = ped_partition_get_path(pedPartition); + blkid_cache cache; + char* pedPath = nullptr; - if (pedPath) - rval = FileSystem::detectFileSystem(QString::fromUtf8(pedPath)); + if (blkid_get_cache(&cache, nullptr) == 0 && (pedPath = ped_partition_get_path(pedPartition))) { + blkid_dev dev; - free(pedPath); + if ((dev = blkid_get_dev(cache, pedPath, BLKID_DEV_NORMAL)) != nullptr) { + QString s = QString::fromUtf8(blkid_get_tag_value(cache, "TYPE", pedPath)); + + if (s == QStringLiteral("ext2")) rval = FileSystem::Ext2; + else if (s == QStringLiteral("ext3")) rval = FileSystem::Ext3; + else if (s.startsWith(QStringLiteral("ext4"))) rval = FileSystem::Ext4; + else if (s == QStringLiteral("swap")) rval = FileSystem::LinuxSwap; + else if (s == QStringLiteral("ntfs")) rval = FileSystem::Ntfs; + else if (s == QStringLiteral("reiserfs")) rval = FileSystem::ReiserFS; + else if (s == QStringLiteral("reiser4")) rval = FileSystem::Reiser4; + else if (s == QStringLiteral("xfs")) rval = FileSystem::Xfs; + else if (s == QStringLiteral("jfs")) rval = FileSystem::Jfs; + else if (s == QStringLiteral("hfs")) rval = FileSystem::Hfs; + else if (s == QStringLiteral("hfsplus")) rval = FileSystem::HfsPlus; + else if (s == QStringLiteral("ufs")) rval = FileSystem::Ufs; + else if (s == QStringLiteral("vfat") && pedPartition->fs_type != nullptr) { + // libblkid does not distinguish between fat16 and fat32, so we're still using libparted + // for those + if (strcmp(pedPartition->fs_type->name, "fat16") == 0) + rval = FileSystem::Fat16; + else if (strcmp(pedPartition->fs_type->name, "fat32") == 0) + rval = FileSystem::Fat32; + } else if (s == QStringLiteral("btrfs")) rval = FileSystem::Btrfs; + else if (s == QStringLiteral("ocfs2")) rval = FileSystem::Ocfs2; + else if (s == QStringLiteral("zfs_member")) rval = FileSystem::Zfs; + else if (s == QStringLiteral("hpfs")) rval = FileSystem::Hpfs; + else if (s == QStringLiteral("crypto_LUKS")) rval = FileSystem::Luks; + else if (s == QStringLiteral("exfat")) rval = FileSystem::Exfat; + else if (s == QStringLiteral("nilfs2")) rval = FileSystem::Nilfs2; + else if (s == QStringLiteral("LVM2_member")) rval = FileSystem::Lvm2_PV; + else + qWarning() << "blkid: unknown file system type " << s << " on " << pedPath; + } + + blkid_put_cache(cache); + + free(pedPath); + } return rval; } diff --git a/src/plugins/libparted/libpartedbackend.h b/src/plugins/libparted/libpartedbackend.h index f4853af..7f1e38a 100644 --- a/src/plugins/libparted/libpartedbackend.h +++ b/src/plugins/libparted/libpartedbackend.h @@ -1,6 +1,5 @@ /************************************************************************* * Copyright (C) 2008, 2010 by Volker Lanz * - * Copyright (C) 2015 by Teo Mrnjavac * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index 443afad..c8b2ea3 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -1,5 +1,3 @@ -set_source_files_properties( util/ismounted.c PROPERTIES LANGUAGE CXX ) - set(UTIL_SRC util/capacity.cpp util/externalcommand.cpp @@ -7,7 +5,6 @@ set(UTIL_SRC util/helpers.cpp util/htmlreport.cpp util/report.cpp - util/ismounted.c ) set(UTIL_LIB_HDRS diff --git a/src/util/helpers.cpp b/src/util/helpers.cpp index 4f0c621..e4c3a52 100644 --- a/src/util/helpers.cpp +++ b/src/util/helpers.cpp @@ -17,7 +17,6 @@ #include "util/helpers.h" #include "../util/globallog.h" -#include "../util/ismounted.h" #include "../ops/operation.h" @@ -67,8 +66,3 @@ void showColumnsContextMenu(const QPoint& p, QTreeWidget& tree) tree.resizeColumnToContents(action->data().toInt()); } } - -bool isMounted(const QString& deviceNode) -{ - return is_mounted(deviceNode.toLatin1().constData()); -} diff --git a/src/util/helpers.h b/src/util/helpers.h index 9d549df..fe033ad 100644 --- a/src/util/helpers.h +++ b/src/util/helpers.h @@ -19,10 +19,11 @@ #define HELPERS__H -#include "../fs/filesystem.h" - #include "../util/libpartitionmanagerexport.h" +#include "../fs/filesystem.h" + +class KAboutData; class QString; class QPoint; class QTreeWidget; @@ -35,6 +36,4 @@ LIBKPMCORE_EXPORT void showColumnsContextMenu(const QPoint& p, QTreeWidget& tree LIBKPMCORE_EXPORT bool checkAccessibleDevices(); -LIBKPMCORE_EXPORT bool isMounted(const QString& deviceNode); - #endif