summaryrefslogtreecommitdiff
path: root/extra/easytag
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-02-22 00:04:20 -0800
committerroot <root@rshg054.dnsready.net>2013-02-22 00:04:20 -0800
commit0ab7960ba6a457b7dd3ed5ede0cdb93e816d29a4 (patch)
treecee051ac15f97c74d7b6562c8627e53ff4a45dbe /extra/easytag
parent111b18e76114f1a46a23a979a7872e7fda412601 (diff)
Fri Feb 22 00:04:20 PST 2013
Diffstat (limited to 'extra/easytag')
-rw-r--r--extra/easytag/PKGBUILD37
-rw-r--r--extra/easytag/easytag-2.1.7-new_libmp4v2.patch535
-rw-r--r--extra/easytag/easytag-2.1.8-fix_mime_directory_association.patch11
-rw-r--r--extra/easytag/easytag-2.1.8-fix_mixed_declarations_and_code.patch43
-rw-r--r--extra/easytag/easytag.install3
5 files changed, 83 insertions, 546 deletions
diff --git a/extra/easytag/PKGBUILD b/extra/easytag/PKGBUILD
index 19be26911..6c0973b0c 100644
--- a/extra/easytag/PKGBUILD
+++ b/extra/easytag/PKGBUILD
@@ -1,29 +1,46 @@
-# $Id: PKGBUILD 171355 2012-11-17 09:20:41Z eric $
-# Maintainer:
+# $Id: PKGBUILD 178421 2013-02-21 20:49:20Z guillaume $
+# Maintainer: Guillaume ALAUX <guillaume@archlinux.org>
# Contributor: Kevin Piche <kevin@archlinux.org>
# Contributor: Aaron Griffin <aaron@archlinux.org>
# Contributor: dorphell <dorphell@archlinux.org>
pkgname=easytag
-pkgver=2.1.7
-pkgrel=3
-pkgdesc="Utility for viewing, editing and writing ID3 tags of your MP3 files"
+pkgver=2.1.8
+pkgrel=2
+pkgdesc='Utility for viewing and editing tags for most audio formats'
arch=('i686' 'x86_64')
license=('GPL')
url='http://easytag.sourceforge.net/'
-depends=('id3lib' 'libid3tag' 'gtk2' 'libvorbis' 'flac' 'speex' 'wavpack' 'libmp4v2' 'desktop-file-utils')
+makedepends=('intltool')
+depends=('id3lib' 'libid3tag' 'gtk2' 'libvorbis' 'flac' 'speex' 'wavpack' 'taglib'
+ 'desktop-file-utils' 'hicolor-icon-theme')
install=${pkgname}.install
-source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2" easytag-2.1.7-new_libmp4v2.patch)
-md5sums=('9df3e800d80e754670642f2ba5e03539'
- '0d01887de463585d944777b638a28c85')
+source=(http://download.gnome.org/sources/${pkgname}/${pkgver:0:3}/${pkgname}-${pkgver}.tar.xz
+ easytag-2.1.8-fix_mixed_declarations_and_code.patch
+ easytag-2.1.8-fix_mime_directory_association.patch)
+sha256sums=('1a2f75c9a70aeb7a404dfaa96e0df0eaaa325df301c58f0f708d0da4c08e65a9'
+ '453d2a102cf482d6d1586b11e531bf267f302aab3ee6b8c43b6bcc61cfa2ede5'
+ '693da67f0c96d51ad363bb9e70a22b402bc7c5058d648981919a115381700cd3')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- patch -p0 -i "${srcdir}/easytag-2.1.7-new_libmp4v2.patch"
+
+ # Already fixed upstream
+ # http://git.gnome.org/browse/easytag/commit/src/wavpack_tag.c?id=17a33964c32035f6b9986e13726ae3582a126244
+ patch -p0 -i ${srcdir}/easytag-2.1.8-fix_mixed_declarations_and_code.patch
+
+ # Bad Easytag! Bad! You don't know your place!
+ patch -p0 -i ${srcdir}/easytag-2.1.8-fix_mime_directory_association.patch
+
./configure --prefix=/usr
make
}
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make -k check
+}
+
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
diff --git a/extra/easytag/easytag-2.1.7-new_libmp4v2.patch b/extra/easytag/easytag-2.1.7-new_libmp4v2.patch
deleted file mode 100644
index 4a6c315c2..000000000
--- a/extra/easytag/easytag-2.1.7-new_libmp4v2.patch
+++ /dev/null
@@ -1,535 +0,0 @@
-Compability with libmp4v2.so.2 (upstream revision r479)
-
-http://bugs.gentoo.org/409281
-
---- src/mp4_header.c
-+++ src/mp4_header.c
-@@ -204,7 +204,7 @@
- /* Get size of file */
- ETFileInfo->size = Get_File_Size(filename);
-
-- if ((file = MP4Read(filename, 0)) == MP4_INVALID_FILE_HANDLE )
-+ if ((file = MP4Read(filename)) == MP4_INVALID_FILE_HANDLE )
- {
- gchar *filename_utf8 = filename_to_display(filename);
- //g_print(_("ERROR while opening file: '%s' (%s)."),filename_utf8,g_strerror(errno));
-@@ -218,7 +218,7 @@
- {
- gchar *filename_utf8 = filename_to_display(filename);
- Log_Print(LOG_ERROR,_("ERROR while opening file: '%s' (%s)."),filename_utf8,("Contains no audio track"));
-- MP4Close(file);
-+ MP4Close(file, 0);
- g_free(filename_utf8);
- return FALSE;
- }
-@@ -243,7 +243,7 @@
- ETFileInfo->mode = MP4GetTrackAudioChannels(file, trackId);
- ETFileInfo->duration = MP4ConvertFromTrackDuration(file, trackId, MP4GetTrackDuration(file, trackId), MP4_SECS_TIME_SCALE);
-
-- MP4Close(file);
-+ MP4Close(file, 0);
- return TRUE;
- }
-
---- src/mp4_tag.c
-+++ src/mp4_tag.c
-@@ -80,15 +80,9 @@
- {
- FILE *file;
- MP4FileHandle mp4file = NULL;
-- uint16_t track, track_total;
-- uint16_t disk, disktotal;
-- u_int8_t *coverArt;
-- u_int32_t coverSize;
- Picture *prev_pic = NULL;
--#ifdef NEWMP4
- gint pic_num;
--#endif
--
-+
- if (!filename || !FileTag)
- return FALSE;
-
-@@ -102,7 +96,7 @@
- fclose(file); // We close it cause mp4 opens/closes file itself
-
- /* Get data from tag */
-- mp4file = MP4Read(filename, 0);
-+ mp4file = MP4Read(filename);
- if (mp4file == MP4_INVALID_FILE_HANDLE)
- {
- gchar *filename_utf8 = filename_to_display(filename);
-@@ -111,109 +105,134 @@
- return FALSE;
- }
-
-+ const MP4Tags* tags = MP4TagsAlloc();
-+ MP4TagsFetch(tags, mp4file);
-+
- /* TODO Add error detection */
-
- /*********
- * Title *
- *********/
-- MP4GetMetadataName(mp4file, &FileTag->title);
-+ if (tags->name)
-+ {
-+ FileTag->title = Try_To_Validate_Utf8_String(tags->name);
-+ }
-
- /**********
- * Artist *
- **********/
-- MP4GetMetadataArtist(mp4file, &FileTag->artist);
-+ if (tags->artist)
-+ {
-+ FileTag->artist = Try_To_Validate_Utf8_String(tags->artist);
-+ }
-+
-+ /****************
-+ * Album Artist *
-+ ****************/
-+ if (tags->albumArtist)
-+ {
-+ FileTag->album_artist = Try_To_Validate_Utf8_String(tags->albumArtist);
-+ }
-
- /*********
- * Album *
- *********/
-- MP4GetMetadataAlbum(mp4file, &FileTag->album);
-+ if (tags->album)
-+ {
-+ FileTag->album = Try_To_Validate_Utf8_String(tags->album);
-+ }
-
- /**********************
- * Disk / Total Disks *
- **********************/
-- if (MP4GetMetadataDisk(mp4file, &disk, &disktotal))
-+ if (tags->disk)
- {
-- if (disk != 0 && disktotal != 0)
-- FileTag->disc_number = g_strdup_printf("%d/%d",(gint)disk,(gint)disktotal);
-- else if (disk != 0)
-- FileTag->disc_number = g_strdup_printf("%d",(gint)disk);
-- else if (disktotal != 0)
-- FileTag->disc_number = g_strdup_printf("/%d",(gint)disktotal);
-- //if (disktotal != 0)
-- // FileTag->disk_number_total = g_strdup_printf("%d",(gint)disktotal);
-+ if (tags->disk->index != 0 && tags->disk->total != 0)
-+ FileTag->disc_number = g_strdup_printf("%d/%d",(gint)tags->disk->index,(gint)tags->disk->total);
-+ else if (tags->disk->index != 0)
-+ FileTag->disc_number = g_strdup_printf("%d",(gint)tags->disk->index);
-+ else if (tags->disk->total != 0)
-+ FileTag->disc_number = g_strdup_printf("/%d",(gint)tags->disk->total);
- }
-
- /********
- * Year *
- ********/
-- MP4GetMetadataYear(mp4file, &FileTag->year);
-+ if (tags->releaseDate)
-+ {
-+ FileTag->year = Try_To_Validate_Utf8_String(tags->releaseDate);
-+ }
-
- /*************************
- * Track and Total Track *
- *************************/
-- if (MP4GetMetadataTrack(mp4file, &track, &track_total))
-+ if (tags->track)
- {
-- if (track != 0)
-- FileTag->track = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)track); // Just to have numbers like this : '01', '05', '12', ...
-- if (track_total != 0)
-- FileTag->track_total = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)track_total); // Just to have numbers like this : '01', '05', '12', ...
-+ if (tags->track->index != 0)
-+ FileTag->track = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)tags->track->index); // Just to have numbers like this : '01', '05', '12', ...
-+ if (tags->track->total != 0)
-+ FileTag->track_total = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)tags->track->total); // Just to have numbers like this : '01', '05', '12', ...
- }
-
- /*********
- * Genre *
- *********/
-- MP4GetMetadataGenre(mp4file, &FileTag->genre);
-+ if (tags->genre)
-+ {
-+ FileTag->genre = Try_To_Validate_Utf8_String(tags->genre);
-+ }
-
- /***********
- * Comment *
- ***********/
-- MP4GetMetadataComment(mp4file, &FileTag->comment);
-+ if (tags->comments)
-+ {
-+ FileTag->comment = Try_To_Validate_Utf8_String(tags->comments);
-+ }
-
- /**********************
- * Composer or Writer *
- **********************/
-- MP4GetMetadataWriter(mp4file, &FileTag->composer);
-+ if (tags->composer)
-+ {
-+ FileTag->composer = Try_To_Validate_Utf8_String(tags->composer);
-+ }
-
- /*****************
- * Encoding Tool *
- *****************/
-- MP4GetMetadataTool(mp4file, &FileTag->encoded_by);
--
-- /* Unimplemented
-- Tempo / BPM
-- MP4GetMetadataTempo(file, &string)
-- */
-+ if (tags->encodedBy)
-+ {
-+ FileTag->encoded_by = Try_To_Validate_Utf8_String(tags->encodedBy);
-+ }
-
- /***********
- * Picture *
- ***********/
--#ifdef NEWMP4
-- // There version can handle multiple pictures!
-- // Version 1.6 of libmp4v2 introduces an index argument for MP4GetMetadataCoverart
-- for (pic_num = 0; (MP4GetMetadataCoverArt( mp4file, &coverArt, &coverSize,pic_num )); pic_num++)
--#else
-- // There version handle only one picture!
-- if ( MP4GetMetadataCoverArt( mp4file, &coverArt, &coverSize ) )
--#endif
-- {
-- Picture *pic;
--
-- pic = Picture_Allocate();
-- if (!prev_pic)
-- FileTag->picture = pic;
-- else
-- prev_pic->next = pic;
-- prev_pic = pic;
--
-- pic->size = coverSize;
-- pic->data = coverArt;
-- pic->type = PICTURE_TYPE_FRONT_COVER;
-- pic->description = NULL;
-+ if (tags->artworkCount) {
-+ const MP4TagArtwork* art = tags->artwork; /* artwork != NULL when artworkCount > 0 */
-+ for (pic_num = 0; pic_num < tags->artworkCount; pic_num++, art++)
-+ {
-+ Picture *pic;
-+
-+ pic = Picture_Allocate();
-+ if (!prev_pic)
-+ FileTag->picture = pic;
-+ else
-+ prev_pic->next = pic;
-+ prev_pic = pic;
-+
-+ pic->size = art->size;
-+ pic->data = g_memdup(art->data, pic->size);
-+ pic->type = PICTURE_TYPE_FRONT_COVER;
-+ pic->description = NULL;
-+ }
- }
-
-
- /* Free allocated data */
-- MP4Close(mp4file);
-+ MP4TagsFree(tags);
-+ MP4Close(mp4file, 0);
-
- return TRUE;
- }
-@@ -235,6 +254,7 @@
- FILE *file;
- MP4FileHandle mp4file = NULL;
- gint error = 0;
-+ gint pic_num;
-
- if (!ETFile || !ETFile->FileTag)
- return FALSE;
-@@ -252,23 +272,25 @@
- fclose(file);
-
- /* Open file for writing */
-- mp4file = MP4Modify(filename,0,0);
-+ mp4file = MP4Modify(filename, 0);
- if (mp4file == MP4_INVALID_FILE_HANDLE)
- {
- Log_Print(LOG_ERROR,_("ERROR while opening file: '%s' (%s)."),filename_utf8,_("MP4 format invalid"));
- return FALSE;
- }
-
-+ const MP4Tags* tags = MP4TagsAlloc();
-+ MP4TagsFetch(tags, mp4file);
-+
- /*********
- * Title *
- *********/
- if (FileTag->title && g_utf8_strlen(FileTag->title, -1) > 0)
- {
-- MP4SetMetadataName(mp4file, FileTag->title);
-+ MP4TagsSetName(tags, FileTag->title);
- }else
- {
-- //MP4DeleteMetadataName(mp4file); // Not available on mpeg4ip-1.2 (only in 1.3)
-- MP4SetMetadataName(mp4file, "");
-+ MP4TagsSetName(tags, "");
- }
-
- /**********
-@@ -276,11 +298,21 @@
- **********/
- if (FileTag->artist && g_utf8_strlen(FileTag->artist, -1) > 0)
- {
-- MP4SetMetadataArtist(mp4file, FileTag->artist);
-+ MP4TagsSetArtist(tags, FileTag->artist);
-+ }else
-+ {
-+ MP4TagsSetArtist(tags, "");
-+ }
-+
-+ /****************
-+ * Album Artist *
-+ ****************/
-+ if (FileTag->artist && g_utf8_strlen(FileTag->artist, -1) > 0)
-+ {
-+ MP4TagsSetAlbumArtist(tags, FileTag->album_artist);
- }else
- {
-- //MP4DeleteMetadataArtist(mp4file);
-- MP4SetMetadataArtist(mp4file, "");
-+ MP4TagsSetAlbumArtist(tags, "");
- }
-
- /*********
-@@ -288,22 +320,19 @@
- *********/
- if (FileTag->album && g_utf8_strlen(FileTag->album, -1) > 0)
- {
-- MP4SetMetadataAlbum(mp4file, FileTag->album);
-+ MP4TagsSetAlbum(tags, FileTag->album);
- }else
- {
-- //MP4DeleteMetadataAlbum(mp4file);
-- MP4SetMetadataAlbum(mp4file, "");
-+ MP4TagsSetAlbum(tags, "");
- }
-
- /**********************
- * Disk / Total Disks *
- **********************/
-+ MP4TagDisk td;
- if (FileTag->disc_number && g_utf8_strlen(FileTag->disc_number, -1) > 0)
- //|| FileTag->disc_number_total && g_utf8_strlen(FileTag->disc_number_total, -1) > 0)
- {
-- uint16_t disk = 0;
-- uint16_t disktotal = 0;
--
- /* At the present time, we manage only disk number like '1' or '1/2', we
- * don't use disk number total... so here we try to decompose */
- if (FileTag->disc_number)
-@@ -314,27 +343,24 @@
- {
- // A disc_number_total was entered
- if ( (tmp+1) && atoi(tmp+1) )
-- disktotal = atoi(tmp+1);
-+ td.total = atoi(tmp+1);
-
- // Fill disc_number
- *tmp = '\0';
-- disk = atoi(dn_tmp);
-+ td.index = atoi(dn_tmp);
- }else
- {
-- disk = atoi(FileTag->disc_number);
-+ td.index = atoi(FileTag->disc_number);
-+ td.total = NULL;
- }
- g_free(dn_tmp);
- }
-- /*if (FileTag->disc_number)
-- disk = atoi(FileTag->disc_number);
-- if (FileTag->disc_number_total)
-- disktotal = atoi(FileTag->disc_number_total);
-- */
-- MP4SetMetadataDisk(mp4file, disk, disktotal);
-+ MP4TagsSetDisk(tags, &td);
- }else
- {
-- //MP4DeleteMetadataDisk(mp4file);
-- MP4SetMetadataDisk(mp4file, 0, 0);
-+ td.index = NULL;
-+ td.total = NULL;
-+ MP4TagsSetDisk(tags, &td);
- }
-
- /********
-@@ -342,30 +368,29 @@
- ********/
- if (FileTag->year && g_utf8_strlen(FileTag->year, -1) > 0)
- {
-- MP4SetMetadataYear(mp4file, FileTag->year);
-+ MP4TagsSetReleaseDate(tags, FileTag->year);
- }else
- {
-- //MP4DeleteMetadataYear(mp4file);
-- MP4SetMetadataYear(mp4file, "");
-+ MP4TagsSetReleaseDate(tags, "");
- }
-
- /*************************
- * Track and Total Track *
- *************************/
-+ MP4TagTrack tt;
- if ( (FileTag->track && g_utf8_strlen(FileTag->track, -1) > 0)
- || (FileTag->track_total && g_utf8_strlen(FileTag->track_total, -1) > 0) )
- {
-- uint16_t track = 0;
-- uint16_t track_total = 0;
- if (FileTag->track)
-- track = atoi(FileTag->track);
-+ tt.index = atoi(FileTag->track);
- if (FileTag->track_total)
-- track_total = atoi(FileTag->track_total);
-- MP4SetMetadataTrack(mp4file, track, track_total);
-+ tt.total = atoi(FileTag->track_total);
-+ MP4TagsSetTrack(tags, &tt);
- }else
- {
-- //MP4DeleteMetadataTrack(mp4file);
-- MP4SetMetadataTrack(mp4file, 0, 0);
-+ tt.index = NULL;
-+ tt.total = NULL;
-+ MP4TagsSetTrack(tags, &tt);
- }
-
- /*********
-@@ -373,11 +398,10 @@
- *********/
- if (FileTag->genre && g_utf8_strlen(FileTag->genre, -1) > 0 )
- {
-- MP4SetMetadataGenre(mp4file, FileTag->genre);
-+ MP4TagsSetGenre(tags, FileTag->genre);
- }else
- {
-- //MP4DeleteMetadataGenre(mp4file);
-- MP4SetMetadataGenre(mp4file, "");
-+ MP4TagsSetGenre(tags, "");
- }
-
- /***********
-@@ -385,11 +409,10 @@
- ***********/
- if (FileTag->comment && g_utf8_strlen(FileTag->comment, -1) > 0)
- {
-- MP4SetMetadataComment(mp4file, FileTag->comment);
-+ MP4TagsSetComments(tags, FileTag->comment);
- }else
- {
-- //MP4DeleteMetadataComment(mp4file);
-- MP4SetMetadataComment(mp4file, "");
-+ MP4TagsSetComments(tags, "");
- }
-
- /**********************
-@@ -397,11 +420,10 @@
- **********************/
- if (FileTag->composer && g_utf8_strlen(FileTag->composer, -1) > 0)
- {
-- MP4SetMetadataWriter(mp4file, FileTag->composer);
-+ MP4TagsSetComposer(tags, FileTag->composer);
- }else
- {
-- //MP4DeleteMetadataWriter(mp4file);
-- MP4SetMetadataWriter(mp4file, "");
-+ MP4TagsSetComposer(tags, "");
- }
-
- /*****************
-@@ -409,33 +431,39 @@
- *****************/
- if (FileTag->encoded_by && g_utf8_strlen(FileTag->encoded_by, -1) > 0)
- {
-- MP4SetMetadataTool(mp4file, FileTag->encoded_by);
-+ MP4TagsSetEncodedBy(tags, FileTag->encoded_by);
- }else
- {
-- //MP4DeleteMetadataTool(mp4file);
-- MP4SetMetadataTool(mp4file, "");
-+ MP4TagsSetEncodedBy(tags, "");
- }
-
- /***********
- * Picture *
- ***********/
-+ Picture *pic = FileTag->picture;
-+ const gint artworkCount = tags->artworkCount;
-+
-+ for (pic_num = 0; pic_num < artworkCount; pic_num++)
- {
-- // Can handle only one picture...
-- Picture *pic;
-+ MP4TagsRemoveArtwork(tags, 0);
-+ }
-
-- //MP4DeleteMetadataCoverArt(mp4file);
-- MP4SetMetadataCoverArt(mp4file, NULL, 0);
-- for( pic = FileTag->picture; pic; pic = pic->next )
-+ while (pic)
-+ {
-+ if (pic->data)
- {
-- if( pic->type == PICTURE_TYPE_FRONT_COVER )
-- {
-- MP4SetMetadataCoverArt(mp4file, pic->data, pic->size);
-- }
-+ MP4TagArtwork art;
-+ art.data = pic->data;
-+ art.size = pic->size;
-+ art.type = MP4_ART_UNDEFINED; // delegate typing to libmp4v2
-+ MP4TagsAddArtwork(tags, &art);
- }
-+ pic = pic->next;
- }
-
--
-- MP4Close(mp4file);
-+ MP4TagsStore(tags, mp4file);
-+ MP4TagsFree(tags);
-+ MP4Close(mp4file, 0);
-
- if (error) return FALSE;
- else return TRUE;
---- src/picture.c
-+++ src/picture.c
-@@ -326,24 +326,7 @@
- else if (MESSAGE_BOX_POSITION_MOUSE)
- gtk_window_set_position(GTK_WINDOW(FileSelectionWindow),GTK_WIN_POS_MOUSE);
-
-- // Behaviour following the tag type...
-- switch (ETCore->ETFileDisplayed->ETFileDescription->TagType)
-- {
-- case MP4_TAG:
-- {
-- // Only one file can be selected
-- gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(FileSelectionWindow), FALSE);
-- break;
-- }
--
-- // Other tag types
-- default:
-- {
-- gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(FileSelectionWindow), TRUE);
-- break;
-- }
-- }
--
-+ gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(FileSelectionWindow), TRUE);
- gtk_dialog_set_default_response(GTK_DIALOG(FileSelectionWindow), GTK_RESPONSE_OK);
-
- // Starting directory (the same of the current file)
diff --git a/extra/easytag/easytag-2.1.8-fix_mime_directory_association.patch b/extra/easytag/easytag-2.1.8-fix_mime_directory_association.patch
new file mode 100644
index 000000000..49bcd72da
--- /dev/null
+++ b/extra/easytag/easytag-2.1.8-fix_mime_directory_association.patch
@@ -0,0 +1,11 @@
+--- easytag.desktop.in.orig 2013-02-21 21:34:14.651046456 +0100
++++ easytag.desktop.in 2013-02-21 21:34:29.327914099 +0100
+@@ -6,7 +6,7 @@
+ Type=Application
+ Icon=easytag
+ Categories=GTK;AudioVideo;AudioVideoEditing;
+-MimeType=x-directory/normal;inode/directory;audio/x-mp3;audio/x-mpeg;audio/mpeg;application/ogg;audio/x-vorbis+ogg;audio/x-flac;audio/x-musepack;audio/x-ape;
++MimeType=audio/x-mp3;audio/x-mpeg;audio/mpeg;application/ogg;audio/x-vorbis+ogg;audio/x-flac;audio/x-musepack;audio/x-ape;
+ Exec=easytag %F
+ Terminal=false
+ StartupNotify=true
diff --git a/extra/easytag/easytag-2.1.8-fix_mixed_declarations_and_code.patch b/extra/easytag/easytag-2.1.8-fix_mixed_declarations_and_code.patch
new file mode 100644
index 000000000..ff7a52a94
--- /dev/null
+++ b/extra/easytag/easytag-2.1.8-fix_mixed_declarations_and_code.patch
@@ -0,0 +1,43 @@
+--- src/wavpack_tag.c
++++ src/wavpack_tag.c
+@@ -82,15 +82,15 @@ gboolean Wavpack_Tag_Write_File (FILE *file_in, gchar *filename_in, vcedit_state
+ */
+ gboolean Wavpack_Tag_Read_File_Tag (gchar *filename, File_Tag *FileTag)
+ {
+- if (!filename || !FileTag)
+- return FALSE;
+-
+ WavpackContext *wpc;
+ gchar *field, *field2;
+ guint length;
+
+ int open_flags = OPEN_TAGS;
+
++ if (!filename || !FileTag)
++ return FALSE;
++
+ wpc = WavpackOpenFileInput(filename, NULL, open_flags, 0);
+
+ if ( wpc == NULL ) {
+@@ -271,9 +271,6 @@ gboolean Wavpack_Tag_Read_File_Tag (gchar *filename, File_Tag *FileTag)
+
+ gboolean Wavpack_Tag_Write_File_Tag (ET_File *ETFile)
+ {
+- if (!ETFile || !ETFile->FileTag)
+- return FALSE;
+-
+ WavpackContext *wpc;
+
+ gchar *filename = ((File_Name *)((GList *)ETFile->FileNameCur)->data)->value;
+@@ -282,6 +279,9 @@ gboolean Wavpack_Tag_Write_File_Tag (ET_File *ETFile)
+
+ int open_flags = OPEN_EDIT_TAGS;
+
++ if (!ETFile || !ETFile->FileTag)
++ return FALSE;
++
+ wpc = WavpackOpenFileInput(filename, NULL, open_flags, 0);
+
+ if ( wpc == NULL ) {
+--
+cgit v0.9.1
diff --git a/extra/easytag/easytag.install b/extra/easytag/easytag.install
index 660593cf5..18405f04c 100644
--- a/extra/easytag/easytag.install
+++ b/extra/easytag/easytag.install
@@ -1,5 +1,6 @@
post_install() {
- update-desktop-database -q
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ update-desktop-database -q
}
post_upgrade() {