{"id":25606856,"url":"https://github.com/rupurt/vbisam","last_synced_at":"2025-08-17T22:18:10.457Z","repository":{"id":277620946,"uuid":"933007522","full_name":"rupurt/vbisam","owner":"rupurt","description":"Git mirror of the VBISAM CVS repository","archived":false,"fork":false,"pushed_at":"2025-02-15T00:02:12.000Z","size":305,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-11T06:06:52.538Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://sourceforge.net/p/vbisam/code/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rupurt.png","metadata":{"files":{"readme":"README.64bit","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"COPYING.LIB","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-14T23:50:21.000Z","updated_at":"2025-02-15T00:02:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"3e3752d6-033f-4563-8da3-501e4be6ab33","html_url":"https://github.com/rupurt/vbisam","commit_stats":null,"previous_names":["rupurt/vbisam"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rupurt/vbisam","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupurt%2Fvbisam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupurt%2Fvbisam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupurt%2Fvbisam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupurt%2Fvbisam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rupurt","download_url":"https://codeload.github.com/rupurt/vbisam/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupurt%2Fvbisam/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270914922,"owners_count":24667231,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-02-21T19:17:10.893Z","updated_at":"2025-08-17T22:18:10.442Z","avatar_url":"https://github.com/rupurt.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"A quick note for whomever tries using VBISAM in 64-bit mode...\n--------------------------------------------------------------------------------\nWhen using the 64-bit version of VBISAM, the operating system *MUST* fully\nsupport all the various 64-bit modes of system calls.  Additionally, the\nfilesystem upon which the 64-bit files resides must *ALSO* support 64-bit\nfiles.  For example, one of my Linux machines has a 2.2.19 kernel, glibc2.2.3,\next2 filesystems.  Any attempt to make it lock past 0x7fffffff will fail with\nan EOVERFLOW error.  Looking at the underlying system code (fs/locks.c) it\nsurely appears that it's 64-bit compliant.  Therefore, I can only assume that\nthe issue is in the GLIBC 2.2.3 code itself.  However, I also tried to *BYPASS*\nthe glibc code that was returning EOVERFLOW by making a low-level system call\n(using syscall) and only managed to change the problem from EOVERFLOW to\nEINVAL.  (I must be doing SOMETHING wrong huh?)\nSpecifically, this means the following list of system calls:\n\topen()\tAlthough no arguments to this call are 64-bit in nature,\n\t\t*some* operating systems demand that any file that needs to\n\t\tbe accessed in 64-bit mode must use open64() instead of open().\n\t\tThis change can be effected simply in the vbLowLevel.c module\n\tlseek()\tSimilar rules as per open() above.  Note that some systems\n\t\trequire you to use lseek64(), others require you to use llseek()\n\t\tand *GOOD* systems allow you to use lseek() by making it a macro\n\t\tfor lseek64().\n\t\tThis change can be effected simply in the vbLowLevel.c module\n\t\tAdditionally, VBISAM makes extensive use of the off_t typedef.\n\t\tIf off_t is not a 64-bit quantity when VBISAM is compiled in\n\t\t64-bit mode, you may need to defined a simple macro in the\n\t\tisinternal.h include file to map off_t to loff_t, off64_t or\n\t\twhatever *YOUR* system needs!\n\tread()\tThe read and write system calls should both return an ssize_t\n\twrite()\tand have a size_t passed as the third argument.  VBISAM never\n\t\trequires size_t or ssize_t to exceed 10-bits for the data /\n\t\tindex files and 16 bits for the log file.  Nevertheless, these\n\t\tsystem calls need to be able to perform their functions when\n\t\tthe offset into the file exceeds 32-bits.\n\tfcntl()\tThis one is usually the FIRST problem you'll encounter.  VBISAM\n\t\texpects both the l_start and l_len parameters in the flock\n\t\tstructure passed to fcntl when the F_SETLK or F_SETLKW commands\n\t\tare used to be 64-bit quantities.  You *might* need to play\n\t\taround with flock versus flock64 etc in vbLowLevel.c to get this\n\t\tto work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupurt%2Fvbisam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frupurt%2Fvbisam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupurt%2Fvbisam/lists"}