openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
July 2014
- 1 participants
- 1416 discussions
Hello community,
here is the log from the commit of package OpenLP for openSUSE:Factory checked in at 2014-07-02 15:04:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/OpenLP (Old)
and /work/SRC/openSUSE:Factory/.OpenLP.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "OpenLP"
Changes:
--------
--- /work/SRC/openSUSE:Factory/OpenLP/OpenLP.changes 2014-02-16 19:54:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.OpenLP.new/OpenLP.changes 2014-07-02 15:04:50.000000000 +0200
@@ -1,0 +2,52 @@
+Mon Jun 30 23:56:46 EDT 2014 - joseph(a)mulloy.me
+
+- Updated to 2.0.5 (bnc#884901)
+ * Upstream bugfix/stabilization release
+ * Final release in the 2.0 branch
+ * Change to BibleGateway URL to use legacy web interface
+ * Issues with Themes when comparing theme files (lp#719514)
+ * Improved error messages with Easy Worship Song Imports (lp#1326664)
+ * Allow more than 26 equal verses within a Song (lp#1310523)
+ * Handle songs where two optional breaks follow each other (lp#1296104)
+ * Improve Database update error handling (lp#1136278)
+
+-------------------------------------------------------------------
+Mon Jun 30 23:14:58 EDT 2014 - joseph(a)mulloy.me
+
+- Updated to 2.0.5 (bnc#884901)
+ * Upstream bugfix/stabilization release
+ * Final release in the 2.0 branch
+ * Change to BibleGateway URL to use legacy web interface
+ * Issues with Themes when comparing theme files (lp#719514)
+ * Improved error messages with Easy Worship Song Imports (lp#1326664)
+ * Allow more than 26 equal verses within a Song (lp#1310523)
+ * Handle songs where two optional breaks follow each other (lp#1296104)
+ * Improve Database update error handling (lp#1136278)
+
+-------------------------------------------------------------------
+Mon Jun 30 22:36:20 EDT 2014 - joseph(a)mulloy.me
+
+- Updated to 2.0.5 (bnc#884901)
+ * Upstream bugfix/stabilization release
+ * Final release in the 2.0 branch
+ * Change to BibleGateway URL to use legacy web interface
+ * Issues with Themes when comparing theme files (lp#719514)
+ * Improved error messages with Easy Worship Song Imports (lp#1326664)
+ * Allow more than 26 equal verses within a Song (lp#1310523)
+ * Handle songs where two optional breaks follow each other (lp#1296104)
+ * Improve Database update error handling (lp#1136278)
+
+-------------------------------------------------------------------
+Mon Jun 30 00:27:40 EDT 2014 - joseph(a)mulloy.me
+
+- Updated to 2.0.5 (bnc#884901)
+ * Upstream bugfix/stabilization release
+ * Final release in the 2.0 branch
+ * Change to BibleGateway URL to use legacy web interface
+ * Issues with Themes when comparing theme files (lp#719514)
+ * Improved error messages with Easy Worship Song Imports (lp#1326664)
+ * Allow more than 26 equal verses within a Song. (lp#1310523)
+ * Handle songs where two optional breaks follow each other. (lp#1296104)
+ * Improve Database update error handling. (lp#1136278)
+
+-------------------------------------------------------------------
Old:
----
OpenLP-2.0.4.tar.gz
New:
----
OpenLP-2.0.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ OpenLP.spec ++++++
--- /var/tmp/diff_new_pack.u8vtnQ/_old 2014-07-02 15:04:51.000000000 +0200
+++ /var/tmp/diff_new_pack.u8vtnQ/_new 2014-07-02 15:04:51.000000000 +0200
@@ -17,7 +17,7 @@
Name: OpenLP
-Version: 2.0.4
+Version: 2.0.5
Release: 0
Summary: Open source Church presentation and lyrics projection application
License: GPL-2.0
++++++ OpenLP-2.0.4.tar.gz -> OpenLP-2.0.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/.version new/OpenLP-2.0.5/openlp/.version
--- old/OpenLP-2.0.4/openlp/.version 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/.version 2014-06-28 20:53:00.000000000 +0200
@@ -1 +1 @@
-2.0.4
+2.0.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/core/lib/renderer.py new/OpenLP-2.0.5/openlp/core/lib/renderer.py
--- old/OpenLP-2.0.4/openlp/core/lib/renderer.py 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/core/lib/renderer.py 2014-06-28 20:53:00.000000000 +0200
@@ -284,6 +284,9 @@
elif item.is_capable(ItemCapabilities.CanSoftBreak):
pages = []
if u'[---]' in text:
+ # Remove two or more option slide breaks next to each other (causing infinite loop).
+ while u'\n[---]\n[---]\n' in text:
+ text = text.replace(u'\n[---]\n[---]\n', u'\n[---]\n')
while True:
slides = text.split(u'\n[---]\n', 2)
# If there are (at least) two occurrences of [---] we use
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/core/ui/thememanager.py new/OpenLP-2.0.5/openlp/core/ui/thememanager.py
--- old/OpenLP-2.0.4/openlp/core/ui/thememanager.py 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/core/ui/thememanager.py 2014-06-28 20:53:00.000000000 +0200
@@ -698,7 +698,7 @@
finally:
if out_file:
out_file.close()
- if image_from and image_from != image_to:
+ if image_from and os.path.abspath(image_from) != os.path.abspath(image_to):
try:
encoding = get_filesystem_encoding()
shutil.copyfile(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/plugins/bibles/lib/http.py new/OpenLP-2.0.5/openlp/plugins/bibles/lib/http.py
--- old/OpenLP-2.0.4/openlp/plugins/bibles/lib/http.py 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/plugins/bibles/lib/http.py 2014-06-28 20:53:00.000000000 +0200
@@ -238,7 +238,7 @@
version)
cleaner = [(re.compile(' |<br />|\'\+\''), lambda match: '')]
soup = get_soup_for_bible_ref(
- u'http://www.biblegateway.com/passage/?%s' % url_params,
+ u'http://legacy.biblegateway.com/passage/?%s' % url_params,
pre_parse_regex=r'<meta name.*?/>', pre_parse_substitute='',
cleaner=cleaner)
if not soup:
@@ -271,7 +271,7 @@
log.debug(u'BGExtract.get_books_from_http("%s")', version)
url_params = urllib.urlencode(
{u'action': 'getVersionInfo', u'vid': u'%s' % version})
- reference_url = u'http://www.biblegateway.com/versions/?%s#books' % \
+ reference_url = u'http://legacy.biblegateway.com/versions/?%s#books' % \
url_params
page = get_web_page(reference_url)
if not page:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/plugins/bibles/lib/upgrade.py new/OpenLP-2.0.5/openlp/plugins/bibles/lib/upgrade.py
--- old/OpenLP-2.0.4/openlp/plugins/bibles/lib/upgrade.py 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/plugins/bibles/lib/upgrade.py 2014-06-28 20:53:00.000000000 +0200
@@ -37,6 +37,7 @@
__version__ = 1
log = logging.getLogger(__name__)
+
def upgrade_setup(metadata):
"""
Set up the latest revision all tables, with reflection, needed for the
@@ -61,31 +62,37 @@
metadata_table = metadata.tables[u'metadata']
# Copy "Version" to "name" ("version" used by upgrade system)
# TODO: Clean up in a subsequent release of OpenLP (like 2.0 final)
- session.execute(insert(metadata_table).values(
- key=u'name',
- value=select(
- [metadata_table.c.value],
- metadata_table.c.key == u'Version'
- ).as_scalar()
- ))
+ if select([metadata_table.c.value], metadata_table.c.key == u'Version')\
+ .as_scalar().execute().fetchall():
+ session.execute(insert(metadata_table).values(
+ key=u'name',
+ value=select(
+ [metadata_table.c.value],
+ metadata_table.c.key == u'Version'
+ ).as_scalar()
+ ))
# Copy "Copyright" to "copyright"
# TODO: Clean up in a subsequent release of OpenLP (like 2.0 final)
- session.execute(insert(metadata_table).values(
- key=u'copyright',
- value=select(
- [metadata_table.c.value],
- metadata_table.c.key == u'Copyright'
- ).as_scalar()
- ))
+ if select([metadata_table.c.value], metadata_table.c.key == u'Copyright')\
+ .as_scalar().execute().fetchall():
+ session.execute(insert(metadata_table).values(
+ key=u'copyright',
+ value=select(
+ [metadata_table.c.value],
+ metadata_table.c.key == u'Copyright'
+ ).as_scalar()
+ ))
# Copy "Permissions" to "permissions"
# TODO: Clean up in a subsequent release of OpenLP (like 2.0 final)
- session.execute(insert(metadata_table).values(
- key=u'permissions',
- value=select(
- [metadata_table.c.value],
- metadata_table.c.key == u'Permissions'
- ).as_scalar()
- ))
+ if select([metadata_table.c.value], metadata_table.c.key == u'Permissions')\
+ .as_scalar().execute().fetchall():
+ session.execute(insert(metadata_table).values(
+ key=u'permissions',
+ value=select(
+ [metadata_table.c.value],
+ metadata_table.c.key == u'Permissions'
+ ).as_scalar()
+ ))
# Copy "Bookname language" to "book_name_language"
# TODO: Clean up in a subsequent release of OpenLP (like 2.0 final)
value_count = session.execute(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/plugins/presentations/lib/powerpointcontroller.py new/OpenLP-2.0.5/openlp/plugins/presentations/lib/powerpointcontroller.py
--- old/OpenLP-2.0.4/openlp/plugins/presentations/lib/powerpointcontroller.py 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/plugins/presentations/lib/powerpointcontroller.py 2014-06-28 20:53:00.000000000 +0200
@@ -37,6 +37,7 @@
import pywintypes
from presentationcontroller import PresentationController, PresentationDocument
+from openlp.core.lib.ui import UiStrings, critical_error_message_box
log = logging.getLogger(__name__)
@@ -100,7 +101,7 @@
if self.process.Presentations.Count > 0:
return
self.process.Quit()
- except pywintypes.com_error:
+ except (AttributeError, pywintypes.com_error):
pass
self.process = None
@@ -124,18 +125,28 @@
Opens the PowerPoint file using the process created earlier.
"""
log.debug(u'load_presentation')
- if not self.controller.process or not self.controller.process.Visible:
- self.controller.start_process()
try:
+ if not self.controller.process or not self.controller.process.Visible:
+ self.controller.start_process()
self.controller.process.Presentations.Open(self.filepath, False,
False, True)
+ self.presentation = self.controller.process.Presentations(
+ self.controller.process.Presentations.Count)
+ self.create_thumbnails()
+ # Powerpoint 2013 pops up when loading a file, so we minimize it again
+ if self.presentation.Application.Version == u'15.0':
+ try:
+ self.presentation.Application.WindowState = 2
+ except:
+ log.exception(u'Failed to minimize main powerpoint window')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
+ return True
except pywintypes.com_error:
- log.debug(u'PPT open failed')
+ log.exception(u'PPT open failed')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
return False
- self.presentation = self.controller.process.Presentations(
- self.controller.process.Presentations.Count)
- self.create_thumbnails()
- return True
def create_thumbnails(self):
"""
@@ -187,7 +198,6 @@
return False
return True
-
def is_active(self):
"""
Returns ``True`` if a presentation is currently active.
@@ -209,23 +219,35 @@
Unblanks (restores) the presentation.
"""
log.debug(u'unblank_screen')
- self.presentation.SlideShowSettings.Run()
- self.presentation.SlideShowWindow.View.State = 1
- self.presentation.SlideShowWindow.Activate()
- if self.presentation.Application.Version == u'14.0':
- # Unblanking is broken in PowerPoint 2010, need to redisplay
- slide = self.presentation.SlideShowWindow.View.CurrentShowPosition
- click = self.presentation.SlideShowWindow.View.GetClickIndex()
- self.presentation.SlideShowWindow.View.GotoSlide(slide)
- if click:
- self.presentation.SlideShowWindow.View.GotoClick(click)
+ try:
+ self.presentation.SlideShowSettings.Run()
+ self.presentation.SlideShowWindow.View.State = 1
+ self.presentation.SlideShowWindow.Activate()
+ if self.presentation.Application.Version == u'14.0':
+ # Unblanking is broken in PowerPoint 2010, need to redisplay
+ slide = self.presentation.SlideShowWindow.View.CurrentShowPosition
+ click = self.presentation.SlideShowWindow.View.GetClickIndex()
+ self.presentation.SlideShowWindow.View.GotoSlide(slide)
+ if click:
+ self.presentation.SlideShowWindow.View.GotoClick(click)
+ except pywintypes.com_error:
+ log.exception(u'COM error while in unblank_screen')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
+ self.show_error_msg()
def blank_screen(self):
"""
Blanks the screen.
"""
log.debug(u'blank_screen')
- self.presentation.SlideShowWindow.View.State = 3
+ try:
+ self.presentation.SlideShowWindow.View.State = 3
+ except pywintypes.com_error:
+ log.exception(u'COM error while in blank_screen')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
+ self.show_error_msg()
def is_blank(self):
"""
@@ -233,7 +255,13 @@
"""
log.debug(u'is_blank')
if self.is_active():
- return self.presentation.SlideShowWindow.View.State == 3
+ try:
+ return self.presentation.SlideShowWindow.View.State == 3
+ except pywintypes.com_error:
+ log.exception(u'COM error while in is_blank')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
+ return False
else:
return False
@@ -242,8 +270,12 @@
Stops the current presentation and hides the output.
"""
log.debug(u'stop_presentation')
- self.presentation.SlideShowWindow.View.Exit()
-
+ try:
+ self.presentation.SlideShowWindow.View.Exit()
+ except pywintypes.com_error as e:
+ log.exception(u'COM error while in stop_presentation')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
if os.name == u'nt':
def start_presentation(self):
"""
@@ -264,39 +296,80 @@
ppt_window = self.presentation.SlideShowSettings.Run()
if not ppt_window:
return
- ppt_window.Top = rect.y() * 72 / dpi
- ppt_window.Height = rect.height() * 72 / dpi
- ppt_window.Left = rect.x() * 72 / dpi
- ppt_window.Width = rect.width() * 72 / dpi
-
+ try:
+ ppt_window.Top = rect.y() * 72 / dpi
+ ppt_window.Height = rect.height() * 72 / dpi
+ ppt_window.Left = rect.x() * 72 / dpi
+ ppt_window.Width = rect.width() * 72 / dpi
+ except AttributeError as e:
+ log.exception(u'AttributeError while in start_presentation')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
+ # Powerpoint 2013 pops up when starting a file, so we minimize it again
+ if self.presentation.Application.Version == u'15.0':
+ try:
+ self.presentation.Application.WindowState = 2
+ except:
+ log.exception(u'Failed to minimize main powerpoint window')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
def get_slide_number(self):
"""
Returns the current slide number.
"""
log.debug(u'get_slide_number')
- return self.presentation.SlideShowWindow.View.CurrentShowPosition
+ try:
+ ret = self.presentation.SlideShowWindow.View.CurrentShowPosition
+ except pywintypes.com_error as e:
+ ret = 0
+ log.exception(u'COM error while in get_slide_number')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
+ self.show_error_msg()
+ return ret
def get_slide_count(self):
"""
Returns total number of slides.
"""
log.debug(u'get_slide_count')
- return self.presentation.Slides.Count
+ try:
+ ret = self.presentation.Slides.Count
+ except pywintypes.com_error as e:
+ ret = 0
+ log.exception(u'COM error while in get_slide_count')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
+ self.show_error_msg()
+ return ret
def goto_slide(self, slideno):
"""
Moves to a specific slide in the presentation.
"""
log.debug(u'goto_slide')
- self.presentation.SlideShowWindow.View.GotoSlide(slideno)
+ try:
+ self.presentation.SlideShowWindow.View.GotoSlide(slideno)
+ except pywintypes.com_error as e:
+ log.exception(u'COM error while in goto_slide')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
+ self.show_error_msg()
def next_step(self):
"""
Triggers the next effect of slide on the running presentation.
"""
log.debug(u'next_step')
- self.presentation.SlideShowWindow.View.Next()
+ try:
+ self.presentation.SlideShowWindow.View.Next()
+ except pywintypes.com_error as e:
+ log.exception(u'COM error while in next_step')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
+ self.show_error_msg()
+ return
if self.get_slide_number() > self.get_slide_count():
self.previous_step()
@@ -305,7 +378,13 @@
Triggers the previous slide on the running presentation.
"""
log.debug(u'previous_step')
- self.presentation.SlideShowWindow.View.Previous()
+ try:
+ self.presentation.SlideShowWindow.View.Previous()
+ except pywintypes.com_error as e:
+ log.exception(u'COM error while in previous_step')
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ log.exception(''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)))
+ self.show_error_msg()
def get_slide_text(self, slide_no):
"""
@@ -326,6 +405,16 @@
return _get_text_from_shapes(
self.presentation.Slides(slide_no).NotesPage.Shapes)
+ def show_error_msg(self):
+ """
+ Stop presentation and display an error message.
+ """
+ self.stop_presentation()
+ critical_error_message_box(UiStrings().Error, translate('PresentationPlugin.PowerpointDocument',
+ 'An error occurred in the Powerpoint integration '
+ 'and the presentation will be stopped. '
+ 'Restart the presentation if you wish to present it.'))
+
def _get_text_from_shapes(shapes):
"""
Returns any text extracted from the shapes on a presentation slide.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/plugins/songs/forms/editsongform.py new/OpenLP-2.0.5/openlp/plugins/songs/forms/editsongform.py
--- old/OpenLP-2.0.4/openlp/plugins/songs/forms/editsongform.py 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/plugins/songs/forms/editsongform.py 2014-06-28 20:53:00.000000000 +0200
@@ -723,19 +723,32 @@
return False
cnt_errors = 0
error_list = ''
- verse_tag = []
- verse_num = []
+ verse_tags = []
+ wrong_verse_tags = []
+ wrong_verse_nums = []
for i in range(self.verseListWidget.rowCount()):
item = self.verseListWidget.item(i, 0)
tags = self.find_tags.findall(item.text())
+ verse_tags.append(unicode(item.data(QtCore.Qt.UserRole).toString()))
if self._validate_tags(tags) == False:
field = unicode(item.data(QtCore.Qt.UserRole).toString())
- verse_tag.append(VerseType.translated_name(field[0]))
- verse_num.append(field[1:])
+ wrong_verse_tags.append(VerseType.translated_name(field[0]))
+ wrong_verse_nums.append(field[1:])
cnt_errors += 1;
+ for tag in verse_tags:
+ if verse_tags.count(tag) > 26:
+ # lp#1310523: OpenLyrics allows only a-z variants of one verse:
+ # http://openlyrics.info/dataformat.html#verse-name
+ critical_error_message_box(
+ message=translate('SongsPlugin.EditSongForm',
+ 'You have %(count)s verses named %(name)s %(number)s. '
+ 'You can have at most 26 verses with the same name' %
+ {'count': verse_tags.count(tag), 'name': VerseType.translated_name(tag[0]),
+ 'number': tag[1:]}))
+ return False
if cnt_errors > 0:
for i in range(cnt_errors):
- error_list += '%s %s' % (verse_tag[i], verse_num[i])
+ error_list += '%s %s' % (wrong_verse_tags[i], wrong_verse_nums[i])
if i < cnt_errors-1:
error_list += ', '
critical_error_message_box(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/plugins/songs/lib/ewimport.py new/OpenLP-2.0.5/openlp/plugins/songs/lib/ewimport.py
--- old/OpenLP-2.0.4/openlp/plugins/songs/lib/ewimport.py 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/plugins/songs/lib/ewimport.py 2014-06-28 20:53:00.000000000 +0200
@@ -64,13 +64,23 @@
def doImport(self):
# Open the DB and MB files if they exist
- import_source_mb = self.importSource.replace('.DB', '.MB')
+ import_source_mb = self.importSource.replace('.DB', '.MB').replace('.db', '.mb')
if not os.path.isfile(self.importSource):
+ self.logError(self.importSource, translate(
+ 'SongsPlugin.EasyWorshipSongImport',
+ 'This file does not exist.'))
return
if not os.path.isfile(import_source_mb):
+ self.logError(self.importSource, translate(
+ 'SongsPlugin.EasyWorshipSongImport',
+ 'Could not find the "Songs.MB" file. It must be in the same '
+ 'folder as the "Songs.DB" file.'))
return
db_size = os.path.getsize(self.importSource)
if db_size < 0x800:
+ self.logError(self.importSource, translate(
+ 'SongsPlugin.EasyWorshipSongImport',
+ 'This file is not a valid EasyWorship database.'))
return
db_file = open(self.importSource, 'rb')
self.memoFile = open(import_source_mb, 'rb')
@@ -80,6 +90,9 @@
if header_size != 0x800 or block_size < 1 or block_size > 4:
db_file.close()
self.memoFile.close()
+ self.logError(self.importSource, translate(
+ 'SongsPlugin.EasyWorshipSongImport',
+ 'This file is not a valid EasyWorship database.'))
return
# Take a stab at how text is encoded
self.encoding = u'cp1252'
@@ -188,7 +201,15 @@
self.addAuthor(author_name.strip())
if words:
# Format the lyrics
- result = strip_rtf(words, self.encoding)
+ result = None
+ try:
+ result = strip_rtf(words, self.encoding)
+ except UnicodeDecodeError:
+ # The unicode chars in the rtf was not escaped in the expected manner.
+ self.logError(self.title, unicode(translate(
+ 'SongsPlugin.EasyWorshipSongImport',
+ 'Unexpected data formatting.')))
+ continue
if result is None:
return
words, self.encoding = result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/plugins/songs/lib/upgrade.py new/OpenLP-2.0.5/openlp/plugins/songs/lib/upgrade.py
--- old/OpenLP-2.0.4/openlp/plugins/songs/lib/upgrade.py 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/plugins/songs/lib/upgrade.py 2014-06-28 20:53:00.000000000 +0200
@@ -30,18 +30,24 @@
The :mod:`upgrade` module provides a way for the database and schema that is the
backend for the Songs plugin
"""
+import logging
from sqlalchemy import Column, Table, types
+from sqlalchemy.exc import NoSuchTableError, OperationalError
from sqlalchemy.sql.expression import func
from migrate.changeset.constraint import ForeignKeyConstraint
+log = logging.getLogger(__name__)
__version__ = 3
+
def upgrade_setup(metadata):
"""
Set up the latest revision all tables, with reflection, needed for the
upgrade process. If you want to drop a table, you need to remove it from
here, and add it to your upgrade function.
+
+ :param metadata: The SQLAlchemy metadata object
"""
tables = {
u'authors': Table(u'authors', metadata, autoload=True),
@@ -66,16 +72,23 @@
In order to facilitate this one-to-many relationship, a song_id column is
added to the media_files table, and a weight column so that the media
files can be ordered.
- """
- Table(u'media_files_songs', metadata, autoload=True).drop(checkfirst=True)
- Column(u'song_id', types.Integer(), default=None)\
- .create(table=tables[u'media_files'])
- Column(u'weight', types.Integer(), default=0)\
- .create(table=tables[u'media_files'])
- if metadata.bind.url.get_dialect().name != 'sqlite':
- # SQLite doesn't support ALTER TABLE ADD CONSTRAINT
- ForeignKeyConstraint([u'song_id'], [u'songs.id'],
- table=tables[u'media_files']).create()
+
+ :param session: An SQLAlchemy Session object
+ :param metadata: An SQLAlchemy MetaData object
+ :param tables: A dictionary of tables
+ """
+ try:
+ Table(u'media_files_songs', metadata, autoload=True).drop(checkfirst=True)
+ Column(u'song_id', types.Integer(), default=None)\
+ .create(table=tables[u'media_files'])
+ Column(u'weight', types.Integer(), default=0)\
+ .create(table=tables[u'media_files'])
+ if metadata.bind.url.get_dialect().name != 'sqlite':
+ # SQLite doesn't support ALTER TABLE ADD CONSTRAINT
+ ForeignKeyConstraint([u'song_id'], [u'songs.id'],
+ table=tables[u'media_files']).create()
+ except (NoSuchTableError, OperationalError):
+ log.info(u'Upgrade 1 has already been run, continue with upgrade')
def upgrade_2(session, metadata, tables):
@@ -83,11 +96,18 @@
Version 2 upgrade.
This upgrade adds a create_date and last_modified date to the songs table
- """
- Column(u'create_date', types.DateTime(), default=func.now())\
- .create(table=tables[u'songs'])
- Column(u'last_modified', types.DateTime(), default=func.now())\
- .create(table=tables[u'songs'])
+
+ :param session: An SQLAlchemy Session object
+ :param metadata: An SQLAlchemy MetaData object
+ :param tables: A dictionary of tables
+ """
+ try:
+ Column(u'create_date', types.DateTime(), default=func.now())\
+ .create(table=tables[u'songs'])
+ Column(u'last_modified', types.DateTime(), default=func.now())\
+ .create(table=tables[u'songs'])
+ except OperationalError:
+ log.info(u'Upgrade 2 has already been run, continue with upgrade')
def upgrade_3(session, metadata, tables):
@@ -95,7 +115,13 @@
Version 3 upgrade.
This upgrade adds a temporary song flag to the songs table
- """
- Column(u'temporary', types.Boolean(), default=False)\
- .create(table=tables[u'songs'])
+ :param session: An SQLAlchemy Session object
+ :param metadata: An SQLAlchemy MetaData object
+ :param tables: A dictionary of tables
+ """
+ try:
+ Column(u'temporary', types.Boolean(), default=False)\
+ .create(table=tables[u'songs'])
+ except OperationalError:
+ log.info(u'Upgrade 3 has already been run, continue with upgrade')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/plugins/songs/lib/xml.py new/OpenLP-2.0.5/openlp/plugins/songs/lib/xml.py
--- old/OpenLP-2.0.4/openlp/plugins/songs/lib/xml.py 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/plugins/songs/lib/xml.py 2014-06-28 20:53:00.000000000 +0200
@@ -360,9 +360,9 @@
verse_tag = verse[0][u'type'][0].lower()
verse_number = verse[0][u'label']
verse_def = verse_tag + verse_number
- verse_tags.append(verse_def)
# Create the letter from the number of duplicates
- verse[0][u'suffix'] = chr(96 + verse_tags.count(verse_def))
+ verse[0][u'suffix'] = chr(97 + (verse_tags.count(verse_def) % 26))
+ verse_tags.append(verse_def)
# If the verse tag is a duplicate use the suffix letter
for verse in verse_list:
verse_tag = verse[0][u'type'][0].lower()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/openlp/plugins/songusage/lib/upgrade.py new/OpenLP-2.0.5/openlp/plugins/songusage/lib/upgrade.py
--- old/OpenLP-2.0.4/openlp/plugins/songusage/lib/upgrade.py 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/openlp/plugins/songusage/lib/upgrade.py 2014-06-28 20:53:00.000000000 +0200
@@ -30,11 +30,15 @@
The :mod:`upgrade` module provides a way for the database and schema that is the
backend for the SongsUsage plugin
"""
+import logging
from sqlalchemy import Column, Table, types
+from sqlalchemy.exc import OperationalError
+log = logging.getLogger(__name__)
__version__ = 1
+
def upgrade_setup(metadata):
"""
Set up the latest revision all tables, with reflection, needed for the
@@ -53,7 +57,10 @@
This upgrade adds two new fields to the songusage database
"""
- Column(u'plugin_name', types.Unicode(20), default=u'') \
- .create(table=tables[u'songusage_data'], populate_default=True)
- Column(u'source', types.Unicode(10), default=u'') \
- .create(table=tables[u'songusage_data'], populate_default=True)
+ try:
+ Column(u'plugin_name', types.Unicode(20), default=u'') \
+ .create(table=tables[u'songusage_data'], populate_default=True)
+ Column(u'source', types.Unicode(10), default=u'') \
+ .create(table=tables[u'songusage_data'], populate_default=True)
+ except OperationalError:
+ log.info(u'Upgrade 1 has already been run, continue with upgrade')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenLP-2.0.4/resources/openlp.desktop new/OpenLP-2.0.5/resources/openlp.desktop
--- old/OpenLP-2.0.4/resources/openlp.desktop 2014-02-01 20:00:36.000000000 +0100
+++ new/OpenLP-2.0.5/resources/openlp.desktop 2014-06-28 20:53:00.000000000 +0200
@@ -1,7 +1,5 @@
[Desktop Entry]
Categories=AudioVideo;
-Comment[de]=
-Comment=
Exec=openlp %F
GenericName[de]=Church lyrics projection
GenericName=Church lyrics projection
@@ -9,11 +7,7 @@
MimeType=application/x-openlp-service;
Name[de]=OpenLP
Name=OpenLP
-Path=
StartupNotify=true
Terminal=false
Type=Application
-X-DBUS-ServiceName=
-X-DBUS-StartupType=
-X-KDE-SubstituteUID=false
-X-KDE-Username=
+X-KDE-SubstituteUID=false
\ No newline at end of file
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package presage for openSUSE:Factory checked in at 2014-07-02 15:04:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/presage (Old)
and /work/SRC/openSUSE:Factory/.presage.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "presage"
Changes:
--------
--- /work/SRC/openSUSE:Factory/presage/presage.changes 2013-09-25 14:34:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.presage.new/presage.changes 2014-07-02 15:04:47.000000000 +0200
@@ -1,0 +2,8 @@
+Tue Jun 10 16:31:45 UTC 2014 - i(a)marguerite.su
+
+- update version 0.9.beta20140216
+ * see ChangeLog file
+- drop patch: presage-0.8.9-automake_1.12_abuild.patch
+- add patch: presage-0.9.0-automake_1.12_abuild.patch
+
+-------------------------------------------------------------------
Old:
----
presage-0.8.9-automake_1.12_abuild.patch
presage-0.8.9.tar.gz
New:
----
presage-0.9.0-automake_1.12_abuild.patch
presage-0.9.beta20140216.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ presage.spec ++++++
--- /var/tmp/diff_new_pack.j0WItZ/_old 2014-07-02 15:04:48.000000000 +0200
+++ /var/tmp/diff_new_pack.j0WItZ/_new 2014-07-02 15:04:48.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package presage
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%define py_ver %(python -c "import sys; v=sys.version_info[:2]; print '%%d.%%d'%%v" 2>/dev/null || echo PYTHON-NOT-FOUND)
Name: presage
-Version: 0.8.9
+Version: 0.9.beta20140216
Release: 0
Summary: Intelligent predictive text entry platform (tools and demos)
License: GPL-2.0
@@ -31,7 +31,7 @@
# PATCH-FIX-UPSTREAM i(a)marguerite.su - port to cmuclmtk
Patch1: presage-0.8.9-port_cmuclmtk.patch
# PATCH-FIX-UPSTREAM i(a)marguerite.su automake 1.12 abuild patch
-Patch2: presage-0.8.9-automake_1.12_abuild.patch
+Patch2: presage-0.9.0-automake_1.12_abuild.patch
%if 0%{?suse_version}
BuildRequires: dbus-1-glib-devel
BuildRequires: dbus-1-python-devel
@@ -318,13 +318,13 @@
%{python_sitearch}/presage.pyo
%endif
%{_mandir}/man1/presage_python_demo.1.gz
-%{python_sitearch}/python_presage-0.8.9-py%{py_ver}.egg-info
+%{python_sitearch}/python_presage-0.9_beta-py%{py_ver}.egg-info
%files -n pyprompter
%defattr(-,root,root)
%{_bindir}/pyprompter
%{python_sitelib}/prompter
-%{python_sitelib}/pyprompter-0.8.9-py%{py_ver}.egg-info
+%{python_sitelib}/pyprompter-0.9_beta-py%{py_ver}.egg-info
%{_datadir}/applications/pyprompter.desktop
%{_datadir}/icons/hicolor/scalable/apps/pyprompter.svg
%{_mandir}/man1/pyprompter.1.gz
++++++ presage-0.8.9-automake_1.12_abuild.patch -> presage-0.9.0-automake_1.12_abuild.patch ++++++
--- /work/SRC/openSUSE:Factory/presage/presage-0.8.9-automake_1.12_abuild.patch 2013-09-25 14:34:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.presage.new/presage-0.9.0-automake_1.12_abuild.patch 2014-07-02 15:04:47.000000000 +0200
@@ -1,26 +1,24 @@
-Index: presage-0.8.9.beta20130208/Makefile.am
-===================================================================
---- presage-0.8.9.beta20130208.orig/Makefile.am
-+++ presage-0.8.9.beta20130208/Makefile.am
-@@ -65,7 +65,7 @@ EXTRA_DIST = FAQ
-
+diff -urN presage-0.9.beta20140216.orig/configure.ac presage-0.9.beta20140216/configure.ac
+--- presage-0.9.beta20140216.orig/configure.ac 2014-06-28 23:10:20.668562352 +0800
++++ presage-0.9.beta20140216/configure.ac 2014-06-28 23:10:37.325354114 +0800
+@@ -23,7 +23,7 @@
+
+
+ AC_INIT([presage],[0.9~beta],[matteo.vescovi(a)yahoo.co.uk])
+-AM_INIT_AUTOMAKE([-Wall -Werror])
++AM_INIT_AUTOMAKE([-Wall -Werror -Wno-extra-portability])
+
+ AC_CONFIG_SRCDIR([src/lib/presage.cpp])
+ AC_CONFIG_HEADERS([config.h:config.hin])
+diff -urN presage-0.9.beta20140216.orig/Makefile.am presage-0.9.beta20140216/Makefile.am
+--- presage-0.9.beta20140216.orig/Makefile.am 2014-06-28 23:10:20.718561727 +0800
++++ presage-0.9.beta20140216/Makefile.am 2014-06-28 23:10:27.924471641 +0800
+@@ -65,7 +65,7 @@
+
# Ensure local m4 macros are included during autoreconf and automatic
# aclocal.m4 remaking
-ACLOCAL_AMFLAGS = -I m4
+#ACLOCAL_AMFLAGS = -I m4
-
-
+
+
# Build Debian package
-Index: presage-0.8.9.beta20130208/configure.ac
-===================================================================
---- presage-0.8.9.beta20130208.orig/configure.ac
-+++ presage-0.8.9.beta20130208/configure.ac
-@@ -23,7 +23,7 @@ dnl Process this file with autoconf to p
-
-
- AC_INIT([presage],[0.8.9],[matteo.vescovi(a)yahoo.co.uk])
--AM_INIT_AUTOMAKE([-Wall -Werror])
-+AM_INIT_AUTOMAKE([-Wall -Werror -Wno-extra-portability])
-
- AC_CONFIG_SRCDIR([src/lib/presage.cpp])
- AC_CONFIG_HEADERS([config.h:config.hin])
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package yast2-geo-cluster for openSUSE:Factory checked in at 2014-07-02 15:04:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-geo-cluster (Old)
and /work/SRC/openSUSE:Factory/.yast2-geo-cluster.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-geo-cluster"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-geo-cluster/yast2-geo-cluster.changes 2014-06-16 21:39:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-geo-cluster.new/yast2-geo-cluster.changes 2014-07-02 15:04:46.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Jun 26 05:35:15 UTC 2014 - nwang(a)suse.com
+
+- BNC#882820 & BNC#882788. Support multiple confs configure in
+ one node. Create a new SCR agent to make new SLE12 configuration
+ file format compatible.
+- Version 3.1.4
+
+-------------------------------------------------------------------
Old:
----
yast2-geo-cluster-3.1.3.tar.bz2
New:
----
yast2-geo-cluster-3.1.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-geo-cluster.spec ++++++
--- /var/tmp/diff_new_pack.MVCE0G/_old 2014-07-02 15:04:47.000000000 +0200
+++ /var/tmp/diff_new_pack.MVCE0G/_new 2014-07-02 15:04:47.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-geo-cluster
-Version: 3.1.3
+Version: 3.1.4
Release: 0
%define _fwdefdir /etc/sysconfig/SuSEfirewall2.d/services
@@ -64,6 +64,7 @@
%{yast_moduledir}/*
%{yast_desktopdir}/geo-cluster.desktop
%{yast_scrconfdir}/*.scr
+%{yast_agentdir}/ag_booth
%doc %{yast_docdir}
%config %{_fwdefdir}/booth
++++++ yast2-geo-cluster-3.1.3.tar.bz2 -> yast2-geo-cluster-3.1.4.tar.bz2 ++++++
++++ 1755 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package homerun for openSUSE:Factory checked in at 2014-07-02 15:04:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/homerun (Old)
and /work/SRC/openSUSE:Factory/.homerun.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "homerun"
Changes:
--------
--- /work/SRC/openSUSE:Factory/homerun/homerun.changes 2014-05-05 21:09:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.homerun.new/homerun.changes 2014-07-02 15:04:44.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Jun 30 22:13:09 UTC 2014 - hrvoje.senjan(a)gmail.com
+
+- Update to 1.2.5
+ * Searching for applications in Homerun Kicker now also searches
+ app descriptions
+
+-------------------------------------------------------------------
Old:
----
homerun-1.2.4.tar.xz
New:
----
homerun-1.2.5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ homerun.spec ++++++
--- /var/tmp/diff_new_pack.JNRG4w/_old 2014-07-02 15:04:45.000000000 +0200
+++ /var/tmp/diff_new_pack.JNRG4w/_new 2014-07-02 15:04:45.000000000 +0200
@@ -21,7 +21,7 @@
Summary: Fullscreen Launcher for KDE
License: (GPL-2.0 or GPL-3.0) and (LGPL-2.1 or LGPL-3.0)
Group: System/GUI/KDE
-Version: 1.2.4
+Version: 1.2.5
Release: 0
%define sonum 0
Source0: http://download.kde.org/stable/%{name}/src/%{name}-%{version}.tar.xz
++++++ homerun-1.2.4.tar.xz -> homerun-1.2.5.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/CMakeLists.txt new/homerun-1.2.5/CMakeLists.txt
--- old/homerun-1.2.4/CMakeLists.txt 2014-05-02 16:05:20.000000000 +0200
+++ new/homerun-1.2.5/CMakeLists.txt 2014-06-30 17:12:43.000000000 +0200
@@ -3,7 +3,7 @@
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ${CMAKE_MODULE_PATH})
# Packaging
-set(HOMERUN_VERSION "1.2.4")
+set(HOMERUN_VERSION "1.2.5")
# Dependencies
find_package(KDE4 4.10.0 REQUIRED)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/NEWS new/homerun-1.2.5/NEWS
--- old/homerun-1.2.4/NEWS 2014-05-02 16:05:20.000000000 +0200
+++ new/homerun-1.2.5/NEWS 2014-06-30 17:12:43.000000000 +0200
@@ -1,3 +1,8 @@
+# 2014.06.30 - 1.2.5
+
+- Searching for applications in Homerun Kicker now also searches app
+ descriptions.
+
# 2014.05.02 - 1.2.4
- Added a configuration option for Homerun Kicker's application name display
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/components/sources/installedapps/filterableinstalledappsmodel.cpp new/homerun-1.2.5/components/sources/installedapps/filterableinstalledappsmodel.cpp
--- old/homerun-1.2.4/components/sources/installedapps/filterableinstalledappsmodel.cpp 2014-05-02 16:05:20.000000000 +0200
+++ new/homerun-1.2.5/components/sources/installedapps/filterableinstalledappsmodel.cpp 2014-06-30 17:12:43.000000000 +0200
@@ -41,6 +41,7 @@
{
setSourceModel(m_installedAppsModel);
setDynamicSortFilter(true);
+ setFilterRole(InstalledAppsModel::CombinedNameRole);
setFilterCaseSensitivity(Qt::CaseInsensitive);
connect(this, SIGNAL(modelReset()), this, SIGNAL(countChanged()));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/components/sources/installedapps/installedappsmodel.cpp new/homerun-1.2.5/components/sources/installedapps/installedappsmodel.cpp
--- old/homerun-1.2.4/components/sources/installedapps/installedappsmodel.cpp 2014-05-02 16:05:20.000000000 +0200
+++ new/homerun-1.2.5/components/sources/installedapps/installedappsmodel.cpp 2014-06-30 17:12:43.000000000 +0200
@@ -298,6 +298,9 @@
return actionList;
} else if (role == GenericNameRole && node->type() == AbstractNode::AppNodeType) {
return static_cast<AppNode *>(node)->genericName();
+ } else if (role == CombinedNameRole && node->type() == AbstractNode::AppNodeType) {
+ AppNode *appNode = static_cast<AppNode *>(node);
+ return QString(appNode->name() + ' ' + appNode->genericName());
}
return QVariant();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/components/sources/installedapps/installedappsmodel.h new/homerun-1.2.5/components/sources/installedapps/installedappsmodel.h
--- old/homerun-1.2.4/components/sources/installedapps/installedappsmodel.h 2014-05-02 16:05:20.000000000 +0200
+++ new/homerun-1.2.5/components/sources/installedapps/installedappsmodel.h 2014-06-30 17:12:43.000000000 +0200
@@ -126,7 +126,8 @@
FavoriteIdRole = Qt::UserRole + 1,
HasActionListRole,
ActionListRole,
- GenericNameRole
+ GenericNameRole,
+ CombinedNameRole
};
InstalledAppsModel(const QString &entryPath, const QString &installer, QObject *parent = 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/po/CMakeLists.txt new/homerun-1.2.5/po/CMakeLists.txt
--- old/homerun-1.2.4/po/CMakeLists.txt 2014-05-02 16:13:27.000000000 +0200
+++ new/homerun-1.2.5/po/CMakeLists.txt 2014-06-30 17:23:47.000000000 +0200
@@ -8,6 +8,7 @@
add_subdirectory( fi )
add_subdirectory( fr )
add_subdirectory( gl )
+add_subdirectory( hu )
add_subdirectory( it )
add_subdirectory( nl )
add_subdirectory( pl )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/po/es/plasma_applet_org.kde.homerun.po new/homerun-1.2.5/po/es/plasma_applet_org.kde.homerun.po
--- old/homerun-1.2.4/po/es/plasma_applet_org.kde.homerun.po 2014-05-02 16:06:32.000000000 +0200
+++ new/homerun-1.2.5/po/es/plasma_applet_org.kde.homerun.po 2014-06-30 17:01:07.000000000 +0200
@@ -4,13 +4,14 @@
# Rafael Belmonte <EagleScreen(a)gmail.com>, 2013.
# Eloy Cuadra <ecuadra(a)eloihr.net>, 2013.
# Jose Antonio Moray Serrano <moray33(a)gmx.com>, 2014.
+# Victor Rodrigo Cordoba <vrcordoba(a)gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2014-04-26 01:50+0000\n"
-"PO-Revision-Date: 2014-02-02 20:24+0100\n"
-"Last-Translator: Jose Antonio Moray Serrano <moray33(a)gmx.com>\n"
+"PO-Revision-Date: 2014-06-14 17:06+0200\n"
+"Last-Translator: Victor Rodrigo Cordoba <vrcordoba(a)gmail.com>\n"
"Language-Team: Spanish <kde-l10n-es(a)kde.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
@@ -21,11 +22,12 @@
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
-msgstr "José Antonio Moray Serrano,Rafael Belmonte Muñoz"
+msgstr ""
+"Víctor Rodrigo Córdoba,José Antonio Moray Serrano,Rafael Belmonte Muñoz"
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
-msgstr "moray33@gmail.com,EagleScreen@gmail.com"
+msgstr "vrcordoba@gmail.com,moray33@gmail.com,EagleScreen@gmail.com"
#: components/qml/ActionMenu.qml:75
msgid "(Empty)"
@@ -541,7 +543,7 @@
#: internal/aboutdata.cpp:49
msgid "Eike Hein"
-msgstr ""
+msgstr "Eike Hein"
#: internal/i18nconfig.cpp:30
msgctxt "Tab title"
@@ -572,7 +574,7 @@
#. i18n: ectx: property (text), widget (QLabel, label_4)
#: kicker/package/contents/ui/config.ui:33
msgid "Search bookmarks and files:"
-msgstr ""
+msgstr "Buscar marcadores y archivos:"
#. i18n: ectx: property (whatsThis), widget (QCheckBox, kcfg_runnerSupport)
#: kicker/package/contents/ui/config.ui:46
@@ -598,53 +600,49 @@
#. i18n: ectx: property (filter), widget (KUrlRequester, kcfg_buttonImage)
#: kicker/package/contents/ui/config.ui:94
msgid "*.jpg *.png *.xpm *.gif *.webp"
-msgstr ""
+msgstr "*.jpg *.png *.xpm *.gif *.webp"
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: kicker/package/contents/ui/config.ui:103
-#, fuzzy
-#| msgid "Align contents to bottom"
msgid "Align contents to bottom:"
-msgstr "Alinear contenido al fondo"
+msgstr "Alinear contenido al pie:"
#. i18n: ectx: property (text), widget (QLabel, label)
#: kicker/package/contents/ui/config.ui:123
-#, fuzzy
-#| msgid "Applications"
msgid "Show applications as:"
-msgstr "Aplicaciones"
+msgstr "Mostrar aplicaciones como:"
#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
#: kicker/package/contents/ui/config.ui:143
msgid "Name only"
-msgstr ""
+msgstr "Solo el nombre"
#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
#: kicker/package/contents/ui/config.ui:148
msgid "Description only"
-msgstr ""
+msgstr "Solo la descripción"
#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
#: kicker/package/contents/ui/config.ui:153
msgid "Name (Description)"
-msgstr ""
+msgstr "Nombre (Descripción)"
#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
#: kicker/package/contents/ui/config.ui:158
msgid "Description (Name)"
-msgstr ""
+msgstr "Descripción (Nombre)"
#: kicker/package/contents/ui/ItemListDelegate.qml:191
#, kde-format
msgctxt "App name (Generic name)"
msgid "%1 (%2)"
-msgstr ""
+msgstr "%1 (%2)"
#: kicker/package/contents/ui/ItemListDelegate.qml:193
#, kde-format
msgctxt "Generic Name (App name)"
msgid "%1 (%2)"
-msgstr ""
+msgstr "%1 (%2)"
#: kicker/package/contents/ui/main.qml:304
msgid "Search..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/po/hu/CMakeLists.txt new/homerun-1.2.5/po/hu/CMakeLists.txt
--- old/homerun-1.2.4/po/hu/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/homerun-1.2.5/po/hu/CMakeLists.txt 2014-06-30 17:01:20.000000000 +0200
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES( hu ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/po/hu/plasma_applet_org.kde.homerun.po new/homerun-1.2.5/po/hu/plasma_applet_org.kde.homerun.po
--- old/homerun-1.2.4/po/hu/plasma_applet_org.kde.homerun.po 1970-01-01 01:00:00.000000000 +0100
+++ new/homerun-1.2.5/po/hu/plasma_applet_org.kde.homerun.po 2014-06-30 17:01:20.000000000 +0200
@@ -0,0 +1,657 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Balázs Úr <urbalazs(a)gmail.com>, 2012, 2013, 2014.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-04-26 01:50+0000\n"
+"PO-Revision-Date: 2014-06-15 14:03+0200\n"
+"Last-Translator: Balázs Úr <urbalazs(a)gmail.com>\n"
+"Language-Team: Hungarian <kde-l10n-hu(a)kde.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 1.5\n"
+
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Úr Balázs"
+
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "urbalazs(a)gmail.com"
+
+#: components/qml/ActionMenu.qml:75
+msgid "(Empty)"
+msgstr "(Üres)"
+
+#: components/sourceregistry.cpp:252
+#, kde-format
+msgid "Runner: %1"
+msgstr "Futtató: %1"
+
+#: components/sourceregistry.cpp:274
+msgid "Installed Applications"
+msgstr "Telepített alkalmazások"
+
+#: components/sourceregistry.cpp:275
+msgid "Browse installed applications by categories"
+msgstr "Telepített alkalmazások böngészése kategóriák szerint"
+
+#: components/sourceregistry.cpp:278
+msgid "All Installed Applications"
+msgstr "Minden telepített alkalmazás"
+
+#: components/sourceregistry.cpp:279
+msgid "List all installed applications in a flat list, grouped by categories"
+msgstr ""
+
+#: components/sourceregistry.cpp:282
+msgid "All Installed Applications With Filters"
+msgstr "Minden telepített alkalmazás szűrőkkel"
+
+#: components/sourceregistry.cpp:283
+msgid "List all installed applications and filter via the sidebar"
+msgstr ""
+"Minden telepített alkalmazás és szűrő listázása az oldalsávon keresztül"
+
+#: components/sourceregistry.cpp:286
+#: components/sources/recentapps/recentappsmodel.cpp:290
+msgid "Recent Applications"
+msgstr "Legutóbbi alkalmazások"
+
+#: components/sourceregistry.cpp:287
+msgid "List the most recently launched applications"
+msgstr ""
+
+#: components/sourceregistry.cpp:290
+msgid "Folder"
+msgstr "Mappa"
+
+#: components/sourceregistry.cpp:291
+msgid "List the content of a folder and let you browse into sub-folders"
+msgstr ""
+
+#: components/sourceregistry.cpp:294
+#: components/sources/favorites/favoriteplacesmodel.cpp:139
+msgid "Favorite Places"
+msgstr "Kedvenc helyek"
+
+#: components/sourceregistry.cpp:295
+msgid "Browse the content of your favorite places"
+msgstr ""
+
+#: components/sourceregistry.cpp:298
+#: components/sources/favorites/favoriteappsmodel.cpp:234
+msgid "Favorite Applications"
+msgstr "Kedvenc alkalmazások"
+
+#: components/sourceregistry.cpp:299
+msgid "List applications marked as favorite"
+msgstr ""
+
+#: components/sourceregistry.cpp:302
+msgid "Power Management"
+msgstr "Energiakezelés"
+
+#: components/sourceregistry.cpp:303
+msgid "Provide buttons to suspend, hibernate, reboot or halt your computer"
+msgstr ""
+
+#: components/sourceregistry.cpp:306
+#: components/sources/session/sessionmodel.cpp:98
+msgid "Session"
+msgstr "Munkamenet"
+
+#: components/sourceregistry.cpp:307
+msgid "Provide buttons to lock the screen, log out, or switch to another user"
+msgstr ""
+
+#: components/sourceregistry.cpp:310
+#: components/sources/session/openedsessionsmodel.cpp:67
+msgid "Opened Sessions"
+msgstr "Megnyitott munkamenetek"
+
+#: components/sourceregistry.cpp:311
+msgid "Provide buttons to switch to opened sessions"
+msgstr ""
+
+#: components/sourceregistry.cpp:314
+#: components/sources/power/combinedpowersessionmodel.cpp:307
+msgid "Power / Session"
+msgstr "Erő / munkamenet"
+
+#: components/sourceregistry.cpp:315
+msgid ""
+"Provide buttons to manage your workspace session and the power state of your "
+"computer"
+msgstr ""
+
+#: components/sourceregistry.cpp:318
+msgid "KRunner"
+msgstr "KRunner"
+
+#: components/sourceregistry.cpp:319
+msgid "Perform searchs using a selection of runners"
+msgstr ""
+
+#. i18n: ectx: property (text), widget (QLabel, label_2)
+#: components/sources/dir/dirconfigurationwidget.ui:32
+msgid "Folder to show:"
+msgstr "Megjelenítendő mappa:"
+
+#. i18n: ectx: property (text), widget (QLabel, label)
+#: components/sources/dir/dirconfigurationwidget.ui:52
+msgid "Title:"
+msgstr "Cím:"
+
+#. i18n: ectx: property (text), widget (QLabel, titleHelpLabel)
+#: components/sources/dir/dirconfigurationwidget.ui:68
+msgid "If title is left empty, the folder name will be used"
+msgstr "Ha a cím üresen van hagyva, a mappanév lesz használva"
+
+#: components/sources/favorites/fileplacesmodel.cpp:124
+msgctxt "KFile System Bookmarks"
+msgid "Home"
+msgstr "Saját mappa"
+
+#: components/sources/favorites/fileplacesmodel.cpp:127
+msgctxt "KFile System Bookmarks"
+msgid "Network"
+msgstr "Hálózat"
+
+#: components/sources/favorites/fileplacesmodel.cpp:139
+msgctxt "KFile System Bookmarks"
+msgid "Root"
+msgstr "Gyökér"
+
+#: components/sources/favorites/fileplacesmodel.cpp:143
+msgctxt "KFile System Bookmarks"
+msgid "Trash"
+msgstr "Kuka"
+
+#: components/sources/favorites/fileplacesmodel.cpp:758
+#, kde-format
+msgid "&Release '%1'"
+msgstr "„%1” &elengedése"
+
+#: components/sources/favorites/fileplacesmodel.cpp:760
+#, kde-format
+msgid "&Safely Remove '%1'"
+msgstr "„%1” &biztonságos eltávolítása"
+
+#: components/sources/favorites/fileplacesmodel.cpp:763
+#, kde-format
+msgid "&Unmount '%1'"
+msgstr "„%1” &leválasztása"
+
+#: components/sources/favorites/fileplacesmodel.cpp:784
+#, kde-format
+msgid "&Eject '%1'"
+msgstr "„%1” ki&adása"
+
+#: components/sources/favorites/fileplacesmodel.cpp:818
+#, kde-format
+msgid "The device '%1' is not a disk and cannot be ejected."
+msgstr "A(z) „%1” eszköz nem lemez, ezért nem adható ki."
+
+#: components/sources/favorites/fileplacesmodel.cpp:854
+#, kde-format
+msgid "An error occurred while accessing '%1', the system responded: %2"
+msgstr "Hiba történt „%1” elérése közben, a rendszerüzenet: %2"
+
+#: components/sources/favorites/fileplacesmodel.cpp:858
+#, kde-format
+msgid "An error occurred while accessing '%1'"
+msgstr "Hiba történt „%1” elérése közben"
+
+#: components/sources/installedapps/installedappsconfigurationwidget.cpp:133
+#: components/sources/installedapps/installedappsmodel.cpp:332
+msgid "All Applications"
+msgstr "Minden alkalmazás"
+
+#. i18n: ectx: property (text), widget (QLabel, label)
+#: components/sources/installedapps/installedappsconfigurationwidget.ui:17
+msgid "Pick the application folder to display:"
+msgstr ""
+
+#: components/sources/installedapps/installedappsmodel.cpp:258
+#: components/sources/installedapps/installedappsmodel.cpp:269
+#: components/sources/recentapps/recentappsmodel.cpp:121
+#: components/sources/recentapps/recentappsmodel.cpp:132
+msgid "Add to Desktop"
+msgstr "Hozzáadás az asztalhoz"
+
+#: components/sources/installedapps/installedappsmodel.cpp:262
+#: components/sources/installedapps/installedappsmodel.cpp:273
+#: components/sources/recentapps/recentappsmodel.cpp:125
+#: components/sources/recentapps/recentappsmodel.cpp:136
+msgid "Add to Panel"
+msgstr "Hozzáadás a panelhez"
+
+#: components/sources/installedapps/installedappsmodel.cpp:293
+#: components/sources/recentapps/recentappsmodel.cpp:154
+msgid "Add as Launcher"
+msgstr "Hozzáadás az indítóhoz"
+
+#: components/sources/installedapps/installedappsmodel.cpp:437
+msgid "Applications"
+msgstr "Alkalmazások"
+
+#: components/sources/power/combinedpowersessionmodel.cpp:241
+msgid "Remove from Sidebar"
+msgstr "Eltávolítás az oldalsávról"
+
+#: components/sources/power/combinedpowersessionmodel.cpp:245
+msgid "Add to Sidebar"
+msgstr "Hozzáadás az oldalsávhoz"
+
+#: components/sources/power/powermodel.cpp:43
+msgid "Power"
+msgstr "Bekapcsolás"
+
+#: components/sources/power/powermodel.cpp:47
+msgctxt "an action"
+msgid "Suspend"
+msgstr "Felfüggesztés"
+
+#: components/sources/power/powermodel.cpp:53
+msgctxt "an action"
+msgid "Hibernate"
+msgstr "Hibernálás"
+
+#: components/sources/power/powermodel.cpp:59
+msgctxt "an action"
+msgid "Restart"
+msgstr "Újraindítás"
+
+#: components/sources/power/powermodel.cpp:64
+msgctxt "an action"
+msgid "Shutdown"
+msgstr "Leállítás"
+
+#: components/sources/recentapps/recentappsmodel.cpp:112
+msgid "Forget Application"
+msgstr "Alkalmazás elfelejtése"
+
+#. i18n: ectx: property (text), widget (QLabel, label)
+#: components/sources/runners/runnerconfigurationwidget.ui:17
+msgid "Pick the runners you would like to use in this source:"
+msgstr ""
+
+#: components/sources/session/sessionmodel.cpp:50
+msgctxt "an action"
+msgid "Lock"
+msgstr "Zárolás"
+
+#: components/sources/session/sessionmodel.cpp:65
+msgctxt "an action"
+msgid "New Session"
+msgstr "Új munkamenet"
+
+#: components/sources/session/sessionmodel.cpp:85
+msgctxt "an action"
+msgid "Logout"
+msgstr "Kijelentkezés"
+
+#: devdoc/helloworld/helloworld.cpp:47
+msgid "Hello"
+msgstr "Helló"
+
+#: devdoc/helloworld/helloworld.cpp:52
+msgid "World"
+msgstr "Világ"
+
+#: devdoc/helloworld/helloworld.cpp:67
+msgid "Hello World"
+msgstr "Helló, világ"
+
+#. i18n: ectx: property (text), widget (QLabel, label)
+#: fullscreen/applet/generalconfigpage.ui:17
+msgid "Icon:"
+msgstr "Ikon:"
+
+#: fullscreen/applet/homerunlauncher.cpp:60
+#: kicker/package/contents/ui/main.qml:571
+msgid "Edit Applications..."
+msgstr "Alkalmazások szerkesztése…"
+
+#: fullscreen/applet/homerunlauncher.cpp:143
+msgid "General"
+msgstr "Általános"
+
+#. i18n: ectx: property (text), widget (QLabel, label)
+#: fullscreen/package/contents/ui/config.ui:17
+msgid "Text Color:"
+msgstr "Szövegszín:"
+
+#. i18n: ectx: property (text), widget (QLabel, label_4)
+#: fullscreen/package/contents/ui/config.ui:30
+msgid "Text Shadow:"
+msgstr "Szövegárnyék:"
+
+#. i18n: ectx: property (text), widget (QRadioButton, kcfg_shadowModeNone)
+#: fullscreen/package/contents/ui/config.ui:40
+msgid "None"
+msgstr "Nincs"
+
+#. i18n: ectx: property (text), widget (QRadioButton, kcfg_shadowModeAuto)
+#: fullscreen/package/contents/ui/config.ui:47
+msgid "Automatic"
+msgstr "Automatikus"
+
+#. i18n: ectx: property (text), widget (QRadioButton, kcfg_shadowModeCustom)
+#: fullscreen/package/contents/ui/config.ui:56
+msgid "Custom:"
+msgstr "Egyéni:"
+
+#: fullscreen/package/contents/ui/main.qml:101
+msgid "Go to previous tab"
+msgstr "Ugrás az előző lapra"
+
+#: fullscreen/package/contents/ui/main.qml:107
+msgid "Go to next tab"
+msgstr "Ugrás a következő lapra"
+
+#: fullscreen/package/contents/ui/main.qml:113
+msgid "Focus search field"
+msgstr ""
+
+#: fullscreen/package/contents/ui/main.qml:119
+msgid "Go back"
+msgstr "Ugrás vissza"
+
+#: fullscreen/package/contents/ui/main.qml:125
+msgid "Go forward"
+msgstr "Ugrás előre"
+
+#: fullscreen/package/contents/ui/main.qml:131
+msgid "Go up"
+msgstr "Ugrás felfelé"
+
+#: fullscreen/package/contents/ui/main.qml:156
+msgctxt "Used for tabs which have no name"
+msgid "<Untitled>"
+msgstr "<Névtelen>"
+
+#: fullscreen/package/contents/ui/main.qml:241
+msgctxt "Button to leave configure mode"
+msgid "Done"
+msgstr "Kész"
+
+#: fullscreen/package/contents/ui/main.qml:263
+msgid "Search in current tab..."
+msgstr "Keresés az aktuális lapon…"
+
+#: fullscreen/package/contents/ui/main.qml:299
+msgid "End Configure Tabs"
+msgstr "Lapok beállításának befejezése"
+
+#: fullscreen/package/contents/ui/main.qml:299
+msgid "Configure Tabs"
+msgstr "Lapok beállítása"
+
+#: fullscreen/package/contents/ui/main.qml:308
+msgid "Configure Shortcuts..."
+msgstr "Gyorsbillentyűk beállítása…"
+
+#: fullscreen/package/contents/ui/main.qml:312
+msgid "Show Action List Buttons"
+msgstr "Műveleti listagombok megjelenítése"
+
+#: fullscreen/package/contents/ui/main.qml:321
+msgid "Show Desktop Tool Box"
+msgstr "Asztal eszközdoboz megjelenítése"
+
+#: fullscreen/package/contents/ui/main.qml:332
+msgid "Restore Tabs to Default"
+msgstr "Lapok visszaállítása az alapértelmezettre"
+
+#: fullscreen/package/contents/ui/main.qml:335
+msgid ""
+"Are you sure you want to restore tabs?\n"
+"Restoring tabs will reset your configuration to the default Homerun tabs.\n"
+"Your lists of favorite applications and places will remain untouched."
+msgstr ""
+
+#: fullscreen/package/contents/ui/main.qml:336
+#: fullscreen/package/contents/ui/main.qml:337
+msgid "Restore Tabs"
+msgstr "Lapok visszaállítása"
+
+#: fullscreen/package/contents/ui/main.qml:350
+#, kde-format
+msgid "About %1"
+msgstr "%1 névjegye"
+
+#: fullscreen/package/contents/ui/Result.qml:149
+msgid "Drag to reorder; release to show menu"
+msgstr ""
+
+#: fullscreen/package/contents/ui/Result.qml:151
+msgid "Release to show menu"
+msgstr ""
+
+#: fullscreen/package/contents/ui/Result.qml:153
+msgid "Drag to reorder"
+msgstr "Húzza az újrarendezéshez"
+
+#: fullscreen/package/contents/ui/Result.qml:156
+msgid "This item has no menu and cannot be dragged"
+msgstr "Ennek az elemnek nincs menüje és nem lehet húzni"
+
+#: fullscreen/package/contents/ui/ResultsView.qml:192
+#: kicker/package/contents/ui/ItemListDelegate.qml:268
+#: kicker/package/contents/ui/SidebarItem.qml:122
+msgid "Remove from Favorites"
+msgstr "Eltávolítás a kedvencekből"
+
+#: fullscreen/package/contents/ui/ResultsView.qml:196
+#: kicker/package/contents/ui/ItemListDelegate.qml:272
+#: kicker/package/contents/ui/SidebarItem.qml:126
+msgid "Add to Favorites"
+msgstr "Hozzáadás a kedvencekhez"
+
+#: fullscreen/package/contents/ui/ResultsView.qml:367
+#, kde-format
+msgid "%1 has been added to your favorites"
+msgstr "%1 hozzá lett adva a kedvencekhez"
+
+#: fullscreen/package/contents/ui/SourceItem.qml:55
+#, kde-format
+msgid "Broken source '%1'"
+msgstr "Törött forrás: „%1”"
+
+#: fullscreen/package/contents/ui/TabContent.qml:86
+msgid "Tab Icon:"
+msgstr "Lapikon:"
+
+#: fullscreen/package/contents/ui/TabContent.qml:105
+msgid "Tab Label:"
+msgstr "Lapcímke:"
+
+#: fullscreen/viewer/main.cpp:41
+#, kde-format
+msgid ""
+"<p><b>Sorry, Homerun failed to load</b></p><p>Do you want to report this "
+"error?</p><p>If you decide to report it, please copy and paste the following "
+"output in your report:</p><pre>%1</pre>"
+msgstr ""
+"<p><b>Elnézést, a Homerun betöltése nem sikerült</b></p><p>Szeretné ezt a "
+"hibát jelenteni?</p><p>Ha úgy dönt, hogy jelenti, kérjük másolja ki és "
+"illessze be a következő kimenetet a jelentésébe:</p><pre>%1</pre>"
+
+#: fullscreen/viewer/main.cpp:48
+msgid "Report Error"
+msgstr "Hiba jelentése"
+
+#: fullscreen/viewer/main.cpp:65
+msgid "Log focused item (for debug purposes)"
+msgstr ""
+
+#: fullscreen/viewer/main.cpp:66
+msgid "Use a plain window (for debug purposes)"
+msgstr ""
+
+#: internal/aboutdata.cpp:41
+msgctxt "Program name"
+msgid "Homerun"
+msgstr "Homerun"
+
+#: internal/aboutdata.cpp:44
+msgid "(C) 2012-2014 Blue Systems"
+msgstr "© Blue Systems, 2012-2014."
+
+#: internal/aboutdata.cpp:47
+msgid "Shaun Reich"
+msgstr "Shaun Reich"
+
+#: internal/aboutdata.cpp:47 internal/aboutdata.cpp:48
+#: internal/aboutdata.cpp:49
+msgid "Developer"
+msgstr "Fejlesztő"
+
+#: internal/aboutdata.cpp:48
+msgid "Aurélien Gâteau"
+msgstr "Aurélien Gâteau"
+
+#: internal/aboutdata.cpp:49
+msgid "Eike Hein"
+msgstr "Eike Hein"
+
+#: internal/i18nconfig.cpp:30
+msgctxt "Tab title"
+msgid "Home"
+msgstr "Saját mappa"
+
+#: internal/i18nconfig.cpp:31
+msgctxt "Tab title"
+msgid "Files"
+msgstr "Fájlok"
+
+#: internal/i18nconfig.cpp:32
+msgctxt "Tab title"
+msgid "Applications"
+msgstr "Alkalmazások"
+
+#: internal/i18nconfig.cpp:33
+msgctxt "Tab title"
+msgid "Power"
+msgstr "Bekapcsolás"
+
+#. i18n: ectx: property (text), widget (QLabel, label_6)
+#: kicker/package/contents/ui/config.ui:26
+msgid "Behavior"
+msgstr "Viselkedés"
+
+#. i18n: ectx: property (text), widget (QLabel, label_4)
+#: kicker/package/contents/ui/config.ui:33
+msgid "Search bookmarks and files:"
+msgstr "Könyvjelzők és fájlok keresése:"
+
+#. i18n: ectx: property (whatsThis), widget (QCheckBox, kcfg_runnerSupport)
+#: kicker/package/contents/ui/config.ui:46
+msgid ""
+"If this option is enabled, search may display additional columns with search "
+"results powered by certain Plasma runner plugins, such as \"Bookmarks\" and "
+"\"Desktop Search\"."
+msgstr ""
+
+#. i18n: ectx: property (text), widget (QLabel, label_5)
+#: kicker/package/contents/ui/config.ui:62
+msgid "Appearance"
+msgstr "Megjelenés"
+
+#. i18n: ectx: property (text), widget (QLabel, label_2)
+#: kicker/package/contents/ui/config.ui:69
+msgid "Custom button image:"
+msgstr "Egyéni gombkép:"
+
+#. i18n: ectx: property (filter), widget (KUrlRequester, kcfg_buttonImage)
+#: kicker/package/contents/ui/config.ui:94
+msgid "*.jpg *.png *.xpm *.gif *.webp"
+msgstr "*.jpg *.png *.xpm *.gif *.webp"
+
+#. i18n: ectx: property (text), widget (QLabel, label_3)
+#: kicker/package/contents/ui/config.ui:103
+msgid "Align contents to bottom:"
+msgstr "Tartalmak igazítása alulra:"
+
+#. i18n: ectx: property (text), widget (QLabel, label)
+#: kicker/package/contents/ui/config.ui:123
+msgid "Show applications as:"
+msgstr "Alkalmazások megjelenítése másként:"
+
+#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
+#: kicker/package/contents/ui/config.ui:143
+msgid "Name only"
+msgstr "Csak név"
+
+#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
+#: kicker/package/contents/ui/config.ui:148
+msgid "Description only"
+msgstr "Csak leírás"
+
+#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
+#: kicker/package/contents/ui/config.ui:153
+msgid "Name (Description)"
+msgstr "Név (leírás)"
+
+#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
+#: kicker/package/contents/ui/config.ui:158
+msgid "Description (Name)"
+msgstr "Leírás (név)"
+
+#: kicker/package/contents/ui/ItemListDelegate.qml:191
+#, kde-format
+msgctxt "App name (Generic name)"
+msgid "%1 (%2)"
+msgstr "%1 (%2)"
+
+#: kicker/package/contents/ui/ItemListDelegate.qml:193
+#, kde-format
+msgctxt "Generic Name (App name)"
+msgid "%1 (%2)"
+msgstr "%1 (%2)"
+
+#: kicker/package/contents/ui/main.qml:304
+msgid "Search..."
+msgstr "Keresés…"
+
+#: kicker/package/contents/ui/main.qml:504
+#: plugins/recentdocuments/recentdocuments.cpp:130
+msgid "Recent Documents"
+msgstr "Legutóbbi dokumentumok"
+
+#: kicker/package/contents/ui/main.qml:567
+msgid "Homerun Kicker"
+msgstr "Homerun kirúgó"
+
+#: kicker/package/contents/ui/main.qml:568
+msgid "Launch applications and manage your desktop."
+msgstr "Alkalmazások indítása és az asztal kezelése."
+
+#: lib/actionlist.cpp:75
+msgctxt "@action:inmenu"
+msgid "Empty Trash"
+msgstr "Kuka ürítése"
+
+#: lib/actionlist.cpp:93
+msgid "Open with:"
+msgstr "Megnyitás ezzel:"
+
+#: lib/actionlist.cpp:105
+msgid "Properties"
+msgstr "Tulajdonságok"
+
+#: plugins/recentdocuments/recentdocuments.cpp:152
+msgid "Forget Document"
+msgstr "Dokumentum elfelejtése"
+
+#~ msgctxt "an action"
+#~ msgid "Switch User"
+#~ msgstr "Felhasználóváltás"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/po/nl/plasma_applet_org.kde.homerun.po new/homerun-1.2.5/po/nl/plasma_applet_org.kde.homerun.po
--- old/homerun-1.2.4/po/nl/plasma_applet_org.kde.homerun.po 2014-05-02 16:07:03.000000000 +0200
+++ new/homerun-1.2.5/po/nl/plasma_applet_org.kde.homerun.po 2014-06-30 17:01:39.000000000 +0200
@@ -7,7 +7,7 @@
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2014-04-26 01:50+0000\n"
-"PO-Revision-Date: 2014-04-26 15:50+0200\n"
+"PO-Revision-Date: 2014-06-19 00:01+0200\n"
"Last-Translator: Freek de Kruijf <freekdekruijf(a)kde.nl>\n"
"Language-Team: Dutch <kde-i18n-nl(a)kde.org>\n"
"Language: nl\n"
@@ -329,7 +329,7 @@
#: fullscreen/applet/homerunlauncher.cpp:60
#: kicker/package/contents/ui/main.qml:571
msgid "Edit Applications..."
-msgstr "Programma's bewerken..."
+msgstr "Toepassingen bewerken..."
#: fullscreen/applet/homerunlauncher.cpp:143
msgid "General"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/po/sk/plasma_applet_org.kde.homerun.po new/homerun-1.2.5/po/sk/plasma_applet_org.kde.homerun.po
--- old/homerun-1.2.4/po/sk/plasma_applet_org.kde.homerun.po 2014-05-02 16:07:15.000000000 +0200
+++ new/homerun-1.2.5/po/sk/plasma_applet_org.kde.homerun.po 2014-06-30 17:01:50.000000000 +0200
@@ -661,6 +661,3 @@
#: plugins/recentdocuments/recentdocuments.cpp:152
msgid "Forget Document"
msgstr "Zabudnúť dokument"
-
-#~ msgid "Use Plasma runners for additional search results"
-#~ msgstr "Použiť Plasma runnerov na dodatočné výsledky hľadania"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/po/tr/plasma_applet_org.kde.homerun.po new/homerun-1.2.5/po/tr/plasma_applet_org.kde.homerun.po
--- old/homerun-1.2.4/po/tr/plasma_applet_org.kde.homerun.po 2014-05-02 16:07:24.000000000 +0200
+++ new/homerun-1.2.5/po/tr/plasma_applet_org.kde.homerun.po 2014-06-30 17:01:59.000000000 +0200
@@ -7,7 +7,7 @@
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2014-04-26 01:50+0000\n"
-"PO-Revision-Date: 2014-02-17 15:23+0100\n"
+"PO-Revision-Date: 2014-05-04 15:13+0200\n"
"Last-Translator: Volkan Gezer <volkangezer(a)gmail.com>\n"
"Language-Team: Turkish <kde-l10n-tr(a)kde.org>\n"
"Language: tr\n"
@@ -561,7 +561,7 @@
#. i18n: ectx: property (text), widget (QLabel, label_4)
#: kicker/package/contents/ui/config.ui:33
msgid "Search bookmarks and files:"
-msgstr ""
+msgstr "Yer imleri ve dosyalarda ara:"
#. i18n: ectx: property (whatsThis), widget (QCheckBox, kcfg_runnerSupport)
#: kicker/package/contents/ui/config.ui:46
@@ -591,49 +591,45 @@
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: kicker/package/contents/ui/config.ui:103
-#, fuzzy
-#| msgid "Align contents to bottom"
msgid "Align contents to bottom:"
-msgstr "İçerikleri alta hizala"
+msgstr "İçerikleri alta hizala:"
#. i18n: ectx: property (text), widget (QLabel, label)
#: kicker/package/contents/ui/config.ui:123
-#, fuzzy
-#| msgid "Applications"
msgid "Show applications as:"
-msgstr "Uygulamalar"
+msgstr "Uygulamaları şu şekilde göster:"
#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
#: kicker/package/contents/ui/config.ui:143
msgid "Name only"
-msgstr ""
+msgstr "Sadece isim"
#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
#: kicker/package/contents/ui/config.ui:148
msgid "Description only"
-msgstr ""
+msgstr "Sadece açıklama"
#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
#: kicker/package/contents/ui/config.ui:153
msgid "Name (Description)"
-msgstr ""
+msgstr "İsim (Açıklama)"
#. i18n: ectx: property (text), item, widget (QComboBox, kcfg_nameFormat)
#: kicker/package/contents/ui/config.ui:158
msgid "Description (Name)"
-msgstr ""
+msgstr "Açıklama (İsim)"
#: kicker/package/contents/ui/ItemListDelegate.qml:191
#, kde-format
msgctxt "App name (Generic name)"
msgid "%1 (%2)"
-msgstr ""
+msgstr "%1 (%2)"
#: kicker/package/contents/ui/ItemListDelegate.qml:193
#, kde-format
msgctxt "Generic Name (App name)"
msgid "%1 (%2)"
-msgstr ""
+msgstr "%1 (%2)"
#: kicker/package/contents/ui/main.qml:304
msgid "Search..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/homerun-1.2.4/po/uk/plasma_applet_org.kde.homerun.po new/homerun-1.2.5/po/uk/plasma_applet_org.kde.homerun.po
--- old/homerun-1.2.4/po/uk/plasma_applet_org.kde.homerun.po 2014-05-02 16:07:27.000000000 +0200
+++ new/homerun-1.2.5/po/uk/plasma_applet_org.kde.homerun.po 2014-06-30 17:02:02.000000000 +0200
@@ -4,7 +4,7 @@
# Yuri Chornoivan <yurchor(a)ukr.net>, 2012, 2013, 2014.
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: plasma_applet_org.kde.homerun\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2014-04-26 01:50+0000\n"
"PO-Revision-Date: 2014-04-26 09:07+0300\n"
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package R-base for openSUSE:Factory checked in at 2014-07-02 15:04:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/R-base (Old)
and /work/SRC/openSUSE:Factory/.R-base.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "R-base"
Changes:
--------
--- /work/SRC/openSUSE:Factory/R-base/R-base.changes 2014-05-13 20:48:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.R-base.new/R-base.changes 2014-07-02 15:04:42.000000000 +0200
@@ -1,0 +2,5 @@
+Fri Jun 20 18:26:23 UTC 2014 - darin(a)darins.net
+
+- added parallel provides
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ R-base.spec ++++++
--- /var/tmp/diff_new_pack.xIti4s/_old 2014-07-02 15:04:43.000000000 +0200
+++ /var/tmp/diff_new_pack.xIti4s/_new 2014-07-02 15:04:43.000000000 +0200
@@ -104,6 +104,7 @@
Provides: R-mgcv = 1.7.29
Provides: R-nlme = 3.1.117
Provides: R-nnet = 7.3.8
+Provides: R-parallel = 3.0.2
Provides: R-rpart = 4.1.8
Provides: R-spatial = 7.3.8
Provides: R-splines = %{version}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package linuxrc for openSUSE:Factory checked in at 2014-07-02 15:04:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/linuxrc (Old)
and /work/SRC/openSUSE:Factory/.linuxrc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "linuxrc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/linuxrc/linuxrc.changes 2014-06-26 08:00:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.linuxrc.new/linuxrc.changes 2014-07-02 15:04:39.000000000 +0200
@@ -1,0 +2,14 @@
+Wed Jul 2 08:01:51 CEST 2014 - snwint(a)suse.de
+
+- check for a selection of 0 when returning from dia_list to choose the network
+ device (bnc #885231)
+- 4.2.38
+
+-------------------------------------------------------------------
+Tue Jul 1 11:29:55 CEST 2014 - snwint(a)suse.de
+
+- move udev start script to /scripts dir
+- added new 'ifcfg' option to configure network
+- 4.2.37
+
+-------------------------------------------------------------------
Old:
----
linuxrc-4.2.36.tar.xz
New:
----
linuxrc-4.2.38.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ linuxrc.spec ++++++
--- /var/tmp/diff_new_pack.jLF2dj/_old 2014-07-02 15:04:40.000000000 +0200
+++ /var/tmp/diff_new_pack.jLF2dj/_new 2014-07-02 15:04:40.000000000 +0200
@@ -25,9 +25,9 @@
Summary: SUSE Installation Program
License: GPL-3.0+
Group: System/Boot
-Version: 4.2.36
+Version: 4.2.38
Release: 0
-Source: linuxrc-4.2.36.tar.xz
+Source: linuxrc-4.2.38.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
++++++ linuxrc-4.2.36.tar.xz -> linuxrc-4.2.38.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-4.2.36/VERSION new/linuxrc-4.2.38/VERSION
--- old/linuxrc-4.2.36/VERSION 2014-06-25 15:59:47.000000000 +0200
+++ new/linuxrc-4.2.38/VERSION 2014-07-02 08:01:43.000000000 +0200
@@ -1 +1 @@
-4.2.36
+4.2.38
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-4.2.36/changelog new/linuxrc-4.2.38/changelog
--- old/linuxrc-4.2.36/changelog 2014-06-25 15:59:49.000000000 +0200
+++ new/linuxrc-4.2.38/changelog 2014-07-02 08:01:45.000000000 +0200
@@ -1,4 +1,19 @@
-2014-06-25: HEAD
+2014-07-02: HEAD
+ - Merge pull request #10 from openSUSE/bnc885231
+ - Check for a selection of 0 when returning from dia_list to choose the network device
+ - Check for a selection of 0 when returning from dia_list to choose the network device.
+
+2014-07-01: 4.2.37
+ - move udev start script to /script dir
+ - added new 'ifcfg' option to configure network
+ - Simple examples are ifcfg=*=dhcp (configure all devices with dhcp) or
+ - ifcfg=eth0=10.0.1.1/24,10.0.1.254 (eth0: static setup, ip 10.0.1.1,
+ - netmask 255.255.255.0, gateway 10.0.1.254). See linuxrc docu for more.
+ - The main difference to the existing (old) network setup strategy is that
+ - 'ifcfg' just creates config files in /etc/sysconfig/network and runs wicked.
+ - It doesn't 'try' the config on every interface until one works.
+
+2014-06-25: 4.2.36
- tag ibft interface as persistent
- ignore ibft data if we can't find a matching interface (bnc #883712, bnc #874795)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-4.2.36/file.c new/linuxrc-4.2.38/file.c
--- old/linuxrc-4.2.36/file.c 2014-06-24 10:25:13.000000000 +0200
+++ new/linuxrc-4.2.38/file.c 2014-06-27 11:55:08.000000000 +0200
@@ -308,6 +308,7 @@
{ key_wicked, "Wicked", kf_cfg + kf_cmd + kf_cmd_early },
{ key_withipoib, "WithIPoIB", kf_cfg + kf_cmd_early },
{ key_upgrade, "Upgrade", kf_cfg + kf_cmd },
+ { key_ifcfg, "ifcfg", kf_cfg + kf_cmd_early },
};
static struct {
@@ -1648,6 +1649,10 @@
if(f->is.numeric) config.upgrade = f->nvalue;
break;
+ case key_ifcfg:
+ if(*f->value) slist_append_str(&config.ifcfg.list, f->value);
+ break;
+
default:
break;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-4.2.36/file.h new/linuxrc-4.2.38/file.h
--- old/linuxrc-4.2.36/file.h 2014-06-23 12:56:43.000000000 +0200
+++ new/linuxrc-4.2.38/file.h 2014-06-26 10:58:36.000000000 +0200
@@ -53,7 +53,7 @@
key_osahwaddr, key_zen, key_zenconfig, key_udevrule, key_dhcpfail,
key_namescheme, key_ptoptions, key_is_ptoption, key_withfcoe, key_digests,
key_plymouth, key_sslcerts, key_restart, key_restarted, key_wicked, key_autoyast2,
- key_withipoib, key_upgrade
+ key_withipoib, key_upgrade, key_ifcfg
} file_key_t;
typedef enum {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-4.2.36/global.h new/linuxrc-4.2.38/global.h
--- old/linuxrc-4.2.36/global.h 2014-06-25 15:56:18.000000000 +0200
+++ new/linuxrc-4.2.38/global.h 2014-06-26 15:38:32.000000000 +0200
@@ -625,6 +625,12 @@
} wlan;
} net;
+ struct {
+ slist_t *list; /* list of ifcfg options */
+ slist_t *initial; /* list of initially setup network interfaces */
+ } ifcfg;
+
+
#if defined(__s390__) || defined(__s390x__)
/* hwcfg file parameters */
struct {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-4.2.36/linuxrc.c new/linuxrc-4.2.38/linuxrc.c
--- old/linuxrc-4.2.36/linuxrc.c 2014-06-24 10:55:54.000000000 +0200
+++ new/linuxrc-4.2.38/linuxrc.c 2014-07-01 11:20:54.000000000 +0200
@@ -879,16 +879,15 @@
system("/sbin/insmod /modules/edd.ko 2>/dev/null");
}
+ util_set_stderr(config.stderr_name);
+
if(!config.test) {
- fprintf(stderr, "Starting udev... ");
- fflush(stderr);
- system("/bin/myudevstart >/dev/null 2>&1");
- fprintf(stderr, "ok\n");
- unlink("/devz"); /* cf. util_mkdevs() */
+ printf("Starting udev... ");
+ fflush(stdout);
+ util_run_script("udev_setup");
+ printf("ok\n");
}
- util_set_stderr(config.stderr_name);
-
if(config.had_segv) config.manual = 1;
if(!config.test && !config.had_segv) {
@@ -1098,7 +1097,9 @@
}
}
- net_setup_localhost();
+ net_write_initial_ifcfg();
+
+ util_run_script("network_setup");
if(config.manual) file_read_info_file("cmdline", kf_cmd);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-4.2.36/net.c new/linuxrc-4.2.38/net.c
--- old/linuxrc-4.2.36/net.c 2014-06-06 08:19:37.000000000 +0200
+++ new/linuxrc-4.2.38/net.c 2014-07-02 08:00:42.000000000 +0200
@@ -89,8 +89,9 @@
static int net_dhcp6(void);
static void net_ask_domain(void);
-static int write_ifcfg(void);
+static int write_ifcfg(char *device, slist_t *cfg);
static char *inet2str(inet_t *inet, int type);
+static slist_t *ifcfg_split(char *ifcfg);
/*
@@ -438,90 +439,6 @@
/*
- * Configure loopback interface.
- */
-int net_setup_localhost()
-{
- char address_ti [20];
- struct in_addr ipaddr_ri;
- int socket_ii;
- struct ifreq interface_ri;
- struct sockaddr_in sockaddr_ri;
- int error_ii = FALSE;
-
- if(config.test) return 0;
-
- fprintf (stderr, "Setting up localhost...");
- fflush (stdout);
-
- if(!util_check_exist("/etc/hosts")) system("echo 127.0.0.1 localhost >/etc/hosts");
-
- socket_ii = socket (AF_INET, SOCK_DGRAM, 0);
- if (socket_ii == -1)
- return (socket_ii);
-
- memset (&interface_ri, 0, sizeof (struct ifreq));
- strcpy (interface_ri.ifr_name, "lo");
-
- sockaddr_ri.sin_family = AF_INET;
- sockaddr_ri.sin_port = 0;
- strcpy (address_ti, "127.0.0.1");
- if (!inet_aton (address_ti, &ipaddr_ri))
- error_ii = TRUE;
- sockaddr_ri.sin_addr = ipaddr_ri;
- memcpy (&interface_ri.ifr_addr, &sockaddr_ri, sizeof (sockaddr_ri));
- if (ioctl (socket_ii, SIOCSIFADDR, &interface_ri) < 0)
- {
- HERE
- error_ii = TRUE;
- }
-
- strcpy (address_ti, "255.0.0.0");
- if (!inet_aton (address_ti, &ipaddr_ri))
- error_ii = TRUE;
- sockaddr_ri.sin_addr = ipaddr_ri;
- memcpy (&interface_ri.ifr_netmask, &sockaddr_ri, sizeof (sockaddr_ri));
- if (ioctl (socket_ii, SIOCSIFNETMASK, &interface_ri) < 0)
- if (config.net.netmask.ip.s_addr)
- {
- HERE
- error_ii = TRUE;
- }
-
- strcpy (address_ti, "127.255.255.255");
- if (!inet_aton (address_ti, &ipaddr_ri))
- error_ii = TRUE;
- sockaddr_ri.sin_addr = ipaddr_ri;
- memcpy (&interface_ri.ifr_broadaddr, &sockaddr_ri, sizeof (sockaddr_ri));
- if (ioctl (socket_ii, SIOCSIFBRDADDR, &interface_ri) < 0)
- if (config.net.broadcast.ip.s_addr != 0xffffffff)
- {
- HERE
- error_ii = TRUE;
- }
-
- if (ioctl (socket_ii, SIOCGIFFLAGS, &interface_ri) < 0)
- {
- HERE
- error_ii = TRUE;
- }
-
- interface_ri.ifr_flags |= IFF_UP | IFF_RUNNING | IFF_LOOPBACK | IFF_BROADCAST;
- if (ioctl (socket_ii, SIOCSIFFLAGS, &interface_ri) < 0)
- {
- HERE
- error_ii = TRUE;
- }
-
- close (socket_ii);
-
- fprintf (stderr, "%s\n", error_ii ? "failure" : "done");
-
- return error_ii;
-}
-
-
-/*
* Setup network interface and write name server config.
*
* Return:
@@ -554,7 +471,7 @@
if(!err4 || !err6) {
net_setup_nameserver();
- if(!config.net.dhcp_active) write_ifcfg();
+ if(!config.net.dhcp_active) write_ifcfg(NULL, NULL);
}
// at least one should have worked
@@ -1471,12 +1388,14 @@
}
#if defined(__s390__) || defined(__s390x__)
else {
- char path[PATH_MAX]="";
- char *type;
- sprintf(path, "/sys/class/net/%s/device/layer2", item_devs[choice - 1]);
- type = util_get_attr(path);
- if(!strncmp(type, "1", sizeof "1" )) {config.hwp.layer2=1; }
- else {config.hwp.layer2=0;}
+ if(choice > 0) {
+ char path[PATH_MAX]="";
+ char *type;
+ sprintf(path, "/sys/class/net/%s/device/layer2", item_devs[choice - 1]);
+ type = util_get_attr(path);
+ if(!strncmp(type, "1", sizeof "1" )) {config.hwp.layer2=1; }
+ else {config.hwp.layer2=0;}
+ }
}
#endif
@@ -1908,7 +1827,7 @@
char cmd[256], file[256];
window_t win;
int got_ip = 0, i, rc;
- FILE *fp;
+ slist_t *cfg = NULL;
if(config.net.dhcp_active || config.net.keep) return 0;
@@ -1928,12 +1847,9 @@
fflush(stdout);
}
- snprintf(file, sizeof file, "/etc/sysconfig/network/ifcfg-%s", config.net.device);
-
- fp = fopen(file, "w");
- fprintf(fp, "BOOTPROTO='dhcp%s'\n", net_dhcp_type());
- fprintf(fp, "STARTMODE='auto'\n");
- fclose(fp);
+ cfg = slist_new();
+ strprintf(&cfg->key, "dhcp%s", net_dhcp_type());
+ write_ifcfg(config.net.device, cfg);
net_apply_ethtool(config.net.device, config.net.hwaddr);
@@ -3094,110 +3010,254 @@
}
-int write_ifcfg()
+/*
+ * Write ifcfg/ifroute files for device.
+ *
+ * - cfg may be a dhcp or static config
+ * - if device or cfg are NULL use current data from global config
+ * - if global config is used we always create a ***static*** config
+ */
+int write_ifcfg(char *device, slist_t *cfg)
{
char *fname, *s;
FILE *fp, *fp2;
+ char *gw = NULL; // static
+ char *ns = NULL; // allocated
+ char *domain = NULL; // allocated
+ int global_values = 0;
+ int is_dhcp = 0;
+ slist_t *sl;
+ slist_t *sl_ifcfg = NULL;
+ slist_t *sl_ifroute = NULL;
if(!config.wicked) return 0;
- if(!config.net.device) return 0;
+ // use global values
+ if(!device || !cfg) global_values = 1;
- if(!config.net.hostname.ok) return 0;
+ fprintf(stderr, "global = %d, cfg = %s\n", global_values, cfg ? cfg->key : "NULL");
- // calculate prefix from netmask if missing
- if(
- config.net.hostname.ipv4 &&
- !config.net.hostname.prefix4 &&
- config.net.netmask.ok &&
- config.net.netmask.ip.s_addr
- ) {
- int i = 1;
- uint32_t u = ntohl(config.net.netmask.ip.s_addr);
+ if(global_values) {
+ device = config.net.device;
+
+ if(!config.net.hostname.ok) return 0;
+
+ // calculate prefix from netmask if missing
+ if(
+ config.net.hostname.ipv4 &&
+ !config.net.hostname.prefix4 &&
+ config.net.netmask.ok &&
+ config.net.netmask.ip.s_addr
+ ) {
+ int i = 1;
+ uint32_t u = ntohl(config.net.netmask.ip.s_addr);
- while(u <<= 1) i++;
+ while(u <<= 1) i++;
- if(config.debug) fprintf(stderr, "netmask to prefix: %d\n", i);
+ if(config.debug) fprintf(stderr, "netmask to prefix: %d\n", i);
- config.net.hostname.prefix4 = i;
+ config.net.hostname.prefix4 = i;
+ }
}
- if(asprintf(&fname, "/etc/sysconfig/network/ifcfg-%s", config.net.device) == -1) fname = NULL;
+ if(!device) return 0;
- if((fp = fopen(fname, "w"))) {
- fprintf(fp, "BOOTPROTO='static'\n");
- fprintf(fp, "STARTMODE='auto'\n");
+ // 1. maybe dhcp config, but only if passed explicitly
+ if(!global_values && !strncmp(cfg->key, "dhcp", sizeof "dhcp" - 1)) {
+ sl = slist_append(&sl_ifcfg, slist_new());
+ strprintf(&sl->key, "BOOTPROTO='%s'", cfg->key);
+ is_dhcp = 1;
+ }
- if((s = inet2str(&config.net.hostname, 4))) {
- fprintf(fp, "IPADDR='%s/%u'\n", s, config.net.hostname.prefix4);
+ // 2. create ifcfg entries
+
+ if(!is_dhcp) slist_append_str(&sl_ifcfg, "BOOTPROTO='static'");
+ slist_append_str(&sl_ifcfg, "STARTMODE='auto'");
+
+ if(!is_dhcp) {
+ if(global_values) {
+ char *ip1 = NULL, *ip2 = NULL;
+
+ if((s = inet2str(&config.net.hostname, 4))) {
+ if(asprintf(&ip1, "%s/%u", s, config.net.hostname.prefix4) == -1) ip1 = NULL;
+ }
+
+ if((s = inet2str(&config.net.hostname, 6))) {
+ if(asprintf(&ip2, "%s/%u", s, config.net.hostname.prefix6) == -1) ip2 = NULL;
+ }
+
+ if(ip1 && ip2) {
+ sl = slist_append(&sl_ifcfg, slist_new());
+ strprintf(&sl->key, "IPADDR_1='%s'", ip1);
+ sl = slist_append(&sl_ifcfg, slist_new());
+ strprintf(&sl->key, "IPADDR_2='%s'", ip2);
+ }
+ else {
+ if(!ip1) {
+ ip1 = ip2;
+ ip2 = NULL;
+ }
+ sl = slist_append(&sl_ifcfg, slist_new());
+ strprintf(&sl->key, "IPADDR='%s'", ip1);
+ }
+
+ free(ip1);
+ free(ip2);
+
+ // net_apply_ethtool()
+ // ETHTOOL_OPTIONS
}
+ else {
+ int i;
+ slist_t *sl0, *sl1;
+ char *ip = cfg->key;
+
+ if((sl1 = cfg->next)) {
+ gw = sl1->key;
+ if((sl1 = sl1->next)) {
+ str_copy(&ns, sl1->key);
+ if((sl1 = sl1->next)) {
+ str_copy(&domain, sl1->key);
+ // extra stuff
+ }
+ }
+ }
- if((s = inet2str(&config.net.hostname, 6))) {
- fprintf(fp, "IPADDR='%s/%u'\n", s, config.net.hostname.prefix6);
+ sl0 = slist_split(' ', ip);
+
+ if(!sl0->next) {
+ sl = slist_append(&sl_ifcfg, slist_new());
+ strprintf(&sl->key, "IPADDR='%s'", sl0->key);
+ }
+ else {
+ for(i = 0, sl1 = sl0; sl1; sl1 = sl1->next) {
+ sl = slist_append(&sl_ifcfg, slist_new());
+ strprintf(&sl->key, "IPADDR_%d='%s'", ++i, sl1->key);
+ }
+ }
+ }
+ }
+
+ if(sl_ifcfg) {
+ if(asprintf(&fname, "/etc/sysconfig/network/ifcfg-%s", device) == -1) fname = NULL;
+ fprintf(stderr, "creating ifcfg-%s:\n", device);
+ if(fname && (fp = fopen(fname, "w"))) {
+ for(sl = sl_ifcfg; sl; sl = sl->next) {
+ fprintf(fp, "%s\n", sl->key);
+ }
+
+ fclose(fp);
}
- fclose(fp);
+ for(sl = sl_ifcfg; sl; sl = sl->next) {
+ fprintf(stderr, " %s\n", sl->key);
+ }
+
+ free(fname);
}
- free(fname);
+ // 3. create ifroute entries
- if(config.net.gateway.ok) {
- if(asprintf(&fname, "/etc/sysconfig/network/ifroute-%s", config.net.device) == -1) fname = NULL;
+ if(!is_dhcp) {
+ if((global_values && config.net.gateway.ok) || gw) {
+ if(global_values) {
+ if((s = inet2str(&config.net.gateway, 4))) {
+ sl = slist_append(&sl_ifroute, slist_new());
+ strprintf(&sl->key, "default %s - %s", s, device);
+ }
- if((fp = fopen(fname, "w"))) {
- if((s = inet2str(&config.net.gateway, 4))) {
- fprintf(fp, "default %s - %s\n", s, config.net.device);
+ if((s = inet2str(&config.net.gateway, 6))) {
+ sl = slist_append(&sl_ifroute, slist_new());
+ strprintf(&sl->key, "default %s - %s", s, device);
+ }
+ }
+ else {
+ sl = slist_append(&sl_ifroute, slist_new());
+ strprintf(&sl->key, "default %s - %s", gw, device);
}
+ }
+ }
- if((s = inet2str(&config.net.gateway, 6))) {
- fprintf(fp, "default %s - %s\n", s, config.net.device);
+ if(sl_ifroute) {
+ if(asprintf(&fname, "/etc/sysconfig/network/ifroute-%s", device) == -1) fname = NULL;
+
+ fprintf(stderr, "creating ifroute-%s:\n", device);
+ if(fname && (fp = fopen(fname, "w"))) {
+ for(sl = sl_ifroute; sl; sl = sl->next) {
+ fprintf(fp, "%s\n", sl->key);
}
fclose(fp);
}
+ for(sl = sl_ifroute; sl; sl = sl->next) {
+ fprintf(stderr, " %s\n", sl->key);
+ }
+
free(fname);
}
- if((fp = fopen("/etc/sysconfig/network/config", "r"))) {
- if((fp2 = fopen("/etc/sysconfig/network/config.tmp", "w"))) {
- char buf[1024];
- unsigned u, first;
-
- while(fgets(buf, sizeof buf, fp)) {
- if(
- !strncmp(buf, "NETCONFIG_DNS_STATIC_SEARCHLIST=", sizeof "NETCONFIG_DNS_STATIC_SEARCHLIST=" - 1) &&
- config.net.domain
- ) {
- fprintf(fp2, "NETCONFIG_DNS_STATIC_SEARCHLIST=\"%s\"\n", config.net.domain);
- }
- else if(
- !strncmp(buf, "NETCONFIG_DNS_STATIC_SERVERS=", sizeof "NETCONFIG_DNS_STATIC_SERVERS=" - 1) &&
- config.net.nameserver[0].ok
- ) {
- fprintf(fp2, "NETCONFIG_DNS_STATIC_SERVERS=\"");
- for(u = 0, first = 1; u < config.net.nameservers; u++) {
- if(config.net.nameserver[u].ok) {
- fprintf(fp2, "%s%s", first ? "" : " ", config.net.nameserver[u].name);
- first = 0;
- }
+ // 4. set nameserver and search list
+
+ if(!is_dhcp) {
+ if(global_values) {
+ str_copy(&domain, config.net.domain);
+ if(config.net.nameserver[0].ok) {
+ unsigned u, first;
+
+ for(u = 0, first = 1; u < config.net.nameservers; u++) {
+ if(config.net.nameserver[u].ok) {
+ strprintf(&ns, "%s%s%s", ns ?: "", first ? "" : " ", config.net.nameserver[u].name);
+ first = 0;
}
- fprintf(fp2, "\"\n");
- }
- else {
- fputs(buf, fp2);
}
}
-
- fclose(fp2);
}
- fclose(fp);
+ if(ns || domain) {
+ fprintf(stderr, "adjusting network/config:\n");
+ if(ns) fprintf(stderr, " NETCONFIG_DNS_STATIC_SERVERS=\"%s\"\n", ns);
+ if(domain) fprintf(stderr, " NETCONFIG_DNS_STATIC_SEARCHLIST=\"%s\"\n", domain);
+
+ if((fp = fopen("/etc/sysconfig/network/config", "r"))) {
+ if((fp2 = fopen("/etc/sysconfig/network/config.tmp", "w"))) {
+ char buf[1024];
+
+ while(fgets(buf, sizeof buf, fp)) {
+ if(
+ domain &&
+ !strncmp(buf, "NETCONFIG_DNS_STATIC_SEARCHLIST=", sizeof "NETCONFIG_DNS_STATIC_SEARCHLIST=" - 1)
+ ) {
+ fprintf(fp2, "NETCONFIG_DNS_STATIC_SEARCHLIST=\"%s\"\n", domain);
+ }
+ else if(
+ ns &&
+ !strncmp(buf, "NETCONFIG_DNS_STATIC_SERVERS=", sizeof "NETCONFIG_DNS_STATIC_SERVERS=" - 1)
+ ) {
+ fprintf(fp2, "NETCONFIG_DNS_STATIC_SERVERS=\"%s\"\n", ns);
+ }
+ else {
+ fputs(buf, fp2);
+ }
+ }
+
+ fclose(fp2);
+ }
- rename("/etc/sysconfig/network/config.tmp", "/etc/sysconfig/network/config");
+ fclose(fp);
+
+ rename("/etc/sysconfig/network/config.tmp", "/etc/sysconfig/network/config");
+ }
+ }
}
- return 0;
+ str_copy(&ns, NULL);
+ str_copy(&domain, NULL);
+
+ slist_free(sl_ifcfg);
+ slist_free(sl_ifroute);
+
+ return 1;
}
@@ -3215,3 +3275,101 @@
return t;
}
+
+/*
+ *
+ */
+#if 0
+ifcfg=10.10.0.1/24;10.10.0.254;10.10.1.1;suse.de
+ifcfg=dhcp
+ifcfg=eth*=10.10.0.1/24;10.10.0.254;10.10.1.1;suse.de
+ifcfg=eth*=dhcp
+#endif
+void net_write_initial_ifcfg()
+{
+ slist_t *sl, *sl1;
+ int matched;
+ hd_t *net_list, *hd;
+ hd_res_t *res;
+ char *device, *hwaddr, *type;
+
+ // this file always exists
+ slist_append_str(&config.ifcfg.initial, "lo");
+
+ if(!config.ifcfg.list) return;
+
+ update_device_list(0);
+ net_list = hd_list(config.hd_data, hw_network_ctrl, 0, NULL);
+
+ for(hd = net_list; hd; hd = hd->next) {
+ for(hwaddr = NULL, res = hd->res; res; res = res->next) {
+ if(res->any.type == res_hwaddr) {
+ hwaddr = res->hwaddr.addr;
+ break;
+ }
+ }
+
+ for(sl = config.ifcfg.list; sl; sl = sl->next) {
+ if(sl->value) continue; // already used
+ sl1 = ifcfg_split(sl->key);
+ device = slist_key(sl1, 0);
+ type = slist_key(sl1, 1);
+ if(!type) continue;
+ matched = 0;
+ if(device && *device) {
+ matched = match_netdevice(hd->unix_dev_name, hwaddr, device);
+ }
+
+ if(matched) {
+ // static config may be used only once
+ if(!type || strncmp(type, "dhcp", sizeof "dhcp" - 1)) sl->value = strdup("");
+
+ if(write_ifcfg(hd->unix_dev_name, sl1->next)) {
+ slist_append_str(&config.ifcfg.initial, hd->unix_dev_name);
+ printf("%s: network config created\n", hd->unix_dev_name);
+ }
+ else {
+ printf("%s: failed to create network config\n", hd->unix_dev_name);
+ }
+ }
+
+ slist_free(sl1);
+ }
+ }
+
+ hd_free_hd_list(net_list);
+}
+
+
+slist_t *ifcfg_split(char *ifcfg)
+{
+ slist_t *sl, *sl0;
+
+ if(!ifcfg) return NULL;
+
+ // fprintf(stderr, "ifcfg split: %s\n", ifcfg);
+
+ sl0 = slist_new();
+ sl0->next = sl = slist_split(',', ifcfg);
+
+ if(sl) {
+ char *t;
+ if((t = strchr(sl->key, '='))) {
+ *t++ = 0;
+ sl0->key = sl->key;
+ sl->key = strdup(t);
+ }
+ else {
+ sl0->key = strdup("");
+ }
+ }
+
+#if 0
+ for(sl = sl0; sl; sl = sl->next) {
+ fprintf(stderr, " >%s<<\n", sl->key);
+ }
+#endif
+
+ return sl0;
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-4.2.36/net.h new/linuxrc-4.2.38/net.h
--- old/linuxrc-4.2.36/net.h 2014-05-20 10:55:55.000000000 +0200
+++ new/linuxrc-4.2.38/net.h 2014-06-30 15:15:56.000000000 +0200
@@ -14,7 +14,6 @@
void net_smb_get_mount_options(char *options, inet_t *server, char *user, char *password, char *workgroup);
void net_stop(void);
int net_check_address(inet_t *inet, int do_dns);
-int net_setup_localhost(void);
int net_activate_ns(void);
int net_activate_s390_devs(void);
int net_dhcp(void);
@@ -26,3 +25,4 @@
void net_apply_ethtool(char *device, char *hwaddr);
int wlan_setup(void);
char *net_dhcp_type(void);
+void net_write_initial_ifcfg(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-4.2.36/util.c new/linuxrc-4.2.38/util.c
--- old/linuxrc-4.2.36/util.c 2014-06-25 15:56:54.000000000 +0200
+++ new/linuxrc-4.2.38/util.c 2014-06-27 11:32:43.000000000 +0200
@@ -2267,6 +2267,19 @@
/*
+ * return index-th key
+ */
+char *slist_key(slist_t *sl, int index)
+{
+ while(sl && index-- > 0) {
+ sl = sl->next;
+ }
+
+ return sl ? sl->key : NULL;
+}
+
+
+/*
* Clear 'inet' und add 'name' to it.
*
* 'inet' is unchanged if 'name' is NULL.
@@ -3803,7 +3816,7 @@
if(!config.hd_data) force = 1;
- if(stat("/dev/.udev/uevent_seqnum", &sbuf)) {
+ if(stat("/run/udev/queue.bin", &sbuf)) {
force = 1;
}
else if(last_time != sbuf.st_mtime) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-4.2.36/util.h new/linuxrc-4.2.38/util.h
--- old/linuxrc-4.2.36/util.h 2014-04-24 14:35:53.000000000 +0200
+++ new/linuxrc-4.2.38/util.h 2014-06-27 11:32:38.000000000 +0200
@@ -62,6 +62,7 @@
slist_t *slist_sort(slist_t *sl0, int (*cmp_func)(const void *, const void *));
slist_t *slist_split(char del, char *text);
char *slist_join(char *del, slist_t *str);
+char *slist_key(slist_t *sl, int index);
char *util_attach_loop(char *file, int ro);
int util_detach_loop(char *dev);
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package digikam for openSUSE:Factory checked in at 2014-07-02 15:04:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/digikam (Old)
and /work/SRC/openSUSE:Factory/.digikam.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "digikam"
Changes:
--------
--- /work/SRC/openSUSE:Factory/digikam/digikam.changes 2014-05-26 14:40:38.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.digikam.new/digikam.changes 2014-07-02 15:04:35.000000000 +0200
@@ -1,0 +2,8 @@
+Mon Jun 30 18:24:44 UTC 2014 - adrian(a)suse.de
+
+- Update to 4.1.0
+ * Add Gelocation indicator over thumbnails when image has GPS coordinateds.
+ * Thumbnails from icon-view now support large resolution monitor (WQHD or 4K). Thumbs size can be set until 512x512 px instead 256x256 px.
+ * many many bugfixes, see NEWS file for more details
+
+-------------------------------------------------------------------
Old:
----
digikam-4.0.0.tar.bz2
New:
----
digikam-4.1.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ digikam.spec ++++++
--- /var/tmp/diff_new_pack.HzzJYg/_old 2014-07-02 15:04:38.000000000 +0200
+++ /var/tmp/diff_new_pack.HzzJYg/_new 2014-07-02 15:04:38.000000000 +0200
@@ -17,9 +17,9 @@
Name: digikam
-Version: 4.0.0
+Version: 4.1.0
Release: 0
-%define rversion 4.0.0
+%define rversion 4.1.0
Summary: A KDE Photo Manager
License: GPL-2.0+
Group: Productivity/Graphics/Viewers
@@ -330,7 +330,7 @@
%files
%defattr(-,root,root,-)
-%doc core/{AUTHORS,COPYING,COPYING-CMAKE-SCRIPTS,COPYING.LIB,ChangeLog,NEWS,README,README.FACE,TODO,TODO.FACE,TODO.MYSQLPORT,TODO.TABLEVIEW}
+%doc core/{AUTHORS,COPYING,COPYING-CMAKE-SCRIPTS,COPYING.LIB,ChangeLog,NEWS,README,TODO,TODO.FACE,TODO.MYSQLPORT,TODO.TABLEVIEW}
%{_kde4_applicationsdir}/digikam.desktop
%{_kde4_applicationsdir}/showfoto.desktop
%{_kde4_appsdir}/digikam/
++++++ digikam-3.0.0.no-kdcraw.version-check.patch ++++++
--- /var/tmp/diff_new_pack.HzzJYg/_old 2014-07-02 15:04:38.000000000 +0200
+++ /var/tmp/diff_new_pack.HzzJYg/_new 2014-07-02 15:04:38.000000000 +0200
@@ -1,7 +1,8 @@
-diff -U3 -dHrN digikam-3.0.0/core/CMakeLists.txt digikam-3.0.0.no-kdcraw.version-check/core/CMakeLists.txt
---- digikam-3.0.0/core/CMakeLists.txt 2013-02-07 00:51:27.000000000 +0100
-+++ digikam-3.0.0.no-kdcraw.version-check/core/CMakeLists.txt 2013-02-11 22:33:47.088164540 +0100
-@@ -199,21 +199,23 @@
+Index: digikam-4.1.0/core/CMakeLists.txt
+===================================================================
+--- digikam-4.1.0.orig/core/CMakeLists.txt
++++ digikam-4.1.0/core/CMakeLists.txt
+@@ -203,21 +203,23 @@ ENDIF (NOT OpenCV_INCLUDE_DIRS)
# check the libkdcraw version
@@ -38,10 +39,11 @@
# LCMS version 1 and 2 library handling
# See B.K.O #294105
-diff -U3 -dHrN digikam-3.0.0/extra/kipi-plugins/CMakeLists.txt digikam-3.0.0.no-kdcraw.version-check/extra/kipi-plugins/CMakeLists.txt
---- digikam-3.0.0/extra/kipi-plugins/CMakeLists.txt 2013-02-07 00:52:03.000000000 +0100
-+++ digikam-3.0.0.no-kdcraw.version-check/extra/kipi-plugins/CMakeLists.txt 2013-02-11 22:33:47.104155757 +0100
-@@ -131,21 +131,23 @@
+Index: digikam-4.1.0/extra/kipi-plugins/CMakeLists.txt
+===================================================================
+--- digikam-4.1.0.orig/extra/kipi-plugins/CMakeLists.txt
++++ digikam-4.1.0/extra/kipi-plugins/CMakeLists.txt
+@@ -139,21 +139,23 @@ FIND_PACKAGE(Kdcraw RE
# Check the libkdcraw version
++++++ digikam-4.0.0.tar.bz2 -> digikam-4.1.0.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/digikam/digikam-4.0.0.tar.bz2 /work/SRC/openSUSE:Factory/.digikam.new/digikam-4.1.0.tar.bz2 differ: char 11, line 1
++++++ digikam-buildtime.patch ++++++
--- /var/tmp/diff_new_pack.HzzJYg/_old 2014-07-02 15:04:38.000000000 +0200
+++ /var/tmp/diff_new_pack.HzzJYg/_new 2014-07-02 15:04:38.000000000 +0200
@@ -1,7 +1,7 @@
Index: core/libs/3rdparty/cimg/CImg.h
===================================================================
---- core/libs/3rdparty/cimg/CImg.h.orig 2011-12-04 22:40:13.000000000 +0100
-+++ core/libs/3rdparty/cimg/CImg.h 2011-12-12 10:45:04.129281874 +0100
+--- core/libs/3rdparty/cimg/CImg.h.orig
++++ core/libs/3rdparty/cimg/CImg.h
@@ -5673,7 +5673,7 @@ namespace cimg_library {
if (usage) {
cimg_std::fprintf(cimg_stdout,"\n %s%s%s",cimg::t_red,cimg::basename(argv[0]),cimg::t_normal);
++++++ digikam_no_build_vkontakte.diff ++++++
--- /var/tmp/diff_new_pack.HzzJYg/_old 2014-07-02 15:04:38.000000000 +0200
+++ /var/tmp/diff_new_pack.HzzJYg/_new 2014-07-02 15:04:38.000000000 +0200
@@ -1,5 +1,7 @@
---- CMakeLists.txt 2012-01-03 01:42:09.000000000 +0100
-+++ CMakeLists.txt 2012-01-05 13:49:28.920827859 +0100
+Index: CMakeLists.txt
+===================================================================
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
@@ -134,7 +134,6 @@ SET(CMAKE_MODULE_PATH
${CMAKE_SOURCE_DIR}/extra/libkgeomap/cmake/modules
${CMAKE_SOURCE_DIR}/extra/libmediawiki/cmake/modules
@@ -16,8 +18,10 @@
ADD_SUBDIRECTORY(extra)
ADD_SUBDIRECTORY(core)
---- extra/CMakeLists.txt 2012-01-03 01:31:52.000000000 +0100
-+++ extra/CMakeLists.txt 2012-01-05 13:49:38.665828606 +0100
+Index: extra/CMakeLists.txt
+===================================================================
+--- extra/CMakeLists.txt.orig
++++ extra/CMakeLists.txt
@@ -33,7 +33,6 @@ IF(${ENABLE_PRIVATE_KDEGRAPHICS})
ENDIF()
++++++ remove-gplv2-only.patch ++++++
--- /var/tmp/diff_new_pack.HzzJYg/_old 2014-07-02 15:04:38.000000000 +0200
+++ /var/tmp/diff_new_pack.HzzJYg/_new 2014-07-02 15:04:38.000000000 +0200
@@ -2,7 +2,7 @@
===================================================================
--- extra/kipi-plugins/gpssync/CMakeLists.txt.orig
+++ extra/kipi-plugins/gpssync/CMakeLists.txt
-@@ -32,10 +32,8 @@ SET(kipiplugin_gpssync_PART_SRCS
+@@ -34,10 +34,8 @@ SET(kipiplugin_gpssync_PART_SRCS
IF(KDE4_BUILD_TESTS)
INCLUDE_DIRECTORIES(BEFORE "${CMAKE_CURRENT_SOURCE_DIR}/borrowed")
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package update-desktop-files for openSUSE:Factory checked in at 2014-07-02 15:04:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/update-desktop-files (Old)
and /work/SRC/openSUSE:Factory/.update-desktop-files.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "update-desktop-files"
Changes:
--------
--- /work/SRC/openSUSE:Factory/update-desktop-files/update-desktop-files.changes 2014-06-05 10:49:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.update-desktop-files.new/update-desktop-files.changes 2014-07-02 15:04:31.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Jul 1 09:49:21 UTC 2014 - coolo(a)suse.com
+
+- just take all *.desktop files in /usr/share (trying to fix autoyast
+ translations)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ brp-trim-desktop.sh ++++++
--- /var/tmp/diff_new_pack.XotMnM/_old 2014-07-02 15:04:32.000000000 +0200
+++ /var/tmp/diff_new_pack.XotMnM/_new 2014-07-02 15:04:32.000000000 +0200
@@ -22,13 +22,8 @@
exit 0
fi
-find /$RPM_BUILD_ROOT/opt/kde3/share/applications/kde/ \
- /$RPM_BUILD_ROOT/opt/kde3/share/applnk/ \
- /$RPM_BUILD_ROOT/usr/share/xsessions/ \
- /$RPM_BUILD_ROOT/usr/share/applications/ \
- /$RPM_BUILD_ROOT/usr/share/mimelnk/ \
- /$RPM_BUILD_ROOT/usr/share/gnome/apps/ \
- /$RPM_BUILD_ROOT/etc/xdg/autostart/ -name *.desktop -o -name .directory 2>/dev/null | while read FILE; do
+find /$RPM_BUILD_ROOT/usr/share /$RPM_BUILD_ROOT/etc/xdg/autostart/ \
+ -name *.desktop -o -name .directory 2>/dev/null | while read FILE; do
if grep -q ^X-SuSE-translate= "$FILE"; then
echo "DEBUG: $FILE contains X-SuSE-translate - skipping" >&2
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
02 Jul '14
Hello community,
here is the log from the commit of package installation-images-openSUSE for openSUSE:Factory checked in at 2014-07-02 15:04:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/installation-images-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.installation-images-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "installation-images-openSUSE"
Changes:
--------
--- /work/SRC/openSUSE:Factory/installation-images-openSUSE/installation-images-openSUSE.changes 2014-06-27 06:53:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.installation-images-openSUSE.new/installation-images-openSUSE.changes 2014-07-02 15:04:30.000000000 +0200
@@ -1,0 +2,9 @@
+Tue Jul 1 11:31:11 CEST 2014 - snwint(a)suse.de
+
+- added network start script
+- cleaned up udev start script
+- moved udev start script to /scripts dir
+- service_start: stop services that don't have ExecStop
+- 14.110
+
+-------------------------------------------------------------------
Old:
----
installation-images-14.109.tar.xz
New:
----
installation-images-14.110.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ installation-images-openSUSE.spec ++++++
--- /var/tmp/diff_new_pack.Ejioyk/_old 2014-07-02 15:04:31.000000000 +0200
+++ /var/tmp/diff_new_pack.Ejioyk/_new 2014-07-02 15:04:31.000000000 +0200
@@ -353,10 +353,10 @@
Summary: Installation Image Files for %theme
License: GPL-2.0+
Group: Metapackages
-Version: 14.109
+Version: 14.110
Release: 0
Provides: installation-images = %version-%release
-Source: installation-images-14.109.tar.xz
+Source: installation-images-14.110.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define _binary_payload w.ufdio
++++++ installation-images-14.109.tar.xz -> installation-images-14.110.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.109/VERSION new/installation-images-14.110/VERSION
--- old/installation-images-14.109/VERSION 2014-06-26 12:51:30.000000000 +0200
+++ new/installation-images-14.110/VERSION 2014-07-01 11:31:03.000000000 +0200
@@ -1 +1 @@
-14.109
+14.110
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.109/changelog new/installation-images-14.110/changelog
--- old/installation-images-14.109/changelog 2014-06-26 12:51:35.000000000 +0200
+++ new/installation-images-14.110/changelog 2014-07-01 11:31:09.000000000 +0200
@@ -1,4 +1,10 @@
-2014-06-26: HEAD
+2014-07-01: HEAD
+ - added network start script
+ - cleaned up udev start script
+ - moved udev start script to /scripts dir
+ - service_start: stop services that don't have ExecStop
+
+2014-06-26: 14.109
- adjust module config (bnc #882942)
2014-06-25: 14.108
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.109/data/initrd/etc/myudevstart new/installation-images-14.110/data/initrd/etc/myudevstart
--- old/installation-images-14.109/data/initrd/etc/myudevstart 2014-01-16 11:21:01.000000000 +0100
+++ new/installation-images-14.110/data/initrd/etc/myudevstart 1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-PATH="/sbin:/bin:/usr/bin:/usr/sbin:/lbin"
-
-# disable hotplug helper, udevd listens to netlink
-echo "" > /proc/sys/kernel/hotplug
-
-# create min devices
-# ########
-# Note: this is different from the usual 'cp -a'!
-# ########
-/lbin/cp -a /lib/udev/devices /dev
-
-# start udevd
-echo -n "Starting udevd "
-udevd --daemon
-
-# cleanup some stuff
-rm -f /var/run/sysconfig/network
-
-# unlikely, but we may be faster than the first event
-mkdir /dev/.udev
-mkdir /dev/.udev/queue
-
-# create devices
-/usr/bin/udevadm trigger
-
-# 10 min - just long enough
-/usr/bin/udevadm settle --timeout=100
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.109/data/initrd/initrd.file_list new/installation-images-14.110/data/initrd/initrd.file_list
--- old/installation-images-14.109/data/initrd/initrd.file_list 2014-06-25 14:50:58.000000000 +0200
+++ new/installation-images-14.110/data/initrd/initrd.file_list 2014-07-01 11:20:00.000000000 +0200
@@ -565,9 +565,6 @@
# our own rules file which loads only pnp subsystem mods
x etc/80-drivers.rules /usr/lib/udev/80-drivers.rules.no_modprobe
-# our own udevd start script
-x etc/myudevstart /bin
-
# systemd service start script
x service_start /bin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.109/data/initrd/scripts/network_setup new/installation-images-14.110/data/initrd/scripts/network_setup
--- old/installation-images-14.109/data/initrd/scripts/network_setup 1970-01-01 01:00:00.000000000 +0100
+++ new/installation-images-14.110/data/initrd/scripts/network_setup 2014-06-30 15:18:42.000000000 +0200
@@ -0,0 +1,7 @@
+#! /bin/bash
+
+exec >&2
+
+# activate all pre-configured interfaces
+# (lo + everything setup via 'ifcfg' option)
+wicked ifup all
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.109/data/initrd/scripts/udev_setup new/installation-images-14.110/data/initrd/scripts/udev_setup
--- old/installation-images-14.109/data/initrd/scripts/udev_setup 1970-01-01 01:00:00.000000000 +0100
+++ new/installation-images-14.110/data/initrd/scripts/udev_setup 2014-07-01 11:19:25.000000000 +0200
@@ -0,0 +1,19 @@
+#! /bin/bash
+
+exec >&2
+
+PATH="/sbin:/bin:/usr/bin:/usr/sbin:/lbin"
+
+# disable hotplug helper, udevd listens to netlink
+echo "" > /proc/sys/kernel/hotplug
+
+# start udevd
+echo -n "Starting udevd "
+udevd --daemon
+
+# create devices
+/usr/bin/udevadm trigger
+
+# 10 min - just long enough
+/usr/bin/udevadm settle --timeout=100
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/installation-images-14.109/data/initrd/service_start new/installation-images-14.110/data/initrd/service_start
--- old/installation-images-14.109/data/initrd/service_start 2014-04-16 13:37:26.000000000 +0200
+++ new/installation-images-14.110/data/initrd/service_start 2014-07-01 10:41:20.000000000 +0200
@@ -45,8 +45,17 @@
for (@todo) { $cmd .= ". $_\n" if s/^EnvironmentFile=[\-@]*// }
for (@todo) { $cmd .= "export $1\n" if /^Environment=(.+)/ }
if($opt_stop) {
- for (@todo) { $cmd .= "$_\n" if s/^ExecStop=[\-@]*// }
+ my $has_stop;
+ for (@todo) { $cmd .= "$_\n", $has_stop = 1 if s/^ExecStop=[\-@]*// }
for (@todo) { $cmd .= "$_\n" if s/^ExecStopPost=[\-@]*// }
+ if(!$has_stop) {
+ undef $cmd;
+ for (@todo) { $cmd .= "killproc $1\n" if /^ExecStart=[\-@]*(\S+)/ }
+ if($cmd) {
+ $cmd .= "sleep 1\n";
+ for (@todo) { $cmd .= "killproc -KILL $1\n" if /^ExecStart=[\-@]*(\S+)/ }
+ }
+ }
}
else {
for (@todo) { $cmd .= "$_\n" if s/^ExecStartPre=[\-@]*// }
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package snapper for openSUSE:Factory checked in at 2014-07-02 15:04:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/snapper (Old)
and /work/SRC/openSUSE:Factory/.snapper.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "snapper"
Changes:
--------
--- /work/SRC/openSUSE:Factory/snapper/snapper.changes 2014-06-26 08:00:39.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.snapper.new/snapper.changes 2014-07-02 15:04:28.000000000 +0200
@@ -1,0 +2,10 @@
+Mon Jun 30 15:43:56 CEST 2014 - aschnell(a)suse.de
+
+- make rollback command print verbose messages
+
+-------------------------------------------------------------------
+Mon Jun 30 14:44:25 CEST 2014 - aschnell(a)suse.de
+
+- allow to add snapshots to qgroup (prototype for fate#312751)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ snapper.spec ++++++
--- /var/tmp/diff_new_pack.pmOzgp/_old 2014-07-02 15:04:29.000000000 +0200
+++ /var/tmp/diff_new_pack.pmOzgp/_new 2014-07-02 15:04:29.000000000 +0200
@@ -82,7 +82,7 @@
./configure --libdir=%{_libdir} --prefix=%{prefix} --mandir=%{_mandir} \
--docdir=%{prefix}/share/doc/packages/snapper \
%if 0%{?suse_version} <= 1310
- --disable-rollback \
+ --disable-rollback --disable-btrfs-quota \
%endif
--disable-silent-rules --disable-ext4
make %{?jobs:-j%jobs}
++++++ snapper-0.2.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/client/snapper.cc new/snapper-0.2.3/client/snapper.cc
--- old/snapper-0.2.3/client/snapper.cc 2014-06-06 13:36:33.000000000 +0200
+++ new/snapper-0.2.3/client/snapper.cc 2014-07-01 11:10:53.000000000 +0200
@@ -1274,22 +1274,42 @@
if (getopts.numArgs() == 0)
{
- command_create_single_xsnapshot_of_default(*conn, config_name, true, description, cleanup,
- userdata);
+ if (!quiet)
+ cout << _("Creating read-only snapshot of default subvolume.") << flush;
+ unsigned int num1 = command_create_single_xsnapshot_of_default(*conn, config_name, true,
+ description, cleanup,
+ userdata);
+ if (!quiet)
+ cout << " " << sformat(_("(Snapshot %d.)"), num1) << endl;
+ if (!quiet)
+ cout << _("Creating read-write snapshot of current subvolume.") <<flush;
num2 = command_create_single_xsnapshot_v2(*conn, config_name, 0, false, description,
cleanup, userdata);
+ if (!quiet)
+ cout << " " << sformat(_("(Snapshot %d.)"), num2) << endl;
}
else
{
unsigned int tmp = read_num(getopts.popArg());
- command_create_single_xsnapshot(*conn, config_name, description, cleanup, userdata);
+ if (!quiet)
+ cout << _("Creating read-only snapshot of current system.") << flush;
+ unsigned int num1 = command_create_single_xsnapshot(*conn, config_name, description,
+ cleanup, userdata);
+ if (!quiet)
+ cout << " " << sformat(_("(Snapshot %d.)"), num1) << endl;
+ if (!quiet)
+ cout << sformat(_("Creating read-write snapshot of snapshot %d."), tmp) << flush;
num2 = command_create_single_xsnapshot_v2(*conn, config_name, tmp, false,
description, cleanup, userdata);
+ if (!quiet)
+ cout << " " << sformat(_("(Snapshot %d.)"), num2) << endl;
}
+ if (!quiet)
+ cout << sformat(_("Setting default subvolume to snapshot %d."), num2) << endl;
filesystem->setDefault(num2);
if (print_number)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/config.h.in new/snapper-0.2.3/config.h.in
--- old/snapper-0.2.3/config.h.in 2014-06-24 11:09:17.000000000 +0200
+++ new/snapper-0.2.3/config.h.in 2014-07-01 11:11:26.000000000 +0200
@@ -15,6 +15,9 @@
/* Enable Btrfs internal snapshots support */
#undef ENABLE_BTRFS
+/* Enable btrfs quota support */
+#undef ENABLE_BTRFS_QUOTA
+
/* Enable Ext4 snapshots support */
#undef ENABLE_EXT4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/configure new/snapper-0.2.3/configure
--- old/snapper-0.2.3/configure 2014-06-24 11:09:17.000000000 +0200
+++ new/snapper-0.2.3/configure 2014-07-01 11:11:26.000000000 +0200
@@ -646,6 +646,8 @@
PKG_CONFIG
HAVE_PAM_FALSE
HAVE_PAM_TRUE
+ENABLE_BTRFS_QUOTA_FALSE
+ENABLE_BTRFS_QUOTA_TRUE
ENABLE_ROLLBACK_FALSE
ENABLE_ROLLBACK_TRUE
HAVE_XATTRS_FALSE
@@ -809,6 +811,7 @@
enable_zypp
enable_xattrs
enable_rollback
+enable_btrfs_quota
enable_pam
'
ac_precious_vars='build_alias
@@ -1462,6 +1465,7 @@
--disable-zypp Disable zypp plugin support
--disable-xattrs Disable extended attributes support
--disable-rollback Disable rollback support
+ --disable-btrfs-quota Disable btrfs quota support
--disable-pam Disable pam plugin support
Optional Packages:
@@ -15873,6 +15877,28 @@
fi
+# Check whether --enable-btrfs-quota was given.
+if test "${enable_btrfs_quota+set}" = set; then :
+ enableval=$enable_btrfs_quota; enable_btrfs_quota=$enableval
+else
+ enable_btrfs_quota=yes
+fi
+
+ if test "x$enable_btrfs_quota" = "xyes"; then
+ ENABLE_BTRFS_QUOTA_TRUE=
+ ENABLE_BTRFS_QUOTA_FALSE='#'
+else
+ ENABLE_BTRFS_QUOTA_TRUE='#'
+ ENABLE_BTRFS_QUOTA_FALSE=
+fi
+
+
+if test "x$enable_btrfs_quota" = "xyes"; then
+
+$as_echo "#define ENABLE_BTRFS_QUOTA 1" >>confdefs.h
+
+fi
+
# Check whether --enable-pam was given.
if test "${enable_pam+set}" = set; then :
enableval=$enable_pam; with_pam=$enableval
@@ -16272,6 +16298,10 @@
as_fn_error $? "conditional \"ENABLE_ROLLBACK\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${ENABLE_BTRFS_QUOTA_TRUE}" && test -z "${ENABLE_BTRFS_QUOTA_FALSE}"; then
+ as_fn_error $? "conditional \"ENABLE_BTRFS_QUOTA\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${HAVE_PAM_TRUE}" && test -z "${HAVE_PAM_FALSE}"; then
as_fn_error $? "conditional \"HAVE_PAM\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/configure.ac new/snapper-0.2.3/configure.ac
--- old/snapper-0.2.3/configure.ac 2014-04-02 14:27:32.000000000 +0200
+++ new/snapper-0.2.3/configure.ac 2014-06-30 15:03:26.000000000 +0200
@@ -119,6 +119,14 @@
AC_DEFINE(ENABLE_ROLLBACK, 1, [Enable rollback support])
fi
+AC_ARG_ENABLE([btrfs-quota], AC_HELP_STRING([--disable-btrfs-quota],[Disable btrfs quota support]),
+ [enable_btrfs_quota=$enableval],[enable_btrfs_quota=yes])
+AM_CONDITIONAL(ENABLE_BTRFS_QUOTA, [test "x$enable_btrfs_quota" = "xyes"])
+
+if test "x$enable_btrfs_quota" = "xyes"; then
+ AC_DEFINE(ENABLE_BTRFS_QUOTA, 1, [Enable btrfs quota support])
+fi
+
AC_ARG_ENABLE([pam], AC_HELP_STRING([--disable-pam],[Disable pam plugin support]),
[with_pam=$enableval],[with_pam=yes])
AM_CONDITIONAL(HAVE_PAM, [test "x$with_pam" = "xyes"])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/snapper/Btrfs.cc new/snapper-0.2.3/snapper/Btrfs.cc
--- old/snapper-0.2.3/snapper/Btrfs.cc 2014-04-10 12:28:10.000000000 +0200
+++ new/snapper-0.2.3/snapper/Btrfs.cc 2014-06-30 15:03:26.000000000 +0200
@@ -69,12 +69,31 @@
Btrfs::Btrfs(const string& subvolume)
- : Filesystem(subvolume)
+ : Filesystem(subvolume), qgroup(no_qgroup)
{
}
void
+ Btrfs::evalConfigInfo(const ConfigInfo& config_info)
+ {
+ string qgroup_str;
+ if (config_info.getValue("QGROUP", qgroup_str) && !qgroup_str.empty())
+ {
+ try
+ {
+ qgroup = make_qgroup(qgroup_str);
+ }
+ catch (const runtime_error& e)
+ {
+ y2err("failed to parse qgroup '" << qgroup_str << "'");
+ throw InvalidConfigException();
+ }
+ }
+ }
+
+
+ void
Btrfs::createConfig(bool add_fstab) const
{
SDir subvolume_dir = openSubvolumeDir();
@@ -232,7 +251,7 @@
try
{
- create_snapshot(subvolume_dir.fd(), info_dir.fd(), "snapshot", read_only);
+ create_snapshot(subvolume_dir.fd(), info_dir.fd(), "snapshot", read_only, qgroup);
}
catch (const runtime_error& e)
{
@@ -247,7 +266,7 @@
try
{
- create_snapshot(snapshot_dir.fd(), info_dir.fd(), "snapshot", read_only);
+ create_snapshot(snapshot_dir.fd(), info_dir.fd(), "snapshot", read_only, qgroup);
}
catch (const runtime_error& e)
{
@@ -284,7 +303,7 @@
try
{
- create_snapshot(tmp_mount_dir.fd(), info_dir.fd(), "snapshot", read_only);
+ create_snapshot(tmp_mount_dir.fd(), info_dir.fd(), "snapshot", read_only, qgroup);
}
catch (const runtime_error& e)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/snapper/Btrfs.h new/snapper-0.2.3/snapper/Btrfs.h
--- old/snapper-0.2.3/snapper/Btrfs.h 2014-04-10 12:28:10.000000000 +0200
+++ new/snapper-0.2.3/snapper/Btrfs.h 2014-06-30 15:03:26.000000000 +0200
@@ -25,6 +25,7 @@
#include "snapper/Filesystem.h"
+#include "snapper/BtrfsUtils.h"
namespace snapper
@@ -38,6 +39,8 @@
Btrfs(const string& subvolume);
+ virtual void evalConfigInfo(const ConfigInfo& config_info);
+
virtual string fstype() const { return "btrfs"; }
virtual void createConfig(bool add_fstab) const;
@@ -68,6 +71,8 @@
private:
+ qgroup_t qgroup;
+
void addToFstab() const;
void removeFromFstab() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/snapper/BtrfsUtils.cc new/snapper-0.2.3/snapper/BtrfsUtils.cc
--- old/snapper-0.2.3/snapper/BtrfsUtils.cc 2014-04-10 12:28:10.000000000 +0200
+++ new/snapper-0.2.3/snapper/BtrfsUtils.cc 2014-06-30 15:03:26.000000000 +0200
@@ -112,7 +112,7 @@
void
- create_snapshot(int fd, int fddst, const string& name, bool read_only)
+ create_snapshot(int fd, int fddst, const string& name, bool read_only, qgroup_t qgroup)
{
struct btrfs_ioctl_vol_args_v2 args_v2;
memset(&args_v2, 0, sizeof(args_v2));
@@ -121,6 +121,24 @@
args_v2.flags = read_only ? BTRFS_SUBVOL_RDONLY : 0;
strncpy(args_v2.name, name.c_str(), sizeof(args_v2.name) - 1);
+#ifdef ENABLE_BTRFS_QUOTA
+ if (qgroup != no_qgroup)
+ {
+ size_t size = sizeof(btrfs_qgroup_inherit) + sizeof(((btrfs_qgroup_inherit*) 0)->qgroups[0]);
+ vector<char> buffer(size, 0);
+ struct btrfs_qgroup_inherit* inherit = (btrfs_qgroup_inherit*) &buffer[0];
+
+ inherit->num_qgroups = 1;
+ inherit->num_ref_copies = 0;
+ inherit->num_excl_copies = 0;
+ inherit->qgroups[0] = qgroup;
+
+ args_v2.flags |= BTRFS_SUBVOL_QGROUP_INHERIT;
+ args_v2.size = size;
+ args_v2.qgroup_inherit = inherit;
+ }
+#endif
+
if (ioctl(fddst, BTRFS_IOC_SNAP_CREATE_V2, &args_v2) == 0)
return;
else if (errno != ENOTTY && errno != EINVAL)
@@ -225,4 +243,34 @@
#endif
+
+ qgroup_t
+ make_qgroup(uint64_t level, uint64_t id)
+ {
+ return (level << 48) | id;
+ }
+
+
+ qgroup_t
+ make_qgroup(const string& str)
+ {
+ string::size_type pos = str.find('/');
+ if (pos == string::npos)
+ throw std::runtime_error("parsing qgroup failed");
+
+ std::istringstream a(str.substr(0, pos));
+ uint64_t level = 0;
+ a >> level;
+ if (a.fail() || !a.eof())
+ throw std::runtime_error("parsing qgroup failed");
+
+ std::istringstream b(str.substr(pos + 1));
+ uint64_t id = 0;
+ b >> id;
+ if (b.fail() || !b.eof())
+ throw std::runtime_error("parsing qgroup failed");
+
+ return make_qgroup(level, id);
+ }
+
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/snapper/BtrfsUtils.h new/snapper-0.2.3/snapper/BtrfsUtils.h
--- old/snapper-0.2.3/snapper/BtrfsUtils.h 2014-04-02 14:27:32.000000000 +0200
+++ new/snapper-0.2.3/snapper/BtrfsUtils.h 2014-06-30 15:03:26.000000000 +0200
@@ -32,12 +32,16 @@
using std::string;
+ typedef uint64_t qgroup_t;
+ const qgroup_t no_qgroup = 0;
+
bool is_subvolume(const struct stat& stat);
bool is_subvolume_read_only(int fd);
void create_subvolume(int fddst, const string& name);
- void create_snapshot(int fd, int fddst, const string& name, bool read_only);
+ void create_snapshot(int fd, int fddst, const string& name, bool read_only,
+ qgroup_t qgroup);
void delete_subvolume(int fd, const string& name);
void set_default_id(int fd, unsigned long long id);
@@ -46,6 +50,9 @@
string get_subvolume(int fd, unsigned long long id);
unsigned long long get_id(int fd);
+ qgroup_t make_qgroup(uint64_t level, uint64_t id);
+ qgroup_t make_qgroup(const string& str);
+
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/snapper/Filesystem.cc new/snapper-0.2.3/snapper/Filesystem.cc
--- old/snapper-0.2.3/snapper/Filesystem.cc 2014-04-10 12:28:10.000000000 +0200
+++ new/snapper-0.2.3/snapper/Filesystem.cc 2014-06-30 15:03:26.000000000 +0200
@@ -105,7 +105,8 @@
#ifdef ENABLE_LVM
&Lvm::create,
#endif
- NULL };
+ NULL
+ };
for (const func_t* func = funcs; *func != NULL; ++func)
{
@@ -119,6 +120,20 @@
}
+ Filesystem*
+ Filesystem::create(const ConfigInfo& config_info)
+ {
+ string fstype = "btrfs";
+ config_info.getValue(KEY_FSTYPE, fstype);
+
+ Filesystem* fs = create(fstype, config_info.getSubvolume());
+
+ fs->evalConfigInfo(config_info);
+
+ return fs;
+ }
+
+
SDir
Filesystem::openSubvolumeDir() const
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/snapper/Filesystem.h new/snapper-0.2.3/snapper/Filesystem.h
--- old/snapper-0.2.3/snapper/Filesystem.h 2014-04-10 12:28:10.000000000 +0200
+++ new/snapper-0.2.3/snapper/Filesystem.h 2014-06-30 15:03:26.000000000 +0200
@@ -38,6 +38,7 @@
class MtabData;
+ class ConfigInfo;
class Filesystem
@@ -48,6 +49,9 @@
virtual ~Filesystem() {}
static Filesystem* create(const string& fstype, const string& subvolume);
+ static Filesystem* create(const ConfigInfo& config_info);
+
+ virtual void evalConfigInfo(const ConfigInfo& config_info) {}
virtual string fstype() const = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/snapper/Snapper.cc new/snapper-0.2.3/snapper/Snapper.cc
--- old/snapper-0.2.3/snapper/Snapper.cc 2014-04-10 12:28:10.000000000 +0200
+++ new/snapper-0.2.3/snapper/Snapper.cc 2014-06-30 15:03:26.000000000 +0200
@@ -91,9 +91,7 @@
throw ConfigNotFoundException();
}
- string fstype = "btrfs";
- config_info->getValue(KEY_FSTYPE, fstype);
- filesystem = Filesystem::create(fstype, config_info->getSubvolume());
+ filesystem = Filesystem::create(*config_info);
bool sync_acl;
if (config_info->getValue(KEY_SYNC_ACL, sync_acl) && sync_acl == true)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.2.3/snapper.spec.in new/snapper-0.2.3/snapper.spec.in
--- old/snapper-0.2.3/snapper.spec.in 2014-04-16 17:10:23.000000000 +0200
+++ new/snapper-0.2.3/snapper.spec.in 2014-06-30 15:03:26.000000000 +0200
@@ -82,7 +82,7 @@
./configure --libdir=%{_libdir} --prefix=%{prefix} --mandir=%{_mandir} \
--docdir=%{prefix}/share/doc/packages/snapper \
%if 0%{?suse_version} <= 1310
- --disable-rollback \
+ --disable-rollback --disable-btrfs-quota \
%endif
--disable-silent-rules --disable-ext4
make %{?jobs:-j%jobs}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0