Skip to content

Commit 45ca94e

Browse files
authored
Feature: Add build tags (#348)
1 parent 4637844 commit 45ca94e

7 files changed

Lines changed: 22 additions & 41 deletions

File tree

.github/workflows/release.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,19 @@ jobs:
6262
run: |
6363
export GOOS=${{ matrix.goos || 'linux' }}
6464
export GOARCH=${{ matrix.goarch }}
65+
BUILD_TAGS="-tags noextradeps"
6566
6667
if [ -n "${{ matrix.goarm }}" ]; then
6768
export GOARM=${{ matrix.goarm }}
6869
fi
6970
7071
if [ -n "${{ matrix.gomips }}" ]; then
72+
BUILD_TAGS="${BUILD_TAGS},nosqlite"
7173
export GOMIPS=${{ matrix.gomips }}
74+
echo "Building for MIPS architecture without SQLite support"
7275
fi
7376
74-
go build -trimpath -ldflags="-s -w \
77+
go build -trimpath $BUILD_TAGS -ldflags="-s -w \
7578
-X qp/internal/about.Version=${{ env.TAG_NAME }} \
7679
-X qp/internal/about.Commit=$(git rev-parse HEAD) \
7780
-X qp/internal/about.Date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ module qp
33
go 1.24.1
44

55
require (
6-
github.com/Zweih/go-rpmdb v0.1.3
7-
github.com/glebarez/go-sqlite v1.22.0
6+
github.com/Zweih/go-rpmdb v0.1.5
87
github.com/glebarez/sqlite v1.11.0
98
github.com/goccy/go-json v0.10.5
109
github.com/spf13/pflag v1.0.5
@@ -14,6 +13,7 @@ require (
1413

1514
require (
1615
github.com/dustin/go-humanize v1.0.1 // indirect
16+
github.com/glebarez/go-sqlite v1.22.0 // indirect
1717
github.com/google/go-cmp v0.6.0 // indirect
1818
github.com/google/uuid v1.5.0 // indirect
1919
github.com/jinzhu/inflection v1.0.0 // indirect

go.sum

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
github.com/Zweih/go-rpmdb v0.1.2 h1:U6btqhRX2ysqf5kkPuC21TUp3hm2VWB4dzy5rnKvO4I=
2-
github.com/Zweih/go-rpmdb v0.1.2/go.mod h1:khf3UrwNPly5A9WbP0ssGs/z919WKNQiS+KfRhTEHsU=
3-
github.com/Zweih/go-rpmdb v0.1.3 h1:3N35vm7QO+RsW3s1jpkSDlvHRXkkoJPKUPZQLFRNBys=
4-
github.com/Zweih/go-rpmdb v0.1.3/go.mod h1:TjmMoALMq9AAzoePocKLTz0zGpl4zCP7/4cBojateJA=
1+
github.com/Zweih/go-rpmdb v0.1.5 h1:G2imFPu2Q5n50IiIZBMTzl3snCAqGTbckHAbeTwdLmg=
2+
github.com/Zweih/go-rpmdb v0.1.5/go.mod h1:HN3eMq1HLr0PUcGrd+MRbZCQWkLpqSBuCToxUJDC4JI=
53
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
64
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
75
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
86
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
9-
github.com/glebarez/go-sqlite v1.21.2 h1:3a6LFC4sKahUunAmynQKLZceZCOzUthkRkEAl9gAXWo=
10-
github.com/glebarez/go-sqlite v1.21.2/go.mod h1:sfxdZyhQjTM2Wry3gVYWaW072Ri1WMdWJi0k6+3382k=
117
github.com/glebarez/go-sqlite v1.22.0 h1:uAcMJhaA6r3LHMTFgP0SifzgXg46yJkgxqyuyec+ruQ=
128
github.com/glebarez/go-sqlite v1.22.0/go.mod h1:PlBIdHe0+aUEFn+r2/uthrWq4FxbzugL0L8Li6yQJbc=
139
github.com/glebarez/sqlite v1.11.0 h1:wSG0irqzP6VurnMEpFGer5Li19RpIRi2qvQz++w0GMw=
@@ -18,28 +14,22 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
1814
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1915
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
2016
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo=
21-
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
22-
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
2317
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
2418
github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
2519
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
2620
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
2721
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
2822
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
29-
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
30-
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
3123
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
3224
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
3325
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
3426
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
35-
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
3627
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
3728
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
3829
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
3930
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
4031
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
4132
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
42-
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4333
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4434
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
4535
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
@@ -53,19 +43,11 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
5343
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
5444
gorm.io/gorm v1.25.7 h1:VsD6acwRjz2zFxGO50gPO6AkNs7KKnvfzUjHQhZDz/A=
5545
gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
56-
modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE=
57-
modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY=
5846
modernc.org/libc v1.37.6 h1:orZH3c5wmhIQFTXF+Nt+eeauyd+ZIt2BX6ARe+kD+aw=
5947
modernc.org/libc v1.37.6/go.mod h1:YAXkAZ8ktnkCKaN9sw/UDeUVkGYJ/YquGO4FTi5nmHE=
60-
modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=
61-
modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
6248
modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
6349
modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
64-
modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds=
65-
modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
6650
modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E=
6751
modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E=
68-
modernc.org/sqlite v1.23.1 h1:nrSBg4aRQQwq59JpvGEQ15tNxoO5pX/kUjcRNwSAGQM=
69-
modernc.org/sqlite v1.23.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk=
7052
modernc.org/sqlite v1.28.0 h1:Zx+LyDDmXczNnEQdvPuEfcFVA2ZPyaD7UCZDjef3BHQ=
7153
modernc.org/sqlite v1.28.0/go.mod h1:Qxpazz0zH8Z1xCFyi5GSL3FzbtZ3fvbjmywNogldEW0=

internal/origins/drivers/rpm/fetch.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"qp/internal/pkgdata"
77

88
rpmdb "github.com/Zweih/go-rpmdb/pkg"
9-
_ "github.com/glebarez/sqlite"
109
)
1110

1211
func fetchPackages(origin string, path string) ([]*pkgdata.PkgInfo, error) {

internal/origins/drivers/rpm/history.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ import (
55
"fmt"
66
"os"
77
"qp/internal/consts"
8-
9-
_ "github.com/glebarez/go-sqlite"
108
)
119

1210
const permissionError = "failed to open history database (may need root permissions): %w\n rpm install reasons will incorrectly display as 'explicit'"

internal/origins/drivers/rpm/rel_nodes.go

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,20 +49,14 @@ func (o *OrExpr) Evaluate(installedMap map[string]*pkgdata.PkgInfo) []pkgdata.Re
4949
var result []pkgdata.Relation
5050
result = append(result, o.Left.Evaluate(installedMap)...)
5151
result = append(result, o.Right.Evaluate(installedMap)...)
52+
5253
return result
5354
}
5455

5556
func (cond *CondExpr) Evaluate(installedMap map[string]*pkgdata.PkgInfo) []pkgdata.Relation {
5657
conditionMet := cond.evaluateCond(installedMap)
57-
58-
if cond.IsUnless {
59-
if !conditionMet {
60-
return cond.MainExpr.Evaluate(installedMap)
61-
}
62-
} else {
63-
if conditionMet {
64-
return cond.MainExpr.Evaluate(installedMap)
65-
}
58+
if (cond.IsUnless && !conditionMet) || (!cond.IsUnless && conditionMet) {
59+
return cond.MainExpr.Evaluate(installedMap)
6660
}
6761

6862
return nil
@@ -76,10 +70,8 @@ func (cond *CondExpr) evaluateCond(installedMap map[string]*pkgdata.PkgInfo) boo
7670
continue
7771
}
7872

79-
if rel.Version != "" {
80-
if !versionSatisfies(installedPkg.Version, rel.Operator, rel.Version) {
81-
continue
82-
}
73+
if rel.Version != "" && !isValidVersion(installedPkg.Version, rel.Version, rel.Operator) {
74+
continue
8375
}
8476

8577
return true
@@ -88,10 +80,10 @@ func (cond *CondExpr) evaluateCond(installedMap map[string]*pkgdata.PkgInfo) boo
8880
return false
8981
}
9082

91-
func versionSatisfies(
83+
func isValidVersion(
9284
installedVersion string,
93-
operator pkgdata.RelationOp,
9485
requiredVersion string,
86+
operator pkgdata.RelationOp,
9587
) bool {
9688
comparison := compareVersions(installedVersion, requiredVersion)
9789

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//go:build !nosqlite
2+
3+
package rpm
4+
5+
import (
6+
_ "github.com/glebarez/sqlite"
7+
)

0 commit comments

Comments
 (0)