Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[EBUILD] USBAuth (modulo pam)
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
Alex.l
n00b
n00b


Joined: 01 Aug 2004
Posts: 11

PostPosted: Sun Jul 22, 2007 6:14 pm    Post subject: [EBUILD] USBAuth (modulo pam) Reply with quote

Ciao a tutti, sto scrivendo una ebuild per il modulo pam usbauth http://usbauth.delta-xi.net , ho già provato pam_usb, ma non mi piace, ho letto un po' di documentazione (ufficiale e non) e ho consultato ebuild già esistenti, tuttavia non riesco a capire dove sbaglio con la mia; durante src_install() da sempre una sandbox violation; non sono affatto esperto, e questo è il mio primo tentativo di realizzare una ebuild, mi potete dare una mano ?

usbauth-0.3.2.ebuild
Code:
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit eutils pam

DESCRIPTION="USBAuth provides passwordless local user authentication via ordinary USB storage devices."
HOMEPAGE="http://usbauth.delta-xi.net"
MY_P=usbauth_v0.3-2_source
SRC_URI=http://dl.delta-xi.net/${MY_P}.tar.bz2
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86"
IUSE=""
S="${WORKDIR}/usbauth_v0.3"

DEPEND="dev-libs/openssl
sys-libs/pam"
RDEPEND=""

src_compile() {
epatch "${FILESDIR}"/${MY_P}.makefile.gentoo.patch
emake -j1 DESTDIR=${D} || die "emake failed"
}

src_install() {
emake -j1 DESTDIR=${D} install || die " emake install failed"
}


usbauth_v0.3-2_source.makefile.gentoo.patch
Code:

--- Makefile    2007-05-02 09:03:20.000000000 +0200
+++ Makefile.patched    2007-07-22 18:29:35.000000000 +0200
@@ -11,7 +11,7 @@



-all:   $(TARGET)       install
+all:   $(TARGET)

 $(TARGET): $(TARGET).c
        $(CC) -o $(TARGET).so $(CFLAGS) $(LDFLAGS) $(TARGET).c parser.c


/var/tmp/portage/sys-auth/usbauth-0.3.2/temp/build.log
Code:

>>> Unpacking source...
>>> Unpacking usbauth_v0.3-2_source.tar.bz2 to /var/tmp/portage/sys-auth/usbauth-0.3.2/work
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/sys-auth/usbauth-0.3.2/work/usbauth_v0.3 ...
 * Applying usbauth_v0.3-2_source.makefile.gentoo.patch ...                                                                                                                   [ ok ]
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../i686-pc-linux-gnu/bin/ld: warning: creating a DT_TEXTREL in object.
uapasswd.c: In function âotp_rehashâ:
uapasswd.c:437: warning: assignment makes pointer from integer without a cast
>>> Source compiled.
>>> Test phase [not enabled]: sys-auth/usbauth-0.3.2

>>> Install usbauth-0.3.2 into /var/tmp/portage/sys-auth/usbauth-0.3.2/image/ category sys-auth
ACCESS DENIED  open_wr:   /lib/security/pam_usbauth.so
install: impossibile creare il file normale `/lib/security/pam_usbauth.so': Permission denied
make: *** [install] Error 1

!!! ERROR: sys-auth/usbauth-0.3.2 failed.
Call stack:
  ebuild.sh, line 1621:   Called dyn_install
  ebuild.sh, line 1067:   Called qa_call 'src_install'
  ebuild.sh, line 44:   Called src_install
  usbauth-0.3.2.ebuild, line 27:   Called die

!!!  emake install failed
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/var/tmp/portage/sys-auth/usbauth-0.3.2/temp/build.log'.


Alex


Last edited by Alex.l on Mon Jul 23, 2007 12:09 pm; edited 3 times in total
Back to top
View user's profile Send private message
mrfree
Veteran
Veteran


Joined: 15 Mar 2003
Posts: 1303
Location: Europe.Italy.Sulmona

PostPosted: Mon Jul 23, 2007 8:28 am    Post subject: Reply with quote

Purtroppo il sito del modulo pare sia down quindi non posso vedere i sorgenti, ti posso però consigliare di dare uno sguardo su http://devmanual.gentoo.org non è che ti manca pure un econf in src_compile()?
_________________
Please EU, pimp my country!

ICE: /etc/init.d/iptables panic
Back to top
View user's profile Send private message
Scen
Retired Dev
Retired Dev


Joined: 29 Jul 2003
Posts: 2470
Location: Padova, Italy

PostPosted: Mon Jul 23, 2007 8:38 am    Post subject: Reply with quote


  1. c'è un DESTDIR=${D} di troppo nella riga
    Code:

    emake -j1 DESTDIR=${D}

    di src_compile(): non serve.
  2. togli il -j1 dal emake di src_install()
  3. quella patch che va a modificare il Makefile l'hai fatta tu? L'ebuild dà lo stesso errore anche se NON applichi quella patch? Il tuo problema dovrebbe essere proprio nel Makefile, che non considera correttamente la variabile ${D} che gli passi, e tenta d installare direttamente il o i file nella root di sistema.

@mrfree: Riguardo alla mancanza di econf, non è detto che sia un errore. I sorgenti di molti pacchetti non includono lo script di autoconfigurazione, ma solamente il Makefile (il più delle volte "pilotato" da delle variabili da passare al make). Comunque, Alex.l: controlla se i sorgenti di questo programma includono anche lo script configure, ed includi eventualmente la procedura nell'ebuild!
_________________
I was born in a deep forest/I wish I could live here all my life/I am made from stones and roots/My home, these woods and roads
All my life I loved this sound/Of the woods all around/Eagles flies where the winds blows free
Journey is my destiny
Back to top
View user's profile Send private message
drizztbsd
Retired Dev
Retired Dev


Joined: 21 Nov 2004
Posts: 278
Location: Cesano Maderno

PostPosted: Mon Jul 23, 2007 8:56 am    Post subject: Reply with quote

Scen si vede che sei un developer di documentazione :P
src_compile e src_install fatti così sono inutili e ridondanti, se ti servono così LEVALI che tanto sono quelli di default.
_________________
Gentoo/Alt lead
Gentoo/*BSD and Gentoo/FreeBSD deputy lead
Paludis contributor
Back to top
View user's profile Send private message
Scen
Retired Dev
Retired Dev


Joined: 29 Jul 2003
Posts: 2470
Location: Padova, Italy

PostPosted: Mon Jul 23, 2007 9:06 am    Post subject: Reply with quote

drizztbsd wrote:
Scen si vede che sei un developer di documentazione :P
src_compile e src_install fatti così sono inutili e ridondanti, se ti servono così LEVALI che tanto sono quelli di default.

:wink: C'hai ragggione :P (Devo ancora farmi le ossa :roll: Inoltre è lunedì mattina, devo ancora svegliarmi completamente :D )

Per rifarmi aggiungo una cosa: l'eventuale epatch inseriscilo nella funzione src_unpack
Code:

src_unpack() {
   unpack ${A}
   cd "${S}"
   epatch "${FILESDIR}/${MY_P}.makefile.gentoo.patch"
}

_________________
I was born in a deep forest/I wish I could live here all my life/I am made from stones and roots/My home, these woods and roads
All my life I loved this sound/Of the woods all around/Eagles flies where the winds blows free
Journey is my destiny
Back to top
View user's profile Send private message
Alex.l
n00b
n00b


Joined: 01 Aug 2004
Posts: 11

PostPosted: Mon Jul 23, 2007 9:11 am    Post subject: Reply with quote

Intanto grazie a tutti!!!

Allora il makefile del programma è un po' strano, nel senso che non prevede lo script configure e ha solo "install" come target, quidni prendendo spunto da un altro thread ho patchato in modo da fare make+make install; questo è il MAkefile originale

Makefile:
Code:

#gcc -I/usr/include -shared -lcrypt -o pam_usbauth.so pam_usbauth.c

DESTDIR = .
CC = gcc
CFLAGS = -I/usr/include -shared
LDFLAGS = -lcrypt -lssl
TARGET = pam_usbauth
PASSWD = uapasswd
DAEMON = usbauthd
WARNINFO = "\n\n********WARNING:********\nBe sure NOT to select harddisk devices when using the "-d" switch of uapasswd (or in /etc/usbauth.conf), otherwise they will be corrupted!\nAlways carry your USB device with you. Please note that the state of this software should still be considered as alpha!\n************************\n"

 

all:   $(TARGET)   install

$(TARGET): $(TARGET).c
   $(CC) -o $(TARGET).so $(CFLAGS) $(LDFLAGS) $(TARGET).c parser.c
   $(CC) -o $(PASSWD) $(LDFLAGS) $(PASSWD).c
   $(CC) -o $(DAEMON) $(LDFLAGS) $(DAEMON).c

install:
   install $(TARGET).so /lib/security
   install uapasswd.man /usr/share/man/man1/uapasswd.1
   install -m 0700 uapasswd /usr/sbin
   install -m 0700 usbauthd /usr/sbin
   if [ -e /etc/usbauth.conf ]; then rm /etc/usbauth.conf; fi
   install -m 0600 usbauth.conf /etc/usbauth.conf
   @echo -e $(WARNINFO)
   @echo -e "\nEverything's going ok!"
clean:
   rm -f *.o *.so



Sono ignorantissimo su queste cose, però avendo bisogno di questo programma mi sono buttato con la speranza di imparare qualcosa (e di riuscirci :D )
Alex
Back to top
View user's profile Send private message
Alex.l
n00b
n00b


Joined: 01 Aug 2004
Posts: 11

PostPosted: Mon Jul 23, 2007 9:51 am    Post subject: Reply with quote

Ragazzi credo di avercela fatta!!! Se a qualcuno puo' interessare metto qui l'ebuild e la patch, magari la potete inserire nei tip; adess olo provo un po', poi credo di modificare l'ebuild per compilare dal trunk svn, l'autore del prog sostiene che i sorgenti che mette in svn sono solitamente stabili.

Vediamo se funziona!!!

usbauth-0.3.2.ebuild
Code:


# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit eutils pam

DESCRIPTION="USBAuth provides passwordless local user authentication via ordinary USB storage devices."
HOMEPAGE="http://usbauth.delta-xi.net"
MY_P=usbauth_v0.3-2_source
SRC_URI=http://dl.delta-xi.net/${MY_P}.tar.bz2
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86"
IUSE=""
S="${WORKDIR}/usbauth_v0.3"

DEPEND="dev-libs/openssl
sys-libs/pam"
RDEPEND=""

src_unpack() {
   unpack ${A}
   cd "${S}"
   epatch "${FILESDIR}/${MY_P}.makefile.gentoo.patch"
}

src_compile() {
 emake || die "emake failed"
}

src_install() {
 emake install || die "emake install failed"
 dodir $(getpam_mod_dir) /usr/sbin
 einstall DESTDIR=${D} PAM_MODULES="${D}/$(getpam_mod_dir)"
}


usbauth_v0.3-2_source.makefile.gentoo.patch
Code:

--- Makefile    2007-05-02 09:03:20.000000000 +0200
+++ Makefile.patched    2007-07-23 12:12:59.000000000 +0200
@@ -4,6 +4,11 @@
 CC = gcc
 CFLAGS = -I/usr/include -shared
 LDFLAGS = -lcrypt -lssl
+MKDIR:= mkdir
+LIB_DEST:=$(DESTDIR)/lib/security
+MAN_DEST:=$(DESTDIR)/usr/share/man/man1
+SBIN_DEST:=$(DESTDIR)/usr/sbin
+CONF_DEST:=$(DESTDIR)/etc
 TARGET = pam_usbauth
 PASSWD = uapasswd
 DAEMON = usbauthd
@@ -11,7 +16,7 @@



-all:   $(TARGET)       install
+all:   $(TARGET)

 $(TARGET): $(TARGET).c
        $(CC) -o $(TARGET).so $(CFLAGS) $(LDFLAGS) $(TARGET).c parser.c
@@ -19,12 +24,13 @@
        $(CC) -o $(DAEMON) $(LDFLAGS) $(DAEMON).c

 install:
-       install $(TARGET).so /lib/security
-       install uapasswd.man /usr/share/man/man1/uapasswd.1
-       install -m 0700 uapasswd /usr/sbin
-       install -m 0700 usbauthd /usr/sbin
-       if [ -e /etc/usbauth.conf ]; then rm /etc/usbauth.conf; fi
-       install -m 0600 usbauth.conf /etc/usbauth.conf
+       $(MKDIR) -p $(DESTDIR) $(LIB_DEST) $(SBIN_DEST) $(CONF_DEST) $(MAN_DEST)
+       install $(TARGET).so $(LIB_DEST)
+       install uapasswd.man $(MAN_DEST)/uapasswd.1
+       install -m 0700 uapasswd $(SBIN_DEST)
+       install -m 0700 usbauthd $(SBIN_DEST)
+       if [ -e /etc/usbauth.conf ]; then rm $(CONF_DEST)/usbauth.conf; fi
+       install -m 0600 usbauth.conf $(CONF_DEST)/usbauth.conf
        @echo -e $(WARNINFO)
        @echo -e "\nEverything's going ok!"
 clean:
Back to top
View user's profile Send private message
drizztbsd
Retired Dev
Retired Dev


Joined: 21 Nov 2004
Posts: 278
Location: Cesano Maderno

PostPosted: Mon Jul 23, 2007 12:34 pm    Post subject: Reply with quote

RDEPEND è sbagliato e src_compile puoi anche ometterlo, per il resto va bene :P
_________________
Gentoo/Alt lead
Gentoo/*BSD and Gentoo/FreeBSD deputy lead
Paludis contributor
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum