{"id":16165143,"url":"https://github.com/aixp/blackbox","last_synced_at":"2025-07-25T09:04:17.413Z","repository":{"id":4546076,"uuid":"5686728","full_name":"aixp/BlackBox","owner":"aixp","description":"Oberon Microsystems BlackBox Component Builder port for OpenBSD, GNU/Linux and FreeBSD","archived":false,"fork":false,"pushed_at":"2019-10-11T19:42:41.000Z","size":15027,"stargazers_count":27,"open_issues_count":1,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-17T00:35:20.430Z","etag":null,"topics":["blackbox-component-builder","component-pascal","freebsd","linux","oberon","openbsd"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aixp.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-09-05T12:16:15.000Z","updated_at":"2024-12-25T20:14:53.000Z","dependencies_parsed_at":"2022-09-19T09:41:25.823Z","dependency_job_id":null,"html_url":"https://github.com/aixp/BlackBox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aixp%2FBlackBox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aixp%2FBlackBox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aixp%2FBlackBox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aixp%2FBlackBox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aixp","download_url":"https://codeload.github.com/aixp/BlackBox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244325111,"owners_count":20435040,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blackbox-component-builder","component-pascal","freebsd","linux","oberon","openbsd"],"created_at":"2024-10-10T02:49:20.435Z","updated_at":"2025-03-18T23:30:41.019Z","avatar_url":"https://github.com/aixp.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Oberon Microsystems BlackBox Component Builder (http://www.oberon.ch/)\nPort for OpenBSD/i386, GNU/Linux/i386, FreeBSD/i386\n\nTested on:\n\tOpenBSD 6.2\n\tFedora Core 17\n\tUbuntu 12.04 LTS, 12.10, 13.10, 14.04\n\tFreeBSD 11.0\n\nStatus:\n\tnon-GUI part: stable, but TODO list is not empty\n\tGUI part: incomplete, but runnable implementation\n\nHow to build:\n\tif you have 64-bit version of Ubuntu, do this:\n\t\tsudo apt-get install libc6-dev-i386\n\n\tcd BlackBox\n\t./clean\n\t./switch-target `uname -s` [ GUI ]\n\n\tcompile loader executable:\n\t\tcd BlackBox/Lin/Rsrc/loader\n\t\tmake clean\n\t\tmake\n\t\tmv loader ../../../_`uname -s`_/Lin/Rsrc/loader/\n\n\tcompile self:\n\t\tcd BlackBox\n\t\t./build\n\t\t./pack-dev0\n\nHow to run (after build):\n\tGUI only:\n\t\tif you have 64-bit version of Ubuntu, do this:\n\t\t\tsudo apt-get install libgtk2.0-0:i386\n\n\tcd BlackBox\n\t./run-BlackBox\n\t\tor ./run-BlackBox1\n\nFiles:\n\toriginal:\n\t\tBlackBox:\n\t\t\tComm/Mod/Streams.odc\n\t\t\tComm/Docu/*\n\t\t\tDev/Mod/*\n\t\t\t\tall except ElfLinker16\n\t\t\tDev/Docu/*\n\t\t\t\tall except ElfLinker\n\t\t\tDev/Rsrc/*\n\t\t\tDev/Spec/*\n\t\t\tDocu/BB-License.odc\n\t\t\tObx/*\n\t\t\tStd/*\n\t\t\tSystem/Mod/\n\t\t\t\tall except Console\n\t\t\tSystem/Rsrc/*\n\t\t\tText/*\n\t\t\tXhtml\n\t\t\t_Windows_/{Comm,BlackBox.exe,BlackBox.exe.manifest}\n\t\t\t_Windows_GUI/*\n\t\t\t__GUI/{Comm,Dev,Form,Host/Rsrc/*.odc,Obx,Std,System,Empty.odc,Tour.odc}\n\t\tOpenBUGS (http://www.openbugs.net/):\n\t\t\tDev/Mod/ElfLinker16.odc\n\t\t\tDev/Docu/ElfLinker.odc\n\t\t\tDocu/OpenBUGS-License.odc\n\t\thttp://forum.oberoncore.ru/viewtopic.php?f=34\u0026t=1159\u0026sid=3e82517160caa46c64331178c1b61e95:\n\t\t\t_FreeBSDLinuxOpenBSD_/System/Mod/Kernel_so_init.odc\n\t\thttp://oberoncore.ru/projects/bb16ru-kras/:\n\t\t\tDev/Rsrc/ru/Strings.odc\n\t\t\tStd/Rsrc/ru/Strings.odc\n\t\t\tSystem/Rsrc/ru/Strings.odc\n\t\t\t__GUI/Host/Rsrc/ru/Strings.odc\n\t\thttp://gitlab.molpit.com/oberon/blackbox-freenix/:\n\t\t\t_{LinuxOpenBSD,Linux,OpenBSD}_GUI\n\t\talternative linker (http://forum.oberoncore.ru/viewtopic.php?f=34\u0026t=5459\u0026start=40#p99038):\n\t\t\tDev2/*\n\tmodified:\n\t\t_OpenBSD_/System/Mod/Kernel.odc:\n\t\t\tBlackBox 1.6 System/Mod/Kernel.odc, OpenBUGS Lin/Mod/linKernel.odc:\n\t\t\t\tOpenBSD specific:\n\t\t\t\t\tMemory management rewritten (based on mmap)\n\t\t\t\t\tKernel.TrapHandler\n\t\t\t\t\t\tOpenBSD sigcontext-specific\n\t\t\t\t\tKernel.Time\n\t\t\t\t\tKernel.InitModule\n\t\t\t\t\tKernel.InstallSignals:\n\t\t\t\t\t\tdo not install signal handler for SIGTHR (when executable linked with -pthread)\n\t\t\t\t\tIsReadable\n\t\t\t\tGetRefVar memory access protection\n\t\t_Linux_/System/Mod/Kernel.odc:\n\t\t\t_OpenBSD_/System/Mod/Kernel.odc modified for Linux:\n\t\t\t\tTime*\n\t\t\t\tTrapHandler\n\t\t\t\tmmap: use \"/dev/zero\" device instead of -1\n\t\t\t\tmprotect addresses must be page-aligned\n\t\t\t\tdo not show warning message if signal install failed\n\t\t_FreeBSD_/System/Mod/Kernel.odc:\n\t\t\t_OpenBSD_/System/Mod/Kernel.odc modified for FreeBSD:\n\t\t\t\tTime*\n\t\t\t\tTrapHandler\n\t\t\t\tSetupModListAccess: initial module list must be writeable (read only by default in FreeBSD)\n\t\t_Linux_/Host/Mod/Files.odc:\n\t\t\tOpenBUGS Lin/Mod/linHostFiles.odc:\n\t\t\t\tsynchronized with BlackBox 1.6\n\t\t\t\tserver configuration via BB_PRIMARY_DIR and BB_SECONDARY_DIR environment variables (not command line)\n\t\t\t\tfilenames encoding translation implemented\n\t\t_OpenBSD_/Host/Mod/Files.odc:\n\t\t\t_Linux_/Host/Mod/Files.odc:\n\t\t\t\tOpenBSD-specific:\n\t\t\t\t\tsize_t\n\t\t\t\t\t__xstat -\u003e stat\n\t\t\t\t\tLEN(clock_t) = 8\n\t\t_FreeBSD_/Host/Mod/Files.odc:\n\t\t\t_Linux_/Host/Mod/Files.odc:\n\t\t\t\tFreeBSD-specific:\n\t\t\t\t\tsize_t\n\t\t\t\t\t__xstat -\u003e stat\n\t\t\t\t\tmode_t\n\t\t_Linux_/Lin/Mod/Libc.odc:\n\t\t\tOpenBUGS Lin/Mod/Libc.odc:\n\t\t\t\tPROT_*, MAP_*, O_*, _SC_PAGESIZE, SIGSTKSZ CONSTs added\n\t\t\t\topen, close, read, write, mmap, munmap, mprotect, getenv, sysconf, sigaltstack functions added\n\t\t_Linux_/Lin/Mod/Dl.odc:\n\t\t\tOpenBUGS Lin/Mod/Dl.odc\n\t\t_Linux_/Host/Mod/Dates.odc: from http://oberoncore.ru/\n\t\t_FreeBSDOpenBSD_/Host/Mod/Dates.odc:\n\t\t\t_Linux_/Host/Mod/Dates.odc: OpenBSD and FreeBSD specific\n\t\t_FreeBSDLinuxOpenBSD_/Host/Mod/TextConv.odc:\n\t\t\tBlackBox 1.6 Host/Mod/TextConv.odc:\n\t\t\t\tWindows-specific converters removed\n\t\t_FreeBSDLinuxOpenBSD_/Host/Mod/PackedFiles.odc:\n\t\t\tBlackBox 1.6 Host/Mod/PackedFiles.odc:\n\t\t\t\tuse BB_PACKED_NAME environment variable instead of appName\n\t\t\t\tGetNextSubLoc, GetLoc: filenames-specific\n\t\t_FreeBSDLinuxOpenBSD_Interp/Host/Mod/DevPackedFiles.odc:\n\t\t\t_FreeBSDLinuxOpenBSD_/Host/Mod/PackedFiles.odc:\n\t\t\t\twith priority to packed files\n\t\t_FreeBSDLinuxOpenBSD_/System/Mod/Config.odc:\n\t\t\tBlackBox 1.6 System/Mod/Config.odc:\n\t\t\t\tWindows-specific removed\n\t\t_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Registry.odc:\n\t\t\tBlackBox 1.6 Host/Mod/Registry.odc\n\t\t_Windows_Interp/Host/Mod/{Dates.odc,Lang.odc}:\n\t\t\tpart of BlackBox 1.6 Host/Mod/Dialog.odc\n\t\t_Windows_Interp/Host/Mod/DevPackedFiles.odc:\n\t\t\tBlackBox 1.6 Host/Mod/PackedFiles.odc:\n\t\t\t\twith priority to packed files\n\t\tDev2/Mod/{LnkBase.odc,LnkLoad.odc,LnkWriteElf.odc,Linker.odc}:\n\t\t\tFreeBSD, OpenBSD-specific\n\tnew:\n\t\tConsole:\n\t\t\tSystem/Mod/Console.odc: Console interface\n\t\t\t_FreeBSDLinuxOpenBSD_/Host/Mod/Console.odc:\n\t\t\t\tConsole implementation for Linux and FreeBSD, and OpenBSD\n\t\t\t_Windows_{GUI,Interp}/Host/Mod/Console.odc:\n\t\t\t\tConsole implementation for Windows\n\t\tCons/Mod\n\t\t\tInterp.odc: console interpreter\n\t\t\tCompiler.odc: console interface to Dev compiler\n\t\t\tLog.odc: Log.Hook console implementation\n\t\t{_OpenBSD_,_FreeBSD_}/Lin/Mod/Libc.odc: OpenBSD and FreeBSD specific libc interface\n\t\t{_OpenBSD_,_FreeBSD_}/Lin/Mod/Dl.odc: OpenBSD and FreeBSD specific interface to dl\n\t\t{_FreeBSD_,_Linux_,_OpenBSD_}/Lin/Mod/Iconv.odc: interface to iconv\n\t\t{_FreeBSD_,_Linux_,_OpenBSD_}/Lin/Mod/Ioctl.odc: interface to ioctl\n\t\t{_Linux_,_OpenBSD_}/Lin/Mod/Termios.odc: interface to termios\n\t\t{_FreeBSD_,_Linux_,_OpenBSD_}/Lin/Mod/Net.odc: interface to network functionality\n\t\t_FreeBSDLinuxOpenBSD_/Host/Mod/Lang.odc: Dialog.LanguageHook implementation and LANG environment variable support\n\t\t_LinuxOpenBSD_/Comm/Mod/V24.odc: CommV24 implementation for Linux and OpenBSD\n\t\t_OpenBSD_/Comm/Mod/TCP.odc: CommTCP implementation for OpenBSD\n\t\t_Linux_/Comm/Mod/TCP.odc: CommTCP implementation for Linux\n\t\t_FreeBSD_/Comm/Mod/TCP.odc: CommTCP implementation for FreeBSD\n\t\t_Linux_/Lin/Mod/Rt.odc: interface to librt\n\n\t\t{_FreeBSD_,_OpenBSD_,_Linux_}/BlackBox1.run: compiled and linked BlackBox executable\n\t\t{_FreeBSD_,_OpenBSD_,_Linux_}/libBB.so: compiled and linked shared library to run BlackBox\n\t\t{_FreeBSD_,_OpenBSD_,_Linux_}/libBB0.so: compiled, linked and packed shared library to run console interpreter\n\t\t_Windows_/dev0.exe: compiled and linked simple development interpreter\n\n\t\tDev0/Views.odc: minimal Views implementation required to compile StdInterpreter\n\t\t__Interp/Host/Mod: Fonts.odc, Dialog.odc, Windows.odc: simple Host implementation\n\t\t__Interp/System/Mod/Init.odc: Init for console interpreter\n\nNotes:\n\tKernel.baseStack issue:\n\t\tbaseStack is upper border:\n\t\t\t* of garbage collector stack scan range (see Kernel.MarkLocals)\n\t\t\t* of TrapViewer stack show range (see Kernel.TrapHandler)\n\t\tit is initialized in Kernel.INIT and initially points close to upper\n\t\t\tborder of library stack (because Kernel.INIT called from library\n\t\t\tconstructor, which executes close to upper border of library stack)\n\t\tit can be changed in Kernel.Start to skip unnecessary stack addresses\n\n\t\tif libBB.so exports procedure for calling from main program,\n\t\t\tthen it will be executed on main program stack, not on library\n\t\t\tstack, at stack addresses higher than baseStack.\n\t\t\tThus, MarkLocals and TrapViewer will work incorrectly.\n\t\tin this case, to solve problem, baseStack should be adjusted and\n\t\t\tshould point to stack on which this exported procedure executes\n\t\tif necessary, this can be done using auxiliary module Kernel_so_init,\n\t\t\tor by using Kernel.Start\n\n\tCommand line support removed because there is no easy way to access argc argv from outside main()\n\t\tEnvironment variables supported instead:\n\t\t\tBB_PRIMARY_DIR\n\t\t\tBB_SECONDARY_DIR (was: /USE command line option)\n\t\t\tBB_PACKED_NAME\n\nAlexander V. Shiryaev, 2019\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faixp%2Fblackbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faixp%2Fblackbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faixp%2Fblackbox/lists"}