[Gelistirici] rt-* firmware

S.Çağlar Onur caglar at pardus.org.tr
14 Şub 2008 Per 00:29:44 EET


13 Şub 2008 Çar tarihinde, Onur Küçük şunları yazmıştı: 
> > >  Doğru çözüm bence pisi de update ederken permanent dosyalara
> > > dokunmamak, ama "pisi rm" ile paket silinirse permanent dosyaların
> > > silinmesi.
> > 
> > Aslında rm ile silinmesi yerine --ignore-permanent ekleyebiliriz. rm
> > ile bunları silmek olur ya pisi rm kernel durumunda başımızı
> > ağrıtabilir :) 
> 
>  kernel,  system.base in bir parçası. system.base in bir parçasının özel
> parametre verilmeden silinememesi lazım zaten. Ama diğer paketler için
> böyle bir zorunluluk olmasının bence hiç bir anlamı yok.

Faik aşağıdaki iş görür gibi sanki, ne dersin?

caglar at zangetsu pisi $ grep "remove_file(" * -r
atomicoperations.py:                    Remove.remove_file(old_fileinfo[path], self.pkginfo.name, operation = self.operation)
atomicoperations.py:            self.remove_file(fileinfo, self.package_name)
atomicoperations.py:    def remove_file(fileinfo, package_name, operation = REMOVE):


Index: pisi/atomicoperations.py
===================================================================
--- pisi/atomicoperations.py	(revision 17132)
+++ pisi/atomicoperations.py	(working copy)
@@ -359,7 +359,7 @@
             for fileinfo in self.old_files.list:
                 old_fileinfo[str(fileinfo.path)] = fileinfo
             for path in leftover:
-                    Remove.remove_file(old_fileinfo[path], self.pkginfo.name)
+                    Remove.remove_file(old_fileinfo[path], self.pkginfo.name, operation = self.operation)
 
         if self.reinstall():
             # get 'config' typed file objects
@@ -495,7 +495,7 @@
         # is there any package who depends on this package?
 
     @staticmethod
-    def remove_file(fileinfo, package_name):
+    def remove_file(fileinfo, package_name, operation = REMOVE):
         fpath = pisi.util.join_path(ctx.config.dest_dir(), fileinfo.path)
 
         filesdb = pisi.db.filesdb.FilesDB()
@@ -509,7 +509,7 @@
                 ctx.ui.warning(_('Not removing conflicted file : %s') % fpath)
                 return
 
-        if fileinfo.permanent:
+        if fileinfo.permanent and operation != REMOVE:
             # do not remove precious files :)
             pass
         elif fileinfo.type == ctx.const.conf:
@@ -546,7 +546,7 @@
 
     def update_databases(self):
         self.remove_db()
-        self.historydb.add_and_update(pkgBefore=self.package, operation="remove")        
+        self.historydb.add_and_update(pkgBefore=self.package, operation="remove")
 
     def remove_pisi_files(self):
         util.clean_dir(self.package.pkg_dir())

-- 
S.Çağlar Onur <caglar at pardus.org.tr>
http://cekirdek.pardus.org.tr/~caglar/

Linux is like living in a teepee. No Windows, no Gates and an Apache in house!



Gelistirici mesaj listesiyle ilgili daha fazla bilgi