diff options
Diffstat (limited to 'Distributions')
-rw-r--r-- | Distributions/AppStream.mdwn | 35 | ||||
-rw-r--r-- | Distributions/AppStream/ASCore.mdwn | 17 | ||||
-rw-r--r-- | Distributions/AppStream/ActionItems.mdwn | 159 | ||||
-rw-r--r-- | Distributions/AppStream/Agenda.mdwn | 48 | ||||
-rw-r--r-- | Distributions/AppStream/ArchitectureNotes.mdwn | 33 | ||||
-rw-r--r-- | Distributions/AppStream/Implementation.mdwn | 67 | ||||
-rw-r--r-- | Distributions/AppStream/appstream_meeting.jpg | bin | 0 -> 215276 bytes |
7 files changed, 359 insertions, 0 deletions
diff --git a/Distributions/AppStream.mdwn b/Distributions/AppStream.mdwn new file mode 100644 index 00000000..024b53d6 --- /dev/null +++ b/Distributions/AppStream.mdwn @@ -0,0 +1,35 @@ + + +# Project AppStream + +The [[app installer meeting|Distributions/Meetings/AppInstaller2011]] produced some great results. + +[[[[!img appstream_meeting.jpg]|appstream_meeting.jpg]] + + +## Resources + +* [[How this stuff is going to work|Distributions/AppStream/Implementation]] +* General discussion is happening on the [[distribution mailing list|http://lists.freedesktop.org/mailman/listinfo/distributions]] at freedesktop +* General collaboration point for random stuff: [[http://gitorious.org/appstream/|http://gitorious.org/appstream/]] + +## Notes + +* [[Xapian Index Howto|Distributions/AppStream/XapianIndexHOWTO]] + +## AppStream-Core + +AppStream-Core provides basic tools to build an AppStream database. It also provides libappstream, a library which makes it easy to create Software-Center-like applications. See more on [[the project page|Distributions/AppStream/ASCore]]. + + +## Documents that were edited on pad + +Please note that most of those documents lack context for people who didn't attend the meeting. It's our intention to properly document the results, and the current notes are, at the moment, kept here mostly as reference for the meeting attendees. + +* [[Action Items|Distributions/AppStream/ActionItems]] +* [[Agenda|Distributions/AppStream/Agenda]] +* [[Notes on Architecture|Distributions/AppStream/ArchitectureNotes]] +* [[Notes on metadata|Distributions/AppStream/MetadataNotes]] +* [[General Notes|Distributions/AppStream/Notes]] +* [[Notes on OCS|Distributions/AppStream/OCSNotes]] +* [[Notes on UI|Distributions/AppStream/UINotes]]
\ No newline at end of file diff --git a/Distributions/AppStream/ASCore.mdwn b/Distributions/AppStream/ASCore.mdwn new file mode 100644 index 00000000..b5bd93dc --- /dev/null +++ b/Distributions/AppStream/ASCore.mdwn @@ -0,0 +1,17 @@ + + +# AppStream Core + +Utilities to generate, maintain and access the [[AppStream|Distributions/AppStream]] Xapian database. + + +## What is AppStream-Core? + +AppStream-Core makes it easy to access application information from the AppStream database over a nice GObject interface. It also contains a small DBus daemon to update the application cache automatically and can be used by a wide variety of programming languages (via GObject-Introspection). In combination with [[PackageKit|http://packagekit.org]] in can be used to build Software Centers. + +The AppStream Core utilities are **alpha software** at time, and the API might change a lot during the development process. Please keep that in mind when using it! + + +## Get it! + +You can download the latest release [[here|http://www.freedesktop.org/software/appstream/]] diff --git a/Distributions/AppStream/ActionItems.mdwn b/Distributions/AppStream/ActionItems.mdwn new file mode 100644 index 00000000..f3ceeed2 --- /dev/null +++ b/Distributions/AppStream/ActionItems.mdwn @@ -0,0 +1,159 @@ + + +# Action Items + + +## Next steps / Timeline + +* **[DONE]** (step -1 : save the piratepads somewhere :)) +* Step 0 (next week) + * Get infrastructure for development (wiki, mailing list, git) => fd.o + * subscribe to mailing list: [[http://lists.freedesktop.org/mailman/listinfo/distributions|http://lists.freedesktop.org/mailman/listinfo/distributions]] + * **[DONE]** wiki: [[http://distributions.freedesktop.org/|http://distributions.freedesktop.org/]] + * bugzilla: product on [[http://bugs.freedesktop.org|http://bugs.freedesktop.org]] [vuntz to create it if needed] + * **[DONE]** git repo: gitorious.org + * **[DONE]** Draw the big picture [hughsie] + * **[DONE]** xml schema for the metadata format (hughsie) +* First step: end-of-march + * Update desktop entry spec for new fields [vuntz] + * Push new fields in .desktop upstream [all] + * Getting the metadata published by distros [Debian: ?, Fedora: ?, Mageia: misc+samuel?, openSUSE: ?, Ubuntu: ? Can do it on [[http://distrib-coffee.ipsl.jussieu.fr/|http://distrib-coffee.ipsl.jussieu.fr/]] for testing (Nanar)] + * Create desktop-xml-to-xapian musher (mvo :-) + * Get up to date xapian in all distros + * Implement the OCS changes described below (Frank) + * Move USC to using PackageKit rather than leaking apt stuff (mvo,vuntz) + * CLA topic clarified + * How to validate: + * USC works on openSUSE + * USC works on Fedora (hughsie) + * 10% of desktop files have extra metadata + * distros are adding metadata back upstream (packagers) + * USC can display the metadata + * resolution on CLA (mvo) +* Second step: end-of-june + * Publish specification for the metadata format + * Setup distros OCS servers + * Use OCS in USC + * Put test data in OCS servers + * Getting screenshots.debian.net to have symlinks for appid + * How to validate: + * screenshots working on other distros in USC + * test data from OCS visible in USC +* End Goal: november + * Distros releasing at the end of 2011 have all that + * Hopefully with OCS data + * Hopefully with suggestions + +## Big untriaged list of action items + +This is a list of action items organized by topics. Most of them have been integrated in the timeline above. + +**List, for each metadata item** + +* is it available offline / online ? (essential vs nice to have) +* where it comes from (desktop file, user-provided...) +* if it's translated, and how +* if it's the same for all distributions or has to be tagged by origin +**Communication** + +* share meeting results + * FOSDEM talk (vuntz) + * wiki + * write a short "why this project is for your distribution" text ? +* "sell" the project to our distributions/managers (hughsie, vuntz) +* "sell" it to other distributions +* "sell" it upstream +**Desktop Files (vuntz,hughsie)** + +* Add extra items to .desktop item specification +* Add Homepage + * a package can contain more than one application, e.g. openoffice-writer and presenter +* Add Keywords + * So gimp.desktop can contain "photoshop" +* Add !OnlyShowIn/![[NotShowIn|NotShowIn]] item for !AppStore/![[SoftwareCenter|SoftwareCenter]] +* Enhances=firefox.desktop [comma seporated list] for firefox plugins (AddonTo, Extends,... pick one) +* Fix categories to be sane, so they could be used as tags too + * Add new categories + * Deprecate old useless ones + * Fix the issue with secondary categories requiring a main category, and you end up with two main categories because you're too explicit when listing secondary ones + * etc. + * We'll use Categories by default, and if an override is needed, use AppCategory? +**Software Center** + +* Write PackageKit backend [vuntz/mvo] +* improve distro abstractions (pkginfo provider instead of apt cache) including strings like *Ubuntu* Software Center [mvo] +* ask people to review ubuntu cla [mvo,vuntz] +* write OCS ratings/reviews backend +* add support for appdata.xml in update-softare-center.py [mvo] +**OCS** + +* {spam} for comments/inappropriate comments (Frank) +* Merge the new requirements into an OCS version 1.7 draft (Frank) +* Do a tagging module (Frank) +* Discuss and agree on OCS 1.7 on [[ocs@freedesktop.org|mailto:ocs@freedesktop.org]] (Frank) +* Provide a testing Server for development (Frank) +* Do an OCS 2.0 meeting (Frank) +**Screenshot** + +* screenshot.debian.net should use application id as a key, even if it's a symlink +**Translations** + +* Define translations workflow for applications descriptions +**Packaging (misc,Nanar)** + +* rpmlint/lintian: have some checks to make sure the .desktop metadata (Url, Enhances, etc.) is also in the package metadata +* automatically add a Provides for each .desktop file +**Metadata format** + +* Create a spec on xdg (can help: vuntz) +* Create a reference implementation + * create a fedora implementation in icky python (hughsie) +**Matching package data (enrico)** + +* source<->source (via upstream URLs -- or something else ;-)) +* binary<->binary (via .desktop files, regexps on package names) +* work at [[http://git.debian.org/?p=users/enrico/distromatch.git|http://git.debian.org/?p=users/enrico/distromatch.git]] +* datasets at [[http://people.debian.org/~enrico/dist-info.tar.gz|http://people.debian.org/~enrico/dist-info.tar.gz]] +* Other attempts: + * [[http://lists.freedesktop.org/mailman/listinfo/packagemap|http://lists.freedesktop.org/mailman/listinfo/packagemap]] + * [[http://blog.hartwork.org/?p=373|http://blog.hartwork.org/?p=373]] + * [[https://github.com/silviocesare/Equivalent-Packages/blob/master/NearestNeighbour/Debian5_Fedora13_Matches|https://github.com/silviocesare/Equivalent-Packages/blob/master/NearestNeighbour/Debian5_Fedora13_Matches]] + * [[http://packages.debian.org/sid/whohas|http://packages.debian.org/sid/whohas]] +* Use cases + * falling back to other distros for missing data like categories and screenshots + * accessing ratings and comments + * finding patches from other distros + * linking BTSes + * cross-distro, googlable application index +**Building a Xapian index for non-debian distros (enrico)** + +* bringing debtags across after a rough binary package matching [prototype done: [[http://www.enricozini.org/2011/debian/distromatch/|http://www.enricozini.org/2011/debian/distromatch/]] now it needs to be deployed with regular updates] +* [[Build a Xapian index on your distro|Distributions/AppStream/XapianIndexHOWTO]] +* run Enrico's faceted prototype ([[http://www.enricozini.org/2011/debian/pkgshelf/|http://www.enricozini.org/2011/debian/pkgshelf/]]) on other distro data +**Klik (vuntz)** + +* talk to alexl about klik + * see [[http://blogs.gnome.org/alexl/2007/08/07/experiments-with-runtime-less-app-bundles/|http://blogs.gnome.org/alexl/2007/08/07/experiments-with-runtime-less-app-bundles/]] +**(side things) (enrico)** + +* Deploying apt-file fast server-side index for other distros [[http://dde.debian.net/dde/q/aptfile/all/bin/mc|http://dde.debian.net/dde/q/aptfile/all/bin/mc]] +* web-based application browsing (mageia-app-db project) (Samuel) + * [[http://mageia-app-db.tuxette.fr/projects/mageia-app-db/wiki|http://mageia-app-db.tuxette.fr/projects/mageia-app-db/wiki]] + * are there other distributions than Mageia and Mandriva interested in this app ? + * deploy one test instance per RPM distribution + * fedora + * opensuse + * make it usable with DEB repos too (currently only RPM) : depending on debian/ubuntu interest in it. + * use xapian index to speed things up + * flag packages as applications based on .desktop files and provide "application-only" views + * use "strong" and "weak" suggests dependencies to group applications and add-ons together + * map from distributions package names to names in screenshots.debian.net, until we have the screenshots provided by OCS servers + * one click install + * tags support (read-only to begin with) + * use OCS servers as soon as they are available (read-only to begin with) +**Debtags links** + +* Pointers to the data: [[http://debtags.alioth.debian.org/tags/|http://debtags.alioth.debian.org/tags/]] +**Misc** + +* [[http://git.debian.org/?p=users/enrico/pkgshelf.git|http://git.debian.org/?p=users/enrico/pkgshelf.git]] (the prototype xapian based appstoreything put together in 2 hours that I demoed the first day [enrico])
\ No newline at end of file diff --git a/Distributions/AppStream/Agenda.mdwn b/Distributions/AppStream/Agenda.mdwn new file mode 100644 index 00000000..735e72db --- /dev/null +++ b/Distributions/AppStream/Agenda.mdwn @@ -0,0 +1,48 @@ + + +# Agenda + +**Definitions:** target user, what's an application, etc. [vuntz,hughsie,prusnak,mls,Samuel] + +* Bash? Firefox? Apache? MySQL? +* Use .desktop file as app id? +**Quick showcase** [enrico, vuntz,frank,hughsie,ffesti,Samuel?,Nanar,mvo] + +**Metadata** + +* What metadata [frank, Samuel,hughsie, mvo] + * Grouping apps (Games, Action Games, etc.) [enrico,hughsie,mvo, prusnak, Samuel,david,ffesti] + * Delta metadata? +* How to access (API/format) [enrico,frank,hughsie,mvo,misc,mls,Samuel,prusnak,david,Nanar,ffesti] +* Where (server? local?) [enrico,frank,hughsie,mvo,misc,mls,Samuel,prusnak,david,ffesti] +* Relating apps and their add-ons (Recommends/Suggests/addons) [wstephenson,hughsie] +* How do we identify uniquely an application. From what information ? Do we need to define a unique identifier ? Where, who ? +* Moderation [hughsie,mvo,wstephenson] +**Localization** [vuntz,mvo(?),misc,Samuel,david,hughsie] + +* of metadata +** Find & install apps** [vuntz,hughsie,mvo,prusnak,mls,david,ffesti,Samuel?] + +* UI [enrico,hughsie,mvo,prusnak,ffesti] +* Suggests [enrico,frank,hughsie,mvo,prusnak,david,ffesti] +* Addons (think browser or app plugins) [mvo,prusnak,Samuel] +* Grouping of packages as one application [Samuel,prusnak,Nanar,ffesti] => based on dependancies (strong or weak dependencies), with a special treatment for localization packages. +**UI to display installed apps** [enrico,hughsie,mvo(?),ffestiy] + +**UI for updates** [vuntz,hughsie,mvo,mls,wstephenson] + +**Use cases? Target users? Anti-users?** + +**Restrictions** [enrico,misc,Nanar] + +* legal issues/restrictions depending on your location? +* children vs adult content [Samuel] + * [[http://www.miriamruiz.es/weblog/?p=69|http://www.miriamruiz.es/weblog/?p=69]] + * [[http://www.miriamruiz.es/weblog/?p=155|http://www.miriamruiz.es/weblog/?p=155]] + * [[http://wiki.debian.org/OpenRating/Categories|http://wiki.debian.org/OpenRating/Categories]] +* should we care/can we do something? Maybe just use distro blends/flavors +**What to tell upstream?** [vuntz,hughsie,misc,prusnak,wstephenson] + +* require .desktop files to appear in app store? [hughsie] +* push package description in .desktop files upstream? [hughsie,Samuel] +**official repos vs "third-party-provided" ones** [misc,Nanar,Samuel?,hughsie] diff --git a/Distributions/AppStream/ArchitectureNotes.mdwn b/Distributions/AppStream/ArchitectureNotes.mdwn new file mode 100644 index 00000000..b9bbe60b --- /dev/null +++ b/Distributions/AppStream/ArchitectureNotes.mdwn @@ -0,0 +1,33 @@ + +[[!img Architecture plan] + +using OCS -> rest, easy to replicate + +different clients connect to different servers + +server under the control of distribution + +how to share ? + +if we use a central server, who will maintain ? + +Garett : applications distributers should not have their own server -> a way to have 3rd party to plug in the system + +content identifier on the server + +* desktopfilename +* version of soft +* repository ( distro, repo for each distribution ) -> url to metadata +* distro/version +no need to filter on server, as the client only show applications that exist + +how to play well with 3rd party ? ( OBS, livna ) -> just add another server + +need to solve these 2 problem : + +* discover applications +* discover repositories +Frank proposal ( for solving discover repositories ) : + +* add a shared linux ecosystem repositories +* several client connecting to their server, and also to the shared one
\ No newline at end of file diff --git a/Distributions/AppStream/Implementation.mdwn b/Distributions/AppStream/Implementation.mdwn new file mode 100644 index 00000000..41e109df --- /dev/null +++ b/Distributions/AppStream/Implementation.mdwn @@ -0,0 +1,67 @@ + + +# AppStream Architecture + +[[!img Architecture plan] + +Appstream is split into four logical blocks, on three principal levels. + +[[!toc 2]] + + +## Client + + +### Software Center + +* The existing Ubuntu Application Center fits the perceived need and is an established and stable project + * Has CLA we might need to work around / fork. + * Have to convert away from using custom social server to OCS, non-issue + * Have to port to [[PackageKit|PackageKit]] 100%, non-issue +* Talks to zeitgeist for usage stats +* Has recommendations and featured applications +* Need the ability to tag applications and moderate comments + +### PackageKit + +* [[http://www.packagekit.org|http://www.packagekit.org]] +* Use the assumption that packages are an uninteresting implementation detail. +* Need to be able to search whilst we are installing, perhaps limited to existing xapian results. + +### xapian + +* [[http://xapian.org/|http://xapian.org/]] +* Established project used for many years to enable free text search using important things like priority and stemming that can return results in 10's of milliseconds. +* We discussed a relational database, but not suitable for our needs +* Need to rebuild every time we add/enable or disabled. + +### OCS + +* [[http://www.freedesktop.org/wiki/Specifications/open-collaboration-services|http://www.freedesktop.org/wiki/Specifications/open-collaboration-services]] +* Provides a shared API we can add social media to an application installer +* Growing userbase and stable and approachable upstream +* Can have single server for all or private instance on own infrastructure with possible federation between distros + +## Mirror + + +### Metadata + +* Just another file on the mirror server: app-data.xml +* Contains data derived from the upstream desktop files and extracted at repo-compose time. +* Means we have different metadata for each repo +* Just another blob of data that can be downloaded by apt-get, yum, etc + * See [[http://gitorious.org/appstream/resources/blobs/master/appdata.xml|http://gitorious.org/appstream/resources/blobs/master/appdata.xml]] for an example, or schema here [[http://gitorious.org/appstream/resources/blobs/raw/master/appdata.xsd|http://gitorious.org/appstream/resources/blobs/raw/master/appdata.xsd]] + +### Icons + +* super-critical in search results +* app-data-32x32.tar.gz +* icons/32x32/foo.png +* Can encode location and type of icons in the appdata.xml + +## Compose server + +* We explode the package files which contain a desktop file and extract the data from the desktop files +* All gets added to the app-data.xml and icons get (resized/converted?) and copied +* Probably a per-distro tool outputting shared format XML
\ No newline at end of file diff --git a/Distributions/AppStream/appstream_meeting.jpg b/Distributions/AppStream/appstream_meeting.jpg Binary files differnew file mode 100644 index 00000000..1e1f16fc --- /dev/null +++ b/Distributions/AppStream/appstream_meeting.jpg |