Compare commits

..

34 Commits

Author SHA1 Message Date
John Ralls b57b8d0b75 Update Gramps & dependencies for 5.1.6 release. 2023-07-02 14:39:41 -07:00
Nick Hall 9fe57a2eb2 Bump to 5.1.7 2023-06-29 21:44:40 +01:00
Nick Hall ddfc88946a Release Gramps 5.1.6 2023-06-29 21:37:13 +01:00
Nick Hall 52e4790753 Update Changelog and NEWS files 2023-06-29 21:28:47 +01:00
Nick Hall 8a2c94a3dd Update copyright date 2023-06-29 18:42:00 +01:00
SNoiraud e40b727a57 Narrative web: problem with small pictures.
Fixes #012884
2023-06-28 21:50:08 +01:00
SNoiraud 160d5952f2 Implement the "<CTRL>J" for the family view
Fixes #012882
2023-06-28 21:42:08 +01:00
Jon Schewe 482199d29c Avoid application crash on invalid user input
If the user inputs an invalid date this change keeps the application
from crashing when such a date is found. The invalid date
information is reported to the user in the log.

Fixes #12658.
2023-06-28 20:58:37 +01:00
Nick Hall bfa7c0c9f4 Fix export where private citations are excluded 2023-06-28 19:05:25 +01:00
prculley 614332aac8 Fix Event compare tool to display enclosed places properly 2023-05-14 22:50:01 +01:00
SNoiraud 0a981f0ca6 Check that view exists before calling post_create method
Avoids 'NoneType' object has no attribute 'post_create' error.

Fixes #12638
2023-05-14 22:47:55 +01:00
Jingxuan He 9e81014fc6 Fix a wrong operator bug in the web calendar report 2023-05-14 22:27:59 +01:00
Himanshu Gohel 2da93aad1f Revert "Enclose tree report image path and file name in braces"
Fixes #12437 by reverting commit 75921ceaf4 due to
reports of regression where processing of the generated TeX file fails due to
bad path specificiation for image files.

Change was introduced in bug fix for #10495.

Bugs #12437 and #12697 reported the regression and confirmed that reverting the
change fixes the regression.
2023-05-14 22:13:38 +01:00
SNoiraud 97434a0136 Geography View: Fix number of arguments in add_bookmark method
add_bookmark() takes 2 positional arguments but 3 were given

Fixes #12718
2023-05-14 21:54:33 +01:00
GaryGriffin 181e2d8540 Use date-specific place in report substitution variables
Fix place title in graphical reports which have user-defined display formats
to use date-specific alternate name.

This impacts Ancestor Tree, Descendant Tree, and Family Descendant Tree.

Fixes #12763.
2023-05-14 21:38:49 +01:00
John Ralls 36d03137dd Try to import berkeleydb if bsddb3 isn't found.
berkelydb is usable for python >= 3.6 and required for
python >= 3.10. See https://www.jcea.es/programacion/pybsddb.htm.
2023-05-14 21:11:55 +01:00
Vincent Smeets f6ac1999dd HtmlDoc: Create a unique filename for cropped images 2023-05-14 21:00:28 +01:00
D.A.Lordemann a99b48711f Fix corrupted NOTE tag in Gedcom export
Remove Python2 code obsoleted by Python3, which was corrupting GEDCOM export of Gramps Notes text that includes multi-byte utf-8 characters.

Fixes #12709.
2023-05-14 19:03:52 +01:00
SNoiraud d5d86e9139 Fix IndexError that sometimes occurs when changing view
This occurs when restarting Gramps.

Fixes #12636, #12304, #12429, #12623, #12695.
2023-05-14 18:49:17 +01:00
SNoiraud 4ebba02b6b Fix crash when invalid note link
Fixes #012854
2023-05-12 22:11:29 +01:00
SNoiraud e535fcefa5 Tags with color names don't work in pedigree views
Color tags work correctly in all views except in pedigree views.
These views modify colors:
...
 context.set_source_rgba(*(self.bordercolor[:3] + (0.4,)))
... and
 context.set_source_rgb(*self.bgcolor[:3])

As it works everywhere except in these views, I think it is a bug
even if we cannot enter color names in tags

Fixes #012866
2023-05-12 21:57:24 +01:00
SNoiraud 0170e2b1e6 Crash when invalid event date 2023-04-05 18:41:27 +02:00
SNoiraud 54799df049 ListModel: Only the first level is managed
When we use checkboxes in columns.
The path was converted to int. Why ?
But when we have multiple level, the path format is "x:y" for two levels,
"x:y:z" for three levels, etc
2023-04-04 19:38:10 +02:00
Nick Hall b97facb66f Update Gramps CI workflow to run on Ubuntu 20.04
Ubuntu 18.04 became fully unsupported on 1 Dec 2022.
2023-03-07 21:56:08 +00:00
John Ralls aae38a6861 mac: Patch bsddb to use berkeleydb instead of bsddb3 module. 2022-12-27 15:25:07 -08:00
John Ralls e0ee86c36a Mac build: Patch berkeleydb configure to work on Apple Silicon. 2022-12-27 11:45:08 -08:00
John Ralls e3e89e6592 [mac] Update Exiv2 download URL, moved to github. 2022-12-26 13:56:57 -08:00
John Ralls 2cde1f0cdb Repackage Gramps 5.1.5 with Gtk updates fixing use on macOS 13 Ventura. 2022-12-24 14:27:46 -08:00
Nick Hall 2ca3839904 Fix spouse's name and underlined call names in records
Fixes #12391
2022-03-19 17:51:06 +00:00
Nick Hall 66cac5e852 Fix package installation failures in CI 2022-03-16 22:21:22 +00:00
Sam Manzi 99ec8e876b Update INCOMPLETE_TRANSLATIONS
* Remove: he

* Add: zh_HK, zh_TW
2022-02-12 22:44:46 +00:00
Ross Gammon b27480f7a1 Update Debian folder after 5.1.5 release 2022-02-12 21:44:57 +00:00
John Ralls e0e81cf56a Package Gramps 5.1.5 for macOS. 2022-02-05 17:12:38 -08:00
Nick Hall 6df7c46400 Bump to 5.1.6 2022-02-05 23:33:10 +00:00
46 changed files with 783 additions and 265 deletions
+2 -1
View File
@@ -28,12 +28,13 @@ on:
jobs:
build:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install gir1.2-pango-1.0
sudo apt-get install gir1.2-gtk-3.0
sudo apt-get install xdg-utils
+119 -137
View File
@@ -1,192 +1,174 @@
2022-02-05 Nick Hall <nick-h@gramps-project.org>
2023-06-29 Nick Hall <nick-h@gramps-project.org>
* .travis.yml: Remove Travis CI configuration
* docs/conf.py, gramps/gen/const.py: Update copyright date
2022-02-05 Nick Hall <nick-h@gramps-project.org>
2023-05-13 SNoiraud <Serge.Noiraud@free.fr>
* README.md: Fix badges in README file
* gramps/plugins/webreport/media.py: Narrative web: problem with
small pictures. Fixes #012884
2022-02-05 Nick Hall <nick-h@gramps-project.org>
2023-05-09 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gen/const.py: Update copyright date
* gramps/plugins/view/familyview.py: Implement the "<CTRL>J" for the
family view Fixes #012882
2021-09-18 SNoiraud <Serge.Noiraud@free.fr>
2022-07-11 Jon Schewe <jpschewe@mtu.net>
* gramps/gui/views/pageview.py, gramps/gui/widgets/grampletbar.py:
Strange behavior for the scrollbar in the bottombar Fixes #012438
* gramps/plugins/webreport/basepage.py: Avoid application crash on
invalid user input If the user inputs an invalid date this change keeps the application
from crashing when such a date is found. The invalid date
information is reported to the user in the log. Fixes #12658.
2022-02-04 romjerome <romjerome@yahoo.fr>
2023-05-13 Nick Hall <nick-h@gramps-project.org>
* data/grampsxml.dtd, data/grampsxml.rng: Fix place object element
order in DTD and RNG schemas Element placeobj content does not follow the DTD and RNG, expecting
(ptitle? , pname+) Fixes #12500
* gramps/plugins/export/exportgedcom.py: Fix export where private
citations are excluded
2022-01-31 Krystian Safjan <ksafjan@gmail.com>
2022-06-01 prculley <paulr2787@gmail.com>
* po/pl.po: Fixes suggested after review by @stojex
* gramps/plugins/tool/eventcmp.py: Fix Event compare tool to display
enclosed places properly
2022-01-07 Krystian Safjan <ksafjan@gmail.com>
2022-06-08 SNoiraud <Serge.Noiraud@free.fr>
* po/pl.po: Update Polish translation - Consistent usage of "Tag": was "Tag" or "Atrybut", note that "Attribute" (atrybut) is something different than tag - "Magazyn" (repository) renamed to "Repozytorium" - other fixes and addons
* gramps/gui/viewmanager.py: Check that view exists before calling
post_create method Avoids 'NoneType' object has no attribute 'post_create' error. Fixes #12638
2021-09-04 SNoiraud <Serge.Noiraud@free.fr>
2022-06-15 Jingxuan He <LostBenjamin@users.noreply.github.com>
* gramps/gui/widgets/grampletpane.py: Solve InterpolationSyntaxError
if "%" in a string The grampletpane module save data in a config file for all the
gramplets added in the dashboard. The python configparser module
doesn't like if we have a "%" character in a string. Fixes #012423
* gramps/plugins/webreport/webcal.py: Fix a wrong operator bug in
the web calendar report
2021-11-06 SNoiraud <Serge.Noiraud@free.fr>
2022-10-08 Himanshu Gohel <1551217+hgohel@users.noreply.github.com>
* gramps/plugins/drawreport/calendarreport.py: '<' not supported
between 2 instances of IndexMark Fixes #012467
* gramps/gen/plug/docgen/treedoc.py: Revert "Enclose tree report
image path and file name in braces" Fixes #12437 by reverting commit
75921ceaf40f3ced597d99c43794b98f81e49957 due to reports of
regression where processing of the generated TeX file fails due to
bad path specificiation for image files. Change was introduced in bug fix for #10495. Bugs #12437 and #12697 reported the regression and confirmed that
reverting the change fixes the regression.
2022-01-29 Nick Hall <nick-h@gramps-project.org>
2022-10-22 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gen/filters/rules/test/person_rules_test.py,
gramps/plugins/test/db_undo_and_signals_test.py: Remove debug
sattements in unit tests
* gramps/plugins/lib/maps/geography.py: Geography View: Fix number
of arguments in add_bookmark method add_bookmark() takes 2 positional arguments but 3 were given Fixes #12718
2022-01-29 Nick Hall <nick-h@gramps-project.org>
2022-12-08 GaryGriffin <genealogy@garygriffin.net>
* gramps/gen/lib/date.py, gramps/gen/lib/test/date_test.py: Fix
negative Span when dates are not Gregorian Fixes #12525
* gramps/plugins/lib/libsubstkeyword.py: Use date-specific place in
report substitution variables Fix place title in graphical reports which have user-defined display
formats to use date-specific alternate name. This impacts Ancestor Tree, Descendant Tree, and Family Descendant
Tree. Fixes #12763.
2022-01-29 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2022-12-27 John Ralls <jralls@ceridwen.us>
* po/de.po: get German translation with manual in sync (Display name
editor)
* gramps/grampsapp.py, gramps/gui/aboutdialog.py,
gramps/gui/logger/_errorreportassistant.py,
gramps/plugins/db/bsddb/bsddbtxn.py,
gramps/plugins/db/bsddb/cursor.py, gramps/plugins/db/bsddb/read.py,
gramps/plugins/db/bsddb/summary.py,
gramps/plugins/db/bsddb/test/cursor_test.py,
gramps/plugins/db/bsddb/undoredo.py,
gramps/plugins/db/bsddb/upgrade.py,
gramps/plugins/db/bsddb/write.py, gramps/plugins/gramplet/leak.py,
mac/patches/gramps-berkeleydb.patch: Try to import berkeleydb if
bsddb3 isn't found. berkelydb is usable for python >= 3.6 and required for python >=
3.10. See https://www.jcea.es/programacion/pybsddb.htm.
2021-08-11 SNoiraud <Serge.Noiraud@free.fr>
2023-02-12 Vincent Smeets <Vincent.VSmeets@GMail.com>
* gramps/gen/display/name.py: Incorrect grouping if no ma/patronymic
surname
* gramps/plugins/docgen/htmldoc.py: HtmlDoc: Create a unique
filename for cropped images
2021-08-07 SNoiraud <Serge.Noiraud@free.fr>
2022-10-24 D.A.Lordemann <LordemannD@gmail.com>
* gramps/gen/display/name.py: Group As override is ignored for
ma/patronymic surnames Fixes #12395 discourse:
* gramps/plugins/export/exportgedcom.py: Fix corrupted NOTE tag in
Gedcom export Remove Python2 code obsoleted by Python3, which was corrupting
GEDCOM export of Gramps Notes text that includes multi-byte utf-8
characters. Fixes #12709.
https://gramps.discourse.group/t/patronymic-and-matronymic-name/1684/5
2022-09-27 SNoiraud <Serge.Noiraud@free.fr>
2021-07-29 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/viewmanager.py: Fix IndexError that sometimes occurs
when changing view This occurs when restarting Gramps. Fixes #12636, #12304, #12429, #12623, #12695.
* gramps/gui/editors/editplace.py: Add comments for the lat-lon
field of editplace
2023-03-18 SNoiraud <Serge.Noiraud@free.fr>
2021-07-28 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gen/proxy/referencedbyselection.py,
gramps/gui/widgets/styledtexteditor.py,
gramps/plugins/lib/libhtmlbackend.py: Fix crash when invalid note
link Fixes #012854
* gramps/gui/editors/editplace.py,
gramps/gui/editors/editplaceref.py: Place editor, lat and long text
are swapped Fixes #012374
2023-04-17 SNoiraud <Serge.Noiraud@free.fr>
2021-07-28 prculley <paulr2787@gmail.com>
* gramps/gui/utils.py: Tags with color names don't work in pedigree
views Color tags work correctly in all views except in pedigree views.
These views modify colors: ... context.set_source_rgba(*(self.bordercolor[:3] + (0.4,))) ... and context.set_source_rgb(*self.bgcolor[:3]) As it works everywhere except in these views, I think it is a bug
even if we cannot enter color names in tags Fixes #012866
* gramps/gui/viewmanager.py: Fix Statusbar progress being shown
before use Fixes #12373
2023-04-05 SNoiraud <Serge.Noiraud@free.fr>
2021-07-26 prculley <paulr2787@gmail.com>
* gramps/gui/views/treemodels/eventmodel.py: Crash when invalid
event date
* gramps/plugins/db/dbapi/dbapi.py: Fix exception when removing a
group name in Sqlite db when group name is already missing. Fixes #12367
2023-04-04 SNoiraud <Serge.Noiraud@free.fr>
2021-07-26 prculley <paulr2787@gmail.com>
* gramps/gui/listmodel.py: ListModel: Only the first level is
managed When we use checkboxes in columns. The path was converted to int.
Why ? But when we have multiple level, the path format is "x:y" for
two levels, "x:y:z" for three levels, etc
* gramps/gui/editors/editname.py: Fix error when trying to close
name editor during long name group mapping view rebuild. Fixes #12328
2023-03-07 Nick Hall <nick-h@gramps-project.org>
2021-07-19 SNoiraud <Serge.Noiraud@free.fr>
* .github/workflows/gramps-ci.yml: Update Gramps CI workflow to run
on Ubuntu 20.04 Ubuntu 18.04 became fully unsupported on 1 Dec 2022.
* gramps/plugins/lib/maps/geography.py,
gramps/plugins/lib/maps/osmgps.py, gramps/plugins/view/geoclose.py,
gramps/plugins/view/geofamclose.py: OsmGpsMap-CRITICAL: Map source
setup called twice Fixes #012352
2022-12-27 John Ralls <jralls@ceridwen.us>
2021-08-15 Ross Gammon <rossgammon@debian.org>
* mac/gramps.modules: mac: Patch bsddb to use berkeleydb instead of
bsddb3 module.
* gramps/gen/filters/rules/test/person_rules_test.py: Fix probably
alive test The probably alive funtion was fixed just prior to the Gramps 5.1.4
release. It appears the relevant unit test was not updated to match.
The relevant commit:
2022-12-27 John Ralls <jralls@ceridwen.us>
https://github.com/gramps-project/gramps/commit/a685b96f700dcfc6b953413cb3adc8be61d87438
* mac/gramps.modules, mac/patches/berkeleydb-4.8-mutex.patch: Mac
build: Patch berkeleydb configure to work on Apple Silicon.
2022-01-28 Nick Hall <nick-h@gramps-project.org>
2022-12-26 John Ralls <jralls@ceridwen.us>
* .github/workflows/gramps-ci.yml, setup.py: Use GitHub Actions to
run continuous integration checks
* mac/gramps.modules: [mac] Update Exiv2 download URL, moved to
github.
2022-01-27 John Ralls <jralls@ceridwen.us>
2022-12-24 John Ralls <jralls@ceridwen.us>
* mac/gramps.modules: Update Exiv2, PYExiv2, and json-glib.
* mac/Info.plist, mac/gramps.bundle, mac/gramps.modules: Repackage
Gramps 5.1.5 with Gtk updates fixing use on macOS 13 Ventura.
2021-08-15 Ross Gammon <rossgammon@debian.org>
2022-03-08 Nick Hall <nick-h@gramps-project.org>
* gramps/plugins/lib/librecords.py: Fix spouse's name and underlined
call names in records Fixes #12391
2022-03-16 Nick Hall <nick-h@gramps-project.org>
* .github/workflows/gramps-ci.yml: Fix package installation failures
in CI
2019-12-09 Sam Manzi <manzi.sam@gmail.com>
* gramps/gen/utils/grampslocale.py: Update INCOMPLETE_TRANSLATIONS * Remove: he * Add: zh_HK, zh_TW
2022-02-12 Ross Gammon <rossgammon@debian.org>
* debian/changelog, debian/copyright,
debian/patches/fix-probably_alive_test.patch,
debian/patches/series, debian/watch: Update Debian folder for Gramps
5.1.4 release
debian/patches/fix-probably_alive_test.patch, debian/patches/series:
Update Debian folder after 5.1.5 release
2022-01-25 pehlm <github1@m.pekholm.org>
2022-02-05 John Ralls <jralls@ceridwen.us>
* po/sv.po: Minor update of Swedish translation
* mac/Info.plist, mac/gramps.modules: Package Gramps 5.1.5 for
macOS.
2022-01-04 Tian Shixiong <tiansworld@fedoraproject.org>
2022-02-05 Nick Hall <nick-h@gramps-project.org>
* po/zh_CN.po: Minor update to zh_CN translation
2021-11-03 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: small German translation fixes
2021-11-01 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Fixed German translation error of "Character set
encoding"
2021-10-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Fixed German translation error of "Graph generations"
2021-10-16 John Ralls <jralls@ceridwen.us>
* mac/Info.plist: Repackage Gramps.app to work with macOS 12.
2021-10-16 John Ralls <jralls@ceridwen.us>
* mac/gramps.bundle: [macOS]Add entitlements path to bundle-file so
Gramps.app is signed with it.
2021-09-19 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Fixed German translation error of "filter person"
2021-08-30 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: fixed error in German translation found during manual
translation also fixed in master
2021-08-11 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: fixed German translation of 'Descendant families of'
already done in trunk Weblate
2021-08-10 John Ralls <jralls@ceridwen.us>
* mac/gramps.modules, mac/patches/pyfontconfig-curexc.patch: Add
python-fontconfig to the macOS build. Needed to enable using genealogical symbols.
2021-07-29 John Ralls <jralls@ceridwen.us>
* mac/Info.plist, mac/gramps.bundle: Inlude fontconfig's etc/fonts
in macOS app bundle. Graphviz now uses fontconfig to find its fonts. Fixes #12370
2021-07-26 John Ralls <jralls@ceridwen.us>
* mac/Info.plist, mac/gramps.bundle, mac/gramps.modules,
mac/gramps_launcher.py: Bundle release of Gramps 5.1.4.
2021-07-26 Nick Hall <nick-h@gramps-project.org>
* Bump to 5.1.5
* Bump to 5.1.6
+47
View File
@@ -1,3 +1,50 @@
2023-06-29
Version 5.1.6
* Update copyright date.
* Narrative web: problem with small pictures. Fixes #12884.
* Implement the "<CTRL>J" for the family view. Fixes #12882.
* Avoid application crash on invalid user input. If the user inputs an invalid
date this change keeps the application from crashing. The invalid date
information is reported to the user in the log. Fixes #12658.
* Fix export where private citations are excluded.
* Fix Event Compare tool to display enclosed places properly.
* Check that view exists before calling post_create method. Avoids 'NoneType'
object has no attribute 'post_create' error. Fixes #12638.
* Fix a wrong operator bug in the web calendar report.
* Revert "Enclose tree report image path and file name in braces" due to reports
of regression where processing of the generated TeX file fails due to bad path
specificiation for image files. Fixes #12437 and #12697.
* Geography View: Fix number of arguments in add_bookmark method. Fixes #12718.
* Use date-specific place in report substitution variables. Fix place title in
graphical reports which have user-defined display formats to use date-specific
alternate name. This impacts the Ancestor Tree, Descendant Tree, and Family
Descendant Tree reports. Fixes #12763.
* Try to import berkeleydb if bsddb3 isn't found. berkelydb is usable for
python >= 3.6 and required for python >= 3.10.
See https://www.jcea.es/programacion/pybsddb.htm.
* HtmlDoc: Create a unique filename for cropped images.
* Fix corrupted NOTE tag in Gedcom export. Remove Python2 code obsoleted by
Python3, which was corrupting Gedcom export of Gramps Notes text that includes
multi-byte utf-8 characters. Fixes #12709.
* Fix IndexError that sometimes occurs when changing view This occurs when
restarting Gramps. Fixes #12636, #12304, #12429, #12623, #12695.
* Fix crash when invalid note link. Fixes #12854.
* Fix tags with color names in pedigree views. Fixes #12866.
* Crash when invalid event date.
* ListModel: Fix multiple level paths when we use checkboxes in columns.
The path was previously converted to int.
* Update Gramps CI workflow to run on Ubuntu 20.04. Ubuntu 18.04 became fully
unsupported on 1 Dec 2022.
* Fix package installation failures in CI.
* Fix spouse's name and underlined call names in records. Fixes #12391.
* Update INCOMPLETE_TRANSLATIONS list. Remove: he, Add: zh_HK, zh_TW.
* Update Debian folder after 5.1.5 release.
* Mac:
* Patch bsddb to use berkeleydb instead of bsddb3 module.
* Patch berkeleydb configure to work on Apple Silicon.
* Update Exiv2 download URL, moved to github.
* Repackage Gramps 5.1.5 with Gtk updates fixing use on macOS 13 Ventura.
2022-02-05
Version 5.1.5
* Update translations: de, pl, sv, zh_CN.
+8
View File
@@ -1,3 +1,11 @@
gramps (5.1.5-1) unstable; urgency=medium
* New release
* Update copyright file
* Drop patch, incorporated upstream
-- Ross Gammon <rossgammon@debian.org> Sat, 12 Feb 2022 17:01:21 +0100
gramps (5.1.4-1) unstable; urgency=medium
* New release
+1 -1
View File
@@ -46,7 +46,7 @@ Copyright: 2000-2007, Alex Roitman
2009, Florian Heinle
2009, Gerald W. Britton
2009, Igal Shapira
2009-2018, Nick Hall
2009-2022, Nick Hall
2009, Pander Musubi
2009, Robert Ham
2009, Swoon on bug tracker
-22
View File
@@ -1,22 +0,0 @@
Description: Fix probably alive test
The probably alive funtion was fixed just prior to the Gramps 5.1.4
release. It appears the relevant unit test was not updated to match.
The relevant commit:
https://github.com/gramps-project/gramps/commit/a685b96f700dcfc6b953413cb3adc8be61d87438
Author: Ross Gammon <rossgammon@debian.org>
Forwarded: no
Applied-Upstream: no
Last-Update: 2021-08-09
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/gramps/gen/filters/rules/test/person_rules_test.py
+++ b/gramps/gen/filters/rules/test/person_rules_test.py
@@ -347,7 +347,7 @@
"""
rule = ProbablyAlive(['1900'])
res = self.filter_with_rule(rule)
- self.assertEqual(len(res), 766)
+ self.assertEqual(len(res), 733)
def test_RegExpName(self):
"""
-1
View File
@@ -1 +0,0 @@
fix-probably_alive_test.patch
+1 -1
View File
@@ -57,7 +57,7 @@ master_doc = 'index'
# General information about the project.
project = 'Gramps'
copyright = '2001-2019, The Gramps Project'
copyright = '2001-2023, The Gramps Project'
author = 'Donald N. Allingham'
# The version info for the project you're documenting, acts as replacement for
+2 -2
View File
@@ -145,7 +145,7 @@ sys.path.insert(0, ROOT_DIR)
git_revision = get_git_revision(ROOT_DIR).replace('\n', '')
if sys.platform == 'win32' and git_revision == "":
git_revision = get_git_revision(os.path.split(ROOT_DIR)[1])
#VERSION += git_revision
VERSION += git_revision
#VERSION += "-1"
#
@@ -225,7 +225,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
#
#-------------------------------------------------------------------------
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
"© 2007-2022 The Gramps Developers"
"© 2007-2023 The Gramps Developers"
COMMENTS = _("Gramps\n (Genealogical Research and Analysis "
"Management Programming System)\n"
"is a personal genealogy program.")
+1 -2
View File
@@ -460,8 +460,7 @@ class TreeDocBase(BaseDoc, TreeDoc):
if os.path.isfile(path):
if win():
path = path.replace('\\', '/')
self.write(level+1, 'image = {{%s}%s},\n' %
os.path.splitext(path))
self.write(level+1, 'image = {%s},\n' % path)
break # first image only
self.write(level, '}\n')
+1 -1
View File
@@ -346,7 +346,7 @@ class ReferencedBySelectionProxyDb(ProxyDbBase):
for tag in note.text.get_tags():
if tag.name == 'Link':
if tag.value.startswith("gramps://"):
obj_class, prop, value = tag.value[9:].split("/")
obj_class, prop, value = tag.value[9:].split("/", 2)
if obj_class == "Media": # bug6493
obj_class = "Media"
if prop == "handle":
+1 -1
View File
@@ -117,7 +117,7 @@ _LOCALE_NAMES = {
_RTL_LOCALES = ('ar', 'he')
# locales with less than 70% currently translated
INCOMPLETE_TRANSLATIONS = ('ar', 'bg', 'he', 'sq', 'ta', 'tr')
INCOMPLETE_TRANSLATIONS = ('ar', 'bg', 'sq', 'ta', 'tr', 'zh_HK', 'zh_TW')
def _check_mswin_locale(locale):
msloc = None
+10 -3
View File
@@ -325,9 +325,16 @@ def show_settings():
.replace('(', '').replace(')', '')
bsddb_location_str = bsddb.__file__
except:
bsddb_str = 'not found'
bsddb_db_str = 'not found'
bsddb_location_str = 'not found'
try:
import berkeleydb as bsddb
bsddb_str = bsddb.__version__
bsddb_db_str = str(bsddb.db.version()).replace(', ', '.')\
.replace('(', '').replace(')', '')
bsddb_location_str = bsddb.__file__
except:
bsddb_str = 'not found'
bsddb_db_str = 'not found'
bsddb_location_str = 'not found'
try:
import sqlite3
+5 -1
View File
@@ -68,7 +68,11 @@ try:
import bsddb3 as bsddb ## ok, in try/except
BSDDB_STR = ellipses(str(bsddb.__version__) + " " + str(bsddb.db.version()))
except:
BSDDB_STR = 'not found'
try:
import berkeleydb as bsddb
BSDDB_STR = ellipses(str(bsddb.__version__) + " " + str(bsddb.db.version()))
except:
BSDDB_STR = 'not found'
try:
import sqlite3
+2 -2
View File
@@ -233,7 +233,7 @@ class ListModel:
new_value = not self.model[path][col]
self.model[path][col] = new_value
if col in self.function:
self.function[col](int(path), new_value)
self.function[col](path, new_value)
def __edited_cb(self, cell, path, new_text, col):
"""
@@ -241,7 +241,7 @@ class ListModel:
"""
self.model[path][col] = new_text
if col in self.function:
self.function[col](int(path), new_text)
self.function[col](path, new_text)
def unselect(self):
"""
+5 -1
View File
@@ -37,7 +37,11 @@ try:
import bsddb3 as bsddb # ok, in try/except
BSDDB_STR = str(bsddb.__version__) + " " + str(bsddb.db.version())
except:
BSDDB_STR = 'not found'
try:
import berkeleydb as bsddb
BSDDB_STR = str(bsddb.__version__) + " " + str(bsddb.db.version())
except:
BSDDB_STR = 'not found'
try:
import sqlite3
+16
View File
@@ -549,11 +549,26 @@ def color_graph_box(alive=False, gender=Person.MALE):
# color functions. For hsv and hls values, use import colorsys !
def name_to_hex(value):
"""
Convert a named color to a 6 digit hexadecimal value to rgb.
"""
if value[:1] != "#":
# We have color names like "green", "orange", "yellow",...
# We need to convert them to hex format
Color = Gdk.RGBA()
Color.parse(value)
value = "#%02x%02x%02x" % (int(Color.red * 255),
int(Color.green * 255),
int(Color.blue * 255))
return value
def hex_to_rgb_float(value):
"""
Convert a 6 or 12 digit hexademical value to rgb. Returns tuple of floats
between 0 and 1.
"""
value = name_to_hex(value)
value = value.lstrip('#')
lenv = len(value)
return tuple(int(value[i:i+lenv//3], 16)/16.0**(lenv//3)
@@ -563,6 +578,7 @@ def hex_to_rgb(value):
"""
Convert a 6 or 12 digit hexadecimal value to rgb. Returns tuple of integers.
"""
value = name_to_hex(value)
value = value.lstrip('#')
lenv = len(value)
return tuple(int(value[i:i+lenv//3], 16) for i in range(0, lenv, lenv//3))
+14 -3
View File
@@ -786,7 +786,12 @@ class ViewManager(CLIManager):
self.__create_page(page_def[0], page_def[1])
self.notebook.set_current_page(page_num)
return self.pages[page_num]
try:
return self.pages[page_num]
except IndexError:
# The following is to avoid 'IndexError: list index out of range'
# Should solve bug 12636
return self.pages[0]
def get_category(self, cat_name):
"""
@@ -837,7 +842,8 @@ class ViewManager(CLIManager):
hbox.add(Gtk.Label(label=pdata.name))
hbox.show_all()
page_num = self.notebook.append_page(page.get_display(), hbox)
self.active_page.post_create()
if self.active_page:
self.active_page.post_create()
if not self.file_loaded:
self.uimanager.set_actions_visible(self.actiongroup, False)
self.uimanager.set_actions_visible(self.readonlygroup, False)
@@ -880,7 +886,12 @@ class ViewManager(CLIManager):
"""
self.__disconnect_previous_page()
self.active_page = self.pages[page_num]
# The following is to avoid 'IndexError: list index out of range'
# Bugs: 12304, 12429, 12623, 12695
try:
self.active_page = self.pages[page_num]
except IndexError:
self.active_page = self.pages[0]
self.__connect_active_page(page_num)
self.active_page.set_active()
while Gtk.events_pending():
@@ -160,6 +160,8 @@ class EventModel(FlatBaseModel):
date_str = get_date(event)
if date_str != "":
retval = escape(date_str)
else:
retval = ""
if not get_date_valid(event):
return INVALID_DATE_FORMAT % retval
else:
+2 -2
View File
@@ -396,7 +396,7 @@ class StyledTextEditor(Gtk.TextView):
simple_access = SimpleAccess(win_obj.dbstate.db)
url = link_tag.data
if url.startswith("gramps://"):
obj_class, prop, value = url[9:].split("/")
obj_class, prop, value = url[9:].split("/", 2)
display = simple_access.display(obj_class, prop, value) or url
return display + ((_("\nCommand-Click to follow link") if mac() else
_("\nCtrl-Click to follow link"))
@@ -809,7 +809,7 @@ class StyledTextEditor(Gtk.TextView):
win_obj = find_parent_with_attr(self, attr="dbstate")
if win_obj:
# Edit the object:
obj_class, prop, value = url[9:].split("/")
obj_class, prop, value = url[9:].split("/", 2)
from ..editors import EditObject
EditObject(win_obj.dbstate,
win_obj.uistate,
+4 -1
View File
@@ -218,7 +218,10 @@ class BSDDBTxn:
# test code
if __name__ == "__main__":
print("1")
from bsddb3 import db, dbshelve
try:
from bsddb3 import db, dbshelve
except:
from berkeleydb import db, dbshelve
print("2")
x = db.DBEnv()
print("3")
+10 -7
View File
@@ -29,14 +29,17 @@ from pickle import dumps, loads
try:
from bsddb3 import db
except:
try:
from berkeleydb import db
except:
# FIXME: make this more abstract to deal with other backends
class db:
DB_RMW = 0
DB_FIRST = 0
DB_LAST = 0
DB_CURRENT = 0
DB_PREV = 0
DB_NEXT = 0
class db:
DB_RMW = 0
DB_FIRST = 0
DB_LAST = 0
DB_CURRENT = 0
DB_PREV = 0
DB_NEXT = 0
#-------------------------------------------------------------------------
#
+9 -6
View File
@@ -41,12 +41,15 @@ from functools import partial
try:
from bsddb3 import db
except:
# FIXME: make this more abstract to deal with other backends
class db:
DBRunRecoveryError = 0
DBAccessError = 0
DBPageNotFoundError = 0
DBInvalidArgError = 0
try:
from berkeleydb import db
except:
# FIXME: make this more abstract to deal with other backends
class db:
DBRunRecoveryError = 0
DBAccessError = 0
DBPageNotFoundError = 0
DBInvalidArgError = 0
import re
import logging
+4 -2
View File
@@ -22,8 +22,10 @@
## specific to bsddb
import os
from bsddb3 import dbshelve, db
try:
from bsddb3 import dbshelve, db
except:
from berkeleydb import db, dbshelve
from gramps.gen.db import META, PERSON_TBL
from gramps.gen.db.dbconst import BDBVERSFN
+4 -2
View File
@@ -23,8 +23,10 @@ import os
import tempfile
import shutil
from bsddb3 import dbshelve, db
try:
from bsddb3 import dbshelve, db
except:
from berkeleydb import db, dbshelve
from ..read import DbBsddbTreeCursor
class Data:
+8 -5
View File
@@ -36,12 +36,15 @@ from collections import deque
try:
from bsddb3 import db
except:
try:
from berkeleydb import db
except:
# FIXME: make this more abstract to deal with other backends
class db:
DBRunRecoveryError = 0
DBAccessError = 0
DBPageNotFoundError = 0
DBInvalidArgError = 0
class db:
DBRunRecoveryError = 0
DBAccessError = 0
DBPageNotFoundError = 0
DBInvalidArgError = 0
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
+4 -2
View File
@@ -32,8 +32,10 @@ import os
import re
import time
import logging
from bsddb3 import db
try:
from bsddb3 import db
except:
from berkeleydb import db
#-------------------------------------------------------------------------
#
# Gramps modules
+8 -2
View File
@@ -40,8 +40,14 @@ import logging
from sys import maxsize, getfilesystemencoding, version_info
from ast import literal_eval as safe_eval
from bsddb3 import dbshelve, db
from bsddb3.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
try:
from bsddb3 import dbshelve, db
except:
from berkeleydb import db, dbshelve
try:
from bsddb3.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
except:
from berkeleydb.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
DBFLAGS_O = DB_CREATE | DB_AUTO_COMMIT # Default flags for database open
DBFLAGS_R = DB_RDONLY # Flags to open a database read-only
+4 -1
View File
@@ -556,7 +556,10 @@ class HtmlDoc(BaseDoc, TextDoc):
"""
self._empty = 0
size = int(max(w_cm, h_cm) * float(150.0/2.54))
refname = "is%s" % os.path.basename(name)
if crop:
refname = "is-%d-%d-%d-%d-%s" % (crop[0], crop[1], crop[2], crop[3], os.path.basename(name))
else:
refname = "is%s" % os.path.basename(name)
imdir = self._backend.datadirfull()
+4 -3
View File
@@ -160,10 +160,9 @@ def breakup(txt, limit):
data = []
while len(txt) > limit:
# look for non-space pair to break between
# do not break within a UTF-8 byte sequence, i. e. first char >127
# fix issue #0012709 by removing Python2 code obsoleted by Python3
idx = limit
while (idx > 0 and (txt[idx - 1].isspace() or txt[idx].isspace() or
ord(txt[idx - 1]) > 127)):
while (idx > 0 and (txt[idx - 1].isspace() or txt[idx].isspace())):
idx -= 1
if idx == 0:
#no words to break on, just break at limit anyway
@@ -1344,6 +1343,8 @@ class GedcomWriter(UpdateCallback):
"""
citation = self.dbase.get_citation_from_handle(citation_handle)
if citation is None: # removed by proxy
return
src_handle = citation.get_reference_handle()
if src_handle is None:
+7 -4
View File
@@ -184,10 +184,13 @@ class Leak(Gramplet):
try:
from bsddb3.db import DBError
except:
class DBError(Exception):
"""
Dummy.
"""
try:
from berkeleydb.db import DBError
except:
class DBError(Exception):
"""
Dummy.
"""
self.parent = self.top.get_toplevel()
progress = ProgressMeter(
_('Updating display...'), '', parent=self.parent, can_cancel=True)
+1 -1
View File
@@ -300,7 +300,7 @@ class HtmlBackend(DocBackend):
"""
if value.startswith("gramps://"):
if self.build_link:
obj_class, prop, handle = value[9:].split("/", 3)
obj_class, prop, handle = value[9:].split("/", 2)
if prop in ["handle", "gramps_id"]:
value = self.build_link(prop, handle, obj_class)
if not value:
+10 -7
View File
@@ -314,13 +314,16 @@ def find_records(db, filter, top_size, callname,
if mother is None:
continue
name = StyledText(trans_text("%(father)s and %(mother)s")) % {
'father': _get_styled_primary_name(father, callname,
trans_text=trans_text,
name_format=name_format),
'mother': _get_styled_primary_name(mother, callname,
trans_text=trans_text,
name_format=name_format)}
father_name = _get_styled_primary_name(father, callname,
trans_text=trans_text,
name_format=name_format)
mother_name = _get_styled_primary_name(mother, callname,
trans_text=trans_text,
name_format=name_format)
name = StyledText(trans_text("%(father)s and %(mother)s"))
name = name.replace('%(father)s', father_name)
name = name.replace('%(mother)s', mother_name)
if (living_mode == LivingProxyDb.MODE_INCLUDE_ALL
or (not probably_alive(unfil_father, db) and
+5 -1
View File
@@ -346,7 +346,7 @@ class PlaceFormat(GenericFormat):
return None
def _default_format(self, place):
return _pd.display(self.database, place)
return _pd.display(self.database, place, place.event_date)
def parse_format(self, database, place):
""" Parse the place """
@@ -432,6 +432,8 @@ class EventFormat(GenericFormat):
""" start formatting a place in this event """
place_format = PlaceFormat(self.database, self.string_in)
place = place_format.get_place(self.database, event)
if event and place:
place.event_date = event.get_date_object()
return place_format.parse_format(self.database, place)
def format_attrib():
@@ -889,6 +891,8 @@ class VariableParse:
return the result """
place_f = PlaceFormat(self.database, self._in)
place = place_f.get_place(self.database, event)
if event and place:
place.event_date = event.get_date_object()
if self.empty_item(place):
return
return place_f.parse_format(self.database, place)
+2 -1
View File
@@ -193,11 +193,12 @@ class GeoGraphyView(OsmGps, NavigationView):
"""
self.build_tree()
def add_bookmark(self, menu):
def add_bookmark(self, menu, handle):
"""
Add the place to the bookmark
"""
dummy_menu = menu
dummy_hdle = handle
mlist = self.selected_handles()
if mlist:
self.bookmarks.add(mlist[0])
+5 -3
View File
@@ -60,6 +60,7 @@ _ = glocale.translation.sgettext
from gramps.gui.glade import Glade
from gramps.gui.editors import FilterEditor
from gramps.gen.constfunc import get_curr_dir
from gramps.gen.display.place import displayer as _pd
#-------------------------------------------------------------------------
#
@@ -332,7 +333,7 @@ class EventComparisonResults(ManagedWindow):
if ename in the_map and len(the_map[ename]) > 0:
event_handle = the_map[ename][0]
del the_map[ename][0]
date = place = ""
date = p_title = ""
if event_handle:
event = self.db.get_event_from_handle(event_handle)
@@ -343,8 +344,9 @@ class EventComparisonResults(ManagedWindow):
place_handle = event.get_place_handle()
if place_handle:
place = self.db.get_place_from_handle(
place_handle).get_title()
tlist += [date, sortdate, place]
place_handle)
p_title = _pd.display(self.dbstate.db, place)
tlist += [date, sortdate, p_title]
added = True
else:
tlist += [""]*3
+10
View File
@@ -348,6 +348,16 @@ class FamilyView(ListView):
_("A bookmark could not be set because "
"no one was selected."), parent=self.uistate.window)
def get_handle_from_gramps_id(self, gid):
"""
Return the handle of the family having the given Gramps ID.
"""
obj = self.dbstate.db.get_family_from_gramps_id(gid)
if obj:
return obj.get_handle()
else:
return None
def add(self, *obj):
family = Family()
try:
+10 -2
View File
@@ -2873,9 +2873,17 @@ class BasePage: # pylint: disable=C1001
if self.reference_sort:
role = ""
elif role[1:2] == ':':
# format of role is role_type:ISO date string
if role.count(':') > 1:
print("Invalid date :", role[2:], " for individual with ID:", gid,
". Please, use the 'verify the data' tool to correct this.")
cal, role = role.split(':', 1)
else:
cal, role = role.split(':')
# cal is the original calendar
cal, role = role.split(':')
# conver ISO date to Date for translation.
# convert ISO date to Date for translation.
# all modifiers are in english, so convert them
# to the local language
if len(role.split(' - ')) > 1:
+7 -1
View File
@@ -472,7 +472,13 @@ class MediaPages(BasePage):
if orig_image_path != newpath:
url = self.report.build_url_fname(
newpath, None, self.uplink)
s_width = 'width: %dpx;' % max_width
regions = self.media_ref_rect_regions(media_handle)
if regions:
s_width = 'width: %dpx;' % max_width
elif width < max_width:
s_width = 'width: %dpx;' % width
else:
s_width = 'width: %dpx;' % max_width
mediadisplay += Html("a", href=url) + (
Html("img", src=url,
style=s_width,
+1 -1
View File
@@ -1307,7 +1307,7 @@ class WebCalReport(Report):
age_at_death = age_at_death.format(dlocale=self.rlocale)
# determine birthday information???
if (self.birthday and birth_date is not Date()
if (self.birthday and birth_date != Date()
and birth_date.is_valid()):
birth_date = gregorian(birth_date)
+1 -1
View File
@@ -18,7 +18,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
VERSION_TUPLE = (5, 1, 5)
VERSION_TUPLE = (5, 1, 7)
VERSION_QUALIFIER = ""
VERSION = '.'.join(map(str,VERSION_TUPLE)) + VERSION_QUALIFIER
major_version = "%s.%s" % (VERSION_TUPLE[0], VERSION_TUPLE[1])
+5 -5
View File
@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>Gramps</string>
<key>CFBundleGetInfoString</key>
<string>Gramps-5.1.4-5, (C) 1997-2021 The Gramps Team http://www.gramps-project.org</string>
<string>Gramps-5.1.6-1, (C) 1997-2023 The Gramps Team http://www.gramps-project.org</string>
<key>CFBundleIconFile</key>
<string>gramps.icns</string>
<key>CFBundleIdentifier</key>
@@ -17,15 +17,15 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>Gramps-5.1.4-5</string>
<string>Gramps-5.1.6-1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>Gramps-5.1.4-5</string>
<string>Gramps-5.1.6-1</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 1997 - 2021 The Gramps Team, GNU General Public License.</string>
<string>Copyright 1997 - 2023 The Gramps Team, GNU General Public License.</string>
<key>LSMinimumSystemVersion</key>
<string>10.12</string>
<string>10.13</string>
<key>GtkOSXLaunchScriptFile</key>
<string>gramps_launcher.py</string>
<key>NSHighResolutionCapable</key>
+8 -8
View File
@@ -14,7 +14,7 @@
<plist>${project}/Info.plist</plist>
<entitlements>${project}/release.entitlements.plist</entitlements>
<!-- Build gramps-launcher with:
gcc -L$PREFIX/lib `python-config -\-cflags -\-ldflags -\-embed` \
gcc -L$PREFIX/lib `python3-config -\-cflags -\-ldflags -\-embed` \
-o $PREFIX/bin/gramps-launcher \
path/to/gtk-mac-bundler/examples/python-launcher.c
with the obvious substitution.
@@ -42,7 +42,7 @@
</binary>
<binary recurse="True">
${prefix}/lib/python3.9/*.so
${prefix}/lib/python3.11/*.so
</binary>
<binary>
@@ -78,7 +78,7 @@
</binary>
<binary>
${prefix}/lib/libtiff.5.dylib
${prefix}/lib/libtiff.6.dylib
</binary>
<binary dest="${bundle}/Contents/MacOS/">
@@ -153,19 +153,19 @@
<!-- We have to pull in the python modules, which are mixed python
and loadable modules. -->
<data recurse="True">
${prefix}/lib/python3.9/*.py
${prefix}/lib/python3.11/*.py
</data>
<data>
${prefix}/lib/python3.9/config-3.9-darwin/
${prefix}/lib/python3.11/config-3.11-darwin/
</data>
<data>
${prefix}/lib/python3.9/site-packages/gramps/gen/utils/resource-path
${prefix}/lib/python3.11/site-packages/gramps/gen/utils/resource-path
</data>
<data>
${prefix}/include/python3.9/pyconfig.h
${prefix}/include/python3.11/pyconfig.h
</data>
@@ -182,7 +182,7 @@
</data>
<data recurse="True">
${prefix}/lib/python3.9/site-packages/gramps/*.glade
${prefix}/lib/python3.11/site-packages/gramps/*.glade
</data>
<data>
+25 -18
View File
@@ -13,7 +13,7 @@
href="http://download.oracle.com/"/>
<repository type="tarball" name="pymodules"
href="https://pypi.python.org/packages/"/>
<repository type="git" name="github" href="git://github.com/"/>
<repository type="git" name="github" href="https://github.com/"/>
<repository type="tarball" name="github-tarball" href="https://github.com/"/>
<repository type="tarball" name="exiv2.org"
href="http://www.exiv2.org/releases/"/>
@@ -55,9 +55,10 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</distutils>
<distutils id="gramps" supports-non-srcdir-builds="no">
<branch module="gramps-project/gramps/archive/v5.1.4.tar.gz"
repo="github-tarball" version="5.1.4"
checkoutdir="gramps-gramps-5.1.4"/>
<branch module="gramps-project/gramps/archive/v5.1.6.tar.gz"
repo="github-tarball" version="5.1.6"
checkoutdir="gramps-gramps-5.1.6">
</branch>
<dependencies>
<dep package="meta-gramps-modules"/>
</dependencies>
@@ -81,9 +82,9 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</meson>
<meson id="geocode-glib" mesonargs="-Denable-gtk-doc=false">
<branch module="geocode-glib/3.26/geocode-glib-3.26.2.tar.xz"
version="3.26.2" repo="ftp.gnome.org"
hash="sha256:01fe84cfa0be50c6e401147a2bc5e2f1574326e2293b55c69879be3e82030fd1"/>
<branch module="geocode-glib/3.26/geocode-glib-3.26.4.tar.xz"
version="3.26.4" repo="ftp.gnome.org"
hash="sha256:2d9a6826d158470449a173871221596da0f83ebdcff98b90c7049089056a37aa"/>
<dependencies>
<dep package="json-glib"/>
<dep package="libsoup"/>
@@ -100,10 +101,15 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</dependencies>
</autotools>
<cmake id="exiv2" cmakeargs="-DEXIV2_ENABLE_PNG=ON">
<branch module="exiv2-0.27.4-Source.tar.gz" repo="exiv2.org"
<!-- Exiv v0.28 requires std::filesystem, not available on macOS until v10.15. -->
<cmake id="exiv2"
cmakeargs="-DEXIV2_ENABLE_PNG=ON -DCMAKE_CXX_STANDARD=14">
<branch module="Exiv2/exiv2/releases/download/v0.27.4/exiv2-0.27.4-Source.tar.gz" repo="github-tarball"
checkoutdir="exiv2-0.27.4-Source" version="0.27.4"
hash="sha256:84366dba7c162af9a7603bcd6c16f40fe0e9af294ba2fd2f66ffffb9fbec904e"/>
>
<!-- patch file="exiv-2.27-autoptr.patch"
strip="1"/ -->
</branch>
</cmake>
<meson id="gexiv2" mesonargs="-Dvapi=false">
@@ -116,11 +122,11 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
<dep package="pygobject3"/>
</dependencies>
</meson>
https://files.pythonhosted.org/packages/
<distutils id="pillow">
<branch module="21/23/af6bac2a601be6670064a817273d4190b79df6f74d8012926a39bc7aa77f/Pillow-8.2.0.tar.gz" version="8.2.0"
<branch module="00/d5/4903f310765e0ff2b8e91ffe55031ac6af77d982f0156061e20a4d1a8b2d/Pillow-9.5.0.tar.gz"
version="9.5.0"
repo="pymodules"
hash="sha256:a787ab10d7bb5494e5f76536ac460741788f1fbce851068d73a87ca7c35fc3e1">
hash="sha256:bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1">
</branch>
<dependencies>
<!--dep package="setuptools"/-->
@@ -128,9 +134,9 @@ https://files.pythonhosted.org/packages/
</distutils>
<distutils id='pyicu'>
<branch version='2.7.2' repo='pymodules'
module='17/0f/9d6b7eb01650960239a5d4dc21cd6e7a96921807c043d287bae4b2f440e1/PyICU-2.7.2.tar.gz'
hash="sha256:1382869b22d91cc99274f9b525fa7d9199b44d9007ff0036a09747839a01e9dc"/>
<branch version='2.11' repo='pymodules'
module="03/1b/800fce0236be0b8a99b3ccbb797786dd178028960b3fd65544e2d8bad5ac/PyICU-2.11.tar.gz"
hash="sha256:3ab531264cfe9132b3d2ac5d708da9a4649d25f6e6813730ac88cf040a08a844"/>
<dependencies>
<dep package='icu'/>
@@ -147,6 +153,7 @@ https://files.pythonhosted.org/packages/
repo="oracle"
hash="sha256:12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef" >
<patch file="berkeleydb-4.8-atomic.patch" strip='1'/>
<patch file="berkeleydb-4.8-mutex.patch" strip='1'/>
</branch>
</autotools>
@@ -163,6 +170,7 @@ https://files.pythonhosted.org/packages/
repo="oracle"
hash="sha256:12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef">
<patch file="berkeleydb-4.8-atomic.patch" strip='1'/>
<patch file="berkeleydb-4.8-mutex.patch" strip='1'/>
</branch>
</autotools>
@@ -205,12 +213,11 @@ https://files.pythonhosted.org/packages/
<dep package="osmgpsmap"/>
<dep package="graphviz"/>
<dep package="gexiv2"/>
<dep package="berkeleydb"/>
<dep package="pybsddb"/>
<dep package="gtk-mac-integration-python"/>
<dep package="pycairo"/>
<dep package="pygobject3"/>
<dep package='pyicu'/>
<dep package='pybsddb'/>
<dep package="pillow"/>
</dependencies>
</metamodule>
+115
View File
@@ -0,0 +1,115 @@
--- a/dist/configure 2022-12-26 13:46:24.000000000 -0800
+++ b/dist/configure 2022-12-27 11:35:26.000000000 -0800
@@ -18756,6 +18756,7 @@
/* end confdefs.h. */
#include <pthread.h>
+#include <stdlib.h>
int
main ()
{
@@ -18792,7 +18793,8 @@
/* end confdefs.h. */
#include <pthread.h>
-main() {
+#include <stdlib.h>
+int main() {
pthread_cond_t cond;
pthread_mutex_t mutex;
pthread_condattr_t condattr;
@@ -18828,6 +18830,7 @@
/* end confdefs.h. */
#include <pthread.h>
+#include <stdlib.h>
int
main ()
{
@@ -18864,7 +18867,7 @@
/* end confdefs.h. */
#include <pthread.h>
-main() {
+int main() {
pthread_cond_t cond;
pthread_mutex_t mutex;
pthread_condattr_t condattr;
@@ -18899,6 +18902,7 @@
/* end confdefs.h. */
#include <pthread.h>
+#include <stdlib.h>
int
main ()
{
@@ -18933,7 +18937,8 @@
/* end confdefs.h. */
#include <pthread.h>
-main() {
+#include <stdlib.h>
+int main() {
pthread_cond_t cond;
pthread_mutex_t mutex;
pthread_condattr_t condattr;
@@ -18967,6 +18972,7 @@
/* end confdefs.h. */
#include <pthread.h>
+#include <stdlib.h>
int
main ()
{
@@ -19001,7 +19007,8 @@
/* end confdefs.h. */
#include <pthread.h>
-main() {
+#include <stdlib.h>
+int main() {
pthread_cond_t cond;
pthread_mutex_t mutex;
pthread_condattr_t condattr;
@@ -19038,6 +19045,7 @@
/* end confdefs.h. */
#include <synch.h>
+#include <stdlib.h>
int
main ()
{
@@ -19069,6 +19077,7 @@
#include <thread.h>
#include <synch.h>
+#include <stdlib.h>
int
main ()
{
@@ -19099,6 +19108,7 @@
#include <thread.h>
#include <synch.h>
+#include <stdlib.h>
int
main ()
{
@@ -20743,7 +20753,7 @@
/* end confdefs.h. */
#include <sys/time.h>
-main() {
+int main() {
struct timespec t;
return (clock_gettime(CLOCK_MONOTONIC, &t) != 0);
}
@@ -21634,7 +21644,7 @@
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- main() {
+ int main() {
$db_cv_seq_type l;
unsigned $db_cv_seq_type u;
char buf[100];
+273
View File
@@ -0,0 +1,273 @@
From 9ea0164f1f84f92deea7a0bde0343e2f0e485525 Mon Sep 17 00:00:00 2001
From: John Ralls <jralls@ceridwen.us>
Date: Tue, 27 Dec 2022 12:50:14 -0800
Subject: [PATCH] Try to import berkeleydb if bsddb3 isn't found.
berkelydb is usable for python >= 3.6 and required for
python >= 3.10. See https://www.jcea.es/programacion/pybsddb.htm.
---
gramps/grampsapp.py | 13 ++++++++++---
gramps/gui/aboutdialog.py | 6 +++++-
gramps/gui/logger/_errorreportassistant.py | 6 +++++-
gramps/plugins/db/bsddb/bsddbtxn.py | 5 ++++-
gramps/plugins/db/bsddb/cursor.py | 17 ++++++++++-------
gramps/plugins/db/bsddb/read.py | 15 +++++++++------
gramps/plugins/db/bsddb/summary.py | 6 ++++--
gramps/plugins/db/bsddb/test/cursor_test.py | 6 ++++--
gramps/plugins/db/bsddb/undoredo.py | 13 ++++++++-----
gramps/plugins/db/bsddb/upgrade.py | 6 ++++--
gramps/plugins/db/bsddb/write.py | 10 ++++++++--
gramps/plugins/gramplet/leak.py | 11 +++++++----
12 files changed, 78 insertions(+), 36 deletions(-)
diff --git a/gramps/grampsapp.py b/gramps/grampsapp.py
index 2163edc8a..fed06207d 100644
--- a/gramps/grampsapp.py
+++ b/gramps/grampsapp.py
@@ -325,9 +325,16 @@ def show_settings():
.replace('(', '').replace(')', '')
bsddb_location_str = bsddb.__file__
except:
- bsddb_str = 'not found'
- bsddb_db_str = 'not found'
- bsddb_location_str = 'not found'
+ try:
+ import berkeleydb as bsddb
+ bsddb_str = bsddb.__version__
+ bsddb_db_str = str(bsddb.db.version()).replace(', ', '.')\
+ .replace('(', '').replace(')', '')
+ bsddb_location_str = bsddb.__file__
+ except:
+ bsddb_str = 'not found'
+ bsddb_db_str = 'not found'
+ bsddb_location_str = 'not found'
try:
import sqlite3
diff --git a/gramps/gui/aboutdialog.py b/gramps/gui/aboutdialog.py
index f2b28a036..2afb77816 100644
--- a/gramps/gui/aboutdialog.py
+++ b/gramps/gui/aboutdialog.py
@@ -68,7 +68,11 @@ try:
import bsddb3 as bsddb ## ok, in try/except
BSDDB_STR = ellipses(str(bsddb.__version__) + " " + str(bsddb.db.version()))
except:
- BSDDB_STR = 'not found'
+ try:
+ import berkeleydb as bsddb
+ BSDDB_STR = ellipses(str(bsddb.__version__) + " " + str(bsddb.db.version()))
+ except:
+ BSDDB_STR = 'not found'
try:
import sqlite3
diff --git a/gramps/gui/logger/_errorreportassistant.py b/gramps/gui/logger/_errorreportassistant.py
index af9979693..1924701e2 100644
--- a/gramps/gui/logger/_errorreportassistant.py
+++ b/gramps/gui/logger/_errorreportassistant.py
@@ -37,7 +37,11 @@ try:
import bsddb3 as bsddb # ok, in try/except
BSDDB_STR = str(bsddb.__version__) + " " + str(bsddb.db.version())
except:
- BSDDB_STR = 'not found'
+ try:
+ import berkeleydb as bsddb
+ BSDDB_STR = str(bsddb.__version__) + " " + str(bsddb.db.version())
+ except:
+ BSDDB_STR = 'not found'
try:
import sqlite3
diff --git a/gramps/plugins/db/bsddb/bsddbtxn.py b/gramps/plugins/db/bsddb/bsddbtxn.py
index 7af99494e..0f3fe0de4 100644
--- a/gramps/plugins/db/bsddb/bsddbtxn.py
+++ b/gramps/plugins/db/bsddb/bsddbtxn.py
@@ -218,7 +218,10 @@ class BSDDBTxn:
# test code
if __name__ == "__main__":
print("1")
- from bsddb3 import db, dbshelve
+ try:
+ from bsddb3 import db, dbshelve
+ except:
+ from berkeleydb import db, dbshelve
print("2")
x = db.DBEnv()
print("3")
diff --git a/gramps/plugins/db/bsddb/cursor.py b/gramps/plugins/db/bsddb/cursor.py
index 1eecffc03..4ddd9a64c 100644
--- a/gramps/plugins/db/bsddb/cursor.py
+++ b/gramps/plugins/db/bsddb/cursor.py
@@ -29,14 +29,17 @@ from pickle import dumps, loads
try:
from bsddb3 import db
except:
+ try:
+ from berkeleydb import db
+ except:
# FIXME: make this more abstract to deal with other backends
- class db:
- DB_RMW = 0
- DB_FIRST = 0
- DB_LAST = 0
- DB_CURRENT = 0
- DB_PREV = 0
- DB_NEXT = 0
+ class db:
+ DB_RMW = 0
+ DB_FIRST = 0
+ DB_LAST = 0
+ DB_CURRENT = 0
+ DB_PREV = 0
+ DB_NEXT = 0
#-------------------------------------------------------------------------
#
diff --git a/gramps/plugins/db/bsddb/read.py b/gramps/plugins/db/bsddb/read.py
index 57906b795..6b0b6a7a8 100644
--- a/gramps/plugins/db/bsddb/read.py
+++ b/gramps/plugins/db/bsddb/read.py
@@ -41,12 +41,15 @@ from functools import partial
try:
from bsddb3 import db
except:
- # FIXME: make this more abstract to deal with other backends
- class db:
- DBRunRecoveryError = 0
- DBAccessError = 0
- DBPageNotFoundError = 0
- DBInvalidArgError = 0
+ try:
+ from berkeleydb import db
+ except:
+ # FIXME: make this more abstract to deal with other backends
+ class db:
+ DBRunRecoveryError = 0
+ DBAccessError = 0
+ DBPageNotFoundError = 0
+ DBInvalidArgError = 0
import re
import logging
diff --git a/gramps/plugins/db/bsddb/summary.py b/gramps/plugins/db/bsddb/summary.py
index e73908128..a911d666f 100644
--- a/gramps/plugins/db/bsddb/summary.py
+++ b/gramps/plugins/db/bsddb/summary.py
@@ -22,8 +22,10 @@
## specific to bsddb
import os
-from bsddb3 import dbshelve, db
-
+try:
+ from bsddb3 import dbshelve, db
+except:
+ from berkeleydb import db, dbshelve
from gramps.gen.db import META, PERSON_TBL
from gramps.gen.db.dbconst import BDBVERSFN
diff --git a/gramps/plugins/db/bsddb/test/cursor_test.py b/gramps/plugins/db/bsddb/test/cursor_test.py
index e90e16fd4..1411aca43 100644
--- a/gramps/plugins/db/bsddb/test/cursor_test.py
+++ b/gramps/plugins/db/bsddb/test/cursor_test.py
@@ -23,8 +23,10 @@ import os
import tempfile
import shutil
-from bsddb3 import dbshelve, db
-
+try:
+ from bsddb3 import dbshelve, db
+except:
+ from berkeleydb import db, dbshelve
from ..read import DbBsddbTreeCursor
class Data:
diff --git a/gramps/plugins/db/bsddb/undoredo.py b/gramps/plugins/db/bsddb/undoredo.py
index 53ab39a60..729f21eb9 100644
--- a/gramps/plugins/db/bsddb/undoredo.py
+++ b/gramps/plugins/db/bsddb/undoredo.py
@@ -36,12 +36,15 @@ from collections import deque
try:
from bsddb3 import db
except:
+ try:
+ from berkeleydb import db
+ except:
# FIXME: make this more abstract to deal with other backends
- class db:
- DBRunRecoveryError = 0
- DBAccessError = 0
- DBPageNotFoundError = 0
- DBInvalidArgError = 0
+ class db:
+ DBRunRecoveryError = 0
+ DBAccessError = 0
+ DBPageNotFoundError = 0
+ DBInvalidArgError = 0
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
diff --git a/gramps/plugins/db/bsddb/upgrade.py b/gramps/plugins/db/bsddb/upgrade.py
index 48fd189dd..6861fcd5c 100644
--- a/gramps/plugins/db/bsddb/upgrade.py
+++ b/gramps/plugins/db/bsddb/upgrade.py
@@ -32,8 +32,10 @@ import os
import re
import time
import logging
-from bsddb3 import db
-
+try:
+ from bsddb3 import db
+except:
+ from berkeleydb import db
#-------------------------------------------------------------------------
#
# Gramps modules
diff --git a/gramps/plugins/db/bsddb/write.py b/gramps/plugins/db/bsddb/write.py
index f1743fd21..809b77383 100644
--- a/gramps/plugins/db/bsddb/write.py
+++ b/gramps/plugins/db/bsddb/write.py
@@ -40,8 +40,14 @@ import logging
from sys import maxsize, getfilesystemencoding, version_info
from ast import literal_eval as safe_eval
-from bsddb3 import dbshelve, db
-from bsddb3.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
+try:
+ from bsddb3 import dbshelve, db
+except:
+ from berkeleydb import db, dbshelve
+try:
+ from bsddb3.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
+except:
+ from berkeleydb.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
DBFLAGS_O = DB_CREATE | DB_AUTO_COMMIT # Default flags for database open
DBFLAGS_R = DB_RDONLY # Flags to open a database read-only
diff --git a/gramps/plugins/gramplet/leak.py b/gramps/plugins/gramplet/leak.py
index 949531cf7..0c09c0c4e 100644
--- a/gramps/plugins/gramplet/leak.py
+++ b/gramps/plugins/gramplet/leak.py
@@ -184,10 +184,13 @@ class Leak(Gramplet):
try:
from bsddb3.db import DBError
except:
- class DBError(Exception):
- """
- Dummy.
- """
+ try:
+ from berkeleydb.db import DBError
+ except:
+ class DBError(Exception):
+ """
+ Dummy.
+ """
self.parent = self.top.get_toplevel()
progress = ProgressMeter(
_('Updating display...'), '', parent=self.parent, can_cancel=True)
--
2.37.1 (Apple Git-137.1)