Skip to content

Windows builds are broken for v0.1.0 release #53

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
atc0005 opened this issue Oct 7, 2020 · 0 comments · Fixed by #54
Closed

Windows builds are broken for v0.1.0 release #53

atc0005 opened this issue Oct 7, 2020 · 0 comments · Fixed by #54
Assignees
Labels
bug Something isn't working builds sqlite windows
Milestone

Comments

@atc0005
Copy link
Owner

atc0005 commented Oct 7, 2020

Tested in a Windows 10 x64 VM:

C:\Users\Admin\Desktop>mysql2sqlite-v0.1.0-0-gacc4d38-windows-amd64.exe --config-file C:\Users\Admin\Desktop\config.example.yaml
←[34m  INFO←[0m[0000] mysql2sqlite v0.1.0-0-gacc4d38 (https://github.com/atc0005/mysql2sqlite)
←[34m  INFO←[0m[0000] Successfully loaded configuration file C:\Users\Admin\Desktop\config.example.yaml
←[34m  INFO←[0m[0000] Connection established to source database server at 127.0.0.1:3306
←[33m  WARN←[0m[0000] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: attempt 1 of 6 to verify database connection failed: Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
←[34m  INFO←[0m[0000] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: applying retry delay of 2s
←[33m  WARN←[0m[0002] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: attempt 2 of 6 to verify database connection failed: Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
←[34m  INFO←[0m[0002] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: applying retry delay of 2s
←[33m  WARN←[0m[0004] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: attempt 3 of 6 to verify database connection failed: Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
←[34m  INFO←[0m[0004] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: applying retry delay of 2s
←[33m  WARN←[0m[0006] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: attempt 4 of 6 to verify database connection failed: Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
←[34m  INFO←[0m[0006] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: applying retry delay of 2s
←[33m  WARN←[0m[0008] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: attempt 5 of 6 to verify database connection failed: Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
←[34m  INFO←[0m[0008] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: applying retry delay of 2s
←[33m  WARN←[0m[0010] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: attempt 6 of 6 to verify database connection failed: Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
←[34m  INFO←[0m[0010] github.com/atc0005/mysql2sqlite/internal/dbqs.VerifyDBConn: applying retry delay of 2s
←[31m ERROR←[0m[0012] verifying SQLite database connection failed: Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
←[34m  INFO←[0m[0012] Successfully closed connection to SQLite database C:\Users\Admin\Desktop/mailserver.db
←[34m  INFO←[0m[0012] Successfully closed connection to database mailserver on host 127.0.0.1

Will likely be sorted with the work on #48.

@atc0005 atc0005 added bug Something isn't working sqlite builds windows labels Oct 7, 2020
@atc0005 atc0005 added this to the Next Release milestone Oct 7, 2020
@atc0005 atc0005 self-assigned this Oct 7, 2020
atc0005 added a commit that referenced this issue Oct 8, 2020
The previous release generated Windows binaries that were
broken (GH-53) and Linux binaries that were unintentionally
dynamic (GH-48).

This commit provides an updated Makefile and GitHub
workflow which provides multiple build options for both
dynamic and static linking, but defaults to the previous
dynamically linked behavior.

The Makefile build options now explicitly enable the
`CGO_ENABLED` environment variable so that all builds
have the required cgo functionality enabled.

A `docker` Makefile recipe is provided to generate
binaries using new Docker images from the `atc0005/go-ci`
project based on the official Golang Alpine Linux
image. The result is statically linked binaries based on
the musl C library instead of glibc. The intent is to
help prevent licensing issues surround the GNU C
library's LGPL licensing (which I do not fully understand).

Multiple build tags are specified for static builds which
enable Go-specific replacements for common glibc-provided
features:

- `osusergo`
- `netgo`

and a build tag specific to disabling SQLite extensions,
which we do not use with this specific project:

- `sqlite_omit_load_extension`

Minor documentation updates have been included which update
the build requirements and specific steps for building
binaries for this project. Further updates are likely
needed to add polish.

A Docker Compose file has been included for kicking off
multiple static binary builds in parallel, but it may end
up getting tossed in a later PR if we don't make sufficient
use of it.

- refs GH-48
- refs golang/go 38789
- refs golang/go 26492

- refs atc0005/go-ci#85
atc0005 added a commit that referenced this issue Oct 8, 2020
The previous release generated Windows binaries that were
broken (GH-53) and Linux binaries that were unintentionally
dynamic (GH-48).

This commit provides an updated Makefile and GitHub
workflow which provides multiple build options for both
dynamic and static linking, but defaults to the previous
dynamically linked behavior. The GitHub Workflow jobs
based on the Makefile build tasks use a 20 minute
timeout vs the 10 minute timeout used previously.

The Makefile build options now explicitly enable the
`CGO_ENABLED` environment variable so that all builds
have the required cgo functionality enabled.

A `docker` Makefile recipe is provided to generate
binaries using new Docker images from the `atc0005/go-ci`
project based on the official Golang Alpine Linux
image. The result is statically linked binaries based on
the musl C library instead of glibc. The intent is to
help prevent licensing issues surround the GNU C
library's LGPL licensing (which I do not fully understand).

Multiple build tags are specified for static builds which
enable Go-specific replacements for common glibc-provided
features:

- `osusergo`
- `netgo`

and a build tag specific to disabling SQLite extensions,
which we do not use with this specific project:

- `sqlite_omit_load_extension`

Minor documentation updates have been included which update
the build requirements and specific steps for building
binaries for this project. Further updates are likely
needed to add polish.

A Docker Compose file has been included for kicking off
multiple static binary builds in parallel, but it may end
up getting tossed in a later PR if we don't make sufficient
use of it.

- refs GH-48
- refs golang/go 38789
- refs golang/go 26492

- refs atc0005/go-ci#85
atc0005 added a commit that referenced this issue Oct 8, 2020
The previous release generated Windows binaries that were
broken (GH-53) and Linux binaries that were unintentionally
dynamic (GH-48).

This commit provides an updated Makefile and GitHub
workflow which provides multiple build options for both
dynamic and static linking, but defaults to the previous
dynamically linked behavior.

The GitHub Workflow jobs based on the Makefile build
tasks use a 20 minute timeout vs the 10 minute timeout
used previously. Also, `CGO_ENABLED` has been explicitly
set in order to ensure that cgo support is enabled.

The Makefile build options now explicitly enable the
`CGO_ENABLED` environment variable so that all builds
have the required cgo functionality enabled.

A `docker` Makefile recipe is provided to generate
binaries using new Docker images from the `atc0005/go-ci`
project based on the official Golang Alpine Linux
image. The result is statically linked binaries based on
the musl C library instead of glibc. The intent is to
help prevent licensing issues surround the GNU C
library's LGPL licensing (which I do not fully understand).

Multiple build tags are specified for static builds which
enable Go-specific replacements for common glibc-provided
features:

- `osusergo`
- `netgo`

and a build tag specific to disabling SQLite extensions,
which we do not use with this specific project:

- `sqlite_omit_load_extension`

Minor documentation updates have been included which update
the build requirements and specific steps for building
binaries for this project. Further updates are likely
needed to add polish.

A Docker Compose file has been included for kicking off
multiple static binary builds in parallel, but it may end
up getting tossed in a later PR if we don't make sufficient
use of it.

- refs GH-48
- refs golang/go 38789
- refs golang/go 26492

- refs atc0005/go-ci#85
atc0005 added a commit that referenced this issue Oct 8, 2020
The previous release generated Windows binaries that were
broken (GH-53) and Linux binaries that were unintentionally
dynamic (GH-48).

This commit provides an updated Makefile and GitHub
workflow which provides multiple build options for both
dynamic and static linking, but defaults to the previous
dynamically linked behavior.

The GitHub Workflow jobs based on the Makefile build
tasks use a 20 minute timeout vs the 10 minute timeout
used previously. Also, `CGO_ENABLED` has been explicitly
set in order to ensure that cgo support is enabled.

The Makefile build options now explicitly enable the
`CGO_ENABLED` environment variable so that all builds
have the required cgo functionality enabled.

A `docker` Makefile recipe is provided to generate
binaries using new Docker images from the `atc0005/go-ci`
project based on the official Golang Alpine Linux
image. The result is statically linked binaries based on
the musl C library instead of glibc. The intent is to
help prevent licensing issues surround the GNU C
library's LGPL licensing (which I do not fully understand).

Multiple build tags are specified for static builds which
enable Go-specific replacements for common glibc-provided
features:

- `osusergo`
- `netgo`

and a build tag specific to disabling SQLite extensions,
which we do not use with this specific project:

- `sqlite_omit_load_extension`

Minor documentation updates have been included which update
the build requirements and specific steps for building
binaries for this project. Further updates are likely
needed to add polish. Several reference links have also
been added.

A Docker Compose file has been included for kicking off
multiple static binary builds in parallel, but it may end
up getting tossed in a later PR if we don't make sufficient
use of it.

- refs GH-48
- refs golang/go 38789
- refs golang/go 26492

- refs atc0005/go-ci#85
atc0005 added a commit that referenced this issue Oct 8, 2020
The previous release generated Windows binaries that were
broken (GH-53) and Linux binaries that were unintentionally
dynamic (GH-48).

This commit provides an updated Makefile and GitHub
workflow which provides multiple build options for both
dynamic and static linking, but defaults to the previous
dynamically linked behavior.

The GitHub Workflow jobs based on the Makefile build
tasks use a 20 minute timeout vs the 10 minute timeout
used previously. Also, `CGO_ENABLED` has been explicitly
set in order to ensure that cgo support is enabled.

The Makefile build options now explicitly enable the
`CGO_ENABLED` environment variable so that all builds
have the required cgo functionality enabled.

A `docker` Makefile recipe is provided to generate
binaries using new Docker images from the `atc0005/go-ci`
project based on the official Golang Alpine Linux
image. The result is statically linked binaries based on
the musl C library instead of glibc. The intent is to
help prevent licensing issues surround the GNU C
library's LGPL licensing (which I do not fully understand).

Multiple build tags are specified for static builds which
enable Go-specific replacements for common glibc-provided
features:

- `osusergo`
- `netgo`

and a build tag specific to disabling SQLite extensions,
which we do not use with this specific project:

- `sqlite_omit_load_extension`

Minor documentation updates have been included which update
the build requirements and specific steps for building
binaries for this project. Further updates are likely
needed to add polish. Several reference links have also
been added.

A Docker Compose file has been included for kicking off
multiple static binary builds in parallel, but it may end
up getting tossed in a later PR if we don't make sufficient
use of it.

- refs GH-48
- refs golang/go 38789
- refs golang/go 26492

- refs atc0005/go-ci#85
@atc0005 atc0005 changed the title Windows build is broken for v0.1.0 release Windows builds are broken for v0.1.0 release Oct 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working builds sqlite windows
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant