openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 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
May 2019
- 1 participants
- 2232 discussions
Hello community,
here is the log from the commit of package capnet-assist for openSUSE:Factory checked in at 2019-05-02 19:22:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/capnet-assist (Old)
and /work/SRC/openSUSE:Factory/.capnet-assist.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "capnet-assist"
Thu May 2 19:22:21 2019 rev:3 rq:700176 version:2.2.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/capnet-assist/capnet-assist.changes 2018-12-24 11:46:47.773165213 +0100
+++ /work/SRC/openSUSE:Factory/.capnet-assist.new.5148/capnet-assist.changes 2019-05-02 19:22:25.813920935 +0200
@@ -1,0 +2,7 @@
+Mon Mar 4 03:12:48 UTC 2019 - Alexei Podvalsky <avvissu(a)yandex.by>
+
+- Update to 2.2.3:
+ * Spelling: following URL in, + Copyright year updated (#43)
+ * Travis: Use Houston CI (#41)
+
+-------------------------------------------------------------------
Old:
----
capnet-assist-2.2.2.tar.gz
New:
----
capnet-assist-2.2.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ capnet-assist.spec ++++++
--- /var/tmp/diff_new_pack.lt5lvS/_old 2019-05-02 19:22:26.849923087 +0200
+++ /var/tmp/diff_new_pack.lt5lvS/_new 2019-05-02 19:22:26.849923087 +0200
@@ -17,7 +17,7 @@
Name: capnet-assist
-Version: 2.2.2
+Version: 2.2.3
Release: 0
Summary: Captive Portal Assistant
License: GPL-3.0-only
++++++ capnet-assist-2.2.2.tar.gz -> capnet-assist-2.2.3.tar.gz ++++++
++++ 6325 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package alpine for openSUSE:Factory checked in at 2019-05-02 19:22:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/alpine (Old)
and /work/SRC/openSUSE:Factory/.alpine.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "alpine"
Thu May 2 19:22:20 2019 rev:44 rq:700163 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/alpine/alpine.changes 2018-11-13 17:57:29.975094285 +0100
+++ /work/SRC/openSUSE:Factory/.alpine.new.5148/alpine.changes 2019-05-02 19:22:21.633912255 +0200
@@ -1,0 +2,6 @@
+Thu May 2 14:22:58 UTC 2019 - Reinhard Max <max(a)suse.com>
+
+- Fix initialisation of encrypted password store (bsc#1133597,
+ alpine-pinepw.patch).
+
+-------------------------------------------------------------------
New:
----
alpine-pinepw.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ alpine.spec ++++++
--- /var/tmp/diff_new_pack.88QQMD/_old 2019-05-02 19:22:22.649914365 +0200
+++ /var/tmp/diff_new_pack.88QQMD/_new 2019-05-02 19:22:22.653914373 +0200
@@ -1,7 +1,7 @@
#
# spec file for package alpine
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -36,6 +36,7 @@
Patch4: fix-implicit.patch
Patch5: alpine-gcc44.diff
Patch6: alpine-timestamp.patch
+Patch7: alpine-pinepw.patch
Patch10: pico-fix-spurious-undef-warnings.diff
Patch20: pine-expression-warnings.diff
Patch60: signal-and-panic-improvements.diff
@@ -131,6 +132,7 @@
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
%patch10 -p1
%patch20 -p1
%patch60 -p1
++++++ alpine-pinepw.patch ++++++
diff -rc alpine-2.21/alpine/imap.c alpine-2.21.pwdfilebug/alpine/imap.c
*** alpine-2.21/alpine/imap.c 2017-02-05 17:06:22.523218671 -0700
--- alpine-2.21.pwdfilebug/alpine/imap.c 2019-04-27 16:48:22.433116057 -0600
***************
*** 2636,2642 ****
if(ps_global->pwdcert == NULL){
q_status_message(SM_ORDER, 3, 3, "Attempting to encrypt password file");
i = setup_pwdcert(&ps_global->pwdcert);
! if(i == 0 && ps_global->pwdcert == NULL)
ps_global->pwdcert = (void *) ALPINE_self_signed_certificate(NULL, 0, ps_global->pwdcertdir, MASTERNAME);
}
if(ps_global->pwdcert == NULL){ /* we tried but failed */
--- 2636,2642 ----
if(ps_global->pwdcert == NULL){
q_status_message(SM_ORDER, 3, 3, "Attempting to encrypt password file");
i = setup_pwdcert(&ps_global->pwdcert);
! if((i == 0 || i == -5) && ps_global->pwdcert == NULL)
ps_global->pwdcert = (void *) ALPINE_self_signed_certificate(NULL, 0, ps_global->pwdcertdir, MASTERNAME);
}
if(ps_global->pwdcert == NULL){ /* we tried but failed */
1
0
Hello community,
here is the log from the commit of package kphotoalbum for openSUSE:Factory checked in at 2019-05-02 19:22:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kphotoalbum (Old)
and /work/SRC/openSUSE:Factory/.kphotoalbum.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kphotoalbum"
Thu May 2 19:22:16 2019 rev:6 rq:700142 version:5.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/kphotoalbum/kphotoalbum.changes 2019-02-08 12:13:40.589463129 +0100
+++ /work/SRC/openSUSE:Factory/.kphotoalbum.new.5148/kphotoalbum.changes 2019-05-02 19:22:19.213907230 +0200
@@ -1,0 +2,39 @@
+Mon Apr 29 10:45:23 UTC 2019 - wbauer(a)tmo.at
+
+- Update to 5.5
+ * Bugfix: Fix compilation with exiv2 0.27
+ * Enhancement: Display dates when browsing categories. When
+ browsing categories, two columns "Start Date" and "End Date"
+ have been added. These columns correspond to the time range of
+ the images tagged with that particular tag.
+ * Enhancement: Faster display of browser overview page. Depending
+ on the current context, the overview should now be displayed
+ significantly faster (on my particular system the time to
+ display the "Home" page dropped from 500ms to 25ms).
+ * Change: More intuitive handling of down button in annotation
+ dialog. Pressing the "down" button in a ListSelect in the
+ annotation dialog now selects the first item, not the second
+ one.
+ * Change: Use non-linear scaling for DateBar by default
+ (kde#356810)
+ * Change: Instead of having "increase/decrease thumbnail storage
+ size buttons", show a "Thumbnail settings" button in the status
+ bar (kde#357239)
+ * Bugfix: Restore correct behaviour for "Statistics..." action
+ * Bugfix: Fix loading of user shortcuts for the annotation dialog
+ * Enhancement: Add "clear selection" menu item
+ * Change: More detailed debug output
+ * Deprecation: Removed compatibility with Qt versions < 5.9
+ * Deprecation: Removed support for MPlayer. For video thumbails,
+ only ffmpeg is supported.
+ * Enhancement: Smaller performance improvements during startup
+ * Bugfix: Fix zooming for raw images
+- Drop patches merged upstream:
+ * Use-Exiv2-0.27-if-available.patch
+ * Fix-compilation-with-exiv2-0.27.patch
+- Drop 0001-Fix-build-with-Qt-5.7-and-lower.patch, it requires Qt
+ 5.9 and KF 5.44 now, the versions in Leap 42.3 are just too old
+- Use %kf5_find_htmldocs macro to generate the translated docs
+ filelist
+
+-------------------------------------------------------------------
Old:
----
0001-Fix-build-with-Qt-5.7-and-lower.patch
Fix-compilation-with-exiv2-0.27.patch
Use-Exiv2-0.27-if-available.patch
kphotoalbum-5.4.2.tar.xz
New:
----
kphotoalbum-5.5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kphotoalbum.spec ++++++
--- /var/tmp/diff_new_pack.2U9G0x/_old 2019-05-02 19:22:19.837908525 +0200
+++ /var/tmp/diff_new_pack.2U9G0x/_new 2019-05-02 19:22:19.837908525 +0200
@@ -17,18 +17,13 @@
Name: kphotoalbum
-Version: 5.4.2
+Version: 5.5
Release: 0
Summary: A photo administration utility
License: GPL-2.0-or-later
Group: Productivity/Graphics/Viewers
URL: http://www.kphotoalbum.org/
Source: http://download.kde.org/stable/%{name}/%{version}/%{name}-%{version}.tar.xz
-# PATCH-FIX-OPENSUSE
-Patch0: 0001-Fix-build-with-Qt-5.7-and-lower.patch
-# PATCH-FIX-UPSTREAM
-Patch1: Use-Exiv2-0.27-if-available.patch
-Patch2: Fix-compilation-with-exiv2-0.27.patch
BuildRequires: cmake >= 3.2.0
BuildRequires: fdupes
BuildRequires: kf5-filesystem
@@ -39,7 +34,7 @@
BuildRequires: cmake(KF5Archive)
BuildRequires: cmake(KF5Completion)
BuildRequires: cmake(KF5Config)
-BuildRequires: cmake(KF5CoreAddons)
+BuildRequires: cmake(KF5CoreAddons) >= 5.44.0
BuildRequires: cmake(KF5DocTools)
BuildRequires: cmake(KF5I18n)
BuildRequires: cmake(KF5IconThemes)
@@ -53,7 +48,7 @@
BuildRequires: cmake(KF5XmlGui)
BuildRequires: cmake(Qt5Network)
BuildRequires: cmake(Qt5Sql)
-BuildRequires: cmake(Qt5Widgets)
+BuildRequires: cmake(Qt5Widgets) >= 5.9.0
BuildRequires: cmake(Qt5Xml)
Requires: kipi-plugins
Requires: sqlite3
@@ -67,7 +62,7 @@
%lang_package
%prep
-%autosetup -p1
+%setup -q
%build
%cmake_kf5 -d build
@@ -76,6 +71,7 @@
%install
%kf5_makeinstall -C build
%find_lang %{name}
+%kf5_find_htmldocs
%suse_update_desktop_file org.kde.%{name} Graphics Photography
%suse_update_desktop_file org.kde.%{name}-import Graphics Photography
@@ -83,7 +79,7 @@
%files
%license COPYING
-%doc ChangeLog README
+%doc ChangeLog README.md
%{_kf5_applicationsdir}/*
%{_kf5_bindir}/*
%{_kf5_iconsdir}/??color/*/*/*.png
@@ -91,18 +87,8 @@
%{_kf5_htmldir}/en/kphotoalbum/
%{_kf5_kxmlguidir}/kphotoalbum/
%{_kf5_sharedir}/kphotoalbum/
-%dir %{_kf5_appstreamdir}
-%{_kf5_appstreamdir}/org.kde.*.appdata.xml
+%{_kf5_appstreamdir}/org.kde.kphotoalbum.appdata.xml
%files lang -f %{name}.lang
-%doc %lang(ca) %{_kf5_htmldir}/ca/
-%doc %lang(de) %{_kf5_htmldir}/de/
-%doc %lang(fr) %{_kf5_htmldir}/fr/
-%doc %lang(it) %{_kf5_htmldir}/it/
-%doc %lang(nl) %{_kf5_htmldir}/nl/
-%doc %lang(pt) %{_kf5_htmldir}/pt/
-%doc %lang(pt_BR) %{_kf5_htmldir}/pt_BR/
-%doc %lang(sv) %{_kf5_htmldir}/sv/
-%doc %lang(uk) %{_kf5_htmldir}/uk/
%changelog
++++++ kphotoalbum-5.4.2.tar.xz -> kphotoalbum-5.5.tar.xz ++++++
/work/SRC/openSUSE:Factory/kphotoalbum/kphotoalbum-5.4.2.tar.xz /work/SRC/openSUSE:Factory/.kphotoalbum.new.5148/kphotoalbum-5.5.tar.xz differ: char 17, line 1
1
0
Hello community,
here is the log from the commit of package kaffeine for openSUSE:Factory checked in at 2019-05-02 19:22:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kaffeine (Old)
and /work/SRC/openSUSE:Factory/.kaffeine.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kaffeine"
Thu May 2 19:22:12 2019 rev:75 rq:700135 version:2.0.17
Changes:
--------
--- /work/SRC/openSUSE:Factory/kaffeine/kaffeine.changes 2019-01-21 10:56:00.603609074 +0100
+++ /work/SRC/openSUSE:Factory/.kaffeine.new.5148/kaffeine.changes 2019-05-02 19:22:13.393895144 +0200
@@ -1,0 +2,46 @@
+Thu May 2 09:56:38 UTC 2019 - wbauer(a)tmo.at
+
+- Update to 2.0.17:
+ * Fix GCC 9 warnings (due to -Wdeprecated-copy)
+ * dvbtab: remove unused hide cursor logic
+ * dvbdevice: fix a race condition with frontend timeout
+ * dvbdevice_linux: improve some warning messages
+ * mediawidget: fix a regression with next/previous logic
+ (kde#405276)
+ * scanfile.dvb: update it to reflect last changes
+ * dvbepgdialog: allow showing channels with empty EPG
+ * index.docbook: some updates at the doc guide
+ * index.docbook: add documentation about XMLTV support
+ (kde#405278)
+ * Add support for reading EPG from xmltv files (kde#405278)
+ * Add support for disabling MPEG-TS EPG reception
+ * README.md: add a quick description about xmltv (kde#405278)
+ * dvbconfigdialog: remove an extra addLayout()
+ * iso-codes: add support for handling 2-letter codes as well
+ * dvbdevice_linux: remove unused frontendFd
+ * dvb: fix initialization for some objects
+ * backend-vlc: don't leak metadata
+ * backend-vlc: remove two temporary debug logs
+ * backend-vlc: only release libvlc_media_new() when stopped
+ * mediawidget: increase language popup size
+ * mediawidget: define a policy for the audio combo dropbox
+ * backend-vlc: ensure that audio stream will be a valid value
+ * backend-vlc: update metadata at stop()
+ * backend-vlc: release libvlc_media at destroy method
+ * backend-vlc: add other events to the list of possible types
+ * backend-vlc: simplify events handling logic
+ * backend-vlc: print unhandled libVLC events by name
+ * backend-vlc: update audio streams at metadata change
+ * mainwindow: associate control bar to main window widget
+ * backend-vlc: avoid memory leaks
+ * mainwindow: free configuration at exit
+ * mainwindow: better implement close event
+ * backend-vlc: don't leak timer at object destroy
+ * vlcmediawidget: properly initialize the class
+ * vlcmediawidget: initialize urlIsAudioCd and trackNumber
+ variables
+ * backend-vlc: store current audio stream (kde#382546)
+- BuildRequire libvlc 3.0 or higher, it fails to build with 2.2.x
+ (kde#407153)
+
+-------------------------------------------------------------------
Old:
----
kaffeine-2.0.16-2.tar.xz
New:
----
kaffeine-2.0.17.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kaffeine.spec ++++++
--- /var/tmp/diff_new_pack.TwEuyp/_old 2019-05-02 19:22:15.437899388 +0200
+++ /var/tmp/diff_new_pack.TwEuyp/_new 2019-05-02 19:22:15.437899388 +0200
@@ -17,13 +17,13 @@
Name: kaffeine
-Version: 2.0.16
+Version: 2.0.17
Release: 0
Summary: VLC-based Multimedia Player
License: GPL-2.0-or-later
Group: Productivity/Multimedia/Video/Players
URL: http://kaffeine.kde.org/
-Source0: https://download.kde.org/stable/%{name}/%{name}-%{version}-2.tar.xz
+Source0: https://download.kde.org/stable/%{name}/%{name}-%{version}.tar.xz
# PATCH-FEATURE-OPENSUSE kaffeine-fixsplitter.patch -- GUI improvement (allow more flexibly set splitters)
Patch0: kaffeine-fixsplitter.patch
BuildRequires: extra-cmake-modules
@@ -42,7 +42,7 @@
BuildRequires: pkgconfig(Qt5Sql)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt5X11Extras)
-BuildRequires: pkgconfig(libvlc) >= 2.2.0
+BuildRequires: pkgconfig(libvlc) >= 3.0
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xscrnsaver)
Requires: libQt5Sql5-sqlite
@@ -66,7 +66,7 @@
%lang_package
%prep
-%autosetup -p1 -n %{name}-%{version}-2
+%autosetup -p1
%build
%cmake_kf5 -d build
++++++ kaffeine-2.0.16-2.tar.xz -> kaffeine-2.0.17.tar.xz ++++++
++++ 136991 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package clustduct for openSUSE:Factory checked in at 2019-05-02 19:22:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clustduct (Old)
and /work/SRC/openSUSE:Factory/.clustduct.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "clustduct"
Thu May 2 19:22:08 2019 rev:4 rq:700125 version:0.0.1_alpha8
Changes:
--------
--- /work/SRC/openSUSE:Factory/clustduct/clustduct.changes 2019-04-02 09:23:25.984755311 +0200
+++ /work/SRC/openSUSE:Factory/.clustduct.new.5148/clustduct.changes 2019-05-02 19:22:12.121892502 +0200
@@ -1,0 +2,5 @@
+Thu May 2 09:59:26 UTC 2019 - Christian Goll <cgoll(a)suse.com>
+
+- adds the valid SLE15SP1 descriptions (bsc#1131150)
+
+-------------------------------------------------------------------
Old:
----
clustduct-0.0.1_alpha7.tar.gz
New:
----
clustduct-0.0.1_alpha8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ clustduct.spec ++++++
--- /var/tmp/diff_new_pack.K3vj4P/_old 2019-05-02 19:22:12.685893673 +0200
+++ /var/tmp/diff_new_pack.K3vj4P/_new 2019-05-02 19:22:12.689893682 +0200
@@ -22,7 +22,7 @@
%bcond_with pdfdoc
Name: clustduct
-Version: 0.0.1_alpha7
+Version: 0.0.1_alpha8
Release: 0
Summary: Framework which connects a genders database to dnsmasq
License: BSD-3-Clause
++++++ clustduct-0.0.1_alpha7.tar.gz -> clustduct-0.0.1_alpha8.tar.gz ++++++
++++ 2261 lines of diff (skipped)
++++++ clustduct-rpmlintrc ++++++
--- /var/tmp/diff_new_pack.K3vj4P/_old 2019-05-02 19:22:12.773893856 +0200
+++ /var/tmp/diff_new_pack.K3vj4P/_new 2019-05-02 19:22:12.777893864 +0200
@@ -1,4 +1,6 @@
# Triggers from kiwi are empty and hidden files
addFilter("zero-length")
addFilter("hidden-file-or-dir")
+# files are duplicated on purpose as they could be used on different images
+addFilter("files-duplicate")
1
0
Hello community,
here is the log from the commit of package python-buku for openSUSE:Factory checked in at 2019-05-02 19:21:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-buku (Old)
and /work/SRC/openSUSE:Factory/.python-buku.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-buku"
Thu May 2 19:21:51 2019 rev:8 rq:700083 version:4.2.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-buku/python-buku.changes 2019-04-04 15:28:31.202923751 +0200
+++ /work/SRC/openSUSE:Factory/.python-buku.new.5148/python-buku.changes 2019-05-02 19:22:03.017873597 +0200
@@ -1,0 +2,23 @@
+Thu May 2 07:47:06 UTC 2019 - mvetter(a)suse.com
+
+- Update to 4.2.2:
+ * This is a minor release that fixes broken prompt due to PR #373.
+
+-------------------------------------------------------------------
+Thu May 2 06:32:10 UTC 2019 - mvetter(a)suse.com
+
+- Update to 4.2.1:
+ * This is a minor release with a single fix on top of v4.2 to
+ address a packaging problem.
+
+-------------------------------------------------------------------
+Tue Apr 30 05:48:26 UTC 2019 - mvetter(a)suse.com
+
+- Update to 4.2
+ * Disabled appending tags from page on update
+ * Improved Windows color support using colorama (optional dep)
+ * New format option to show only title and tag
+ * Python 3.4 is EOL, support discontinued
+ * Several fixes and code refactor
+
+-------------------------------------------------------------------
Old:
----
buku-4.1.tar.gz
New:
----
buku-4.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-buku.spec ++++++
--- /var/tmp/diff_new_pack.nsZCyL/_old 2019-05-02 19:22:04.509876694 +0200
+++ /var/tmp/diff_new_pack.nsZCyL/_new 2019-05-02 19:22:04.513876703 +0200
@@ -12,14 +12,14 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-buku
-Version: 4.1
+Version: 4.2.2
Release: 0
Summary: Command-line bookmark manager
License: GPL-3.0-or-later
@@ -44,6 +44,7 @@
# /SECTION
Requires: python-base
Requires: python-beautifulsoup4 >= 4.4.1
+Requires: python-colorama
Requires: python-cryptography >= 1.2.3
Requires: python-html5lib >= 1.0.1
Requires: python-requests >= 2.9.1
++++++ buku-4.1.tar.gz -> buku-4.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/CHANGELOG new/buku-4.2.2/CHANGELOG
--- old/buku-4.1/CHANGELOG 2019-01-15 07:24:39.000000000 +0100
+++ new/buku-4.2.2/CHANGELOG 2019-05-02 08:47:59.000000000 +0200
@@ -1,3 +1,28 @@
+Buku v4.2.2
+2019-05-02
+
+- Fixes broken prompt due to PR #373
+
+-------------------------------------------------------------------------------
+
+Buku v4.2.1
+2019-04-30
+
+- A fix on top of v4.2 to address a packaging problem
+
+-------------------------------------------------------------------------------
+
+Buku v4.2
+2019-04-30
+
+- Disabled appending tags from page on update
+- Improved Windows color support using colorama (optional dep)
+- New format option to show only title and tag
+- Python 3.4 is EOL, support discontinued
+- Several fixes and code refactor
+
+-------------------------------------------------------------------------------
+
Buku v4.1
2019-01-15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/PKG-INFO new/buku-4.2.2/PKG-INFO
--- old/buku-4.1/PKG-INFO 2019-01-16 00:47:36.000000000 +0100
+++ new/buku-4.2.2/PKG-INFO 2019-05-02 08:48:20.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: buku
-Version: 4.1
+Version: 4.2.2
Summary: Bookmark manager like a text-based mini-web.
Home-page: https://github.com/jarun/Buku
Author: Arun Prakash Jana
@@ -20,9 +20,9 @@
</p>
<p align="center">
- <a href="https://travis-ci.org/jarun/Buku"><img src="https://img.shields.io/travis/jarun/Buku.svg" alt="Build Status" /></a>
+ <a href="https://repology.org/metapackage/buku"><img src="https://repology.org/badge/tiny-repos/buku.svg" alt="Availability"></a>
+ <a href="https://circleci.com/gh/jarun/workflows/Buku"><img src="https://img.shields.io/circleci/project/github/jarun/Buku.svg" alt="Build Status" /></a>
<a href="http://buku.readthedocs.io/en/latest/?badge=latest"><img src="https://readthedocs.org/projects/buku/badge/?version=latest" alt="Docs Status" /></a>
- <a href="https://snyk.io/test/github/jarun/Buku"><img src="https://snyk.io/test/github/jarun/Buku/badge.svg" /></a>
<a href="https://github.com/jarun/buku/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-yellow.svg?maxAge=2592000" alt="License" /></a>
</p>
@@ -38,16 +38,16 @@
[bukuserver](https://github.com/jarun/Buku/tree/master/bukuserver) exposes a browsable front-end on a local web host server.
- `buku` fetches the title, tags and description of a bookmarked url from the web and stores it. You can use your favourite editor to compose and update bookmarks. With multiple search options, including regex and a deep scan mode (particularly for URLs), it can find any bookmark instantly. Multiple search results can be opened in the browser at once. `buku` can look up the latest snapshot of a broken link on the Wayback Machine. There's an Easter egg to revisit random forgotten bookmarks too! *Buku* is too busy to track you: no hidden history, obsolete records, usage analytics or homing. For more details, please refer to the wiki page on [operational notes](https://github.com/jarun/Buku/wiki/Operational-notes).
+ `buku` can auto-import bookmarks from your browser(s) or fetch the title and description of a bookmarked url from the web. You can use your favourite editor to compose and update bookmarks. With multiple search options, including regex and a deep scan mode (particularly for URLs), it can find any bookmark instantly. `buku` can look up the latest snapshot of a broken link on the Wayback Machine. There's an Easter egg to revisit random forgotten bookmarks too! *Buku* is too busy to track you: no hidden history, obsolete records, usage analytics or homing.
- To get started right away, jump to the [Quickstart](#quickstart) section. We have one of the best documentation around. You'll find handy examples in the man page too.
+ To get started right away, jump to the [Quickstart](#quickstart) section. We have one of the best documentation around. You'll find handy examples in the man page too. For more details, please refer to the wiki page on [operational notes](https://github.com/jarun/Buku/wiki/Operational-notes).
There are several [projects based on `buku`](#related-projects), including a browser plug-in.
*Love smart and efficient utilities? Explore [my repositories](https://github.com/jarun?tab=repositories). Buy me a cup of coffee if they help you.*
<p align="center">
- <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RMLTQ7…"><img src="https://img.shields.io/badge/PayPal-donate-green.svg" alt="Donate via PayPal!" /></a>
+ <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RMLTQ7…"><img src="https://img.shields.io/badge/PayPal-donate-1eb0fc.svg" alt="Donate via PayPal!" /></a>
</p>
### Table of Contents
@@ -65,6 +65,7 @@
- [Colors](#colors)
- [Quickstart](#quickstart)
- [Examples](#examples)
+ - [Automation](#automation)
- [Troubleshooting](#troubleshooting)
- [Editor integration](#editor-integration)
- [Collaborators](#collaborators)
@@ -94,7 +95,7 @@
| Feature | Dependency |
| --- | --- |
- | Scripting language | Python 3.4+ |
+ | Scripting language | Python 3.5+ |
| HTTPS | certifi, urllib3 |
| Encryption | cryptography |
| HTML | beautifulsoup4, html5lib |
@@ -124,7 +125,6 @@
- [Slackware](http://slackbuilds.org/repository/14.2/desktop/Buku/) (`slackpkg install buku`)
- [Termux](https://pypi.python.org/pypi/buku/) (`pip3 install buku`)
- [Ubuntu](https://packages.ubuntu.com/search?keywords=buku&searchon=names&exa… (`apt-get install buku`)
- - [Ubuntu PPA](https://launchpad.net/~twodopeshaggy/+archive/ubuntu/jarun/) (`apt-get install buku`)
- [Void Linux](https://github.com/voidlinux/void-packages/tree/master/srcpkgs/buku) (`xbps-install -S buku`)
#### Release packages
@@ -175,10 +175,10 @@
bookmark URL with comma-separated tags
-u, --update [...] update fields of an existing bookmark
accepts indices and ranges
- refresh title, desc, tags if no edit options
+ refresh title and desc if no edit options
if no arguments:
- update results when used with search
- - otherwise refresh all titles, desc, tags
+ - otherwise refresh all titles and desc
-w, --write [editor|index]
open editor to edit a fresh bookmark
edit last bookmark, if index=-1
@@ -239,9 +239,9 @@
print all bookmarks, if no arguments
-n shows the last n results (like tail)
-f, --format N limit fields in -p or JSON search output
- N=1: URL, N=2: URL and tag, N=3: title,
- N=4: URL, title and tag. To omit DB index,
- use N0, e.g., 10, 20, 30, 40.
+ N=1: URL; N=2: URL, tag; N=3: title;
+ N=4: URL, title, tag; N=5: title, tag;
+ N0 (10, 20, 30, 40, 50) omits DB index
-j, --json JSON formatted output for -p and search
--colors COLORS set output colors in five-letter string
--nc disable color output
@@ -299,7 +299,7 @@
2. Create a sweeter shortcut with some convenience.
alias b='buku --suggest'
- 3. Auto-import bookmarks from your browser(s).
+ 3. Auto-import bookmarks from your browser(s). Please quit the relevant browsers beforehand to ensure the databases are not locked.
b --ai
4. Manually add a bookmark (for hands-on).
@@ -371,7 +371,7 @@
$ buku -u
$ buku -u --tacit (show only failures and exceptions)
- This operation does not modify the indexes, URLs, tags or comments. Only title is refreshed if fetched title is non-empty.
+ This operation can update the title or description fields of non-immutable bookmarks by parsing the fetched page. Fields are updated only if the fetched fields are non-empty. Tags remain untouched.
13. **Delete** bookmark at index 15012014:
$ buku -d 15012014
@@ -468,6 +468,10 @@
$ buku -h
$ man buku
+ ### Automation
+
+ Interactive workflows can be automated using expect. Issue [#368](https://github.com/jarun/Buku/issues/368) has a working example on automating auto-import.
+
### Troubleshooting
#### Editor integration
@@ -521,13 +525,13 @@
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
Classifier: Topic :: Utilities
-Requires-Python: >=3.4
+Requires-Python: >=3.5
Description-Content-Type: text/markdown
Provides-Extra: packaging
-Provides-Extra: tests
Provides-Extra: server
+Provides-Extra: tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/README.md new/buku-4.2.2/README.md
--- old/buku-4.1/README.md 2019-01-15 07:24:39.000000000 +0100
+++ new/buku-4.2.2/README.md 2019-04-30 06:42:09.000000000 +0200
@@ -12,9 +12,9 @@
</p>
<p align="center">
-<a href="https://travis-ci.org/jarun/Buku"><img src="https://img.shields.io/travis/jarun/Buku.svg" alt="Build Status" /></a>
+<a href="https://repology.org/metapackage/buku"><img src="https://repology.org/badge/tiny-repos/buku.svg" alt="Availability"></a>
+<a href="https://circleci.com/gh/jarun/workflows/Buku"><img src="https://img.shields.io/circleci/project/github/jarun/Buku.svg" alt="Build Status" /></a>
<a href="http://buku.readthedocs.io/en/latest/?badge=latest"><img src="https://readthedocs.org/projects/buku/badge/?version=latest" alt="Docs Status" /></a>
-<a href="https://snyk.io/test/github/jarun/Buku"><img src="https://snyk.io/test/github/jarun/Buku/badge.svg" /></a>
<a href="https://github.com/jarun/buku/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-yellow.svg?maxAge=2592000" alt="License" /></a>
</p>
@@ -30,16 +30,16 @@
[bukuserver](https://github.com/jarun/Buku/tree/master/bukuserver) exposes a browsable front-end on a local web host server.
-`buku` fetches the title, tags and description of a bookmarked url from the web and stores it. You can use your favourite editor to compose and update bookmarks. With multiple search options, including regex and a deep scan mode (particularly for URLs), it can find any bookmark instantly. Multiple search results can be opened in the browser at once. `buku` can look up the latest snapshot of a broken link on the Wayback Machine. There's an Easter egg to revisit random forgotten bookmarks too! *Buku* is too busy to track you: no hidden history, obsolete records, usage analytics or homing. For more details, please refer to the wiki page on [operational notes](https://github.com/jarun/Buku/wiki/Operational-notes).
+`buku` can auto-import bookmarks from your browser(s) or fetch the title and description of a bookmarked url from the web. You can use your favourite editor to compose and update bookmarks. With multiple search options, including regex and a deep scan mode (particularly for URLs), it can find any bookmark instantly. `buku` can look up the latest snapshot of a broken link on the Wayback Machine. There's an Easter egg to revisit random forgotten bookmarks too! *Buku* is too busy to track you: no hidden history, obsolete records, usage analytics or homing.
-To get started right away, jump to the [Quickstart](#quickstart) section. We have one of the best documentation around. You'll find handy examples in the man page too.
+To get started right away, jump to the [Quickstart](#quickstart) section. We have one of the best documentation around. You'll find handy examples in the man page too. For more details, please refer to the wiki page on [operational notes](https://github.com/jarun/Buku/wiki/Operational-notes).
There are several [projects based on `buku`](#related-projects), including a browser plug-in.
*Love smart and efficient utilities? Explore [my repositories](https://github.com/jarun?tab=repositories). Buy me a cup of coffee if they help you.*
<p align="center">
-<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RMLTQ7…"><img src="https://img.shields.io/badge/PayPal-donate-green.svg" alt="Donate via PayPal!" /></a>
+<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RMLTQ7…"><img src="https://img.shields.io/badge/PayPal-donate-1eb0fc.svg" alt="Donate via PayPal!" /></a>
</p>
### Table of Contents
@@ -57,6 +57,7 @@
- [Colors](#colors)
- [Quickstart](#quickstart)
- [Examples](#examples)
+- [Automation](#automation)
- [Troubleshooting](#troubleshooting)
- [Editor integration](#editor-integration)
- [Collaborators](#collaborators)
@@ -86,7 +87,7 @@
| Feature | Dependency |
| --- | --- |
-| Scripting language | Python 3.4+ |
+| Scripting language | Python 3.5+ |
| HTTPS | certifi, urllib3 |
| Encryption | cryptography |
| HTML | beautifulsoup4, html5lib |
@@ -116,7 +117,6 @@
- [Slackware](http://slackbuilds.org/repository/14.2/desktop/Buku/) (`slackpkg install buku`)
- [Termux](https://pypi.python.org/pypi/buku/) (`pip3 install buku`)
- [Ubuntu](https://packages.ubuntu.com/search?keywords=buku&searchon=names&exa… (`apt-get install buku`)
-- [Ubuntu PPA](https://launchpad.net/~twodopeshaggy/+archive/ubuntu/jarun/) (`apt-get install buku`)
- [Void Linux](https://github.com/voidlinux/void-packages/tree/master/srcpkgs/buku) (`xbps-install -S buku`)
#### Release packages
@@ -167,10 +167,10 @@
bookmark URL with comma-separated tags
-u, --update [...] update fields of an existing bookmark
accepts indices and ranges
- refresh title, desc, tags if no edit options
+ refresh title and desc if no edit options
if no arguments:
- update results when used with search
- - otherwise refresh all titles, desc, tags
+ - otherwise refresh all titles and desc
-w, --write [editor|index]
open editor to edit a fresh bookmark
edit last bookmark, if index=-1
@@ -231,9 +231,9 @@
print all bookmarks, if no arguments
-n shows the last n results (like tail)
-f, --format N limit fields in -p or JSON search output
- N=1: URL, N=2: URL and tag, N=3: title,
- N=4: URL, title and tag. To omit DB index,
- use N0, e.g., 10, 20, 30, 40.
+ N=1: URL; N=2: URL, tag; N=3: title;
+ N=4: URL, title, tag; N=5: title, tag;
+ N0 (10, 20, 30, 40, 50) omits DB index
-j, --json JSON formatted output for -p and search
--colors COLORS set output colors in five-letter string
--nc disable color output
@@ -291,7 +291,7 @@
2. Create a sweeter shortcut with some convenience.
alias b='buku --suggest'
-3. Auto-import bookmarks from your browser(s).
+3. Auto-import bookmarks from your browser(s). Please quit the relevant browsers beforehand to ensure the databases are not locked.
b --ai
4. Manually add a bookmark (for hands-on).
@@ -363,7 +363,7 @@
$ buku -u
$ buku -u --tacit (show only failures and exceptions)
- This operation does not modify the indexes, URLs, tags or comments. Only title is refreshed if fetched title is non-empty.
+ This operation can update the title or description fields of non-immutable bookmarks by parsing the fetched page. Fields are updated only if the fetched fields are non-empty. Tags remain untouched.
13. **Delete** bookmark at index 15012014:
$ buku -d 15012014
@@ -460,6 +460,10 @@
$ buku -h
$ man buku
+### Automation
+
+Interactive workflows can be automated using expect. Issue [#368](https://github.com/jarun/Buku/issues/368) has a working example on automating auto-import.
+
### Troubleshooting
#### Editor integration
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/buku.1 new/buku-4.2.2/buku.1
--- old/buku-4.1/buku.1 2019-01-15 07:24:39.000000000 +0100
+++ new/buku-4.2.2/buku.1 2019-05-02 08:47:59.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "BUKU" "1" "15 Jan 2019" "Version 4.1" "User Commands"
+.TH "BUKU" "1" "02 May 2019" "Version 4.2.2" "User Commands"
.SH NAME
buku \- Bookmark manager like a text-based mini-web
.SH SYNOPSIS
@@ -51,7 +51,7 @@
.IP 6. 4
\fBUpdate\fR operation:
- If --title, --tag or --comment is passed without argument, clear the corresponding field from DB.
- - If --url is passed (and --title is omitted), update the title from web using the URL. Description is updated (if --comment is omitted) and tags are appended to (if --tag is omitted).
+ - If --url is passed (and --title is omitted), update the title from web using the URL. Description is updated (if --comment is omitted). Tags remain untouched.
- If indices are passed without any other options (--url, --title, --tag, --comment and --immutable), read the URLs from DB and update titles, description and append tags from web. Bookmarks marked immutable are skipped.
- Can update bookmarks matching a search, when combined with any of the search options and no arguments to update are passed.
.PP
@@ -101,7 +101,7 @@
along with comma-separated tags. A tag can have multiple words.
.TP
.BI \-u " " \--update " [...]"
-Update fields of the bookmarks at specified indices in DB. If no arguments are specified, all titles and descriptions are refreshed from the web. Tags are appended. Works with update modifiers for the fields url, title, tag and comment. If only indices are passed without any edit options, titles and descriptions are fetched and updated (if not empty). Accepts hyphenated ranges and space-separated indices. Updates search results when used with search options, if no arguments.
+Update fields of the bookmarks at specified indices in DB. If no arguments are specified, all titles and descriptions are refreshed from the web. Tags remain untouched. Works with update modifiers for the fields url, title, tag and comment. If only indices are passed without any edit options, titles and descriptions are fetched and updated (if not empty). Accepts hyphenated ranges and space-separated indices. Updates search results when used with search options, if no arguments.
.TP
.BI \-w " " \--write " [editor|index]"
Edit a bookmark in
@@ -223,9 +223,12 @@
= 3, show only title.
.br
.I N
-= 4, show URL, title and tags in a single line
+= 4, show URL, title and tags in a single line.
.br
-To omit DB index from printed results, use N0, e.g., 10, 20, 30, 40.
+.I N
+= 5, show title and tags in a single line.
+.br
+To omit DB index from printed results, use N0, e.g., 10, 20, 30, 40, 50.
.TP
.BI \-j " " \--json
Output data formatted as JSON, works with --print output and search results.
@@ -576,7 +579,7 @@
.EE
.PP
.IP "" 4
-This operation does not modify the indexes, URLs, tags or comments. Only title is refreshed if fetched title is non-empty.
+This operation can update the title or description fields of non-immutable bookmarks by parsing the fetched page. Fields are updated only if the fetched fields are non-empty. Tags remain untouched.
.PP
.IP 13. 4
\fBDelete\fR bookmark at index 15012014:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/buku.egg-info/PKG-INFO new/buku-4.2.2/buku.egg-info/PKG-INFO
--- old/buku-4.1/buku.egg-info/PKG-INFO 2019-01-16 00:47:35.000000000 +0100
+++ new/buku-4.2.2/buku.egg-info/PKG-INFO 2019-05-02 08:48:19.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: buku
-Version: 4.1
+Version: 4.2.2
Summary: Bookmark manager like a text-based mini-web.
Home-page: https://github.com/jarun/Buku
Author: Arun Prakash Jana
@@ -20,9 +20,9 @@
</p>
<p align="center">
- <a href="https://travis-ci.org/jarun/Buku"><img src="https://img.shields.io/travis/jarun/Buku.svg" alt="Build Status" /></a>
+ <a href="https://repology.org/metapackage/buku"><img src="https://repology.org/badge/tiny-repos/buku.svg" alt="Availability"></a>
+ <a href="https://circleci.com/gh/jarun/workflows/Buku"><img src="https://img.shields.io/circleci/project/github/jarun/Buku.svg" alt="Build Status" /></a>
<a href="http://buku.readthedocs.io/en/latest/?badge=latest"><img src="https://readthedocs.org/projects/buku/badge/?version=latest" alt="Docs Status" /></a>
- <a href="https://snyk.io/test/github/jarun/Buku"><img src="https://snyk.io/test/github/jarun/Buku/badge.svg" /></a>
<a href="https://github.com/jarun/buku/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-yellow.svg?maxAge=2592000" alt="License" /></a>
</p>
@@ -38,16 +38,16 @@
[bukuserver](https://github.com/jarun/Buku/tree/master/bukuserver) exposes a browsable front-end on a local web host server.
- `buku` fetches the title, tags and description of a bookmarked url from the web and stores it. You can use your favourite editor to compose and update bookmarks. With multiple search options, including regex and a deep scan mode (particularly for URLs), it can find any bookmark instantly. Multiple search results can be opened in the browser at once. `buku` can look up the latest snapshot of a broken link on the Wayback Machine. There's an Easter egg to revisit random forgotten bookmarks too! *Buku* is too busy to track you: no hidden history, obsolete records, usage analytics or homing. For more details, please refer to the wiki page on [operational notes](https://github.com/jarun/Buku/wiki/Operational-notes).
+ `buku` can auto-import bookmarks from your browser(s) or fetch the title and description of a bookmarked url from the web. You can use your favourite editor to compose and update bookmarks. With multiple search options, including regex and a deep scan mode (particularly for URLs), it can find any bookmark instantly. `buku` can look up the latest snapshot of a broken link on the Wayback Machine. There's an Easter egg to revisit random forgotten bookmarks too! *Buku* is too busy to track you: no hidden history, obsolete records, usage analytics or homing.
- To get started right away, jump to the [Quickstart](#quickstart) section. We have one of the best documentation around. You'll find handy examples in the man page too.
+ To get started right away, jump to the [Quickstart](#quickstart) section. We have one of the best documentation around. You'll find handy examples in the man page too. For more details, please refer to the wiki page on [operational notes](https://github.com/jarun/Buku/wiki/Operational-notes).
There are several [projects based on `buku`](#related-projects), including a browser plug-in.
*Love smart and efficient utilities? Explore [my repositories](https://github.com/jarun?tab=repositories). Buy me a cup of coffee if they help you.*
<p align="center">
- <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RMLTQ7…"><img src="https://img.shields.io/badge/PayPal-donate-green.svg" alt="Donate via PayPal!" /></a>
+ <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RMLTQ7…"><img src="https://img.shields.io/badge/PayPal-donate-1eb0fc.svg" alt="Donate via PayPal!" /></a>
</p>
### Table of Contents
@@ -65,6 +65,7 @@
- [Colors](#colors)
- [Quickstart](#quickstart)
- [Examples](#examples)
+ - [Automation](#automation)
- [Troubleshooting](#troubleshooting)
- [Editor integration](#editor-integration)
- [Collaborators](#collaborators)
@@ -94,7 +95,7 @@
| Feature | Dependency |
| --- | --- |
- | Scripting language | Python 3.4+ |
+ | Scripting language | Python 3.5+ |
| HTTPS | certifi, urllib3 |
| Encryption | cryptography |
| HTML | beautifulsoup4, html5lib |
@@ -124,7 +125,6 @@
- [Slackware](http://slackbuilds.org/repository/14.2/desktop/Buku/) (`slackpkg install buku`)
- [Termux](https://pypi.python.org/pypi/buku/) (`pip3 install buku`)
- [Ubuntu](https://packages.ubuntu.com/search?keywords=buku&searchon=names&exa… (`apt-get install buku`)
- - [Ubuntu PPA](https://launchpad.net/~twodopeshaggy/+archive/ubuntu/jarun/) (`apt-get install buku`)
- [Void Linux](https://github.com/voidlinux/void-packages/tree/master/srcpkgs/buku) (`xbps-install -S buku`)
#### Release packages
@@ -175,10 +175,10 @@
bookmark URL with comma-separated tags
-u, --update [...] update fields of an existing bookmark
accepts indices and ranges
- refresh title, desc, tags if no edit options
+ refresh title and desc if no edit options
if no arguments:
- update results when used with search
- - otherwise refresh all titles, desc, tags
+ - otherwise refresh all titles and desc
-w, --write [editor|index]
open editor to edit a fresh bookmark
edit last bookmark, if index=-1
@@ -239,9 +239,9 @@
print all bookmarks, if no arguments
-n shows the last n results (like tail)
-f, --format N limit fields in -p or JSON search output
- N=1: URL, N=2: URL and tag, N=3: title,
- N=4: URL, title and tag. To omit DB index,
- use N0, e.g., 10, 20, 30, 40.
+ N=1: URL; N=2: URL, tag; N=3: title;
+ N=4: URL, title, tag; N=5: title, tag;
+ N0 (10, 20, 30, 40, 50) omits DB index
-j, --json JSON formatted output for -p and search
--colors COLORS set output colors in five-letter string
--nc disable color output
@@ -299,7 +299,7 @@
2. Create a sweeter shortcut with some convenience.
alias b='buku --suggest'
- 3. Auto-import bookmarks from your browser(s).
+ 3. Auto-import bookmarks from your browser(s). Please quit the relevant browsers beforehand to ensure the databases are not locked.
b --ai
4. Manually add a bookmark (for hands-on).
@@ -371,7 +371,7 @@
$ buku -u
$ buku -u --tacit (show only failures and exceptions)
- This operation does not modify the indexes, URLs, tags or comments. Only title is refreshed if fetched title is non-empty.
+ This operation can update the title or description fields of non-immutable bookmarks by parsing the fetched page. Fields are updated only if the fetched fields are non-empty. Tags remain untouched.
13. **Delete** bookmark at index 15012014:
$ buku -d 15012014
@@ -468,6 +468,10 @@
$ buku -h
$ man buku
+ ### Automation
+
+ Interactive workflows can be automated using expect. Issue [#368](https://github.com/jarun/Buku/issues/368) has a working example on automating auto-import.
+
### Troubleshooting
#### Editor integration
@@ -521,13 +525,13 @@
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
Classifier: Topic :: Utilities
-Requires-Python: >=3.4
+Requires-Python: >=3.5
Description-Content-Type: text/markdown
Provides-Extra: packaging
-Provides-Extra: tests
Provides-Extra: server
+Provides-Extra: tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/buku.egg-info/requires.txt new/buku-4.2.2/buku.egg-info/requires.txt
--- old/buku-4.1/buku.egg-info/requires.txt 2019-01-16 00:47:35.000000000 +0100
+++ new/buku-4.2.2/buku.egg-info/requires.txt 2019-05-02 08:48:19.000000000 +0200
@@ -24,9 +24,11 @@
beautifulsoup4>=4.6.0
flake8>=3.4.1
hypothesis>=3.7.0
+mypy-extensions==0.4.1
py>=1.5.0
pylint>=1.7.2
pytest-cov
pytest>=3.4.2
PyYAML>=4.2b1
+setuptools>=41.0.1
vcrpy>=1.13.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/buku.py new/buku-4.2.2/buku.py
--- old/buku-4.1/buku.py 2019-01-16 00:47:34.000000000 +0100
+++ new/buku-4.2.2/buku.py 2019-05-02 08:48:18.000000000 +0200
@@ -34,6 +34,7 @@
import sys
import threading
import time
+from typing import Any, Dict, List, Optional, Tuple
import webbrowser
try:
import readline
@@ -45,8 +46,12 @@
import urllib3
from urllib3.exceptions import LocationParseError
from urllib3.util import parse_url, make_headers
+try:
+ from mypy_extensions import TypedDict
+except ImportError:
+ TypedDict = None # type: ignore
-__version__ = '4.1'
+__version__ = '4.2.2'
__author__ = 'Arun Prakash Jana <engineerarun(a)gmail.com>'
__license__ = 'GPLv3'
@@ -328,6 +333,9 @@
sys.exit(1)
+BookmarkVar = Tuple[int, str, str, str, str, int]
+
+
class BukuDb:
"""Abstracts all database operations.
@@ -343,7 +351,9 @@
Sets the verbosity of the APIs. Default is False.
"""
- def __init__(self, json=False, field_filter=0, chatty=False, dbfile=None, colorize=True):
+ def __init__(
+ self, json: Optional[bool] = False, field_filter: Optional[int] = 0, chatty: Optional[bool] = False,
+ dbfile: Optional[str] = None, colorize: Optional[bool] = True) -> None:
"""Database initialization API.
Parameters
@@ -394,7 +404,7 @@
return os.path.join(data_home, 'buku')
@staticmethod
- def initdb(dbfile=None, chatty=False):
+ def initdb(dbfile: Optional[str] = None, chatty: Optional[bool] = False) -> Tuple[sqlite3.Connection, sqlite3.Cursor]:
"""Initialize the database connection.
Create DB file and/or bookmarks table if they don't exist.
@@ -515,7 +525,7 @@
resultset = self.cur.fetchall()
return resultset[0][0] if resultset else -1
- def get_max_id(self):
+ def get_max_id(self) -> int:
"""Fetch the ID of the last record.
Returns
@@ -530,13 +540,13 @@
def add_rec(
self,
- url,
- title_in=None,
- tags_in=None,
- desc=None,
- immutable=0,
- delay_commit=False,
- fetch=True):
+ url: str,
+ title_in: Optional[str] = None,
+ tags_in: Optional[str] = None,
+ desc: Optional[str] = None,
+ immutable: Optional[int] = 0,
+ delay_commit: Optional[bool] = False,
+ fetch: Optional[bool] = True) -> int:
"""Add a new bookmark.
Parameters
@@ -589,15 +599,13 @@
LOGDBG('Title: [%s]', ptitle)
else:
ptitle = pdesc = ptags = ''
+ LOGDBG('ptags: [%s]', ptags)
if title_in is not None:
ptitle = title_in
# Fix up tags, if broken
- if tags_in and tags_in != DELIM:
- tags_in = delim_wrap(tags_in)
- else:
- tags_in = delim_wrap(parse_tags([ptags]))
+ tags_in = delim_wrap(tags_in)
# Process description
if desc is None:
@@ -866,9 +874,6 @@
query += ' desc = ?,'
arguments += (pdesc,)
to_update = True
-
- if not tags_in and ptags:
- self.append_tag_at_index(index, delim_wrap(ptags))
elif not to_update and not tag_modified:
ret = self.refreshdb(index, threads)
if ret and index and self.chatty:
@@ -1015,7 +1020,7 @@
to_update = False
if not title or title == '':
- print(blank_url_str % row[0])
+ LOGERR(blank_url_str, row[0])
else:
query += ' metadata = ?,'
arguments += (title,)
@@ -1035,7 +1040,6 @@
LOGDBG('refreshdb query: "%s", args: %s', query, arguments)
self.cur.execute(query, arguments)
- self.append_tag_at_index(row[0], delim_wrap(tags), delay_commit=True)
# Save after fetching 32 titles per thread
if count & 0b11111 == 0:
@@ -1994,11 +1998,11 @@
# If range starts from 0 throw an error
if low <= 0:
raise IndexError
- else:
- qry = 'SELECT URL from bookmarks where id BETWEEN ? AND ?'
- for row in self.cur.execute(qry, (low, high)):
- browse(row[0])
- return True
+
+ qry = 'SELECT URL from bookmarks where id BETWEEN ? AND ?'
+ for row in self.cur.execute(qry, (low, high)):
+ browse(row[0])
+ return True
except IndexError:
LOGERR('Index out of range')
return False
@@ -2031,7 +2035,7 @@
return False
- def exportdb(self, filepath, resultset=None):
+ def exportdb(self, filepath: str, resultset: Optional[List[BookmarkVar]] = None) -> bool:
"""Export DB bookmarks to file.
Exports full DB, if resultset is None
@@ -2059,7 +2063,6 @@
"""
count = 0
- timestamp = str(int(time.time()))
if not resultset:
resultset = self.get_rec_all()
@@ -2080,12 +2083,9 @@
qry = 'INSERT INTO bookmarks(URL, metadata, tags, desc, flags) VALUES (?, ?, ?, ?, ?)'
for row in resultset:
outdb.cur.execute(qry, (row[1], row[2], row[3], row[4], row[5]))
+ count += 1
outdb.conn.commit()
outdb.close()
-
- count = self.get_max_id()
- if count == -1:
- count = 0
print('%s exported' % count)
return True
@@ -2095,48 +2095,19 @@
LOGERR(e)
return False
+ res = {} # type: Dict
if filepath.endswith('.md'):
- for row in resultset:
- if row[2] == '':
- out = '- [Untitled](' + row[1] + ')\n'
- else:
- out = '- [' + row[2] + '](' + row[1] + ')\n'
- outfp.write(out)
- count += 1
-
+ res = convert_bookmark_set(resultset, 'markdown')
+ count += res['count']
+ outfp.write(res['data'])
elif filepath.endswith('.org'):
- for row in resultset:
- if row[2] == '':
- out = '* [[{}][Untitled]]\n'.format(row[1])
- else:
- out = '* [[{}][{}]]\n'.format(row[1], row[2])
- outfp.write(out)
- count += 1
+ res = convert_bookmark_set(resultset, 'org')
+ count += res['count']
+ outfp.write(res['data'])
else:
- outfp.write('<!DOCTYPE NETSCAPE-Bookmark-file-1>\n\n'
- '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">\n'
- '<TITLE>Bookmarks</TITLE>\n'
- '<H1>Bookmarks</H1>\n\n'
- '<DL><p>\n'
- ' <DT><H3 ADD_DATE="%s" LAST_MODIFIED="%s" '
- 'PERSONAL_TOOLBAR_FOLDER="true">Buku bookmarks</H3>\n'
- ' <DL><p>\n'
- % (timestamp, timestamp))
-
- for row in resultset:
- out = (' <DT><A HREF="%s" ADD_DATE="%s" LAST_MODIFIED="%s"'
- % (row[1], timestamp, timestamp))
- if row[3] != DELIM:
- out += ' TAGS="' + row[3][1:-1] + '"'
- out += '>' + row[2] + '</A>\n'
- if row[4] != '':
- out += ' <DD>' + row[4] + '\n'
-
- outfp.write(out)
- count += 1
-
- outfp.write(' </DL><p>\n</DL><p>')
-
+ res = convert_bookmark_set(resultset, 'html')
+ count += res['count']
+ outfp.write(res['data'])
outfp.close()
print('%s exported' % count)
return True
@@ -2226,11 +2197,7 @@
"""
# Connect to input DB
- if sys.version_info >= (3, 4, 4):
- # Python 3.4.4 and above
- conn = sqlite3.connect('file:%s?mode=ro' % path, uri=True)
- else:
- conn = sqlite3.connect(path)
+ conn = sqlite3.connect('file:%s?mode=ro' % path, uri=True)
cur = conn.cursor()
res = cur.execute('SELECT DISTINCT fk, parent, title FROM moz_bookmarks WHERE type=1')
@@ -2483,11 +2450,7 @@
try:
# Connect to input DB
- if sys.version_info >= (3, 4, 4):
- # Python 3.4.4 and above
- indb_conn = sqlite3.connect('file:%s?mode=ro' % path, uri=True)
- else:
- indb_conn = sqlite3.connect(path)
+ indb_conn = sqlite3.connect('file:%s?mode=ro' % path, uri=True)
indb_cur = indb_conn.cursor()
indb_cur.execute('SELECT * FROM bookmarks')
@@ -2553,18 +2516,19 @@
if MYPROXY is None:
gen_headers()
+ ca_certs = os.getenv('BUKU_CA_CERTS', default=certifi.where())
if MYPROXY:
manager = urllib3.ProxyManager(
MYPROXY,
num_pools=1,
headers=MYHEADERS,
cert_reqs='CERT_REQUIRED',
- ca_certs=certifi.where())
+ ca_certs=ca_certs)
else:
manager = urllib3.PoolManager(num_pools=1,
headers={'User-Agent': USER_AGENT},
cert_reqs='CERT_REQUIRED',
- ca_certs=certifi.where())
+ ca_certs=ca_certs)
try:
r = manager.request(
@@ -2794,6 +2758,70 @@
# Helper functions
# ----------------
+
+ConverterResult = TypedDict('ConverterResult', {'data': str, 'count': int}) if TypedDict else Dict[str, Any]
+
+
+def convert_bookmark_set(
+ bookmark_set: List[BookmarkVar],
+ export_type: str) -> ConverterResult: # type: ignore
+ """Convert list of bookmark set into multiple data format.
+
+ Parameters
+ ----------
+ bookmark_set: bookmark set
+ export type: one of supported type: markdown, html, org
+
+ Returns
+ -------
+ converted data and count of converted bookmark set
+ """
+ assert export_type in ['markdown', 'html', 'org']
+ # compatibility
+ resultset = bookmark_set
+
+ count = 0
+ out = ''
+ if export_type == 'markdown':
+ for row in resultset:
+ if not row[2]:
+ out += '- [Untitled](' + row[1] + ')\n'
+ else:
+ out += '- [' + row[2] + '](' + row[1] + ')\n'
+ count += 1
+ elif export_type == 'org':
+ for row in resultset:
+ if not row[2]:
+ out += '* [[{}][Untitled]]\n'.format(row[1])
+ else:
+ out += '* [[{}][{}]]\n'.format(row[1], row[2])
+ count += 1
+ elif export_type == 'html':
+ timestamp = str(int(time.time()))
+ out = (
+ '<!DOCTYPE NETSCAPE-Bookmark-file-1>\n\n'
+ '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">\n'
+ '<TITLE>Bookmarks</TITLE>\n'
+ '<H1>Bookmarks</H1>\n\n'
+ '<DL><p>\n'
+ ' <DT><H3 ADD_DATE="{0}" LAST_MODIFIED="{0}" '
+ 'PERSONAL_TOOLBAR_FOLDER="true">Buku bookmarks</H3>\n'
+ ' <DL><p>\n'.format(timestamp))
+
+ for row in resultset:
+ out += ' <DT><A HREF="%s" ADD_DATE="%s" LAST_MODIFIED="%s"' % (row[1], timestamp, timestamp)
+ if row[3] != DELIM:
+ out += ' TAGS="' + row[3][1:-1] + '"'
+ out += '>{}</A>\n'.format(row[2] if row[2] else '')
+ if row[4] != '':
+ out += ' <DD>' + row[4] + '\n'
+ count += 1
+
+ out += ' </DL><p>\n</DL><p>'
+
+ return {'data': out, 'count': count}
+
+
def get_firefox_profile_name(path):
"""List folder and detect default Firefox profile name.
@@ -3144,14 +3172,14 @@
# Get the netloc token
try:
netloc = parse_url(url).netloc
+ if not netloc:
+ # Try of prepend '//' and get netloc
+ netloc = parse_url('//' + url).netloc
+ if not netloc:
+ return True
except LocationParseError as e:
LOGERR('%s, URL: %s', e, url)
return True
- if not netloc:
- # Try of prepend '//' and get netloc
- netloc = parse_url('//' + url).netloc
- if not netloc:
- return True
LOGDBG('netloc: %s', netloc)
@@ -3398,17 +3426,17 @@
ProxyManager or PoolManager
ProxyManager if https_proxy is defined, PoolManager otherwise.
"""
-
+ ca_certs = os.getenv('BUKU_CA_CERTS', default=certifi.where())
if MYPROXY:
return urllib3.ProxyManager(MYPROXY, num_pools=1, headers=MYHEADERS, timeout=15,
- cert_reqs='CERT_REQUIRED', ca_certs=certifi.where())
+ cert_reqs='CERT_REQUIRED', ca_certs=ca_certs)
return urllib3.PoolManager(
num_pools=1,
headers=MYHEADERS,
timeout=15,
cert_reqs='CERT_REQUIRED',
- ca_certs=certifi.where())
+ ca_certs=ca_certs)
def network_handler(url, http_head=False):
@@ -4008,6 +4036,9 @@
elif field_filter == 4:
for row in records:
print('%s\t%s\t%s\t%s' % (row[0], row[1], row[2], row[3][1:-1]))
+ elif field_filter == 5:
+ for row in records:
+ print('%s\t%s\t%s' % (row[0], row[2], row[3][1:-1]))
elif field_filter == 10:
for row in records:
print(row[1])
@@ -4020,6 +4051,9 @@
elif field_filter == 40:
for row in records:
print('%s\t%s\t%s' % (row[1], row[2], row[3][1:-1]))
+ elif field_filter == 50:
+ for row in records:
+ print('%s\t%s' % (row[2], row[3][1:-1]))
except BrokenPipeError:
sys.stdout = os.fdopen(1)
sys.exit(1)
@@ -4224,19 +4258,20 @@
if MYPROXY is None:
gen_headers()
+ ca_certs = os.getenv('BUKU_CA_CERTS', default=certifi.where())
if MYPROXY:
manager = urllib3.ProxyManager(
MYPROXY,
num_pools=1,
headers=MYHEADERS,
cert_reqs='CERT_REQUIRED',
- ca_certs=certifi.where()
+ ca_certs=ca_certs
)
else:
manager = urllib3.PoolManager(num_pools=1,
headers={'User-Agent': USER_AGENT},
cert_reqs='CERT_REQUIRED',
- ca_certs=certifi.where())
+ ca_certs=ca_certs)
try:
r = manager.request(
@@ -4683,10 +4718,10 @@
bookmark URL with comma-separated tags
-u, --update [...] update fields of an existing bookmark
accepts indices and ranges
- refresh title, desc, tags if no edit options
+ refresh title and desc if no edit options
if no arguments:
- update results when used with search
- - otherwise refresh all titles, desc, tags
+ - otherwise refresh all titles and desc
-w, --write [editor|index]
open editor to edit a fresh bookmark
edit last bookmark, if index=-1
@@ -4790,9 +4825,9 @@
print all bookmarks, if no arguments
-n shows the last n results (like tail)
-f, --format N limit fields in -p or JSON search output
- N=1: URL, N=2: URL and tag, N=3: title,
- N=4: URL, title and tag. To omit DB index,
- use N0, e.g., 10, 20, 30, 40.
+ N=1: URL; N=2: URL, tag; N=3: title;
+ N=4: URL, title, tag; N=5: title, tag;
+ N0 (10, 20, 30, 40, 50) omits DB index
-j, --json JSON formatted output for -p and search
--colors COLORS set output colors in five-letter string
--nc disable color output
@@ -4817,7 +4852,7 @@
addarg('-e', '--export', nargs=1, help=hide)
addarg('-i', '--import', nargs=1, dest='importfile', help=hide)
addarg('-p', '--print', nargs='*', help=hide)
- addarg('-f', '--format', type=int, default=0, choices={1, 2, 3, 4, 10, 20, 30, 40}, help=hide)
+ addarg('-f', '--format', type=int, default=0, choices={1, 2, 3, 4, 5, 10, 20, 30, 40, 50}, help=hide)
addarg('-j', '--json', action='store_true', help=hide)
addarg('--colors', dest='colorstr', type=argparser.is_colorstr, metavar='COLORS', help=hide)
addarg('--nc', action='store_true', help=hide)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/bukuserver/server.py new/buku-4.2.2/bukuserver/server.py
--- old/buku-4.1/bukuserver/server.py 2019-01-01 16:28:25.000000000 +0100
+++ new/buku-4.2.2/bukuserver/server.py 2019-05-01 01:32:47.000000000 +0200
@@ -14,7 +14,7 @@
from markupsafe import Markup
import click
import flask
-from flask import (
+from flask import ( # type: ignore
__version__ as flask_version,
abort,
current_app,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/requirements.txt new/buku-4.2.2/requirements.txt
--- old/buku-4.1/requirements.txt 2019-01-01 16:28:25.000000000 +0100
+++ new/buku-4.2.2/requirements.txt 2019-04-30 06:42:09.000000000 +0200
@@ -1,5 +1,7 @@
+# use setup.py for latest required package
beautifulsoup4>=4.4.1
certifi
cryptography>=1.2.3
+html5lib>=1.0.1
setuptools
urllib3>=1.23
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/setup.py new/buku-4.2.2/setup.py
--- old/buku-4.1/setup.py 2019-01-15 07:24:39.000000000 +0100
+++ new/buku-4.2.2/setup.py 2019-05-01 01:32:47.000000000 +0200
@@ -10,7 +10,7 @@
shutil.copyfile('buku', 'buku.py')
with open('buku.py', encoding='utf-8') as f:
- version = re.search('__version__ = \'([^\']+)\'', f.read()).group(1)
+ version = re.search('__version__ = \'([^\']+)\'', f.read()).group(1) # type: ignore
with open('README.md', encoding='utf-8') as f:
long_description = f.read()
@@ -20,11 +20,13 @@
'beautifulsoup4>=4.6.0',
'flake8>=3.4.1',
'hypothesis>=3.7.0',
+ 'mypy-extensions==0.4.1',
'py>=1.5.0',
'pylint>=1.7.2',
'pytest-cov',
'pytest>=3.4.2',
'PyYAML>=4.2b1',
+ 'setuptools>=41.0.1',
'vcrpy>=1.13.0',
]
@@ -52,7 +54,7 @@
author_email='engineerarun(a)gmail.com',
url='https://github.com/jarun/Buku',
license='GPLv3',
- python_requires='>=3.4', # requires pip>=9.0.0
+ python_requires='>=3.5', # requires pip>=9.0.0
platforms=['any'],
py_modules=['buku'],
install_requires=[
@@ -85,9 +87,9 @@
'Operating System :: OS Independent',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3 :: Only',
- 'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
+ 'Programming Language :: Python :: 3.7',
'Topic :: Internet :: WWW/HTTP :: Indexing/Search',
'Topic :: Utilities'
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/tests/test_buku.py new/buku-4.2.2/tests/test_buku.py
--- old/buku-4.1/tests/test_buku.py 2019-01-01 16:28:25.000000000 +0100
+++ new/buku-4.2.2/tests/test_buku.py 2019-05-01 01:32:47.000000000 +0200
@@ -3,6 +3,7 @@
from unittest import mock
from urllib.parse import urlparse
import json
+import logging
import os
import signal
import sys
@@ -528,15 +529,15 @@
['about:new_page', ((None, None, None, 0, 1))],
['chrome://version/', ((None, None, None, 0, 1))],
['chrome://version/', ((None, None, None, 0, 1))],
- [
- 'http://4pda.ru/forum/index.php?showtopic=182463&st=1640#entry6044923',
- (
- 'Samsung GT-I5800 Galaxy 580 - Обсуждение - 4PDA',
- 'Samsung GT-I5800 Galaxy 580 - Обсуждение - 4PDA',
- None,
- 0, 0
- )
- ],
+ # [
+ # 'http://4pda.ru/forum/index.php?showtopic=182463&st=1640#entry6044923',
+ # (
+ # 'Samsung GT-I5800 Galaxy 580 - Обсуждение - 4PDA',
+ # 'Samsung GT-I5800 Galaxy 580 - Обсуждение - 4PDA',
+ # None,
+ # 0, 0
+ # )
+ # ],
[
'https://www.google.ru/search?'
'newwindow=1&safe=off&q=xkbcomp+alt+gr&'
@@ -726,4 +727,41 @@
params, stdin=subprocess.PIPE, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
m_popen_retval.communicate.assert_called_once_with(content)
else:
- m_popen.assert_not_called()
+ logging.info('popen is called {} on unrecognized platform'.format(m_popen.call_count))
+
+
+(a)pytest.mark.parametrize('export_type, exp_res', [
+ [
+ 'html',
+ '<!DOCTYPE NETSCAPE-Bookmark-file-1>\n\n'
+ '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">\n'
+ '<TITLE>Bookmarks</TITLE>\n<H1>Bookmarks</H1>\n\n<DL><p>\n'
+ ' <DT><H3 ADD_DATE="1556430615" LAST_MODIFIED="1556430615" PERSONAL_TOOLBAR_FOLDER="true">Buku bookmarks</H3>\n'
+ ' <DL><p>\n'
+ ' <DT><A HREF="htttp://example.com" ADD_DATE="1556430615" LAST_MODIFIED="1556430615"></A>\n'
+ ' <DT><A HREF="htttp://example.org" ADD_DATE="1556430615" LAST_MODIFIED="1556430615"></A>\n'
+ ' <DT><A HREF="http://google.com" ADD_DATE="1556430615" LAST_MODIFIED="1556430615">Google</A>\n'
+ ' </DL><p>\n</DL><p>'
+ ],
+ ['org', '* [[htttp://example.com][Untitled]]\n* [[htttp://example.org][Untitled]]\n* [[http://google.com][Google]]\n'],
+ ['markdown', '- [Untitled](htttp://example.com)\n- [Untitled](htttp://example.org)\n- [Google](http://google.com)\n'],
+ ['random', None],
+])
+def test_convert_bookmark_set(export_type, exp_res, monkeypatch):
+ from buku import convert_bookmark_set
+ import buku
+ bms = [
+ (1, 'htttp://example.com', '', ',', '', 0),
+ (1, 'htttp://example.org', None, ',', '', 0),
+ (2, 'http://google.com', 'Google', ',', '', 0)]
+ if export_type == 'random':
+ with pytest.raises(AssertionError):
+ convert_bookmark_set(bms, export_type=export_type)
+ else:
+
+ def return_fixed_number():
+ return 1556430615
+ monkeypatch.setattr(buku.time, 'time', return_fixed_number)
+ res = convert_bookmark_set(bms, export_type=export_type)
+ assert res['count'] == 3
+ assert exp_res == res['data']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buku-4.1/tests/test_bukuDb.py new/buku-4.2.2/tests/test_bukuDb.py
--- old/buku-4.1/tests/test_bukuDb.py 2019-01-15 08:37:12.000000000 +0100
+++ new/buku-4.2.2/tests/test_bukuDb.py 2019-05-01 01:53:29.000000000 +0200
@@ -13,7 +13,7 @@
import zipfile
from genericpath import exists
from itertools import product
-from tempfile import TemporaryDirectory
+from tempfile import TemporaryDirectory, NamedTemporaryFile
from unittest import mock
import unittest
@@ -1027,52 +1027,71 @@
@pytest.mark.parametrize(
- 'kwargs, exp_query, exp_arguments',
+ 'kwargs, exp_query, exp_query_p37, exp_arguments, exp_arguments_p37',
[
[
{'index': 1, 'url': 'http://example.com'},
'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?',
- ['http://example.com', 'Example Domain', 1]
+ 'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?',
+ ['http://example.com', 'Example Domain', 1],
+ ['http://example.com', '', 'Example Domain', 1]
],
[
{'index': 1, 'url': 'http://example.com', 'title_in': 'randomtitle'},
'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?',
+ 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?',
+ ['http://example.com', 'randomtitle', 1],
['http://example.com', 'randomtitle', 1]
],
[
{'index': 1, 'url': 'http://example.com', 'tags_in': 'tag1'},
'UPDATE bookmarks SET URL = ?, tags = ?, metadata = ? WHERE id = ?',
- ['http://example.com', ',tag1', 'Example Domain', 1]
+ 'UPDATE bookmarks SET URL = ?, tags = ?, desc = ?, metadata = ? WHERE id = ?',
+ ['http://example.com', ',tag1', 'Example Domain', 1],
+ ['http://example.com', ',tag1,', '', 'Example Domain', 1]
],
[
{'index': 1, 'url': 'http://example.com', 'tags_in': '+,tag1'},
'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?',
- ['http://example.com', 'Example Domain', 1]
+ 'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?',
+ ['http://example.com', 'Example Domain', 1],
+ ['http://example.com', '', 'Example Domain', 1]
],
[
{'index': 1, 'url': 'http://example.com', 'tags_in': '-,tag1'},
'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?',
- ['http://example.com', 'Example Domain', 1]
+ 'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?',
+ ['http://example.com', 'Example Domain', 1],
+ ['http://example.com', '', 'Example Domain', 1]
],
[
{'index': 1, 'url': 'http://example.com', 'desc': 'randomdesc'},
'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?',
+ 'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?',
+ ['http://example.com', 'randomdesc', 'Example Domain', 1],
['http://example.com', 'randomdesc', 'Example Domain', 1]
],
]
)
-def test_update_rec_exec_arg(caplog, kwargs, exp_query, exp_arguments):
+def test_update_rec_exec_arg(caplog, kwargs, exp_query, exp_query_p37, exp_arguments, exp_arguments_p37):
"""test method."""
+ if (sys.version_info.major, sys.version_info.minor) == (3, 7):
+ caplog.set_level(logging.DEBUG)
+ exp_query = exp_query_p37
+ exp_arguments = exp_arguments_p37
bdb = BukuDb()
res = bdb.update_rec(**kwargs)
assert res
+
exp_log = 'query: "{}", args: {}'.format(exp_query, exp_arguments)
+ if (sys.version_info.major, sys.version_info.minor) == (3, 7):
+ exp_log = 'update_rec ' + exp_log
try:
assert caplog.records[-1].getMessage() == exp_log
assert caplog.records[-1].levelname == 'DEBUG'
@@ -1088,37 +1107,57 @@
@pytest.mark.parametrize(
- 'tags_to_search, exp_query, exp_arguments',
+ 'tags_to_search, exp_query, exp_query_p37, exp_arguments, exp_arguments_p37',
[
[
'tag1, tag2',
"SELECT id, url, metadata, tags, desc FROM bookmarks WHERE tags LIKE '%' || ? || '%' "
"OR tags LIKE '%' || ? || '%' ORDER BY id ASC",
- [',tag1,', ',tag2,']
-
+ "SELECT id, url, metadata, tags, desc "
+ "FROM (SELECT *, CASE WHEN tags LIKE '%' || ? || '%' THEN 1 ELSE 0 END + CASE "
+ "WHEN tags LIKE '%' || ? || '%' THEN 1 ELSE 0 END AS score "
+ "FROM bookmarks WHERE score > 0 ORDER BY score DESC)",
+ [',tag1,', ',tag2,'],
+ None
],
[
- 'tag1+tag2,tag3, tag4',
+ 'tag2+tag2,tag3, tag4',
"SELECT id, url, metadata, tags, desc FROM bookmarks WHERE tags LIKE '%' || ? || '%' "
"OR tags LIKE '%' || ? || '%' OR tags LIKE '%' || ? || '%' ORDER BY id ASC",
- [',tag1+tag2,', ',tag3,', ',tag4,']
+ "SELECT id, url, metadata, tags, desc "
+ "FROM (SELECT *, CASE WHEN tags LIKE '%' || ? || '%' THEN 1 ELSE 0 END + CASE "
+ "WHEN tags LIKE '%' || ? || '%' THEN 1 ELSE 0 END + CASE "
+ "WHEN tags LIKE '%' || ? || '%' THEN 1 ELSE 0 END AS score "
+ "FROM bookmarks WHERE score > 0 ORDER BY score DESC)",
+ [',tag1+tag2,', ',tag3,', ',tag4,'],
+ [',tag2+tag2,', ',tag3,', ',tag4,']
],
[
'tag1 + tag2+tag3',
"SELECT id, url, metadata, tags, desc FROM bookmarks WHERE tags LIKE '%' || ? || '%' "
"AND tags LIKE '%' || ? || '%' ORDER BY id ASC",
- [',tag1,', ',tag2+tag3,']
+ None,
+ [',tag1,', ',tag2+tag3,'],
+ None
],
[
'tag1-tag2 + tag 3 - tag4',
"SELECT id, url, metadata, tags, desc FROM bookmarks WHERE (tags LIKE '%' || ? || '%' "
"AND tags LIKE '%' || ? || '%' ) AND tags NOT REGEXP ? ORDER BY id ASC",
- [',tag1-tag2,', ',tag 3,', ',tag4,']
+ None,
+ [',tag1-tag2,', ',tag 3,', ',tag4,'],
+ None
]
]
)
-def test_search_by_tag_query(caplog, tags_to_search, exp_query, exp_arguments):
+def test_search_by_tag_query(caplog, tags_to_search, exp_query, exp_query_p37, exp_arguments, exp_arguments_p37):
"""test that the correct query and argments are constructed"""
+ if (sys.version_info.major, sys.version_info.minor) == (3, 7):
+ caplog.set_level(logging.DEBUG)
+ if exp_query_p37:
+ exp_query = exp_query_p37
+ if exp_arguments_p37:
+ exp_arguments = exp_arguments_p37
bdb = BukuDb()
bdb.search_by_tag(tags_to_search)
exp_log = 'query: "{}", args: {}'.format(exp_query, exp_arguments)
@@ -1174,6 +1213,8 @@
@pytest.mark.parametrize('read_in_retval', ['y', 'n', ''])
def test_update_rec_update_all_bookmark(caplog, read_in_retval):
"""test method."""
+ if (sys.version_info.major, sys.version_info.minor) == (3, 7):
+ caplog.set_level(logging.DEBUG)
with mock.patch('buku.read_in', return_value=read_in_retval):
import buku
bdb = buku.BukuDb()
@@ -1183,8 +1224,12 @@
return
assert res
try:
- assert caplog.records[0].getMessage() == \
- 'query: "UPDATE bookmarks SET tags = ?", args: [\',tags1\']'
+ if (sys.version_info.major, sys.version_info.minor) == (3, 7):
+ assert caplog.records[0].getMessage() == \
+ 'update_rec query: "UPDATE bookmarks SET tags = ?", args: [\',tags1,\']'
+ else:
+ assert caplog.records[0].getMessage() == \
+ 'query: "UPDATE bookmarks SET tags = ?", args: [\',tags1\']'
assert caplog.records[0].levelname == 'DEBUG'
except IndexError as e:
# TODO: fix test
@@ -1372,6 +1417,50 @@
assert exp_res == res
+def test_exportdb_empty_db():
+ with NamedTemporaryFile(delete=False) as f:
+ db = BukuDb(dbfile=f.name)
+ with NamedTemporaryFile(delete=False) as f2:
+ res = db.exportdb(f2.name)
+ assert not res
+
+
+def test_exportdb_single_rec(tmpdir):
+ with NamedTemporaryFile(delete=False) as f:
+ db = BukuDb(dbfile=f.name)
+ db.add_rec('http://example.com')
+ exp_file = tmpdir.join('export')
+ db.exportdb(exp_file.strpath)
+ with open(exp_file.strpath) as f:
+ assert f.read()
+
+
+def test_exportdb_to_db():
+ with NamedTemporaryFile(delete=False) as f1, NamedTemporaryFile(delete=False, suffix='.db') as f2:
+ db = BukuDb(dbfile=f1.name)
+ db.add_rec('http://example.com')
+ db.add_rec('http://google.com')
+ with mock.patch('builtins.input', return_value='y'):
+ db.exportdb(f2.name)
+ db2 = BukuDb(dbfile=f2.name)
+ assert db.get_rec_all() == db2.get_rec_all()
+
+
+(a)pytest.mark.parametrize(
+ 'urls, exp_res',
+ [
+ [[], -1],
+ [['http://example.com'], 1],
+ [['htttp://example.com', 'http://google.com'], 2],
+ ])
+def test_get_max_id(urls, exp_res):
+ with NamedTemporaryFile(delete=False) as f:
+ db = BukuDb(dbfile=f.name)
+ if urls:
+ list(map(lambda x: db.add_rec(x), urls))
+ assert db.get_max_id() == exp_res
+
+
# Helper functions for testcases
1
0
Hello community,
here is the log from the commit of package lshw for openSUSE:Factory checked in at 2019-05-02 19:21:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lshw (Old)
and /work/SRC/openSUSE:Factory/.lshw.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lshw"
Thu May 2 19:21:47 2019 rev:9 rq:700059 version:B.02.18+git.20190324
Changes:
--------
--- /work/SRC/openSUSE:Factory/lshw/lshw.changes 2019-03-28 22:49:35.671044874 +0100
+++ /work/SRC/openSUSE:Factory/.lshw.new.5148/lshw.changes 2019-05-02 19:21:56.637860347 +0200
@@ -1,0 +2,10 @@
+Thu May 2 09:56:21 UTC 2019 - Martin Pluskal <mpluskal(a)suse.com>
+
+- Fix displaying proper logical name of network device bsc#1133923
+ * lswh-logical-name-iface.patch
+- Fix displaying correct version bsc##1130818
+ * lshw-display-latest-version.patch
+ * lshw-help-man.patch
+ * lshw-modified-time.patch
+
+-------------------------------------------------------------------
New:
----
lshw-display-latest-version.patch
lshw-help-man.patch
lshw-modified-time.patch
lswh-logical-name-iface.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lshw.spec ++++++
--- /var/tmp/diff_new_pack.sh2Jgq/_old 2019-05-02 19:21:58.333863870 +0200
+++ /var/tmp/diff_new_pack.sh2Jgq/_new 2019-05-02 19:21:58.337863878 +0200
@@ -27,6 +27,12 @@
Source: lshw-%{version}.tar.xz
Source1: lshw.desktop.in
Source2: lshw.png
+# PATCH-FIX-UPSTREAM lswh-logical-name-iface.patch bsc#1133923
+Patch0: lswh-logical-name-iface.patch
+# PATCH-FIX-UPSTREAM lshw-display-latest-version.patch lshw-help-man.patch lshw-modified-time.patch bsc##1130818
+Patch1: lshw-display-latest-version.patch
+Patch2: lshw-help-man.patch
+Patch3: lshw-modified-time.patch
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
BuildRequires: libpng-devel
@@ -76,6 +82,10 @@
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
%build
make \
++++++ lshw-display-latest-version.patch ++++++
>From 5e58d66598908249f44d349d22efdc4524f0cfcb Mon Sep 17 00:00:00 2001
From: Vasant Hegde <hegdevasant(a)linux.vnet.ibm.com>
Date: Mon, 29 Apr 2019 22:39:08 +0530
Subject: [PATCH] Fix version output
Display latest version only when its greater than current version.
"lshw -version" tries to get current version from upstream repository.
If it contains old version then output becomes confusing (as running
version > latest version).
Signed-off-by: Vasant Hegde <hegdevasant(a)linux.vnet.ibm.com>
---
src/lshw.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lshw.cc b/src/lshw.cc
index 219a008..be233eb 100644
--- a/src/lshw.cc
+++ b/src/lshw.cc
@@ -121,7 +121,7 @@ char **argv)
printf("%s\n", getpackageversion());
if(latest)
{
- if(strcmp(latest, getpackageversion()) != 0)
+ if(strcmp(latest, getpackageversion()) >= 0)
fprintf(stderr, _("the latest version is %s\n"), latest);
}
exit(0);
++++++ lshw-help-man.patch ++++++
>From 33951733bb800321780444a178b969c212c65875 Mon Sep 17 00:00:00 2001
From: Seeteena Thoufeek <s1seetee(a)linux.vnet.ibm.com>
Date: Wed, 12 Jul 2017 11:00:43 +0530
Subject: [PATCH] Update help message and man page
lshw -dump option displays output on stdout as well as stores SQLite
format data into a file. Lets update man page and help message to
reflect this.
Signed-off-by: Seeteena Thoufeek <s1seetee(a)linux.vnet.ibm.com>
[Updated description - Vasant]
Signed-off-by: Vasant Hegde <hegdevasant(a)linux.vnet.ibm.com>
---
src/lshw.1 | 2 +-
src/lshw.cc | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lshw.1 b/src/lshw.1
index 43239da..79c3619 100644
--- a/src/lshw.1
+++ b/src/lshw.1
@@ -53,7 +53,7 @@ Outputs the device tree showing hardware paths, very much like the output of HP-
Outputs the device list showing bus information, detailing SCSI, USB, IDE and PCI addresses.
.TP
\fB-dump \fIfilename\fB\fR
-Dump collected information into a file (SQLite database).
+Display output and dump collected information into a file (SQLite database).
.TP
\fB-class \fIclass\fB\fR
Only show the given class of hardware. \fIclass\fR can be found using \fBlshw -short\fR or \fBlshw -businfo\fR\&.
diff --git a/src/lshw.cc b/src/lshw.cc
index 5fc8ade..219a008 100644
--- a/src/lshw.cc
+++ b/src/lshw.cc
@@ -35,7 +35,7 @@ void usage(const char *progname)
fprintf(stderr, _("\t-X use graphical interface\n"));
fprintf(stderr, _("\noptions can be\n"));
#ifdef SQLITE
- fprintf(stderr, _("\t-dump OUTFILE save hardware tree to a file\n"));
+ fprintf(stderr, _("\t-dump filename displays output and dump collected information into a file (SQLite database)\n"));
#endif
fprintf(stderr, _("\t-class CLASS only show a certain class of hardware\n"));
fprintf(stderr, _("\t-C CLASS same as '-class CLASS'\n"));
++++++ lshw-modified-time.patch ++++++
>From d76f5c6bcb68ef1c5fabd84df9f6025ea1053b90 Mon Sep 17 00:00:00 2001
From: Seeteena Thoufeek <s1seetee(a)linux.vnet.ibm.com>
Date: Thu, 13 Jul 2017 14:18:08 +0530
Subject: [PATCH] Do not show modified time with -notime option
Exclude volatile attributes (timestamps) from lshw -notime output.
Signed-off-by: Seeteena Thoufeek <s1seetee(a)linux.vnet.ibm.com>
[Updated description and fixed detect_hfsx() - Vasant]
Signed-off-by: Vasant Hegde <hegdevasant(a)linux.vnet.ibm.com>
---
src/core/volumes.cc | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/core/volumes.cc b/src/core/volumes.cc
index 07a253b..456809a 100644
--- a/src/core/volumes.cc
+++ b/src/core/volumes.cc
@@ -651,8 +651,10 @@ static bool detect_hfsx(hwNode & n, source & s)
wtime = (time_t)(be_long(&vol->modifyDate) - HFSTIMEOFFSET);
n.setConfig("created", datetime(mkfstime, false)); // creation time uses local time
if (enabled("output:time"))
+ {
n.setConfig("checked", datetime(fscktime));
- n.setConfig("modified", datetime(wtime));
+ n.setConfig("modified", datetime(wtime));
+ }
return true;
}
@@ -742,7 +744,7 @@ static bool detect_hfs(hwNode & n, source & s)
n.setConfig("created", datetime(mkfstime - HFSTIMEOFFSET, false)); // all dates use local time
if(dumptime)
n.setConfig("backup", datetime(dumptime - HFSTIMEOFFSET, false));
- if(wtime)
+ if(wtime && enabled("output:time"))
n.setConfig("modified", datetime(wtime - HFSTIMEOFFSET, false));
return true;
++++++ lswh-logical-name-iface.patch ++++++
>From 85edb6a1a5734078a58bad21a5e6918e07f360bc Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4(a)linux.vnet.ibm.com>
Date: Tue, 30 Apr 2019 17:24:50 +0530
Subject: [PATCH] Display proper logical name of network device
This patch adds support to display proper logical name of
network devices.
Test results:
*-l-lan
description: Ethernet interface
physical id: 2
bus info: vio@30000002
logical name: /proc/device-tree/vdevice/l-lan@30000002
With patch:
*-l-lan
description: Ethernet interface
physical id: 2
bus info: vio@30000002
logical name: /proc/device-tree/vdevice/l-lan@30000002
logical name: eth0
Signed-off-by: Mamatha Inamdar <mamatha4(a)linux.vnet.ibm.com>
Signed-off-by: Shivaprasad G Bhat <sbhat(a)linux.ibm.com>
---
src/core/hw.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/core/hw.cc b/src/core/hw.cc
index f136383..4522c1a 100644
--- a/src/core/hw.cc
+++ b/src/core/hw.cc
@@ -1284,8 +1284,8 @@ void hwNode::merge(const hwNode & node)
This->handle = node.getHandle();
if (This->description == "")
This->description = node.getDescription();
- if (This->logicalnames.size() == 0)
- This->logicalnames = node.getLogicalNames();
+ for (unsigned int i = 0; i < node.This->logicalnames.size(); i++)
+ setLogicalName(node.This->logicalnames[i]);
if (This->businfo == "")
This->businfo = node.getBusInfo();
if (This->physid == "")
1
0
Hello community,
here is the log from the commit of package minikube for openSUSE:Factory checked in at 2019-05-02 19:21:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/minikube (Old)
and /work/SRC/openSUSE:Factory/.minikube.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "minikube"
Thu May 2 19:21:43 2019 rev:10 rq:700057 version:1.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/minikube/minikube.changes 2019-04-03 09:28:19.879824177 +0200
+++ /work/SRC/openSUSE:Factory/.minikube.new.5148/minikube.changes 2019-05-02 19:21:46.393839074 +0200
@@ -1,0 +2,30 @@
+Thu May 2 09:16:54 UTC 2019 - Panagiotis Georgiadis <pgeorgiadis(a)suse.com>
+
+- Update to 1.0.1
+ * Update default Kubernetes version to 1.14.1
+ * Add --download-only option to start command
+ * Assert that docker has started rather than explicitly restarting it
+ * Download ISO image before Docker images, as it's required first
+ * update-context is confusing with profiles
+ * BugFix: ExecRunner.Copy now parses permissions strings as octal
+ * Add user-friendly error messages for VBOX_THIRD_PARTY & HYPERV_NO_VSWITCH
+ * Don't enable kubelet at boot, for consistency with other components
+ * fix tunnel integration tests for driver None
+ * Reroute logs printed directly to stdout
+ * Systemd returns error on inactive, so allow that
+ * Add known issue: VirtualBox won't boot a 64bits VM when Hyper-V is activated
+ * Upgrade Docker, from 18.06.2-ce to 18.06.3-ce
+ * Use Reference, allow caching images with both Tag and Digest
+ * Added REGISTRY_STORAGE_DELETE_ENABLED environment variable for Registry addon
+ * Escape ‘%’ in console.OutStyle arguments
+ * Add port name to service struct used in minikube service
+ * Update Hyper-V daemons
+ * Avoid surfacing "error: no objects passed to apply" non-error from addon-manager
+ * Don't cache images when --vmdriver=none
+ * Enable CONFIG_NF_CONNTRACK_ZONES
+ * Fixed status checking with non-default apiserver-port.
+ * Escape systemd special chars in docker-env
+ * Add conformance test script
+ * #compdef must be the first line
+
+-------------------------------------------------------------------
Old:
----
v1.0.0.tar.gz
New:
----
v1.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ minikube.spec ++++++
--- /var/tmp/diff_new_pack.VvqhQM/_old 2019-05-02 19:21:53.673854192 +0200
+++ /var/tmp/diff_new_pack.VvqhQM/_new 2019-05-02 19:21:53.673854192 +0200
@@ -17,7 +17,7 @@
Name: minikube
-Version: 1.0.0
+Version: 1.0.1
Release: 0
Summary: Tool to run Kubernetes locally
License: Apache-2.0
++++++ v1.0.0.tar.gz -> v1.0.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/minikube/v1.0.0.tar.gz /work/SRC/openSUSE:Factory/.minikube.new.5148/v1.0.1.tar.gz differ: char 12, line 1
1
0
Hello community,
here is the log from the commit of package mvapich2 for openSUSE:Factory checked in at 2019-05-02 19:21:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mvapich2 (Old)
and /work/SRC/openSUSE:Factory/.mvapich2.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mvapich2"
Thu May 2 19:21:30 2019 rev:15 rq:700040 version:2.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/mvapich2/mvapich2.changes 2019-03-22 15:09:29.781384012 +0100
+++ /work/SRC/openSUSE:Factory/.mvapich2.new.5148/mvapich2.changes 2019-05-02 19:21:43.145832258 +0200
@@ -1,0 +2,6 @@
+Thu May 2 08:00:51 UTC 2019 - Nicolas Morey-Chaisemartin <nmoreychaisemartin(a)suse.com>
+
+- Add mvapich2-fix-double-free.patch to fix a segfault
+ when running on a machine with no RDMA hardware (bsc#1133797)
+
+-------------------------------------------------------------------
New:
----
mvapich2-fix-double-free.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mvapich2.spec ++++++
--- /var/tmp/diff_new_pack.vMHjzy/_old 2019-05-02 19:21:43.965833990 +0200
+++ /var/tmp/diff_new_pack.vMHjzy/_new 2019-05-02 19:21:43.965833990 +0200
@@ -167,6 +167,7 @@
# PATCH-FIX-UPSTREAM 0001-Drop-GCC-check.patch (bnc#1129421)
# It's been merged upstream, should be removed with the next release
Patch3: 0001-Drop-GCC-check.patch
+Patch4: mvapich2-fix-double-free.patch
Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -297,6 +298,7 @@
%patch0
%patch2
%patch3
+%patch4
cp /usr/share/automake*/config.* .
%build
++++++ mvapich2-fix-double-free.patch ++++++
commit 02b05116e1586422a933c4a8f6d4e4d29d4e9531
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin(a)suse.com>
Date: Thu May 2 09:56:40 2019 +0200
mvapich2 fix double free
Fix double free that causes a SEGV when mvapich2 fails to open
a rdma device
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin(a)suse.com>
diff --git src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
index 4366eb521fce..95d09efa75e3 100644
--- src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
+++ src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
@@ -707,8 +707,6 @@ int rdma_open_hca(struct mv2_MPIDI_CH3I_RDMA_Process_t *proc)
return mpi_errno;
fn_fail:
- /* Clean up before exit */
- ibv_free_device_list(dev_list);
goto fn_exit;
}
1
0
Hello community,
here is the log from the commit of package pmdk-convert for openSUSE:Factory checked in at 2019-05-02 19:21:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pmdk-convert (Old)
and /work/SRC/openSUSE:Factory/.pmdk-convert.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pmdk-convert"
Thu May 2 19:21:25 2019 rev:2 rq:700036 version:1.5.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/pmdk-convert/pmdk-convert.changes 2019-04-30 13:02:11.222138840 +0200
+++ /work/SRC/openSUSE:Factory/.pmdk-convert.new.5148/pmdk-convert.changes 2019-05-02 19:21:35.577816286 +0200
@@ -1,0 +2,12 @@
+Tue Apr 30 15:18:22 UTC 2019 - Nicolas Morey-Chaisemartin <nmoreychaisemartin(a)suse.com>
+
+- Reenable ClamAV
+- Strip nvml tarballs from tests that mess up with ClamAV results
+- Rename source tarball for more clarity
+
+-------------------------------------------------------------------
+Tue Apr 30 12:53:33 UTC 2019 - Nicolas Morey-Chaisemartin <nmoreychaisemartin(a)suse.com>
+
+- Disable ClamAV checks due to failures on test binaries in pmdk tarballs
+
+-------------------------------------------------------------------
Old:
----
1.5.1.tar.gz
New:
----
pmdk-convert-1.5.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pmdk-convert.spec ++++++
--- /var/tmp/diff_new_pack.Hs8FDG/_old 2019-05-02 19:21:36.385817991 +0200
+++ /var/tmp/diff_new_pack.Hs8FDG/_new 2019-05-02 19:21:36.385817991 +0200
@@ -1,7 +1,7 @@
#
# spec file for package pmdk-convert
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright 2016, Intel Corporation
#
# All modifications and additions to the file contributed by third parties
@@ -16,6 +16,7 @@
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
+
Name: pmdk-convert
Version: 1.5.1
Release: 0
@@ -23,7 +24,7 @@
License: BSD-3-Clause
Group: System/Base
Url: http://pmem.io/pmdk/
-Source: https://github.com/pmem/pmdk-convert/archive/%version.tar.gz
+Source: https://github.com/pmem/pmdk-convert/archive/%version.tar.gz#/%{name}-%{ver…
# Script to predownload the artifacts needed for building and add them for commit
Source999: download_artifacts.sh
@@ -59,6 +60,8 @@
%setup -q
# Copy And Extract pre downloaded nvml tarball
# This section is autogenerated by download_artifacts.sh
+# This copy/extract is needed to mimic a previous execution of
+# cmake so it will not try to download those file from the network.
# DO NOT MODIFY it nor the START/END markers
## START_NVML_SETUP
cp %{S:1} .
@@ -77,6 +80,8 @@
## END_NVML_SETUP
%build
+# For some reason cmake fails to extract the nvml tarball if LANG is not UTF8
+export LANG=en_US.UTF-8
# Enable RPATH as the build system itself requires it
%cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH:BOOL=OFF
%cmake_build
@@ -92,5 +97,4 @@
%license LICENSE
%doc ChangeLog
-
%changelog
++++++ download_artifacts.sh ++++++
--- /var/tmp/diff_new_pack.Hs8FDG/_old 2019-05-02 19:21:36.409818043 +0200
+++ /var/tmp/diff_new_pack.Hs8FDG/_new 2019-05-02 19:21:36.409818043 +0200
@@ -1,14 +1,14 @@
#!/bin/bash -ex
rm -f nvml-[0-9.]*.tar.gz
VERSION=$(rpmspec --parse pmdk-convert.spec | egrep '^Version' | awk '{ print $NF}')
-tar -xf $VERSION.tar.gz
+tar -xf pmdk-convert-$VERSION.tar.gz
cd pmdk-convert-$VERSION
rm -Rf build
mkdir -p build
cd build
cmake .. || true
cd ..
-mv nvml-[0-9.]*.tar.gz ..
+cp nvml-[0-9.]*.tar.gz ..
cd ../
FILELIST=(nvml-[0-9.]*.tar.gz)
osc add "${FILELIST[@]}"
@@ -18,6 +18,15 @@
SETUP=""
i=1
for file in "${FILELIST[@]}"; do
+ # Remove tests bins from the tarball as they may contain binaries that mess up ClamAV
+ dir=$(tar -tf $file | head -n 1 | awk '{ print $NF}')
+ if [ -d $dir ]; then
+ rm -Rf $dir
+ fi
+ tar --same-permissions -xf $file
+ find $dir/src/test -name "*.bin" -exec rm {} \;
+ rm -f $file
+ tar --owner=root --group=root -czf $file $dir
SOURCES+="Source$i: $file\n"
SETUP+="cp %{S:$i} .\ntar -xf %{S:$i}\n"
i=$(($i + 1))
++++++ nvml-1.0.tar.gz ++++++
Binary files old/pmdk-1.0/src/test/arch_flags/elf.bin and new/pmdk-1.0/src/test/arch_flags/elf.bin differ
Binary files old/pmdk-1.0/src/test/arch_flags/elf_err_e_machine.bin and new/pmdk-1.0/src/test/arch_flags/elf_err_e_machine.bin differ
Binary files old/pmdk-1.0/src/test/arch_flags/elf_err_ei_class.bin and new/pmdk-1.0/src/test/arch_flags/elf_err_ei_class.bin differ
Binary files old/pmdk-1.0/src/test/arch_flags/elf_err_ei_data.bin and new/pmdk-1.0/src/test/arch_flags/elf_err_ei_data.bin differ
Binary files old/pmdk-1.0/src/test/arch_flags/elf_err_mag.bin and new/pmdk-1.0/src/test/arch_flags/elf_err_mag.bin differ
Binary files old/pmdk-1.0/src/test/arch_flags/elf_err_small.bin and new/pmdk-1.0/src/test/arch_flags/elf_err_small.bin differ
++++++ nvml-1.1.tar.gz ++++++
Binary files old/pmdk-1.1/src/test/arch_flags/elf.bin and new/pmdk-1.1/src/test/arch_flags/elf.bin differ
Binary files old/pmdk-1.1/src/test/arch_flags/elf_err_e_machine.bin and new/pmdk-1.1/src/test/arch_flags/elf_err_e_machine.bin differ
Binary files old/pmdk-1.1/src/test/arch_flags/elf_err_ei_class.bin and new/pmdk-1.1/src/test/arch_flags/elf_err_ei_class.bin differ
Binary files old/pmdk-1.1/src/test/arch_flags/elf_err_ei_data.bin and new/pmdk-1.1/src/test/arch_flags/elf_err_ei_data.bin differ
Binary files old/pmdk-1.1/src/test/arch_flags/elf_err_mag.bin and new/pmdk-1.1/src/test/arch_flags/elf_err_mag.bin differ
Binary files old/pmdk-1.1/src/test/arch_flags/elf_err_small.bin and new/pmdk-1.1/src/test/arch_flags/elf_err_small.bin differ
++++++ nvml-1.2.3.tar.gz ++++++
Binary files old/pmdk-1.2.3/src/test/arch_flags/elf.bin and new/pmdk-1.2.3/src/test/arch_flags/elf.bin differ
Binary files old/pmdk-1.2.3/src/test/arch_flags/elf_err_e_machine.bin and new/pmdk-1.2.3/src/test/arch_flags/elf_err_e_machine.bin differ
Binary files old/pmdk-1.2.3/src/test/arch_flags/elf_err_ei_class.bin and new/pmdk-1.2.3/src/test/arch_flags/elf_err_ei_class.bin differ
Binary files old/pmdk-1.2.3/src/test/arch_flags/elf_err_ei_data.bin and new/pmdk-1.2.3/src/test/arch_flags/elf_err_ei_data.bin differ
Binary files old/pmdk-1.2.3/src/test/arch_flags/elf_err_mag.bin and new/pmdk-1.2.3/src/test/arch_flags/elf_err_mag.bin differ
Binary files old/pmdk-1.2.3/src/test/arch_flags/elf_err_small.bin and new/pmdk-1.2.3/src/test/arch_flags/elf_err_small.bin differ
++++++ nvml-1.3.1.tar.gz ++++++
Binary files old/pmdk-1.3.1/src/test/arch_flags/elf.bin and new/pmdk-1.3.1/src/test/arch_flags/elf.bin differ
Binary files old/pmdk-1.3.1/src/test/arch_flags/elf_err_e_machine.bin and new/pmdk-1.3.1/src/test/arch_flags/elf_err_e_machine.bin differ
Binary files old/pmdk-1.3.1/src/test/arch_flags/elf_err_ei_class.bin and new/pmdk-1.3.1/src/test/arch_flags/elf_err_ei_class.bin differ
Binary files old/pmdk-1.3.1/src/test/arch_flags/elf_err_ei_data.bin and new/pmdk-1.3.1/src/test/arch_flags/elf_err_ei_data.bin differ
Binary files old/pmdk-1.3.1/src/test/arch_flags/elf_err_mag.bin and new/pmdk-1.3.1/src/test/arch_flags/elf_err_mag.bin differ
Binary files old/pmdk-1.3.1/src/test/arch_flags/elf_err_small.bin and new/pmdk-1.3.1/src/test/arch_flags/elf_err_small.bin differ
++++++ nvml-1.4.2.tar.gz ++++++
++++++ nvml-1.5.1.tar.gz ++++++
1
0