Giter VIP home page Giter VIP logo

mikelolasagasti / revelation Goto Github PK

View Code? Open in Web Editor NEW
55.0 12.0 24.0 3.68 MB

Revelation is a password manager for the GNOME desktop, released under the GNU GPL license. It stores all your accounts and passwords in a single, secure place, and gives you access to it through a user-friendly graphical interface.

Home Page: https://revelation.olasagasti.info

License: GNU General Public License v2.0

Python 98.49% Meson 1.51%
password-manager python gnome gtk3 hacktoberfest

revelation's Introduction

revelation-logo Revelation

Revelation is a simple password manager for the GNOME 3 desktop, released under the GNU GPL license.

It stores accounts and passwords in a single, secure place, and gives access to them through a user-friendly graphical interface.

The project website is located at https://revelation.olasagasti.info.

Install

  • Fedora
dnf install revelation
  • Flatpak
flatpak install flathub info.olasagasti.revelation

Build

Revelation depends on the following software:

  • GTK3-3.22
  • PyGObject
  • Python 3 (currently working on Python 3.7)
  • pycryptodomex
  • libpwquality

Additional packages required on Ubuntu 22.04: gobject-introspection, libgirepository1.0-dev

To build revelation first cd to a suitable location and run:

git clone https://github.com/mikelolasagasti/revelation.git

Build with Meson

Navigate to the directory where revelation source has been downloaded and type these commands:

$ cd revelation
$ meson setup --prefix=$HOME/.local _build
$ meson install -C _build

Meson will build revelation in the _build directory, and install it in .local in your home directory, which is the best option for local installs in Debian or Ubuntu systems.

You can choose whatever prefix you like, like --prefix=$HOME/install, but because the installation directory may be non-standard, to run revelation you will have to define some environment variables. In this example:

$ export XDG_DATA_DIRS=$HOME/install/share:$XDG_DATA_DIRS
$ export PYTHONPATH=$HOME/install/lib/python3.8/site-packages

and then run revelation:

$ $HOME/.local/bin/revelation

revelation's People

Contributors

abeaumont avatar cweiske avatar dplanella avatar eclipseo avatar erikgrinaker avatar gbm19 avatar gpoo avatar humang33k avatar jakobwesthoff avatar jayofdoom avatar kianmeng avatar mafgh avatar mailaender avatar mbaldessari avatar mikelolasagasti avatar pauldokas avatar pypingou avatar reekenx avatar skion avatar thomasjenkins avatar tmzullinger avatar tristanheaven avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

revelation's Issues

Building git master fails: msgfmt: cannot locate ITS rules

Overview

Compiling current git master (commit 29cbbd1) on Ubuntu 20.04 fails with an error:

msgfmt: cannot locate ITS rules for ../data/info.olasagasti.revelation.metainfo.xml.in

Steps to Reproduce

  1. Checkout git
  2. Install dependencies
  3. Run the setup: meson setup --prefix=$HOME/.local _build
  4. Run compilation/installation: meson install -C _build

Expected Behavior

No error

Actual Behavior

$ LC_ALL=C meson install -C _build
ninja: Entering directory `_build'
[1/1] Generating info.olasagasti.revelation.metainfo.xml_data_merge with a custom command.
FAILED: data/info.olasagasti.revelation.metainfo.xml 
/usr/bin/meson --internal msgfmthelper ../data/info.olasagasti.revelation.metainfo.xml.in data/info.olasagasti.revelation.metainfo.xml xml /home/cweiske/compilethings/revelation/po
msgfmt: cannot locate ITS rules for ../data/info.olasagasti.revelation.metainfo.xml.in
ninja: build stopped: subcommand failed.
Could not rebuild _build

Context

Revision: 29cbbd1
Meson: 0.53.2

$ meson setup --prefix=$HOME/.local _build
The Meson build system
Version: 0.53.2
Source dir: /home/cweiske/compilethings/revelation
Build dir: /home/cweiske/compilethings/revelation/_build
Build type: native build
Project name: revelation
Project version: 0.5.4
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program python3 (Cryptodome, pwquality) found: YES (/usr/bin/python3) modules: Cryptodome, pwquality
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Run-time dependency gobject-introspection-1.0 found: YES 1.64.1
Run-time dependency gtk+-3.0 found: YES 3.24.20
Run-time dependency glib-2.0 found: YES 2.64.6
Run-time dependency pygobject-3.0 found: YES 3.36.0
Configuring config.py using configuration
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Configuring info.olasagasti.revelation.desktop.in using configuration
Program desktop-file-validate found: YES (/usr/bin/desktop-file-validate)
Program appstream-util found: YES (/usr/bin/appstream-util)
Program meson_post_install.py found: YES (/usr/bin/python3 /home/cweiske/compilethings/revelation/meson_post_install.py)
Message: 
revelation 0.5.4 configure summary
============================

pythondir.: /home/cweiske/.local/lib/python3.8/site-packages/revelation
bindir....: /home/cweiske/.local/bin
datadir...: /home/cweiske/.local/share
pkgdatadir: /home/cweiske/.local/share/revelation
Build targets in project: 6

Found ninja-1.10.0 at /usr/bin/ninja

Operating System: Ubuntu 20.04
Desktop Env: Gnome Shell


Maybe the meson version is too old?

Improper escape on saving of auto startup filename

Select a file that has a space anywhere in the file path then set revelation to auto load that file. On startup, revelation will fail to open the file because it has turned the space into a %20 and does not tun it back into a space prior to trying to opening the file.

The work around is to use gconfeditor to manually turn the %20 into a space under the

/apps/revelation/file/autoload_file

entry

Crash when right-click on entry details

I have installed Revelation commit 3f5813a into a custom prefix (see #29, just for clarity, I do not think custom prefix is problem here).

When I select an entry in the list, I see details on right-hand pane (name, username and so on). When I right-click in this pane
to get a context menu on the entry, Revelation crashes, showing following in a crash dialog:

Traceback (most recent call last):
  File "/opt/revelation/lib/python3.8/site-packages/revelation/ui.py", line 533, in __cb_button_press
    menu.popup(None, None, None, data.button, data.time)
TypeError: popup() missing 1 required positional argument: 'activate_time'

Moving multiple entries gives error

Moving multiple entries using DND causes the following error:

  File "/usr/local/lib64/python3.8/site-packages/revelation/ui.py", line 1098, in __cb_drag_motion
    self.drag_begin( (( "revelation/treerow", Gtk.TargetFlags.SAME_APP | Gtk.TargetFlags.SAME_WIDGET, 0), ), Gdk.DragAction.MOVE, userdata.button, userdata)
TypeError: argument targets: Expected Gtk.TargetList, but got tuple

Export database

Hello!
I have a lot of keys in Revelation, since it doesn't work under python3 I need to migrate to another key manager, anything will do.

I already tried to export in all Revelation formats, but I can't get it to work in different managers (Bitwarden, keepass).

What do you recommend? Thanks

[Regression] Cannot import a file recently exported using Revelation

I expored a file to CSV, and when I tried to import it back I got the following trace:

Traceback (most recent call last):
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/bin/revelation", line 243, in <lambda>
    action.connect("activate",      lambda w,k: self.file_import())
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/bin/revelation", line 1512, in file_import
    entrystore = self.__file_load(file, None, datafile)
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/bin/revelation", line 1112, in __file_load
    result = datafile.load(file, password, lambda: dialog.PasswordOpen(self.window, os.path.basename(file)).run())
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/io.py", line 104, in load
    self.__handler = datahandler.detect_handler(data)()
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/datahandler/__init__.py", line 69, in detect_handler
    if handler().detect(input) == True:
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/datahandler/rvl.py", line 587, in detect
    self.check(input)
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/datahandler/rvl.py", line 569, in check
    sbuf = StringIO(input)
TypeError: initial_value must be str or None, not bytes

instructions for compiling from source on Ubuntu/Debian

Until #19 is fixed, it would be useful to have instructions on how to install on Debian/Ubuntu from sources, ideally in $HOME if the user prefers that (possibly running from the source dir). I still didn't get it working (cf #26), but something along the lines of

sudo apt install make git python-gi-dev python3-crypto python3-pwquality # is this all?
git clone https://github.com/mikelolasagasti/revelation.git revelation-src
cd revelation-src
./autogen.sh
./configure
make

[flatpak] Can't save password-file in Ubuntu 20.04

Overview

Thanks for developing this again, i had it running in an 18.04 VM and found it in the official repos of Ubuntu this week.
I copied the password-file from the VM to my personal folder and started it and most works really fine, but i can't save any changes to my password-file.

Steps to Reproduce

  1. open revelation in Ubuntu 20.04
  2. open a password file (in my case it's simply /home/daniel/password)
  3. it does not open the "real" file, but something like /run/user/1000/doc/89364593/password is opened
  4. try to safe any changes to your password file
  5. error message appears (roughly translated from German): file can not be saved, check your rights

Expected Behavior

saving changes should be possible

Actual Behavior

in all Versions before Ubuntu 20.04 the actual password file was opened and could be saved without problems, i'm not sure, if the problem comes from using /run/user/.../file, but this is my first guess...

there is also another problem with opening this /run/user/.../file:
if you set it in the preferences as "open at start" it will not be found after you restarted your system

Context

Revelation - 0.5.4 (installed via official repo)

Operating System: Ubuntu 20.04.1
Desktop Env: Gnome 3.36.3
Window Manager: X11

Error to export to Figaro

When I tried to export a file to Figaro, I get the following trace:

Traceback (most recent call last):
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/bin/revelation", line 239, in <lambda>
    action.connect("activate",      lambda w,k: self.file_export())
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/bin/revelation", line 1495, in file_export
    datafile.save(self.entrystore, file, password)
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/io.py", line 123, in save
    file_write(file, self.__handler.export_data(entrystore, password))
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/datahandler/fpm.py", line 153, in export_data
    password = MD5.new(salt + password).digest()
  File "/usr/lib/python3/dist-packages/Cryptodome/Hash/MD5.py", line 158, in new
    return MD5Hash().new(data)
  File "/usr/lib/python3/dist-packages/Cryptodome/Hash/MD5.py", line 145, in new
    return MD5Hash(data)
  File "/usr/lib/python3/dist-packages/Cryptodome/Hash/MD5.py", line 81, in __init__
    self.update(data)
  File "/usr/lib/python3/dist-packages/Cryptodome/Hash/MD5.py", line 91, in update
    c_uint8_ptr(data),
  File "/usr/lib/python3/dist-packages/Cryptodome/Util/_raw_api.py", line 196, in c_uint8_ptr
    raise TypeError("Object type %s cannot be passed to C code" % type(data))
TypeError: Object type <class 'str'> cannot be passed to C code

Fails to export to CSV and HTML

Exporting a Revelation file to HTML or CSV crash at entrylist.sort:

For HTML:

  File "/usr/local/bin/revelation", line 235, in <lambda>
    action.connect("activate",      lambda w,k: self.file_export())
  File "/usr/local/bin/revelation", line 1457, in file_export
    datafile.save(self.entrystore, file, password)
  File "/usr/local/lib64/python3.8/site-packages/revelation/io.py", line 124, in save
    file_write(file, self.__handler.export_data(entrystore, password))
  File "/usr/local/lib64/python3.8/site-packages/revelation/datahandler/xhtml.py", line 562, in export_data
    xhtml += self.__generate_sidebar(entrystore)
  File "/usr/local/lib64/python3.8/site-packages/revelation/datahandler/xhtml.py", line 433, in __generate_sidebar
    xhtml += self.__generate_sidebar_accountlist(entrystore)
  File "/usr/local/lib64/python3.8/site-packages/revelation/datahandler/xhtml.py", line 473, in __generate_sidebar_accountlist
    entrylist.sort(lambda x,y: cmp(x.name.lower(), y.name.lower()))
TypeError: sort() takes no positional arguments

For CSV:

  File "/usr/local/bin/revelation", line 235, in <lambda>
    action.connect("activate",      lambda w,k: self.file_export())
  File "/usr/local/bin/revelation", line 1457, in file_export
    datafile.save(self.entrystore, file, password)
  File "/usr/local/lib64/python3.8/site-packages/revelation/io.py", line 124, in save
    file_write(file, self.__handler.export_data(entrystore, password))
  File "/usr/local/lib64/python3.8/site-packages/revelation/datahandler/csvfile.py", line 37, in export_data
    entries.sort(lambda x,y: cmp(x.name.lower(), y.name.lower()))
TypeError: sort() takes no positional arguments

Needs to be adapted to Python3

Can not select text in search input

Overview

Ctrl+A not select text in search input.

Steps to Reproduce

  1. Start revelation
  2. Open a file containing entries
  3. Open the search bar
  4. Enter a search text
  5. Use Ctrl+A in order to select text
  6. Password entries are selected instead of search input containt

Expected Behavior

  1. Start revelation
  2. Open a file containing entries
  3. Open the search bar
  4. Enter a search text
  5. Use Ctrl+A in order to select text
  6. All text in search input is select

Actual Behavior

Password entries are selected instead of search input containt

Context

Revelation - 0.5.4-2

Operating System: Debian (testing)
Desktop Env: I3
Windowing System: X11

Exception when file cannot be found

Traceback (most recent call last):
  File "/usr/bin/revelation", line 1833, in <module>
    app.run()
  File "/usr/bin/revelation", line 1591, in run
    self.file_open(io.file_normpath(file))
  File "/usr/bin/revelation", line 1481, in file_open
    entrystore = self.__file_load(file, password)
  File "/usr/bin/revelation", line 1019, in __file_load
    return result
UnboundLocalError: local variable 'result' referenced before assignment

Consistent Stack Track

658 items in the store. Divided into folders based on usage, 95% are passwords for websites, the remaining 5% are credit card info.

My entry for my Github credentials, causes the following stack trace EVERY time. It doesn't matter if I try it right after opening
revelation or if I've been using it for awhile.

Any chance, that this is related the contents of the password? I haven't found another entry that will generate said stack trace, but once I trip the stack trace, everyone after it will generate the stack trace if I continue.

Traceback (most recent call last):
File "/usr/local/bin/revelation", line 774, in __cb_tree_doubleclick
self.entry_goto((iter,))
File "/usr/local/bin/revelation", line 1349, in entry_goto
util.execute_child(command)
File "/usr/local/lib/python3.8/site-packages/revelation/util.py", line 184, in execute_child
items = shlex.split(command.encode("iso-8859-1"), 0)
File "/usr/lib/python3.8/shlex.py", line 311, in split
return list(lex)
File "/usr/lib/python3.8/shlex.py", line 300, in next
token = self.get_token()
File "/usr/lib/python3.8/shlex.py", line 109, in get_token
raw = self.read_token()
File "/usr/lib/python3.8/shlex.py", line 140, in read_token
nextchar = self.instream.read(1)
AttributeError: 'bytes' object has no attribute 'read'

Anything else I can provide to help ?

Ubuntu gives ModuleNotFoundError error with module revelation

Launching Revelation in Ubuntu-20.04 gives the following error:

  File "/usr/local/bin/revelation", line 30, in <module>
    from revelation import config, data, datahandler, dialog, entry, io, ui, util
ModuleNotFoundError: No module named 'revelation'

Adding a PYTHONPATH makes it work:

PYTHONPATH=/usr/local/lib/python3.8/site-packages/ revelation

Implement and document flexible CSV import & merge feature (for previously stranded Revelation users)

Context

I was a Revelation user for 15 years, and I had over 500 passwords/credentials in it. There was nothing that matched Revelation in terms of usability and the ability to have per-password-type UIs that made sense.

When Revelation was dropped from major distros in 2019 during the great Python2 purge, and I could no longer use the app, and since all the other apps sucked (and/or couldn't handle anything but CSV as an interchange format anyway), I had no choice but to reluctantly migrate to... a big spreadsheet. So I exported from Revelation to CSV, and created a password-protected OpenDocument spreadsheet (ODS) file with a couple of tabs to try to categorize the madness.

Fast-forward to 2021, I'm super happy to discover that Revelation has been being revived (big thanks! I was not expecting that to happen when it had been abandoned for years by the original author)... but I'm stuck with my data now being in a spreadsheet, and obviously having diverged since then :/

Request

I'd like to be able to somehow re-export that as a CSV and reimport into the new Revelation, preserving/merging the existing data. I still have the old revelation data file from 2019, but my data in the spreadsheet obviously diverged quite a bit in the meantime.

So for me to be able to use Revelation again, I'm thinking it would need to have:

  • CSV (if not ODS) import support, and either some UI to "map" columns to the particular fields of each password type, and to say "this batch of passwords I'm importing now are of this type of password)
  • A well-documented specification of what Revelation expects as its CSV import format's syntax (ex: what are column separators/delimiters, do strings need to be encased in a character like ", if there needs to be a particular column order, etc.), as currently I have no idea what would be an "acceptable" CSV file to Revelation.
  • Some sort of duplicate detection? (maybe based on the "name" of the entry and the last-modified timestamp and a combination of factors?)
  • Ideally support for date parsing to retain the old last modified dates (yep, I still have that data in a column in my spreadsheet!)
  • Ideally support reimporting into the correct folders using folder names specified in one of the columns?

I think this would be useful not just for Revelation expats, but also for any CSV password import in general.

Some icons are missing

The following icons are missing:

File->Change Password, Lock, Import and Export
View->Password Generator, Password Checker

[Regression] Error to export to My Password Safe

Similar to issue #62 but the trace is:

Traceback (most recent call last):
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/bin/revelation", line 239, in <lambda>
    action.connect("activate",      lambda w,k: self.file_export())
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/bin/revelation", line 1495, in file_export
    datafile.save(self.entrystore, file, password)
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/io.py", line 123, in save
    file_write(file, self.__handler.export_data(entrystore, password))
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/datahandler/pwsafe.py", line 574, in export_data
    edata += create_field(uuid, FIELDTYPE_UUID)
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/datahandler/pwsafe.py", line 333, in create_field
    field = struct.pack("ii", len(value), type) + value
TypeError: can't concat str to bytes

quirk in 0.5.1

In the previous python 2 version, when using the dialog to select the file to open on startup, there was a text widget that allowed for typing in the name. I used that ability extensively as I name all my vault files .name . think .rev_work, .rev_personal, .rev_consulting, etc ( this allows me to keep the files less than 1000 entries each ).

In the 0.5.1 version, I'm not finding a way to do that. The selection is strictly point-n-click, which does NOT show .files

Thoughts?

Autoload function doesn't work when filename contains accented characters

When starting Revelation, the autoload function bails out via:

dialog.Error(self, _('Unable to open file'), _('The file \'%s\' could not be opened. Make sure that the file exists, and that you have permissions to open it.') % file).run()

https://github.com/mikelolasagasti/revelation/blob/master/src/revelation.py#L1012

The file name shown in the dialog seems to have URL-encoded the accented characters, and hence cannot open the file.

I suspect the problem is related to how the autoload filename is stored or retrieved from GConf.

can't build with meson

Following README.md on master, I tried to build, getting

~/src/revelation$ meson configure --prefix=$HOME/install _build
Meson configurator encountered an error:

ERROR: Directory /home/tamas/src/revelation/_build is neither a Meson build directory nor a project source directory.

Revelation - master
Revision: e19552d

Operating System: Ubuntu 20.10
Desktop Env: XFCE
Windowing System: X11

Python 3 ?

With the imminent demise of python2 .. anyone working on updating to python 3 ?

Error when import GPass-0.5.1 password file ( .gps)

Overview

Revelation tries to import a GPass-0.5.1 file ( .gps), it accepts the file's password, but then shows an "Unkown Error"
Meanwhile the .gps file can be successfully imported into passafe manager using its passafe-import-gpass utility

Steps to Reproduce

import a Gpass-0.5.1 gps file

Expected Behavior

Passwords imported.

Actual Behavior

Unknown error

An unknown error occured. 
Please report the text below to the Revelation developers, along with what you were doing that may have caused the error. 
You may attempt to continue running Revelation, but it may behave unexpectedly.

Traceback (most recent call last):
  File "/usr/bin/revelation", line 243, in <lambda>
    action.connect("activate",      lambda w,k: self.file_import())
  File "/usr/bin/revelation", line 1512, in file_import
    entrystore = self.__file_load(file, None, datafile)
  File "/usr/bin/revelation", line 1112, in __file_load
    result = datafile.load(file, password, lambda: dialog.PasswordOpen(self.window, os.path.basename(file)).run())
  File "/usr/lib/python3.8/site-packages/revelation/io.py", line 111, in load
    entrystore = self.__handler.import_data(data, password)
  File "/usr/lib/python3.8/site-packages/revelation/datahandler/gpass.py", line 349, in import_data
    plaintext = decrypt(input, password, "GPassFile version 1.1.0")
  File "/usr/lib/python3.8/site-packages/revelation/datahandler/gpass.py", line 67, in decrypt
    return plaintext.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 47: invalid start byte

Context

Revelation - 0.5.4

Operating System: Gentoo
Desktop Env: Openbox
Windowing System: X11

Error SSH on Ubuntu 20.04

I'm compile 0.5.0 version, it's run okay, but when a try go to ssh i got error

Traceback (most recent call last):
File "/usr/local/bin/revelation", line 152, in
action.connect("activate", lambda w,k: self.entry_goto(self.tree.get_selected()))
File "/usr/local/bin/revelation", line 1352, in entry_goto
util.execute_child(command)
File "/home/dementor/.local/lib/python3.8/site-packages/revelation/util.py", line 184, in execute_child
items = shlex.split(command.encode("iso-8859-1"), 0)
File "/usr/lib/python3.8/shlex.py", line 311, in split
return list(lex)
File "/usr/lib/python3.8/shlex.py", line 300, in next
token = self.get_token()
File "/usr/lib/python3.8/shlex.py", line 109, in get_token
raw = self.read_token()
File "/usr/lib/python3.8/shlex.py", line 140, in read_token
nextchar = self.instream.read(1)
AttributeError: 'bytes' object has no attribute 'read'

Ubuntu 20.04
Python3.8

building a rpm update-mime-database permissions

First up , thanks for the new release, it is much apreciated.

I am attempting to make a rpm spec file for revelation and running into a permissions issue which I think is caused by /usr/bin/update-mime-database attempting to use the system version of /usr/share/mime rather than the one in the RPM BUILDROOT.

I have attempted passing --datadir %{buildroot} and --datarootdir %{buildroot} to %configure but that didnt work either. If anyone can lend a hand as to the correct method here it would be apreciated.

make[3]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/home/hughest/rpmbuild/BUILDROOT/revelation-0.5.0-1.fc32.x86_64/usr/share/applications'
 /usr/bin/install -p -m 644 revelation.desktop '/home/hughest/rpmbuild/BUILDROOT/revelation-0.5.0-1.fc32.x86_64/usr/share/applications'
 /usr/bin/mkdir -p '/home/hughest/rpmbuild/BUILDROOT/revelation-0.5.0-1.fc32.x86_64/usr/share/mime/packages'
 /usr/bin/install -p -m 644 revelation.xml '/home/hughest/rpmbuild/BUILDROOT/revelation-0.5.0-1.fc32.x86_64/usr/share/mime/packages'
/usr/bin/make  install-data-hook
make[4]: Entering directory '/home/hughest/rpmbuild/BUILD/revelation-0.5.0/data/mime'
/usr/bin/update-mime-database "/usr/share/mime"
I/O error : Permission denied
I/O error : Permission denied
Failed to write XML file; For permission problems, try rerunning as root
make[4]: *** [Makefile:546: install-data-hook] Error 1
make[4]: Leaving directory '/home/hughest/rpmbuild/BUILD/revelation-0.5.0/data/mime'
make[3]: *** [Makefile:479: install-data-am] Error 2
make[3]: Leaving directory '/home/hughest/rpmbuild/BUILD/revelation-0.5.0/data/mime'
make[2]: *** [Makefile:432: install-am] Error 2
make[2]: Leaving directory '/home/hughest/rpmbuild/BUILD/revelation-0.5.0/data/mime'
make[1]: *** [Makefile:421: install-recursive] Error 1
make[1]: Leaving directory '/home/hughest/rpmbuild/BUILD/revelation-0.5.0/data'
make: *** [Makefile:393: install-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.JhIVAE (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.JhIVAE (%install)

This is the contents of the spec file.

Name:           revelation
Version:        0.5.0
Release:        1%{?dist}
Summary:        Revelation is a password manager for the GNOME desktop.
License:        GPL-2.0
URL:            https://revelation.olasagasti.info
Source0:        revelation-0.5.0.tar.xz

BuildRequires:  python3-gobject-devel
Requires:       python3-gobject

%description
Revelation is a password manager for the GNOME desktop, released under the GNU
GPL license. It stores all your accounts and passwords in a single, secure
place, and gives you access to it through a user-friendly graphical interface. 

%prep
%autosetup


%build
%configure
%make_build


%install
rm -rf $RPM_BUILD_ROOT
%make_install


%files
%license COPYING
%doc docs



%changelog
- 

Error when opening file from that doesn't exist from cli

Running $ revelation file_does_not_exist gives an error followed by a traceback:

  File "/usr/local/bin/revelation", line 102, in do_activate
    self.file_open(io.file_normpath(urllib.parse.unquote(file)))
  File "/usr/local/bin/revelation", line 1587, in file_open
    entrystore = self.__file_load(file, password)
  File "/usr/local/bin/revelation", line 1124, in __file_load
    return result
UnboundLocalError: local variable 'result' referenced before assignment

'Close' button quits

Overview

In the file menu there is a Close and a Quit button. Either the naming of the buttons is misleading or one of them is redundant. It seems that both buttons are connected to __cb_quit() in revelation.py so they should be doing the same.

Steps to Reproduce

  1. Open a file in revelation
  2. File -> Close

Expected Behavior

Close should close the file but not the app.

Actual Behavior

Close calls __cb_quit and closes the app.

Context

https://web.archive.org/web/20200624015242/https://bitbucket.org/erikg/revelation/issues/99/close-and-quit-button

Meson build error "Function does not take positional arguments."

Hello!

I just updated my archlinux and revelation stopped working. I followed the current install steps with meson but could not create the _build directory:

Program desktop-file-validate found: YES (/usr/bin/desktop-file-validate)
data/meson.build:61:5: ERROR: Function does not take positional arguments.

How can this be fixed?

Kind regards
Stefi

No-longer available in Debian/Ubuntu archives.

I'm so glad to see this tool is being developed again, I miss it already in 20.04, and have now created a convoluted container system to allow me to continue using it... but had almost given up and migrated to an alternate product.

I guess this is not an "issue" with the code, but I really hope you will be able to get this excellent tool included in the Debian/Ubuntu repo's again. I know it's been a long time since there was a stable release, but I'm sure there are more people out there using it than you think.

pop-up to copy password gives gdk_wayland_window_handle_configure_popup assertion

After applying #34 to fix #33 crash, pop-up menu gives the following assertion:

Gdk-Message: 00:56:02.829: Window 0x562d94a7ca90 is a temporary window without parent, application will not be able to position it on screen.

(revelation:3144516): Gdk-CRITICAL **: 00:56:02.837: gdk_wayland_window_handle_configure_popup: assertion 'impl->transient_for' failed

[Regression] Error to export to LUKS

I created a simple file with one folder and one entry (website). I created the file with Revelation 0.4.4. I opened the file with revelation master, and I tried to export it to LUKS I obtained the following trace:

Traceback (most recent call last):
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/bin/revelation", line 239, in <lambda>
    action.connect("activate",      lambda w,k: self.file_export())
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/bin/revelation", line 1495, in file_export
    datafile.save(self.entrystore, file, password)
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/io.py", line 123, in save
    file_write(file, self.__handler.export_data(entrystore, password))
  File "/home/gpoo/.var/app/org.gnome.Builder/cache/gnome-builder/install/revelation-next/host/lib/python3.8/site-packages/revelation/datahandler/rvl.py", line 614, in export_data
    data += "\x80" + "\x00" * (padlen - 5)
TypeError: can't concat str to bytes

Not able to rexport to old Revelation format

Overview

When trying to export to old Revelation format, the following trace is produced:

  File "/usr/local/bin/revelation", line 235, in <lambda>
    action.connect("activate",      lambda w,k: self.file_export())
  File "/usr/local/bin/revelation", line 1462, in file_export
    datafile.save(self.entrystore, file, password)
  File "/usr/local/lib/python3.8/site-packages/revelation/io.py", line 124, in save
    file_write(file, self.__handler.export_data(entrystore, password))
  File "/usr/local/lib/python3.8/site-packages/revelation/datahandler/rvl.py", line 336, in export_data
    data = AES.new(password, AES.MODE_CBC, iv).encrypt(data)
  File "/usr/lib64/python3.8/site-packages/Cryptodome/Cipher/AES.py", line 232, in new
    return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs)
  File "/usr/lib64/python3.8/site-packages/Cryptodome/Cipher/__init__.py", line 79, in _create_cipher
    return modes[mode](factory, **kwargs)
  File "/usr/lib64/python3.8/site-packages/Cryptodome/Cipher/_mode_cbc.py", line 274, in _create_cbc_cipher
    cipher_state = factory._create_base_cipher(kwargs)
  File "/usr/lib64/python3.8/site-packages/Cryptodome/Cipher/AES.py", line 92, in _create_base_cipher
    if len(key) not in key_size:
TypeError: argument of type 'int' is not iterable

Steps to Reproduce

  1. Open a Revelation2 file (any new file generated since revelation-0.4.14
  2. File -> Export -> Choose Revelation format

[Regression] Copy entry does not seem to copy anything on the clipboard

Overview

PyGObject does not suspport Gtk.Clipboard.set_with_data due
to a limitation in introspecting with more than one callback.

That was the method used with Gtk2, but with the new port does not
work.

Although, the statusbar says the entry was copied, the clipboard looks
unchanged.

Steps to Reproduce

  1. Open Revelation with a file of keys
  2. Select an entry
  3. Select Copy or press Ctrl+C

Expected Behavior

The clipboard should contain a text representation of the entry

Actual Behavior

The clipboard does not seem to hold anything.

Context

Revelation - 0.5.3
Operating System: Ubuntu 20.04
Desktop Env: Gnome
Windowing System: Wayland

ImportError: cannot import name 'config' from partially initialized module 'revelation'

Thanks for picking up maintenance of this great tool! I tried to get it working on Ubuntu 20.04, but get the following error after I compile (./autogen.sh && ./configure && make). This is on latest master (1ef9925).

$ ./src/revelation.py                                                                                                                                                                                                                                                             Traceback (most recent call last):
  File "./src/revelation.py", line 30, in <module>
    from revelation import config, data, datahandler, dialog, entry, io, ui, util
  File "/home/tamas/src/revelation/src/revelation.py", line 30, in <module>
    from revelation import config, data, datahandler, dialog, entry, io, ui, util
ImportError: cannot import name 'config' from partially initialized module 'revelation' (most likely due to a circular import) (/home/tamas/src/revelation/src/revelation.py)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.