]> pilppa.org Git - familiar-h63xx-build.git/blobdiff - org.handhelds.familiar/classes/image_ipk.bbclass
image_ipk.bbclass: fix locale feed locations
[familiar-h63xx-build.git] / org.handhelds.familiar / classes / image_ipk.bbclass
index 37d4b338d6146f831de116eea788433e9439f407..bb99c12a1b1f3746b731e4ac11d9be706550e707 100644 (file)
@@ -53,56 +53,58 @@ fakeroot do_rootfs () {
        ${IMAGE_POSTPROCESS_COMMAND}
 }
 
-DISTRO_LOCALE_FEEDS_PREFIXES ?= ""
-DISTRO_LOCALE_FEEDS_HEADER ?= ""
+DISTRO_FEEDS_FILE_PATTERN = "${IMAGE_ROOTFS}/etc/ipkg/${DISTRO}-${DISTRO_VERSION}-%s.conf"
 
 python __anonymous() {
-       prefixes = bb.data.getVar("DISTRO_LOCALE_FEEDS_PREFIXES", d, 1).split()
-       locale_feeds = bb.data.getVar("DISTRO_LOCALE_FEEDS_HEADER", d, 1)
-
-       # add template
-       locale_feeds += "# For each supported locale there is a subfeed in each of the feed folders.\n"
-       locale_feeds += "# You can use your webbrowser to check for valid locale codes.\n\n"
-       locale_feeds += "# To point ipkg at packages for your locale, replace <my_locale> with the\n"
-       locale_feeds += "# locale code in the template below and remove the leading '#' characters.\n\n"
-       for p in prefixes:
-               locale_feeds += "# src/gz %s-locale-<my_locale> %s/locale/<my_locale>\n" % (p.split('/')[-1], p)
+       m = bb.data.getVar("MACHINE", d, 1)
+       pattern = bb.data.getVar("DISTRO_FEEDS_FILE_PATTERN", d, 1)
+       pfx = bb.data.getVar("DISTRO_FEEDS_PREFIX", d, 1)
+       cs = bb.data.getVar("DISTRO_FEEDS_COLLECTIONS", d, 1).split()
        
-       # add feed for each IMAGE_LINGUA
-       linguas = bb.data.getVar("IMAGE_LINGUAS", d, 1).split()
-       for l in linguas:
-               fst = l.split('-')[0]
-               locale_feeds += "\n# %s locale feeds\n" % fst
-               for p in prefixes:
-                       locale_feeds += "src/gz %s-locale-%s %s/locale/%s\n" % (p.split('/')[-1], fst, p, fst)
-       
-       bb.data.setVar("DISTRO_LOCALE_FEEDS", locale_feeds, d)
+       cmds = ""
+       for c in cs:
+               file = pattern % c
+               cmds += "cat > %s <<EOF\n" % file
+
+               desc = bb.data.getVar("DISTRO_FEEDS_COLLECTION_DESC_%s" % c, d, 1)
+               cmds += "# %s\n\n" % desc
+
+               feeds = bb.data.getVar("DISTRO_FEEDS_IN_%s" % c, d, 1).split()
+               for f in feeds:
+                       desc = bb.data.getVar("DISTRO_FEEDS_FEED_DESC_%s" % f, d, 1)
+                       cmds += "# %s - %s\n" % (f, desc)
+                       cmds += "src/gz %s %s/%s/%s\n" % (f, pfx, c, f)
+                       cmds += "src/gz %s-%s %s/%s/%s/machine/%s\n\n" % (f, m, pfx, c, f, m)
+
+               # locale subfeeds
+
+               # add template
+               cmds += "\n# For each supported locale there is a subfeed in each of the feed folders.\n"
+               cmds += "# You can use your webbrowser to check for valid locale codes.\n\n"
+               cmds += "# To point ipkg at packages for your locale, replace <my_locale> with the\n"
+               cmds += "# locale code in the template below and remove the leading '#' characters.\n\n"
+               for f in feeds:
+                       cmds += "# src/gz %s-locale-<my_locale> %s/%s/%s/locale/<my_locale>\n" % (f, pfx, c, f)
+               
+               # add feed for each IMAGE_LINGUA
+               linguas = bb.data.getVar("IMAGE_LINGUAS", d, 1).split()
+               for l in linguas:
+                       fst = l.split('-')[0]
+                       cmds += "\n# %s locale feeds\n" % fst
+                       for f in feeds:
+                               cmds += "src/gz %s-locale-%s %s/%s/%s/locale/%s\n" % (f, fst, pfx, c, f, fst)
+               
+               cmds += "\nEOF\n"
+
+       bb.data.setVar("DISTRO_FEEDS_COMMANDS", cmds, d)
 }
 
 insert_feed_uris () {
        
        echo "Building feeds for [${DISTRO}].."
                
-       for line in ${FEED_URIS}
-       do
-               # strip leading and trailing spaces/tabs, then split into name and uri
-               line_clean="`echo "$line"|sed 's/^[ \t]*//;s/[ \t]*$//'`"
-               feed_name="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\1/p'`"
-               feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`"                                        
-               
-               echo "Added $feed_name feed with URL $feed_uri"
-               
-               # insert new feed-sources
-               echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/ipkg/${feed_name}-feed.conf
-       done                    
-
-       if [ -z ${FEED_URIS} ]; then
-cat > ${IMAGE_ROOTFS}/etc/ipkg/${DISTRO}-${DISTRO_VERSION}-feeds.conf <<EOF
-${DISTRO_FEEDS}
-EOF
-
-cat > ${IMAGE_ROOTFS}/etc/ipkg/${DISTRO}-${DISTRO_VERSION}-locale-feeds.conf <<EOF
-${DISTRO_LOCALE_FEEDS}
-EOF
-       fi
+${DISTRO_FEEDS_COMMANDS}
+
+       mkdir -p ${DEPLOY_DIR}/ipkg_confs/${MACHINE}
+       cp -f ${IMAGE_ROOTFS}/etc/ipkg/*conf ${DEPLOY_DIR}/ipkg_confs/${MACHINE}
 }