Skip to content

Releases: zelon88/HRConvert2

v3.9.1 - Absorb Core Manager, sandbox every dependency.

Choose a tag to compare

@zelon88 zelon88 released this 06 Sep 07:16

v3.9.1 - Absorb Core Manager, sandbox every dependency.

-v3.9.1.
-Absorb coreManager.php into the engine. Delete it.
-Four manager roles move to Resources/Engine/Managers, one file each.
-Everything shared moves to the engine. Sockets, budgets, worker registry.
-Sandbox the Stream pipeline. Every dependency command is now sandboxed.
-bwrap is PID 1 in its namespace, so its identifier is the right handle after all.
-Never give a tool a resolver. Pin the address instead.
-Harden the SSRF address filter. Refuse carrier NAT, multicast, IPv4-in-IPv6.
-curl is pinned with --resolve. FFMPEG is pinned with a hosts file.
-Split Model, Image, SCAD & Drawing config arrays into input and output.
-SCAD was using array position to mean direction.
-Image was offering ten formats it cannot read.
-Add five model output formats. Skip u3d, its converter is not bundled.
-Replace su with a fork that drops privilege & cannot climb back.
-Move socket directory ownership to -fp. The listener needs no privilege now.
-Give dependency probes a disposable environment & directory. No more stray .cache.
-Grow the linters to 18 checks. Negative test every one.
-args caught two stale cleanFiles() calls that reported failure on a good conversion.
-return catches a purge that empties what it was asked to store.
-Fix redeclare(). It was purging the value it was asked to store.
-Broke every settings link in convertGui2 & emptied Pipeline Core's format arrays.
-Add test tools for the address filter, redeclare & the SCAD sanitizer.
-Build tools in php are cli only & say so in the filename.
-Prove the hostname where it lands, not where it came from. /etc/hosts is line based.
-Network policy values are locals again. They were lowercase & declared global.
-Print the dependency verdict once. The component that owns the table owns the summary.
-Document network isolation, quality control, logging.

HRConvert2 v3.8.4

Choose a tag to compare

@zelon88 zelon88 released this 31 Aug 05:48

v3.8.4 - Archive, A/V Scan, OpenSCAD Resource Ceilings + Awareness.

-v3.8.4.
-Add dependency verification to ClamAV.
-Add resource ceilings / resource awareness to archive, scan, & OpenSCAD operations.
-Add missing background colors for most file operations.
-Previously only imageOptionsDiv was getting styled properly.

HRConvert2 v3.8.1

Choose a tag to compare

@zelon88 zelon88 released this 28 Aug 07:19

v3.8.1 - Fix Docker systemd detection. Improve -fp CLI output. Improve listener startup behaviour.

-v3.8.1.
-Improve the -fp CLI argument output to make bubblewrap / imagemagick / OpenSCAD output consistent.
-Previously we were using negative language for positive operation results, which was confusing.
-Improve the way systemd detection is performed.
-Improve listener startup routine.
-Improve GUI error handling.
-Added iframe file list to convertGui2.php on Default GUI.
-This GUI has auto file list reload now without reloading the whole page.

HRConvert2 v3.8.0

Choose a tag to compare

@zelon88 zelon88 released this 25 Aug 06:14

v3.8.0 - Polish CLI args --setup & --config. Fix bugs with apparmor, php.ini. Polish self-installer.

-v3.8.0.
-Fix time handling in listener logfiles.
-The time reported in listener logs was confusing, because it was set once when the listener started.
-Now we update timestamps every time the listener writes a log.
-This is true for every logging tier.
-Fix apparmor config.
-Use official documented include process instead of winging it.
-We now include the default file correctly.
-The -fp CLI arg now correctly fixes all versions of our apparmor config.
-If you have apparmor problems, run sudo php convertCore.php -fp and reboot the host.
-Fix bubblewrap config.
-Fix IM7 security profile.
-Add proper php-zip dependency manifest handling.
-Add php.ini configuration to --setup routines.
-Use official documented include process instead of winging it.
-All of this is fixed by running the --fix-permissions command sudo php convertCore.php -fp
-Update docs.
-INSTALLATION_INSTRUCTIONS.txt, ABOUT_COMMAND_LINE.txt, ABOUT_COMPONENTS.txt, README.md are all updated or new.
-Update dockerfile, entrypoint.sh.
-Add diagnosis script for bubblewrap.
-Located in Documentation/Build/diagnose-bwap.sh.
-Run with sudo bask diagnose-bwrap.sh.
-Fix MeshLab / PyMeshlab detection in -v CLI output and Dependency related --setup commands.
-Make the -v CLI argument even more powerful & capable.
-Make the --fix-permissions & -fp CLI arguments more powerful.
-Fix PyMeshLab supply chain audit output in generated Supply_Chain.xlsx files.
-Fix HRConvert2 Listener service handling.
-Now installed by -fp command.
-To stop an old listener...
-sudo php convertCore.php --kill
-To install the new listener as a service which runs at system startup (managed via systemctl command)...
-sudo php convertCore.php --fix-permissions
-Now the listener runs at startup and can be controlled like any other service with systemctl commands.
-The docker install process is now a little different.
-All the install dependency logic has moved into the core.
-Dependencies are fully managed. You can install, update, reinstall, remove all from CLI.
-You can do all that on a per dependency basis, or a per subsystem basis.
-We leverage the self-install feature to simplify the dockerfile build process.
-Also, this makes installing on VM or bare metal very easy.
-The new install process is 2 commands.....
git clone https://github.com/zelon88/HRConvert2
sudo bash HRConvert2/Documentation/Build/hrconvert2-setup.sh
-Update Default convertGui2.php UI file with some improved AJAX calls.
-This will get improved even more, but it's better than what we had.
-Once it's perfect it will get rolled into HRC2-Functions.js.
-Previously on-error, the UI would redirect a user to a 404 page.
-We fixed that before, but we had a regression due to some architectural changes.
-This ajax should solve the problem once and for all, and it will get better.
-COMING SOON in a future version; iframes with self-reloading content. No more refresh button!

HRConvert2 v3.7.4

Choose a tag to compare

@zelon88 zelon88 released this 18 Aug 08:14

v3.7.4 - Add support for EBook files & additional image formats.

-v3.7.4.
-Bump config.php, all 3 GUIs, and all 26 language packs to v3.7.4.
-Add support for Ebook documents using calibre.
-Install with sudo apt-get install calibre
-We may revise the version we're using soon, when we introduce supply chain auditing.
-Input EBook support:
-'epub', 'mobi', 'azw3', 'fb2', 'lit', 'lrf', 'pdb', 'pml', 'rb', 'snb', 'tcr', 'txt', 'txtz', 'html', 'htmlz', 'rtf', 'oeb', 'docx'
-Output EBook support:
-'epub', 'mobi', 'azw', 'azw3', 'azw4', 'fb2', 'fbz', 'lit', 'lrf', 'pdb', 'pml', 'rb', 'snb', 'tcr', 'txt', 'txtz', 'html', 'htmlz', 'rtf', 'odt', 'docx', 'pdf', 'chm', 'cbz', 'cbr', 'cbc', 'prc', 'opf', 'recipe'
-Add support for 6 additional image formats.
-If on bare-metal / VM, this requires rebuilding IM7 from source using the provided script.
-The script is located in Documentation/Build/build-imagemagick-v7.sh
-Docker users can just download a new docker image.
-tiff
-tif
-heif
-jp2
-j2k
-jxl
-Update ImageMagick7 build script.
-The script is located in Documentation/Build/build-imagemagick-v7.sh
-It now installs dependencies.
-It now cleans up the build location, so you can run it twice in a row.
-It now reinstalls the locally installed source built IM7 if it exists.
-It now builds a more capable version of IM7 that has more reliable support for more formats.
-Update README.md to.....
-Describe new bootable format support.
-Increase conversion count.
-Add screenshots,
-Revise some sections.
-Update documentation.
-Add ABOUT_REST_API.txt.
-Add ABOUT_REST_API.md
-Update CREATING_GUIS.txt (which technically has always held the REST API information).
-Updated README.md on Dockerhub.
-https://hub.docker.com/repository/docker/zelon88/hrconvert2/general
-Added CREATING_CONVERSION_PIPELINES.txt.

HRConvert2 v3.7.2

Choose a tag to compare

@zelon88 zelon88 released this 16 Aug 23:41

v3.7.2 - Start working on dependency path validation. Improve non-sudo CLI operation.

-v3.7.2.
-Add a bunch of .md documents.
-.txt documentation files are for engineering intent.
-.md documentation files are for human consumption, like a user manual for a hobby product you enjoy reading.
-Add dependency checking to images as a test.
-Leaving streams & LibreOffice unsandboxxed FOR NOW.
-The stream SSRF protector is the security boundary.
-If we wrap with bubblewrap, the PID detection routine will grab PID from bwrap, not ffmpeg.
-To reliably track streams, we must leave the PID and bwrap out of the picture, only track ffmpeg.
-We will add worker lifespan tracking during the upcoming "Concurrency Rate Limiting" update.
-After worker lifespan cycle tracking is complete,the core will be structurally prepared for sandboxxing convertStreams() safely.
-Add ffmpeg, inkscape,
-OpenSCAD adjust rectifySCAD to use relative paths instead of absolute ones.
-Bubblewrap namespace sandboxxing requires this.
-Also adjust the return value to capture if any includes were abandoned by OpenSCAD during the render.
-If any includes were skipped by OpenSCAD, throw a warningEntry() with that information to the log.
-Fix missing convertSubtitles() version check error message, ERROR!!! 22002.
-Added a ton og new errors.
-Next we are going to work on capability validation & concurrency rate limiting.

HRConvert2 v3.7.0

Choose a tag to compare

@zelon88 zelon88 released this 16 Aug 01:14

v3.7.0 - Add auto update via CLI. Add root detection. Improve core logic ordering.

-v3.7.0.
-Update CREATING_GUIS.txt, CREATING_LANGUAGE_PACKS.txt, DOCKER_BUILD_INSTRUCTIONS.txt.
-Separate the detection logic for Meshlab & Assimp so that the verifyModelVersions() function detects both separately.
-Update showHelpInfo with latest description of supported command line args, and description of update functionality.
-Add -c, --clean argument which accepts =## or =now.
-This will clean the ConvertLoc and the ConvertTempDir immediately using the supplied ## as a $DeleteThreshold.
-If -c or --clean is supplied with no optional Delete Threshold, the default from config.php will be used instead.
-Update cleanDataLoc() function to simplify the authorization checks that take place before any cleaning operation is approved.
-The function now accepts $deleteThreshold as a third argument, instead of calling $DeleteThreshold by global reference.
-Add USING_COMMAND_LINE.txt which contains information to teach administrators proper command line usage.
-Implementing new Documentation structure using .txt files as engineering documents, sources of truth, and .md files as human readable.
-Implement bubblewrap namespaces accross all major dependencies.
-Implement escapeshellargs across all major dependency calls.
-Fix convertImages() -alpha remove ordering bug predates the sandbox. Any transparent PNG converting to JPEG was failing before today.
-Fix Dia having been removed accidentally from header files.
-Fix bugs in ocrFiles, update ImageMagick code path from IM6 to IM7 code format.
-Add $RequireSandbox variable to config.php.
-We perform a comprehensive check to see if bwrap is needed, or possible.
-Bwrap is not needed on docker, because the container is... a container.
-Bwrap is also not POSSIBLE on docker. So don't let it run on Docker.
-Bwrap is only enforce if $RequireSandbox is true, and bwrap is determined to be available on the system.
-Update convertArchives to fix bugs.
-Update ocrFiles to fix bugs.
-Add $RequireSandboxOnDocker to config.php.
-Add $ThrowSandboxWarning to config.php.
-Add version checking for convertArchives.
-Update dockerfile to include installation for p7zip-rar which was missing.
-Added too many errors to count.
-Fifteen entries: 8002, 9002, 9003, 10001, 11002, 12002, 13006, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 15012, 22001, 25002.
-We will need to go through ERROR_DESCRIPTIONS.txt and thin it out at some point.

HRConvert2 v3.6.9

Choose a tag to compare

@zelon88 zelon88 released this 15 Aug 09:10

v3.6.9 - Add auto update via CLI. Add root detection. Improve core logic ordering.

-v3.6.9.
-Add http:// & https:// filtering to sanitize as the first layer.
-This will cleanly remove URLs, in preparation for accepting them as input for stream operations where the URL is missing.
-Currently URLs still get sanitized and do not pose a threat because : and / are removed.
-This just adds a dedicated layer which removes both http:// and http:// in one pass (each) so the 'http' doesn't contaminate the URL.
-Update -u & --update arguments to accept version from command line, like -u=edge, or -u=latest, or -u=v3.6.9, or --update=edge, or --update=latest, or --update=v3.6.9
-Update cleanDataLoc() function to only authorize a clean operation if it is being targetted against the $ConvertLoc or the $ConvertTempDir.
-The function will no longer even consider firing the at any other location, or a location that does not match what the calling code specifically intended.
-This will hopefully prevent people who are working on the code from clobbering their own installation with the cleanDataLoc() function by accident. It happens.
-Add ERROR!!! 29 - 'An invalid clean operation has been blocked!''
-Adjust the text of the log from "Deep Cleaned: " to "Files Removed: " which is more accurate, descriptive & straightforward.
-Move the log entry to happen only if the $dataLoc even exists.
-Previously it would fire any time the function was called, even if no file was cleaned.
-Add GUI + Language Pack version to -v and --version CLI output.
-Clean up early return, code quality of convertImages() function.
-Clean up early return, code quality of convertModels() function.
-Separate the assimp & meshlab version detection logic.
-Also separate the version reporting when -v or --verbose CLI arguments are used.
-Add ERROR!!! , <APPLICATION_NAME>-29000, <SESSION_IDENTIFIER>: Could not determine the latest release from the update source!
-Add ERROR!!! , <APPLICATION_NAME>-29001, <SESSION_IDENTIFIER>: The requested update target is not a recognized version!
-Add ERROR!!! , <APPLICATION_NAME>-29002, <SESSION_IDENTIFIER>: The requested update version does not exist at the update source!
-Add ERROR!!! , <APPLICATION_NAME>-29003, <SESSION_IDENTIFIER>: The update package is larger than the configured maximum!
-Add ERROR!!! , <APPLICATION_NAME>-29004, <SESSION_IDENTIFIER>: Could not download the update package! Curl exited with code <ADDITIONAL_DATA>.
-Add ERROR!!! , <APPLICATION_NAME>-29005, <SESSION_IDENTIFIER>: The downloaded update package is empty or too small to be valid!
-Add ERROR!!! , <APPLICATION_NAME>-29006, <SESSION_IDENTIFIER>: Could not read a configuration file during the merge!
-Add ERROR!!! , <APPLICATION_NAME>-29007, <SESSION_IDENTIFIER>: Could not merge the configuration file!
-Add ERROR!!! , <APPLICATION_NAME>-29008, <SESSION_IDENTIFIER>: Could not write the merged configuration file!
-Add ERROR!!! , <APPLICATION_NAME>-29009, <SESSION_IDENTIFIER>: Automatic updates are disabled in config.php!
-Add ERROR!!! , <APPLICATION_NAME>-29010, <SESSION_IDENTIFIER>: Could not create a working directory for the update!
-Add ERROR!!! , <APPLICATION_NAME>-29011, <SESSION_IDENTIFIER>: Could not extract the update package!
-Add ERROR!!! , <APPLICATION_NAME>-29012, <SESSION_IDENTIFIER>: The update package does not have the expected structure!
-Add ERROR!!! , <APPLICATION_NAME>-29013, <SESSION_IDENTIFIER>: The update package does not contain convertCore.php!
-Add ERROR!!! , <APPLICATION_NAME>-29014, <SESSION_IDENTIFIER>: Could not stage the update beside the installation!
-Add ERROR!!! , <APPLICATION_NAME>-29015, <SESSION_IDENTIFIER>: Could not move the existing installation aside!
-Add ERROR!!! , <APPLICATION_NAME>-29016, <SESSION_IDENTIFIER>: Could not move the update into place! The previous installation was restored.
-Add ERROR!!! , <APPLICATION_NAME>-29016, <SESSION_IDENTIFIER>: Could not move the update into place! The previous installation was restored.
-Add ERROR!!! , <APPLICATION_NAME>-29018, <SESSION_IDENTIFIER>: The updated installation failed validation & COULD NOT be rolled back!

HRConvert2 v3.6.7

Choose a tag to compare

@zelon88 zelon88 released this 14 Aug 22:07

v3.6.7 - Fix typo in Vietnamese + Chinese. Add CLI arguments.

-v3.6.7.
-Update Chinese & Korean languageStrings.php files to fix typos (improperly escaped html tags in convertGui1.php).
-Note: The version number at the header of the file (commented out seciton) changed to v3.6.7 to signal when this file was updated most recently.
-Note: The version number contained in the version variable remains at it's original v3.6.4.
-Note: The UI version also remains unchanged.
-The reasoning behind updang the cannonical version number and not the logical one is that the logical structure of the file did not change.
-No variable names were altered, the functionality of the file did not change.
-We only fixed a typo.
-Logical version numbers should only change if there is a technical reason why the language pack will not work with the UI anymore.
-Typo changes, or grammer modifications to singlular language packs constitute a bump in cannonical version, but not logical version.
-Logical versions of language packs MUST ALWAYS AND ONLY be updated all at once. All or nothing. All language packs must match, broken ones will not be used.
-verifySCADVersion() now accepts $MinimumSCADVersion by function call instead of as a global.
-This is more consistent with the way the other dependency version verification checks are done.
-Add command line parsing.
-Currently focusing on implementing comprehensive Dependency Version Reporting / Checking, Help text, and Automatic Application Updates.
-I am NOT currently focusing on turning HRConvert2 into a CLI file converter.
-File conversions ARE NOT currently being worked on for CLI deployment.
-Only CLI version checking, diagnostics, and automatic updates are being developed currently.
-parseCommandLine() parses the command line arguments that were supplied.
-If any CLI arguments were supplied, the WebUI and all conversion logic is disabled.
-The application will terminate immediately after parsing the requested command line operation.
-File conversions ARE NOT supported via command line argument. Currently. Maybe someday.
-Add support for -v and --version command line (CLI) arguments.
-Performs a comprehensive dependency check to ensure all version pinned dependency requirements are met.
-Performs a comprehensive check on all bundled GUI packs, language packs, and config files.
-Add support for -h and --help command line (CLI) arguments.
-Dispalys help information that would be useful to an administrator during debugging or troubleshooting.
-Refers to specific files in the Documentation folder that could help with specific problems.
-Fix regression that removed bwrap from OpenSCAD conversions.
-Add verifyBwrap() funtion to prevent this kind of thing from happening again.
-Fixed .github folder cleanup at runtime.
-Add permissions enforcement to required folder cleanup process.

HRConvert2 v3.6.6

Choose a tag to compare

@zelon88 zelon88 released this 14 Aug 22:07

-v3.6.6.
-At the time of this writing, my bare metal version reports 457 supported file formats.
-This is a calculated, de-duplicated list of formats that the core counts at runtime.
-The number of supported formats each HRConvert2 server supports can be found on the HRConvert2 landing page after pressing the "More Info" button.
-Update Docker build process, add GH Actions workflow.
-Update all converters.
-Add UI buttons for switching language, interface, & color.
-Add 13 additional languages.
-Add 3 additional colors.
-Add 2 stage model conversion pipeline using Meshlab & Assimp.
-Add specific SVG conversion functionality.
-Add specific OpenSCAD conversion functionality.
-Harden the core against SSRF, RCE, AFR, and more.
-Add version pinning to major dependencies.
-Improve Stream functionality significantly.
-Include bundled versions of Unoconv, PyMeshlab.
-Include build scripts for building FFMPEG from source.
-Include build scripts for building ImageMagick v7 from source.
-Improve handling of images with transperancy.
-Added version checking for GUI, Language Packs, & config.php files.
-Re-design & re-document the way fallback chains work for language, GUI, & color selection.
-Update installation instructions with latest dependency information & steps to get everything working.
-Many, many quality & reliability improvements.