• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[geloest] isomaster paket selbst bauen

oelk

Member
Hallo,

ich möchte das opensuse 13.1 64b image remastern.

Das wäre auch mit isomaster gegangen, hätte ich nicht festgestellt, das die Version 1.3.11
nicht mit Images größer 4.2 GB umgehen kann. Der Entwickler hat jetzt eine neue Version
bereitgestellt (1.3.12), ich dachte ich könnte mir ein neues Package bauen.
bei Packman hat man leider noch nicht reagiert.
Code:
zypper si isomaster
zypper in rpm-build

dann das SPEC-file editiert und
Code:
rpmbuilt -bb ....

Das bricht leider ab.
Mach ich was falsch?
In den alten Sourcen waren auch 2 suse-patches drin, weiss jemand welche Rolle die spielen?

Benutzt irgend jemand überhaupt isomaster?

MfG
 
A

Anonymous

Gast
oelk schrieb:
Das bricht leider ab.
Mach ich was falsch?
ohne die genaue Fehlermeldung oder den Inhalt der Spec-Datei zu kennen kann dir das niemand sagen.

Da du das wohl nur einmalig brauchen wirst, nimm einfach den downgeloadeten Sourcecode entpacke ihn
Code:
tar -xjf isomaster-1.3.12.tar.bz2
in das Verzeichnis wechseln
Code:
cd isomaster-1.3.12
dort make ausführen
Code:
make
in diesem Verzeichnis findest du dann dort eine Datei isofile die kannst du an Ort und stelle ausführen
Code:
./isomaster DEINE_OPTIONEN
wenn du fertig bist und das nicht mehr brauchst dann kannst du das ganze Verzeichnis wieder löschen.

Wenn das nicht gehen sollte weil irgendwelche Abhängigkeiten beim kompilieren nicht erfüllt sind oder weiß der Kuckuck was nicht passt, ist es wirklich keine schlechte Idee das mit rpmbuild zu machen.
die neue Datei isomaster*tar.bz2 Downloaden und nach "/usr/src/packages/SOURCES/" kopieren (oder wo immer dein rpmbuild sonst seine Verzeichnisse hin konfiguriert hat.)
die SPEC Datei die von deiner (nicht funktionierenden) Version gewonnen hast, dort folgende Zeilen entsprechend anpassen

Code:
Version:        1.3.12
Source:         %{name}-%{version}.tar.bz2
#Patch0:         isomaster-fix-linker.patch
#Patch1:         isomaster-1.3.11-docpath.patch
#%patch0 -p1
#%patch1 -p1
danach sollte "rpmbuild -bb isomaster.spec" oder was auch immer du mit rpmbuild machen willst, funktionieren oder dir sagen wo was klemmt.

robi
 

Sauerland

Ultimate Guru
die neue Datei isomaster*tar.bz2 Downloaden und nach "/usr/src/packages/SOURCES/" kopieren (oder wo immer dein rpmbuild sonst seine Verzeichnisse hin konfiguriert hat.)

Ich bau in meinen /home, hab mir die Verzeichnisse mit folgendem Befehl ausgeführt im /home erstellt:
Code:
for i in BUILD RPMS SOURCES SPECS SRPMS tmp;do mkdir -p rpmbuild/${i};done

In dem /home muss dann noch die versteckte Datei .rpmmacros erstellt werden, mit folgendem Inhalt:
Code:
%_topdir %(echo $HOME)/rpmbuild
%_tmppath %(echo $HOME)/rpmbuild/tmp

Bauen geht dann als User.

Nur installieren nicht.......
 
OP
O

oelk

Member
ok guys, here are the details:

ich orientierte mich an
http://wiki.links2linux.de/packman:faq_de

Also die Quellen holen:
Code:
inux:/home/achim/ISOs # zypper si isomaster
Installierte Pakete lesen ...
Daten des Repositories laden ...
Paketabhängigkeiten auflösen ...

The following 48 NEW packages are going to be installed:
  atk-devel cairo-devel fdupes fontconfig-devel freetype2-devel gdk-pixbuf-devel glib2-devel gtk2-devel harfbuzz-devel libcairo-script-interpreter2 libdrm-devel libexpat-devel 
  libicu-devel libpcre16-0 libpcrecpp0 libpcreposix0 libpixman-1-0-devel libpng12-compat-devel libpng12-devel libpng16-devel libstdc++48-devel libstdc++-devel libX11-devel 
  libXau-devel libxcb-devel libxcb-dpms0 libxcb-record0 libxcb-res0 libxcb-screensaver0 libxcb-xevie0 libxcb-xf86dri0 libxcb-xinerama0 libxcb-xkb0 libxcb-xprint0 libxcb-xvmc0 
  libXdamage-devel libXext-devel libXfixes-devel libXft-devel libXrender-devel libXxf86vm-devel Mesa-libEGL-devel Mesa-libGL-devel pango-devel pcre-devel python-xcb-proto-devel    
  xorg-x11-proto-devel zlib-devel                                                                                                                                                   
                                                                                                                                                                                    
The following source package is going to be installed:                                                                                                                              
  isomaster                                                                                                                                                                         
                                                                                                                                                                                    
The following recommended package was automatically selected:                                                                                                                       
  libpng12-compat-devel                                                                                                                                                             
                                                                                                                                                                                    
48 neue Pakete zu installieren, 1 Quellpaket.                                                                                                                                       
Gesamtgröße des Downloads: 14,9 MiB. Nach der Operation werden zusätzlich 114,0 MiB belegt.                                                                                         
Fortfahren? [j/n/? zeigt alle Optionen] (j):

Dann rpm-build holen:
Code:
linux:/usr/src/packages/SPECS # zypper in rpm-build
Daten des Repositories laden ...
Installierte Pakete lesen ...
Paketabhängigkeiten auflösen ...

The following 4 NEW packages are going to be installed:
  gettext-tools patch rpm-build systemd-rpm-macros 

4 neue Pakete zu installieren.
Gesamtgröße des Downloads: 2,4 MiB. Nach der Operation werden zusätzlich 10,6 MiB belegt.
Fortfahren? [j/n/? zeigt alle Optionen] (j):

Jetzt habe ich in /usr/src/packages/SPECS den spec-file:
Code:
#############################
#
# spec file for package isomaster
#
# Copyright (c) 2006-2013 oc2pus
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.links2linux.org
#


Name:           isomaster
Version:        1.3.12
Release:        1.2
License:        GPL-2.0
Summary:        Graphical CD image editor for reading, modifying and writing ISO images
Url:            http://littlesvr.ca/isomaster/
Group:          Productivity/Multimedia/Other
Source:         http://littlesvr.ca/isomaster/releases/%{name}-%{version}.tar.bz2
# PATCH-NEEDS-REBASE isomaster-fix-linker.patch malcolmlewis@opensuse.org -- Revert linking to previous version.
Patch0:         isomaster-fix-linker.patch
# PATCH-FIX-UPSTREAM isomaster-1.3.11-docpath.patch lazy.kent@opensuse.org -- create MYDOCPATH directory
Patch1:         isomaster-1.3.12-docpath.patch
BuildRequires:  fdupes
BuildRequires:  pkg-config
BuildRequires:  update-desktop-files
BuildRequires:  zlib-devel
BuildRequires:  pkgconfig(cairo)
BuildRequires:  pkgconfig(gtk+-2.0)
BuildRequires:  pkgconfig(pango)
Recommends:     %{name}-lang
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
ISO Master is a graphical editor for ISO images with support for
ISO9660, RockRidge, and Joliet file names. It is useful for
extracting, deleting, or adding files and directories to or from
an ISO image.

%lang_package
%prep
%setup -q
#%%patch0 -p1
%patch1 -p1

%build
make %{?_smp_mflags} \
	PREFIX=%{_prefix} \
	DEFAULT_EDITOR=kwrite

%install
%makeinstall \
	MYMANPATH=%{_mandir}/man1 \
	MYDOCPATH=%{_defaultdocdir}/bkisofs \
	PREFIX=%{_prefix}

# icon and menu-entry
install -Dm 644 icons/%{name}.png \
	%{buildroot}%{_datadir}/pixmaps/%{name}.png

sed -i -e 's|Icon=/usr/share/isomaster/icons/isomaster.png|Icon=isomaster|g' \
	%{buildroot}%{_datadir}/applications/%{name}.desktop
%suse_update_desktop_file -n %{name} AudioVideo AudioVideoEditing
%find_lang %{name} %{?no_lang_C}

%fdupes -s %{buildroot}%{_datadir}

%post
%desktop_database_post

%postun
%desktop_database_postun

%files
%defattr(-,root,root,-)
%doc *.TXT
%{_bindir}/%{name}
%{_datadir}/%{name}/
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%doc %{_mandir}/man1/*
%doc %{_defaultdocdir}/bkisofs/

%files lang -f %{name}.lang

%changelog
* Sun Apr 20 2014 lazy.kent@opensuse.org
- Update to 1.13.11.
  * Fixed cygwin builds.
  * Added Bengali and Galician translation.
  * Updated Finnish translation.
  * Should work better with bigger than normal boot records now.
- Changes in 1.13.10.
  * Fixed bug where "out of memory" would be claimed sometimes
    because RockRidge records were missing.
- Add isomaster-1.3.11-docpath.patch: create MYDOCPATH directory.
- Disable isomaster-fix-linker.patch.
- Use desktop_database_post/un macros.
* Tue Mar 19 2013 malcolmlewis@opensuse.org
- Updated to version 1.3.9:
  + Added Slovak and Lithuanian translations.
  + Fixed potential crash when opening a file from the "Recently
    used" section.
- Add isomaster-fix-linker.patch: Revert linking to previous
  version.
- General spec file cleanup.
* Thu Jan  6 2011 pascal.bleser@opensuse.org
- update to 1.3.8: Japanese and Urdu translations were added
* Tue Jan  5 2010 toni@links2linux.de
- update to 1.3.7
- This release fixes a serious bug that would cause some images to
  be created with corrupted files inside.
* Sat Nov 21 2009 toni@links2linux.de
- rebuild with new upstream tarball to enable the bkisofs docs
* Mon Oct 19 2009 toni@links2linux.de
- update to 1.3.6
- A Latvian translation and an "open recent" feature were added. Some reliability
  bugs were fixed. The bkisofs documentation was added to the distribution
  tarball.
* Fri Jan  2 2009 toni@links2linux.de
- update to 1.3.5
* Sun Nov 30 2008 toni@links2linux.de
- update to 1.3.4
* Tue Jul  1 2008 toni@links2linux.de
- update to 1.3.3
* Sun Jun 29 2008 toni@links2linux.de
- update to 1.3.2
* Sun Feb  3 2008 toni@links2linux.de
- update to 1.3.1
* Tue Dec 18 2007 toni@links2linux.de
- update to 1.3
* Sat Oct 27 2007 toni@links2linux.de
- update to 1.2
* Tue Aug 28 2007 toni@links2linux.de
- update to 1.1
* Sun Jun 10 2007 toni@links2linux.de
- update to 1.0
* Mon Mar 19 2007 toni@links2linux.de
- update to 0.8.1
* Sat Mar 17 2007 toni@links2linux.de
- update to 0.8
* Fri Jan 12 2007 toni@links2linux.de
- update to 0.7
* Sun Dec 10 2006 toni@links2linux.de
- update to 0.6
- removed external iconmaster.png
* Sun Nov 26 2006 toni@links2linux.de
- added forgotten icons
* Sun Oct 29 2006 toni@links2linux.de
- update to 0.5
* Wed Sep 27 2006 toni@links2linux.de
- initial release
Den changelog habe ich jetzt noch nicht geändert, erst mal sehen ob es geht.

Den isomaster-1.3.11-docpath.patch editiere ich auch 1.3.11 nach 1.3.12

Dann starte ich mal ein
Code:
#######################################

linux:/usr/src/packages/SPECS # rpmbuild -bb isomaster.spec 
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.SPOyaO                                                                                                                                
+ umask 022                                                                                                                                                                         
+ cd /usr/src/packages/BUILD
+ cd /usr/src/packages/BUILD
+ rm -rf isomaster-1.3.12
+ /usr/bin/bzip2 -dc /usr/src/packages/SOURCES/isomaster-1.3.12.tar.bz2
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd isomaster-1.3.12
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ echo 'Patch #1 (isomaster-1.3.12-docpath.patch):'
Patch #1 (isomaster-1.3.12-docpath.patch):
+ /usr/bin/cat /usr/src/packages/SOURCES/isomaster-1.3.12-docpath.patch
+ /usr/bin/patch -p1 --fuzz=0
patching file Makefile
Hunk #1 FAILED at 128.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej
error: Bad exit status from /var/tmp/rpm-tmp.SPOyaO (%prep)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.SPOyaO (%prep)

Hm, ich schaue mal in der /usr/src/packages/BUILD/isomaster-1.3.12/Makefile.rej
Code:
--- Makefile
+++ Makefile
@@ -128,7 +128,7 @@
        $(INSTALL) -m 644 isomaster.1 $(DESTDIR)$(MYMANPATH)
        $(INSTALL) -d $(DESTDIR)$(DESKTOPPATH)
        $(INSTALL) -m 644 isomaster.desktop $(DESTDIR)$(DESKTOPPATH)
-       #$(INSTALL) -d $(DESTDIR)$(MYDOCPATH)
+       $(INSTALL) -d -m 0755 $(DESTDIR)$(MYDOCPATH)
        for FILE in bkisofs-manual/manual/*html; do \
             $(INSTALL) -m 644 $$FILE $(DESTDIR)$(MYDOCPATH); \
         done;

Hat der Schwierigkeiten mit dem MYMANPATH?

Ich schaue in die /var/tmp/rpm-tmp.xxx
Code:
#!/bin/sh

  RPM_SOURCE_DIR="/usr/src/packages/SOURCES"
  RPM_BUILD_DIR="/usr/src/packages/BUILD"
  RPM_OPT_FLAGS="-O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables"
  RPM_ARCH="x86_64"
  RPM_OS="linux"
  export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS
  RPM_DOC_DIR="/usr/share/doc/packages"
  export RPM_DOC_DIR
  RPM_PACKAGE_NAME="isomaster"
  RPM_PACKAGE_VERSION="1.3.12"
  RPM_PACKAGE_RELEASE="1.2"
  export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
  LANG=C
  export LANG
  unset CDPATH DISPLAY ||:
  RPM_BUILD_ROOT="/usr/src/packages/BUILDROOT/isomaster-1.3.12-1.2.x86_64"
  export RPM_BUILD_ROOT

  PKG_CONFIG_PATH="%{_PKG_CONFIG_PATH}:/usr/lib64/pkgconfig:/usr/share/pkgconfig"
  export PKG_CONFIG_PATH

  set -x
  umask 022
  cd "/usr/src/packages/BUILD"
cd '/usr/src/packages/BUILD'
rm -rf 'isomaster-1.3.12'
/usr/bin/bzip2 -dc '/usr/src/packages/SOURCES/isomaster-1.3.12.tar.bz2' | /bin/tar -xf -
STATUS=$?
if [ $STATUS -ne 0 ]; then
  exit $STATUS
fi
cd 'isomaster-1.3.12'
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
#%patch0 -p1
echo "Patch #1 (isomaster-1.3.12-docpath.patch):"
/usr/bin/cat /usr/src/packages/SOURCES/isomaster-1.3.12-docpath.patch | /usr/bin/patch  -p1  --fuzz=0


exit 0

Und jetzt weiss ich nicht mehr weiter.

MfG
 
OP
O

oelk

Member
Hups:
eben noch in der README in den QUELLEN gesehen:
Code:
rerequisites for Compiling from Source
---------------------------------------
You need a C compiler, make and whatever packages required for compiling GTK2 applications. On ubuntu I had to install (using Synaptic): build-essential, libgtk2.0-dev, pkg-config and gettext. On Slackware I didn't have to install anything.

To compile the documentation you'll need db2html, which may come in a package named docbook-utils.

Hey, mit docbook-utils ziehe ich mir ja das ganze tex-Zeuch auf die Platte.
Ist das notwendig?
 

lOtz1009

Moderator
Teammitglied
Code:
-       #$(INSTALL) -d $(DESTDIR)$(MYDOCPATH)
+       $(INSTALL) -d -m 0755 $(DESTDIR)$(MYDOCPATH)
Steht im Makefile in Zeile 128
Code:
#$(INSTALL) -d $(DESTDIR)$(MYDOCPATH)
Die soll ja durch den Patch mit
Code:
$(INSTALL) -d -m 0755 $(DESTDIR)$(MYDOCPATH)
ersetz werden.
 
OP
O

oelk

Member
Hm, ich weiss nicht, ob ich Dich jetzt richtig verstanden habe.

I patch-file steht:
Code:
Index: isomaster-1.3.12/Makefile
===================================================================
--- isomaster-1.3.12.orig/Makefile
+++ isomaster-1.3.12/Makefile
@@ -128,7 +128,7 @@ endif
        $(INSTALL) -m 644 isomaster.1 $(DESTDIR)$(MYMANPATH)
        $(INSTALL) -d $(DESTDIR)$(DESKTOPPATH)
        $(INSTALL) -m 644 isomaster.desktop $(DESTDIR)$(DESKTOPPATH)
-       #$(INSTALL) -d $(DESTDIR)$(MYDOCPATH)
+       $(INSTALL) -d -m 0755 $(DESTDIR)$(MYDOCPATH)
        for FILE in bkisofs-manual/manual/*html; do \
             $(INSTALL) -m 644 $$FILE $(DESTDIR)$(MYDOCPATH); \
         done;

Im Makefile in Zeile 128 steht immer noch:
Code:
        $(INSTALL) -m 644 isomaster.1 $(DESTDIR)$(MYMANPATH)

Deine Zeile steht in 131:
Code:
        $(INSTALL) -d $(DESTDIR)$(MYDOCPATH)

MfG
 

lOtz1009

Moderator
Teammitglied
Da dürfte das fehlende # stören. Der Patch bricht ab, weil die zu ersetzende Zeile so nicht im Original steht. Nimm das mal aus dem Patch heraus.
Dass die Änderung in Zeile 131 stattfinden soll ist übrigens richtig...
 

Sauerland

Ultimate Guru
Versuch es einmal ohne die Patches .
Anfang des spec Files:
Code:
Name:           isomaster
Version:        1.3.12
Release:        1.0
License:        GPL-2.0
Summary:        Graphical CD image editor for reading, modifying and writing ISO images
Url:            http://littlesvr.ca/isomaster/
Group:          Productivity/Multimedia/Other
Source:         http://littlesvr.ca/isomaster/releases/%{name}-%{version}.tar.bz2
# PATCH-NEEDS-REBASE isomaster-fix-linker.patch malcolmlewis@opensuse.org -- Revert linking to previous version.
# Patch0:         isomaster-fix-linker.patch
# PATCH-FIX-UPSTREAM isomaster-1.3.11-docpath.patch lazy.kent@opensuse.org -- create MYDOCPATH directory
# Patch1:         isomaster-1.3.11-docpath.patch
BuildRequires:  fdupes
BuildRequires:  pkg-config
BuildRequires:  update-desktop-files
BuildRequires:  zlib-devel
BuildRequires:  pkgconfig(cairo)
BuildRequires:  pkgconfig(gtk+-2.0)
BuildRequires:  pkgconfig(pango)
Recommends:     %{name}-lang
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
ISO Master is a graphical editor for ISO images with support for
ISO9660, RockRidge, and Joliet file names. It is useful for
extracting, deleting, or adding files and directories to or from
an ISO image.

%lang_package
%prep
%setup -q
#%%patch0 -p1
# %patch1 -p1

%build
make %{?_smp_mflags} \
	PREFIX=%{_prefix} \
	DEFAULT_EDITOR=kwrite
 
OP
O

oelk

Member
Hallo Sauerland,

ja, das klappte jetzt. RPM wird gebaut, Installation des RPMs auch ok
ISO Master funktioniert auch.
Jetzt kann ich:
- ein openSUSE-13.1-DVD-x86_64.iso öffnen
- meine autoyast.xml hinzufügen
- unter neuem Namen abspeichern
- eine Installation per autoyast=file:///autoyast.xml durch führen

Die Überprüfung zeigt
Code:
mount -o loop os131.iso /mnt
cd /mnt
sed -n "/HASH SHA256/s/HASH SHA256//p" < content | sha256sum -c | grep FEHLSCHLAG
cd /home/achim/ISOs
umount /mnt
keine Fehler mehr, eine Installation probiere ich jetzt mal.

Danke Euch allen.
 
OP
O

oelk

Member
Yo, DVD erstellt, gebrannt, installiert, ohne das er über hashes meckert.

Danke nochmal.
 
Oben