Compare commits
106 Commits
developmen
...
3.0.x-stab
Author | SHA1 | Date | |
---|---|---|---|
|
901e53da76 | ||
|
99118e06e6 | ||
|
624552c168 | ||
|
d49e791346 | ||
|
c1747c81b4 | ||
|
20ce3e4c47 | ||
|
75bcaea423 | ||
|
33fc1ba08a | ||
|
7499e44046 | ||
|
31470eabde | ||
|
93e46baa4a | ||
|
0440765680 | ||
|
170b6cadc2 | ||
|
368101a73e | ||
|
87e4e3c4a0 | ||
|
a57b08c200 | ||
|
82243914de | ||
|
6c941fc4c9 | ||
|
e6c1125988 | ||
|
ed42185927 | ||
|
297cf45bba | ||
|
213c65676e | ||
|
188b9efd79 | ||
|
a9e4315665 | ||
|
f73171ac4c | ||
|
56fbec7b55 | ||
|
6d0965ef3f | ||
|
44368db30a | ||
|
9afa2935cd | ||
|
39c9f82c9c | ||
|
026fa922d2 | ||
|
07de427aab | ||
|
163cf52900 | ||
|
cdf77c8a0d | ||
|
07fd7135e3 | ||
|
bbba9e60ee | ||
|
0bd31b0404 | ||
|
b6e0e226a1 | ||
|
041db6e3d7 | ||
|
423c7b57e3 | ||
|
e0c5e81b5b | ||
|
84b96b4f18 | ||
|
c0b7b0bc27 | ||
|
45e7363dfb | ||
|
8d93c34031 | ||
|
555f0ba6cf | ||
|
b95503065f | ||
|
2e9fe3f185 | ||
|
e21338d81e | ||
|
bbef3d8abc | ||
|
e91be5bd12 | ||
|
27602cf832 | ||
|
9ae4755b1c | ||
|
206a89e06c | ||
|
19e41a3c71 | ||
|
a2c7256406 | ||
|
f71602ec6c | ||
|
811b1422e9 | ||
|
3f614ee3a6 | ||
|
3a5cb47081 | ||
|
c0898c308b | ||
|
4a35035396 | ||
|
93ecf0d44d | ||
|
601f61fefa | ||
|
645ba95989 | ||
|
b1169dc48c | ||
|
b935c7db79 | ||
|
1b8b5aab13 | ||
|
ebfa1e2838 | ||
|
130eb43b26 | ||
|
9a5221bbd8 | ||
|
fce053439c | ||
|
a1b2a71267 | ||
|
0956ea5dec | ||
|
c9946117cd | ||
|
7a24975654 | ||
|
a5b4e3f518 | ||
|
0153c47e29 | ||
|
11dd15f123 | ||
|
36a96fedfb | ||
|
a37896da49 | ||
|
97b06e3101 | ||
|
c06903e168 | ||
|
b4a63ecb28 | ||
|
5eb56733b8 | ||
|
4ed06d4fe3 | ||
|
ec2094d768 | ||
|
8632c3d609 | ||
|
d935b7df68 | ||
|
9dfbc54fda | ||
|
94b8ad3b6e | ||
|
77fb264129 | ||
|
0c29233062 | ||
|
cc4ab32350 | ||
|
5610e274ba | ||
|
8627f291ca | ||
|
045ec0408d | ||
|
7ed780014d | ||
|
5adf8775fa | ||
|
cda9e2f0c1 | ||
|
ff8be85b08 | ||
|
d50a27cb4c | ||
|
587681b14c | ||
|
d7c8ff5a45 | ||
|
6b44320bfd | ||
|
295cf12b9a |
8
data/49-nopasswd-calamares.rules
Normal file
@ -0,0 +1,8 @@
|
||||
/* Allow Calamares to be started without password authentication
|
||||
*/
|
||||
polkit.addRule(function(action, subject) {
|
||||
if ((action.id == "com.github.calamares.calamares.pkexec.run"))
|
||||
{
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
});
|
13
data/calamares.desktop
Executable file
@ -0,0 +1,13 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Version=1.0
|
||||
Name=Install Manjaro Linux
|
||||
GenericName=Live Installer
|
||||
Comment=Install the operating system to disk
|
||||
Comment[de]=Manjaro Linux installieren
|
||||
Exec=/usr/bin/calamares_polkit %f
|
||||
Icon=calamares
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
Type=Application
|
||||
Categories=Qt;System;
|
6
data/calamares_polkit
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
if [ $(which pkexec) ]; then
|
||||
pkexec --disable-internal-agent "/usr/bin/calamares" "$@"
|
||||
else
|
||||
/usr/bin/calamares "$@"
|
||||
fi
|
224
data/manjaro-icon.svg
Normal file
@ -0,0 +1,224 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg3505"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
width="512"
|
||||
height="512"
|
||||
viewBox="0 0 512 512"
|
||||
sodipodi:docname="manjaro-icon.svg">
|
||||
<metadata
|
||||
id="metadata3511">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs3509" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="998"
|
||||
id="namedview3507"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="256"
|
||||
inkscape:cy="256"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3505" />
|
||||
<image
|
||||
width="512"
|
||||
height="512"
|
||||
preserveAspectRatio="none"
|
||||
style="image-rendering:optimizeQuality"
|
||||
xlink:href="data:image/png;base64,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
|
||||
AAAAAM78f6ZMXPE9Xy/GAAAAAElFTkSuQmCC
|
||||
"
|
||||
id="image3513"
|
||||
x="0"
|
||||
y="0" />
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
@ -30,7 +30,6 @@ modules-search: [ local ]
|
||||
# For more information on running module instances, run Calamares in debug mode
|
||||
# and check the Modules page in the Debug information interface.
|
||||
# YAML: list of maps of string:string key-value pairs.
|
||||
|
||||
#instances:
|
||||
#- id: owncloud
|
||||
# module: webview
|
||||
@ -61,17 +60,12 @@ modules-search: [ local ]
|
||||
sequence:
|
||||
- show:
|
||||
- welcome
|
||||
# - dummypythonqt
|
||||
- locale
|
||||
- keyboard
|
||||
- partition
|
||||
- users
|
||||
- summary
|
||||
- exec:
|
||||
# - dummycpp
|
||||
# - dummyprocess
|
||||
# - dummypython
|
||||
# - dummypythonqt
|
||||
- partition
|
||||
- mount
|
||||
- unpackfs
|
||||
@ -80,24 +74,22 @@ sequence:
|
||||
- locale
|
||||
- keyboard
|
||||
- localecfg
|
||||
# - luksbootkeyfile
|
||||
# - luksopenswaphookcfg
|
||||
# - dracutlukscfg
|
||||
# - plymouthcfg
|
||||
- luksopenswaphookcfg
|
||||
- luksbootkeyfile
|
||||
- plymouthcfg
|
||||
- initcpiocfg
|
||||
- initcpio
|
||||
- users
|
||||
- displaymanager
|
||||
- mhwdcfg
|
||||
- networkcfg
|
||||
- hwclock
|
||||
- services
|
||||
# - dracut
|
||||
- initramfs
|
||||
# - grubcfg
|
||||
- grubcfg
|
||||
- bootloader
|
||||
- postcfg
|
||||
- umount
|
||||
- show:
|
||||
# - webview@owncloud
|
||||
- finished
|
||||
|
||||
# A branding component is a directory, either in SHARE/calamares/branding or in
|
||||
@ -109,7 +101,7 @@ sequence:
|
||||
# Only the name of the branding component (directory) should be specified here, Calamares
|
||||
# then takes care of finding it and loading the contents.
|
||||
# YAML: string.
|
||||
branding: default
|
||||
branding: manjaro
|
||||
|
||||
# If this is set to true, Calamares will show an "Are you sure?" prompt right before
|
||||
# each execution phase, i.e. at points of no return. If this is set to false, no prompt
|
||||
|
23
src/branding/manjaro-kde/branding.desc
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
componentName: manjaro-kde
|
||||
|
||||
strings:
|
||||
productName: Manjaro Linux
|
||||
shortProductName: Manjaro
|
||||
version: 17.0
|
||||
shortVersion: 17.0
|
||||
versionedName: Manjaro Linux 17.0 "Gellivara"
|
||||
shortVersionedName: Manjaro 17.0
|
||||
bootloaderEntryName: Manjaro
|
||||
|
||||
images:
|
||||
productLogo: "squid.png"
|
||||
productIcon: "logo.png"
|
||||
productWelcome: "languages.png"
|
||||
|
||||
slideshow: "show.qml"
|
||||
|
||||
style:
|
||||
sidebarBackground: "#292F34"
|
||||
sidebarText: "#FFFFFF"
|
||||
sidebarTextSelect: "#292F34"
|
BIN
src/branding/manjaro-kde/languages.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
src/branding/manjaro-kde/logo.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
137
src/branding/manjaro-kde/show.qml
Normal file
@ -0,0 +1,137 @@
|
||||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
*
|
||||
* Calamares 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import QtQuick 2.0;
|
||||
import calamares.slideshow 1.0;
|
||||
|
||||
Presentation
|
||||
{
|
||||
id: presentation
|
||||
|
||||
Timer {
|
||||
interval: 20000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: presentation.goToNextSlide()
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background1
|
||||
source: "slide1.png"
|
||||
width: 467; height: 280
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background1.horizontalCenter
|
||||
anchors.top: background1.bottom
|
||||
text: "Welcome to Manjaro.<br/>"+
|
||||
"Manjaro is driven by a hardworking and dedicated community.<br/>"+
|
||||
"During the installation, this slideshow will provide a quick introduction."
|
||||
wrapMode: Text.WordWrap
|
||||
width: 600
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background2
|
||||
source: "slide2.png"
|
||||
width: 467; height: 280
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background2.horizontalCenter
|
||||
anchors.top: background2.bottom
|
||||
text: "All of Manjaro's versions are completely customizable<br/>"+
|
||||
"to exactly how you want it. From theming, to the very<br/>"+
|
||||
"kernel itself, it can be changed."
|
||||
wrapMode: Text.WordWrap
|
||||
width: 600
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background3
|
||||
source: "slide3.png"
|
||||
width: 467; height: 280
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background3.horizontalCenter
|
||||
anchors.top: background3.bottom
|
||||
text: "Manjaro has three different officially supported editions.<br/>"+
|
||||
"Additionally, there are a multitude of community editions<br/>"+
|
||||
"to choose from, built by the community, for the community."
|
||||
wrapMode: Text.WordWrap
|
||||
width: 600
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background4
|
||||
source: "slide4.png"
|
||||
width: 467; height: 280
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background4.horizontalCenter
|
||||
anchors.top: background4.bottom
|
||||
text: "Manjaro has three different options for managing<br/>"+
|
||||
"packages. The original command line option, Pacman<br/>"+
|
||||
"and two different GUI options: Octopi or Pamac."
|
||||
wrapMode: Text.WordWrap
|
||||
width: 600
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background5
|
||||
source: "slide5.png"
|
||||
width: 467; height: 280
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background5.horizontalCenter
|
||||
anchors.top: background5.bottom
|
||||
text: "We appreciate you choosing Manjaro, and hope you enjoy<br/>"+
|
||||
"it as much as we do making it! If you have any questions<br/>"+
|
||||
"or feedback, please feel free to visit the forum, IRC, or wiki."
|
||||
wrapMode: Text.WordWrap
|
||||
width: 600
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
}
|
BIN
src/branding/manjaro-kde/slide1.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
src/branding/manjaro-kde/slide2.png
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
src/branding/manjaro-kde/slide3.png
Normal file
After Width: | Height: | Size: 125 KiB |
BIN
src/branding/manjaro-kde/slide4.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
src/branding/manjaro-kde/slide5.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
src/branding/manjaro-kde/squid.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
23
src/branding/manjaro-xfce/branding.desc
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
componentName: manjaro-xfce
|
||||
|
||||
strings:
|
||||
productName: Manjaro Linux
|
||||
shortProductName: Manjaro
|
||||
version: 17.0
|
||||
shortVersion: 17.0
|
||||
versionedName: Manjaro Linux 17.0 "Gellivara"
|
||||
shortVersionedName: Manjaro 17.0
|
||||
bootloaderEntryName: Manjaro
|
||||
|
||||
images:
|
||||
productLogo: "squid.png"
|
||||
productIcon: "logo.png"
|
||||
productWelcome: "languages.png"
|
||||
|
||||
slideshow: "show.qml"
|
||||
|
||||
style:
|
||||
sidebarBackground: "#292F34"
|
||||
sidebarText: "#FFFFFF"
|
||||
sidebarTextSelect: "#292F34"
|
BIN
src/branding/manjaro-xfce/languages.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
src/branding/manjaro-xfce/logo.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
137
src/branding/manjaro-xfce/show.qml
Normal file
@ -0,0 +1,137 @@
|
||||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
*
|
||||
* Calamares 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import QtQuick 2.0;
|
||||
import calamares.slideshow 1.0;
|
||||
|
||||
Presentation
|
||||
{
|
||||
id: presentation
|
||||
|
||||
Timer {
|
||||
interval: 20000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: presentation.goToNextSlide()
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background1
|
||||
source: "slide1.png"
|
||||
width: 467; height: 280
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background1.horizontalCenter
|
||||
anchors.top: background1.bottom
|
||||
text: "Welcome to Manjaro.<br/>"+
|
||||
"Manjaro is driven by a hardworking and dedicated community.<br/>"+
|
||||
"During the installation, this slideshow will provide a quick introduction."
|
||||
wrapMode: Text.WordWrap
|
||||
width: 600
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background2
|
||||
source: "slide2.png"
|
||||
width: 467; height: 280
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background2.horizontalCenter
|
||||
anchors.top: background2.bottom
|
||||
text: "All of Manjaro's versions are completely customizable<br/>"+
|
||||
"to exactly how you want it. From theming, to the very<br/>"+
|
||||
"kernel itself, it can be changed."
|
||||
wrapMode: Text.WordWrap
|
||||
width: 600
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background3
|
||||
source: "slide3.png"
|
||||
width: 467; height: 280
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background3.horizontalCenter
|
||||
anchors.top: background3.bottom
|
||||
text: "Manjaro has three different officially supported editions.<br/>"+
|
||||
"Additionally, there are a multitude of community editions<br/>"+
|
||||
"to choose from, built by the community, for the community."
|
||||
wrapMode: Text.WordWrap
|
||||
width: 600
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background4
|
||||
source: "slide4.png"
|
||||
width: 467; height: 280
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background4.horizontalCenter
|
||||
anchors.top: background4.bottom
|
||||
text: "Manjaro has three different options for managing<br/>"+
|
||||
"packages. The original command line option, Pacman<br/>"+
|
||||
"and two different GUI options: Octopi or Pamac."
|
||||
wrapMode: Text.WordWrap
|
||||
width: 600
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background5
|
||||
source: "slide5.png"
|
||||
width: 467; height: 280
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background5.horizontalCenter
|
||||
anchors.top: background5.bottom
|
||||
text: "We appreciate you choosing Manjaro, and hope you enjoy<br/>"+
|
||||
"it as much as we do making it! If you have any questions<br/>"+
|
||||
"or feedback, please feel free to visit the forum, IRC, or wiki."
|
||||
wrapMode: Text.WordWrap
|
||||
width: 600
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
}
|
BIN
src/branding/manjaro-xfce/slide1.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
src/branding/manjaro-xfce/slide2.png
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
src/branding/manjaro-xfce/slide3.png
Normal file
After Width: | Height: | Size: 125 KiB |
BIN
src/branding/manjaro-xfce/slide4.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
src/branding/manjaro-xfce/slide5.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
src/branding/manjaro-xfce/squid.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
23
src/branding/manjaro/branding.desc
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
componentName: manjaro
|
||||
|
||||
strings:
|
||||
productName: Manjaro Linux
|
||||
shortProductName: Manjaro
|
||||
version: 17.0
|
||||
shortVersion: 17.0
|
||||
versionedName: Manjaro Linux 17.0 "Gellivara"
|
||||
shortVersionedName: Manjaro 17.0
|
||||
bootloaderEntryName: Manjaro
|
||||
|
||||
images:
|
||||
productLogo: "squid.png"
|
||||
productIcon: "logo.png"
|
||||
productWelcome: "languages.png"
|
||||
|
||||
slideshow: "show.qml"
|
||||
|
||||
style:
|
||||
sidebarBackground: "#292F34"
|
||||
sidebarText: "#FFFFFF"
|
||||
sidebarTextSelect: "#292F34"
|
BIN
src/branding/manjaro/languages.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
src/branding/manjaro/logo.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
131
src/branding/manjaro/show.qml
Normal file
@ -0,0 +1,131 @@
|
||||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
*
|
||||
* Calamares 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Slides images dimensions are 800x440px.
|
||||
*/
|
||||
|
||||
import QtQuick 2.0;
|
||||
import calamares.slideshow 1.0;
|
||||
|
||||
Presentation
|
||||
{
|
||||
id: presentation
|
||||
|
||||
Timer {
|
||||
interval: 20000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: presentation.goToNextSlide()
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background1
|
||||
source: "slide1.png"
|
||||
width: 800; height: 440
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background1.horizontalCenter
|
||||
anchors.top: background1.bottom
|
||||
text: ""
|
||||
wrapMode: Text.WordWrap
|
||||
width: 800
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background2
|
||||
source: "slide2.png"
|
||||
width: 800; height: 440
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background2.horizontalCenter
|
||||
anchors.top: background2.bottom
|
||||
text: ""
|
||||
wrapMode: Text.WordWrap
|
||||
width: 800
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background3
|
||||
source: "slide3.png"
|
||||
width: 800; height: 440
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background3.horizontalCenter
|
||||
anchors.top: background3.bottom
|
||||
text: ""
|
||||
wrapMode: Text.WordWrap
|
||||
width: 800
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background4
|
||||
source: "slide4.png"
|
||||
width: 800; height: 440
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background4.horizontalCenter
|
||||
anchors.top: background4.bottom
|
||||
text: ""
|
||||
wrapMode: Text.WordWrap
|
||||
width: 800
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
id: background5
|
||||
source: "slide5.png"
|
||||
width: 800; height: 440
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background5.horizontalCenter
|
||||
anchors.top: background5.bottom
|
||||
text: ""
|
||||
wrapMode: Text.WordWrap
|
||||
width: 800
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
}
|
BIN
src/branding/manjaro/slide1.png
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
src/branding/manjaro/slide2.png
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
src/branding/manjaro/slide3.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
src/branding/manjaro/slide4.png
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
src/branding/manjaro/slide5.png
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
src/branding/manjaro/squid.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
@ -5,15 +5,15 @@ efiBootLoader: "grub"
|
||||
|
||||
# systemd-boot configuration files settings, set kernel and initramfs file names
|
||||
# and amount of time before default selection boots
|
||||
kernel: "/vmlinuz-linux"
|
||||
img: "/initramfs-linux.img"
|
||||
fallback: "/initramfs-linux-fallback.img"
|
||||
kernel: "_ALL_kver_"
|
||||
img: "_default_image_"
|
||||
fallback: "_fallback_image_"
|
||||
timeout: "10"
|
||||
# Optionally set the menu entry name and kernel name to use in systemd-boot.
|
||||
# If not specified here, these settings will be taken from branding.desc.
|
||||
# bootloaderEntryName: "Generic GNU/Linux"
|
||||
# kernelLine: ", with Stable-Kernel"
|
||||
# fallbackKernelLine: ", with Stable-Kernel (fallback initramfs)"
|
||||
# bootloaderEntryName: "Manjaro"
|
||||
kernelLine: ", with _manjaro_kernel_"
|
||||
fallbackKernelLine: ", with _manjaro_kernel_ (fallback initramfs)"
|
||||
|
||||
# GRUB 2 binary names and boot directory
|
||||
# Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names.
|
||||
|
@ -9,7 +9,7 @@
|
||||
# Copyright 2014, Benjamin Vaudour <benjamin.vaudour@yahoo.fr>
|
||||
# Copyright 2014, Kevin Kofler <kevin.kofler@chello.at>
|
||||
# Copyright 2015, Philip Mueller <philm@manjaro.org>
|
||||
# Copyright 2016, Teo Mrnjavac <teo@kde.org>
|
||||
# Copyright 2016-2017, Teo Mrnjavac <teo@kde.org>
|
||||
#
|
||||
# Calamares is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -294,6 +294,18 @@ def run():
|
||||
if libcalamares.globalstorage.value("bootLoader") is None and fw_type != "efi":
|
||||
return None
|
||||
|
||||
partitions = libcalamares.globalstorage.value("partitions")
|
||||
|
||||
if fw_type == "efi":
|
||||
esp_found = False
|
||||
|
||||
for partition in partitions:
|
||||
if partition["mountPoint"] == libcalamares.globalstorage.value("efiSystemPartition"):
|
||||
esp_found = True
|
||||
|
||||
if not esp_found:
|
||||
return None
|
||||
|
||||
prepare_bootloader(fw_type)
|
||||
|
||||
return None
|
||||
|
12
src/modules/chrootcfg/chrootcfg.conf
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
requirements:
|
||||
- name: /etc
|
||||
mode: "0o755"
|
||||
- name: /var/cache/pacman/pkg
|
||||
mode: "0o755"
|
||||
- name: /var/lib/pacman
|
||||
mode: "0o755"
|
||||
|
||||
keyrings:
|
||||
- archlinux
|
||||
- manjaro
|
234
src/modules/chrootcfg/main.py
Normal file
@ -0,0 +1,234 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
#
|
||||
# Copyright 2016, Artoo <artoo@manjaro.org>
|
||||
#
|
||||
# Calamares 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 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import os, shutil, subprocess, sys, re
|
||||
|
||||
import libcalamares
|
||||
|
||||
from libcalamares.utils import check_target_env_call, target_env_call, debug
|
||||
from os.path import join
|
||||
|
||||
class OperationTracker:
|
||||
def __init__(self):
|
||||
self._downloaded = 0
|
||||
self._installed = 0
|
||||
self._total = 0
|
||||
self._progress = float(0)
|
||||
|
||||
@property
|
||||
def downloaded(self):
|
||||
return self._downloaded
|
||||
|
||||
@downloaded.setter
|
||||
def downloaded(self, value):
|
||||
self._downloaded = value
|
||||
|
||||
@property
|
||||
def installed(self):
|
||||
return self._installed
|
||||
|
||||
@installed.setter
|
||||
def installed(self, value):
|
||||
self._installed = value
|
||||
|
||||
@property
|
||||
def total(self):
|
||||
return self._total
|
||||
|
||||
@total.setter
|
||||
def total(self, value):
|
||||
self._total = value
|
||||
|
||||
@property
|
||||
def progress(self):
|
||||
return self._progress
|
||||
|
||||
@progress.setter
|
||||
def progress(self, value):
|
||||
self._progress = value
|
||||
|
||||
def send_progress(self, counter, phase):
|
||||
for p in range(phase):
|
||||
if self.total == 0:
|
||||
continue
|
||||
step = 0.05
|
||||
step += 0.95 * (counter / float(self.total))
|
||||
self.progress += step / self.total
|
||||
|
||||
debug("Progress: {}".format(self.progress))
|
||||
|
||||
libcalamares.job.setprogress(self.progress)
|
||||
|
||||
ON_POSIX = 'posix' in sys.builtin_module_names
|
||||
|
||||
class PacmanController:
|
||||
def __init__(self, root):
|
||||
self.__root = root
|
||||
self.__operations = libcalamares.globalstorage.value("packageOperations")
|
||||
self.__tracker = OperationTracker()
|
||||
self.__keyrings = libcalamares.job.configuration.get('keyrings', [])
|
||||
|
||||
@property
|
||||
def tracker(self):
|
||||
return self.__tracker
|
||||
|
||||
@property
|
||||
def root(self):
|
||||
return self.__root
|
||||
|
||||
@property
|
||||
def operations(self):
|
||||
return self.__operations
|
||||
|
||||
@property
|
||||
def keyrings(self):
|
||||
return self.__keyrings
|
||||
|
||||
def init_keyring(self):
|
||||
target_env_call(["pacman-key", "--init"])
|
||||
|
||||
def populate_keyring(self):
|
||||
target_env_call(["pacman-key", "--populate"] + self.keyrings)
|
||||
|
||||
def rank_mirrors(self):
|
||||
check_target_env_call(["pacman-mirrors", "-g", "-m", "rank"])
|
||||
|
||||
def parse_output(self, cmd):
|
||||
cal_env = os.environ
|
||||
cal_env["LC_ALL"] = "C"
|
||||
last = []
|
||||
phase = 0
|
||||
|
||||
process = subprocess.Popen(cmd, env=cal_env, bufsize=1, stdout=subprocess.PIPE, close_fds=ON_POSIX)
|
||||
|
||||
for line in iter(process.stdout.readline, b''):
|
||||
pkgs = re.findall(r'\((\d+)\)', line.decode())
|
||||
dl = re.findall(r'downloading\s+(.*).pkg.tar.xz', line.decode())
|
||||
inst = re.findall(r'installing(.*)\.\.\.', line.decode())
|
||||
|
||||
if pkgs:
|
||||
self.tracker.total = (int(pkgs[0]))
|
||||
debug("Number of packages: {}".format(self.tracker.total))
|
||||
|
||||
if dl:
|
||||
if dl != last:
|
||||
self.tracker.downloaded += 1
|
||||
phase = 1
|
||||
debug("Downloading: {}".format(dl[0]))
|
||||
debug("Downloaded packages: {}".format(self.tracker.downloaded))
|
||||
self.tracker.send_progress(self.tracker.downloaded, phase)
|
||||
|
||||
last = dl
|
||||
elif inst:
|
||||
self.tracker.installed += 1
|
||||
phase = 2
|
||||
debug("Installing: {}".format(inst[0]))
|
||||
debug("Installed packages: {}".format(self.tracker.installed))
|
||||
self.tracker.send_progress(self.tracker.installed, phase)
|
||||
|
||||
|
||||
if process.returncode != 0:
|
||||
return process.kill()
|
||||
|
||||
return None
|
||||
|
||||
def install(self, local=False):
|
||||
cachedir = join(self.root, "var/cache/pacman/pkg")
|
||||
dbdir = join(self.root, "var/lib/pacman")
|
||||
args = ["pacman", "--noconfirm"]
|
||||
if local:
|
||||
args.extend(["-U"])
|
||||
else:
|
||||
args.extend(["-Sy"])
|
||||
|
||||
args.extend(["--cachedir", cachedir, "--root", self.root, "--dbpath", dbdir])
|
||||
cmd = args + self.operations["install"]
|
||||
self.parse_output(cmd)
|
||||
|
||||
def remove(self):
|
||||
args = ["chroot", self.root, "pacman", "-Rs", "--noconfirm"]
|
||||
cmd = args + self.operations["remove"]
|
||||
check_target_env_call(cmd)
|
||||
|
||||
def run(self, rank=False):
|
||||
for op in self.operations.keys():
|
||||
if op == "install":
|
||||
self.install()
|
||||
elif op == "localInstall":
|
||||
self.install(local=True)
|
||||
elif op == "remove":
|
||||
self.tracker.total(len(self.operations["remove"]))
|
||||
self.remove()
|
||||
|
||||
self.init_keyring()
|
||||
self.populate_keyring()
|
||||
if rank:
|
||||
self.rank_mirrors()
|
||||
|
||||
return None
|
||||
|
||||
class ChrootController:
|
||||
def __init__(self):
|
||||
self.__root = libcalamares.globalstorage.value('rootMountPoint')
|
||||
self.__requirements = libcalamares.job.configuration.get('requirements', [])
|
||||
|
||||
@property
|
||||
def root(self):
|
||||
return self.__root
|
||||
|
||||
@property
|
||||
def requirements(self):
|
||||
return self.__requirements
|
||||
|
||||
def make_dirs(self):
|
||||
for target in self.requirements:
|
||||
dest = self.root + target["name"]
|
||||
if not os.path.exists(dest):
|
||||
debug("Create: {}".format(dest))
|
||||
mod = int(target["mode"],8)
|
||||
debug("Mode: {}".format(oct(mod)))
|
||||
os.makedirs(dest, mode=mod)
|
||||
|
||||
def copy_file(self, file):
|
||||
if os.path.exists(os.path.join("/",file)):
|
||||
shutil.copy2(os.path.join("/",file), os.path.join(self.root, file))
|
||||
|
||||
def prepare(self):
|
||||
cal_umask = os.umask(0)
|
||||
self.make_dirs()
|
||||
path = join(self.root, "run")
|
||||
#debug("Fix permissions: {}".format(path))
|
||||
os.chmod(path, 0o755)
|
||||
os.umask(cal_umask)
|
||||
self.copy_file('etc/pacman-mirrors.conf')
|
||||
self.copy_file('etc/resolv.conf')
|
||||
|
||||
def run(self):
|
||||
self.prepare()
|
||||
pacman = PacmanController(self.root)
|
||||
|
||||
return pacman.run(rank=False)
|
||||
|
||||
def run():
|
||||
""" Create chroot dirs and install pacman, kernel and netinstall selection """
|
||||
|
||||
targetRoot = ChrootController()
|
||||
|
||||
return targetRoot.run()
|
6
src/modules/chrootcfg/module.desc
Normal file
@ -0,0 +1,6 @@
|
||||
# Syntax is YAML 1.2
|
||||
---
|
||||
type: "job"
|
||||
name: "chrootcfg"
|
||||
interface: "python"
|
||||
script: "main.py" #assumed relative to the current directory
|
@ -32,6 +32,8 @@ DesktopEnvironment = collections.namedtuple('DesktopEnvironment', ['executable',
|
||||
desktop_environments = [
|
||||
DesktopEnvironment('/usr/bin/startkde', 'plasma'), # KDE Plasma 5
|
||||
DesktopEnvironment('/usr/bin/startkde', 'kde-plasma'), # KDE Plasma 4
|
||||
DesktopEnvironment('/usr/bin/budgie-desktop', 'budgie-desktop'), # Budgie v10.x
|
||||
DesktopEnvironment('/usr/bin/budgie-session', 'budgie-desktop'), # Budgie v8.x
|
||||
DesktopEnvironment('/usr/bin/gnome-session', 'gnome'),
|
||||
DesktopEnvironment('/usr/bin/startxfce4', 'xfce'),
|
||||
DesktopEnvironment('/usr/bin/cinnamon-session-cinnamon', 'cinnamon'),
|
||||
@ -42,8 +44,6 @@ desktop_environments = [
|
||||
DesktopEnvironment('/usr/bin/lxqt-session', 'lxqt'),
|
||||
DesktopEnvironment('/usr/bin/pekwm', 'pekwm'),
|
||||
DesktopEnvironment('/usr/bin/pantheon-session', 'pantheon'),
|
||||
DesktopEnvironment('/usr/bin/budgie-session', 'budgie-session'),
|
||||
DesktopEnvironment('/usr/bin/budgie-desktop', 'budgie-desktop'),
|
||||
DesktopEnvironment('/usr/bin/i3', 'i3'),
|
||||
DesktopEnvironment('/usr/bin/startdde', 'deepin'),
|
||||
DesktopEnvironment('/usr/bin/openbox-session', 'openbox')
|
||||
|
@ -4,7 +4,7 @@
|
||||
# === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
#
|
||||
# Copyright 2014-2015, Philip Müller <philm@manjaro.org>
|
||||
# Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
# Copyright 2015-2017, Teo Mrnjavac <teo@kde.org>
|
||||
#
|
||||
# Calamares is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -23,6 +23,7 @@ import libcalamares
|
||||
import os
|
||||
import re
|
||||
|
||||
|
||||
def modify_grub_default(partitions, root_mount_point, distributor):
|
||||
""" Configures '/etc/default/grub' for hibernation and plymouth.
|
||||
|
||||
@ -162,10 +163,24 @@ def run():
|
||||
|
||||
:return:
|
||||
"""
|
||||
if libcalamares.globalstorage.value("bootLoader") is None:
|
||||
|
||||
fw_type = libcalamares.globalstorage.value("firmwareType")
|
||||
|
||||
if libcalamares.globalstorage.value("bootLoader") is None and fw_type != "efi":
|
||||
return None
|
||||
|
||||
partitions = libcalamares.globalstorage.value("partitions")
|
||||
|
||||
if fw_type == "efi":
|
||||
esp_found = False
|
||||
|
||||
for partition in partitions:
|
||||
if partition["mountPoint"] == libcalamares.globalstorage.value("efiSystemPartition"):
|
||||
esp_found = True
|
||||
|
||||
if not esp_found:
|
||||
return None
|
||||
|
||||
root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
|
||||
branding = libcalamares.globalstorage.value("branding")
|
||||
distributor = branding["bootloaderEntryName"]
|
||||
|
@ -1,2 +1,2 @@
|
||||
---
|
||||
kernel: linux312
|
||||
kernel: _kernel_
|
||||
|
@ -3,5 +3,5 @@ region: "America"
|
||||
zone: "New_York"
|
||||
|
||||
# GeoIP settings. Leave commented out to disable GeoIP.
|
||||
#localeGenPath: "/etc/locale.gen"
|
||||
#geoipUrl: "freegeoip.net"
|
||||
localeGenPath: "/etc/locale.gen"
|
||||
geoipUrl: "freegeoip.net"
|
||||
|
97
src/modules/mhwdcfg/main.py
Normal file
@ -0,0 +1,97 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
#
|
||||
# Copyright 2016, Artoo <artoo@manjaro.org>
|
||||
#
|
||||
# Calamares 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 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import libcalamares
|
||||
|
||||
from libcalamares.utils import target_env_call, debug
|
||||
from os.path import join
|
||||
from subprocess import call
|
||||
|
||||
class MhwdController:
|
||||
def __init__(self):
|
||||
self.__root = libcalamares.globalstorage.value( "rootMountPoint" )
|
||||
self.__bus = libcalamares.job.configuration.get('bus', [])
|
||||
self.__identifier = libcalamares.job.configuration.get('identifier', [])
|
||||
self.__local = libcalamares.job.configuration['local']
|
||||
self.__repo = libcalamares.job.configuration['repo']
|
||||
self._driver = libcalamares.job.configuration['driver']
|
||||
|
||||
@property
|
||||
def driver(self):
|
||||
return self._driver
|
||||
|
||||
@driver.setter
|
||||
def driver(self, value):
|
||||
self._driver = value
|
||||
|
||||
@property
|
||||
def root(self):
|
||||
return self.__root
|
||||
|
||||
@property
|
||||
def local(self):
|
||||
return self.__local
|
||||
|
||||
@property
|
||||
def repo(self):
|
||||
return self.__repo
|
||||
|
||||
@property
|
||||
def identifier(self):
|
||||
return self.__identifier
|
||||
|
||||
@property
|
||||
def bus(self):
|
||||
return self.__bus
|
||||
|
||||
def umount(self, mp):
|
||||
call(["umount", "-l", join(self.root, mp)])
|
||||
|
||||
def mount(self, mp):
|
||||
call(["mount", "-Br", "/" + mp, join(self.root, mp)])
|
||||
|
||||
def configure(self, name, id):
|
||||
cmd = ["mhwd", "-a", str(name), str(self.driver), str(id).zfill(4)]
|
||||
if self.local:
|
||||
self.mount("opt")
|
||||
cmd.extend(["--pmconfig", self.repo])
|
||||
|
||||
self.mount("etc/resolv.conf")
|
||||
target_env_call(cmd)
|
||||
|
||||
if self.local:
|
||||
self.umount("opt")
|
||||
self.umount("etc/resolv.conf")
|
||||
|
||||
def run(self):
|
||||
for b in self.bus:
|
||||
for id in self.identifier['net']:
|
||||
self.configure(b, id)
|
||||
for id in self.identifier['video']:
|
||||
self.configure(b, id)
|
||||
|
||||
return None
|
||||
|
||||
def run():
|
||||
""" Configure the hardware """
|
||||
|
||||
mhwd = MhwdController()
|
||||
|
||||
return mhwd.run()
|
19
src/modules/mhwdcfg/mhwdcfg.conf
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
bus:
|
||||
- pci
|
||||
# - usb
|
||||
|
||||
identifier:
|
||||
net:
|
||||
- 200
|
||||
- 280
|
||||
video:
|
||||
- 300
|
||||
- 302
|
||||
- 380
|
||||
|
||||
driver: free
|
||||
|
||||
local: true
|
||||
|
||||
repo: /opt/pacman-mhwd.conf
|
6
src/modules/mhwdcfg/module.desc
Normal file
@ -0,0 +1,6 @@
|
||||
# Syntax is YAML 1.2
|
||||
---
|
||||
type: "job"
|
||||
name: "mhwdcfg"
|
||||
interface: "python"
|
||||
script: "main.py" #assumed relative to the current directory
|
@ -37,6 +37,12 @@ More keys are supported:
|
||||
- subgroups: if present this follows the same structure as the top level
|
||||
of the YAML file, allowing there to be sub-groups of packages to an
|
||||
arbitary depth
|
||||
- pre-install: an optional command to run within the new system before
|
||||
the group's packages are installed. It will run before each package in
|
||||
the group is installed.
|
||||
- post-install: an optional command to run within the new system after
|
||||
the group's packages are installed. It will run after each package in
|
||||
the group is installed.
|
||||
|
||||
If you set both *hidden* and *selected* for a group, you are basically creating a "default" group of packages
|
||||
which will always be installed in the user's system.
|
||||
|
@ -112,7 +112,7 @@ class PackageManager:
|
||||
|
||||
def run(self, script):
|
||||
if script != "":
|
||||
check_target_env_call(scrtip.split(" "))
|
||||
check_target_env_call(script.split(" "))
|
||||
|
||||
|
||||
def subst_locale(list):
|
||||
@ -138,13 +138,13 @@ def run_operations(pkgman, entry):
|
||||
for key in entry.keys():
|
||||
entry[key] = subst_locale(entry[key])
|
||||
if key == "install":
|
||||
if isinstance(package, str):
|
||||
pkgman.install(entry[key])
|
||||
else:
|
||||
if isinstance(entry[key], list):
|
||||
for package in entry[key]:
|
||||
pkgman.run(package["pre-script"])
|
||||
pkgman.install([package["package"]])
|
||||
pkgman.run(package["post-script"])
|
||||
else:
|
||||
pkgman.install(entry[key])
|
||||
elif key == "try_install":
|
||||
# we make a separate package manager call for each package so a single
|
||||
# failing package won't stop all of them
|
||||
|
@ -1,6 +1,10 @@
|
||||
rootMountPoint: /tmp/mount
|
||||
packageOperations:
|
||||
- install:
|
||||
- vi
|
||||
- pre-script: touch /tmp/foo
|
||||
package: vi
|
||||
post-script: rm /tmp/foo
|
||||
- wget
|
||||
- remove:
|
||||
- vi
|
||||
- wget
|
||||
|
@ -100,13 +100,13 @@ swapSuggestion( const qint64 availableSpaceB )
|
||||
void
|
||||
doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPassphrase )
|
||||
{
|
||||
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
|
||||
|
||||
bool isEfi = false;
|
||||
if ( QDir( "/sys/firmware/efi/efivars" ).exists() )
|
||||
isEfi = true;
|
||||
|
||||
QString defaultFsType = Calamares::JobQueue::instance()->
|
||||
globalStorage()->
|
||||
value( "defaultFileSystemType" ).toString();
|
||||
QString defaultFsType = gs->value( "defaultFileSystemType" ).toString();
|
||||
if ( FileSystem::typeForName( defaultFsType ) == FileSystem::Unknown )
|
||||
defaultFsType = "ext4";
|
||||
|
||||
@ -144,9 +144,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass
|
||||
PartitionTable::FlagEsp
|
||||
);
|
||||
PartitionInfo::setFormat( efiPartition, true );
|
||||
PartitionInfo::setMountPoint( efiPartition, Calamares::JobQueue::instance()
|
||||
->globalStorage()
|
||||
->value( "efiSystemPartition" )
|
||||
PartitionInfo::setMountPoint( efiPartition, gs->value( "efiSystemPartition" )
|
||||
.toString() );
|
||||
core->createPartition( dev, efiPartition, PartitionTable::FlagEsp | PartitionTable::FlagBoot );
|
||||
firstFreeSector = lastSector + 1;
|
||||
@ -156,17 +154,21 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass
|
||||
core->createPartitionTable( dev, PartitionTable::msdos );
|
||||
}
|
||||
|
||||
const bool mayCreateSwap = !gs->value( "neverCreateSwap" ).toBool();
|
||||
bool shouldCreateSwap = false;
|
||||
qint64 suggestedSwapSizeB = 0;
|
||||
|
||||
if ( mayCreateSwap )
|
||||
{
|
||||
qint64 availableSpaceB = ( dev->totalLogical() - firstFreeSector ) * dev->logicalSize();
|
||||
qint64 suggestedSwapSizeB = swapSuggestion( availableSpaceB );
|
||||
suggestedSwapSizeB = swapSuggestion( availableSpaceB );
|
||||
qint64 requiredSpaceB =
|
||||
( Calamares::JobQueue::instance()->
|
||||
globalStorage()->
|
||||
value( "requiredStorageGB" ).toDouble() + 0.1 + 2.0 ) GiB +
|
||||
( gs->value( "requiredStorageGB" ).toDouble() + 0.1 + 2.0 ) GiB +
|
||||
suggestedSwapSizeB;
|
||||
|
||||
// If there is enough room for ESP + root + swap, create swap, otherwise don't.
|
||||
shouldCreateSwap = availableSpaceB > requiredSpaceB;
|
||||
}
|
||||
|
||||
qint64 lastSectorForRoot = dev->totalLogical() - 1; //last sector of the device
|
||||
if ( shouldCreateSwap )
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2014-2017, Teo Mrnjavac <teo@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -503,6 +503,16 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
||||
gs->insert( "ensureSuspendToDisk", true );
|
||||
}
|
||||
|
||||
if ( configurationMap.contains( "neverCreateSwap" ) &&
|
||||
configurationMap.value( "neverCreateSwap" ).type() == QVariant::Bool )
|
||||
{
|
||||
gs->insert( "neverCreateSwap", configurationMap.value( "neverCreateSwap" ).toBool() );
|
||||
}
|
||||
else
|
||||
{
|
||||
gs->insert( "neverCreateSwap", false );
|
||||
}
|
||||
|
||||
if ( configurationMap.contains( "drawNestedPartitions" ) &&
|
||||
configurationMap.value( "drawNestedPartitions" ).type() == QVariant::Bool )
|
||||
{
|
||||
|
@ -3,9 +3,16 @@
|
||||
# etc.) use just /boot.
|
||||
efiSystemPartition: "/boot/efi"
|
||||
|
||||
# Make sure an autogenerated swap partition is big enough for hibernation
|
||||
# Make sure an autogenerated swap partition is big enough for hibernation in
|
||||
# automated partitioning modes.
|
||||
# Default is true.
|
||||
ensureSuspendToDisk: true
|
||||
|
||||
# Never create swap partitions in automated partitioning modes.
|
||||
# If this is true, ensureSuspendToDisk is ignored.
|
||||
# Default is false.
|
||||
neverCreateSwap: false
|
||||
|
||||
# Correctly draw nested (e.g. logical) partitions as such.
|
||||
drawNestedPartitions: false
|
||||
|
||||
|
96
src/modules/postcfg/main.py
Normal file
@ -0,0 +1,96 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
#
|
||||
# Copyright 2014 - 2016, Philip Müller <philm@manjaro.org>
|
||||
# Copyright 2016, Artoo <artoo@manjaro.org>
|
||||
#
|
||||
# Calamares 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 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import libcalamares
|
||||
|
||||
from shutil import copy2
|
||||
from distutils.dir_util import copy_tree
|
||||
from os.path import join, exists
|
||||
from libcalamares.utils import target_env_call
|
||||
|
||||
class ConfigController:
|
||||
def __init__(self):
|
||||
self.__root = libcalamares.globalstorage.value("rootMountPoint")
|
||||
self.__keyrings = libcalamares.job.configuration.get('keyrings', [])
|
||||
|
||||
@property
|
||||
def root(self):
|
||||
return self.__root
|
||||
|
||||
@property
|
||||
def keyrings(self):
|
||||
return self.__keyrings
|
||||
|
||||
def init_keyring(self):
|
||||
target_env_call(["pacman-key", "--init"])
|
||||
|
||||
def populate_keyring(self):
|
||||
target_env_call(["pacman-key", "--populate"] + self.keyrings)
|
||||
|
||||
def terminate(self, proc):
|
||||
target_env_call(['killall', '-9', proc])
|
||||
|
||||
def copy_file(self, file):
|
||||
if exists("/" + file):
|
||||
copy2("/" + file, join(self.root, file))
|
||||
|
||||
def copy_folder(self, source, target):
|
||||
if exists("/" + source):
|
||||
copy_tree("/" + source, join(self.root, target))
|
||||
|
||||
def remove_pkg(self, pkg, path):
|
||||
if exists(join(self.root, path)):
|
||||
target_env_call(['pacman', '-R', '--noconfirm', pkg])
|
||||
|
||||
def run(self):
|
||||
self.init_keyring()
|
||||
self.populate_keyring()
|
||||
|
||||
# Remove calamares
|
||||
self.remove_pkg("calamares", "usr/bin/calamares")
|
||||
|
||||
# Generate mirror list
|
||||
if exists(join(self.root, "usr/bin/pacman-mirrors")):
|
||||
if libcalamares.globalstorage.value("hasInternet"):
|
||||
target_env_call(["pacman-mirrors", "-g"])
|
||||
else:
|
||||
self.copy_file('etc/pacman.d/mirrorlist')
|
||||
|
||||
# Copy skel to root
|
||||
self.copy_folder('etc/skel', 'root')
|
||||
|
||||
# Workaround for pacman-key bug FS#45351 https://bugs.archlinux.org/task/45351
|
||||
# We have to kill gpg-agent because if it stays around we can't reliably unmount
|
||||
# the target partition.
|
||||
self.terminate('gpg-agent')
|
||||
|
||||
# Update grub.cfg
|
||||
if exists(join(self.root, "usr/bin/update-grub")) and libcalamares.globalstorage.value("bootLoader") is not None:
|
||||
target_env_call(["update-grub"])
|
||||
|
||||
return None
|
||||
|
||||
def run():
|
||||
""" Misc postinstall configurations """
|
||||
|
||||
config = ConfigController()
|
||||
|
||||
return config.run()
|
6
src/modules/postcfg/module.desc
Normal file
@ -0,0 +1,6 @@
|
||||
# Syntax is YAML 1.2
|
||||
---
|
||||
type: "job"
|
||||
name: "postcfg"
|
||||
interface: "python"
|
||||
script: "main.py" #assumed relative to the current directory
|
4
src/modules/postcfg/postcfg.conf
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
keyrings:
|
||||
- archlinux
|
||||
- manjaro
|
@ -3,8 +3,9 @@
|
||||
#
|
||||
# === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
#
|
||||
# Copyright 2014, Philip Müller <philm@manjaro.org>
|
||||
# Copyright 2014-2016, Philip Müller <philm@manjaro.org>
|
||||
# Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
# Copyright 2016, Artoo <artoo@manjaro.org>
|
||||
#
|
||||
# Calamares is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -20,6 +21,7 @@
|
||||
# along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import libcalamares
|
||||
from os.path import join, exists
|
||||
|
||||
|
||||
def run():
|
||||
@ -27,6 +29,7 @@ def run():
|
||||
services = libcalamares.job.configuration['services']
|
||||
targets = libcalamares.job.configuration['targets']
|
||||
disable = libcalamares.job.configuration['disable']
|
||||
rootmnt = libcalamares.globalstorage.value("rootMountPoint")
|
||||
|
||||
# note that the "systemctl enable" and "systemctl disable" commands used
|
||||
# here will work in a chroot; in fact, they are the only systemctl commands
|
||||
@ -68,4 +71,16 @@ def run():
|
||||
libcalamares.utils.debug("Cannot disable systemd service {}".format(dbl['name']))
|
||||
libcalamares.utils.debug("systemctl disable call in chroot returned error code {}".format(ec))
|
||||
|
||||
if libcalamares.globalstorage.contains("displayManagers"):
|
||||
for dm in libcalamares.globalstorage.value("displayManagers"):
|
||||
if not exists(join(rootmnt, "etc/systemd/system/display-manager.service")):
|
||||
ec = libcalamares.utils.target_env_call(['systemctl', 'enable', '{}.service'.format(dm)])
|
||||
|
||||
if ec != 0:
|
||||
return "Cannot enable systemd service {}".format(dm), \
|
||||
"systemctl enable call in chroot returned error code {}".format(ec)
|
||||
else:
|
||||
libcalamares.utils.debug("Cannot enable systemd service {}".format(dm))
|
||||
libcalamares.utils.debug("systemctl enable call in chroot returned error code {}".format(ec))
|
||||
|
||||
return None
|
||||
|
@ -5,7 +5,7 @@ services:
|
||||
- name: "NetworkManager" #name of the service file
|
||||
mandatory: false #true=> if enabling fails the installer errors out and quits
|
||||
#false=>if enabling fails print warning to console and continue
|
||||
- name: "cups"
|
||||
- name: "org.cups.cupsd"
|
||||
mandatory: false
|
||||
|
||||
targets:
|
||||
|
75
src/modules/servicescfg/main.py
Normal file
@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
#
|
||||
# Copyright 2016, Artoo <artoo@manjaro.org>
|
||||
#
|
||||
# Calamares 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 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import libcalamares
|
||||
|
||||
from libcalamares.utils import target_env_call
|
||||
from os.path import exists, join
|
||||
|
||||
class ServicesController:
|
||||
def __init__(self):
|
||||
self.__root = libcalamares.globalstorage.value('rootMountPoint')
|
||||
self.__services = libcalamares.job.configuration.get('services', [])
|
||||
|
||||
@property
|
||||
def root(self):
|
||||
return self.__root
|
||||
|
||||
@property
|
||||
def services(self):
|
||||
return self.__services
|
||||
|
||||
def setExpression(self, pattern, file):
|
||||
target_env_call(["sed", "-e", pattern, "-i", file])
|
||||
|
||||
def configure(self):
|
||||
self.setExpression('s|^.*rc_shell=.*|rc_shell="/usr/bin/sulogin"|', "/etc/rc.conf")
|
||||
self.setExpression('s|^.*rc_controller_cgroups=.*|rc_controller_cgroups="YES"|', "/etc/rc.conf")
|
||||
exp = 's|^.*keymap=.*|keymap="' + libcalamares.globalstorage.value("keyboardLayout") + '"|'
|
||||
self.setExpression(exp, "/etc/conf.d/keymaps")
|
||||
self.setExpression('s|pam_systemd.so|pam_ck_connector.so nox11|', "/etc/pam.d/system-login")
|
||||
for dm in libcalamares.globalstorage.value("displayManagers"):
|
||||
exp = 's|^.*DISPLAYMANAGER=.*|DISPLAYMANAGER="' + dm + '"|'
|
||||
self.setExpression(exp, "/etc/conf.d/xdm")
|
||||
if dm == "lightdm":
|
||||
self.setExpression('s|^.*minimum-vt=.*|minimum-vt=7|', "/etc/lightdm/lightdm.conf")
|
||||
self.setExpression('s|pam_systemd.so|pam_ck_connector.so nox11|', "/etc/pam.d/lightdm-greeter")
|
||||
if exists(join(self.root, "etc/pulse/client.conf")):
|
||||
self.setExpression('s|autospawn = no|autospawn = yes|', "/etc/pulse/client.conf")
|
||||
|
||||
def update(self, action, state):
|
||||
for svc in self.services[state]:
|
||||
if exists(self.root + "/etc/init.d/" + svc["name"]):
|
||||
target_env_call(["rc-update", action, svc["name"], svc["runlevel"]])
|
||||
|
||||
def run(self):
|
||||
self.configure()
|
||||
for state in self.services.keys():
|
||||
if state == "enabled":
|
||||
self.update("add", "enabled")
|
||||
elif state == "disabled":
|
||||
self.update("del", "disabled")
|
||||
|
||||
return None
|
||||
|
||||
def run():
|
||||
""" Setup openrc services """
|
||||
sc = ServicesController()
|
||||
return sc.run()
|
6
src/modules/servicescfg/module.desc
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "servicescfg"
|
||||
interface: "python"
|
||||
requires: []
|
||||
script: "main.py"
|
10
src/modules/servicescfg/servicescfg.conf
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
services:
|
||||
enabled:
|
||||
- name: "NetworkManager"
|
||||
runlevel: "default"
|
||||
- name: "cups"
|
||||
runlevel: "default"
|
||||
# disabled:
|
||||
# - name: "hwclock"
|
||||
# runlevel: "boot"
|
@ -1,8 +1,8 @@
|
||||
---
|
||||
unpack:
|
||||
- source: "/path/to/filesystem.img"
|
||||
sourcefs: "ext4"
|
||||
destination: ""
|
||||
- source: "/path/to/another/filesystem.sqfs"
|
||||
- source: "_root-image_"
|
||||
sourcefs: "squashfs"
|
||||
destination: ""
|
||||
- source: "_desktop-image_"
|
||||
sourcefs: "squashfs"
|
||||
destination: ""
|
||||
|