Npkg

From Openmoko

Revision as of 22:58, 25 July 2009 by Tomhacohen (Talk | contribs)

Jump to: navigation, search

This package manager was created to replace opkg in low memory environments. (openmoko/slugos/more?)

It will hopefully be both memory efficient and fast, though the emphasis is on memory efficiency, since we have unlimited time though not unlimited memory.

It is not yet in development, it's in the characterization stage. Please feel free to help, as this is the most important part.

Please read the introduction section source code: git

Introduction

npkg (Nano pkg) conforms to the following coding convention: Coding Conventions Please read and follow.

Please help and add ideas to the projects wiki pages. (for instance the features page)

Features

This list includes all the actions it should be able to do (even trivial ones)

Should be able to:

 # Install
 # Remove
 # Upgrade
 # Update
 # Handle configuration files changes
 # Ignore dependencies
 # Restrict certain packages upgrades
 # Check if a new version of itself exists before installing other packages.
 # List all/installed/upgradeable packages
 # search for a package by name/description
 # download only
 # probe all info about a package
 # be able to set different config file
 # be able to set different root dir
 # be able to force downgrade
 # be able to tell whether to cache or not to cache packages
 # be able to do a "dry run"
 # ignore restrictions (like deps/conflicts and such)
 # progress indication!

Design choices

It seems like using sqlite3 and libcurl are the best solutions for our purposes. I'm considering using glib as well for data structures, though about that I'm still not sure and would like someone to help me think about pros and cons.

In conclusion:

Probable dependencies:

 # sqlite3
 # libcurl
Personal tools

This package manager was created to replace opkg in low memory environments. (openmoko/slugos/more?)

It will hopefully be both memory efficient and fast, though the emphasis is on memory efficiency, since we have unlimited time though not unlimited memory.

It is not yet in development, it's in the characterization stage. Please feel free to help, as this is the most important part.

Please read the introduction section source code: git

Introduction

npkg (Nano pkg) conforms to the following coding convention: Coding Conventions Please read and follow.

Please help and add ideas to the projects wiki pages. (for instance the features page)

Features

This list includes all the actions it should be able to do (even trivial ones)

Should be able to:

 # Install
 # Remove
 # Upgrade
 # Update
 # Handle configuration files changes
 # Ignore dependencies
 # Restrict certain packages upgrades
 # Check if a new version of itself exists before installing other packages.
 # List all/installed/upgradeable packages
 # search for a package by name/description
 # download only
 # probe all info about a package
 # be able to set different config file
 # be able to set different root dir
 # be able to force downgrade
 # be able to tell whether to cache or not to cache packages
 # be able to do a "dry run"
 # ignore restrictions (like deps/conflicts and such)
 # progress indication!

Design choices

It seems like using sqlite3 and libcurl are the best solutions for our purposes. I'm considering using glib as well for data structures, though about that I'm still not sure and would like someone to help me think about pros and cons.

In conclusion:

Probable dependencies:

 # sqlite3
 # libcurl