Diffstat (limited to 'noncore/settings/packagemanager') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/packagemanager/oconfitem.h | 7 | ||||
-rw-r--r-- | noncore/settings/packagemanager/oipkg.cpp | 7 | ||||
-rw-r--r-- | noncore/settings/packagemanager/opie-packagemanager.control | 4 |
3 files changed, 13 insertions, 5 deletions
diff --git a/noncore/settings/packagemanager/oconfitem.h b/noncore/settings/packagemanager/oconfitem.h index 9972c00..7b52ce4 100644 --- a/noncore/settings/packagemanager/oconfitem.h +++ b/noncore/settings/packagemanager/oconfitem.h | |||
@@ -17,49 +17,54 @@ _;:, .> :=|. This program is free software; you can | |||
17 | : .. .:, . . . without even the implied warranty of | 17 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 20 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 21 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 22 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 23 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 24 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 25 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | 29 | ||
30 | */ | 30 | */ |
31 | 31 | ||
32 | #ifndef OCONFITEM_H | 32 | #ifndef OCONFITEM_H |
33 | #define OCONFITEM_H | 33 | #define OCONFITEM_H |
34 | 34 | ||
35 | #include <qlist.h> | 35 | #include <qlist.h> |
36 | #include <qstring.h> | 36 | #include <qstring.h> |
37 | 37 | ||
38 | class OConfItem | 38 | class OConfItem |
39 | { | 39 | { |
40 | public: | 40 | public: |
41 | enum Type { Source, Destination, Option, Arch, NotDefined }; | 41 | enum Type { Source=0x01, |
42 | GzSource=0x02, | ||
43 | Destination=0x04, | ||
44 | Option=0x08, | ||
45 | Arch=0x10, | ||
46 | NotDefined=0x20 }; | ||
42 | 47 | ||
43 | OConfItem( Type type = NotDefined, const QString &name = QString::null, | 48 | OConfItem( Type type = NotDefined, const QString &name = QString::null, |
44 | const QString &value = QString::null, const QString &features = QString::null, | 49 | const QString &value = QString::null, const QString &features = QString::null, |
45 | bool active = true ); | 50 | bool active = true ); |
46 | 51 | ||
47 | Type type() { return m_type; } | 52 | Type type() { return m_type; } |
48 | const QString &name() { return m_name; } | 53 | const QString &name() { return m_name; } |
49 | const QString &value() { return m_value; } | 54 | const QString &value() { return m_value; } |
50 | const QString &features() { return m_features; } | 55 | const QString &features() { return m_features; } |
51 | bool active() { return m_active; } | 56 | bool active() { return m_active; } |
52 | 57 | ||
53 | void setType( Type type ) { m_type = type; } | 58 | void setType( Type type ) { m_type = type; } |
54 | void setName( const QString &name ) { m_name = name; } | 59 | void setName( const QString &name ) { m_name = name; } |
55 | void setValue( const QString &value ) { m_value = value; } | 60 | void setValue( const QString &value ) { m_value = value; } |
56 | void setFeatures( const QString &features ) { m_features = features; } | 61 | void setFeatures( const QString &features ) { m_features = features; } |
57 | void setActive( bool active ) { m_active = active; } | 62 | void setActive( bool active ) { m_active = active; } |
58 | 63 | ||
59 | private: | 64 | private: |
60 | Type m_type; // Type of configuration item | 65 | Type m_type; // Type of configuration item |
61 | QString m_name; // Name of item | 66 | QString m_name; // Name of item |
62 | QString m_value; // Value of item | 67 | QString m_value; // Value of item |
63 | QString m_features; // Comma-deliminated list of features this item supports | 68 | QString m_features; // Comma-deliminated list of features this item supports |
64 | bool m_active; // Indicates whether item is currently active | 69 | bool m_active; // Indicates whether item is currently active |
65 | }; | 70 | }; |
diff --git a/noncore/settings/packagemanager/oipkg.cpp b/noncore/settings/packagemanager/oipkg.cpp index f2d7e39..a885ef8 100644 --- a/noncore/settings/packagemanager/oipkg.cpp +++ b/noncore/settings/packagemanager/oipkg.cpp | |||
@@ -93,49 +93,50 @@ OIpkg::OIpkg( Config *config, QObject *parent, const char *name ) | |||
93 | // Default ipkg run-time arguments | 93 | // Default ipkg run-time arguments |
94 | m_ipkgArgs.noaction = false; | 94 | m_ipkgArgs.noaction = false; |
95 | m_ipkgArgs.force_defaults = true; | 95 | m_ipkgArgs.force_defaults = true; |
96 | } | 96 | } |
97 | 97 | ||
98 | OIpkg::~OIpkg() | 98 | OIpkg::~OIpkg() |
99 | { | 99 | { |
100 | // Upon destruction, ensure that items in config list are deleted with list | 100 | // Upon destruction, ensure that items in config list are deleted with list |
101 | if ( m_confInfo ) | 101 | if ( m_confInfo ) |
102 | m_confInfo->setAutoDelete( true ); | 102 | m_confInfo->setAutoDelete( true ); |
103 | 103 | ||
104 | // Free up libipkg resources | 104 | // Free up libipkg resources |
105 | ipkg_deinit( &m_ipkgArgs ); | 105 | ipkg_deinit( &m_ipkgArgs ); |
106 | } | 106 | } |
107 | 107 | ||
108 | OConfItemList *OIpkg::configItems() | 108 | OConfItemList *OIpkg::configItems() |
109 | { | 109 | { |
110 | // Retrieve all configuration items | 110 | // Retrieve all configuration items |
111 | return filterConfItems(); | 111 | return filterConfItems(); |
112 | } | 112 | } |
113 | 113 | ||
114 | OConfItemList *OIpkg::servers() | 114 | OConfItemList *OIpkg::servers() |
115 | { | 115 | { |
116 | // Retrieve only servers | 116 | // Retrieve only servers |
117 | return filterConfItems( OConfItem::Source ); | 117 | return filterConfItems( (OConfItem::Type)((int)OConfItem::Source | |
118 | (int)OConfItem::GzSource) ); | ||
118 | } | 119 | } |
119 | 120 | ||
120 | OConfItemList *OIpkg::destinations() | 121 | OConfItemList *OIpkg::destinations() |
121 | { | 122 | { |
122 | // Retrieve only destinations | 123 | // Retrieve only destinations |
123 | return filterConfItems( OConfItem::Destination ); | 124 | return filterConfItems( OConfItem::Destination ); |
124 | } | 125 | } |
125 | 126 | ||
126 | OConfItemList *OIpkg::options() | 127 | OConfItemList *OIpkg::options() |
127 | { | 128 | { |
128 | // Retrieve only destinations | 129 | // Retrieve only destinations |
129 | return filterConfItems( OConfItem::Option ); | 130 | return filterConfItems( OConfItem::Option ); |
130 | } | 131 | } |
131 | 132 | ||
132 | void OIpkg::setConfigItems( OConfItemList *configList ) | 133 | void OIpkg::setConfigItems( OConfItemList *configList ) |
133 | { | 134 | { |
134 | if ( m_confInfo ) | 135 | if ( m_confInfo ) |
135 | delete m_confInfo; | 136 | delete m_confInfo; |
136 | 137 | ||
137 | m_confInfo = configList; | 138 | m_confInfo = configList; |
138 | 139 | ||
139 | // Write out new /etc/ipkg.conf | 140 | // Write out new /etc/ipkg.conf |
140 | QFile confFile( IPKG_CONF ); | 141 | QFile confFile( IPKG_CONF ); |
141 | if ( confFile.open( IO_WriteOnly ) ) | 142 | if ( confFile.open( IO_WriteOnly ) ) |
@@ -522,48 +523,49 @@ void OIpkg::loadConfiguration() | |||
522 | 523 | ||
523 | QStringList::Iterator lastFile = confFiles.end(); | 524 | QStringList::Iterator lastFile = confFiles.end(); |
524 | for ( QStringList::Iterator it = confFiles.begin(); it != lastFile; ++it ) | 525 | for ( QStringList::Iterator it = confFiles.begin(); it != lastFile; ++it ) |
525 | { | 526 | { |
526 | // Create absolute file path if necessary | 527 | // Create absolute file path if necessary |
527 | QString absFile = (*it); | 528 | QString absFile = (*it); |
528 | if ( !absFile.startsWith( "/" ) ) | 529 | if ( !absFile.startsWith( "/" ) ) |
529 | absFile.prepend( QString( IPKG_CONF_DIR ) + "/" ); | 530 | absFile.prepend( QString( IPKG_CONF_DIR ) + "/" ); |
530 | 531 | ||
531 | // Read in file | 532 | // Read in file |
532 | QFile f( absFile ); | 533 | QFile f( absFile ); |
533 | if ( f.open( IO_ReadOnly ) ) | 534 | if ( f.open( IO_ReadOnly ) ) |
534 | { | 535 | { |
535 | QTextStream s( &f ); | 536 | QTextStream s( &f ); |
536 | while ( !s.eof() ) | 537 | while ( !s.eof() ) |
537 | { | 538 | { |
538 | 539 | ||
539 | QString line = s.readLine().simplifyWhiteSpace(); | 540 | QString line = s.readLine().simplifyWhiteSpace(); |
540 | 541 | ||
541 | // Parse line and save info to the conf options list | 542 | // Parse line and save info to the conf options list |
542 | if ( !line.isEmpty() ) | 543 | if ( !line.isEmpty() ) |
543 | { | 544 | { |
544 | if ( !line.startsWith( "#" ) || | 545 | if ( !line.startsWith( "#" ) || |
545 | line.startsWith( "#src" ) || | 546 | line.startsWith( "#src" ) || |
547 | line.startsWith( "#src/gz" ) || | ||
546 | line.startsWith( "#dest" ) || | 548 | line.startsWith( "#dest" ) || |
547 | line.startsWith( "#arch" ) || | 549 | line.startsWith( "#arch" ) || |
548 | line.startsWith( "#option" ) ) | 550 | line.startsWith( "#option" ) ) |
549 | { | 551 | { |
550 | int pos = line.find( ' ', 1 ); | 552 | int pos = line.find( ' ', 1 ); |
551 | 553 | ||
552 | // Type | 554 | // Type |
553 | QString typeStr = line.left( pos ); | 555 | QString typeStr = line.left( pos ); |
554 | OConfItem::Type type; | 556 | OConfItem::Type type; |
555 | QString features; | 557 | QString features; |
556 | if ( typeStr == "src" || typeStr == "#src" ) | 558 | if ( typeStr == "src" || typeStr == "#src" ) |
557 | type = OConfItem::Source; | 559 | type = OConfItem::Source; |
558 | else if ( typeStr == "src/gz" || typeStr == "#src/gz" ) | 560 | else if ( typeStr == "src/gz" || typeStr == "#src/gz" ) |
559 | { | 561 | { |
560 | type = OConfItem::Source; | 562 | type = OConfItem::Source; |
561 | features = "Compressed"; | 563 | features = "Compressed"; |
562 | } | 564 | } |
563 | else if ( typeStr == "dest" || typeStr == "#dest" ) | 565 | else if ( typeStr == "dest" || typeStr == "#dest" ) |
564 | type = OConfItem::Destination; | 566 | type = OConfItem::Destination; |
565 | else if ( typeStr == "option" || typeStr == "#option" ) | 567 | else if ( typeStr == "option" || typeStr == "#option" ) |
566 | type = OConfItem::Option; | 568 | type = OConfItem::Option; |
567 | else if ( typeStr == "arch" || typeStr == "#arch" ) | 569 | else if ( typeStr == "arch" || typeStr == "#arch" ) |
568 | type = OConfItem::Arch; | 570 | type = OConfItem::Arch; |
569 | else | 571 | else |
@@ -597,49 +599,50 @@ void OIpkg::loadConfiguration() | |||
597 | { | 599 | { |
598 | m_config->setGroup( "Ipkg" ); | 600 | m_config->setGroup( "Ipkg" ); |
599 | m_ipkgExecOptions = m_config->readNumEntry( "ExecOptions", m_ipkgExecOptions ); | 601 | m_ipkgExecOptions = m_config->readNumEntry( "ExecOptions", m_ipkgExecOptions ); |
600 | m_ipkgExecVerbosity = m_config->readNumEntry( "Verbosity", m_ipkgExecVerbosity ); | 602 | m_ipkgExecVerbosity = m_config->readNumEntry( "Verbosity", m_ipkgExecVerbosity ); |
601 | } | 603 | } |
602 | } | 604 | } |
603 | 605 | ||
604 | OConfItemList *OIpkg::filterConfItems( OConfItem::Type typefilter ) | 606 | OConfItemList *OIpkg::filterConfItems( OConfItem::Type typefilter ) |
605 | { | 607 | { |
606 | // Load Ipkg configuration info if not already cached | 608 | // Load Ipkg configuration info if not already cached |
607 | if ( !m_confInfo ) | 609 | if ( !m_confInfo ) |
608 | loadConfiguration(); | 610 | loadConfiguration(); |
609 | 611 | ||
610 | // Build new server list (caller is responsible for deleting) | 612 | // Build new server list (caller is responsible for deleting) |
611 | OConfItemList *sl = new OConfItemList; | 613 | OConfItemList *sl = new OConfItemList; |
612 | 614 | ||
613 | // If typefilter is empty, retrieve all items | 615 | // If typefilter is empty, retrieve all items |
614 | bool retrieveAll = ( typefilter == OConfItem::NotDefined ); | 616 | bool retrieveAll = ( typefilter == OConfItem::NotDefined ); |
615 | 617 | ||
616 | // Parse configuration info for servers | 618 | // Parse configuration info for servers |
617 | OConfItemListIterator it( *m_confInfo ); | 619 | OConfItemListIterator it( *m_confInfo ); |
618 | for ( ; it.current(); ++it ) | 620 | for ( ; it.current(); ++it ) |
619 | { | 621 | { |
620 | OConfItem *item = it.current(); | 622 | OConfItem *item = it.current(); |
621 | if ( retrieveAll || item->type() == typefilter ) | 623 | if ( retrieveAll || |
624 | ( item->type() & typefilter ) ) | ||
622 | { | 625 | { |
623 | sl->append( item ); | 626 | sl->append( item ); |
624 | } | 627 | } |
625 | } | 628 | } |
626 | 629 | ||
627 | return sl; | 630 | return sl; |
628 | } | 631 | } |
629 | 632 | ||
630 | const QString &OIpkg::rootPath() | 633 | const QString &OIpkg::rootPath() |
631 | { | 634 | { |
632 | if ( m_rootPath.isEmpty() ) | 635 | if ( m_rootPath.isEmpty() ) |
633 | { | 636 | { |
634 | OConfItem *rootDest = findConfItem( OConfItem::Destination, "root" ); | 637 | OConfItem *rootDest = findConfItem( OConfItem::Destination, "root" ); |
635 | rootDest ? m_rootPath = rootDest->value() | 638 | rootDest ? m_rootPath = rootDest->value() |
636 | : m_rootPath = '/'; | 639 | : m_rootPath = '/'; |
637 | if ( m_rootPath.right( 1 ) == '/' ) | 640 | if ( m_rootPath.right( 1 ) == '/' ) |
638 | m_rootPath.truncate( m_rootPath.length() - 1 ); | 641 | m_rootPath.truncate( m_rootPath.length() - 1 ); |
639 | } | 642 | } |
640 | return m_rootPath; | 643 | return m_rootPath; |
641 | } | 644 | } |
642 | 645 | ||
643 | void OIpkg::linkPackageDir( const QString &dest ) | 646 | void OIpkg::linkPackageDir( const QString &dest ) |
644 | { | 647 | { |
645 | if ( !dest.isNull() ) | 648 | if ( !dest.isNull() ) |
diff --git a/noncore/settings/packagemanager/opie-packagemanager.control b/noncore/settings/packagemanager/opie-packagemanager.control index da3ddfe..0153d40 100644 --- a/noncore/settings/packagemanager/opie-packagemanager.control +++ b/noncore/settings/packagemanager/opie-packagemanager.control | |||
@@ -1,10 +1,10 @@ | |||
1 | Package: opie-packagemanager | 1 | Package: opie-packagemanager |
2 | Files: plugins/application/libpackagemanager.so* bin/packagemanager pics/packagemanager apps/Settings/packagemanager.desktop | 2 | Files: plugins/application/libpackagemanager.so* bin/packagemanager pics/packagemanager apps/Settings/packagemanager.desktop |
3 | Priority: optional | 3 | Priority: optional |
4 | Section: opie/settings | 4 | Section: opie/settings |
5 | Depends: task-opie-minimal, libopiecore2, libopieui2, libipkg (>=0.99.120) | 5 | Depends: task-opie-minimal, libopiecore2, libopieui2, libipkg0 (>=0.99.120), ipkg-link |
6 | Replaces: packagemanager | 6 | Replaces: packagemanager |
7 | Architecture: arm | 7 | Architecture: arm |
8 | Maintainer: Dan Williams (drw@handhelds.org) | 8 | Maintainer: Dan Williams (drw@handhelds.org) |
9 | Description: Opie package management client | 9 | Description: Opie package management client |
10 | Version: 0.6.1$EXTRAVERSION | 10 | Version: $QPE_VERSION$EXTRAVERSION |