#14 Are ./configure && make appropriate for MediaGoblin? 5 months ago

Comment by ~shtrom on ~mediagoblin/mediagoblin

I agree. This is not the correct way of using autotools. Instead the configure script should just detect that all the necessary dependencies are present, and the Makefile merely use them.

This is the pattern I followed in my refactor, and their various iterations, the most recent being https://git.sr.ht/~shtrom/mediagoblin/tree/refactor-configure-py311-bookworm

#34 Jinja2 error during make 1 year, 4 months ago

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).

#36 Build refactoring with docker support 1 year, 4 months ago

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:

#33 Login error: TypeError in basic auth's use of bcrypt 1 year, 4 months ago

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.

#26 Add link in deployment docs to --system-site-packages rationale 1 year, 9 months ago

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.

#2 Replace virtualenv dependency with python3-venv 1 year, 9 months ago

Comment by ~shtrom on ~mediagoblin/mediagoblin

#14 Are ./configure && make appropriate for MediaGoblin? 1 year, 9 months ago

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.

#33 Login error: TypeError in basic auth's use of bcrypt 1 year, 9 months ago

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