Commit Graph

759 Commits

Author SHA1 Message Date
Andrius Štikonas f426f59799 Use QFile for writing data in ExternalCommandHelper::writeData
dd works much slower when writing to files, especially files on SSD.
Thanks to Huzaifa Faruqui for suggestion.
2018-02-03 15:58:36 +00:00
Andrius Štikonas 5c307c1cc7 Use toLongLong in KAuth helper.
Otherwise all integers simply overflow.
2018-02-02 18:33:35 +00:00
Andrius Štikonas 4870587339 Set sfdisk backend as default. 2018-01-31 18:50:49 +00:00
Andrius Štikonas 7e60df68bd Do not expose libparted backend on non Linux systems. 2018-01-31 17:08:05 +00:00
Andrius Štikonas f2b7f2bd9b Use const char* instead of QString in Fstab::findBlkIdDevice
Thansk to: Adriaan de Groot
2018-01-31 17:02:59 +00:00
Andrius Štikonas f98dbcc208 Only use libblkid on Linux. 2018-01-31 16:58:00 +00:00
Andrius Štikonas 838150d439 Do not use blkid cache. 2018-01-31 16:53:34 +00:00
Andrius Štikonas c50006ed22 Fix #include issues in smart code.
CC: caiojcarvalho@gmail.com
2018-01-31 16:12:11 +00:00
Andrius Štikonas 56de5e1e06 Merge branch 'master' into kauth 2018-01-31 16:03:58 +00:00
Andrius Štikonas 67f79f42dd Add cmake option for sfdisk backend. 2018-01-31 16:03:51 +00:00
Andrius Štikonas 9ea7cab92a Merge branch 'master' into kauth 2018-01-31 15:15:25 +00:00
Andrius Štikonas ba4e443223 Move file system label and UUID read code to backends.
This allows to use different implementations on different platforms.
E.g. libblkid is not available on FreeBSD.

libparted backend still uses the same libblkid implementation
sfdisk backend reads label and UUID from udev database
2018-01-31 15:13:34 +00:00
Andrius Štikonas 7e8f64ffd7 Fix a possibly uninitialized variable. 2018-01-31 14:58:43 +00:00
Andrius Štikonas 2534608094 Use btrfs check --repair instead of btrfsck. 2018-01-29 13:30:14 +00:00
Andrius Štikonas 3a6aa4aaa0 Do not link to libatasmart. 2018-01-29 12:49:25 +00:00
Huzaifa Faruqui b143c139e5 Fix Report in copyBlocks 2018-01-29 16:45:21 +05:30
Andrius Štikonas dd709fc8a9 Remove unnecessary extra LIBKPMCORE_EXPORT macros. 2018-01-27 13:15:19 +00:00
Andrius Štikonas bf2a23dada Use copyjobs KAuth helper for other copying jobs too. 2018-01-24 15:45:19 +00:00
Andrius Štikonas 61fed73a5d Remove some debug output. 2018-01-24 15:35:11 +00:00
Huzaifa Faruqui e42a5c9289 Implement copyblocks function in KAuth helper.
Switch BackupFileSystemJob to thenew copyblocks function.

Reviewed and cleaned up by: Andrius Štikonas
2018-01-24 15:22:42 +00:00
Andrius Štikonas 4eff7d7594 Do not export CoreBackendDevice and CoreBackendPartitionTable classes. 2018-01-21 13:53:07 +00:00
Caio Carvalho a3d43e159f Removing LIBKPMCORE_EXPORT from SmartParser and adding SMART support dependencies to testsmart in cmake 2018-01-21 01:41:59 -03:00
Caio Carvalho 49c0c39f4b - Including SMART support test
- Adding export macro to SmartParser
2018-01-20 21:56:10 -03:00
l10n daemon script 098b9bc2ae SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-01-14 04:49:26 +01:00
l10n daemon script 85085d8eb7 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-01-13 04:47:56 +01:00
Andrius Štikonas d2ee0010d0 Update credits. 2018-01-12 11:32:09 +01:00
Andrius Štikonas 1c024c6b29 Fix a typo in the comment. 2018-01-11 21:59:18 +01:00
Caio Carvalho 0190d32cf6 Including doxygen comments to the new SMART support classes 2018-01-11 17:38:53 -03:00
Andrius Štikonas a135c86ba1 Use QStringLiteral instead of QString::fromLocal8Bit 2018-01-11 14:17:55 +01:00
Andrius Štikonas ed7c5b1c77 Use long command line option for smartctl. 2018-01-11 12:00:52 +01:00
Andrius Štikonas 4069e5112e Post merge fixes.
In kauth branch ExternalCommand::write should be called before start.
2018-01-11 11:45:39 +01:00
Andrius Štikonas 790553aa0b Merge branch 'smart' into kauth 2018-01-11 11:31:18 +01:00
Caio Carvalho 44fae61d4f - Removing libatasmart dependency from CMakeLists.txt
- Changing getQuirk regular expression evaluation to use QRegularExpression instead of QRegExp
2018-01-09 19:34:20 -03:00
Caio Carvalho d71731141c - Changed m_Quirk variable in SmartAttributeParsedData to SmartQuirk value instead of reference
- Changed smartctl call to use ExternalCommand class instead of QProcess
- Changed Q_FOREACH to C++11 ranged based for
- Changed quint64 json parsing
2018-01-09 01:35:59 -03:00
Caio Carvalho 8177fb9738 Adding smart JSON output support 2018-01-08 17:59:48 -03:00
l10n daemon script 5376808159 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-01-07 04:56:23 +01:00
l10n daemon script ba3676e165 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-01-04 04:49:48 +01:00
Pali Rohár 2f4aeaf851 Add support for reading capacity and changing label/uuid on UDF filesystem 2018-01-03 20:09:53 +02:00
Andrius Štikonas 8b9451c8d7 We don't need keyLocation for luks1 file system it is always dm-crypt. 2017-12-29 22:53:02 +00:00
Andrius Štikonas 1802b7ad05 Add luks2::create method. 2017-12-29 20:38:36 +00:00
Andrius Štikonas 4773f49edc Initial support for resizing LUKS2 volumes.
Does not yet work when LUKS2 is used with dm-integrity.
2017-12-29 20:01:06 +00:00
Andrius Štikonas 78a9ede36c Do not install internal backend headers. 2017-12-27 16:16:11 +00:00
Andrius Štikonas a6a69b1e31 Merge branch 'sfdisk' into kauth 2017-12-25 00:13:18 +00:00
Andrius Štikonas 590b531863 Commit partition table when closing Sfdisk backend device. 2017-12-25 00:11:13 +00:00
Andrius Štikonas 41570fde5d Set FAT12 MBR/GPT partition type. 2017-12-24 23:56:03 +00:00
Andrius Štikonas f20bea9bf8 Merge branch 'sfdisk' into kauth 2017-12-24 23:40:06 +00:00
Andrius Štikonas 97ccd8d154 Merge branch 'master' into sfdisk 2017-12-24 23:38:39 +00:00
Andrius Štikonas 5123411f1f Add support for FAT12 file system. 2017-12-24 23:24:37 +00:00
Andrius Štikonas 8de54d390e Make default LUKS2 colour different from LUKS. 2017-12-24 20:38:46 +00:00
Andrius Štikonas 3e7e9d8955 Sort partitions by first sector. 2017-12-21 23:16:12 +00:00
Andrius Štikonas f9cd824075 Add a comment about boot flags. 2017-12-20 15:03:48 +00:00
Andrius Štikonas f8cbd28238 Remove FIXME that was already fixed. 2017-12-16 12:55:34 +00:00
Andrius Štikonas 76934a0cba Add forgotten luks2 files. 2017-12-15 19:35:30 +00:00
Andrius Štikonas 3a691edb4a Do not install copy source/target device headers. 2017-12-15 19:33:11 +00:00
Andrius Štikonas 7aa77f489d Add FileSystem::Luks2 child class. 2017-12-14 02:08:32 +00:00
Andrius Štikonas 8c030baf3e Switch file system detection code to udevadm. 2017-12-14 01:14:45 +00:00
Andrius Štikonas 3f562ab0f0 Allow reading LUKS label. 2017-12-13 00:07:55 +00:00
Andrius Štikonas fdf6e19de0 Remove another workaround which hopefully is no longer necessary. 2017-12-10 19:56:04 +00:00
Andrius Štikonas 8264c87ab8 Cleanup unnecessary includes. 2017-12-10 18:44:54 +00:00
Andrius Štikonas 27462bcddb Remove workaround to access user dbus session as root. 2017-12-10 18:09:03 +00:00
Andrius Štikonas 4cc07d2366 Adapt ntfs updateBootSector changes to kauth branch. 2017-12-10 17:37:10 +00:00
Andrius Štikonas 192305c1d5 Close write channel after writing to QProcess. 2017-12-10 17:36:39 +00:00
Andrius Štikonas 906a89c16d Use ExternalCommand to copy fstab file to its final location. 2017-12-10 17:36:39 +00:00
Andrius Štikonas d2f13ff4cc QFile->QTemporaryFile. 2017-12-10 17:36:39 +00:00
Andrius Štikonas 47429dd1bf Proof of concept attempt to implement KAuth. 2017-12-10 17:36:39 +00:00
Andrius Štikonas e7b0192630 Merge branch 'master' into sfdisk 2017-12-10 17:35:35 +00:00
Andrius Štikonas e49a266922 ntfs: update backup boot sector too
When moving NTFS partition to a new location we need to update its boot sector
as well as backup boot sector. Otherwise ntfslabel --new-serial won't work.
2017-12-10 17:34:07 +00:00
Andrius Štikonas def62c975d Replace ntfs with ntfs-3g in lsblk file system detection code. 2017-12-09 23:31:31 +00:00
Andrius Štikonas c3827b0c60 Call kpartx to reread partition table. 2017-12-09 23:29:18 +00:00
Andrius Štikonas e3d01cf25f Do not attempt to set empty partition type. 2017-12-09 19:19:36 +00:00
Andrius Štikonas 4c2efe8c52 Add partition type map. 2017-12-07 23:24:03 +00:00
Andrius Štikonas 55b8cd3e6b sfdisk: store a pointer to the device in SfdiskPartitionTable class. 2017-12-07 20:50:54 +00:00
Andrius Štikonas 41473119b1 backend: provide more information about backend device.
Pass Device object, not just deviceNode string when opening Core Backend Device
2017-12-06 21:33:31 +00:00
Andrius Štikonas 0bfb7094df Merge branch 'master' into sfdisk 2017-12-06 00:41:19 +00:00
Andrius Štikonas e66fb4b95e Do not attempt to set partition flags that were not changed. 2017-12-06 00:27:02 +00:00
Andrius Štikonas d27455b6f0 Avoid unnecessary QString encoding/decoding.
CCBUG: 384321
2017-12-04 21:19:11 +00:00
Andrius Štikonas 8afe33a4a4 Allow setting label for inner LUKS file system during the initial creation. 2017-12-03 16:28:16 +00:00
Andrius Štikonas f09cb6435e Fix conversion to/from QByteArray in sfdisk backend.
CCBUG: 384321
2017-12-03 12:40:57 +00:00
Andrius Štikonas 6996687123 Merge branch 'master' into sfdisk 2017-12-03 12:38:43 +00:00
Andrius Štikonas 4bf5bb467f Fix conversion to/from QString/QByteArray
BUG: 384321
2017-12-03 12:37:21 +00:00
Andrius Štikonas f1a695bdac Add support for growing f2fs file system. 2017-11-13 19:34:52 +00:00
Andrius Štikonas be7ba11f17 Remove unnecessary semicolons. 2017-11-12 14:55:55 +00:00
Andrius Štikonas fad8a3568e Fix the previous commit.
FileSystem::create is never called if createWithLabel is available.
2017-11-12 14:45:49 +00:00
Andrius Štikonas 58f2decdf8 Support newer f2fs-tools versions.
BUG: 386771
2017-11-12 13:07:48 +00:00
Andrius Štikonas fcfd78cdc4 Add support for fatresize program. 2017-11-09 23:14:52 +00:00
Andrius Štikonas d3cde41df0 Allow setting boot, esp and bios-grub flags in sfdisk backend. 2017-11-08 00:01:24 +00:00
Andrius Štikonas 80de99fc73 Move setFlags function from CoreBackendPartition to CoreBackendPartitionTable.
setFlags function now takes additional argument const Partition& partition.
This allows us to completely remove CoreBackendPartition class.
Remove getPartitionBySector and getExtendedPartitions.
These functions were designed around libparted API and are not very convenient
with other backends.
2017-11-07 22:55:28 +00:00
Andrius Štikonas 0d88e26c8c Add an experimental sfdisk backend. 2017-11-07 22:51:29 +00:00
Andrius Štikonas a6415561ae SetPartFlagsJob should return error when it is unable to find partition. 2017-11-07 03:07:51 +00:00
Andrius Štikonas 89a5308686 btrfs: implement updateUUID. 2017-11-05 20:42:40 +00:00
Andrius Štikonas 9ea983654c Do not export symbols of CopySource(Target)Device
Calamares resize jobs was ported to ResizeOperation, so this is no longer
necessary.
2017-11-01 20:11:38 +00:00
Andrius Štikonas 87e210432d Merge branch '3.2' 2017-10-31 16:16:36 +00:00
Andrius Štikonas 8909dd87d0 Add a workaround for device not ready error.
In rare cases after moving file system to a new location file system check
fails on the first try. As a temporary workaround, wait a bit and try again.
2017-10-30 15:59:05 +00:00
Andrius Štikonas 55e445b069 More user friendly copying direction message in the log. 2017-10-30 14:24:55 +00:00
Andrius Štikonas 72dfbe480a Replace readSectors/writeSectors backend functions.
New alternatives use QByteArray to store data and use bytes, not sectors.
2017-10-28 18:07:44 +01:00
Andrius Štikonas e4c125c519 Do not over encapsulate Partition methods.
This caused more trouble than helped. There is no reason not to allow
e.g. settings new flags on partition or changing it's path.
2017-10-09 21:13:58 +01:00
Andrius Štikonas d741fe4a00 Fix a typo in a comment. 2017-10-09 17:37:16 +01:00
Andrius Štikonas 9f3b2b8fd4 Use qOverload in Qt signal/slots. 2017-10-09 13:39:34 +01:00
Andrius Štikonas 2760f02fbf Move LVM device scanning code.
Now it's the backend's responsibility to find LVM devices.
All LVM scanning code was moved into LvmDevice::scanSystemLVM helper,
so that it is very easy to plug LVM into backend.

LVM devices are now intentionally not detected in Dummy Backend.
2017-10-06 03:17:51 +01:00
Andrius Štikonas 15eabf9859 Add some comments about LVM in DeviceScanner. 2017-10-03 21:02:40 +01:00
Adriaan de Groot c4ae5d680c Docs: document Device (a description) and CoreBackendDevice (an operational class) 2017-10-03 05:56:16 -04:00
Adriaan de Groot 98caf84424 Docs: change parameter name to match intention.
Document that  means exclude-read-only and change the
name to match. It was already named excludeReadOnly in the
parted backend.
2017-10-03 05:56:16 -04:00
Andrius Štikonas 80c5cb5a1f Remove no longer used include. 2017-10-03 02:32:36 +01:00
Andrius Štikonas 40e22c94f2 Store ExternalCommand output in QByteArray.
This makes it possible to run dd with ExternalCommand.
2017-10-03 02:27:47 +01:00
Andrius Štikonas 37d3639bfe Update credits. 2017-10-02 22:44:58 +01:00
Adriaan de Groot e67b6b6a2b Docs: Add documentation about FileSystem::name() 2017-10-02 16:16:49 +02:00
Andrius Štikonas 8fd723770a Update credits. 2017-10-02 01:40:41 +01:00
Andrius Štikonas 722ef62ebb Port away from KService. 2017-10-01 22:05:50 +01:00
Andrius Štikonas 8c3ab58d84 Add a comment about FAT volume ID hack. 2017-09-28 14:24:13 +01:00
Pali Rohár e957c220bd Disallow non-ASCII and ASCII control characters in FAT label
FAT label is interpreted according to current OEM DOS codepage which is
system dependent setting. But most DOS codepages have same characters in
printable ASCII range, so this is the only safe range of characters which
are interpreted in same way by most programs and operating systems. Also
all DOS codepages are only 8bit, so characters above U+FF cannot be stored
to FAT label.
2017-09-26 22:02:02 +01:00
Pali Rohár 5a30aff288 Set FAT label in upper case
FAT label should be stored in upper case. Also Windows systems doing it.
2017-09-26 22:01:56 +01:00
Andrius Štikonas 098fdee506 fstab fixes:
* Do not output # for empty inline comments.
  * More checks to validate fstab entry.
2017-09-20 21:22:53 +01:00
Andrius Štikonas a3732c1459 Fix a typo. Remove extra trimmed(). 2017-09-17 13:52:48 +01:00
Andrius Štikonas 1713f66872 Fix reading partition label. 2017-09-17 13:06:31 +01:00
Andrius Štikonas d99b3f6eb3 Improve QFileInfo usage.
Cache QFileInfo result in a local variable.
Before repeated request often incorrectly resulted in QString()
2017-09-17 00:39:53 +01:00
Andrius Štikonas 4a64465738 Remove MountEntry class. 2017-09-16 20:56:32 +01:00
Andrius Štikonas 8dd1e70b21 Fix inline comment handling.
CCBUG: 305469
2017-09-16 20:50:57 +01:00
Andrius Štikonas baec157314 Add a function to write fstab file.
CCBUG: 305469
2017-09-16 20:40:46 +01:00
Andrius Štikonas 8719fb0bf3 Add fstab mutators. 2017-09-16 20:16:17 +01:00
Andrius Štikonas 4257021857 Use QStringList to store fstab options. 2017-09-16 19:09:03 +01:00
Andrius Štikonas 687e3fc7d4 Do not store more than 10M characters in ExternalCommand output.
BUG: 368674
2017-09-15 14:59:59 +01:00
Andrius Štikonas ec89795326 Allow accessing untranslated partition roles. 2017-09-15 13:09:01 +01:00
Andrius Štikonas dff6086e64 Copy paste typo. 2017-09-15 12:59:10 +01:00
Andrius Štikonas 0d16e945c1 Add a partition role name for LVM logical volume. 2017-09-15 12:50:05 +01:00
Andrius Štikonas f1888f0d1c Change a way untranslated file system name is accessed. 2017-09-15 12:47:01 +01:00
Andrius Štikonas 0c33a7b001 Move showColumnsContextMenu function from kpmcore to partitionmanager. 2017-09-14 20:43:08 +01:00
Andrius Štikonas 95a74c63d1 Do not report wrong mountpoint for closed LUKS file systems.
When libparted scans luks partitions it calls detectFileSystem
regardless of whether luks is open or closed. This results in
mapperNode being empty, so we need to prevent detectFileSystem
from reporting anything in this case.
2017-09-14 17:50:21 +01:00
Andrius Štikonas f29534e7c7 Use untranslated file system name when exporting partition table.
CCBUG: 364648
2017-09-14 14:47:00 +01:00
Andrius Štikonas 5d65d83990 Add functions to access untranslated name of file system.
CCBUG: 364648
2017-09-14 14:23:07 +01:00
Andrius Štikonas 50ba46a693 Fix a typo where declarared variable was not used. 2017-09-14 01:27:38 +01:00
Andrius Štikonas 6b4185cff1 Do not crash when partition has no mount points. 2017-09-13 23:28:37 +01:00
Andrius Štikonas 268a68a318 Split fstab lines with both spaces and tabs. 2017-09-13 23:05:32 +01:00
Andrius Štikonas 8f7e0beb0f Sort files in CMakeLists.txt alphabetically. 2017-09-13 18:52:43 +01:00
Andrius Štikonas 34712dd2ed Add fstab file parser.
Remove dependency on KMountPoint and hence KIO.
2017-09-13 18:46:33 +01:00
Andrius Štikonas 6b6ddbdcef Use int for maxLabelLength. 2017-09-11 16:52:20 +01:00
Andrius Štikonas 17e6c32633 Fix more implicit type conversion warnings. 2017-09-11 13:41:03 +01:00
Andrius Štikonas 6c433c264c Port FileSystem::luks away from KDiskFreeSpaceInfo. 2017-09-11 12:19:49 +01:00
Andrius Štikonas a041090168 Port LvmDevice away from KDiskFreeSpaceInfo. 2017-09-11 12:15:37 +01:00
Andrius Štikonas 8a477e689e Minor clang warnings++ 2017-09-11 12:01:39 +01:00
Andrius Štikonas 5433294a5b Fix more minor clang issues. 2017-09-11 00:29:30 +01:00
Andrius Štikonas f7e5f7c7bf Rename KPMcore include guards.
clang in -Weverything mode does not like double underscore.
2017-09-10 20:12:52 +01:00
Andrius Štikonas 0f2ab468eb Disable some characters in FAT label input. 2017-09-10 19:19:08 +01:00
Andrius Štikonas fbf7e78efe Update credits: Pali Rohár 2017-09-10 18:03:41 +01:00
Andrius Štikonas f1654486dc Remove unnecessary semicolon. 2017-09-10 17:26:12 +01:00
Andrius Štikonas 2404689dd0 Port away from KDiskFreeSpaceInfo to QStorageInfo. 2017-09-08 18:35:30 +01:00
Andrius Štikonas 1889b9e8fa Port unmount code away from KMountPoints (KIO). 2017-09-08 17:58:27 +01:00
Andrius Štikonas f1accd1e0d Remove IconThemes dependency from kpmcore. 2017-09-08 15:05:55 +01:00
Andrius Štikonas 5a83e741cb Add support for detecting ISO9660 file systems.
BUG: 364476
2017-09-08 11:42:12 +01:00
Andrius Štikonas 2cfcefd9c9 nilfs2: pass -f to mkfs.nilfs2 to overwrite existing file system 2017-09-08 00:20:35 +01:00
Andrius Štikonas 3866bf6fef Only include <linux/fs.h> on GNU/Linux 2017-09-07 21:34:45 +01:00