# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= doas VERSION= 6.3p9 REVISION= 1 KEYWORDS= security VARIANTS= standard SDESC[standard]= Simple sudo alternative HOMEPAGE= https://github.com/slicer69/doas CONTACT= Omar_Polo[omar.polo@europecom.net] DOWNLOAD_GROUPS= main SITES[main]= GITHUB/slicer69:doas:6.3p9 DISTFILE[1]= generated:main DF_INDEX= 1 SPKGS[standard]= single OPTIONS_AVAILABLE= none OPTIONS_STANDARD= none BUILD_DEPENDS= openpam:dev:standard BUILDRUN_DEPENDS= openpam:primary:standard USES= cpe gmake LICENSE= BSD2CLAUSE:single LICENSE_FILE= BSD2CLAUSE:{{WRKSRC}}/LICENSE LICENSE_SCHEME= solo CPE_VENDOR= doas_project FPC_EQUIVALENT= security/doas post-patch: # I'm having trouble escaping GLOBAL_PATH properly, just modify makefile # as a workaround ${REINPLACE_CMD} -e '/^# TARGETPATH=/ s/^# //; s|/usr/local|${LOCALBASE}|g' \ ${WRKSRC}/Makefile do-install: ${INSTALL_PROGRAM} ${WRKSRC}/doas ${STAGEDIR}${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/doas.1 ${STAGEDIR}${PREFIX}/share/man/man1 ${INSTALL_MAN} ${WRKSRC}/doas.conf.5 ${STAGEDIR}${PREFIX}/share/man/man5 [FILE:215:descriptions/desc.single] The doas program allows users to run commands as another user (usually root). The doas program was written by the OpenBSD team to provide a lightweight, simplified (and more secure) alternative to the sudo command. [FILE:105:distinfo] deb92b822c80f24376db6023c733be2508fbd5d9c76e8471779e7701d992ee7d 32989 slicer69-doas-6.3p9.tar.gz [FILE:74:manifests/plist.single] @(,,4555) bin/doas share/man/man1/doas.1.gz share/man/man5/doas.conf.5.gz [FILE:1366:patches/patch-Makefile] --- Makefile.orig 2022-09-14 13:09:45 UTC +++ Makefile @@ -11,12 +11,11 @@ OBJECTS=doas.o env.o compat/execvpe.o co OPT?=-O2 # Can set GLOBAL_PATH here to set PATH for target user. # TARGETPATH=-DGLOBAL_PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:\" -CFLAGS+=-Wall $(OPT) -DUSE_PAM -DDOAS_CONF=\"$(DOAS_CONF)\" $(TARGETPATH) +CFLAGS+=-DUSE_PAM -DOPENPAM -DDOAS_CONF=\"$(DOAS_CONF)\" $(TARGETPATH) CPPFLAGS+=-include compat/compat.h LDFLAGS+=-lpam UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Linux) - LDFLAGS+=-lpam_misc CPPFLAGS+=-Icompat CFLAGS+=-D_GNU_SOURCE COMPAT+=closefrom.o errc.o getprogname.o setprogname.o strlcat.o strlcpy.o strtonum.o verrc.o @@ -35,11 +34,15 @@ ifeq ($(UNAME_S),NetBSD) OBJECTS=doas.o env.o y.tab.o LDFLAGS+=-lutil endif +ifeq ($(UNAME_S),DragonFly) + CFLAGS+=-DHAVE_LOGIN_CAP_H + LDFLAGS+=-lutil +endif ifeq ($(UNAME_S),SunOS) SAFE_PATH?=/bin:/sbin:/usr/bin:/usr/sbin:$(PREFIX)/bin:$(PREFIX)/sbin GLOBAL_PATH?=/bin:/sbin:/usr/bin:/usr/sbin:$(PREFIX)/bin:$(PREFIX)/sbin CPPFLAGS+=-Icompat - CFLAGS+=-DSOLARIS_PAM -DSAFE_PATH=\"$(SAFE_PATH)\" -DGLOBAL_PATH=\"$(GLOBAL_PATH)\" + CFLAGS+=-DSAFE_PATH=\"$(SAFE_PATH)\" -DGLOBAL_PATH=\"$(GLOBAL_PATH)\" COMPAT=errc.o pm_pam_conv.o setresuid.o verrc.o OBJECTS+=$(COMPAT:%.o=compat/%.o) endif [FILE:274:patches/patch-compat_compat.h] --- compat/compat.h.orig 2022-09-14 13:09:45 UTC +++ compat/compat.h @@ -1,7 +1,7 @@ #include #include -#if !defined(__NetBSD__) +#if !defined(__NetBSD__) && !defined(__DragonFly__) && !defined(__FreeBSD__) void closefrom(int lowfd); #endif [FILE:1553:patches/patch-doas.c] --- doas.c.orig 2022-09-14 13:09:45 UTC +++ doas.c @@ -200,7 +200,7 @@ checkconfig(const char *confpath, int ar struct rule *rule; int status; - #if defined(__linux__) || defined(__FreeBSD__) || defined(__MidnightBSD__) + #if defined(__linux__) || defined(__FreeBSD__) || defined(__MidnightBSD__) || defined(__DragonFly__) status = setresuid(uid, uid, uid); #else status = setreuid(uid, uid); @@ -530,13 +530,16 @@ main(int argc, char **argv) #if defined(HAVE_LOGIN_CAP_H) +# ifndef LOGIN_SETLOGINCLASS +# define LOGIN_SETLOGINCLASS 0 +# endif if (setusercontext(NULL, target_pw, target, LOGIN_SETGROUP | LOGIN_SETLOGINCLASS | LOGIN_SETPRIORITY | LOGIN_SETRESOURCES | LOGIN_SETUMASK | LOGIN_SETUSER) != 0) errx(1, "failed to set user context for target"); #else - #if defined(__linux__) || defined(__FreeBSD__) || defined(__MidnightBSD__) + #if defined(__linux__) || defined(__FreeBSD__) || defined(__MidnightBSD__) || defined(__DragonFly__) if (setresgid(target_pw->pw_gid, target_pw->pw_gid, target_pw->pw_gid) == -1) err(1, "setresgid"); #else @@ -545,7 +548,7 @@ main(int argc, char **argv) #endif if (initgroups(target_pw->pw_name, target_pw->pw_gid) == -1) err(1, "initgroups"); - #if defined(__linux__) || defined(__FreeBSD__) || defined(__MidnightBSD__) + #if defined(__linux__) || defined(__FreeBSD__) || defined(__MidnightBSD__) || defined(__DragonFly__) if (setresuid(target, target, target) == -1) err(1, "setresuid"); #else