Skip to content

Conversation

umlaeute
Copy link
Contributor

While b47534c provides a PKGUPGRADE_CLEANUP variable to prevent the pkgupgrade module from running apt-get clean in the cleanpu script, the base module still unconditionally clears the apt-cache:

#cleanup
apt-get clean

This PR introduces a new BASE_APT_CLEAN variable, that can be set to anything but the default yes to prevent apt-get clean from being run.

while I edited the files i couldn't resist the urge to drop some unnecessary bashisms and replace the oldstyle command substitution `` with the modern, stackable $() (but these changes are in separate commits, so feel free to ignore them)

IOhannes m zmölnig added 3 commits September 26, 2023 11:22
@umlaeute
Copy link
Contributor Author

i wonder whether the PKGUPGRADE_CLEANUP flag should somehow inherit the BASE_APT_CLEAN value (unless set by the user).

but that's mostly a design choice, how independent modules must be (and whether the base module is an exception)

@guysoft guysoft merged commit 70f1ae5 into guysoft:devel Oct 1, 2023
@guysoft
Copy link
Owner

guysoft commented Oct 1, 2023

Thanks for fixing the square brackets for string comparison

@@ -85,7 +85,7 @@ fi
[ -n "$BASE_SSH_ENABLE" ] || BASE_SSH_ENABLE=yes

#Store the commit used for CustomPiOS
[ -n "$BASE_COMMIT" ] || BASE_COMMIT=`pushd "${CUSTOM_PI_OS_PATH}" > /dev/null ; git rev-parse HEAD ; popd > /dev/null`
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@umlaeute
This seems to break now for me, not sure why, investigating

Copy link
Contributor Author

@umlaeute umlaeute Oct 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm. i obviously did not test in docker, though i do not understand why it would break.

the only possible breakage i can think of is, that the pushd/popd solution handles the case gracefully where ${CUSTOM_PI_OS_PATH} does not exist at all (in which case you could get the commitish of the current directory).
if this is indeed the desired behavior, then i think a somewhat easier to read solution would be

[ -n "$BASE_COMMIT" ] || BASE_COMMIT=$(cd "${CUSTOM_PI_OS_PATH}"; git rev-parse HEAD)

(since the $() (like the ``) is executed in a sub-shell, there's no need to go back to the calling directory)

this would fail (in the case of a non-existing ${CUSTOM_PI_OS_PATH}) only if the the current directory isn't git-tracked. (though i think in this case the original code would fail as well)

otoh, the original $(pushd /bla; git rev-parse HEAD; popd) (that is: with an non-existing ${CUSTOM_PI_OS_PATH}) returns an error as well, so the script would fail if this dir did not exist.

🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

my reference to docker was triggered by #206 (comment) (for whatever reasons I assumed that the comment on is related to this regression)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could you provide an example (or link to a repository) that shows the problem?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Related:
#209

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@umlaeute The issue derives because the git repo is not available from the docker container. The solution would be to keep the commit that the container was built from is a agreed location. Then search for that, then for the git repo.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i came to the same conclusion (but obviously forgot to comment).

and yes, i think that it should be part of the Docker buildout to embed such a frozen version information within the container (at least, if the BASE_COMMIT info is of any relevance with the Docker container; i guess mostly you would be interested in the commitish of the "consumer" OS, rather than the base CustomPiOS commitish)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants