For me the most used/useful function of Basket Note Pads is to be able to lock a basket with a password/passphrase (where
I can put personal items, secrets, some login credentials, etc.).
After upgrading my Mageia 3 to Mageia 4 I could not open in Basket Note Pads a locked basket (luckily before upgrading I
had exported its contents after having similar problems from Mag2 to Mag3) and I also could not remove that locked
basket. Then I found the solution to remove it in the source code (I had to remove the hidden file
/home/vatbier/kde4/share/apps/basket/baskets/basket20/.basket).
But then I noticed that in Mageia 4 entering the password/passphrase and confirming it has to happen for every file
that's in the directory of the basket:so for each notexx.html, .basket and the eventual .basket~ (left behind from
editing .basket with vi).
Also when unlocking an encrypted basket the passphrase was also asked for all files of the directory of the basket.
The source of Basket Note Pads hadn't changed since Mageia 3 and the dialog to enter the passphrase is called pinentry-
qt4 (in Mageia 3 I remembered that dialog was something else).
I noticed that every time when I clicked on a note of an encrypted basket that I had to re-enter the passphrase for all
files of the directory of the basket.
And if I then clicked on another basket then again I had to enter passphrase for all files of the encrypted basket so I
guessed that everytime you touch or leave an encrypted basket everything of it gets re-saved.
I downloaded basket-1.81-5.mga4.src.rpm and extracted it with mc.
With vi(m) I looked/stumbled through the source files (most of it I can not understand):
I went from bnpview.cpp at BNPView::password() to
password.cpp at PasswordDlg::type() to
PasswordEncryption in basketview.cpp at BasketView::setProtection
from where I went to BasketView::saveAgain() where I found "Re-encrypt basket file" and "Re-encrypt every note files
recursively"
which led to BasketView::save() where a QDomDocument with basket and notes gets written to disk
which led to BasketView::saveToFile
where I saw
m_gpg->setText(i18n("Please assign a password to the basket <b>%1</b>:", basketName()), true); // Used when defining
a new password
success = m_gpg->encrypt(array, length, &tmp, key)
(but that "Please assign a password..." you don't see in the pinentry-qt4 dialog)
and from there I found
m_gpg = new KGpgMe();
which led to kgpgme.cpp at KGpgMe::encrypt where I saw several "gpgme" commando's like gpgme_op_encrypt
Then searching in rpmdrake for "gpgme" I found two installed packages:
libgpgme++2
libgpgme11
I then downloaded the Mageia 3 versions for these packages
When trying "urpme libgpgme++2" I saw in the warning list of dependable packages also dependency libqgpgme.so.1 so I also
downloaded the Mageia 3 version for libqgpgme1.
Then i uninstalled one of them:
rpm -e --nodeps libgpgme++2
and installed the Mag3 version:
urpmi libgpgme++2-4.10.2-4.mga3.i586.rpm
Basket Note Pads still had multiple passphrase bug
so I re-installed the Mag4 version again by:
rpm -e --nodeps libgpgme++2
urpmi libgpgme++2
Then I tried to uninstall another:
urpme libqgpgme1 (to look at the dependencies)
rpm -e --nodeps libqgpgme1
urpmi libqgpgme1-4.10.2-4.mga3.i586.rpm
Also here in Basket Note Pads still the bug
rpm -e --nodeps libqgpgme1
urpmi libqgpgme1
Then I tried the last one:
urpme libgpgme11
this one has 41 dependencies: akregator, basket, kaddressbook, kalarm, kdepim4, kjots, kleopatra, kmail, knode, knotes,
kontact, korganizer, ktimetracker, seahorse, ...
rpm -e --nodeps libgpgme11
urpmi libgpgme11-1.3.2-2.mga3.i586.rpm
AND SUCCESS:
Basket Note Pads now shows a different dialog to add a password to a basket called "Please enter a password" with "Please
assign a password to the basket ttt"
and it doesnt ask to re-enter again as a confirmation and it only ask it once for the whole basket!
And at unlocking the basket also only once the password is asked!
Since Mageia 3 I do not longer use kmail but use the webmail of my ISP. But what other programs might break now that I'm
using an older version of libgpgme11 ?
And every time there are updates I have to unselect libgpgme11-1.4.3-2.mga4 or it would install over the mga3 version.
So the newer version of libgpgme11 of Mag4 (together with its use of pinentry-qt4) breaks usage of encrypted baskets.
I've made a bug report at bugs.kde.org https://bugs.kde.org/show_bug.cgi?id=337481 (I created this bug report as I cannot
re-open bug 155079).
libgpgme11-1.4.3-2.mga4 triggers bug in Basket Note Pads.
older version of Mageia 3 libgpgme11-1.3.2-2.mga3.i586.rpm makes Basket Note Pads work again in Mageia 4.