diff --git a/include/Makefile.am b/include/Makefile.am index 1930b41b..039b1353 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -55,6 +55,7 @@ EXTRA_DIST = \ jfs.h \ linux_swap.h \ lvm2_pv.h \ + luks.h \ nilfs2.h \ ntfs.h \ reiser4.h \ diff --git a/include/Utils.h b/include/Utils.h index 8cef57b7..f2ae5fe3 100644 --- a/include/Utils.h +++ b/include/Utils.h @@ -79,17 +79,17 @@ enum FILESYSTEM FS_HFSPLUS = 14, FS_JFS = 15, FS_LINUX_SWAP = 16, - FS_LVM2_PV = 17, - FS_NILFS2 = 18, - FS_NTFS = 19, - FS_REISER4 = 20, - FS_REISERFS = 21, - FS_UFS = 22, - FS_XFS = 23, + FS_LUKS = 17, + FS_LVM2_PV = 18, + FS_NILFS2 = 19, + FS_NTFS = 20, + FS_REISER4 = 21, + FS_REISERFS = 22, + FS_UFS = 23, + FS_XFS = 24, // Recognised signatures but otherwise unsupported file system types - FS_BITLOCKER = 24, - FS_LUKS = 25, + FS_BITLOCKER = 25, FS_LINUX_SWRAID = 26, FS_LINUX_SWSUSPEND = 27, FS_REFS = 28, diff --git a/include/luks.h b/include/luks.h new file mode 100644 index 00000000..a5dfa371 --- /dev/null +++ b/include/luks.h @@ -0,0 +1,35 @@ +/* Copyright (C) 2015 Mike Fleetwood + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + + +#ifndef GPARTED_LUKS_H +#define GPARTED_LUKS_H + +#include "../include/FileSystem.h" + +namespace GParted +{ + +class luks : public FileSystem +{ +public: + FS get_filesystem_support(); + bool is_busy( const Glib::ustring & path ); +}; + +} //GParted + +#endif /* GPARTED_LUKS_H */ diff --git a/po/POTFILES.in b/po/POTFILES.in index dd39db37..6f69c318 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -47,6 +47,7 @@ src/hfsplus.cc src/jfs.cc src/linux_swap.cc src/lvm2_pv.cc +src/luks.cc src/main.cc src/ntfs.cc src/nilfs2.cc diff --git a/src/GParted_Core.cc b/src/GParted_Core.cc index 032f8608..52be0e5e 100644 --- a/src/GParted_Core.cc +++ b/src/GParted_Core.cc @@ -35,6 +35,7 @@ #include "../include/fat16.h" #include "../include/linux_swap.h" #include "../include/lvm2_pv.h" +#include "../include/luks.h" #include "../include/reiserfs.h" #include "../include/nilfs2.h" #include "../include/ntfs.h" @@ -3948,6 +3949,7 @@ void GParted_Core::init_filesystems() FILESYSTEM_MAP[FS_JFS] = new jfs(); FILESYSTEM_MAP[FS_LINUX_SWAP] = new linux_swap(); FILESYSTEM_MAP[FS_LVM2_PV] = new lvm2_pv(); + FILESYSTEM_MAP[FS_LUKS] = new luks(); FILESYSTEM_MAP[FS_NILFS2] = new nilfs2(); FILESYSTEM_MAP[FS_NTFS] = new ntfs(); FILESYSTEM_MAP[FS_REISER4] = new reiser4(); @@ -3955,7 +3957,6 @@ void GParted_Core::init_filesystems() FILESYSTEM_MAP[FS_UFS] = new ufs(); FILESYSTEM_MAP[FS_XFS] = new xfs(); FILESYSTEM_MAP[FS_BITLOCKER] = NULL; - FILESYSTEM_MAP[FS_LUKS] = NULL; FILESYSTEM_MAP[FS_LINUX_SWRAID] = NULL; FILESYSTEM_MAP[FS_LINUX_SWSUSPEND] = NULL; } diff --git a/src/Makefile.am b/src/Makefile.am index c2311bad..042036db 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -65,6 +65,7 @@ gpartedbin_SOURCES = \ jfs.cc \ linux_swap.cc \ lvm2_pv.cc \ + luks.cc \ main.cc \ nilfs2.cc \ ntfs.cc \ diff --git a/src/Utils.cc b/src/Utils.cc index d9250965..55cbbf88 100644 --- a/src/Utils.cc +++ b/src/Utils.cc @@ -337,6 +337,7 @@ Glib::ustring Utils::get_filesystem_software( FILESYSTEM filesystem ) case FS_JFS : return "jfsutils" ; case FS_LINUX_SWAP : return "util-linux" ; case FS_LVM2_PV : return "lvm2" ; + case FS_LUKS : return "dmsetup"; case FS_NILFS2 : return "nilfs-utils" ; case FS_NTFS : return "ntfs-3g / ntfsprogs" ; case FS_REISER4 : return "reiser4progs" ; diff --git a/src/luks.cc b/src/luks.cc new file mode 100644 index 00000000..608e263b --- /dev/null +++ b/src/luks.cc @@ -0,0 +1,40 @@ +/* Copyright (C) 2015 Mike Fleetwood + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + + +#include "../include/LUKS_Info.h" +#include "../include/luks.h" + +namespace GParted +{ + +FS luks::get_filesystem_support() +{ + FS fs; + fs.filesystem = FS_LUKS; + + fs.busy = FS::EXTERNAL; + + return fs; +} + +bool luks::is_busy( const Glib::ustring & path ) +{ + Glib::ustring name = LUKS_Info::get_mapping_name( path ); + return ! name.empty(); +} + +} //GParted