guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add MilkyTracker to Guix


From: Kei Yamashita
Subject: Re: [PATCH] Add MilkyTracker to Guix
Date: Tue, 29 Mar 2016 22:24:41 -0400

On Tue, 29 Mar 2016 12:52:49 +0300
Alex Kost <address@hidden> wrote:

> Kei Yamashita (2016-03-28 22:31 +0300) wrote:
> [...]
> >> Oh geez, that one doesn't build. Please use this patch instead.  
> >
> > Oh, the embarassment. I promise that this one builds.  
> 
> Thanks, but I don't see any difference between 3 patches you sent.
> Did you attach the right patch?
> 
> > From 46b97b409000b6caa27f3ad27df7a44ca9e9510c Mon Sep 17 00:00:00
> > 2001 From: Kei Yamashita <address@hidden>
> > Date: Mon, 28 Mar 2016 13:36:26 -0400
> > Subject: [PATCH] Define MilkyTracker in music.scm  
> 
> The commit message should be:
> 
> gnu: Add MilkyTracker.
> 
> * gnu/packages/music.scm (milkytracker): New variable.
> 
> > ---
> >  gnu/packages/music.scm | 42
> > ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34
> > insertions(+), 8 deletions(-)
> >
> > diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
> > index adda16a..23964d5 100644
> > --- a/gnu/packages/music.scm
> > +++ b/gnu/packages/music.scm
> > @@ -78,6 +78,7 @@
> >    #:use-module (gnu packages rdf)
> >    #:use-module (gnu packages readline)
> >    #:use-module (gnu packages rsync)
> > +  #:use-module (gnu packages sdl)
> >    #:use-module (gnu packages tcl)
> >    #:use-module (gnu packages texinfo)
> >    #:use-module (gnu packages texlive)
> > @@ -1071,14 +1072,14 @@ computer's keyboard.")
> >  (define-public qtractor
> >    (package
> >      (name "qtractor")
> > -    (version "0.7.5")
> > +    (version "0.7.3")
> >      (source (origin
> >                (method url-fetch)
> >                (uri (string-append
> > "http://downloads.sourceforge.net/qtractor/"; "qtractor-" version
> > ".tar.gz")) (sha256
> >                 (base32
> > -
> > "0drqzp1rbqmqiwdzc9n3307y8rm882fha3awy5qlvir5ma2mwl80"))))
> > +
> > "1vy4297myyqk0k58nzybgvgklckhngpdcnmp98k0rq98dirclbl7"))))
> > (build-system gnu-build-system) (arguments `(#:tests? #f)) ; no
> > "check" target (inputs
> > @@ -1201,8 +1202,9 @@ MusicBrainz database.")
> >      (build-system python-build-system)
> >      (home-page "https://github.com/echonest/pyechonest";)
> >      (synopsis "Python interface to The Echo Nest APIs")
> > -    (description "Pyechonest is a Python library for the Echo Nest
> > API.  With -Pyechonest you have Python access to the entire set of
> > API methods including:
> > +    (description "Pyechonest is an open source Python library for
> > the Echo Nest +API.  With Pyechonest you have Python access to the
> > entire set of API methods +including:
> >  
> >  @enumerate
> >  @item artist - search for artists by name, description, or
> > attribute, and get @@ -1274,16 +1276,13 @@ websites such as
> > Libre.fm.") #:phases
> >         (modify-phases %standard-phases
> >           (add-after 'unpack 'set-HOME
> > -           (lambda _ (setenv "HOME" (string-append (getcwd)
> > "/tmp"))))
> > -         (replace 'check
> > -           (lambda _ (zero? (system* "nosetests" "-v")))))))
> > +           (lambda _ (setenv "HOME" (string-append (getcwd)
> > "/tmp"))))))) (native-inputs
> >       `(("python2-beautifulsoup4" ,python2-beautifulsoup4)
> >         ("python2-flask" ,python2-flask)
> >         ("python2-setuptools" ,python2-setuptools)
> >         ("python2-mock" ,python2-mock)
> >         ("python2-mpd2" ,python2-mpd2)
> > -       ("python2-nose" ,python2-nose)
> >         ("python2-pathlib" ,python2-pathlib)
> >         ("python2-pyxdg" ,python2-pyxdg)
> >         ("python2-pyechonest" ,python2-pyechonest)  
> 
> The above 3 hunks should not be a part of this patch.  Somehow you
> gathered the changes from commits e0b90db, d3e3468 and 36c2c8c in this
> patch.  Could you remove them?
> 
> > @@ -1306,3 +1305,30 @@ once and for all.  It catalogs your
> > collection, automatically improving its metadata as it goes using
> > the MusicBrainz database.  Then it provides a variety of tools for
> > manipulating and accessing your music.") (license license:expat)))
> > +
> > +(define-public milkytracker
> > +  (package
> > +    (name "milkytracker")
> > +    (version "0.90.86")
> > +    (source (origin
> > +         (method url-fetch)
> > +         (uri
> > +          (string-append
> > "http://milkytracker.org/files/milkytracker-";
> > +                             name "-" version ".tar.gz"))  
>                               ^^^^
> 'name' should be aligned at " in the previous line.  But actually
> there either shouldn't be 'name' there or ".../milkytracker-" in the
> previous line.  Also (I think) we prefer bz2 over gz if it is
> available.
> 
> Please use spaces instead of tabulations in the above lines.  This is
> reported by "guix lint milkytracker".
> 
> Overall the 'source' field should look like this:
> 
>     (source (origin
>               (method url-fetch)
>               (uri (string-append "http://milkytracker.org/files/";
>                                   name "-" version ".tar.bz2"))
>               (sha256
>                (base32
>                 "1v9vp8vi24lkagfpr92c128whvakwgrm9pq2zf6ijpl5sh7014zb"))))
> 
> > +              (sha256
> > +               (base32
> > +
> > "0mqjkhvjyp5hnzm1ln3b2qjclviayxylcyml96pjdxgbaqcqa2zz"))))
> > +    (build-system gnu-build-system)
> > +    (inputs
> > +     `(("alsa-lib", alsa-lib)  
>                      ^^
> Unquoting character (",") should be placed before a symbol without
> spaces: ",alsa-lib".
> 
> > +       ("jack", jack-1)  
> and here         ^^
> 
> > +       ("sdl" ,sdl)
> > +       ("zlib" ,zlib)))
> > +    (synopsis "Multi-platform, second generation music tracker")  
> 
> What does "second generation" mean?  "Multi-platform" probably also
> doesn't matter here.  What about:
> 
>   "Music tracker for creating module files"
> 
> Note: I'm not good at synopsis/description writing, so I hope someone
> else look at it as well :-)
> 
> > +    (description "MilkyTracker is a free software, multi-platform
> > music  
> 
> I think there is no need in "free software" here as all software in
> Guix is free.
> 
> > +application for creating .MOD and .XM module files. It attempts to
> > recreate  
>                                                       ^^
> We use double spaces between sentences.  This is also reported by
> "guix lint milkytracker".
> 
> > +the module replay and user experience of the popular DOS program
> > Fasttracker +II, with special playback modes available for improved
> > Amiga ProTracker 2/3 +compatibility.")
> > +    (home-page "http://milkytracker.org/";)
> > +    (license license:gpl3)))  
> 
> 
> After all, the build failed for me:
> 
> ...
> g++  -g -O2   -o milkytracker AnimatedFXControl.o ColorExportImport.o
> ColorPaletteContainer.o DialogChannelSelector.o DialogEQ.o
> DialogGroupSelection.o DialogHandlers.o DialogListBox.o
> DialogPanning.o DialogQuickChooseInstrument.o DialogResample.o
> DialogWithValues.o DialogZap.o EQConstants.o EditorBase.o
> EnvelopeContainer.o EnvelopeEditor.o EnvelopeEditorControl.o
> Equalizer.o FileExtProvider.o FileIdentificator.o GlobalColorConfig.o
> InputControlListener.o LogoBig.o LogoSmall.o ModuleEditor.o
> ModuleServices.o PatternEditor.o PatternEditorClipBoard.o
> PatternEditorControl.o PatternEditorControlEventListener.o
> PatternEditorControlKeyboard.o PatternEditorControlTransposeHandler.o
> PatternEditorTools.o PatternTools.o PeakLevelControl.o Piano.o
> PianoControl.o PlayerController.o PlayerLogic.o PlayerMaster.o
> RecPosProvider.o RecorderLogic.o ResamplerHelper.o SampleEditor.o
> SampleEditorControl.o SampleEditorControlToolHandler.o
> SampleEditorResampler.o SamplePlayer.o ScopesControl.o SectionAbout.o
> SectionAbstract.o SectionAdvancedEdit.o SectionDiskMenu.o
> SectionHDRecorder.o SectionInstruments.o SectionOptimize.o
> SectionQuickOptions.o SectionSamples.o SectionSettings.o
> SectionSwitcher.o SectionTranspose.o SectionUpperLeft.o
> SongLengthEstimator.o SystemMessage.o TabHeaderControl.o TabManager.o
> TabTitleProvider.o TitlePageManager.o ToolInvokeHelper.o Tracker.o
> TrackerConfig.o TrackerInit.o TrackerKeyboard.o TrackerSettings.o
> TrackerSettingsDatabase.o TrackerShortCuts.o TrackerShutDown.o
> TrackerStartUp.o TrackerUpdate.o Undo.o VRand.o Zapper.o
> sdl/SDL_KeyTranslation.o
> sdl/SDL_Main.o ../../src/milkyplay/libmilkyplay.a 
> ../../src/ppui/osinterface/libosinterface.a ../../src/ppui/libppui.a 
> ../../src/ppui/osinterface/libosinterface.a ../../src/fx/libfx.a 
> ../../src/compression/Decompressor.o ../../src/compression/DecompressorGZIP.o 
> ../../src/compression/DecompressorLHA.o 
> ../../src/compression/DecompressorPP20.o 
> ../../src/compression/DecompressorUMX.o 
> ../../src/compression/DecompressorZIP.o ../../src/compression/zziplib/MyIO.o 
> ../../src/compression/PP20.o ../../src/compression/ZipExtractor.o 
> ../../src/compression/lha/unlha.o ../midi/libmidi.a
> -L/gnu/store/2x7wd0lz3pqa0wm17y1byvxl47r82pfi-sdl-1.2.15/lib
> -Wl,-rpath,/gnu/store/2x7wd0lz3pqa0wm17y1byvxl47r82pfi-sdl-1.2.15/lib
> -lSDL -lpthread ../../src/compression/zziplib/generic/libzzip.a  -ldl
> -lz ../../src/ppui/osinterface/libosinterface.a(PPSystem_POSIX.o): In
> function
> `System::getTempFileName()': 
> /tmp/guix-build-milkytracker-0.90.86.drv-0/milkytracker-0.90.86/src/ppui/osinterface/posix/PPSystem_POSIX.cpp:64:
> warning: the use of `tmpnam' is dangerous, better use `mkstemp'
> ld: ../midi/libmidi.a(RtMidi.o): undefined reference to symbol
> 'snd_seq_event_input_pending@@ALSA_0.9' 
> /gnu/store/pv2xg14lgghxfpl7jhirc7dp0m3172js-alsa-lib-1.0.27.1/lib/libasound.so.2:
> error adding symbols: DSO missing from command line collect2: error:
> ld returned 1 exit status Makefile:400: recipe for target
> 'milkytracker' failed make[3]: *** [milkytracker] Error 1 make[3]:
> Leaving directory
> '/tmp/guix-build-milkytracker-0.90.86.drv-0/milkytracker-0.90.86/src/tracker'
> Makefile:194: recipe for target 'all-recursive' failed make[2]: ***
> [all-recursive] Error 1 make[2]: Leaving directory
> '/tmp/guix-build-milkytracker-0.90.86.drv-0/milkytracker-0.90.86/src'
> Makefile:364: recipe for target 'all-recursive' failed make[1]: ***
> [all-recursive] Error 1 make[1]: Leaving directory
> '/tmp/guix-build-milkytracker-0.90.86.drv-0/milkytracker-0.90.86'
> Makefile:303: recipe for target 'all' failed
> 
> I don't know what to do with this :-(
> 

Alright! This patch adds MilkyTracker successfully. It builds with
both ALSA and JACK support. I took a look at the PKGBUILD from Arch
Linux and the port dependencies from FreeBSD to make sure I had
everything in order. Hopefully it is clean as far as syntax and guix
standards go. If you could show me how you managed to get guix lint to
run on this file, that would be great.

Attachment: 0001-gnu-Add-MilkyTracker.patch
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]