Home

Advertisement

cupt-standalone

  • Nov. 5th, 2009 at 12:30 AM
feterny-bird
Some people worried that cupt has a lot of dependencies, so it's uninstallable on very limited systems. I probably have good news for them:


$ dpkg -l | grep perl
ii liblocale-gettext-perl 1.05-4 Using libc functions for internationalizatio
ii perl-base 5.10.1-6 minimal Perl system

$ ./cupt-compiled-i386 -s full-upgrade
Building the package cache... [done]
Initializing package resolver and worker... [done]
Scheduling requested actions... [done]
Resolving possible unmet dependencies...
The following 15 packages will be INSTALLED:

dash gnupg-curl insserv install-info libc-bin libc6-i686 libdb4.7 [...]

The following 118 packages will be UPGRADED:

apt apt-utils base-files base-passwd bash bsdmainutils coreutils cpio [...]

Need to get 48.5MiB/56.0MiB of archives. After unpacking 46.7MiB will be used.
Do you want to continue? [y/N/q] q

$ wc -c ./cupt-compiled-i386
3584686 ./cupt-compiled-i386


This is a part of the log from my i386 chroot.

The only extra dependency for the binary is 'libcurl3-gnutls' for downloading from http/https/ftp. It does not need even perl-base to work, but I can't remove perl-base from the system as it's essential.

PAR rocks.

Tags:

cupt: snapshots and archives-space-limit

  • Oct. 27th, 2009 at 6:51 PM
feterny-bird
I just released Cupt 1.2.0 to Debian experimental.

It now has the ability to create and load Cupt system snapshots (in a sense of installed packages) and the algorithm to try handle changes which require X MiB to download when you have only Y MiB of free disk space available, and X > Y.

For first, see new 'snapshot' subcommand, for second, set new 'cupt::worker::archives-space-limit' option.

Now the 'I-wish-a-feature-in-Cupt' list is again empty. Test, enjoy, report bugs, submit new wishes.

Tags:

cupt 1.1

  • Oct. 22nd, 2009 at 1:11 PM
feterny-bird
I just released cupt 1.1.0 to Debian unstable. I intended to push more changes into it, but James Vega recently discovered critical issue about 'libc6-i686' package that can break the whole system if its version differs from version of 'libc6' package, so in absence of answer from Debian eglibc maintainers I implemented a workaround for it and released new version.

Nevertheless, the following changes worth noting:


  • performance and RAM usage improvements: most significant is a tremendous speed-up of the function that calculates dpkg calls sequence, achieved by throwing away standard Graph library and writing a small private one, optimized for Cupt usage

  • support of '-y' command-line switch

  • reinstalling packages is now possible

Tags:

cupt bits

  • Oct. 3rd, 2009 at 3:47 PM
feterny-bird
I made an announce of Cupt. It resulted in some new people trying & testing & reporting bugs, plus several Linux/Unix-related sites picked up the announce and formed a news entry from it. And a bit sadly, though fully expectedly, most of comments played implementation language holy war.

Since first beta was uploaded, I have some time to perform usual round of optimization, and it appeared to be quite productive this time. Several minor optimizations were simple enough to go directly to master branch. With a usual bunch of bug fixes, they formed just uploaded first release candidate. Another few of them are more complex, so they live in various branches and, presumably, will be a part of Cupt 1.1 after some testing.

Tags:

cupt: preparings for 0.6.0

  • Aug. 19th, 2009 at 12:16 AM
feterny-bird
Cupt 0.6.0 will bring:
- switch to method-only interface to BinaryVersion and SourceVersion classes;
- completed documentation for libcupt-perl library;
- 'why' subcommand;
- 'version' subcommand;
- 'help' subcommand;
- bunch of bug fixes and minor improvements in resolver, worker and other parts.

No fancy stuff, unlike all previous 0.x.0 releases. That's because I implemented almost all what I wanted from dpkg front-end (and some more), and my personal "wishlist" is now empty. As well as Debian BTS one.

I will release & upload 0.6.0 just once 0.5.2 got propagated into testing. And you can look at master branch right now to catch possible regressions earlier than in 0.6.y patch releases.

Presumably, 0.6 will be the last 0.x series of Cupt. I plan to bump version to 1.0.0~rc1 after it.

Tags:

cupt: debdelta integration

  • Aug. 11th, 2009 at 3:54 PM
feterny-bird
Recently I finally received the needed info from A Mennucc1, the author and maintainer of debdelta(1) utility. Debdelta suite can download the delta between two versions of the same package and reconstruct the target .deb. Currently provided infrastructure allows to use deltas for a) Debian security updates b) Debian testing c) Debian unstable.

In Cupt 0.5.2, I managed to add a "download method" uses debdelta to obtain a .deb. To enable it, just install the 'debdelta' package.

For the cases when delta is very big, servers don't provide it, so the debdelta method will instantly fail with a 'HTTP 404' message (delta is not available), and Cupt will download the full package as usual.

Tags:

feterny-bird
Cupt 0.5.0 was just uploaded to Debian unstable. Several bug fixes and one new console interface feature.

This is new subcommand, 'shell', which gives you an interactive shell-like environment. It preloads package cache index, so you can explore installed/available packages more quickly. You can modify the system too within a shell, in that case the cache will be rebuilt thereafter. The stateful config/cache pair and readline support, in other words. Read more in the cupt(1).

Tags:

feterny-bird
It's been a while since I wrote about Cupt package manager status, and here is another update.

Working with source packages is implemented as of version 0.3.0. Due to silly programming mistake, it is broken in 0.3.2 and 0.3.3, and I noticed this fact only recently. 0.4.0 has it working again.

Localized descriptions support is implemented as of version 0.4.0. Nothing too intriguing here, just an implementation of 'apt::acquire::translation' APT option.

Now, the high spot of the 0.4.0 is...
Source version synchronizing is the new ability of the native Cupt resolver to synchronize versions of all installed binary packages that came from the same source packages, to one version, either using 'best try' approach or strictly. See the descriptive help for the 'cupt::resolver::synchronize-source-versions' in the cupt(1). This option can be a solution for #246992.


Cupt 0.4.0.1 is just uploaded to unstable. Don't hesitate to feedback. Enjoy!

Tags:

cupt: time to feedback

  • Jul. 1st, 2009 at 6:09 PM
feterny-bird
Cupt, the re-implementation of APT suite, continues growing.

Since the previous post a lot of bugs were fixed, several versions were uploaded to Debian. As always, many bugs were hunted out, and now, last 0.2.3 version hasn't any open bugs in BTS.

I claim this is a good time for anyone who experienced bugs with APT to at least try typing one's favorite package manager command (update, full-upgrade, install, remove etc.) with cupt. Not being Swiss knife, Cupt already works for many known cases. If it doesn't, file a bug.

I claim this is a good time for anyone who feels that Perl is bad programming language to show practical objective statistics (speed, memory footprint etc.).

I claim this is a good time for anyone who has some words to say about Cupt (good or bad) to say them. Using private e-mail or via #cupt channel on OFTC IRC network.

Several people asked me before, do I want to replace APT by Cupt in some future. Well, if APT will stay unmaintained as it is now, then the answer is probably 'yes'.


In the meantime, a half-pilot implementation of source packages is ready. It's possible the next uploaded version of Cupt will strike out the 'experimental' word from the tool's description.

Tags:

cupt: 20 days over

  • May. 24th, 2009 at 11:11 PM
feterny-bird
So, 20 days passed after the first announcement, and here is the list of changes since then:

Cupt entered Debian unstable. Please report any bugs and suggestions to Debian BTS. Also, you may use #cupt channel on irc.debian.org if you want to discuss something.

New features implemented include:
- resolver reasons tracking (-D, --show-reasons)
- new 'changelog' subcommand
- new 'copyright' subcommand
- 'policy' subcommand called without arguments now prints release data available, like 'apt-cache policy'
- '--no-remove' option
- '--no-auto-remove' option
- support of 'dpkg::pre-invoke', 'dpkg::post-invoke' APT options

And, of course, many bugs fixes.

Tags:

cupt: let me introduce it

  • May. 4th, 2009 at 7:49 PM
feterny-bird
Cupt is experimental re-implementation of APT suite from scratch using Perl .
It consists of Perl modules and console front-end to them.

Why?

- to finally avoid some bugs in APT design;
- to introduce some useful features;
- to make an extensible and readable codebase;


What infrastructure does Cupt use?

It uses the same APT infrastructure, e.g. index files, deb cache archive
files, configuration files. It understands some of widely used APT options.


What useful features has Cupt already?

- full-case strict dependency problem resolver;
- command-line and APT-like option name checker;
- case-sensitive search;
- pinning by source package name;
- pinning by package groups using shell-like patterns;
- configurable 'depends' and 'rdepends' subcommands;
- 'satisfy' subcommand.

What features will Cupt have in future?

See incomplete roadmap.


Why is it 'experimental'?

Because not all important functionality is implemented yet:
- 'update' action;
- cooperating with debconf;
- working with source packages;
- translated package descriptions;


Why Perl?

- I like Perl
- code conciseness
- code extensibility
- several useful libraries available


Can I use Cupt along with APT?

Yes, you can mix apt-get/apt-cache/aptitude/etc. with cupt without bad consequences.


Can I build a Debian package for Cupt?

Yes, go to repository, checkout it and build the Debian package as usual.


What's the status of Cupt in Debian?

It's currently in the NEW queue, but don't rush to try root-required actions because it's still experimental.


Who am I?

The man who had been contributing to the APT.

Tags: