Active Topics

 


Reply
Thread Tools
Posts: 8 | Thanked: 0 times | Joined on Mar 2010 @ bogota, colombia
#1
Hy everybody,

I succeeded in building a debian package for my program.
But when I try to install it on the N900 I get the message that its not compatible.
What could cause that?

This is my control file:

Code:
Source: unitrans
Section: Education
Priority: extra
Maintainer: Markus Doebele <mar_doe@gmx.de>
Build-Depends: debhelper (>= 4)
Standards-Version: 1.0.0

Package: unitrans
Architecture: any
Depends: libqt4-gui
Description: Unitrans is a universal diccionary for the maemo platform
XB-Maemo-Icon-26:
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oDCBUzB42HVt4AAAMESURBVEjH
  7ZRfiJRVGMZ/7/edMzt/1p3dndXcicWlxmxJ2BuRVBJqvZDsooTWyIu6CQraiyBKiDURBC+8EdQh
dQu6MLeLEtSCMFg1EDfBjdj8h0Fulu2Mu+s4f7+Z7xwvZtVWV+nbO8MX3qtzOM95n+d5H3hcj0Lp
oG37P9STN329dt1PGr7SIl/rd5bv1xb05c27tXIPaDiok11DenjTPm0/+VgrwAv6s/FKgvjv5+ju
ijJ8OspEtjTj3BiLo0N0t+ZIxIUpJ4kzFwpWHnqewb5Btq84y7d7U7z2Zop8vgaA5/kklyxk4I1x
vus9z5+JxWz8eSXyFtggIAoYaDpOKFJjTbdwoOsH6OkhE0uS6nmO4jeHGdvxBUsO72bn5xNsTl8n
ly0iFwMCGeApXAwgIih8cBwQQWo1rOuC74PWGN/iG4sAKih3AkzFkxhrqVYN89tj6FIep1LGTEwi
bQmIRPBzeXI6Tq3s4TiCXOsNNlFYYNVfZwg7Hj2vpujvGiXWqDl5cITVu95nIv0l2Rde4ZkrQxz5
  pZFdIwuZzBRQT2wNOFIURlMZBvc/TW/4KKeGDP3H2kjSyGogM5Zj/YZT9L3dybsvjtNyLM0Hpddx
  MNPE/9fOQ+n0s/T+mmbH8Sd5Od3Cj2eK1Ip1i7umxm+jWd7bNMZLW5tJDWxjaMX3yElZFIi6iK2y
rPNTcC2ID+MF8tf6iEXC2GkNAYqtHdDeTrnsY3UI5cTMDKERwD7Yio41oARsfW+oWgpFQyxyFwQg
X3NxfRe0W1+LxR9lp1EEjFCtWpSyOC7YWdCiyoPPHNAy8+VZ3Cly94Kav6Z0ZxOvXnI4f6GVpd05
WhZ4uLM91ADsmU69QIvu1+G9QpiR4ShXr68ikfJoaDhBc1Phfg7N3JLbuZ3JVjUQao6DuULl7wxW
zZs9u9XcgNTNCyEES8Wv0hG7QVtnmSZTxPvDkA9p7D1CxLTHXKJYXdyS+Jd8FhG4YaNMAdB4v72p
  QsjWrfkwN9wLVPknGBdiLHRYsMLj+n/VLb/sHanOJbVYAAAAAElFTkSuQmCC
This is my rules file:

Code:
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
export DH_COMPAT=4



CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif

configure: configure-stamp
configure-stamp:
	dh_testdir
	# Add here commands to configure the package.

	touch configure-stamp


build: build-stamp

build-stamp: configure-stamp 
	dh_testdir

	# Add here commands to compile the package.
	$(MAKE)
	#docbook-to-man debian/raeddit.sgml > raeddit.1

	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	# Add here commands to clean up after the build process.
	-$(MAKE) clean

	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs

	# Add here commands to install the package into debian/unitrans.
	$(MAKE) DESTDIR=$(CURDIR)/debian/unitrans install


# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs 
	dh_installdocs
	dh_installexamples
#	dh_install
#	dh_installmenu
#	dh_installdebconf	
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
#	dh_installmime
#	dh_python
#	dh_installinit
#	dh_installcron
#	dh_installinfo
	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
#	dh_perl
#	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

Last edited by wizkoder; 2010-03-18 at 18:04.
 
fgs's Avatar
Posts: 77 | Thanked: 85 times | Joined on Feb 2008 @ Italy
#2
I think the problem is in the Standards-Version field. Value should be 3.7.2
It is the version of the packaging system, not of your application (application version is retrieved from changelog file).

As a further note, Section should be user/education.
Packages not under user section are not considered as end-user applications, so they will not be shown as installable applications to users by the Maemo application manager.

You find everything you need to know in this section within maemo.org wiki:
http://wiki.maemo.org/Maemo_packagin...ng_information
__________________
My blog on technology and humanity, with a good amount of Maemo: http://fgs.altervista.org/
 
Posts: 8 | Thanked: 0 times | Joined on Mar 2010 @ bogota, colombia
#3
I tried changing version to 3.7.2 but I still receive the same error.
Could it be that it depends on what version of qt I have installed on the N900?
I use the actual qt creator from nokia for development on my kubuntu 9.10 system.
Or what exactely does the apt system check on the N900?

Last edited by wizkoder; 2010-03-15 at 23:23.
 
jkq's Avatar
Posts: 251 | Thanked: 131 times | Joined on Oct 2009 @ USA
#4
Is it an ARM binary? I see arch=any and you're using QT, so I assume it is written in C++...

-jkq
__________________
Class .. : Quiet One
Humor .. : [*********-] Alignment: Chaotic Good
Patience : [******----] Weapon(s): Python scripts
Agro ... : [***-------] Relic(s) : N900
 
Posts: 8 | Thanked: 0 times | Joined on Mar 2010 @ bogota, colombia
#5
Yes, its a C++ program.
Should I state something more specific in the architecture field?

I compiled the program in the scratchbox by changing the target to armel.
My settings are:

Code:
Compiler:         cs2007q3-glibc2.5-arm7
Architecture:     arm
Sub-architecture: arm
C-library:        glibc
Devkits:          qemu debian-etch perl
CPU-transparency: /scratchbox/devkits/qemu/bin/qemu-arm-sb

This is what I get from the "dpkg-buildpackage -rfakeroot":
Code:
[sbox-FREMANTLE_ARMEL: ~/MyDocs/UniTrans] > dpkg-buildpackage -rfakeroot                               
dpkg-buildpackage: source package is unitrans                                                          
dpkg-buildpackage: source version is 1.0.0                                                             
dpkg-buildpackage: source changed by Markus Döbele <mar_doe@gmx.de>                                    
dpkg-buildpackage: host architecture armel                                                             
dpkg-buildpackage: source version without epoch 1.0.0                                                  
: Using Scratchbox tools to satisfy builddeps                                                          
 fakeroot debian/rules clean                                                                           
dh_testdir                                                                                             
dh_testroot                                                                                            
rm -f build-stamp configure-stamp                                                                      
# Add here commands to clean up after the build process.                                               
/scratchbox/tools/bin/make clean                                                                       
make[1]: Entering directory `/home/markus/MyDocs/UniTrans'                                             
rm -f moc_mainwindow.cpp                                                                               
rm -f qrc_zeux.cpp                                                                                     
rm -f ui_mainwindow.h                                                                                  
rm -f main.o mainwindow.o moc_mainwindow.o qrc_zeux.o                                                  
rm -f *~ core *.core                                                                                   
make[1]: Leaving directory `/home/markus/MyDocs/UniTrans'                                              
dh_clean                                                                                               
 dpkg-source -b UniTrans                                                                               
dpkg-source: warning: source directory `./UniTrans' is not <sourcepackage>-<upstreamversion> `unitrans-1.0.0'                                                                                                 
dpkg-source: building unitrans in unitrans_1.0.0.tar.gz                                                
dpkg-source: building unitrans in unitrans_1.0.0.dsc                                                   
 debian/rules build                                                                                    
dh_testdir                                                                                             
# Add here commands to configure the package.                                                          
touch configure-stamp                                                                                  
dh_testdir                                                                                             
# Add here commands to compile the package.                                                            
/scratchbox/tools/bin/make                                                                             
make[1]: Entering directory `/home/markus/MyDocs/UniTrans'                                             
/usr/bin/uic mainwindow.ui -o ui_mainwindow.h                                                          
g++ -c -pipe -O3 -g -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/linux-g++-gles2 -I. -I/targets/FREMANTLE_ARMEL/usr/include/qt4/QtCore -I/targets/FREMANTLE_ARMEL/usr/include/qt4/QtGui -I/targets/FREMANTLE_ARMEL/usr/include/qt4 -I. -I. -o main.o main.cpp                                                                                
g++ -c -pipe -O3 -g -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/linux-g++-gles2 -I. -I/targets/FREMANTLE_ARMEL/usr/include/qt4/QtCore -I/targets/FREMANTLE_ARMEL/usr/include/qt4/QtGui -I/targets/FREMANTLE_ARMEL/usr/include/qt4 -I. -I. -o mainwindow.o mainwindow.cpp                                                                    
/usr/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/linux-g++-gles2 -I. -I/targets/FREMANTLE_ARMEL/usr/include/qt4/QtCore -I/targets/FREMANTLE_ARMEL/usr/include/qt4/QtGui -I/targets/FREMANTLE_ARMEL/usr/include/qt4 -I. -I. mainwindow.h -o moc_mainwindow.cpp                                                                                             
g++ -c -pipe -O3 -g -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/linux-g++-gles2 -I. -I/targets/FREMANTLE_ARMEL/usr/include/qt4/QtCore -I/targets/FREMANTLE_ARMEL/usr/include/qt4/QtGui -I/targets/FREMANTLE_ARMEL/usr/include/qt4 -I. -I. -o moc_mainwindow.o moc_mainwindow.cpp                                                            
/usr/bin/rcc -name zeux zeux.qrc -o qrc_zeux.cpp                                                       
g++ -c -pipe -O3 -g -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/linux-g++-gles2 -I. -I/targets/FREMANTLE_ARMEL/usr/include/qt4/QtCore -I/targets/FREMANTLE_ARMEL/usr/include/qt4/QtGui -I/targets/FREMANTLE_ARMEL/usr/include/qt4 -I. -I. -o qrc_zeux.o qrc_zeux.cpp                                                                        
g++ -Wl,-O1 -o UniTrans main.o mainwindow.o moc_mainwindow.o qrc_zeux.o    -L/usr/lib -Wl,-rpath-link=/usr/lib -lQtGui -lQtCore -lpthread                                                                     
make[1]: Leaving directory `/home/markus/MyDocs/UniTrans'                                              
#docbook-to-man debian/raeddit.sgml > raeddit.1                                                        
touch build-stamp                                                                                      
 fakeroot debian/rules binary                                                                          
dh_testdir                                                                                             
dh_testroot                                                                                            
dh_clean -k                                                                                            
dh_installdirs                                                                                         
# Add here commands to install the package into debian/unitrans.                                       
#/scratchbox/tools/bin/make DESTDIR=/home/markus/MyDocs/UniTrans/debian/unitrans install               
/scratchbox/tools/bin/make install DESTDIR=/home/markus/MyDocs/UniTrans/debian/usr/bin                 
make[1]: Entering directory `/home/markus/MyDocs/UniTrans'                                             
make[1]: Nothing to be done for `install'.                                                             
make[1]: Leaving directory `/home/markus/MyDocs/UniTrans'                                              
dh_testdir                                                                                             
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
warning, `debian/unitrans/DEBIAN/control' contains user-defined field `Maemo-Icon-26'
dpkg-deb: building package `unitrans' in `../unitrans_1.0.0_armel.deb'.
dpkg-deb: ignoring 1 warnings about the control file(s)
 dpkg-genchanges
dpkg-genchanges: warning: unknown information field `Xb-Maemo-Icon-26' in input data in package's section of control info file
dpkg-genchanges: including full source code in upload
dpkg-buildpackage: full upload; Debian-native package (full source is included)
[sbox-FREMANTLE_ARMEL: ~/MyDocs/UniTrans] >
 
jkq's Avatar
Posts: 251 | Thanked: 131 times | Joined on Oct 2009 @ USA
#6
Originally Posted by wizkoder View Post
Yes, its a C++ program.
Should I state something more specific in the architecture field?
I believe "any" is the right answer, although I don't have anything in front of me at the moment to confirm it. Mainly I just wanted to know if you used scratchbox when compiling. =)

Originally Posted by wizkoder View Post
I compiled the program in the scratchbox by changing the target to armel.
That all seems reasonable to me... not that I am an expert!

Have you tried doing "dpkg -i <debname>" as root on your device? Does it return any error messages?

-jkq
__________________
Class .. : Quiet One
Humor .. : [*********-] Alignment: Chaotic Good
Patience : [******----] Weapon(s): Python scripts
Agro ... : [***-------] Relic(s) : N900
 
Posts: 8 | Thanked: 0 times | Joined on Mar 2010 @ bogota, colombia
#7
I just tried that and it installs without errors.
Same happens when I do "dpkg -i unitrans_1.0.0_armel.deb" in the scratchbox.
But I do not see an icon and there is no executable in /usr/bin.
How do I say again where the executable should be installed?

Found this in the rules file:
Code:
install: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs

	# Add here commands to install the package into debian/unitrans.
	#$(MAKE) DESTDIR=$(CURDIR)/debian/unitrans install
	$(MAKE) install DESTDIR=$(CURDIR)/debian/usr/bin
Basically I have only one file to install (I included the other files as qt resources).
Should the above lines handle that?
 
jkq's Avatar
Posts: 251 | Thanked: 131 times | Joined on Oct 2009 @ USA
#8
Originally Posted by wizkoder View Post
I just tried that and it installs without errors.
Same happens when I do "dpkg -i unitrans_1.0.0_armel.deb" in the scratchbox.
But I do not see an icon and there is no executable in /usr/bin.
How do I say again where the executable should be installed?

Found this in the rules file:
Code:
install: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs

	# Add here commands to install the package into debian/unitrans.
	#$(MAKE) DESTDIR=$(CURDIR)/debian/unitrans install
	$(MAKE) install DESTDIR=$(CURDIR)/debian/usr/bin
Basically I have only one file to install (I included the other files as qt resources).
Should the above lines handle that?
I'm not sure. It is calling "make install" for your project. What does your makefile do?

Also, what is the output of "dpkg -L unitrans"? That should show you what got installed and to where.

-jkq
__________________
Class .. : Quiet One
Humor .. : [*********-] Alignment: Chaotic Good
Patience : [******----] Weapon(s): Python scripts
Agro ... : [***-------] Relic(s) : N900
 
Posts: 8 | Thanked: 0 times | Joined on Mar 2010 @ bogota, colombia
#9
My makefile only contains this:

Code:
####### Compile

main.o: main.cpp mainwindow.h
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp

mainwindow.o: mainwindow.cpp mainwindow.h \
		ui_mainwindow.h
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp

moc_mainwindow.o: moc_mainwindow.cpp 
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp

qrc_zeux.o: qrc_zeux.cpp 
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_zeux.o qrc_zeux.cpp

####### Install

install:   FORCE

uninstall:   FORCE

FORCE:
It is created by qmake.
All this C++ stuff is new to me.

I read qmake gets its informations from the project file.
Which looks like this for this program:

Code:
# -------------------------------------------------
# Project created by QtCreator 2010-02-18T12:12:07
# -------------------------------------------------
TARGET = UniTrans
TEMPLATE = app
SOURCES += main.cpp \
    mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
RESOURCES += zeux.qrc
Where do I enter the information where to install my files?
 
jkq's Avatar
Posts: 251 | Thanked: 131 times | Joined on Oct 2009 @ USA
#10
Originally Posted by wizkoder View Post
Where do I enter the information where to install my files?
In the area indicated below (note that I cut out the "Compile" section from your makefile snippet).

Code:
####### Install

install:   FORCE
	# add your install code here!

uninstall:   FORCE

FORCE:
In my app, I just put the install code directly in the debian/rules file.

-jkq
__________________
Class .. : Quiet One
Humor .. : [*********-] Alignment: Chaotic Good
Patience : [******----] Weapon(s): Python scripts
Agro ... : [***-------] Relic(s) : N900
 
Reply


 
Forum Jump


All times are GMT. The time now is 12:53.