Comment by ~shtrom on ~mediagoblin/mediagoblin
I don't have a full solution, but I worked on fixing all the depndencies so 1. they don't break the install and 2. the testsuite passes.
My latest list is at https://git.sr.ht/~shtrom/mediagoblin/tree/refactor-configure/item/setup.cfg#L60, so you might be able to copy/paste the contstaints to get a working set.
I have purposefully tried to not alter the code itself, so those versions should work with 0.12, but there are a number of deprecation warnings that we'll have to fix in the code at some point (AFAIC, I want to finish the build refactor in isolation before updating the code).
Ticket created by ~shtrom on ~mediagoblin/mediagoblin
I have a couple of WIP which I just realised I didn't post here. So here goes:
- Build refactor to (optionally but preferably) use Docker https://git.sr.ht/~shtrom/mediagoblin/log/refactor-build; includes a fix for #33
- Further refactoring of the configure script to simplify it and make it less error-prone; on top of the previous PR; probably fixes #12 and deprecates #14 https://git.sr.ht/~shtrom/mediagoblin/log/refactor-configure
Comment by ~shtrom on ~mediagoblin/mediagoblin
On Mon 05 Dec 2022 at 03:17:30 +0000, ~iptrip wrote:
I'm having this problem, but the URL for the commit shtrom linked to returns 404. I wasn't able to find it in shtrom's log either.
Did you try this one [0]?
Likely on top of that one if you don't have it [1].
[0] https://git.sr.ht/~shtrom/mediagoblin/commit/d928daee63a52b6ff3d762bf6d6aa534fd7d3684 [1] https://git.sr.ht/~shtrom/mediagoblin/commit/fe01dd00fbebbf46f8cab552b89c402124541cab
-- Olivier Mehani shtrom@ssji.net PGP fingerprint: 4435 CF6A 7C8D DD9B E2DE F5F9 F012 A6E2 98C6 6655 Confidentiality cannot be guaranteed on emails sent or received unencrypted.
Comment by ~shtrom on ~mediagoblin/mediagoblin
I'm a bit doubtful of the security argument. However, I think the system-site-packages is nonetheless mandatory, so that python-gobject, which is not a native Python module installable from PyPi is accessible to the Virtualenv. It is needed for GStreamer.
Comment by ~shtrom on ~mediagoblin/mediagoblin
Comment by ~shtrom on ~mediagoblin/mediagoblin
My understanding is that we need to have a configure script as it is a requirement for GNU software https://www.gnu.org/prep/standards/standards.html#Configuration (note the “should”, not “must”, so maybe I'm reading too much there). I also just found this https://www.gnu.org/help/evaluation.html#whatmeans, which states “[T]here are a few general principles. Certain parts of the GNU coding standards directly affect the consistency of the whole system. These include the standards for configuring and building a program, and the standards for command-line options. It is important to make all GNU programs follow these standards,” but immediately dampens the statement with “where they are applicable.” Maybe having a configure script is not applicable to a Python program.
Anyway, taking a different tack, I have refactored the configure/make stuff to be (I think) a bit nicer. My branch is here: https://git.sr.ht/~shtrom/mediagoblin/log/refactor-configure
In my view, the first part of the configure/make phase creates all the artifacts that are needed prior to building the Python package, which can then be built the normal way. This is the approach that I have taken there.
There is also a bit of logic around Dockerising the whole build (which was my main objective, until the configure/make become too much of a sore spot). This way, we don't have to struggle to much with providing build dependencies (and the right versions thereof). Nonetheless, the configure script should now be a lot more specific at detecting them now (and is use both to detect Docker on the host, and check the dependencies in the guest).
That work on the branch is not entirely complete. I do get a functional Docker container out of it, which is a good start, though it is a bit fat... The docs generation is still in progress. Moreover I haven't fully tested the final Python wheel. A recuring concern I have is the dependency on python-gobject code, which I think can only be built locally or by the distro, and is not a native Python package.
Comment by ~shtrom on ~mediagoblin/mediagoblin
I ran into the same problem when working on the tests.
This commit may fix your issue https://git.sr.ht/~shtrom/mediagoblin/commit/9b052dd53dbbe48de6dd7de67f80e95288a2b1eb