NEW: devel/skalibs and sysutils/execline

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

NEW: devel/skalibs and sysutils/execline

Alex Raschi
Hi,

I made a port for execline (and skalibs which is a dependency), a
scripting language like sh but implemented in a really different way.
Once the parser has read the script it exits and leaves a chain of
commands running, each of these do something and exec in the next
command.

skalibs is a general-purpose library, used by the skarnet.org software.

I tested them on amd64 and i386.

I have a few doubts, when i run portcheck on sysutils/execline i get the
following and i haven't found a way to fix it:

in default FLAVOR: the following libraries in WANTLIB look like masked by RUN_DEPENDS: skarnet
in FLAVOR "static": the following libraries in WANTLIB look like masked by RUN_DEPENDS: skarnet

skalibs offer a default PATH (for example when executing into another
command) when one is not set in the environment, this is configurable at
compile time, i have set the system default one:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:${LOCALBASE}/bin:${LOCALBASE}/sbin

Is this correct?

Comments, suggestions and/or testing?

Thanks in advance!

skalibs.tar.gz (1K) Download Attachment
execline.tar.gz (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: NEW: devel/skalibs and sysutils/execline

Alex Raschi
I attached the two bugfix releases 2.10.0.1 and 2.7.0.1, these fixes
various bugs related to elgetpositionals, trap and emptyenv commands.

Any comments, ok and/or clarifications on the two doubts in the previous
email?

skalibs.tar.gz (2K) Download Attachment
execline.tar.gz (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: NEW: devel/skalibs and sysutils/execline

Alex Raschi
I attached the new versions of skalibs (2.10.0.2) and execline
(2.8.0.0), these fixes a few bugs and change backtick(1) options
slightly.

I also attached a new port of the newly created mdoc(7) ports of the
execline HTML documentation. With this one i get:

Warning: execline-man-pages-2.8.0.0.1 conflicts with etsh-5.4.0v0 (shells/etsh):/usr/local/man/man1/if.1

However shells/etsh does not seem to provide a real if(1) command, i
checked the PLIST of etsh and the if command seems to be an internal
shell command (execline provides an if command but does not conflict
with etsh). Any suggestion to fix this?

As said in the previous emails i get these with execline too:

in default FLAVOR: the following libraries in WANTLIB look like masked by RUN_DEPENDS: skarnet
in FLAVOR "static": the following libraries in WANTLIB look like masked by RUN_DEPENDS: skarnet

I have also checked that these ports work with -fno-common.

Any comments and/or OKs?

skalibs.tar.gz (2K) Download Attachment
execline.tar.gz (2K) Download Attachment
execline-man-pages.tar.gz (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: NEW: devel/skalibs and sysutils/execline

Stuart Henderson
On 2021/02/22 14:05, Alex Raschi wrote:

> I attached the new versions of skalibs (2.10.0.2) and execline
> (2.8.0.0), these fixes a few bugs and change backtick(1) options
> slightly.
>
> I also attached a new port of the newly created mdoc(7) ports of the
> execline HTML documentation. With this one i get:
>
> Warning: execline-man-pages-2.8.0.0.1 conflicts with etsh-5.4.0v0 (shells/etsh):/usr/local/man/man1/if.1
>
> However shells/etsh does not seem to provide a real if(1) command, i
> checked the PLIST of etsh and the if command seems to be an internal
> shell command (execline provides an if command but does not conflict
> with etsh). Any suggestion to fix this?

either register the conflict with @conflict markers (in both ports),
or install docs to a different dir. conflict markers seems ok to me.

it might be better to just include the manuals in the main package.
you can use multiple DISTFILES.

> As said in the previous emails i get these with execline too:
>
> in default FLAVOR: the following libraries in WANTLIB look like masked by RUN_DEPENDS: skarnet
> in FLAVOR "static": the following libraries in WANTLIB look like masked by RUN_DEPENDS: skarnet
>
> I have also checked that these ports work with -fno-common.
>
> Any comments and/or OKs?

SHARED_LIBS =           execline        2.8
SHARED_LIBS =           skarnet 2.10

start with 0.0. if the build system doesn't produce a library with the
right name to match this, patch or pass in via make(1) variables until
it does.

https://www.openbsd.org/faq/ports/specialtopics.html#SharedLibs

@so lib/libexecline.so
@lib lib/libexecline.so.${LIBexecline_VERSION}
@bin lib/libexecline.so.2.8.0.0

@so lib/libskarnet.so
@lib lib/libskarnet.so.${LIBskarnet_VERSION}
@bin lib/libskarnet.so.2.10.0.2

there should just be "@lib lib/libxyz.so.${LIBxyz}" lines, no
symlinks etc.

these are probably what's responsible for portcheck's "masked by" warning.

pkg/DESCR says "has no security issues"

a bold claim! I don't think it's a good idea to include that bit.

I would drop the static flavours unless there's a really good reason
for it (usually "it's helpful to run in a chroot for a webserver").

Reply | Threaded
Open this post in threaded view
|

Re: NEW: devel/skalibs and sysutils/execline

Alex Raschi
On Mon, Feb 22, 2021 at 01:35:38PM +0000, Stuart Henderson wrote:

> On 2021/02/22 14:05, Alex Raschi wrote:
> > I attached the new versions of skalibs (2.10.0.2) and execline
> > (2.8.0.0), these fixes a few bugs and change backtick(1) options
> > slightly.
> >
> > I also attached a new port of the newly created mdoc(7) ports of the
> > execline HTML documentation. With this one i get:
> >
> > Warning: execline-man-pages-2.8.0.0.1 conflicts with etsh-5.4.0v0 (shells/etsh):/usr/local/man/man1/if.1
> >
> > However shells/etsh does not seem to provide a real if(1) command, i
> > checked the PLIST of etsh and the if command seems to be an internal
> > shell command (execline provides an if command but does not conflict
> > with etsh). Any suggestion to fix this?
>
> either register the conflict with @conflict markers (in both ports),
> or install docs to a different dir. conflict markers seems ok to me.
>
> it might be better to just include the manuals in the main package.
> you can use multiple DISTFILES.
>
> > As said in the previous emails i get these with execline too:
> >
> > in default FLAVOR: the following libraries in WANTLIB look like masked by RUN_DEPENDS: skarnet
> > in FLAVOR "static": the following libraries in WANTLIB look like masked by RUN_DEPENDS: skarnet
> >
> > I have also checked that these ports work with -fno-common.
> >
> > Any comments and/or OKs?
>
> SHARED_LIBS =           execline        2.8
> SHARED_LIBS =           skarnet 2.10
>
> start with 0.0. if the build system doesn't produce a library with the
> right name to match this, patch or pass in via make(1) variables until
> it does.
>
> https://www.openbsd.org/faq/ports/specialtopics.html#SharedLibs
>
> @so lib/libexecline.so
> @lib lib/libexecline.so.${LIBexecline_VERSION}
> @bin lib/libexecline.so.2.8.0.0
>
> @so lib/libskarnet.so
> @lib lib/libskarnet.so.${LIBskarnet_VERSION}
> @bin lib/libskarnet.so.2.10.0.2
>
> there should just be "@lib lib/libxyz.so.${LIBxyz}" lines, no
> symlinks etc.
>
> these are probably what's responsible for portcheck's "masked by" warning.
>
> pkg/DESCR says "has no security issues"
>
> a bold claim! I don't think it's a good idea to include that bit.
>
> I would drop the static flavours unless there's a really good reason
> for it (usually "it's helpful to run in a chroot for a webserver").
>
The reason for the static flavor is basically the same as for example
shells/dash: it can be really useful in a chroot since it acts
functionally the same as a shell. Anyway i will remove it in case.

I modified the ports to match your suggestions, below there is the diff
to add @conflict to etsh. Thanks!

Index: shells/etsh/pkg/PLIST
===================================================================
RCS file: /cvs/ports/shells/etsh/pkg/PLIST,v
retrieving revision 1.2
diff -u -p -r1.2 PLIST
--- shells/etsh/pkg/PLIST 30 Mar 2019 18:14:32 -0000 1.2
+++ shells/etsh/pkg/PLIST 22 Feb 2021 19:55:45 -0000
@@ -1,5 +1,6 @@
 @comment $OpenBSD: PLIST,v 1.2 2019/03/30 18:14:32 bcallah Exp $
 @conflict osh-*
+@conflict execline-*
 @pkgpath shells/osh
 @shell bin/etsh
 @shell bin/tsh

skalibs.tar.gz (2K) Download Attachment
execline.tar.gz (3K) Download Attachment