-
Notifications
You must be signed in to change notification settings - Fork 355
Vcpkg changes #175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
kumaakh
wants to merge
5
commits into
open-license-manager:develop
Choose a base branch
from
Apra-Labs:vcpkg_changes
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Vcpkg changes #175
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
provide instructions for a static only build
* Add ARM-compatible CPU info implementation - Replace x86-specific CPUID instructions with simplified ARM stubs - Remove dependency on cpuid.h header (x86-only) - Provide minimal CpuInfo implementation for ARM processors - Return generic ARM vendor and brand strings * Add cross-platform CPU info implementation for ARM support - Preserve original x86/x64 CPUID-based implementation completely intact - Add ARM/ARM64 support with simplified implementation - Use preprocessor directives to select correct implementation at compile time - Include fallback for unknown architectures - Maintains full backward compatibility while adding ARM support - No functionality loss on x86/x64 platforms * Enhanced ARM CPU detection with proper vendor and model parsing - Parse /proc/cpuinfo for ARM CPU implementer codes - Map implementer codes to vendor names (ARM, NVIDIA, Qualcomm, etc.) - Read device tree for more specific hardware information - Detect NVIDIA Jetson devices specifically - Parse CPU part number for model information - Implement ARM hypervisor detection checking multiple indicators - Maintains full x86/x64 compatibility with original CPUID implementation * update .gitignore * feature: ability to delegate the client signature * Enable position-independent code (fPIC) for all targets - Set CMAKE_POSITION_INDEPENDENT_CODE ON globally - Required for static libraries to be linked into shared libraries - Enables ASLR for better security - Fixes potential linker errors on modern Linux systems * Update license-generator to include parameterized RSA key strength Updates license-generator submodule pointer from 19666cf to 28ed815 to include the new parameterized RSA key strength implementation. Changes in license-generator (28ed815): - Added keyBits parameter to crypto helper functions - Implemented validation for 1024/2048/3072/4096 bit keys - Changed default from 1024 to 2048 bits * Update DEFAULT project to 2048-bit RSA keys Changed from 1024-bit to 2048-bit for consistency with production keys and to catch compatibility issues early in development/testing. Changes: - Regenerated DEFAULT project with 2048-bit keys using lccgen - Committed public keys to projects/DEFAULT/include/ - Private key not committed (protected by .gitignore) Key size: 2048 bits (private_key.rsa = 1675 bytes) Generated using parameterized crypto_helper with keyBits=2048 * Fix parallel build race condition - add missing project_initialize dependencies All compilation targets must depend on project_initialize to ensure project-specific headers (licensecc_properties.h, public_key.h) are generated before compilation starts. Changes: - base: Added add_dependencies(base project_initialize) - hw_identifier: Added add_dependencies(hw_identifier project_initialize) - locate: Added add_dependencies(locate project_initialize) This fixes build failures with make -j when project headers don't exist yet. Previously only 'os' target had this dependency, causing race conditions where base/hw_identifier/locate would start compiling before headers were generated, resulting in 'not declared in this scope' errors. Fixes Bitbucket pipeline build failures. * Fix .gitignore to allow DEFAULT project public headers The .gitignore rule 'projects/*' was preventing Git from checking out committed DEFAULT project files during 'git submodule update', causing the pipeline to regenerate headers at build time and hit race conditions. Changes: - Added explicit exceptions to allow projects/DEFAULT/include/ files - Allows licensecc_properties.h and public_key.h to be checked out - Still blocks private_key.rsa (not in include/ directory) - Still blocks all other projects (ApraLabsLicensing, etc.) This ensures the DEFAULT project headers exist before the build starts, preventing 'not declared in this scope' compilation errors. Fixes Bitbucket pipeline builds for both x64-linux and arm64-linux. * Make project_initialize conditional for production builds - Add LCC_PRODUCTION_BUILD flag to skip key generation - Production builds use committed keys from LCC_PROJECTS_BASE_DIR - Remove DEFAULT project files (generated fresh each build) - Clean up .gitignore DEFAULT allow rules - Prevents overwriting production public keys when private key absent Related to production licensing implementation * Add LCC_PROJECT_MAGIC_VALUE constant to eliminate hardcoding - Export magic number as LCC_PROJECT_MAGIC_VALUE constant - Update LCC_VERIFY_MAGIC to use the constant instead of hardcoded value - Enables DRY principle: single source of truth for magic number This allows all code to reference the magic number from the header instead of hardcoding it in multiple places. Signed-off-by: Akhil Kumar <[email protected]> * Feature/macos support (#2) * Add macOS platform support - Add __APPLE__ check alongside __unix__ in platform detection - Fixes compilation errors on macOS where windows.h was incorrectly included - Properly defines DllExport and MAX_PATH for macOS Files modified: - include/licensecc/datatypes.h: Add __APPLE__ to Unix-like platform check - src/library/base/base.h: Add __APPLE__ to Unix-like platform check This enables licensecc to build on macOS (both x64 and ARM64). * Add macOS platform detection to remaining files - src/library/os/network.hpp: Add __APPLE__ check - src/library/os/os.h: Add __APPLE__ check - src/library/base/logger.cpp: Add __APPLE__ check (2 locations) Completes macOS platform support for all platform-specific code paths. * Add macOS platform support with platform-specific files - Create macos/ directory with macOS-specific implementations - Adapt network.cpp to use AF_LINK instead of AF_PACKET for MAC addresses - Replace mntent-based fstab reading with getfsstat for macOS - Update CMakeLists.txt to use macOS files when APPLE is defined - Copy and adapt Linux implementations for cpu_info, dmi_info, execution_environment --------- Signed-off-by: Akhil Kumar <[email protected]> Co-authored-by: Akhil Kumar <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The pull request makes licensecc build with vcpkg package manager.