Skocz do zawartości

Budowanie Spec - Conflicts With File From Package


tele

Rekomendowane odpowiedzi

Zbudowalem paczke, instaluje

# rpm -ivh libgcrypt20-1.6.1-1.rpm
Preparing...                ########################################### [100%]
    file /usr/bin/dumpsexp from install of libgcrypt20-1.6.1-1.i586 conflicts with file from package libgcrypt11-1.5.3-1.i586
    file /usr/bin/hmac256 from install of libgcrypt20-1.6.1-1.i586 conflicts with file from package libgcrypt11-1.5.3-1.i586
    file /usr/bin/libgcrypt-config from install of libgcrypt20-1.6.1-1.i586 conflicts with file from package libgcrypt11-1.5.3-1.i586

W pliku spec  mialem

Obsoletes:     %{name} < %version

Zgaduje ze przez to ze uzywam " major " czyli dodatkowego numerka,

tak jak czasami jest uzywane w kernelu w wersji developerskiej.

( w tym przypadku uzylem major=20 )

 

generalnie jak zrobie

# rpm -ivh --replacefiles libgcrypt20-1.6.1-1.i586.rpm
Preparing...                ########################################### [100%]
   1:libgcrypt20            ########################################### [100%]

to widac ze zadziala, (sek w tym ze teraz mam zainstalowane  libgcrypt11 i ibgcrypt20 )

ale jesli chcialbym by to normalnie dzialalo,

to musze te pliki w sekcji %pre pierw usunac ?

czy jest jakas magiczna opcja Obsoletes: ktora dziala z paczkami uzywajacymi " major " ?

Odnośnik do komentarza
Udostępnij na innych stronach

Probowalem zastapic

Obsoletes:     %{name} < %version

lub

Obsoletes:     libgcrypt11

lub

Conflicts:      libgcrypt11

i kicha, nadal jest konflikt plikow, czyli nie zastepuje starszej paczki i tworzy sie druga.

 

Edytowane

Dobra poddaje sie, dzieki za pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Ten akurat pakiet na PCLinuxOS probowalem zrobic,

wlasciwie zaktualizowac, ale nadzialem sie na taki zonk.

Generalnie "major" Jest stosowany od dawna,

obie dystrybucje korzystaja z tego samego pakietu rpm,

jedynie co je wyroznia to drobne nowosci,

w pclosie rpm 4.8 -2013(poprawka na wiki jest 2010), w fedorze 4.11.2 -2014

( w Fedorze aktualizacje sa chyba czesciej ) To co jeszcze moze jeszcze moze roznic jakies dodatkowe makra,

ale generalnie Mageia, Rosa, PCLinuxOS, OpenSuse, CentOS itd. kozystaja z tego samego.

Dlatego pisalem wyzej.

 

Edytowane

Dobra poddaje sie, dzieki za pomoc.

 

W kazdym razie gdyby mi dzialalo jak trzeba, to podejrzewam ze

Obsoletes:     libgcrypt11

powinno wystarczec i dzialac, co znaczy "Zastepuje:     libgcrypt11".

Odnośnik do komentarza
Udostępnij na innych stronach

Wszystko rozbija się właśnie o "jakies dodatkowe makra".

 

Pakiet zbuduj na pliku spec z wersji 1.5.3-1, nie zmieniaj major, lecz tylko Version: ustaw na 1.6.1. Jeżeli się zbuduje (libgcrypt11-1.6.1-1.i586) to powinien przy instalacji wymienić wersję 1.5.3 zainstalowaną w systemie.

%define major 11
%define libname %mklibname gcrypt %{major}
%define develname %mklibname gcrypt -d

%package -n %{libname}
Summary:	GNU Cryptographic library
Group:		System/Libraries
Provides:	%{name} = %{version}-%{release}

%package -n %{develname}
Summary:	Development files for GNU cryptographic library
Group:		Development/Other
Requires:	%{libname} = %{version}-%{release}
Provides:	%{name}-devel = %{version}-%{release}
Obsoletes:	%mklibname -d gcrypt 11

Jak widać pakiet devel  blokuje (dezaktywuje) pakiet z major 11, twój jest ustawiony jako dodatkowy przez major 20, lecz dostarcza tych samych plików, przez co wywala błąd przy instalacji.

 

Edit:

Instalując przez rpm -ivh --replacefiles libgcrypt20-1.6.1-1.i586.rpm, uszkadzasz bazę pakietów, stąd masz dwa zainstalowane gdy faktycznie jest tylko jeden.

Odnośnik do komentarza
Udostępnij na innych stronach

Ale generalnie jakbym zrobil cos takiego

# 32/64bit spec
#
%define major 20



Summary:    GNU Cryptographic library
Name:        libgcrypt
Version:    1.6.1
Release:    %mkrel 14
License:    LGPLv2+
Group:        System/Libraries
Url:        http://www.gnupg.org/
Source0:    ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-%{version}.tar.xz
BuildRequires:    libgpg-error-devel >= 0.5
BuildRoot:    %{_tmppath}/libgcrypt-%{version}-buildroot

#Provides:     libgcrypt
#Obsoletes:    libgcrypt11


%description
Libgcrypt is a general purpose cryptographic library
based on the code from GNU Privacy Guard.  It provides functions for all
cryptograhic building blocks: symmetric ciphers
(AES,DES,Blowfish,CAST5,Twofish,Arcfour), hash algorithms (MD5,
RIPE-MD160, SHA-1, TIGER-192), MACs (HMAC for all hash algorithms),
public key algorithms (RSA, ElGamal, DSA), large integer functions,
random numbers and a lot of supporting functions.


Provides:     libgcrypt
Obsoletes:    libgcrypt11


%prep
%setup -q

%build
%configure2_5x                              \
                      --enable-random=linux \
                      --enable-m-guard                   

%make

%install
rm -rf %{buildroot}
%makeinstall_std

%clean
rm -rf %{buildroot}


%files
%defattr(-,root,root)
%doc AUTHORS README NEWS THANKS TODO
%{_bindir}/*
%{_libdir}/lib*.so.%{major}
%{_libdir}/lib*.so.%{major}.*
%{_datadir}/man/man1/hmac256.1.bz2
%doc ChangeLog README.*
%{_includedir}/*.h
%{_libdir}/lib*.la
%{_libdir}/lib*.so
%{_datadir}/aclocal/*
%{_infodir}/gcrypt.info*


%changelog
* Tue Aug 20 2014 nobody <nobody>
- 1.6.1

To  libgcrypt11 powinno byc zastapione przez libgcrypt, no nie ?

 

Edit:

Jak zrobilem cos takiego to zauwazylem

- konfiktu plikow juz nie ma przy instalacji

- miejsce gdzie dam

Provides:     libgcrypt
Obsoletes:    libgcrypt11

ma znaczenie, bo tam gdzie mam zahaszowane (kratke) to powodobalo mi ze pakiet chcial biblioteki ktore juz mam zainstalowane, co wydaje sie dosc dziwne, poniewaz nie powinno pytac o biblioteki, a o paczki tylko.

No chyba ze rpm ma jakas ukryta funkcje o ktorej nie wiem.

Pozniej sobie na Fodorze porownam .

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ę...