Entropy: 0.7.5 milestone
I promised you that I would have blogged a little bit more. But this has been a very busy month, busy for multiple reasons, I’m in the process of completing a project for a client together with Michele ( that he should really thank me for having written a wonderful project description that let him to have a Nokia N810 with just 99€) and probably a more important thing for you, I’m finalizing the first Entropy beta release that (it’s a promise) will be shipped with Sabayon Linux 3.5. Unfortunately, as you may know, Equo is not the GUI part of Entropy, which I’ll start to write as soon as all the infrastructure is ready and stable.
So, last night I committed Entropy/Equo 0.7.5. Why is it a milestone? Because it is starting to bring something that no other package managers have:
Smart Applications (still experimental):
Using Equo, it’s possible to create a compressed package that self-contains the choosen application and all its dependencies. Just unpack it and double click on the executables. A small example:
# equo smart application k3b
>> * This is the list of the packages that would be worked out:
>> [from:sabayonlinux.org|SMART] – app-cdr/k3b-1.0.3
>> Would you like to create the packages above ? [Yes/No]
>> * Creating Smart Application from app-cdr/k3b-1.0.3
>> @@ Calculating dependencies…
>> @@ Packages needing install: 1
>> @@ Packages needing removal: 0
>> @@ Download size: 0b
>> @@ Freed disk space: 0b
>> @@ (1/1) >>> app-cdr/k3b-1.0.3
>> ## Package checksum matches.
>> @@ Fetch Complete.
>> * Unpacking main package k3b-1.0.3.tbz2
>> * Compressing smart application: app-cdr/k3b-1.0.3
>> /var/lib/entropy/smartapps/amd64/k3b-1.0.3-amd64.tbz2
Put k3b-1.0.3-amd64.tbz2 on your flash pen, and use it on all your Sabayon computers.
I just need to work out the dependencies filter (to not pull 400+ packages).
Smart Packages (already stable!):
Didn’t you feel lost when you’re using distribution X, don’t have Internet access and need to install application “X” that needs application “Y” that needs application “Z”,”N”,”M” ?
Developers that will use Entropy to create their own Sabayon repositories, could merge multiple packages into a single one. How? As easy as 1,2,3:
# equo smart package k3b amarok kdelibs
>> * This is the list of the packages that would be merged into a single one:
>> [from:sabayonlinux.org] – app-cdr/k3b-1.0.3
>> [from:sabayonlinux.org] – media-sound/amarok-1.4.7
>> [from:sabayonlinux.org] – kde-base/kdelibs-3.5.8-r10
>> Would you like to create the packages above ? [Yes/No]
>> * Creating merged Smart Package…
>> @@ Calculating dependencies…
>> @@ Packages needing install: 3
>> @@ Packages needing removal: 0
>> @@ Download size: 0b
>> @@ Freed disk space: 0b
>> @@ (1/3) >>> app-cdr/k3b-1.0.3
>> ## Package checksum matches.
>> @@ (2/3) >>> media-sound/amarok-1.4.7
>> ## Package checksum matches.
>> @@ (3/3) >>> kde-base/kdelibs-3.5.8-r10
>> ## Package checksum matches.
>> @@ Fetch Complete.
>> * app-cdr/k3b-1.0.3: collecting Entropy metadata
>> * media-sound/amarok-1.4.7: collecting Entropy metadata
>> * kde-base/kdelibs-3.5.8-r10: collecting Entropy metadata
>> * app-cdr/k3b-1.0.3: unpacking content
>> * media-sound/amarok-1.4.7: unpacking content
>> * kde-base/kdelibs-3.5.8-r10: unpacking content
>> * Compressing smart package
>> /var/lib/entropy/smartpackages/amd64/k3b-1.0.3+amarok-1.4.7+kdelibs-3.5.8-r10.tbz2
Obviously, Gentoo compatibility is always kept (if gentoo-compat option is enabled – it is by default).
What would happen when I’m going to install this smart package?
# equo install /var/lib/entropy/smartpackages/amd64/k3b-1.0.3+amarok-1.4.7+kdelibs-3.5.8-r10.tbz2 –ask
>> @@ Loading On-Disk Cache…
>> @@ These are the chosen packages:
>> # (1/3) app-cdr/k3b-1.0.3 >>> Dynamic database from k3b-1.0.3+amarok-1.4.7+kdelibs-3.5.8-r10.tbz2
>> Versioning: 1.0.3 / NoTag / 1 ===> 1.0.3 / NoTag / 1
>> Action: No update needed
>> # (2/3) media-sound/amarok-1.4.7 >>> Dynamic database from k3b-1.0.3+amarok-1.4.7+kdelibs-3.5.8-r10.tbz2
>> Versioning: 1.4.7 / NoTag / 7 ===> 1.4.7 / NoTag / 7
>> Action: No update needed
>> # (3/3) kde-base/kdelibs-3.5.8-r10 >>> Dynamic database from k3b-1.0.3+amarok-1.4.7+kdelibs-3.5.8-r10.tbz2
>> Versioning: 3.5.8-r10 / NoTag / 0 ===> 3.5.8-r10 / NoTag / 0
>> Action: No update needed
>> @@ Number of packages: 3
Would you like to continue with dependencies calculation ? [Yes/No]
>> @@ Calculating dependencies…
>> @@ These are the packages that would be merged:
>> ## [R] [k3b-1.0.3+amarok-1.4.7+kdelibs-3.5.8-r10.tbz2] app-cdr/k3b-1.0.3/1 [1.0.3/1]
>> ## [R] [k3b-1.0.3+amarok-1.4.7+kdelibs-3.5.8-r10.tbz2] media-sound/amarok-1.4.7/7 [1.4.7/7]
>> ## [R] [k3b-1.0.3+amarok-1.4.7+kdelibs-3.5.8-r10.tbz2] kde-base/kdelibs-3.5.8-r10/0 [3.5.8-r10/0]
>> @@ Packages needing install: 3
>> @@ Packages needing removal: 0
>> @@ Packages needing install: 0
>> @@ Packages needing reinstall: 3
>> @@ Packages needing update: 0
>> @@ Packages needing downgrade: 0
>> @@ Download size: 0b
>> @@ Freed disk space: 0b
Would you like to run the queue ? [Yes/No]
It’s Magic! And what about a smart package of multiple smart packages? Yeah, it’s possible.
Now, what else happened this month?
- I’m completing the support of external triggers (internal ones already worked out). See them as Gentoo ebuilds’ pkg_preinst(), pkg_postinst(), pkg_prerm(), pkg_postrm()
- I’ve completed disk caching support (+33% of speed)
- I’ve rewritten/optimized all the SQL queries and switched to sqlite3 fetchone()and fetchall() methods (thanks Michele for all this stuff – he clearly made his commit 0, evidence)
- I’ve completed Equo world upgrades (and tested on a real environment – Sabayon Linux 3.4F more about this in my next blog post)
- I’ve added support for multiple database compression methods (currenty .bz2: our repository database is 4,4Mb! Impressive!)
- I’ve optimized Equo error handling, execution time and speed (about +50% of speed overall)
- A lot more, in this period about 300 big commits have been made by me
What else is needed to have a fully reliable Equo? Well, it’s already enough reliable, but I want it to be a quality application:
- Release Sabayon Linux 3.5 Loop 1 with Entropy 0.7.5+
- Switch dependencies tree generation function to a depgraph-alike one (thanks Daniel Robbins for directions)
- Complete external triggers infrastructure (almost done)
- installPackages() to pull conflicts depends too
- Handle smart applications dependencies
- Wiki Documentation
- Entropy Manifest
- Start to write Spritz (Equo GUI), forking YumEx
- Split localization data into multiple packages and propose upstream (Gentoo), like kde-i18n-meta (already worked out), openoffice-i18n-meta and so on. For this task I would like to cooperate with Gentoo ebuilds maintainers (feel free to contact me if you’re interested)
I can add that Entropy Server is complete and working well (emerge entropy from our overlay).
It’s been a busy month, indeed.