Re: NEW: sysutils/cloud-agent

2018-05-15 Thread Reyk Floeter
On Tue, May 15, 2018 at 11:46:45PM +0200, Reyk Floeter wrote:
> Hi,
> 
> attached is a new port, sysutils/cloud-agent.  I wrote this tool
> myself and you can find it on https://github.com/reyk/cloud-agent.
> 
> There are many cloud-init-like scripts for OpenBSD but the agent is
> multicloud, pledged, and includes support for Azure's weird method.
> Having a package would make deployment even easier.
> 
> ---
> pkg/DESCR:
> This is a simple OpenBSD-specific agent that handles provisioning and
> cloud initialization on clouds such as Microsoft Azure, Amazon AWS, or
> OpenStack.  It is an alternative to sysutils/waagent on Azure.
> ---
> 
> Tested on Azure, AWS, OpenStack/VMware, Exoscale, vmd (with meta-data).
> 
> OK?
> 
> Reyk

And now with the attachment ...



port-cloud-agent-0.6.tar.gz
Description: application/tar-gz


Re: NEW: sysutils/cloud-agent

2018-05-16 Thread Stuart Henderson
On 2018/05/15 23:54, Reyk Floeter wrote:
> On Tue, May 15, 2018 at 11:46:45PM +0200, Reyk Floeter wrote:
> > Hi,
> > 
> > attached is a new port, sysutils/cloud-agent.  I wrote this tool
> > myself and you can find it on https://github.com/reyk/cloud-agent.
> > 
> > There are many cloud-init-like scripts for OpenBSD but the agent is
> > multicloud, pledged, and includes support for Azure's weird method.
> > Having a package would make deployment even easier.
> > 
> > ---
> > pkg/DESCR:
> > This is a simple OpenBSD-specific agent that handles provisioning and
> > cloud initialization on clouds such as Microsoft Azure, Amazon AWS, or
> > OpenStack.  It is an alternative to sysutils/waagent on Azure.
> > ---
> > 
> > Tested on Azure, AWS, OpenStack/VMware, Exoscale, vmd (with meta-data).
> > 
> > OK?
> > 
> > Reyk
> 
> And now with the attachment ...
> 

Can you roll a release distfile please? It can still be hosted on
github as a release "asset" but anything using GH_* variables or github
/archive/ URLs uses an on-the-fly-generated tar which can change when
github update things their side.

More info in my post at
https://www.conserver.com/pipermail/users/2018-March/msg5.html

DESCR refers to sysutils/waagent - can you drop the sysutils/ part please,
we generally refer to packages rather than ports, plus if the waagent
port is being removed then this is a bit confusing.



Re: NEW: sysutils/cloud-agent

2018-05-16 Thread Reyk Floeter
Hi,

On Tue, May 15, 2018 at 11:46:45PM +0200, Reyk Floeter wrote:
> attached is a new port, sysutils/cloud-agent.  I wrote this tool
> myself and you can find it on https://github.com/reyk/cloud-agent.

New version of the port, with the following changes:

- Added expat to WANTLIB (pointed out by Rafael)
- Uploaded my own release tarball (pointed out by Stuart,
see https://www.conserver.com/pipermail/users/2018-March/msg5.html)

new pkg/DESCR:
---
This is a simple OpenBSD-specific agent that handles provisioning and
cloud initialization on clouds such as Microsoft Azure, Amazon AWS,
Apache CloudStack, or OpenStack.
---

OK?

Reyk


port-cloud-agent-0.6-c.tar.gz
Description: application/tar-gz


Re: NEW: sysutils/cloud-agent

2018-05-16 Thread Stuart Henderson
On 2018/05/16 11:55, Reyk Floeter wrote:
> Hi,
> 
> On Tue, May 15, 2018 at 11:46:45PM +0200, Reyk Floeter wrote:
> > attached is a new port, sysutils/cloud-agent.  I wrote this tool
> > myself and you can find it on https://github.com/reyk/cloud-agent.
> 
> New version of the port, with the following changes:
> 
> - Added expat to WANTLIB (pointed out by Rafael)
> - Uploaded my own release tarball (pointed out by Stuart,
> see https://www.conserver.com/pipermail/users/2018-March/msg5.html)
> 
> new pkg/DESCR:
> ---
> This is a simple OpenBSD-specific agent that handles provisioning and
> cloud initialization on clouds such as Microsoft Azure, Amazon AWS,
> Apache CloudStack, or OpenStack.
> ---
> 
> OK?
> 
> Reyk

Seems ssl isn't actually linked (I'm not sure what purpose DPADD servers
in agent/Makefile?)  So I think WANTLIB should be "c crypto tls expat".

Otherwise OK.



Re: NEW: sysutils/cloud-agent

2018-05-16 Thread Reyk Floeter
On Wed, May 16, 2018 at 11:11:31AM +0100, Stuart Henderson wrote:
> On 2018/05/16 11:55, Reyk Floeter wrote:
> > Hi,
> > 
> > On Tue, May 15, 2018 at 11:46:45PM +0200, Reyk Floeter wrote:
> > > attached is a new port, sysutils/cloud-agent.  I wrote this tool
> > > myself and you can find it on https://github.com/reyk/cloud-agent.
> > 
> > New version of the port, with the following changes:
> > 
> > - Added expat to WANTLIB (pointed out by Rafael)
> > - Uploaded my own release tarball (pointed out by Stuart,
> > see https://www.conserver.com/pipermail/users/2018-March/msg5.html)
> > 
> > new pkg/DESCR:
> > ---
> > This is a simple OpenBSD-specific agent that handles provisioning and
> > cloud initialization on clouds such as Microsoft Azure, Amazon AWS,
> > Apache CloudStack, or OpenStack.
> > ---
> > 
> > OK?
> > 
> > Reyk
> 
> Seems ssl isn't actually linked (I'm not sure what purpose DPADD servers
> in agent/Makefile?)  So I think WANTLIB should be "c crypto tls expat".
> 
> Otherwise OK.
> 

Well, it does link with libssl, libcrypto, and libtls.  It works
because libtls is linked against libssl and libcrypto and our linker
is smart enough to handle those inter-library dependencies.

But it doesn't work with static linking (make LDSTATIC=-static) and
LDADD should really be "LDADD+= -lexpat -ltls -lssl -lcrypto".

I will fix it in the next upstream version of cloud-agent but I think
that the current port with "WANTLIB= c tls ssl crypto expat" is fine.

Unless there are issues on non-amd64/i386 platforms?  I don't have
access to any of them at the moment.

$ grep LDADD Makefile
LDADD+= -lexpat -ltls
$ ldd obj/cloud-agent
obj/cloud-agent:
StartEnd  Type  Open Ref GrpRef Name
189a1b40 189a1b60e000 exe   10   0  obj/cloud-agent
189d01b2d000 189d01d58000 rlib  01   0  
/usr/lib/libexpat.so.12.0
189c8a57e000 189c8a78e000 rlib  01   0  
/usr/lib/libtls.so.17.1
189c8bb95000 189c8be77000 rlib  01   0  
/usr/lib/libc.so.92.3
189c9ea0f000 189c9edef000 rlib  02   0  
/usr/lib/libcrypto.so.43.1
189d0d3bd000 189d0d611000 rlib  01   0  
/usr/lib/libssl.so.45.1
189d0820 189d0820 ld.so 01   0  
/usr/libexec/ld.so

Reyk



Re: NEW: sysutils/cloud-agent

2018-05-16 Thread Stuart Henderson
On 2018/05/16 12:27, Reyk Floeter wrote:
> On Wed, May 16, 2018 at 11:11:31AM +0100, Stuart Henderson wrote:
> > On 2018/05/16 11:55, Reyk Floeter wrote:
> > > Hi,
> > > 
> > > On Tue, May 15, 2018 at 11:46:45PM +0200, Reyk Floeter wrote:
> > > > attached is a new port, sysutils/cloud-agent.  I wrote this tool
> > > > myself and you can find it on https://github.com/reyk/cloud-agent.
> > > 
> > > New version of the port, with the following changes:
> > > 
> > > - Added expat to WANTLIB (pointed out by Rafael)
> > > - Uploaded my own release tarball (pointed out by Stuart,
> > > see https://www.conserver.com/pipermail/users/2018-March/msg5.html)
> > > 
> > > new pkg/DESCR:
> > > ---
> > > This is a simple OpenBSD-specific agent that handles provisioning and
> > > cloud initialization on clouds such as Microsoft Azure, Amazon AWS,
> > > Apache CloudStack, or OpenStack.
> > > ---
> > > 
> > > OK?
> > > 
> > > Reyk
> > 
> > Seems ssl isn't actually linked (I'm not sure what purpose DPADD servers
> > in agent/Makefile?)  So I think WANTLIB should be "c crypto tls expat".
> > 
> > Otherwise OK.
> > 
> 
> Well, it does link with libssl, libcrypto, and libtls.  It works
> because libtls is linked against libssl and libcrypto and our linker
> is smart enough to handle those inter-library dependencies.
> 
> But it doesn't work with static linking (make LDSTATIC=-static) and
> LDADD should really be "LDADD+= -lexpat -ltls -lssl -lcrypto".
> 
> I will fix it in the next upstream version of cloud-agent but I think
> that the current port with "WANTLIB= c tls ssl crypto expat" is fine.
> 
> Unless there are issues on non-amd64/i386 platforms?  I don't have
> access to any of them at the moment.
> 
> $ grep LDADD Makefile
> LDADD+= -lexpat -ltls
> $ ldd obj/cloud-agent
> obj/cloud-agent:
> StartEnd  Type  Open Ref GrpRef Name
> 189a1b40 189a1b60e000 exe   10   0  
> obj/cloud-agent
> 189d01b2d000 189d01d58000 rlib  01   0  
> /usr/lib/libexpat.so.12.0
> 189c8a57e000 189c8a78e000 rlib  01   0  
> /usr/lib/libtls.so.17.1
> 189c8bb95000 189c8be77000 rlib  01   0  
> /usr/lib/libc.so.92.3
> 189c9ea0f000 189c9edef000 rlib  02   0  
> /usr/lib/libcrypto.so.43.1
> 189d0d3bd000 189d0d611000 rlib  01   0  
> /usr/lib/libssl.so.45.1
> 189d0820 189d0820 ld.so 01   0  
> /usr/libexec/ld.so
> 
> Reyk
> 

ldd shows too much information for ports WANTLIB purposes, look at
readelf -d or objdump -p:

$ readelf -d libexec/cloud-agent bin/cms

File: libexec/cloud-agent

Dynamic section at offset 0xcb18 contains 18 entries:
  TagType Name/Value
 0x0001 (NEEDED) Shared library: [libexpat.so.12.0]
 0x0001 (NEEDED) Shared library: [libtls.so.17.1]
 0x0001 (NEEDED) Shared library: [libc.so.92.3]
 0x0004 (HASH)   0x107a20
 0x0005 (STRTAB) 0x108908
 0x0006 (SYMTAB) 0x107d98
 0x000a (STRSZ)  1009 (bytes)
 0x000b (SYMENT) 24 (bytes)
 0x0015 (DEBUG)  0x0
 0x0003 (PLTGOT) 0x20cc98
 0x0002 (PLTRELSZ)   2376 (bytes)
 0x0014 (PLTREL) RELA
 0x0017 (JMPREL) 0x108e08
 0x0007 (RELA)   0x108d00
 0x0008 (RELASZ) 264 (bytes)
 0x0009 (RELAENT)24 (bytes)
 0x6ff9 (RELACOUNT)  5
 0x (NULL)   0x0

File: bin/cms

Dynamic section at offset 0x25208 contains 17 entries:
  TagType Name/Value
 0x0001 (NEEDED) Shared library: [libcrypto.so.43.1]
 0x0001 (NEEDED) Shared library: [libc.so.92.3]
 0x0004 (HASH)   0x113660
 0x0005 (STRTAB) 0x1168c8
 0x0006 (SYMTAB) 0x114120
 0x000a (STRSZ)  6926 (bytes)
 0x000b (SYMENT) 24 (bytes)
 0x0015 (DEBUG)  0x0
 0x0003 (PLTGOT) 0x225378
 0x0002 (PLTRELSZ)   8568 (bytes)
 0x0014 (PLTREL) RELA
 0x0017 (JMPREL) 0x11abb0
 0x0007 (RELA)   0x1183d8
 0x0008 (RELASZ) 10200 (bytes)
 0x0009 (RELAENT)24 (bytes)
 0x6ff9 (RELACOUNT)  308
 0x (NULL)   0x0

So libssl is only pulled in via inter library link, it doesn't matter to
the package if libssl gets a revision bumped because it's only libtls that
depends on the ABI.



Re: NEW: sysutils/cloud-agent

2018-05-16 Thread Reyk Floeter
On Wed, May 16, 2018 at 11:33:40AM +0100, Stuart Henderson wrote:
> On 2018/05/16 12:27, Reyk Floeter wrote:
> > On Wed, May 16, 2018 at 11:11:31AM +0100, Stuart Henderson wrote:
> > > On 2018/05/16 11:55, Reyk Floeter wrote:
> > > > Hi,
> > > > 
> > > > On Tue, May 15, 2018 at 11:46:45PM +0200, Reyk Floeter wrote:
> > > > > attached is a new port, sysutils/cloud-agent.  I wrote this tool
> > > > > myself and you can find it on https://github.com/reyk/cloud-agent.
> > > > 
> > > > New version of the port, with the following changes:
> > > > 
> > > > - Added expat to WANTLIB (pointed out by Rafael)
> > > > - Uploaded my own release tarball (pointed out by Stuart,
> > > > see https://www.conserver.com/pipermail/users/2018-March/msg5.html)
> > > > 
> > > > new pkg/DESCR:
> > > > ---
> > > > This is a simple OpenBSD-specific agent that handles provisioning and
> > > > cloud initialization on clouds such as Microsoft Azure, Amazon AWS,
> > > > Apache CloudStack, or OpenStack.
> > > > ---
> > > > 
> > > > OK?
> > > > 
> > > > Reyk
> > > 
> > > Seems ssl isn't actually linked (I'm not sure what purpose DPADD servers
> > > in agent/Makefile?)  So I think WANTLIB should be "c crypto tls expat".
> > > 
> > > Otherwise OK.
> > > 
> > 
> > Well, it does link with libssl, libcrypto, and libtls.  It works
> > because libtls is linked against libssl and libcrypto and our linker
> > is smart enough to handle those inter-library dependencies.
> > 
> > But it doesn't work with static linking (make LDSTATIC=-static) and
> > LDADD should really be "LDADD+= -lexpat -ltls -lssl -lcrypto".
> > 
> > I will fix it in the next upstream version of cloud-agent but I think
> > that the current port with "WANTLIB= c tls ssl crypto expat" is fine.
> > 
> > Unless there are issues on non-amd64/i386 platforms?  I don't have
> > access to any of them at the moment.
> > 
> > $ grep LDADD Makefile
> > LDADD+= -lexpat -ltls
> > $ ldd obj/cloud-agent
> > obj/cloud-agent:
> > StartEnd  Type  Open Ref GrpRef Name
> > 189a1b40 189a1b60e000 exe   10   0  
> > obj/cloud-agent
> > 189d01b2d000 189d01d58000 rlib  01   0  
> > /usr/lib/libexpat.so.12.0
> > 189c8a57e000 189c8a78e000 rlib  01   0  
> > /usr/lib/libtls.so.17.1
> > 189c8bb95000 189c8be77000 rlib  01   0  
> > /usr/lib/libc.so.92.3
> > 189c9ea0f000 189c9edef000 rlib  02   0  
> > /usr/lib/libcrypto.so.43.1
> > 189d0d3bd000 189d0d611000 rlib  01   0  
> > /usr/lib/libssl.so.45.1
> > 189d0820 189d0820 ld.so 01   0  
> > /usr/libexec/ld.so
> > 
> > Reyk
> > 
> 
> ldd shows too much information for ports WANTLIB purposes, look at
> readelf -d or objdump -p:
> 
> $ readelf -d libexec/cloud-agent bin/cms
> 
> File: libexec/cloud-agent
> 
> Dynamic section at offset 0xcb18 contains 18 entries:
>   TagType Name/Value
>  0x0001 (NEEDED) Shared library: [libexpat.so.12.0]
>  0x0001 (NEEDED) Shared library: [libtls.so.17.1]
>  0x0001 (NEEDED) Shared library: [libc.so.92.3]
>  0x0004 (HASH)   0x107a20
>  0x0005 (STRTAB) 0x108908
>  0x0006 (SYMTAB) 0x107d98
>  0x000a (STRSZ)  1009 (bytes)
>  0x000b (SYMENT) 24 (bytes)
>  0x0015 (DEBUG)  0x0
>  0x0003 (PLTGOT) 0x20cc98
>  0x0002 (PLTRELSZ)   2376 (bytes)
>  0x0014 (PLTREL) RELA
>  0x0017 (JMPREL) 0x108e08
>  0x0007 (RELA)   0x108d00
>  0x0008 (RELASZ) 264 (bytes)
>  0x0009 (RELAENT)24 (bytes)
>  0x6ff9 (RELACOUNT)  5
>  0x (NULL)   0x0
> 
> File: bin/cms
> 
> Dynamic section at offset 0x25208 contains 17 entries:
>   TagType Name/Value
>  0x0001 (NEEDED) Shared library: [libcrypto.so.43.1]
>  0x0001 (NEEDED) Shared library: [libc.so.92.3]
>  0x0004 (HASH)   0x113660
>  0x0005 (STRTAB) 0x1168c8
>  0x0006 (SYMTAB) 0x114120
>  0x000a (STRSZ)  6926 (bytes)
>  0x000b (SYMENT) 24 (bytes)
>  0x0015 (DEBUG)  0x0
>  0x0003 (PLTGOT) 0x225378
>  0x0002 (PLTRELSZ)   8568 (bytes)
>  0x0014 (PLTREL) RELA
>  0x0017 (JMPREL) 0x11abb0
>  0x0007 (RELA)   0x1183d8
>  0x0008 (RELASZ) 10200 (bytes)
>  0x0009 (RELAENT)24 (b