Skocz do zawartości

Paczka Rpm Z Plikami .py


InIrudeBwoy

Rekomendowane odpowiedzi

Na szybko to robię go przy użyciu setup.py :) Więc plik .spec jest tworzony przez niego.

 

Będę wzorował się na tym http://svn.berlios.de/wsvn/sonata/trunk/setup.py

Może mnie to naprowadzi na miejsce gdzie robię błąd.

 

Co wyświetla python setup.py install

Kopiuje wtedy te pliki?

Odnośnik do komentarza
Udostępnij na innych stronach

[michal@Michal-Junior]~/Projects/SynapticsConfig% python setup.py sdist
running sdist                                                          
warning: sdist: manifest template 'MANIFEST.in' does not exist (using default file list)
warning: sdist: standard file not found: should have one of README, README.txt          
writing manifest file 'MANIFEST'                                                        
creating SynapticsConfig-0.1.4                                                          
creating SynapticsConfig-0.1.4/synapticsconfig
making hard links in SynapticsConfig-0.1.4...
hard linking setup.py -> SynapticsConfig-0.1.4
hard linking synapticsconfig/SynapticsConfig.py -> SynapticsConfig-0.1.4/synapticsconfig
hard linking synapticsconfig/__init__.py -> SynapticsConfig-0.1.4/synapticsconfig
hard linking synapticsconfig/dialogs.py -> SynapticsConfig-0.1.4/synapticsconfig
hard linking synapticsconfig/main_window_ui.py -> SynapticsConfig-0.1.4/synapticsconfig
tar -cf dist/SynapticsConfig-0.1.4.tar SynapticsConfig-0.1.4
gzip -f9 dist/SynapticsConfig-0.1.4.tar
removing 'SynapticsConfig-0.1.4' (and everything under it)

To wypluwa, wcześniej dorzuciłem do swojego pliku MANIFEST linki do plików które chciałem uwzględnić i to działało. Jednak nie chciałbym za każdym razem kiedy dodam plik robić tego samego. Zacząłem czytać o MANIFEST.in, zobaczymy czy to coś mi wyjaśni.

Odnośnik do komentarza
Udostępnij na innych stronach

Spróbuj tak przerobiłem plik na swoją modłę:

#!/usr/bin/env python

from setuptools import setup, find_packages



data_files = []
for dirpath, dirnames, filenames in os.walk('synapticsconfig'):
data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]])



setup(name='SynapticsConfig',
     version='0.1.4',
     description='Tool for configuring synaptics touchpads',
     long_description='Tool written in Qt for configuring synaptics touchpads on laptops. Allows for easy setting of basic options.',
     author='Michal Klich',
     author_email='[email protected]',
     url='http://www.michalklich.com/synaptics',
     download_url='http://mklich.hejnet.pl/synaptics',
     packages=find_packages('synapticsconfig'),
     include_package_data=True,
     package_dir={'':'synapticsconfig'},
    data_files=data_files

     zip_safe=False,
#      package_data={'synapticsconfig': ['pam.d/synapticsconfig']},
     license='GPLv2+',
     requires=['PyQt4(>=4.5)','Python(>=2.6)'],
          )

Odnośnik do komentarza
Udostępnij na innych stronach

Pytanie z innej beczki.

Czy setup.py tworzy kompletny plik spec? Chodzi mi o dodatkowe pliki które trzeba wsadzić do np: /etc/. W setup.py data_files to takie miejsce właśnie, czy setup.py dołoży odpowiednie wpisy do spec? Czy może muszę jeszcze dodatkowo dopisać odpowiednie wpisy do speca?

Jeśli tak to mam ewidentnie problem z data_files.

 

A propos Twojego rozwiązania to nie działa :) Dziękuję za pomoc.

Postanowiłem napisać pilk MANIFEST.in i teraz wszystko jest wrzucane przy wykonaniu python setup.py sdist.

 

EDIT:

Zapomnij o pytaniu. python setup.py install załatwia całą sprawę.

 

EDIT2:

Przy użyciu MANIFEST.in (wg. tej strony jest to poprawne) setup.py zbiera już wszystkie wskazane pakiety i umieszcza je w tar.gz. Problem pojawia się podczas budowania paczki rpm. Mianowicie jednym z plików jest link do /usr/bin/consolehelper a bdist_rpm nie puszcza tego jako noarch ponieważ consolehelper jest 64bit.

Teraz pojawia się kolejny problem, skoro jest to tylko kwestia stworzenia linku do consolehelper czy wsadzenie kawałka kodu który to za mnie załatwi jest odpowiednie? Chciałbym zrobić wszystko podręcznikowo :)

Odnośnik do komentarza
Udostępnij na innych stronach

Tak, symlink. Tworzę go wg. tej podpowiedzi http://stackoverflow.com/questions/1321270...-install-script

Działa pięknie, doczytałem się, że w pliku spec są dwie sekcje które mnie interesują %post i %postun. Gdybym w jakiś sposób mógł dobrać się do nich. W pewnym sensie mam już %post. W ostateczności mogę ręcznie edytować plik spec i budować paczkę samemu po wstępnym przerobieniu jej setup.py i wyciągnięciu speca z niej ale wolałbym to zrobić używając distutils.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...