Package Details: mepo-git 1.3.1.r2.ga1f5337-2

Git Clone URL: https://aur.archlinux.org/mepo-git.git (read-only, click to copy)
Package Base: mepo-git
Description: Fast, simple, hackable OSM (OpenStreetMap) map viewer
Upstream URL: https://mepo.lrdu.org
Licenses: GPL-3.0-or-later
Conflicts: mepo
Provides: mepo
Submitter: dull_unicorn
Maintainer: willemw
Last Packager: willemw
Votes: 0
Popularity: 0.000000
First Submitted: 2022-08-05 22:54 (UTC)
Last Updated: 2024-09-13 20:10 (UTC)

Latest Comments

m040601 commented on 2024-08-29 02:05 (UTC) (edited on 2024-08-29 02:09 (UTC) by m040601)

README.md and basic docs.

Unfortunately the developer, has not yet provided a proper man page. Or even simple .md markdown files to read offline as doc.

He only has that "README.md" , both on the repo and the released "tar.gz". It has not much help, only basic infos, and then says:

## **Documentation Website**
Mepo has a documentation website which lives at:
[mepo.lrdu.org](https://mepo.lrdu.org)

That's the lastest fashion I guess . Forcing users to go online to read the docs on a website. Instead of your local computer.

In the mean time.

That README.md , from the main mepo repo, still belongs offline in my computer. As well as future very usefull "CHANGELOG" etc.

Please make sure that

/usr/share/doc/mepo/README.md
/usr/share/doc/mepo/CHANGELOG (when it exists)

With "install -Dm644 .../usr/share/xyz...".

Also land there. Thanks in advance.

PS: The source of the website is on a separate git repo, https://git.sr.ht/~mil/mepo_website. For anyone who want to read the "md's" offline or create a "mepo-docs" PKGBUILD.

m040601 commented on 2024-08-29 01:49 (UTC) (edited on 2024-08-29 23:42 (UTC) by m040601)

QUESTION: Location of the installed "script" files, "bin" versus "lib"

Currently the PKGBUILD stuffs this on file system,

pacman -Ql mepo-git

mepo-git /usr/bin/mepo
....
mepo-git /usr/bin/mepo_dl.sh
mepo-git /usr/bin/mepo_generated_osmtags.sh
mepo-git /usr/bin/mepo_geojson_import.sh
mepo-git /usr/bin/mepo_ui_central_menu.sh
mepo-git /usr/bin/mepo_ui_helper_menu.sh
mepo-git /usr/bin/mepo_ui_helper_pref_pan.sh
mepo-git /usr/bin/mepo_ui_menu_dbg_queueclear.sh
mepo-git /usr/bin/mepo_ui_menu_dbg_queuedownloadinteractive.sh
mepo-git /usr/bin/mepo_ui_menu_dbg_queuedownloadnoninteractive.sh
mepo-git /usr/bin/mepo_ui_menu_pin_drop.sh
mepo-git /usr/bin/mepo_ui_menu_pref_fontsize.sh
mepo-git /usr/bin/mepo_ui_menu_pref_network.sh
mepo-git /usr/bin/mepo_ui_menu_pref_stateload.sh
mepo-git /usr/bin/mepo_ui_menu_pref_statesave.sh
mepo-git /usr/bin/mepo_ui_menu_pref_url.sh
mepo-git /usr/bin/mepo_ui_menu_pref_zoom.sh
mepo-git /usr/bin/mepo_ui_menu_reposition_nominatim.sh
mepo-git /usr/bin/mepo_ui_menu_route_graphhopper.sh
mepo-git /usr/bin/mepo_ui_menu_route_mobroute.sh
mepo-git /usr/bin/mepo_ui_menu_search_nominatim.sh
mepo-git /usr/bin/mepo_ui_menu_search_overpass.sh
mepo-git /usr/bin/mepo_ui_menu_user_pin_updater.sh
....
mepo-git /usr/share/applications/.........
mepo-git /usr/share/icons/hicolor/...........
mepo-git /usr/share/pixmaps/........

So in "/usr/bin" we have the main "/usr/bin/mepo" binary. OK. And then also in "/usr/bin" we have all those tiny "mepo_ui....sh" shell scripts. That is a looooot of "bin's" there under "/usr/bin" just for "mepo".

I am by no means a packaging expert. But some how this does not feel right to me.

Those "mepo_ui...sh" shell files are basicly "plugins/helpers/enhancers" meant to be called/run from inside mepo, when the main window is running. They are not meant to be called from the command line individually.

Wouldnt stuffing them in something like "/usr/lib/mepo/...xyz... " be more appropriate ?

I see that many other PKGBUILDs do this for their "helper" scripts.

For example the official package for "aerc", https://archlinux.org/packages/extra/x86_64/aerc/

aerc /usr/bin/aerc  (the main binary)
........
aerc /usr/bin/carddav-query  (another binary that can be used on its own)
.........
.........
.........
.........
aerc /usr/lib/aerc/filters/  (shell, python, awk etc, scripts only make sense to be used by aerc itself)
........
aerc /usr/lib/aerc/filters/calendar
aerc /usr/lib/aerc/filters/colorize
aerc /usr/lib/aerc/filters/hldiff
aerc /usr/lib/aerc/filters/html
aerc /usr/lib/aerc/filters/html-unsafe
aerc /usr/lib/aerc/filters/plaintext
aerc /usr/lib/aerc/filters/show-ics-details.py
aerc /usr/lib/aerc/filters/wrap
...........
...........
...........
...........
aerc /usr/share/aerc/accounts.conf
aerc /usr/share/aerc/aerc.conf
aerc /usr/share/aerc/binds.conf
aerc /usr/share/aerc/stylesets/........... lotzzzz
aerc /usr/share/aerc/templates/........... lotzzzz
aerc /usr/share/man/man1/aerc-............ lotzzzz

m040601 commented on 2024-08-29 01:25 (UTC) (edited on 2024-08-29 02:14 (UTC) by m040601)

QUESTION: About the inclusion of "geoclue" as a "mandatory" and not "optional" dependency and privacy concerns.

Geoclue is a basicly a systemd service that connects to an online "location service". It tells it your ip address, and they tell you your location. By default, if you dont do anything, it immediatelly connects to www.googleapis.com. You can of course edit "/etc/geoclue/geoclue.conf" and choose Mozilla, Google etc. This has obviously privacy implications.

I personally dont want to be forced to run geoclue. I do not want to say "hello" to google or mozilla everytime I start mepo, firefox, etc.

Both PKGBUILDs "mepo" and "mepo-git" currently include it as a mandatory dependency:

Now, I was checking, https://mepo.lrdu.org/developguide.html and read:

To run locally you should install Zig 0.13.0 locally along with SDL2, SDL2_ttf,
SDL2_image, SDL2_gfx, libcurl. .......

and

Packaging Information

Package maintainers should take note of the following dependencies:

Build Dependencies:

  • Zig: Used to compile core application logic
  • Zig Standard Library: Used to build out core application logic
  • SDL2: Used for rendering graphics
  • SDL2_image: Used for loading PNG data
  • SDL2_gfx: Used for drawing (diagonal) antialiased lines
  • SDL2_ttf: Used for displaying TrueType fonts
  • Libcurl: Used for parallel downloading of tiles

Runtime Dependencies:

  • Busybox (or coreutils): Used for base shell & provide tools for scripts
  • Curl: Used to fetch data from webservers
  • Jq: Used for parsing JSON data structures from external sources
  • Ncurses: Use for tput/colorizing scripts
  • Zenity: Used for menuing system & user input
  • Xwininfo: Used for determining zenity dimensions sizing on X

Optional Runtime Dependencies:

  • Mobroute: Used for Mobroute (offline GTFS routing) script

There is no mention of geoclue there.

I then searched the entire codebase for "geoclue" and the only thing I could find was "supports" or "fallback" or "can be used".

And that is on the "scripts" folder. In only one partical "script", the "pin_updater" one. That's the one that tries to get your physical location. Either, using geoclue. Or, it will use your running gpsd daemon (for ex. connected to your physical gps dongle)

It is a script. It is not on the main mepo zig codebase.

scripts/mepo_ui_menu_user_pin_updater.sh:  Determines the user location via GPSD or Geoclue. When provided with
scripts/mepo_ui_menu_user_pin_updater.sh-  no argument runs the function `droppinactivateandcenter` which both
scripts/mepo_ui_menu_user_pin_updater.sh-  drops a pin on the map and centers the map. Meanwhile the function
scripts/mepo_ui_menu_user_pin_updater.sh-  `droppin` can be used in isolation to only drop a pin on the map in
scripts/mepo_ui_menu_user_pin_updater.sh-  pingroup 6. This script may be used synchronously or asynchronously;
scripts/mepo_ui_menu_user_pin_updater.sh-  within the default config `droppin` is used asynchronously via
scripts/mepo_ui_menu_user_pin_updater.sh:  `shellpipe_async`.  Note, due to deprecation of MLS; Geoclue may be
scripts/mepo_ui_menu_user_pin_updater.sh-  less reliable or this script may not always work as expected recently -
scripts/mepo_ui_menu_user_pin_updater.sh-  see: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2959
scripts/mepo_ui_menu_user_pin_updater.sh-'
scripts/mepo_ui_menu_user_pin_updater.sh-[ -z "$MEPO_USERPIN_ENABLED" ] && MEPO_USERPIN_ENABLED="1"
scripts/mepo_ui_menu_user_pin_updater.sh:[ -z "$MEPO_TIMEOUT_GEOCLUE" ] && MEPO_TIMEOUT_GEOCLUE="10"
scripts/mepo_ui_menu_user_pin_updater.sh:[ -z "$MEPO_GEOLOCATE_COORDSVIAMETHOD" ] && MEPO_GEOLOCATE_COORDSVIAMETHOD="coordsviageoclue"
scripts/mepo_ui_menu_user_pin_updater.sh-
scripts/mepo_ui_menu_user_pin_updater.sh:coordsviageoclue() {
--
scripts/mepo_ui_menu_user_pin_updater.sh:supportsgeoclue() {
--
scripts/mepo_ui_menu_user_pin_updater.sh:  # Otherwise fallback to use geoclue otherwise
scripts/mepo_ui_menu_user_pin_updater.sh:  COORDS="$(coordsviageoclue)"
scripts/mepo_ui_menu_user_pin_updater.sh:  iscoords "$COORDS" && echo "coordsviageoclue $COORDS" && return 0
scripts/mepo_ui_menu_user_pin_updater.sh-
scripts/mepo_ui_menu_user_pin_updater.sh:  # If geoclue unavailable use gpsd
--
doc/mepo_1.0_roadmap_archived.md-    - Integrate gpsd into a script to update user's current location pin and
doc/mepo_1.0_roadmap_archived.md:      fallback to geoclue2 as needed.

It is an optional thing. I cannot see it as something "mandatory" for mepo.

I guess the developer should be more clear about everything that is on the "scripts" folder. And wheter is there anything there mandatory or optional.

In the mean time please remove "geoclue" as a "mandatory" dependency, and make it "optional"

Thanks in advance.

m040601 commented on 2024-08-29 01:03 (UTC)

REPORT:

After these changes,

   Age      Commit message (Expand)       Author
16 hours   refactor: libexec patch   willemw12
30 hours   update PKGBUILD for 1.3.1 Lucca Pellegrini

The PKGBUILD works again. Everything seems to be runnig fine now. Thanks for the maintenaince.

Name            : mepo-git
Version         : 1.3.1.r2.ga1f5337-1
Installed Size  : 1457.12 KiB
Build Date      : Thu 29 Aug 2024 01:09:09 AM WEST
Install Date    : Thu 29 Aug 2024 01:13:05 AM WEST

m040601 commented on 2024-08-26 19:24 (UTC) (edited on 2024-08-26 19:25 (UTC) by m040601)

This PKGBUILD was last touched in 2022. In 2024 mepo has had big changes in v1.3.0, https://git.sr.ht/~mil/mepo/refs.

This PKGBUILD currently fails.

zig 0.13 dependency sucessefully installs,

(4/4) installing zig                                    [-----------------------------] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

Then

==> Making package: mepo-git 0.4.1.250.gcd3c8e4-1 (Mon 26 Aug 2024 08:18:13 PM WEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating mepo git repo...
==> Validating source files with sha512sums...
    mepo ... Skipped
==> Extracting sources...
  -> Creating working copy of mepo git repo...
Cloning into 'mepo'...
done.
==> Starting prepare()...
patching file src/main.zig
Hunk #1 FAILED at 7.
1 out of 1 hunk FAILED -- saving rejects to file src/main.zig.rej
==> ERROR: A failure occurred in prepare().
    Aborting...
 -> error making: mepo-git-exit status 4

It would be nice if both maintainers of "mepo" and "mepo-git" would cooperate and share work. For consistency, to avoid reduplicating efforts, and have more eyeballs following this project.

m040601 commented on 2022-12-06 09:07 (UTC) (edited on 2022-12-06 09:26 (UTC) by m040601)

Thanks for providing this PKGBUILD.

Really wanted to try this tool on my desktop since it's written by the postmarketos/sxmo guy, https://git.sr.ht/~mil/

But this PKGBUILD currently fails to build on my system with

==> Extracting sources...
  -> Creating working copy of mepo git repo...
Cloning into 'mepo'...
done.
==> Starting prepare()...
patching file src/main.zig
Hunk #1 FAILED at 7.
1 out of 1 hunk FAILED -- saving rejects to file src/main.zig.rej
==> ERROR: A failure occurred in prepare().
    Aborting...

By the way, wouldnt the maintainer of this "mepo-git" PKGBUILD like to coordinate/share with the maintainer of the PKGBUILD "mepo" , https://aur.archlinux.org/packages/mepo ? It would be more usefull to have 2 pairs of eyes instead of reduplicating the work.