Software Provisioning via Local Changesets for Version Conflict Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional package management systems for open source software, such as Linux, face challenges in managing and customizing software due to issues like version conflicts, lack of global uniqueness in package names and versions, and difficulties in tracking local changes, leading to confusion and inefficiencies in updating and maintaining software across multiple repositories.

Innovation Solution

A software provisioning system that uses a repository-based approach with intelligent branching and change sets to manage and distribute software, allowing for the creation of local changesets that represent differences between the software on the repository and the local system, enabling updates and synchronization across multiple systems while preserving local modifications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If traditional package management systems use simple version numbers for sorting packages, then the packaging system is simple and easy to implement, but version conflicts arise when multiple development streams are maintained simultaneously

Engineering Contradiction:
Improvepackaging system complexityVSAvoidversion conflict resolution
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The version identification system is segmented into multiple independent components: distribution identifier, package name, version number, and epoch. This segmentation allows each component to serve its specific purpose while working together to provide unambiguous version identification across multiple development streams, resolving version conflicts without increasing overall system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to version identification by incorporating the distribution identifier and epoch concepts. Instead of relying solely on package version numbers, the system adds these additional dimensions to create a comprehensive version identification scheme that can distinguish between packages from different distributions and development streams, eliminating version conflicts.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If traditional package management systems provide no facilities for coordinating work between independent repositories, then each repository can operate independently and simply, but version clashes and name clashes occur across repositories

Engineering Contradiction:
Improverepository independenceVSAvoidcross-repository package coordination
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The enhanced version identification scheme serves multiple functions simultaneously: it identifies packages within a single repository, distinguishes packages across different repositories, resolves version conflicts, and prevents name clashes. This universal approach allows independent repositories to operate autonomously while maintaining reliable coordination through the standardized identification system.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system incorporates feedback mechanisms where package metadata includes information about the distribution and epoch, allowing automated tools to detect and resolve conflicts when packages are installed from multiple repositories. This feedback enables the system to adapt to cross-repository scenarios automatically.

Inventive Principle:
Principle #23Feedback

3Productivity

If traditional package management systems do not closely associate source code with packages, then package installation and removal are simple and fast, but tracking local changes and synchronizing with source code becomes difficult

Engineering Contradiction:
Improvepackage installation speedVSAvoidlocal changes tracking
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system performs preliminary actions by establishing strong associations between packages and their source code during the packaging process. Package metadata is pre-configured to include source code location information and change set references, enabling fast installation while maintaining comprehensive tracking of local changes and synchronization capabilities.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying mechanisms where local changes are represented as change sets that capture differences between the package and local modifications. These change sets are stored alongside package metadata, allowing the system to track what has been modified locally without requiring complex associations or slowing down standard package operations.

Inventive Principle:
Principle #26Copying

4Adaptability or versatility

If automated tools fetch packages from multiple repositories, then package availability increases and users have more options, but confusion about which packages to apply and how to update increases

Engineering Contradiction:
Improvepackage source diversityVSAvoidpackage update automation
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The enhanced version identification scheme provides automated tools with feedback information including distribution identifier, epoch, and complete version strings. This feedback enables automated tools to intelligently determine which packages to fetch from which repositories and how to apply updates, reducing user confusion while maintaining access to diverse package sources.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent replaces manual package management mechanics with automated systems that use the enhanced version identification scheme. Automated tools can parse and compare version identifiers, determine appropriate packages to install from multiple repositories, and apply updates automatically, eliminating the need for user intervention in complex selection processes.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS8255362B2Methods, systems, and computer program products for provisioning software using local changesets that represent differences between software on a repository and a local system
Publication Date: 2012.08.28 SAS INSTITUTE INC
  • US8255362B2 patent drawing
  • US8255362B2 patent drawing
  • US8255362B2 patent drawing

AI summary

Software is provisioned by providing a repository that contains a software trove. A local changeset is generated that represents differences between a version of the software trove on the repository and a corresponding version of the software trove on a local system.