Hi Stuart, Dope comments, thanks a lot! The plist was the sickest, it even did the __pycache__ :O I totally did not expect so much complexity from just plist, I did read it but like thought it was just going to do what I did, like, just add and subtract 1 or 2 lines. Next time I'm just gonna keep running all possible commands.
I am in totally love with make clean patch/build/fake, repeat. Its a hugely productive pipeline, makes life so much simpler. I wish gentoo was as simple, but emerge is also super dope. I really like how their stuff is so similar to ports :D :D I should stop rambling, I have a habit of just going on and on and on. I have handled all of the comments, hopefully not adding any more mistakes. Lemme know if I need to make more changes, this process of porting is super fun. jailkit is dank, I'm doing all my cancerous nodejs and django self hosting in chroots now. I'm also writing up common inits on github, maybe I can also add that to the pkg-readme if I get time. Maybe someday we can have actualy jails, but till then i can get my daily fix from this :D Cheers, Aisha Index: Makefile =================================================================== RCS file: /cvs/ports/security/jailkit/Makefile,v retrieving revision 1.15 diff -u -p -r1.15 Makefile --- Makefile 12 Jul 2019 20:49:03 -0000 1.15 +++ Makefile 10 Apr 2020 13:10:05 -0000 @@ -2,18 +2,21 @@ COMMENT= utilities for jailing a user or process -DISTNAME= jailkit-2.19 +DISTNAME= jailkit-2.21 CATEGORIES= security sysutils -HOMEPAGE= http://olivier.sessink.nl/jailkit/ +HOMEPAGE= https://olivier.sessink.nl/jailkit/ -MASTER_SITES= http://olivier.sessink.nl/jailkit/ +MASTER_SITES= https://olivier.sessink.nl/jailkit/ # BSD - LGPLv2 -PERMIT_PACKAGE= Yes +PERMIT_PACKAGE= Yes MODULES= lang/python -WANTLIB += c pthread + +MODPY_VERSION= ${MODPY_DEFAULT_VERSION_3} + +WANTLIB+= c pthread NO_TEST= Yes @@ -34,9 +37,8 @@ pre-configure: ${SUBST_CMD} ${WRKSRC}/man/$${i}; done post-install: - # recreate the .pyc file, otherwise it would change - # after installation - rm ${PREFIX}/share/jailkit/jk_lib.pyc + # compile the jailkit python files so that they + # are removed correctly when uninstalling ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py \ ${PREFIX}/share/jailkit Index: distinfo =================================================================== RCS file: /cvs/ports/security/jailkit/distinfo,v retrieving revision 1.8 diff -u -p -r1.8 distinfo --- distinfo 20 Dec 2015 15:43:46 -0000 1.8 +++ distinfo 10 Apr 2020 13:10:05 -0000 @@ -1,2 +1,2 @@ -SHA256 (jailkit-2.19.tar.gz) = /ZYS3Vf0o5q/zeZHxCBhbFyjf1mCuMB6j7XLNSSU/Ig= -SIZE (jailkit-2.19.tar.gz) = 142280 +SHA256 (jailkit-2.21.tar.gz) = egIOB635OGDFOPDZgZauoz1GG6vbqLs+3fcIHleinBQ= +SIZE (jailkit-2.21.tar.gz) = 141341 Index: patches/patch-ini_jk_init_ini =================================================================== RCS file: /cvs/ports/security/jailkit/patches/patch-ini_jk_init_ini,v retrieving revision 1.3 diff -u -p -r1.3 patch-ini_jk_init_ini --- patches/patch-ini_jk_init_ini 26 Mar 2014 17:38:27 -0000 1.3 +++ patches/patch-ini_jk_init_ini 10 Apr 2020 13:10:05 -0000 @@ -1,32 +1,10 @@ -$OpenBSD: patch-ini_jk_init_ini,v 1.3 2014/03/26 17:38:27 gonzalo Exp $ +$OpenBSD: patch-ini_jk_init_ini,v 1.4 2020/04/08 18:43:53 aisha Exp $ -fix some default paths in the jail creation configuration file +fix installation directories and default paths in the jail creation configuration file ---- ini/jk_init.ini.orig Mon Dec 23 06:02:42 2013 -+++ ini/jk_init.ini Wed Dec 25 16:04:26 2013 -@@ -2,18 +2,18 @@ - # this section probably needs adjustment on 64bit systems - # or non-Linux systems - comment = common files for all jails that need user/group information --paths = /lib/libnsl.so.1, /lib64/libnsl.so.1, /lib/libnss*.so.2, /lib64/libnss*.so.2, /lib/i386-linux-gnu/libnsl.so.1, /lib/i386-linux-gnu/libnss*.so.2, /lib/x86_64-linux-gnu/libnsl.so.1, /lib/x86_64-linux-gnu/libnss*.so.2, /etc/nsswitch.conf, /etc/ld.so.conf -+paths = /lib/libnsl.so.1, /lib64/libnsl.so.1, /lib/libnss*.so.2, /lib64/libnss*.so.2, /lib/i386-linux-gnu/libnsl.so.1, /lib/i386-linux-gnu/libnss*.so.2, /lib/x86_64-linux-gnu/libnsl.so.1, /lib/x86_64-linux-gnu/libnss*.so.2, ${SYSCONFDIR}/nsswitch.conf, ${SYSCONFDIR}/ld.so.conf - # Solaris needs --# paths = /etc/default/nss, /lib/libnsl.so.1, /usr/lib/nss_*.so.1, /etc/nsswitch.conf -+# paths = ${SYSCONFDIR}/default/nss, /lib/libnsl.so.1, /usr/lib/nss_*.so.1, ${SYSCONFDIR}/nsswitch.conf - - [netbasics] - comment = common files for all jails that need any internet connectivity --paths = /lib/libnss_dns.so.2, /lib64/libnss_dns.so.2, /etc/resolv.conf, /etc/host.conf, /etc/hosts, /etc/protocols, /etc/services -+paths = /lib/libnss_dns.so.2, /lib64/libnss_dns.so.2, ${SYSCONFDIR}/resolv.conf, ${SYSCONFDIR}/host.conf, ${SYSCONFDIR}/hosts, ${SYSCONFDIR}/protocols, ${SYSCONFDIR}/services - # on Solaris devices /dev/udp and /dev/tcp might be needed too, not sure - - [logbasics] - comment = timezone information and log sockets --paths = /etc/localtime -+paths = ${SYSCONFDIR}/localtime - need_logsocket = 1 - # Solaris does not need logsocket - # but needs +Index: ini/jk_init.ini +--- ini/jk_init.ini.orig ++++ ini/jk_init.ini @@ -21,7 +21,7 @@ need_logsocket = 1 [jk_lsh] @@ -68,7 +46,7 @@ fix some default paths in the jail creat [netutils] comment = several internet utilities like wget, ftp, rsync, scp, ssh -@@ -110,7 +110,7 @@ includesections = extendedshell, netutils, apacheutils +@@ -110,17 +110,16 @@ includesections = extendedshell, netutils, apacheutils [openvpn] comment = jail for the openvpn daemon @@ -76,8 +54,10 @@ fix some default paths in the jail creat +paths = ${LOCALBASE}/sbin/openvpn users = root,nobody groups = root,nogroup - includesections = netbasics -@@ -120,7 +120,7 @@ need_logsocket = 1 +-includesections = netbasics + devices = /dev/urandom, /dev/random, /dev/net/tun + includesections = netbasics, uidbasics + need_logsocket = 1 [apache] comment = the apache webserver, very basic setup, probably too limited for you @@ -86,7 +66,7 @@ fix some default paths in the jail creat users = root, www-data groups = root, www-data includesections = netbasics, uidbasics -@@ -131,16 +131,16 @@ paths = perl, /usr/lib/perl, /usr/lib/perl5, /usr/shar +@@ -131,16 +130,16 @@ paths = perl, /usr/lib/perl, /usr/lib/perl5, /usr/shar [xauth] comment = getting X authentication to work @@ -106,7 +86,7 @@ fix some default paths in the jail creat includesections = xclients [ping] -@@ -149,5 +149,5 @@ paths_w_setuid = /bin/ping +@@ -149,5 +148,5 @@ paths_w_setuid = /bin/ping #[xterm] #comment = xterm Index: patches/patch-man_Makefile_in =================================================================== RCS file: /cvs/ports/security/jailkit/patches/patch-man_Makefile_in,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-man_Makefile_in --- patches/patch-man_Makefile_in 20 Sep 2010 07:15:30 -0000 1.1.1.1 +++ patches/patch-man_Makefile_in 10 Apr 2020 13:10:05 -0000 @@ -1,7 +1,11 @@ -$OpenBSD: patch-man_Makefile_in,v 1.1.1.1 2010/09/20 07:15:30 sebastia Exp $ ---- man/Makefile.in.orig Mon Oct 20 00:03:54 2008 -+++ man/Makefile.in Mon Oct 20 00:05:31 2008 -@@ -21,7 +21,7 @@ SRCS = \ +$OpenBSD: patch-man_Makefile_in,v 1.1.1.2 2020/04/08 16:41:32 aisha Exp $ + +fix adding man pages without gzip + +Index: man/Makefile.in +--- man/Makefile.in.orig ++++ man/Makefile.in +@@ -20,7 +20,7 @@ SRCS = \ @HAVEPROCMAIL_TRUE@SRCS += jk_procmailwrapper.8 Index: patches/patch-man_jailkit_8 =================================================================== RCS file: /cvs/ports/security/jailkit/patches/patch-man_jailkit_8,v retrieving revision 1.2 diff -u -p -r1.2 patch-man_jailkit_8 --- patches/patch-man_jailkit_8 26 Mar 2014 17:38:27 -0000 1.2 +++ patches/patch-man_jailkit_8 10 Apr 2020 13:10:05 -0000 @@ -1,6 +1,10 @@ -$OpenBSD: patch-man_jailkit_8,v 1.2 2014/03/26 17:38:27 gonzalo Exp $ ---- man/jailkit.8.orig Sat Dec 21 18:05:22 2013 -+++ man/jailkit.8 Wed Dec 25 16:01:05 2013 +$OpenBSD: patch-man_jailkit_8,v 1.3 2020/04/08 16:38:22 aisha Exp $ + +give proper locations to ini files in the man pages + +Index: man/jailkit.8 +--- man/jailkit.8.orig ++++ man/jailkit.8 @@ -36,7 +36,7 @@ This section gives summary sketches of the various pro .BR jk_init @@ -53,7 +57,7 @@ $OpenBSD: patch-man_jailkit_8,v 1.2 2014 . .BR jk_list -@@ -127,9 +127,9 @@ tail /var/log/daemon.log /var/log/auth.log +@@ -129,9 +129,9 @@ journalctl --since=-1h .SH FILES The jailkit configuration files are located in Index: patches/patch-py_jk_lib_py =================================================================== RCS file: /cvs/ports/security/jailkit/patches/patch-py_jk_lib_py,v retrieving revision 1.3 diff -u -p -r1.3 patch-py_jk_lib_py --- patches/patch-py_jk_lib_py 24 Apr 2013 12:47:39 -0000 1.3 +++ patches/patch-py_jk_lib_py 10 Apr 2020 13:10:05 -0000 @@ -1,18 +1,73 @@ -$OpenBSD: patch-py_jk_lib_py,v 1.3 2013/04/24 12:47:39 gonzalo Exp $ +$OpenBSD: patch-py_jk_lib_py,v 1.4 2020/04/08 16:36:23 aisha Exp $ -Fix running jk_init trying to create a jail the first time +checks for directory creation, handling edge cases, in initial jail creation +streamlined major/minor handling for creating /dev/ nodes ---- py/jk_lib.py.orig Thu Aug 2 14:55:28 2012 -+++ py/jk_lib.py Tue Apr 23 06:35:23 2013 -@@ -461,7 +461,10 @@ def create_parent_path(chroot,path,be_verbose=0, copy_ +Index: py/jk_lib.py +--- py/jk_lib.py.orig ++++ py/jk_lib.py +@@ -404,7 +404,11 @@ def OLD_create_parent_path(chroot, path, be_verbose=0, + chrootname = resolve_realpath(chroot+directory[:indx],chroot) + if (be_verbose): + print('Creating directory '+chrootname) +- os.mkdir(chrootname, dir_mode) ++ try: ++ os.mkdir(chrootname, dir_mode) ++ except OSError as e: ++ _, stderror = e.args ++ sys.stderr.write('ERROR: failed to make directory "'+chrootname+'": ' + stderror + '\n') + if (copy_permissions): + try: + copy_time_and_permissions(directory[:indx], chrootname, be_verbose, allow_suid, copy_ownership) +@@ -482,7 +486,11 @@ def create_parent_path(chroot,path,be_verbose=0, copy_ if (stat.S_ISDIR(sb.st_mode)): if (be_verbose): - print 'Create directory '+jailpath -- os.mkdir(jailpath, 0755) + print('Create directory '+jailpath) +- os.mkdir(jailpath, dir_mode) + try: -+ os.mkdir(jailpath, 0755) -+ except OSError, (errno,strerror): -+ sys.stderr.write('NOTE: Jail directory already existed:\n') ++ os.mkdir(jailpath, dir_mode) ++ except OSError as e: ++ _, stderror = e.args ++ sys.stderr.write('ERROR: failed to make directory "'+jailpath+'": ' + stderror + '\n') if (copy_permissions): try: copy_time_and_permissions(origpath, jailpath, be_verbose, allow_suid, copy_ownership) +@@ -515,7 +523,11 @@ def copy_dir_with_permissions_and_owner(srcdir,dstdir, + try: + if (be_verbose): + print('Creating directory'+dstdir) +- os.mkdir(dstdir) ++ try: ++ os.mkdir(dstdir, dir_mode) ++ except OSError as e: ++ _, stderror = e.args ++ sys.stderr.write('ERROR: failed to make directory "'+dstdir+'": ' + stderror + '\n') + copy_time_and_permissions(srcdir, dstdir, be_verbose, allow_suid=0, copy_ownership=1) + except (IOError, OSError) as e: + _, strerror = e.args +@@ -575,22 +587,10 @@ def copy_device(chroot, path, be_verbose=1, retain_own + if (os.path.exists(chrootpath)): + print('Device '+chrootpath+' does exist already') + return +- sb = os.stat(path) ++ sb = os.lstat(path) + try: +- if (sys.platform[:5] == 'linux'): +- major = sb.st_rdev / 256 #major = st_rdev divided by 256 (8bit reserved for the minor number) +- minor = sb.st_rdev % 256 #minor = remainder of st_rdev divided by 256 +- elif (sys.platform == 'sunos5'): +- if (sys.maxint == 2147483647): +- major = sb.st_rdev / 262144 #major = st_rdev divided by 256 (18 bits reserved for the minor number) +- minor = sb.st_rdev % 262144 #minor = remainder of st_rdev divided by 256 +- else: +- #64 bit solaris has 32 bit minor/32bit major +- major = sb.st_rdev / 2147483647 +- minor = sb.st_rdev % 2147483647 +- else: +- major = sb.st_rdev / 256 #major = st_rdev divided by 256 +- minor = sb.st_rdev % 256 #minor = remainder of st_rdev divided by 256 ++ major=os.major(sb.st_rdev) ++ minor=os.minor(sb.st_rdev) + if (stat.S_ISCHR(sb.st_mode)): + mode = 'c' + elif (stat.S_ISBLK(sb.st_mode)): Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/security/jailkit/pkg/PLIST,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 PLIST --- pkg/PLIST 20 Sep 2010 07:15:30 -0000 1.1.1.1 +++ pkg/PLIST 10 Apr 2020 13:10:05 -0000 @@ -3,7 +3,6 @@ @bin bin/jk_uchroot @mode @man man/man8/jailkit.8 -@man man/man8/jk_addjailuser.8 @man man/man8/jk_check.8 @man man/man8/jk_chrootlaunch.8 @man man/man8/jk_chrootsh.8 @@ -16,7 +15,6 @@ @man man/man8/jk_socketd.8 @man man/man8/jk_uchroot.8 @man man/man8/jk_update.8 -sbin/jk_addjailuser sbin/jk_check @bin sbin/jk_chrootlaunch @mode 4755 @@ -32,22 +30,23 @@ sbin/jk_list @mode @bin sbin/jk_socketd sbin/jk_update -@sample /etc/jailkit/ +@sample ${SYSCONFDIR}/jailkit/ share/examples/jailkit/ share/examples/jailkit/jk_check.ini -@sample /etc/jailkit/jk_check.ini +@sample ${SYSCONFDIR}/jailkit/jk_check.ini share/examples/jailkit/jk_chrootsh.ini -@sample /etc/jailkit/jk_chrootsh.ini +@sample ${SYSCONFDIR}/jailkit/jk_chrootsh.ini share/examples/jailkit/jk_init.ini -@sample /etc/jailkit/jk_init.ini +@sample ${SYSCONFDIR}/jailkit/jk_init.ini share/examples/jailkit/jk_lsh.ini -@sample /etc/jailkit/jk_lsh.ini +@sample ${SYSCONFDIR}/jailkit/jk_lsh.ini share/examples/jailkit/jk_socketd.ini -@sample /etc/jailkit/jk_socketd.ini +@sample ${SYSCONFDIR}/jailkit/jk_socketd.ini share/examples/jailkit/jk_uchroot.ini -@sample /etc/jailkit/jk_uchroot.ini +@sample ${SYSCONFDIR}/jailkit/jk_uchroot.ini share/examples/jailkit/jk_update.ini -@sample /etc/jailkit/jk_update.ini +@sample ${SYSCONFDIR}/jailkit/jk_update.ini share/jailkit/ +${MODPY_COMMENT}share/jailkit/${MODPY_PYCACHE}/ +share/jailkit/${MODPY_PYCACHE}jk_lib.${MODPY_PYC_MAGIC_TAG}pyc share/jailkit/jk_lib.py -share/jailkit/jk_lib.pyc