Merge branch 'master' of https://github.com/calamares/calamares into development

This commit is contained in:
Philip 2017-10-23 08:24:09 -04:00
commit 929d302f4d
7 changed files with 89 additions and 54 deletions

View File

@ -1,6 +1,4 @@
language: language: cpp
- cpp
- python
python: python:
- 3.5 - 3.5
@ -12,7 +10,7 @@ services:
notifications: notifications:
irc: irc:
- "chat.freenode.net#calamares" - "$IRC_NOTIFY_CHANNEL"
install: install:
- docker build -t calamares . - docker build -t calamares .

View File

@ -66,7 +66,7 @@ Comment[ja]=Calamares — システムインストーラー
Name[lt]=Calamares Name[lt]=Calamares
Icon[lt]=calamares Icon[lt]=calamares
GenericName[lt]=Sistemos diegimas į kompiuterį GenericName[lt]=Sistemos diegimas į kompiuterį
Comment[lt]=Calamares sistemos diegyklė Comment[lt]=Calamares Sistemos diegimo programa
Name[nb]=Calamares Name[nb]=Calamares
Icon[nb]=calamares Icon[nb]=calamares
GenericName[nb]=Systeminstallatør GenericName[nb]=Systeminstallatør

View File

@ -240,7 +240,7 @@ Išvestis:
<location filename="../src/libcalamaresui/ViewManager.cpp" line="76"/> <location filename="../src/libcalamaresui/ViewManager.cpp" line="76"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="301"/> <location filename="../src/libcalamaresui/ViewManager.cpp" line="301"/>
<source>Cancel installation without changing the system.</source> <source>Cancel installation without changing the system.</source>
<translation>Atsisakyti diegimo, nieko nekeisti sistemoje.</translation> <translation>Atsisakyti diegimo, nieko sistemoje nekeičiant.</translation>
</message> </message>
<message> <message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="99"/> <location filename="../src/libcalamaresui/ViewManager.cpp" line="99"/>
@ -277,7 +277,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
<message> <message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="234"/> <location filename="../src/libcalamaresui/ViewManager.cpp" line="234"/>
<source>The %1 installer is about to make changes to your disk in order to install %2.&lt;br/&gt;&lt;strong&gt;You will not be able to undo these changes.&lt;/strong&gt;</source> <source>The %1 installer is about to make changes to your disk in order to install %2.&lt;br/&gt;&lt;strong&gt;You will not be able to undo these changes.&lt;/strong&gt;</source>
<translation>%1 diegimo programa, siekdama įdiegti %2, ketina atlikti pakeitimus diske.&lt;br/&gt;&lt;strong&gt;Negalėsite atšaukti š pakeitimų.&lt;/strong&gt;</translation> <translation>%1 diegimo programa, siekdama įdiegti %2, ketina atlikti pakeitimus diske.&lt;br/&gt;&lt;strong&gt;Š pakeitimų atšaukti nebegalėsite.&lt;/strong&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="239"/> <location filename="../src/libcalamaresui/ViewManager.cpp" line="239"/>
@ -369,12 +369,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
<message> <message>
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="113"/> <location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="113"/>
<source>This computer does not satisfy some of the recommended requirements for installing %1.&lt;br/&gt;Installation can continue, but some features might be disabled.</source> <source>This computer does not satisfy some of the recommended requirements for installing %1.&lt;br/&gt;Installation can continue, but some features might be disabled.</source>
<translation>Šis kompiuteris netenkina kai kurių %1 diegimui rekomenduojamų reikalavimų.&lt;br/&gt;Diegti galite, bet kai kurios funkcijos gali būti išjungtos.</translation> <translation>Šis kompiuteris netenkina kai kurių %1 diegimui rekomenduojamų reikalavimų.&lt;br/&gt;Diegimą galima tęsti, tačiau kai kurios funkcijos gali būti išjungtos.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="151"/> <location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="151"/>
<source>This program will ask you some questions and set up %2 on your computer.</source> <source>This program will ask you some questions and set up %2 on your computer.</source>
<translation>Programa užduos klausimus ir padės įsidiegti %2.</translation> <translation>Programa užduos kelis klausimus ir padės įsidiegti %2.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="174"/> <location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="174"/>
@ -908,12 +908,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
<message> <message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="70"/> <location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="70"/>
<source>Format</source> <source>Format</source>
<translation>Suženklinti</translation> <translation>Formatuoti</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="89"/> <location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="89"/>
<source>Warning: Formatting the partition will erase all existing data.</source> <source>Warning: Formatting the partition will erase all existing data.</source>
<translation>Įspėjimas: suženklinant skaidinį, sunaikinami visi jame esantys duomenys.</translation> <translation>Įspėjimas: Formatuojant skaidinį, sunaikinami visi jame esantys duomenys.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="99"/> <location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="99"/>
@ -1058,22 +1058,22 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
<message> <message>
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="49"/> <location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="49"/>
<source>Format partition %1 (file system: %2, size: %3 MB) on %4.</source> <source>Format partition %1 (file system: %2, size: %3 MB) on %4.</source>
<translation>Suženklinti skaidinį %1 (failų sistema: %2, dydis: %3 MB) diske %4.</translation> <translation>Formatuoti skaidinį %1 (failų sistema: %2, dydis: %3 MB) diske %4.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="60"/> <location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="60"/>
<source>Format &lt;strong&gt;%3MB&lt;/strong&gt; partition &lt;strong&gt;%1&lt;/strong&gt; with file system &lt;strong&gt;%2&lt;/strong&gt;.</source> <source>Format &lt;strong&gt;%3MB&lt;/strong&gt; partition &lt;strong&gt;%1&lt;/strong&gt; with file system &lt;strong&gt;%2&lt;/strong&gt;.</source>
<translation>Suženklinti &lt;strong&gt;%3MB&lt;/strong&gt; skaidinį &lt;strong&gt;%1&lt;/strong&gt; su failų sistema &lt;strong&gt;%2&lt;/strong&gt;.</translation> <translation>Formatuoti &lt;strong&gt;%3MB&lt;/strong&gt; skaidinį &lt;strong&gt;%1&lt;/strong&gt; su failų sistema &lt;strong&gt;%2&lt;/strong&gt;.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="71"/> <location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="71"/>
<source>Formatting partition %1 with file system %2.</source> <source>Formatting partition %1 with file system %2.</source>
<translation>Suženklinamas skaidinys %1 su %2 failų sistema.</translation> <translation>Formatuojamas skaidinys %1 su %2 failų sistema.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="83"/> <location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="83"/>
<source>The installer failed to format partition %1 on disk &apos;%2&apos;.</source> <source>The installer failed to format partition %1 on disk &apos;%2&apos;.</source>
<translation>Diegimo programai nepavyko suženklinti %2 disko skaidinio %1.</translation> <translation>Diegimo programai nepavyko formatuoti %2 disko skaidinio %1.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="91"/> <location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="91"/>
@ -1237,7 +1237,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
<message> <message>
<location filename="../src/modules/license/LicensePage.cpp" line="202"/> <location filename="../src/modules/license/LicensePage.cpp" line="202"/>
<source>&lt;a href=&quot;%1&quot;&gt;view license agreement&lt;/a&gt;</source> <source>&lt;a href=&quot;%1&quot;&gt;view license agreement&lt;/a&gt;</source>
<translation>&lt;a href=&quot;%1&quot;&gt;žiūrėti licenciją&lt;/a&gt;</translation> <translation>&lt;a href=&quot;%1&quot;&gt;žiūrėti licencijos sutartį&lt;/a&gt;</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1578,7 +1578,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="121"/> <location filename="../src/modules/partition/gui/PartitionPage.ui" line="121"/>
<source>&amp;Delete</source> <source>&amp;Delete</source>
<translation>Ša&amp;linti</translation> <translation>&amp;trinti</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="148"/> <location filename="../src/modules/partition/gui/PartitionPage.ui" line="148"/>

View File

@ -2230,12 +2230,12 @@ Sistem güç kaynağına bağlı değil.</translation>
<message> <message>
<location filename="../src/modules/users/UsersPage.cpp" line="494"/> <location filename="../src/modules/users/UsersPage.cpp" line="494"/>
<source>Password is too short</source> <source>Password is too short</source>
<translation type="unfinished"/> <translation>Şifre çok kısa</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/UsersPage.cpp" line="513"/> <location filename="../src/modules/users/UsersPage.cpp" line="513"/>
<source>Password is too long</source> <source>Password is too long</source>
<translation type="unfinished"/> <translation>Şifre çok uzun</translation>
</message> </message>
</context> </context>
<context> <context>

View File

@ -6,6 +6,7 @@ At installation time, the user is presented with the choice to install groups of
Calamares will then invoke the correct backend to install the packages. Calamares will then invoke the correct backend to install the packages.
## Configuration of the packages ## Configuration of the packages
Every distribution can choose which groups to display and which packages should be in the groups. Every distribution can choose which groups to display and which packages should be in the groups.
The *netinstall.conf* file should have this format: The *netinstall.conf* file should have this format:
@ -48,6 +49,7 @@ If you set both *hidden* and *selected* for a group, you are basically creating
which will always be installed in the user's system. which will always be installed in the user's system.
## Configuration of the module ## Configuration of the module
Here is the set of instructions to have the module work in your Calamares. As of July 2016, this has been successfully Here is the set of instructions to have the module work in your Calamares. As of July 2016, this has been successfully
tested using the live installation of Chakra Fermi. tested using the live installation of Chakra Fermi.
@ -63,7 +65,8 @@ If not present, add the **packages** job in the **exec** list. This is the job t
to install packages. Make sure it is configured to use the correct package manager for your distribution; this to install packages. Make sure it is configured to use the correct package manager for your distribution; this
is configured in src/modules/packages/packages.conf. is configured in src/modules/packages/packages.conf.
The exec list should be: The **exec** list in *settings.conf* should contain the following items in
order (it's ok for other jobs to be listed inbetween them, though):
- unpackfs - unpackfs
- networkcfg - networkcfg
@ -74,10 +77,10 @@ structure; **networkcfg** set ups a working network in the chroot; and finally *
in the chroot. in the chroot.
## Common issues ## Common issues
If launching the package manager command returns you negative exit statuses and nothing is actually invoked, this If launching the package manager command returns you negative exit statuses and nothing is actually invoked, this
is likely an error in the setup of the chroot; check that the parameter **rootMountPoint** is set to the correct is likely an error in the setup of the chroot; check that the parameter **rootMountPoint** is set to the correct
value in the Calamares configuration. value in the Calamares configuration.
If the command is run, but exits with error, check that the network is working in the chroot. Make sure /etc/resolv.conf If the command is run, but exits with error, check that the network is working in the chroot. Make sure /etc/resolv.conf
exists and that it's not empty. exists and that it's not empty.

View File

@ -26,9 +26,16 @@ drawNestedPartitions: false
# Show/hide partition labels on manual partitioning page. # Show/hide partition labels on manual partitioning page.
alwaysShowPartitionLabels: true alwaysShowPartitionLabels: true
# Default filesystem type, pre-selected in the "Create Partition" dialog. # Default filesystem type, used when a "new" partition is made.
# The filesystem type selected here is also used for automated install #
# modes (Erase, Replace and Alongside). # When replacing a partition, the existing filesystem inside the
# partition is retained. In other cases, e.g. Erase and Alongside,
# as well as when using manual partitioning and creating a new
# partition, this filesystem type is pre-selected. Note that
# editing a partition in manual-creation mode will not automatically
# change the filesystem type to this default value -- it is not
# creating a new partition.
#
# Suggested values: ext2, ext3, ext4, reiser, xfs, jfs, btrfs # Suggested values: ext2, ext3, ext4, reiser, xfs, jfs, btrfs
# If nothing is specified, Calamares defaults to "ext4". # If nothing is specified, Calamares defaults to "ext4".
defaultFileSystemType: "ext4" defaultFileSystemType: "ext4"

View File

@ -18,6 +18,15 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with Calamares. If not, see <http://www.gnu.org/licenses/>. # along with Calamares. If not, see <http://www.gnu.org/licenses/>.
"""
Testing tool to run a single Python module; optionally a
global configuration and module configuration can be read
from YAML files. Give a full path to the module-directory,
and also full paths to the configuration files. An empty
configuration file name, or "-" (a single dash) is used
to indicate that no file should be read -- useful to load
a module configuratioon file without a global configuration.
"""
import argparse import argparse
import os import os
@ -57,26 +66,10 @@ class Job:
print("Job set progress to {}%.".format(progress * 100)) print("Job set progress to {}%.".format(progress * 100))
def main(): def test_module(moduledir, globalconfigfilename, moduleconfigfilename, lang):
""" print("Testing module in: " + moduledir)
confpath = os.path.join(moduledir, "module.desc")
:return:
"""
parser = argparse.ArgumentParser()
parser.add_argument("moduledir",
help="Dir containing the Python module.")
parser.add_argument("globalstorage_yaml", nargs="?",
help="A yaml file to initialize GlobalStorage.")
parser.add_argument("configuration_yaml", nargs="?",
help="A yaml file to initialize the Job.")
parser.add_argument("--lang", "-l", nargs="?", default=None,
help="Set translation language.")
args = parser.parse_args()
print("Testing module in: " + args.moduledir)
confpath = os.path.join(args.moduledir, "module.desc")
with open(confpath) as f: with open(confpath) as f:
doc = yaml.load(f) doc = yaml.load(f)
@ -87,27 +80,33 @@ def main():
# Parameter None creates a new, empty GlobalStorage # Parameter None creates a new, empty GlobalStorage
libcalamares.globalstorage = libcalamares.GlobalStorage(None) libcalamares.globalstorage = libcalamares.GlobalStorage(None)
libcalamares.globalstorage.insert("testing", True) libcalamares.globalstorage.insert("testing", True)
if args.lang: if lang:
libcalamares.globalstorage.insert("locale", args.lang) libcalamares.globalstorage.insert("locale", lang)
libcalamares.globalstorage.insert("localeConf", {"LANG": args.lang}) libcalamares.globalstorage.insert("localeConf", {"LANG": lang})
# if a file for simulating globalStorage contents is provided, load it # if a file for simulating globalStorage contents is provided, load it
if args.globalstorage_yaml: if globalconfigfilename:
with open(args.globalstorage_yaml) as f: with open(globalconfigfilename) as f:
gs_doc = yaml.load(f) gs_doc = yaml.load(f)
for key, value in gs_doc.items(): for key, value in gs_doc.items():
libcalamares.globalstorage.insert(key, value) libcalamares.globalstorage.insert(key, value)
print("Global configuration '" + globalconfigfilename + "' loaded.")
else:
print("No global configuration loaded.")
cfg_doc = dict() cfg_doc = dict()
if args.configuration_yaml: if moduleconfigfilename:
with open(args.configuration_yaml) as f: with open(moduleconfigfilename) as f:
cfg_doc = yaml.load(f) cfg_doc = yaml.load(f)
print("Local configuration '" + moduleconfigfilename + "' loaded.")
else:
print("No module configuration loaded.")
libcalamares.job = Job(args.moduledir, doc, cfg_doc) libcalamares.job = Job(moduledir, doc, cfg_doc)
scriptpath = os.path.abspath(args.moduledir) scriptpath = os.path.abspath(moduledir)
sys.path.append(scriptpath) sys.path.append(scriptpath)
import main import main # Assumed to import main from module itself
print("Output from module:") print("Output from module:")
print(main.run()) print(main.run())
@ -115,5 +114,33 @@ def main():
return 0 return 0
def munge_filename(filename):
"""
Maps files "" (empty) and "-" (just a dash) to None,
to simplify processing elsewhere.
"""
if not filename or filename == "-":
return None
return filename
def main():
parser = argparse.ArgumentParser(description=globals()["__doc__"])
parser.add_argument("moduledir",
help="Dir containing the Python module.")
parser.add_argument("globalstorage_yaml", nargs="?",
help="A yaml file to initialize GlobalStorage.")
parser.add_argument("configuration_yaml", nargs="?",
help="A yaml file to initialize the Job.")
parser.add_argument("--lang", "-l", nargs="?", default=None,
help="Set translation language.")
args = parser.parse_args()
return test_module(args.moduledir,
munge_filename(args.globalstorage_yaml),
munge_filename(args.configuration_yaml),
args.lang)
if __name__ == "__main__": if __name__ == "__main__":
sys.exit(main()) sys.exit(main())