[v2] docker: update dependency for current build
diff mbox series

Message ID 20200212033547.11693-1-lukas.bulwahn@gmail.com
State New
Headers show
Series
  • [v2] docker: update dependency for current build
Related show

Commit Message

Lukas Bulwahn Feb. 12, 2020, 3:35 a.m. UTC
From: Pranav Annam <pranavannam@gmail.com>

The dependency libssl1.0-dev in the Dockerfile makes docker build fail:

  The following packages have unmet dependencies:
   libmysqlclient-dev : Depends: libssl-dev (>= 1.1.1-1ubuntu2.1~18.04.5~)
  but it is not going to be installed
  E: Unable to correct problems, you have held broken packages.

There seems to be a conflict with different versions of libssl and
libmysqlclient that did not exist previously with Ubuntu 18.04.

Just use the current libssl-dev from Ubuntu 18.04 to fix the build.

Signed-off-by: Pranav Annam <pranavannam@gmail.com>
[rephrased commit message]
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
---

Pranav, here is my proposal on how future patches should look
like. Please look at the difference to your original patch.

Stephen, Daniel, please pick the patch with the commit message
that you prefer and explain to us why (for future newcomers to
be pointed out to and learn).

 tools/docker/Dockerfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Daniel Axtens Feb. 17, 2020, 12:14 p.m. UTC | #1
Lukas Bulwahn <lukas.bulwahn@gmail.com> writes:

> From: Pranav Annam <pranavannam@gmail.com>
>
> The dependency libssl1.0-dev in the Dockerfile makes docker build fail:
>
>   The following packages have unmet dependencies:
>    libmysqlclient-dev : Depends: libssl-dev (>= 1.1.1-1ubuntu2.1~18.04.5~)
>   but it is not going to be installed
>   E: Unable to correct problems, you have held broken packages.
>
> There seems to be a conflict with different versions of libssl and
> libmysqlclient that did not exist previously with Ubuntu 18.04.
>
> Just use the current libssl-dev from Ubuntu 18.04 to fix the build.
>
> Signed-off-by: Pranav Annam <pranavannam@gmail.com>
> [rephrased commit message]
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
> ---
>
> Pranav, here is my proposal on how future patches should look
> like. Please look at the difference to your original patch.

Hi,

> Stephen, Daniel, please pick the patch with the commit message
> that you prefer and explain to us why (for future newcomers to
> be pointed out to and learn).

There are a few reasons that I prefer this version. What I try to do is
to mostly follow the patch formatting guide from the Linux kernel. I
realise that's a bit arbitrary and not especially well documented,
sorry! Historically there is a lot of use of patchwork within the kernel
community, it was originally developed for use within that community,
and I am primarily a kernel developer.

See
https://www.kernel.org/doc/html/v5.5/process/submitting-patches.html
especially
https://www.kernel.org/doc/html/v5.5/process/submitting-patches.html#describe-your-changes
https://www.kernel.org/doc/html/v5.5/process/submitting-patches.html#the-canonical-patch-format

Key things for your attention next time:

 - line length
 
 - subject that follows a format "subsystem: summary phrase". Patchwork
   doesn't have hugely clear subsystems all the time, so I tend to use
   something like 'git log <file I change>' to see what subsystem name
   previous committers have used recently.

 - proofreading (e.g. Dockerfile, not Dokerfile)

 - Description that is 'imperative': 'make X do Y', 'Use libssl-dev'


We're not always good at following these standards and we're not as
strict as the kernel, but they're what I aspire to.

Regards,
Daniel

>
>  tools/docker/Dockerfile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile
> index 5ef1120..62ac461 100644
> --- a/tools/docker/Dockerfile
> +++ b/tools/docker/Dockerfile
> @@ -35,7 +35,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
>      libpq-dev \
>      libreadline-dev \
>      libsqlite3-dev \
> -    libssl1.0-dev \
> +    libssl-dev \
>      mysql-client \
>      postgresql-client \
>      tzdata \
> -- 
> 2.17.1
>
> _______________________________________________
> Patchwork mailing list
> Patchwork@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/patchwork
Daniel Axtens Feb. 17, 2020, 12:28 p.m. UTC | #2
Lukas Bulwahn <lukas.bulwahn@gmail.com> writes:

> From: Pranav Annam <pranavannam@gmail.com>
>
> The dependency libssl1.0-dev in the Dockerfile makes docker build fail:
>
>   The following packages have unmet dependencies:
>    libmysqlclient-dev : Depends: libssl-dev (>= 1.1.1-1ubuntu2.1~18.04.5~)
>   but it is not going to be installed
>   E: Unable to correct problems, you have held broken packages.
>
> There seems to be a conflict with different versions of libssl and
> libmysqlclient that did not exist previously with Ubuntu 18.04.

Huh, I rebuilt my image a few weeks ago and didn't see this.

So I tried this:

docker-compose down
docker rmi patchwork_web:latest
docker-compose build --no-cache web

Then I was able to reproduce the problem. I think it was being masked by
the cache on my end, but I can't find a change that would have
introduced it. Commit a0db4732139d ("docker: Use pyenv for Python
versions") looks like it introduced the dependency, but clearly it
worked then, and we haven't changed the base image or the other packages
we install! It is weird that it would have broken under us like this. 

Anyway, your patch seems correct to me, and fixes the issue. Applied.

Thank you for your contribution to Patchwork!

Regards,
Daniel

>
> Just use the current libssl-dev from Ubuntu 18.04 to fix the build.
>
> Signed-off-by: Pranav Annam <pranavannam@gmail.com>
> [rephrased commit message]
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
> ---
>
> Pranav, here is my proposal on how future patches should look
> like. Please look at the difference to your original patch.
>
> Stephen, Daniel, please pick the patch with the commit message
> that you prefer and explain to us why (for future newcomers to
> be pointed out to and learn).
>
>  tools/docker/Dockerfile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile
> index 5ef1120..62ac461 100644
> --- a/tools/docker/Dockerfile
> +++ b/tools/docker/Dockerfile
> @@ -35,7 +35,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
>      libpq-dev \
>      libreadline-dev \
>      libsqlite3-dev \
> -    libssl1.0-dev \
> +    libssl-dev \
>      mysql-client \
>      postgresql-client \
>      tzdata \
> -- 
> 2.17.1
>
> _______________________________________________
> Patchwork mailing list
> Patchwork@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/patchwork
Lukas Bulwahn Feb. 17, 2020, 12:54 p.m. UTC | #3
On Mon, 17 Feb 2020, Daniel Axtens wrote:

> >
> > There seems to be a conflict with different versions of libssl and
> > libmysqlclient that did not exist previously with Ubuntu 18.04.
> 
> Huh, I rebuilt my image a few weeks ago and didn't see this.
> 
> So I tried this:
> 
> docker-compose down
> docker rmi patchwork_web:latest
> docker-compose build --no-cache web
> 
> Then I was able to reproduce the problem. I think it was being masked by
> the cache on my end, but I can't find a change that would have
> introduced it. Commit a0db4732139d ("docker: Use pyenv for Python
> versions") looks like it introduced the dependency, but clearly it
> worked then, and we haven't changed the base image or the other packages
> we install! It is weird that it would have broken under us like this. 
> 

Yes, I have hit that problem with docker as well.
Docker caches, Debian/Ubuntu distro updates and project-specific changes 
makes it impossible to figure out why it "just works on my machine", and 
never on those of the others ;)

I guess here is no easy answer, though, and it works for the moment.

Lukas

Patch
diff mbox series

diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile
index 5ef1120..62ac461 100644
--- a/tools/docker/Dockerfile
+++ b/tools/docker/Dockerfile
@@ -35,7 +35,7 @@  RUN apt-get update && apt-get install -y --no-install-recommends \
     libpq-dev \
     libreadline-dev \
     libsqlite3-dev \
-    libssl1.0-dev \
+    libssl-dev \
     mysql-client \
     postgresql-client \
     tzdata \