というわけで spec を書いてテスト目的でいれてみた。
[lugia@lugia-castle ~]$ rpm -qa | grep -P "ladspa-.*-plugins" ladspa-cmt-plugins-1.16-1m.mo6.i686 ladspa-mcp-plugins-0.4.0-1m.mo6.i686 ladspa-blop-plugins-0.2.8-1m.mo6.i686 ladspa-swh-plugins-0.4.15-1m.mo6.i686 ladspa-amb-plugins-0.4.0-1m.mo6.i686 ladspa-rev-plugins-0.3.1-1m.mo6.i686 ladspa-fil-plugins-0.4.0-1m.mo6.i686 ladspa-tap-plugins-0.7.0-1m.mo6.i686 ladspa-vco-plugins-0.3.0-1m.mo6.i686
Fedora にあるらしかったんだが、SRPM とってきて cpio でどうたらこうたらするのは面倒だったので、spec 書きの練習がてら(?)自分で書いた(ぁ
%global momorel 1 %global swhrel %(expr %{momorel} + 0) %global cmtrel %(expr %{momorel} + 0) %global mcprel %(expr %{momorel} + 0) %global revrel %(expr %{momorel} + 0) %global vcorel %(expr %{momorel} + 0) %global ambrel %(expr %{momorel} + 0) %global filrel %(expr %{momorel} + 0) %global bloprel %(expr %{momorel} + 0) %global taprel %(expr %{momorel} + 0) %global swhver 0.4.15 %global cmtver 1.16 %global mcpver 0.4.0 %global revver 0.3.1 %global vcover 0.3.0 %global ambver 0.4.0 %global filver 0.1.0 %global blopver 0.2.8 %global tapver 0.7.0 %global tdocver 20040817 %global tedver r0 Summary: Plugins for LADSPA Name: ladspa-plugins Version: 0.0.1 Release: %{momorel}m%{?dist} License: GPL URL: http://ccrma.stanford.edu/planetccrma/software/ladspaworld.html Group: Development/Libraries # SWH Source0: http://plugin.org.uk/releases/%{swhver}/swh-plugins-%{swhver}.tar.gz NoSource: 0 # CMT Source1: http://www.ladspa.org/download/cmt_src_%{cmtver}.tgz NoSource: 1 # MCP Source2: http://www.kokkinizita.net/linuxaudio/downloads/MCP-plugins-%{mcpver}.tar.bz2 NoSource: 2 # REV Source3: http://www.kokkinizita.net/linuxaudio/downloads/REV-plugins-%{revver}.tar.bz2 NoSource: 3 # VCO Source4: http://www.kokkinizita.net/linuxaudio/downloads/VCO-plugins-%{vcover}.tar.bz2 NoSource: 4 # AMB Source5: http://www.kokkinizita.net/linuxaudio/downloads/AMB-plugins-%{ambver}.tar.bz2 NoSource: 5 # FIL Source6: http://www.kokkinizita.net/linuxaudio/downloads/FIL-plugins-%{filver}.tar.bz2 NoSource: 6 # blop Source7: http://dl.sourceforge.net/sourceforge/blop/blop-%{blopver}.tar.gz NoSource: 7 # tap Source8: http://dl.sourceforge.net/sourceforge/tap-plugins/tap-plugins-%{tapver}.tar.gz NoSource: 8 Source9: http://dl.sourceforge.net/sourceforge/tap-plugins/tap-plugins-doc-%{tdocver}.tar.gz NoSource: 9 Source10: http://dl.sourceforge.net/sourceforge/tap-plugins/tap-reverbed-%{tedver}.tar.gz NoSource: 10 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: ladspa BuildPreReq: ladspa-devel BuildPreReq: gettext BuildPreReq: fftw-devel BuildPreReq: jack-devel BuildPreReq: libpng-devel %description ladspa-plugins is libraries set for LADSPA. %package -n ladspa-swh-plugins Summary: A collection of LADSPA plugins written by Steve Harris. Version: %{swhver} Release: %{swhrel}m%{?dist} License: GPL URL: http://plugin.org.uk/ Requires: fftw ladspa %description -n ladspa-swh-plugins A collection of LADSPA plugins written by Steve Harris. %package -n ladspa-cmt-plugins Summary: Computer Music Toolkit plugins for LADSPA. Version: %{cmtver} Release: %{cmtrel}m%{?dist} License: LGPL URL: http://www.ladspa.org/cmt/ Requires: ladspa %description -n ladspa-cmt-plugins The Computer Music Toolkit (CMT) is a collection of LADSPA plugins for use with software synthesis and recording packages on Linux. See the license before use. The CMT is developed primarily by Richard W.E. Furse the principle designer of the LADSPA standard, with additional plugins by Jezar and David Bartold. %package -n ladspa-mcp-plugins Summary: A set of audio plugins for LADSPA by Fons Adriaensen. Version: %{mcpver} Release: %{mcprel}m%{?dist} License: GPL URL: http://www.kokkinizita.net/linuxaudio/ Requires: ladspa %description -n ladspa-mcp-plugins A set of audio plugins for LADSPA by Fons Adriaensen. Currently contains a phaser, a chorus and a moog vcf. %package -n ladspa-rev-plugins Summary: A set of audio plugins for LADSPA by Fons Adriaensen. Version: %{revver} Release: %{revrel}m%{?dist} License: GPL URL: http://www.kokkinizita.net/linuxaudio/ Requires: ladspa %description -n ladspa-rev-plugins This reverb is based on gverb by Juhana Sadeharju, but the code (now C++) is entirely original. I added a second input for stereo operation, and some code to prevent FP denormalisation. This is a preliminary release, and this plugin will probably change a lot in future versions. %package -n ladspa-vco-plugins Summary: A set of audio plugins for LADSPA by Fons Adriaensen. Version: %{vcover} Release: %{vcorel}m%{?dist} License: GPL URL: http://www.kokkinizita.net/linuxaudio/ Requires: ladspa %description -n ladspa-vco-plugins Pulse-VCO: Anti-aliased dirac pulse oscillator (flat amplitude spectrum) Saw-VCO : Anti-aliased sawtooth oscillator (1/F amplitude spectrum) Both oscillators are based on the same principle of using a precomputed interpolated dirac pulse. For the sawtooth version, the 'edge' is made by integrating the anti-aliased pulse. Aliases should be below -80dB for fundamental frequencies below Fsamp / 6 (i.e. up to 8 kHz at Fsamp = 48 kHz). This frequency range includes the fundamental frequencies all known musical instruments. %package -n ladspa-amb-plugins Summary: A set of audio plugins for LADSPA by Fons Adriaensen. Version: %{ambver} License: GPL URL: http://www.kokkinizita.net/linuxaudio/ Requires: ladspa %description -n ladspa-amb-plugins A set of first order Ambisonics plugins I use with Ardour. Included are: mono and stereo input panner, horizontal rotation, and square and hexagon horizontal decoders. See the README for more. %package -n ladspa-fil-plugins Summary: A set of audio plugins for LADSPA by Fons Adriaensen. Version: %{ambver} Release: %{ambrel}m%{?dist} License: GPL URL: http://www.kokkinizita.net/linuxaudio/ Requires: ladspa %description -n ladspa-fil-plugins There's one plugin in this first release, a four-band parametric equaliser. Each section has an active/bypass switch, frequency, bandwidth and gain controls. There is also a global bypass switch and gain control. %package -n ladspa-blop-plugins Summary: BLOP comprises a set of LADSPA plugins Version: %{blopver} Release: %{bloprel}m%{?dist} License: GPL URL: http://blop.sourceforge.net/ Requires: ladspa %description -n ladspa-blop-plugins BLOP comprises a set of LADSPA plugins that generate bandlimited sawtooth, square, variable pulse and slope-variable triangle waves, for use in LADSPA hosts, principally for use with one of the many modular software synthesisers available. They are wavetable based, and are designed to produce output with harmonic content as high as possible over a wide pitch range. %package -n ladspa-tap-plugins Summary: TAP-plugins is short for Tom's Audio Processing plugins. Version: %{tapver} Release: %{taprel}m%{?dist} License: GPL URL: http://tap-plugins.sourceforge.net/ Requires: ladspa Requires: jack Requires: libpng %description -n ladspa-tap-plugins TAP-plugins is short for Tom's Audio Processing plugins. It is a bunch of LADSPA plugins for digital audio processing, intended for use in a professional DAW environment such as Ardour. %prep %setup -q -a 0 -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -a 7 -a 8 -a 9 -a 10 -c %{name}-%{version} %build cd swh-plugins-%{swhver} %configure %make cd .. cd cmt/src %make cd ../../ cd MCP-plugins-%{mcpver} %make cd ../ cd REV-plugins-%{revver} %make cd ../ cd VCO-plugins-%{vcover} %make cd ../ cd AMB-plugins-%{ambver} %make cd ../ cd FIL-plugins-%{filver} %make cd ../ cd blop-%{blopver} %configure --with-ladspa-prefix=%{_prefix} \ --with-ladspa-plugin-dir=%{_libdir}/ladspa %make cd ../ cd tap-plugins-%{tapver} %make cd ../ cd tap-reverbed-%{tedver} %configure %make cd ../ %install mkdir -p %{buildroot} cd swh-plugins-%{swhver} make DESTDIR=%{buildroot} install cd .. cd cmt/plugins install -m 755 cmt.so %{buildroot}%{_libdir}/ladspa cd ../../ cd MCP-plugins-%{mcpver} install -m 755 *.so %{buildroot}%{_libdir}/ladspa cd .. cd REV-plugins-%{revver} install -m 755 *.so %{buildroot}%{_libdir}/ladspa cd .. cd VCO-plugins-%{vcover} install -m 755 *.so %{buildroot}%{_libdir}/ladspa cd .. cd AMB-plugins-%{ambver} install -m 755 *.so %{buildroot}%{_libdir}/ladspa cd .. cd FIL-plugins-%{filver} install -m 755 *.so %{buildroot}%{_libdir}/ladspa cd .. cd blop-%{blopver} make DESTDIR=%{buildroot} install cd .. cd tap-plugins-%{tapver} install -m 755 *.so %{buildroot}%{_libdir}/ladspa cd .. cd tap-reverbed-%{tedver} %makeinstall cd .. %files -n ladspa-swh-plugins %{_libdir}/ladspa/alias_1407.so %{_libdir}/ladspa/allpass_1895.so %{_libdir}/ladspa/am_pitchshift_1433.so %{_libdir}/ladspa/amp_1181.so %{_libdir}/ladspa/analogue_osc_1416.so %{_libdir}/ladspa/bandpass_a_iir_1893.so %{_libdir}/ladspa/bandpass_iir_1892.so %{_libdir}/ladspa/bode_shifter_1431.so %{_libdir}/ladspa/bode_shifter_cv_1432.so %{_libdir}/ladspa/butterworth_1902.so %{_libdir}/ladspa/chebstortion_1430.so %{_libdir}/ladspa/comb_1190.so %{_libdir}/ladspa/comb_1887.so %{_libdir}/ladspa/comb_splitter_1411.so %{_libdir}/ladspa/const_1909.so %{_libdir}/ladspa/crossover_dist_1404.so %{_libdir}/ladspa/dc_remove_1207.so %{_libdir}/ladspa/decay_1886.so %{_libdir}/ladspa/decimator_1202.so %{_libdir}/ladspa/declip_1195.so %{_libdir}/ladspa/delay_1898.so %{_libdir}/ladspa/delayorama_1402.so %{_libdir}/ladspa/diode_1185.so %{_libdir}/ladspa/divider_1186.so %{_libdir}/ladspa/dj_eq_1901.so %{_libdir}/ladspa/dj_flanger_1438.so %{_libdir}/ladspa/dyson_compress_1403.so %{_libdir}/ladspa/fad_delay_1192.so %{_libdir}/ladspa/fast_lookahead_limiter_1913.so %{_libdir}/ladspa/flanger_1191.so %{_libdir}/ladspa/fm_osc_1415.so %{_libdir}/ladspa/foldover_1213.so %{_libdir}/ladspa/foverdrive_1196.so %{_libdir}/ladspa/freq_tracker_1418.so %{_libdir}/ladspa/gate_1410.so %{_libdir}/ladspa/giant_flange_1437.so %{_libdir}/ladspa/gong_1424.so %{_libdir}/ladspa/gong_beater_1439.so %{_libdir}/ladspa/gsm_1215.so %{_libdir}/ladspa/gverb_1216.so %{_libdir}/ladspa/hard_limiter_1413.so %{_libdir}/ladspa/harmonic_gen_1220.so %{_libdir}/ladspa/hermes_filter_1200.so %{_libdir}/ladspa/highpass_iir_1890.so %{_libdir}/ladspa/hilbert_1440.so %{_libdir}/ladspa/imp_1199.so %{_libdir}/ladspa/impulse_1885.so %{_libdir}/ladspa/inv_1429.so %{_libdir}/ladspa/karaoke_1409.so %{_libdir}/ladspa/latency_1914.so %{_libdir}/ladspa/lcr_delay_1436.so %{_libdir}/ladspa/lowpass_iir_1891.so %{_libdir}/ladspa/ls_filter_1908.so %{_libdir}/ladspa/matrix_ms_st_1421.so %{_libdir}/ladspa/matrix_spatialiser_1422.so %{_libdir}/ladspa/matrix_st_ms_1420.so %{_libdir}/ladspa/mbeq_1197.so %{_libdir}/ladspa/mod_delay_1419.so %{_libdir}/ladspa/multivoice_chorus_1201.so %{_libdir}/ladspa/notch_iir_1894.so %{_libdir}/ladspa/phasers_1217.so %{_libdir}/ladspa/pitch_scale_1193.so %{_libdir}/ladspa/pitch_scale_1194.so %{_libdir}/ladspa/plate_1423.so %{_libdir}/ladspa/pointer_cast_1910.so %{_libdir}/ladspa/rate_shifter_1417.so %{_libdir}/ladspa/retro_flange_1208.so %{_libdir}/ladspa/revdelay_1605.so %{_libdir}/ladspa/ringmod_1188.so %{_libdir}/ladspa/satan_maximiser_1408.so %{_libdir}/ladspa/sc1_1425.so %{_libdir}/ladspa/sc2_1426.so %{_libdir}/ladspa/sc3_1427.so %{_libdir}/ladspa/sc4_1882.so %{_libdir}/ladspa/sc4m_1916.so %{_libdir}/ladspa/se4_1883.so %{_libdir}/ladspa/shaper_1187.so %{_libdir}/ladspa/sifter_1210.so %{_libdir}/ladspa/sin_cos_1881.so %{_libdir}/ladspa/single_para_1203.so %{_libdir}/ladspa/sinus_wavewrapper_1198.so %{_libdir}/ladspa/smooth_decimate_1414.so %{_libdir}/ladspa/split_1406.so %{_libdir}/ladspa/step_muxer_1212.so %{_libdir}/ladspa/surround_encoder_1401.so %{_libdir}/ladspa/svf_1214.so %{_libdir}/ladspa/tape_delay_1211.so %{_libdir}/ladspa/transient_1206.so %{_libdir}/ladspa/triple_para_1204.so %{_libdir}/ladspa/valve_1209.so %{_libdir}/ladspa/valve_rect_1405.so %{_libdir}/ladspa/vynil_1905.so %{_libdir}/ladspa/wave_terrain_1412.so %{_libdir}/ladspa/xfade_1915.so %{_libdir}/ladspa/zm1_1428.so %{_datadir}/ladspa/rdf/swh-aux.rdf %{_datadir}/ladspa/rdf/swh-plugins.rdf %{_datadir}/ladspa/rdf/swh-scales.rdf %{_datadir}/locale/*/LC_MESSAGES/swh-plugins.mo %files -n ladspa-cmt-plugins %{_libdir}/ladspa/cmt.so %files -n ladspa-mcp-plugins %{_libdir}/ladspa/cs_chorus.so %{_libdir}/ladspa/cs_phaser.so %{_libdir}/ladspa/mvchpf24.so %{_libdir}/ladspa/mvclpf24.so %files -n ladspa-rev-plugins %{_libdir}/ladspa/g2reverb.so %files -n ladspa-vco-plugins %{_libdir}/ladspa/blvco.so %files -n ladspa-amb-plugins %{_libdir}/ladspa/ambisonic1.so %{_libdir}/ladspa/ambisonic2.so %files -n ladspa-fil-plugins %{_libdir}/ladspa/filters.so %files -n ladspa-blop-plugins %{_libdir}/ladspa/adsr_1653.so %{_libdir}/ladspa/adsr_1680.so %{_libdir}/ladspa/amp_1654.so %{_libdir}/ladspa/blop_files/parabola_1649_data.so %{_libdir}/ladspa/blop_files/sawtooth_1641_data.so %{_libdir}/ladspa/blop_files/square_1643_data.so %{_libdir}/ladspa/branch_1673.so %{_libdir}/ladspa/dahdsr_2021.so %{_libdir}/ladspa/difference_2030.so %{_libdir}/ladspa/fmod_1656.so %{_libdir}/ladspa/interpolator_1660.so %{_libdir}/ladspa/lp4pole_1671.so %{_libdir}/ladspa/product_1668.so %{_libdir}/ladspa/pulse_1645.so %{_libdir}/ladspa/quantiser100_2029.so %{_libdir}/ladspa/quantiser20_2027.so %{_libdir}/ladspa/quantiser50_2028.so %{_libdir}/ladspa/random_1661.so %{_libdir}/ladspa/ratio_2034.so %{_libdir}/ladspa/sawtooth_1641.so %{_libdir}/ladspa/sequencer16_1677.so %{_libdir}/ladspa/sequencer32_1676.so %{_libdir}/ladspa/sequencer64_1675.so %{_libdir}/ladspa/square_1643.so %{_libdir}/ladspa/sum_1665.so %{_libdir}/ladspa/sync_pulse_2023.so %{_libdir}/ladspa/sync_square_1678.so %{_libdir}/ladspa/tracker_2025.so %{_libdir}/ladspa/triangle_1649.so %{_datadir}/locale/*/LC_MESSAGES/blop.mo %files -n ladspa-tap-plugins %{_bindir}/reverbed %{_libdir}/ladspa/tap_autopan.so %{_libdir}/ladspa/tap_chorusflanger.so %{_libdir}/ladspa/tap_deesser.so %{_libdir}/ladspa/tap_doubler.so %{_libdir}/ladspa/tap_dynamics_m.so %{_libdir}/ladspa/tap_dynamics_st.so %{_libdir}/ladspa/tap_echo.so %{_libdir}/ladspa/tap_eq.so %{_libdir}/ladspa/tap_eqbw.so %{_libdir}/ladspa/tap_limiter.so %{_libdir}/ladspa/tap_pinknoise.so %{_libdir}/ladspa/tap_pitch.so %{_libdir}/ladspa/tap_reflector.so %{_libdir}/ladspa/tap_reverb.so %{_libdir}/ladspa/tap_rotspeak.so %{_libdir}/ladspa/tap_sigmoid.so %{_libdir}/ladspa/tap_tremolo.so %{_libdir}/ladspa/tap_tubewarmth.so %{_libdir}/ladspa/tap_vibrato.so %clean rm -rf --preserve-root %{buildroot} %changelog
%defattr と %doc が無いのは仕様です(ぉぃ
っていうか書くのが面倒(ぉぃ
OmoiKondara でちゃんとビルドできますし、Momonga 謹製の(?) speclint も通りますが、ギモンなのは、1つの spec 上で
- 「1つのソースから複数のパッケージを作る」は○ (本体と devel パッケージ)
- 「複数のソースから1つのパッケージを作る」も○ (qtbsch3v など)
- 「複数のソースをとってきてそれぞれ別にパッケージを作る」の場合は spec を分けるべきなのか?
- 1つにする利点
- 1つ momorel をあげれば全部の Release が 1 増える
- 1つのファイルしか含まない (%doc を除いて) RPM を作成するのに spec 1つ割くのはなんか妙
- 一度にビルドできる
- 1つにする欠点
- 全てのソースが get できなければビルドできない
- ビルド工程が複雑になる
- %files のメンテナンスに慎重を要する
- ファイルが増えた場合どこから来たのかわかりにくい
ちなみにこれだけたくさんビルドしても僕のパソコンですら 5 分足らずでビルドできます。それぐらいひとつひとつは豆粒みたいなものですね。
[lugia@lugia-castle ladspa-plugins]$ rpm --eval "%(expr 1 + 1)" 2 [lugia@lugia-castle ladspa-plugins]$ rpm --eval "%(echo $((1 + 1)))" 2
上の2つは両方共おなじ意味です。
どっちをとる?