[partition] use configured default filesystem type instead of ext4
When using the default partition layout (only a `/` partition), the filesystem used was ext4, ignoring the `defaultFileSystemType` configuration option. This commit fixes this bug, so that any supported filesystem can now be used for the default partitioning scheme. Fixes #1093 Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
This commit is contained in:
parent
3ea6c6cfbe
commit
586cb63ef5
@ -18,6 +18,9 @@
|
|||||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "GlobalStorage.h"
|
||||||
|
#include "JobQueue.h"
|
||||||
|
|
||||||
#include "core/PartitionLayout.h"
|
#include "core/PartitionLayout.h"
|
||||||
|
|
||||||
#include "core/KPMHelpers.h"
|
#include "core/KPMHelpers.h"
|
||||||
@ -28,17 +31,32 @@
|
|||||||
#include <kpmcore/core/partition.h>
|
#include <kpmcore/core/partition.h>
|
||||||
#include <kpmcore/fs/filesystem.h>
|
#include <kpmcore/fs/filesystem.h>
|
||||||
|
|
||||||
|
static int
|
||||||
|
getDefaultFileSystemType()
|
||||||
|
{
|
||||||
|
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
|
||||||
|
int defaultFs = FileSystem::typeForName( gs->value( "defaultFileSystemType" ).toString() );
|
||||||
|
|
||||||
|
if ( defaultFs == FileSystem::Unknown )
|
||||||
|
defaultFs = FileSystem::Ext4;
|
||||||
|
|
||||||
|
return defaultFs;
|
||||||
|
}
|
||||||
|
|
||||||
PartitionLayout::PartitionLayout()
|
PartitionLayout::PartitionLayout()
|
||||||
{
|
{
|
||||||
|
defaultFsType = getDefaultFileSystemType();
|
||||||
}
|
}
|
||||||
|
|
||||||
PartitionLayout::PartitionLayout( PartitionLayout::PartitionEntry entry )
|
PartitionLayout::PartitionLayout( PartitionLayout::PartitionEntry entry )
|
||||||
{
|
{
|
||||||
|
defaultFsType = getDefaultFileSystemType();
|
||||||
partLayout.append( entry );
|
partLayout.append( entry );
|
||||||
}
|
}
|
||||||
|
|
||||||
PartitionLayout::PartitionLayout( const PartitionLayout& layout )
|
PartitionLayout::PartitionLayout( const PartitionLayout& layout )
|
||||||
: partLayout( layout.partLayout )
|
: partLayout( layout.partLayout )
|
||||||
|
, defaultFsType( layout.defaultFsType )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,7 +133,7 @@ PartitionLayout::addEntry( const QString& mountPoint, const QString& size, const
|
|||||||
PartitionLayout::PartitionEntry entry( size, min );
|
PartitionLayout::PartitionEntry entry( size, min );
|
||||||
|
|
||||||
entry.partMountPoint = mountPoint;
|
entry.partMountPoint = mountPoint;
|
||||||
entry.partFileSystem = FileSystem::Ext4;
|
entry.partFileSystem = defaultFsType;
|
||||||
|
|
||||||
partLayout.append( entry );
|
partLayout.append( entry );
|
||||||
}
|
}
|
||||||
@ -128,6 +146,8 @@ PartitionLayout::addEntry( const QString& label, const QString& mountPoint, cons
|
|||||||
entry.partLabel = label;
|
entry.partLabel = label;
|
||||||
entry.partMountPoint = mountPoint;
|
entry.partMountPoint = mountPoint;
|
||||||
entry.partFileSystem = FileSystem::typeForName( fs );
|
entry.partFileSystem = FileSystem::typeForName( fs );
|
||||||
|
if ( entry.partFileSystem == FileSystem::Unknown )
|
||||||
|
entry.partFileSystem = defaultFsType;
|
||||||
|
|
||||||
partLayout.append( entry );
|
partLayout.append( entry );
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,7 @@ public:
|
|||||||
QList< Partition* > execute( Device *dev, qint64 firstSector, qint64 lastSector, QString luksPassphrase, PartitionNode* parent, const PartitionRole& role );
|
QList< Partition* > execute( Device *dev, qint64 firstSector, qint64 lastSector, QString luksPassphrase, PartitionNode* parent, const PartitionRole& role );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
int defaultFsType;
|
||||||
QList< PartitionEntry > partLayout;
|
QList< PartitionEntry > partLayout;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user