~alpine/users

4 3

How to build package and put it correctly into noarch

Wolf
Details
Message ID
<20190710221454.sclmpm2lkirkl4ry@wolfsden.cz>
Sender timestamp
1562796894
DKIM signature
missing
Download raw message
Greetings,

I'm in process of creating alpine package for few of the programs I use,
and I've hit a small road block. My package is arch=all, but it has -doc
subpackage, which is created as arch=noarch. But abuild puts them both
into x86_64 directory. Based on

https://lists.alpinelinux.org/~alpine/devel/%3CCABErt4f053VGtCzdonnt_00_hgyHqOj5m1jMEq_RodS3x2s-pQ%40mail.gmail.com%3E

my understanding is that arch=noarch packages should be in noarch
directory, so while currently my tree looks like

/alpine/
└── v3.10
    └── wolfsden
        └── x86_64
            ├── acme-client-0.2.1-r0.apk
            ├── acme-client-doc-0.2.1-r0.apk
            └── APKINDEX.tar.gz

it should look like

/alpine/
└── v3.10
    └── wolfsden
        ├── noarch
        │   └── acme-client-doc-0.2.1-r0.apk
        └── x86_64
            ├── acme-client-0.2.1-r0.apk
            └── APKINDEX.tar.gz

However, I'm not sure how to get it into such state. As said before,
abuild just puts everything into x86_64. Is there a script in alpine-sdk
or somewhere that would sort it into correct locations? Do I need to
write my up shell script or something to sort it out based on
APKINDEX.tar.gz content?

Thank you very much for any advice on how to tackle this ^_^

W.



Abuild invocation looks like:

$ sudo -u builder -- abuild -r

And here is my APKBUILD (if relevant):

# Contributor: Gray Wolf <wolf@wolfsden.cz>
# Maintainer: Gray Wolf <wolf@wolfsden.cz>
pkgname="acme-client"
pkgver="0.2.1"
pkgrel=0
pkgdesc="Port of OpenBSD's acme-client"
url="https://github.com/graywolf/acme-client-portable"
arch="all"
license="GPL-2.0-only"
depends="openssl libbsd"
makedepends="openssl-dev libbsd-dev"
install=""
subpackages="$pkgname-doc"
source="https://data.wolfsden.cz/sources/acme-client-${pkgver}.tar.xz"
builddir="$srcdir/"

build() {
	cd "$srcdir"/acme-client-"$pkgver"

	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--localstatedir=/var
	make
}

check() {
	cd "$srcdir"/acme-client-"$pkgver"

	make check
}

package() {
	cd "$srcdir"/acme-client-"$pkgver"

	make DESTDIR="$pkgdir" install
}

sha512sums="
b5786653c6f147a4ff258d08b0b66c7c9bb35120f75fbdbb760efbe9cd7217d45ae61805c578b6eb4651eb830cc9a6b85ae1025f62d6bd924118f49cb18d4b8f  acme-client-0.2.1.tar.xz
"

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
Chloe Kudryavtsev
Details
Message ID
<cb3177c2-31b7-53f8-a49c-3c3fb85832d3@toastin.space>
In-Reply-To
<20190710221454.sclmpm2lkirkl4ry@wolfsden.cz> (view parent)
Sender timestamp
1562805702
DKIM signature
missing
Download raw message
On 7/10/2019 6:14 PM, Wolf wrote:
> Greetings,

Heya!

> However, I'm not sure how to get it into such state. As said before,
> abuild just puts everything into x86_64.

That is normal and expected! noarch is there for a different purpose.
Don't worry about it and carry on :)
Wolf
Details
Message ID
<20190711063921.7n6bbixoeksthn3v@wolfsden.cz>
In-Reply-To
<cb3177c2-31b7-53f8-a49c-3c3fb85832d3@toastin.space> (view parent)
Sender timestamp
1562827161
DKIM signature
missing
Download raw message
Hello :),

On , Chloe Kudryavtsev wrote:
> That is normal and expected! noarch is there for a different purpose.
> Don't worry about it and carry on :)

That's what I originally did but it did not work. Here's what I did
next:

1. rsync it to the server

	sending incremental file list
	./
	v3.10/
	v3.10/wolfsden/
	v3.10/wolfsden/x86_64/
	v3.10/wolfsden/x86_64/APKINDEX.tar.gz
		    808 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=2/7)
	v3.10/wolfsden/x86_64/acme-client-0.2.1-r0.apk
		 35,897 100%    4.89MB/s    0:00:00 (xfr#2, to-chk=1/7)
	v3.10/wolfsden/x86_64/acme-client-doc-0.2.1-r0.apk
		  5,856 100%  714.84kB/s    0:00:00 (xfr#3, to-chk=0/7)

	sent 42,651 bytes  received 470 bytes  28,747.33 bytes/sec
	total size is 42,561  speedup is 0.99

2. Add repository and public key to docker image to test it out

	/ # cat /etc/apk/repositories
	http://dl-cdn.alpinelinux.org/alpine/v3.10/main
	http://dl-cdn.alpinelinux.org/alpine/v3.10/community
	https://repo.wolfsden.cz/alpine/v3.10/wolfsden
	/ # cat /etc/apk/keys/wolf@wolfsden.cz-5d1ce3ca.rsa.pub
	-----BEGIN PUBLIC KEY-----
	MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzidab06xgdlSkBlj6UUP
	t2AA94dxFbSexVACiMQnnFD80f1rzlYnIr5Wf5//53w+JYzSl0CBQzmIUA4VtzK5
	N5IPVo5Wcq4BdT3H2802hI5xvYnmlW2RiXCVj+LDJwghFXmEGRjB5WgKxWZzacG8
	PJrcEhN6WwJChG9Cuck/OUXG4J6QKsP3yyoHJFbRc9UmoJDEYofRnPuIyU7TV3ZL
	oecr6G41JrRhLhQ/nKiP8S2feM/vH62lrmHTh6FiD3V+UNW26mB281TsiOErUqkx
	lH1khZvA7xOZIB++NkZcFYjy2PQXILyVqgYHsGUELSqyL6ldqOrEpTWxb1rJjmfZ
	1QIDAQAB
	-----END PUBLIC KEY-----

3. Try to install acme-client

	/ # apk update
	fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
	fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
	fetch https://repo.wolfsden.cz/alpine/v3.10/wolfsden/x86_64/APKINDEX.tar.gz
	v3.10.0-43-ge7c8809914 [http://dl-cdn.alpinelinux.org/alpine/v3.10/main]
	v3.10.0-43-ge7c8809914 [http://dl-cdn.alpinelinux.org/alpine/v3.10/community]
	OK: 10330 distinct packages available
	/ # apk add acme-client
	(1/2) Installing libbsd (0.9.1-r0)
	(2/2) Installing acme-client (0.2.1-r0)
	Executing busybox-1.30.1-r2.trigger
	OK: 218 MiB in 62 packages

This works fine.

4. Try to install acme-client-doc

	/ # apk add acme-client-doc
	(1/1) Installing acme-client-doc (0.2.1-r0)
	ERROR: acme-client-doc-0.2.1-r0: package mentioned in index not found (try 'apk update')
	1 error; 218 MiB in 62 packages

This does not work since it cannot find the package.

But after I move it to noarch

	$ find /srv/http/repo.wolfsden.cz/alpine/
	/srv/http/repo.wolfsden.cz/alpine/
	/srv/http/repo.wolfsden.cz/alpine/v3.10
	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden
	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden/noarch
	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden/noarch/acme-client-doc-0.2.1-r0.apk
	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden/x86_64
	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden/x86_64/acme-client-0.2.1-r0.apk
	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden/x86_64/APKINDEX.tar.gz

It works

	/ # apk add acme-client-doc
	(1/1) Installing acme-client-doc (0.2.1-r0)
	OK: 218 MiB in 63 packages

So I'm not sure what am I doing wrong.

Thank

W.

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
Tuan Hoang
Details
Message ID
<11dde3bd-d22f-764e-3e82-5d35b834f5f3@linux.ibm.com>
In-Reply-To
<20190711063921.7n6bbixoeksthn3v@wolfsden.cz> (view parent)
DKIM signature
missing
Download raw message
Just spin up an Alpine 3.10 docker image, install acme-client-doc from
your repo just fine.


On 7/11/19 7:39 AM, Wolf wrote:
> Hello :),
> 
> On , Chloe Kudryavtsev wrote:
>> That is normal and expected! noarch is there for a different purpose.
>> Don't worry about it and carry on :)
> 
> That's what I originally did but it did not work. Here's what I did
> next:
> 
> 1. rsync it to the server
> 
> 	sending incremental file list
> 	./
> 	v3.10/
> 	v3.10/wolfsden/
> 	v3.10/wolfsden/x86_64/
> 	v3.10/wolfsden/x86_64/APKINDEX.tar.gz
> 		    808 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=2/7)
> 	v3.10/wolfsden/x86_64/acme-client-0.2.1-r0.apk
> 		 35,897 100%    4.89MB/s    0:00:00 (xfr#2, to-chk=1/7)
> 	v3.10/wolfsden/x86_64/acme-client-doc-0.2.1-r0.apk
> 		  5,856 100%  714.84kB/s    0:00:00 (xfr#3, to-chk=0/7)
> 
> 	sent 42,651 bytes  received 470 bytes  28,747.33 bytes/sec
> 	total size is 42,561  speedup is 0.99
> 
> 2. Add repository and public key to docker image to test it out
> 
> 	/ # cat /etc/apk/repositories
> 	http://dl-cdn.alpinelinux.org/alpine/v3.10/main
> 	http://dl-cdn.alpinelinux.org/alpine/v3.10/community
> 	https://repo.wolfsden.cz/alpine/v3.10/wolfsden
> 	/ # cat /etc/apk/keys/wolf@wolfsden.cz-5d1ce3ca.rsa.pub
> 	-----BEGIN PUBLIC KEY-----
> 	MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzidab06xgdlSkBlj6UUP
> 	t2AA94dxFbSexVACiMQnnFD80f1rzlYnIr5Wf5//53w+JYzSl0CBQzmIUA4VtzK5
> 	N5IPVo5Wcq4BdT3H2802hI5xvYnmlW2RiXCVj+LDJwghFXmEGRjB5WgKxWZzacG8
> 	PJrcEhN6WwJChG9Cuck/OUXG4J6QKsP3yyoHJFbRc9UmoJDEYofRnPuIyU7TV3ZL
> 	oecr6G41JrRhLhQ/nKiP8S2feM/vH62lrmHTh6FiD3V+UNW26mB281TsiOErUqkx
> 	lH1khZvA7xOZIB++NkZcFYjy2PQXILyVqgYHsGUELSqyL6ldqOrEpTWxb1rJjmfZ
> 	1QIDAQAB
> 	-----END PUBLIC KEY-----
> 
> 3. Try to install acme-client
> 
> 	/ # apk update
> 	fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
> 	fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
> 	fetch https://repo.wolfsden.cz/alpine/v3.10/wolfsden/x86_64/APKINDEX.tar.gz
> 	v3.10.0-43-ge7c8809914 [http://dl-cdn.alpinelinux.org/alpine/v3.10/main]
> 	v3.10.0-43-ge7c8809914 [http://dl-cdn.alpinelinux.org/alpine/v3.10/community]
> 	OK: 10330 distinct packages available
> 	/ # apk add acme-client
> 	(1/2) Installing libbsd (0.9.1-r0)
> 	(2/2) Installing acme-client (0.2.1-r0)
> 	Executing busybox-1.30.1-r2.trigger
> 	OK: 218 MiB in 62 packages
> 
> This works fine.
> 
> 4. Try to install acme-client-doc
> 
> 	/ # apk add acme-client-doc
> 	(1/1) Installing acme-client-doc (0.2.1-r0)
> 	ERROR: acme-client-doc-0.2.1-r0: package mentioned in index not found (try 'apk update')
> 	1 error; 218 MiB in 62 packages
> 
> This does not work since it cannot find the package.
> 
> But after I move it to noarch
> 
> 	$ find /srv/http/repo.wolfsden.cz/alpine/
> 	/srv/http/repo.wolfsden.cz/alpine/
> 	/srv/http/repo.wolfsden.cz/alpine/v3.10
> 	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden
> 	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden/noarch
> 	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden/noarch/acme-client-doc-0.2.1-r0.apk
> 	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden/x86_64
> 	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden/x86_64/acme-client-0.2.1-r0.apk
> 	/srv/http/repo.wolfsden.cz/alpine/v3.10/wolfsden/x86_64/APKINDEX.tar.gz
> 
> It works
> 
> 	/ # apk add acme-client-doc
> 	(1/1) Installing acme-client-doc (0.2.1-r0)
> 	OK: 218 MiB in 63 packages
> 
> So I'm not sure what am I doing wrong.
> 
> Thank
> 
> W.
> 
Wolf
Details
Message ID
<20190722202831.7pvnym2oowtjizls@wolfsden.cz>
In-Reply-To
<11dde3bd-d22f-764e-3e82-5d35b834f5f3@linux.ibm.com> (view parent)
DKIM signature
missing
Download raw message
Hello,

On , Tuan Hoang wrote:
> Just spin up an Alpine 3.10 docker image, install acme-client-doc from
> your repo just fine.

In the mean time I've rebuild my repository with --rewrite-arch option.
Thank you for verifying that it works now :)

W.

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.