Releases: DtxdF/AppJail
Releases · DtxdF/AppJail
v2.8.0
Changes between 2.7.1 and 2.8.0
Added: support for unprivileged users in the main script (Now an unprivileged user can runappjailwithout runningappjail-userand this is the recommended way.).Fixed:template_isvar()as it incorrectly detects a parameter as a variable.Fixed:test_param()as it returns false when a character is a space.Fixed: typoupdate -y->updatein PKG.Fixed: instruction order that does not require a specific order.Fixed: execution of theOPTIONinstruction when there are no options.
Full Changelog: v2.7.1...v2.8.0
v2.7.1
Changes between 2.7.0 and 2.7.1
Hotfix: Load rc config before checking values (When the user defines a custom rc value in their rc.conf file, it is not honored for some operations, instead the default values are used, which is not the intention in this case.).
Full Changelog: v2.7.0...v2.7.1
v2.7.0
Changes between 2.6.0 and 2.7.0
Fixed:<defunct>process inappjail-dns(When sending aSIGTERMsignal toappjail-dns, there will be one process left, that process is thesleep(1)command, which results in a minute or a little more waiting for this process to finish. To fix this, when sending aSIGTERMsignal toappjail-dns, aSIGTERMsignal is sent to thesleep(1)command.).Fixed: exit status of the start stage (The start stage may return a non-zero exit status indicating an error or whatever it means and the start command will return0which in almost all situations is not the intent.).Fixed:pkg all(Add a missingshiftcommand to fixpkg allas its arguments were passed topkg(8).).Added: special keyword<random>tovirtualnet:interface.Added: special keyword<name>tovirtualnet:interface.- Create the mount point when using the
-pparameter infstab set. Fixed: incorrect data type infstab:dumpandfstab:pass.Incremented: priority after runningOPTION.- Make empty some global variables when running makejail.
Added:-Vparameter in makejail.Improved: DNS support.Added: input file when showing the importing message.Moved: message when importing after creating the empty jail.Fixed: typos in Build Arguments.Removed: obsolete documentation for Build Arguments (The example shown in Build Arguments is no longer correct as the official Makejail for Python has been changed.).Added:IMAGE_ENTRYPOINToptionFixed:share/appjail/lib/replace:lib_replace: escape[&#]Adapted:EXECto use global makejailsAdded:GLOBALinstruction
Full Changelog: v2.6.0...v2.7.0
v2.6.0
Changes between 2.5.2 and 2.6.0
Added:force,recursiveandforce+recursiveflags to overwrite the jail inappjail quick.Added:-gparameter toappjail logs removeto enable shell glob patterns.Added:--cleanparameter inPKG.Added:ImagestoFeatures.Added: warning for when removing installed images and Makejails inREADME.Added: option for update all installed Makejails.Added: more information to update Makejails manually.Improved: killing processes inappjail healthcheckandappjail startup(Simply killing a process is not technically correct because the process after a while may be another process created by another process and not by AppJail, so errors may occur. To fix this, only processes created by AppJail will be killed, this is done by comparing the parent pid with the parent pid of the process we want to kill.).Fixed: overwriting the main log file (the main log file is overwritten every time any appjail's rc script is called, to avoid this, the log file is created only when it does not exist).Added:NETWORKINGkeyword toappjailrc script (to ensure basic network services are running, including general network configurationNETWORKINGhas been added toREQUIRE).Added: escape command substitution beginning with dollar sign.Added: escape common characters inEXEC.Removed: slash character from escape list inOPTION.Added: escape slash character in some commands (escaping the slash character in some commands is necessary because it has a special meaning for the tokenizer).Fixed: typo${optarg}->${arg}inEXEC.Added:FROMinstruction.Added:appjail imagecommand.Removed: new line inlib_strlen(the number of bytes in thelib_strlen's argument is incorrect as the new line is counted).Added: portable option in theimport+rootinstallation method.Added: conflicts for installation methods inappjail quick.Fixed: typo${fetch_args}->${fetch_cmd}inappjail makejail.Added: portable option in theexport+rootinstallation method.Fixed: typos when displaying errors after creating a directory / dataset.Fixed: typoappjail-user logs->appjail logsinLogs.Added: support forappjail networkinappjail quick.Added:auto-createcommand inappjail network.Added:--before-includeand--after-includeparameters inEXEC.Added:-aand-Bparameters inappjail makejail(useful for Makejail builders since parameters can be included in the Makejail file after or before the Makejail's builder is included.).Created: sponsorship.Documented: missing-aand-vparameters inappjail fetch destroy.Documented: missing healthcheckers subtype log.Added:appjail logs remove allcommand.Added: support forappjail logsto remove a bunch of logs.Obsolete:appjail config.
Full Changelog: v2.5.2...v2.6.0
v2.5.2
Changes between 2.5.1 and 2.5.2
Fixed: invalidlib_check_ipv4addrfunction name when using theaddressoption inquick:virtualnet.Fixed: missing empty variables in*_set_[expose:proto|virtualnet:interface_desc](after calling a function and defining a variable, the variable is not emptied for the next call, the value is reused when the parameter is not called again, resulting in an incorrect configuration).Added: template check before use it inquick.Added: check for when the jail is gone inhealthcheck.Added:-Qparameter inlibexec/appjail-config/tok.Fixed: load of a kernel module at startup (at startuplib_check_kernmoddoes not correctly detect whether a kernel module is loaded or not, sokldload -nis used to load a kernel module if it is not already loaded).Added: missing check for when a template does not exist inquick.Fixed: race condition when creating the bridges at startup.Added: removing of a Carriege Feed character when a Makejail is included (although the format requires Line-Feed to be the new line it is worthwhile for some users to remove Carriege Feed when a Makejail is included). Fixes #4Fixed: CMD usage (usage shows thatcmdis optional when it is not).Fixed: CMD with missing arguments.Fixed: incorrect token count inCMD.Fixed: incorrect variable nameappjail_logfile->appjail_natnet_logfileinetc/rc.d/appjail-natnet.Fixed: race condition inexpose&nat.Changed:apt-gettoaptinjail&pkg.Added: "Support" section in README.Added: support for line-continuation in Makejails.Improved:CMDparsing (CMDhas been improved when parsing the shell command by not doing difficult and error-prone things that can result in unexpected behavior.CMDnow passes host variables to the jail usingenv(1)which is a bit slow but more reliable than simply passing the variable carelessly. In addition,CMDcan execute virtually any shell command without manually escaping harmful characters).Added:--make-arg-envparameter inVAR.Removed: parsing the variable as a shell command inVAR(shell-like parsing allows a friendlier syntax when passing build-args from the command-line, but does not allow many characters such as", so the ugly version is preferred).
Full Changelog: v2.5.1...v2.5.2
v2.5.1
Changes between 2.5.0 and 2.5.1
Fixed: incorrect directory permissions in Makefile (when installing AppJail using a non-root user, a Permission denied error may occur, especially when usingDESTDIR).Changed:${.ALLSRC}to${TARGETS}to correctly strip them inlibexec/appjail-config/Makefile:strip).
Full Changelog: v2.5.0...v2.5.1
v2.5.0
Changes between 2.4.0 and 2.5.0
Added: healthcheckers (monitor jails and their services).Added: logo & slogan (Thanks to AXCESS for his advice).Changed: creation of the data directory on startup (functions that create directories inDATADIRon startup may overlap whenENABLE_ZFS=1, leaving garbage).Changed: use a hash as name instead of the directory name in Makejails (to allow uniqueness between different sites but with the same directory name, a hash is used instead of the repository name. In addition, this allows a repository to not overwrite another repository unless its origin is the same).Added: commands to list, delete and update Makejails.Fixed: environment variables in Makejails (when environment variables containing harmful characters such as quotes are passed, this is not correctly escaped whensu(1)logs into another user because the shell may be other thansh(1)).Fixed:--huser&--juserinCMDandRUN(parameter's values are passed in the wrong order to the underlyingappjail cmd jexeccommand).Removed: unused cache library (it was used in previous versions and is no longer required).Added:--maintain-envparameter inRUN(some applications work fine even if the environment does not match the current user, so--maintain-envis used to use-minsu(1). This is very useful sincesu(1)does not work if the user does not have an existing home directory and a shell when emulating a full login).Fixed: RUN when using--nocleanand--maintain-envfor LinuxJails (when passing--nocleanand--maintain-env, LinuxJails will use the value of theSHELLenvironment variable as its shell when executingsu(1), failing becausecsh(1)is the default shell and does not exist on such systems).Added: update repositories after creating alinux+debootstrapjail (to avoid manually updating the repositories after creating the jail, the user can save some time by updating them at creation time).Added: support forlinux+debootstrappackage manager inappjail pkg.Added: instructions to install AppJail (bothsysutils/appjail&sysutils/appjail-devel) using the package manager (thanks to @alonsobsd for thesysutils/appjail-develport).Added: "Maintenance of cloned Makejails" section in README.Added: "Makejails and the command-line" section in README.Fixed: incorrect path generation inshare/appjail/scripts/ascii2oct.sh(since-vparameter is missing,od(1)will attempt to replace duplicate values with*instead of simply generatinf the correct octal code).Added:appjail-config&tok(a new program has been written entirely in C for better performance than the slowersh(1)version,appjail config. This program also has an intuitive command-line interface better error messages such as syntax errors, and contributors (aka developers) can learn it much easier thansed(1)/grep(1)commands and complex regular expressions used by thesh(1)variant.tokis the tokenizer that uses someappjail-configmodules to parse some expressions in Makejails operations and some internally in AppJail).Changed: uninstall programs incleanallinstead of thecleantarget in Makefile (thecleanalltarget has been added to delete the resulting program instead of using thecleantarget that is normally used to delete object files. Thecleantarget has not been removed even if the Makefile does not generate object files, as it is maintained for consistency).Deprecated:appjail config(in favor of the new tool,appjail-config, which is technically superior,appjail configshould no longer be used).Added: support for optional arguments inARG.Added:macaddroption inappjail quick.Added: support for trusted users.Added: "Comparing AppJail" section.Added:--removeparameter inPKG.Added:--autoremoveparameter inPKG.Added:--updateparameter inPKG.Added:--upgradeparameter inPKG.Added:AUTO_GIT_UPDATEoption in the configuration file.Fixed: incorrect detection of mounted points (a problem can arise when a jail has a name likehelloand another jail with a name likehello-builder. The problem is when a mounted point is detected in thehellojail butshare/appjail/lib/mount:lib_mountpoint_mountedwill show mount points inhello-builderwhich is incorrect).Added:--jailparameter inCOPY.Added:EXECinstruction in Makejails.Added:DESTROYinstruction in Makejails.Added: "DNS" section in README.Added:--glob,--glob-left&--glob-rightparameters inCOPY.Fixed: static values forTAR_COMPRESS_ARGS&TAR_DECOMPRESS_ARGS.Added: missing check for when limits cause an error inappjail quick.Added:statuscommand.
Full Changelog: v2.4.0...v2.5.0
v2.4.0
Changes between 2.3.1 and 2.4.0
- Remove precompiled binaries: Utilities must be compiled on the user's machine and not distributed as precompiled binaries.
- Change share/appjail/util to libexec/appjail: To respect
hier(7), the utilities directory has been changed to
libexec/appjail. - Add .gitignore to ignore binaries.
appjail network: Fix fixed path to the network utility.- MAKEFILE: Add clean and utils-clean targets.
- UTILITIES: Change printf(3) to errx(3).
appjail version: Bump version to 2.4.0.
Full Changelog: v2.3.1...v2.4.0
v2.3.1
Changes between 2.3.0 and 2.3.1
- MAKEFILE: Remove unnecessary creation of the data directory.
appjail version: Bump version to 2.3.1
Full Changelog: v2.3.0...v2.3.1
v2.3.0
Changes between 2.2.0 and 2.3.0
- MAKEJAIL: Add user-defined stage feature:
- The user-defined
stageis a very useful feature. It simplifies the design of a Makejail that includes many Makejails, so the stage used in one does not overlap the other unless they are the same.
- The user-defined
- Add network fix [all|addr|dup] commands:
- Commands to simplify the resolution of some problems such as duplicate IP addresses or IP addresses in invalid ranges.
appjail jail:- Fix
clone+releaseto pass its arguments correctly: When the function responsible for creating the jail from a cloned release is called, the arguments provided by the-Iparameter are not passed, but the snapshot name is incorrectly using the first argument (-a), so the snapshot is called -a and the user argument is ignored. - Fix
clone+releasewhen using with alinux+debootstrapjail: When using theclone+releaseinstallation method no post-installation is executed, so a jail is created with nothing.
- Fix
appjail quick:- Add new installation methods to create new instances of a jail: To take advantage of
appjail quick, the following installation methods have been implemented:clone+jail,clone+release,tiny+import,copy,import+jail,import+root,zfs+import+jailandzfs+import+root. This is very useful for creating instances of a jail but with different options. - Force the reservation of an IP address when using virtualnets: This is important for installation methods that have duplicate or incorrect information, such as a copy, a clone or import, so that the IP address problem has no effect.
- Add new installation methods to create new instances of a jail: To take advantage of
appjail makejail:- Add
-oparameter: To pass options toappjail quickfrom the command-line when usingappjail makejailso that there is not need to create a separate Makejail file to simply pass some options. - Add missing command to force the execution of OPTION.
- Add
- rc scripts:
- Remove unnecessary title line.
- README:
- Add command to create private bridge: Since dnsmasq requires an IP address, the private bridge must be created first.
- Fix typos.
- Add suggestion to put the kernel modules in
loader.conf(5).
appjail version:- Bump version to 2.3.0
Full Changelog: v2.2.0...v2.3.0