From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id YCWgERhrd189AwAA0tVLHw (envelope-from ) for ; Fri, 02 Oct 2020 18:02:00 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id 0MliDRhrd1/SIgAAbx9fmQ (envelope-from ) for ; Fri, 02 Oct 2020 18:02:00 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A1F31940414 for ; Fri, 2 Oct 2020 18:01:59 +0000 (UTC) Received: from localhost ([::1]:59366 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kOPNW-0000p3-KB for larch@yhetil.org; Fri, 02 Oct 2020 14:01:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49198) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kOPLe-0008Mx-NB for guix-patches@gnu.org; Fri, 02 Oct 2020 14:00:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59189) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kOPLe-0005sT-Aq for guix-patches@gnu.org; Fri, 02 Oct 2020 14:00:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kOPLe-0001iT-8y for guix-patches@gnu.org; Fri, 02 Oct 2020 14:00:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#43654] [PATCH] Add perl-opengl Resent-From: Malte Frank Gerdes Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 02 Oct 2020 18:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43654 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Kei Kebreau Cc: 43654@debbugs.gnu.org Received: via spool by 43654-submit@debbugs.gnu.org id=B43654.16016616016566 (code B ref 43654); Fri, 02 Oct 2020 18:00:02 +0000 Received: (at 43654) by debbugs.gnu.org; 2 Oct 2020 18:00:01 +0000 Received: from localhost ([127.0.0.1]:42502 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kOPLW-0001hk-57 for submit@debbugs.gnu.org; Fri, 02 Oct 2020 14:00:01 -0400 Received: from mail-ed1-f65.google.com ([209.85.208.65]:46720) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kOPLR-0001hU-6G for 43654@debbugs.gnu.org; Fri, 02 Oct 2020 13:59:52 -0400 Received: by mail-ed1-f65.google.com with SMTP id 33so2553730edq.13 for <43654@debbugs.gnu.org>; Fri, 02 Oct 2020 10:59:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=XdFiYQXxGx+j+s/AH30CFInyIX6RmhcKqq7Wt2ItuhI=; b=gAcT8u+qcjCETSN8onhlSSkEwDKK0Wzt6g7EKmqvO+9dE8jFIHQUMgL3D8DG0vCGHr lAT3o6/z5qjp8SnGiD2rwYnnJw1zHRX1zChgje/p2Z4nUaZH8qmaJiR0PUGe9uS2x42U GjI6OjTSgu+9Ik1j8YUu7eVhCrwrYnvlX+3qA38a9hx3iUulkw2NCnfel095XNXKvnGo ehHQ1QvZ0WWVdYOPzMWd7oPj7ZyjTMSzhFubx6F8j9TqgxUz/h/Ctz5X6UmDn0qnUzaI 04KcItWSjxExWak8zNmsv+Ef03PQPf9kHbA/rJ9XNCFiI2VS7bGX6olR1kTzG3V4M6bi IrsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=XdFiYQXxGx+j+s/AH30CFInyIX6RmhcKqq7Wt2ItuhI=; b=XHc8uZ/PJXEUu2i6vNMLgdbQa8qHPLhjv8h9MBTrNduAvaayelhYwaUmsHmc6qvGDL 3YWuzkAXBG8Rz9oV36ptRY5oXlrXg+hFuFKHHNtmvMpag2z+A3tInapUD9hHYwf0k31b G6pSgU8ZceaZStFROiI2GZSX5noiAKGwPuzVn5UxeUSavdo+k9BJa7Y3bD6otU5AdBJ3 cwZgTMPVnz86rAHOkivOUYduMIEEhvMLKre5L6DDw+Pi3o0dgzs/dejejx8wPaocBR+Z feZ4oUAZquYuquzc3YLlL9uMeCHknNJecWWQxJjbpwiZmhYl73rcVGlVrO12AAmDGlUN ruEQ== X-Gm-Message-State: AOAM5330ecX4fjXMNkZ6mGrhswE2mrLgP/WVdc51suLSN0tiEV1SKxIo pyP8CTxhonu5GJaF4addBt4u/8rl7Qk= X-Google-Smtp-Source: ABdhPJzjOL+jAuDJ2WMjrjEDayfsXOpCrVyPXOd4ousZSbDeYThwGJNzgMSnJbY24LJm9685vwqvyw== X-Received: by 2002:aa7:c394:: with SMTP id k20mr3564211edq.279.1601661583120; Fri, 02 Oct 2020 10:59:43 -0700 (PDT) Received: from Morphium (ip-84-118-73-55.unity-media.net. [84.118.73.55]) by smtp.gmail.com with ESMTPSA id a20sm1567307ejb.81.2020.10.02.10.59.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Oct 2020 10:59:41 -0700 (PDT) From: Malte Frank Gerdes References: <86pn67xcmn.fsf@gmail.com> <87mu15b6yw.fsf@posteo.net> Date: Fri, 02 Oct 2020 19:59:41 +0200 In-Reply-To: <87mu15b6yw.fsf@posteo.net> (Kei Kebreau's message of "Fri, 02 Oct 2020 00:13:43 -0400") Message-ID: <867ds8se42.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -0.3 (/) X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=gmail.com header.s=20161025 header.b=gAcT8u+q; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Spam-Score: 0.09 X-TUID: bXEmTWiLNUMN --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Thanks for looking into the patch :) >I think we can assume that the same MIT license in the root directory of >the nixpkgs repository also applies to the unmarked files in the >repository. Ok. >I suppose the purpose of this glversion.txt is to avoid reproducibility >issues? I see it was added as a "pretty ugly hack" in the nixpkgs >repository [1]. Yes, exactly. I also noticed, that it doesn't matter what the VENDOR and RENDERER variables contain, it seems that it doesn't get used anyway. >(Interestingly enough, this text file doesn't seem to >cause me any issues, even though my computer doesn't support OpenGL 3.0, >so I guess it's fine.) I guess it would cause issues once a program tries to use OpenGL extensions which are not supported on a given computer, otherwise it shouldn't make any difference. As i understand it this file is supposed to contain a minimum of OpenGL extensions which are widely available, so that this (hopefully=E2=84=A2) won't happen. >At the top of the makefile patch, could you add a brief explanation of >the purpose of the patch and/or link to the source of the patch? It >makes the patch much more maintainable, and you can find examples of >this throughout the gnu/packages/patches subdirectory in the Guix >repository. Done. >There's a minor parenthesis accounting mistake on the lines above. If >you delete the last right parenthesis, the indentation issue should be >fixed and the code should compile. snap, it seems i made a mistake in magit while adding this line... >I almost missed this note on my first review! Please place the package >definition somewhere in the file so that it leaves the file in some sort >of alphabetical order. Yes, after closer inspection of that file i found the order - everything was mixed at the end so i didn't see it. >I'd name the above phase "patch-makefiles" since you've patched multiple >files, but that's just me. ;-) Makes sense =F0=9F=98=81. So i hope i have addressed all things you mentioned. Malte --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=perl-opengl-updated.patch Content-Transfer-Encoding: quoted-printable diff --git a/gnu/local.mk b/gnu/local.mk index f3b5b17e84..001b249e9e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -37,6 +37,7 @@ # Copyright =C2=A9 2020 Brice Waegeneire # Copyright =C2=A9 2020 Tanguy Le Carrour # Copyright =C2=A9 2020 Martin Becze +# Copyright =C2=A9 2020 Malte Frank Gerdes # # This file is part of GNU Guix. # @@ -1406,6 +1407,7 @@ dist_patch_DATA =3D \ %D%/packages/patches/pam-mount-luks2-support.patch \ %D%/packages/patches/pango-skip-libthai-test.patch \ %D%/packages/patches/pciutils-hurd-configure.patch \ + %D%/packages/patches/perl-opengl-makefile.patch \ %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \ %D%/packages/patches/samba-fix-fcntl-hint-detection.patch \ %D%/packages/patches/sdl-pango-api_additions.patch \ diff --git a/gnu/packages/aux-files/perl-opengl/glversion.txt b/gnu/package= s/aux-files/perl-opengl/glversion.txt new file mode 100644 index 0000000000..5b5a9a911f --- /dev/null +++ b/gnu/packages/aux-files/perl-opengl/glversion.txt @@ -0,0 +1,5 @@ +GLUT=3D20801 +VERSION=3D3.0 Mesa 10.2.6 +VENDOR=3DIntel Open Source Technology Center +RENDERER=3DMesa DRI Intel(R) Ivybridge Mobile +EXTENSIONS=3DGL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color= GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_polyg= on_offset GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EX= T_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_cl= ip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels = GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_colo= r GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_= clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRG= B GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays = GL_IBM_texture_mirrored_repeat GL_3DFX_texture_compression_FXT1 GL_ARB_text= ure_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_fu= nc_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_colo= r GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_l= od_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_expo= nent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_m= ulti_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_= EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_c= ombine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stenci= l GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query GL_AR= B_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_text= ure_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_ATI_envmap= _bumpmap GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_depth_clamp = GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_draw_buffers GL_= ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_ve= rtex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_co= mbine3 GL_ATI_texture_float GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA= _pack_invert GL_NV_primitive_restart GL_ARB_depth_clamp GL_ARB_fragment_pro= gram_shadow GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sp= rite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_tw= o GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_e= quation_separate GL_OES_read_format GL_ARB_color_buffer_float GL_ARB_pixel_= buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_float GL_ARB_t= exture_rectangle GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_text= ure_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_rectang= le GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_ARB_framebuffer_ob= ject GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_d= epth_stencil GL_APPLE_object_purgeable GL_ARB_vertex_array_object GL_ATI_se= parate_stencil GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_gpu_progra= m_parameters GL_EXT_texture_array GL_EXT_texture_integer GL_EXT_texture_sRG= B_decode GL_EXT_timer_query GL_OES_EGL_image GL_AMD_performance_monitor GL_= ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_half= _float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_textur= e_rg GL_ARB_texture_swizzle GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle= GL_EXT_vertex_array_bgra GL_NV_conditional_render GL_AMD_conservative_dept= h GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_ARB_ES2_= compatibility GL_ARB_blend_func_extended GL_ARB_debug_output GL_ARB_draw_bu= ffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_locatio= n GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sample_s= hading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_textur= e_lod GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_mu= ltisample GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_uniform= _buffer_object GL_ARB_vertex_type_2_10_10_10_rev GL_EXT_provoking_vertex GL= _EXT_texture_snorm GL_MESA_texture_signed_rgba GL_ARB_get_program_binary GL= _ARB_robustness GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding G= L_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_= ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_con= servative_depth GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_= ARB_shader_atomic_counters GL_ARB_shading_language_420pack GL_ARB_shading_l= anguage_packing GL_ARB_texture_storage GL_ARB_transform_feedback_instanced = GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback GL_AMD= _shader_trinary_minmax GL_ARB_ES3_compatibility GL_ARB_clear_buffer_object = GL_ARB_invalidate_subdata GL_ARB_texture_query_levels GL_ARB_texture_storag= e_multisample GL_ARB_texture_view GL_ARB_vertex_attrib_binding GL_KHR_debug= GL_ARB_buffer_storage GL_ARB_multi_bind GL_ARB_texture_mirror_clamp_to_edg= e GL_ARB_vertex_type_10f_11f_11f_rev GL_EXT_shader_integer_mix GL_INTEL_per= formance_query diff --git a/gnu/packages/patches/perl-opengl-makefile.patch b/gnu/packages= /patches/perl-opengl-makefile.patch new file mode 100644 index 0000000000..2f5afd95f8 --- /dev/null +++ b/gnu/packages/patches/perl-opengl-makefile.patch @@ -0,0 +1,41 @@ +This patch substitutes the harcoded library Paths from Makefile.PL to make= it +easier to insert the store paths. +It also removes the generation of utils/glversion.txt , because it gets +statically copied anyway to not rely on the build machines capabilities. +diff --git a/Makefile.PL b/Makefile.PL +index d32205d..3e8fa0a 100755 +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -124,14 +124,7 @@ if ($IS_MINGW) + # Look for available libs + our @libdirs =3D qw + { +- -L/usr/lib +- -L/usr/lib/i386-linux-gnu +- -L/usr/X11R6/lib +- -L/opt/X11/lib +- -L/usr/local/lib +- -L/usr/openwin/lib +- -L/opt/csw/lib +- -L/usr/local/freeglut/lib ++@@libdirs@@ + }; + + our @check_libs =3D qw +@@ -804,7 +797,6 @@ sub get_extensions + my $exc_file =3D 'gl_exclude.h'; + unlink($exc_file) if (-e $exc_file); + my $glv_file =3D 'utils/glversion.txt'; +- unlink($glv_file) if (-e $glv_file); + + # Only run the rest if GLUT is installed + print "Testing GLUT version\n" if ($verbose); +@@ -861,7 +853,7 @@ sub get_extensions + $make_ver =3D ";make -f Makefile " . (length($lib) ? "GLUT_LIB=3D$li= b " : "") . (length($def) ? "GLUT_DEF=3D$def " : ""); + print "glversion: '$make_ver'\n" if $verbose>1; + } +- my $exec =3D 'cd utils'."$make_ver clean".$make_ver; ++ my $exec =3D 'cd utils'.$make_ver; + print "glversion: $exec\n" if ($verbose); + my $stat =3D `$exec`; + print "\n$stat\n\n" if ($verbose); diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 1c3d999d79..853968f5f1 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -27,6 +27,7 @@ ;;; Copyright =C2=A9 2020 Vincent Legoll ;;; Copyright =C2=A9 2020 Paul Garlick ;;; Copyright =C2=A9 2020 Nicolas Goaziou +;;; Copyright =C2=A9 2020 Malte Frank Gerdes ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,6 +50,7 @@ #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) @@ -74,7 +76,8 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages textutils) #:use-module (gnu packages video) - #:use-module (gnu packages web)) + #:use-module (gnu packages web) + #:use-module (gnu packages xorg)) =20 ;;; ;;; Please: Try to add new module packages in alphabetic order. @@ -7870,6 +7873,64 @@ technology to store hierarchical information such as= links to other documents within a single file.") (license (package-license perl)))) =20 +(define-public perl-opengl + (package + (name "perl-opengl") + (version "0.70") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/C/CH/CHM/OpenGL-" + version + ".tar.gz")) + (sha256 + (base32 + "1q3lz168q081iwl9jg21fbzhp9la79gav9mv6nmh2jab83s2l3mj")) + (patches (search-patches "perl-opengl-makefile.patch")))) + (build-system perl-build-system) + (native-inputs + `(("xvfb" ,xorg-server-for-tests) + ("glversion-txt" ,(local-file "aux-files/perl-opengl/glversion.txt"= )))) + (inputs `(("mesa" ,mesa) + ("glu" ,glu) + ("freeglut" ,freeglut) + ("libxi" ,libxi) + ("libxmu" ,libxmu) + ("libice" ,libice))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-makefiles + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile.PL" + (("^@@libdirs@@") + (string-concatenate + (map (lambda (input) + (string-append "-L" (cdr input) "/lib\n")) + inputs)))) + (substitute* "utils/Makefile" + (("^all: glversion.txt") "all:")) + #t)) + (add-before 'configure 'inject-glversion + (lambda* (#:key inputs #:allow-other-keys) + (copy-file (assoc-ref inputs "glversion-txt") + "utils/glversion.txt") + #t)) + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + #t)) + ))) + (home-page "https://metacpan.org/release/OpenGL") + (synopsis + "Perl bindings to the OpenGL API, GLU, and GLUT/FreeGLUT") + (description "The package provides Perl bindings to OpenGL, GLU +and FreeGLUT.") + (license (package-license perl)))) + (define-public perl-package-anon (package (name "perl-package-anon") --=-=-=--